summaryrefslogtreecommitdiff
path: root/vcl
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2018-06-14 12:05:10 +0100
committerCaolán McNamara <caolanm@redhat.com>2018-06-14 22:08:28 +0200
commit98ac01e74ab95c735b7383601ad2e4ed09962184 (patch)
treedbb519340f3b89f829599cbd9ad285e35128c96c /vcl
parentb555f76b9d27d8f7b4d7413650230097bd97025e (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.cxx26
-rw-r--r--vcl/unx/gtk3/gtk3gtkinst.cxx46
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()