summaryrefslogtreecommitdiff
path: root/svx
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2020-02-04 10:45:52 +0000
committerCaolán McNamara <caolanm@redhat.com>2020-02-04 13:58:41 +0100
commite49cd2c253fe1d292ae3f9212a805cdace77b174 (patch)
treeb4b153e82244ce34bc1ca7b39ff2d5db53d6474b /svx
parent5c9278d2d59c5fc858f0b4e1c13b10bc42238097 (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.cxx88
-rw-r--r--svx/source/sidebar/paragraph/ParaSpacingWindow.hxx35
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;