diff options
author | Caolán McNamara <caolanm@redhat.com> | 2018-06-14 12:05:10 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2018-06-14 22:08:28 +0200 |
commit | 98ac01e74ab95c735b7383601ad2e4ed09962184 (patch) | |
tree | dbb519340f3b89f829599cbd9ad285e35128c96c /vcl | |
parent | b555f76b9d27d8f7b4d7413650230097bd97025e (diff) |
do setPreviewsToSamePlace at SfxTabDialogController display time
Change-Id: Ia38c1a577b7d054ab4e7e70a8f2cbce16a3573f5
Reviewed-on: https://gerrit.libreoffice.org/55810
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'vcl')
-rw-r--r-- | vcl/source/app/salvtables.cxx | 26 | ||||
-rw-r--r-- | vcl/unx/gtk3/gtk3gtkinst.cxx | 46 |
2 files changed, 72 insertions, 0 deletions
diff --git a/vcl/source/app/salvtables.cxx b/vcl/source/app/salvtables.cxx index 8e9689c7c2c1..a703f1bc00f6 100644 --- a/vcl/source/app/salvtables.cxx +++ b/vcl/source/app/salvtables.cxx @@ -462,6 +462,27 @@ public: } }; +class SalInstanceSizeGroup : public weld::SizeGroup +{ +private: + std::shared_ptr<VclSizeGroup> m_xGroup; +public: + SalInstanceSizeGroup() + : m_xGroup(new VclSizeGroup) + { + } + virtual void add_widget(weld::Widget* pWidget) override + { + SalInstanceWidget* pVclWidget = dynamic_cast<SalInstanceWidget*>(pWidget); + assert(pVclWidget); + m_xGroup->insert(pVclWidget->getWidget()); + } + virtual void set_mode(VclSizeGroupMode eMode) override + { + m_xGroup->set_mode(eMode); + } +}; + class SalInstanceContainer : public SalInstanceWidget, public virtual weld::Container { private: @@ -2365,6 +2386,11 @@ public: return pMenu ? new SalInstanceMenu(pMenu, bTakeOwnership) : nullptr; } + virtual weld::SizeGroup* create_size_group() override + { + return new SalInstanceSizeGroup; + } + virtual ~SalInstanceBuilder() override { if (VclBuilderContainer* pOwnedToplevel = dynamic_cast<VclBuilderContainer*>(m_aOwnedToplevel.get())) diff --git a/vcl/unx/gtk3/gtk3gtkinst.cxx b/vcl/unx/gtk3/gtk3gtkinst.cxx index cc927fe89742..47ef69b4077a 100644 --- a/vcl/unx/gtk3/gtk3gtkinst.cxx +++ b/vcl/unx/gtk3/gtk3gtkinst.cxx @@ -1747,6 +1747,47 @@ public: } }; +class GtkInstanceSizeGroup : public weld::SizeGroup +{ +private: + GtkSizeGroup* m_pGroup; +public: + GtkInstanceSizeGroup() + : m_pGroup(gtk_size_group_new(GTK_SIZE_GROUP_NONE)) + { + } + virtual void add_widget(weld::Widget* pWidget) override + { + GtkInstanceWidget* pVclWidget = dynamic_cast<GtkInstanceWidget*>(pWidget); + assert(pVclWidget); + gtk_size_group_add_widget(m_pGroup, pVclWidget->getWidget()); + } + virtual void set_mode(VclSizeGroupMode eVclMode) override + { + GtkSizeGroupMode eGtkMode; + switch (eVclMode) + { + case VclSizeGroupMode::NONE: + eGtkMode = GTK_SIZE_GROUP_NONE; + break; + case VclSizeGroupMode::Horizontal: + eGtkMode = GTK_SIZE_GROUP_HORIZONTAL; + break; + case VclSizeGroupMode::Vertical: + eGtkMode = GTK_SIZE_GROUP_VERTICAL; + break; + case VclSizeGroupMode::Both: + eGtkMode = GTK_SIZE_GROUP_BOTH; + break; + } + gtk_size_group_set_mode(m_pGroup, eGtkMode); + } + virtual ~GtkInstanceSizeGroup() override + { + g_object_unref(m_pGroup); + } +}; + class GtkInstanceContainer : public GtkInstanceWidget, public virtual weld::Container { private: @@ -4885,6 +4926,11 @@ public: return nullptr; return new GtkInstanceMenu(pMenu, bTakeOwnership); } + + virtual weld::SizeGroup* create_size_group() override + { + return new GtkInstanceSizeGroup; + } }; void GtkInstanceWindow::help() |