diff options
author | Caolán McNamara <caolanm@redhat.com> | 2020-02-04 10:45:52 +0000 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2020-02-04 13:58:41 +0100 |
commit | e49cd2c253fe1d292ae3f9212a805cdace77b174 (patch) | |
tree | b4b153e82244ce34bc1ca7b39ff2d5db53d6474b /svx | |
parent | 5c9278d2d59c5fc858f0b4e1c13b10bc42238097 (diff) |
merge common code together
Change-Id: I26cb6184bd607b86c807219d6afbd9d445f346d0
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87964
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'svx')
-rw-r--r-- | svx/source/sidebar/paragraph/ParaSpacingWindow.cxx | 88 | ||||
-rw-r--r-- | svx/source/sidebar/paragraph/ParaSpacingWindow.hxx | 35 |
2 files changed, 59 insertions, 64 deletions
diff --git a/svx/source/sidebar/paragraph/ParaSpacingWindow.cxx b/svx/source/sidebar/paragraph/ParaSpacingWindow.cxx index 9815a06eab00..f098f29cb6e7 100644 --- a/svx/source/sidebar/paragraph/ParaSpacingWindow.cxx +++ b/svx/source/sidebar/paragraph/ParaSpacingWindow.cxx @@ -34,17 +34,48 @@ using namespace svx; #define MAX_SC_SD 116220200 #define NEGA_MAXVALUE -10000000 -// ParaULSpacingWindow - -ParaULSpacingWindow::ParaULSpacingWindow(vcl::Window* pParent) +InterimItemWindow::InterimItemWindow(vcl::Window* pParent, const OUString& rUIXMLDescription, const OString& rID) : Control(pParent, WB_TABSTOP) - , m_eUnit(MapUnit::MapTwip) { m_xVclContentArea = VclPtr<VclVBox>::Create(this); m_xVclContentArea->Show(); - m_xBuilder.reset(Application::CreateInterimBuilder(m_xVclContentArea, "svx/ui/paraulspacing.ui")); - m_xContainer = m_xBuilder->weld_container("ParaULSpacingWindow"); + m_xBuilder.reset(Application::CreateInterimBuilder(m_xVclContentArea, rUIXMLDescription)); + m_xContainer = m_xBuilder->weld_container(rID); +} + +InterimItemWindow::~InterimItemWindow() +{ + disposeOnce(); +} +void InterimItemWindow::dispose() +{ + m_xContainer.reset(); + m_xBuilder.reset(); + m_xVclContentArea.disposeAndClear(); + + Control::dispose(); +} + +void InterimItemWindow::Resize() +{ + vcl::Window *pChild = GetWindow(GetWindowType::FirstChild); + assert(pChild); + VclContainer::setLayoutAllocation(*pChild, Point(0, 0), GetSizePixel()); + Control::Resize(); +} + +Size InterimItemWindow::GetOptimalSize() const +{ + return VclContainer::getLayoutRequisition(*GetWindow(GetWindowType::FirstChild)); +} + +// ParaULSpacingWindow + +ParaULSpacingWindow::ParaULSpacingWindow(vcl::Window* pParent) + : InterimItemWindow(pParent, "svx/ui/paraulspacing.ui", "ParaULSpacingWindow") + , m_eUnit(MapUnit::MapTwip) +{ m_xAboveSpacing = std::make_unique<SvxRelativeField>(m_xBuilder->weld_metric_spin_button("aboveparaspacing", FieldUnit::CM)); m_xBelowSpacing = std::make_unique<SvxRelativeField>(m_xBuilder->weld_metric_spin_button("belowparaspacing", FieldUnit::CM)); m_xAboveContainer = m_xBuilder->weld_container("above"); @@ -71,11 +102,7 @@ void ParaULSpacingWindow::dispose() m_xAboveContainer.reset(); m_xBelowContainer.reset(); - m_xContainer.reset(); - m_xBuilder.reset(); - m_xVclContentArea.disposeAndClear(); - - Control::dispose(); + InterimItemWindow::dispose(); } void ParaULSpacingWindow::SetUnit(FieldUnit eUnit) @@ -102,19 +129,6 @@ void ParaULSpacingWindow::SetValue(const SvxULSpaceItem* pItem) m_xBelowSpacing->set_value(nVal, FieldUnit::MM_100TH); } -void ParaULSpacingWindow::Resize() -{ - vcl::Window *pChild = GetWindow(GetWindowType::FirstChild); - assert(pChild); - VclContainer::setLayoutAllocation(*pChild, Point(0, 0), GetSizePixel()); - Control::Resize(); -} - -Size ParaULSpacingWindow::GetOptimalSize() const -{ - return VclContainer::getLayoutRequisition(*GetWindow(GetWindowType::FirstChild)); -} - IMPL_LINK_NOARG(ParaULSpacingWindow, ModifySpacingHdl, weld::MetricSpinButton&, void) { SfxDispatcher* pDisp = SfxViewFrame::Current()->GetBindings().GetDispatcher(); @@ -162,14 +176,9 @@ void ParaBelowSpacingWindow::GetFocus() // ParaLRSpacingWindow ParaLRSpacingWindow::ParaLRSpacingWindow(vcl::Window* pParent) - : Control(pParent, WB_TABSTOP) + : InterimItemWindow(pParent, "svx/ui/paralrspacing.ui", "ParaLRSpacingWindow") , m_eUnit(MapUnit::MapTwip) { - m_xVclContentArea = VclPtr<VclVBox>::Create(this); - m_xVclContentArea->Show(); - m_xBuilder.reset(Application::CreateInterimBuilder(m_xVclContentArea, "svx/ui/paralrspacing.ui")); - m_xContainer = m_xBuilder->weld_container("ParaLRSpacingWindow"); - m_xBeforeSpacing = std::make_unique<SvxRelativeField>(m_xBuilder->weld_metric_spin_button("beforetextindent", FieldUnit::CM)); m_xAfterSpacing = std::make_unique<SvxRelativeField>(m_xBuilder->weld_metric_spin_button("aftertextindent", FieldUnit::CM)); m_xFLSpacing = std::make_unique<SvxRelativeField>(m_xBuilder->weld_metric_spin_button("firstlineindent", FieldUnit::CM)); @@ -202,11 +211,7 @@ void ParaLRSpacingWindow::dispose() m_xAfterContainer.reset(); m_xFirstLineContainer.reset(); - m_xContainer.reset(); - m_xBuilder.reset(); - m_xVclContentArea.disposeAndClear(); - - Control::dispose(); + InterimItemWindow::dispose(); } void ParaLRSpacingWindow::SetContext(const vcl::EnumContext& eContext) @@ -311,19 +316,6 @@ void ParaLRSpacingWindow::SetValue(SfxItemState eState, const SfxPoolItem* pStat } } -void ParaLRSpacingWindow::Resize() -{ - vcl::Window *pChild = GetWindow(GetWindowType::FirstChild); - assert(pChild); - VclContainer::setLayoutAllocation(*pChild, Point(0, 0), GetSizePixel()); - Control::Resize(); -} - -Size ParaLRSpacingWindow::GetOptimalSize() const -{ - return VclContainer::getLayoutRequisition(*GetWindow(GetWindowType::FirstChild)); -} - void ParaLRSpacingWindow::SetUnit(FieldUnit eUnit) { m_xBeforeSpacing->SetFieldUnit(eUnit); diff --git a/svx/source/sidebar/paragraph/ParaSpacingWindow.hxx b/svx/source/sidebar/paragraph/ParaSpacingWindow.hxx index 36dd90aea79b..d25030c3d9f6 100644 --- a/svx/source/sidebar/paragraph/ParaSpacingWindow.hxx +++ b/svx/source/sidebar/paragraph/ParaSpacingWindow.hxx @@ -27,26 +27,36 @@ using namespace com::sun::star; -namespace svx { - -class ParaULSpacingWindow : public Control +class InterimItemWindow : public Control { public: - virtual ~ParaULSpacingWindow() override; + virtual ~InterimItemWindow() override; virtual void dispose() override; - void SetValue(const SvxULSpaceItem* pItem); - void SetUnit(FieldUnit eUnit); - virtual void Resize() override; virtual Size GetOptimalSize() const override; protected: - ParaULSpacingWindow(vcl::Window* pParent); + InterimItemWindow(vcl::Window* pParent, const OUString& rUIXMLDescription, const OString& rID); std::unique_ptr<weld::Builder> m_xBuilder; VclPtr<vcl::Window> m_xVclContentArea; std::unique_ptr<weld::Container> m_xContainer; +}; + +namespace svx { + +class ParaULSpacingWindow : public InterimItemWindow +{ +public: + virtual ~ParaULSpacingWindow() override; + virtual void dispose() override; + + void SetValue(const SvxULSpaceItem* pItem); + void SetUnit(FieldUnit eUnit); + +protected: + ParaULSpacingWindow(vcl::Window* pParent); std::unique_ptr<SvxRelativeField> m_xAboveSpacing; std::unique_ptr<SvxRelativeField> m_xBelowSpacing; @@ -72,15 +82,12 @@ public: virtual void GetFocus() override; }; -class ParaLRSpacingWindow : public Control +class ParaLRSpacingWindow : public InterimItemWindow { public: virtual ~ParaLRSpacingWindow() override; virtual void dispose() override; - virtual void Resize() override; - virtual Size GetOptimalSize() const override; - void SetValue(SfxItemState eState, const SfxPoolItem* pState); void SetUnit(FieldUnit eUnit); void SetContext(const vcl::EnumContext& eContext); @@ -88,10 +95,6 @@ public: protected: ParaLRSpacingWindow(vcl::Window* pParent); - std::unique_ptr<weld::Builder> m_xBuilder; - VclPtr<vcl::Window> m_xVclContentArea; - std::unique_ptr<weld::Container> m_xContainer; - std::unique_ptr<SvxRelativeField> m_xBeforeSpacing; std::unique_ptr<SvxRelativeField> m_xAfterSpacing; std::unique_ptr<SvxRelativeField> m_xFLSpacing; |