vcl/unx/gtk3/gtkinst.cxx | 71 +++++++++++++++++++++++++++++------------------ 1 file changed, 45 insertions(+), 26 deletions(-)
New commits: commit f60b29636ee332d144b8f92fdd30fccd9b0d4d47 Author: Caolán McNamara <caol...@redhat.com> AuthorDate: Thu Jun 17 11:14:14 2021 +0100 Commit: Caolán McNamara <caol...@redhat.com> CommitDate: Thu Jun 17 14:59:18 2021 +0200 gtk4: implement setting grid row/col/width as used in e.g. font features dialog Change-Id: I558e52b2a1ccc471673613b63b42599db7c00ac5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/117374 Tested-by: Caolán McNamara <caol...@redhat.com> Reviewed-by: Caolán McNamara <caol...@redhat.com> diff --git a/vcl/unx/gtk3/gtkinst.cxx b/vcl/unx/gtk3/gtkinst.cxx index b7c315e84abd..e093c127198f 100644 --- a/vcl/unx/gtk3/gtkinst.cxx +++ b/vcl/unx/gtk3/gtkinst.cxx @@ -3448,60 +3448,71 @@ public: virtual void set_grid_left_attach(int nAttach) override { -#if !GTK_CHECK_VERSION(4, 0, 0) - GtkContainer* pParent = GTK_CONTAINER(gtk_widget_get_parent(m_pWidget)); - gtk_container_child_set(pParent, m_pWidget, "left-attach", nAttach, nullptr); + GtkWidget* pParent = gtk_widget_get_parent(m_pWidget); +#if GTK_CHECK_VERSION(4, 0, 0) + int row, width, height; + gtk_grid_query_child(GTK_GRID(pParent), m_pWidget, nullptr, &row, &width, &height); + g_object_ref(m_pWidget); + gtk_grid_remove(GTK_GRID(pParent), m_pWidget); + gtk_grid_attach(GTK_GRID(pParent), m_pWidget, nAttach, row, width, height); + g_object_unref(m_pWidget); #else - (void)nAttach; + gtk_container_child_set(GTK_CONTAINER(pParent), m_pWidget, "left-attach", nAttach, nullptr); #endif } virtual int get_grid_left_attach() const override { gint nAttach(0); -#if !GTK_CHECK_VERSION(4, 0, 0) - GtkContainer* pParent = GTK_CONTAINER(gtk_widget_get_parent(m_pWidget)); - gtk_container_child_get(pParent, m_pWidget, "left-attach", &nAttach, nullptr); - return nAttach; + GtkWidget* pParent = gtk_widget_get_parent(m_pWidget); +#if GTK_CHECK_VERSION(4, 0, 0) + gtk_grid_query_child(GTK_GRID(pParent), m_pWidget, &nAttach, nullptr, nullptr, nullptr); #else - GtkGrid* pParent = GTK_GRID(gtk_widget_get_parent(m_pWidget)); - gtk_grid_query_child(pParent, m_pWidget, &nAttach, nullptr, nullptr, nullptr); - return nAttach; + gtk_container_child_get(GTK_CONTAINER(pParent), m_pWidget, "left-attach", &nAttach, nullptr); #endif + return nAttach; } virtual void set_grid_width(int nCols) override { -#if !GTK_CHECK_VERSION(4, 0, 0) - GtkContainer* pParent = GTK_CONTAINER(gtk_widget_get_parent(m_pWidget)); - gtk_container_child_set(pParent, m_pWidget, "width", nCols, nullptr); + GtkWidget* pParent = gtk_widget_get_parent(m_pWidget); +#if GTK_CHECK_VERSION(4, 0, 0) + int col, row, height; + gtk_grid_query_child(GTK_GRID(pParent), m_pWidget, &col, &row, nullptr, &height); + g_object_ref(m_pWidget); + gtk_grid_remove(GTK_GRID(pParent), m_pWidget); + gtk_grid_attach(GTK_GRID(pParent), m_pWidget, col, row, nCols, height); + g_object_unref(m_pWidget); #else - (void)nCols; + gtk_container_child_set(GTK_CONTAINER(pParent), m_pWidget, "width", nCols, nullptr); #endif } virtual void set_grid_top_attach(int nAttach) override { -#if !GTK_CHECK_VERSION(4, 0, 0) - GtkContainer* pParent = GTK_CONTAINER(gtk_widget_get_parent(m_pWidget)); - gtk_container_child_set(pParent, m_pWidget, "top-attach", nAttach, nullptr); + GtkWidget* pParent = gtk_widget_get_parent(m_pWidget); +#if GTK_CHECK_VERSION(4, 0, 0) + int col, width, height; + gtk_grid_query_child(GTK_GRID(pParent), m_pWidget, &col, nullptr, &width, &height); + g_object_ref(m_pWidget); + gtk_grid_remove(GTK_GRID(pParent), m_pWidget); + gtk_grid_attach(GTK_GRID(pParent), m_pWidget, col, nAttach, width, height); + g_object_unref(m_pWidget); #else - (void)nAttach; + gtk_container_child_set(GTK_CONTAINER(pParent), m_pWidget, "top-attach", nAttach, nullptr); #endif } virtual int get_grid_top_attach() const override { gint nAttach(0); -#if !GTK_CHECK_VERSION(4, 0, 0) - GtkContainer* pParent = GTK_CONTAINER(gtk_widget_get_parent(m_pWidget)); - gtk_container_child_get(pParent, m_pWidget, "top-attach", &nAttach, nullptr); - return nAttach; + GtkWidget* pParent = gtk_widget_get_parent(m_pWidget); +#if GTK_CHECK_VERSION(4, 0, 0) + gtk_grid_query_child(GTK_GRID(pParent), m_pWidget, nullptr, &nAttach, nullptr, nullptr); #else - GtkGrid* pParent = GTK_GRID(gtk_widget_get_parent(m_pWidget)); - gtk_grid_query_child(pParent, m_pWidget, nullptr, &nAttach, nullptr, nullptr); - return nAttach; + gtk_container_child_get(GTK_CONTAINER(pParent), m_pWidget, "top-attach", &nAttach, nullptr); #endif + return nAttach; } virtual void set_hexpand(bool bExpand) override @@ -22217,11 +22228,15 @@ weld::Builder* GtkInstance::CreateBuilder(weld::Widget* pParent, const OUString& rUIFile != "cui/ui/bitmaptabpage.ui" && rUIFile != "cui/ui/borderpage.ui" && rUIFile != "cui/ui/breaknumberoption.ui" && + rUIFile != "cui/ui/charnamepage.ui" && rUIFile != "cui/ui/colorpage.ui" && rUIFile != "cui/ui/colorpickerdialog.ui" && rUIFile != "cui/ui/editdictionarydialog.ui" && + rUIFile != "cui/ui/effectspage.ui" && rUIFile != "cui/ui/eventassigndialog.ui" && rUIFile != "cui/ui/eventassignpage.ui" && + rUIFile != "cui/ui/fontfeaturesdialog.ui" && + rUIFile != "cui/ui/fontfragment.ui" && rUIFile != "cui/ui/gradientpage.ui" && rUIFile != "cui/ui/hatchpage.ui" && rUIFile != "cui/ui/hangulhanjaadddialog.ui" && @@ -22256,6 +22271,7 @@ weld::Builder* GtkInstance::CreateBuilder(weld::Widget* pParent, const OUString& rUIFile != "cui/ui/pickgraphicpage.ui" && rUIFile != "cui/ui/picknumberingpage.ui" && rUIFile != "cui/ui/pickoutlinepage.ui" && + rUIFile != "cui/ui/positionpage.ui" && rUIFile != "cui/ui/qrcodegen.ui" && rUIFile != "cui/ui/scriptorganizer.ui" && rUIFile != "cui/ui/searchattrdialog.ui" && @@ -22268,6 +22284,7 @@ weld::Builder* GtkInstance::CreateBuilder(weld::Widget* pParent, const OUString& rUIFile != "cui/ui/tipofthedaydialog.ui" && rUIFile != "cui/ui/toolbarmodedialog.ui" && rUIFile != "cui/ui/transparencytabpage.ui" && + rUIFile != "cui/ui/twolinespage.ui" && rUIFile != "cui/ui/wordcompletionpage.ui" && rUIFile != "cui/ui/zoomdialog.ui" && rUIFile != "filter/ui/pdfgeneralpage.ui" && @@ -22386,6 +22403,8 @@ weld::Builder* GtkInstance::CreateBuilder(weld::Widget* pParent, const OUString& rUIFile != "modules/swriter/ui/autotext.ui" && rUIFile != "modules/swriter/ui/bibliographyentry.ui" && rUIFile != "modules/swriter/ui/bulletsandnumbering.ui" && + rUIFile != "modules/swriter/ui/characterproperties.ui" && + rUIFile != "modules/swriter/ui/charurlpage.ui" && rUIFile != "modules/swriter/ui/columndialog.ui" && rUIFile != "modules/swriter/ui/columnpage.ui" && rUIFile != "modules/swriter/ui/editcategories.ui" && _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits