diff options
Diffstat (limited to 'sw/source/uibase/inc')
-rw-r--r-- | sw/source/uibase/inc/numberingtypelistbox.hxx | 3 | ||||
-rw-r--r-- | sw/source/uibase/inc/numprevw.hxx | 50 | ||||
-rw-r--r-- | sw/source/uibase/inc/outline.hxx | 50 |
3 files changed, 77 insertions, 26 deletions
diff --git a/sw/source/uibase/inc/numberingtypelistbox.hxx b/sw/source/uibase/inc/numberingtypelistbox.hxx index 393a60df2ee7..b6c83f14e5c1 100644 --- a/sw/source/uibase/inc/numberingtypelistbox.hxx +++ b/sw/source/uibase/inc/numberingtypelistbox.hxx @@ -67,9 +67,12 @@ public: NumberingTypeListBox(weld::ComboBoxText* pWidget); ~NumberingTypeListBox(); + void connect_changed(const Link<weld::ComboBoxText&, void>& rLink) { m_xWidget->connect_changed(rLink); } + void Reload(SwInsertNumTypes nTypeFlags); SvxNumType GetSelectedNumberingType(); bool SelectNumberingType(SvxNumType nType); + void SetNoSelection() { m_xWidget->set_active(-1); } }; #endif diff --git a/sw/source/uibase/inc/numprevw.hxx b/sw/source/uibase/inc/numprevw.hxx index eb018c078bd9..b54bcf5ddbb1 100644 --- a/sw/source/uibase/inc/numprevw.hxx +++ b/sw/source/uibase/inc/numprevw.hxx @@ -59,6 +59,56 @@ class NumberingPreview : public vcl::Window }; +class SwNumberingPreview +{ + std::unique_ptr<weld::DrawingArea> m_xDrawingArea; + Size m_aSize; + const SwNumRule* pActNum; + vcl::Font aStdFont; + long nPageWidth; + const OUString* pOutlineNames; + bool bPosition; + sal_uInt16 nActLevel; + +private: + DECL_LINK(DoPaint, weld::DrawingArea::draw_args, void); + DECL_LINK(DoResize, const Size& rSize, void); + +public: + SwNumberingPreview(weld::DrawingArea* pDrawingArea) + : m_xDrawingArea(pDrawingArea) + , pActNum(nullptr) + , nPageWidth(0) + , pOutlineNames(nullptr) + , bPosition(false) + , nActLevel(USHRT_MAX) + { + m_xDrawingArea->connect_size_allocate(LINK(this, SwNumberingPreview, DoResize)); + m_xDrawingArea->connect_draw(LINK(this, SwNumberingPreview, DoPaint)); + } + + void queue_draw() + { + m_xDrawingArea->queue_draw(); + } + + void SetNumRule(const SwNumRule* pNum) + { + pActNum = pNum; + queue_draw(); + } + + void SetPageWidth(long nPgWidth) + {nPageWidth = nPgWidth;} + void SetOutlineNames(const OUString* pNames) + {pOutlineNames = pNames;} + void SetPositionMode() + { bPosition = true;} + void SetLevel(sal_uInt16 nSet) {nActLevel = nSet;} + +}; + + #endif /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sw/source/uibase/inc/outline.hxx b/sw/source/uibase/inc/outline.hxx index 14583da1fd3d..e788738a2c9e 100644 --- a/sw/source/uibase/inc/outline.hxx +++ b/sw/source/uibase/inc/outline.hxx @@ -82,46 +82,44 @@ public: class SwOutlineSettingsTabPage : public SfxTabPage { - VclPtr<ListBox> m_pLevelLB; - - VclPtr<ListBox> m_pCollBox; - VclPtr<SwNumberingTypeListBox> m_pNumberBox; - VclPtr<ListBox> m_pCharFormatLB; - VclPtr<FixedText> m_pAllLevelFT; - VclPtr<NumericField> m_pAllLevelNF; - VclPtr<Edit> m_pPrefixED; - VclPtr<Edit> m_pSuffixED; - VclPtr<NumericField> m_pStartEdit; - VclPtr<NumberingPreview> m_pPreviewWIN; - OUString aNoFormatName; OUString aSaveCollNames[MAXLEVEL]; SwWrtShell* pSh; SwNumRule* pNumRule; OUString* pCollNames; - sal_uInt16 nActLevel; - - DECL_LINK( LevelHdl, ListBox&, void ); - DECL_LINK( ToggleComplete, Edit&, void ); - DECL_LINK( CollSelect, ListBox&, void ); - DECL_LINK( CollSelectGetFocus, Control&, void ); - DECL_LINK( NumberSelect, ListBox&, void ); - DECL_LINK( DelimModify, Edit&, void ); - DECL_LINK( StartModified, Edit&, void ); - DECL_LINK( CharFormatHdl, ListBox&, void ); + sal_uInt16 nActLevel; + + std::unique_ptr<weld::TreeView> m_xLevelLB; + std::unique_ptr<weld::ComboBoxText> m_xCollBox; + std::unique_ptr<NumberingTypeListBox> m_xNumberBox; + std::unique_ptr<weld::ComboBoxText> m_xCharFormatLB; + std::unique_ptr<weld::Label> m_xAllLevelFT; + std::unique_ptr<weld::SpinButton> m_xAllLevelNF; + std::unique_ptr<weld::Entry> m_xPrefixED; + std::unique_ptr<weld::Entry> m_xSuffixED; + std::unique_ptr<weld::SpinButton> m_xStartEdit; + std::unique_ptr<SwNumberingPreview> m_xPreviewWIN; + + DECL_LINK( LevelHdl, weld::TreeView&, void ); + DECL_LINK( ToggleComplete, weld::SpinButton&, void ); + DECL_LINK( CollSelect, weld::ComboBoxText&, void ); + DECL_LINK( CollSelectGetFocus, weld::Widget&, void ); + DECL_LINK( NumberSelect, weld::ComboBoxText&, void ); + DECL_LINK( DelimModify, weld::Entry&, void ); + DECL_LINK( StartModified, weld::SpinButton&, void ); + DECL_LINK( CharFormatHdl, weld::ComboBoxText&, void ); void Update(); - void SetModified(){m_pPreviewWIN->Invalidate();} + void SetModified() { m_xPreviewWIN->queue_draw(); } void CheckForStartValue_Impl(sal_uInt16 nNumberingType); using SfxTabPage::ActivatePage; using SfxTabPage::DeactivatePage; public: - SwOutlineSettingsTabPage(vcl::Window* pParent, const SfxItemSet& rSet); + SwOutlineSettingsTabPage(TabPageParent pParent, const SfxItemSet& rSet); virtual ~SwOutlineSettingsTabPage() override; - virtual void dispose() override; void SetWrtShell(SwWrtShell* pShell); @@ -135,7 +133,7 @@ public: void SetNumRule(SwNumRule *pRule) { pNumRule = pRule; - m_pPreviewWIN->SetNumRule(pNumRule); + m_xPreviewWIN->SetNumRule(pNumRule); } }; |