From 492b0d5d076d38234fea4e4e7c5dbec578296fd2 Mon Sep 17 00:00:00 2001 From: Caolán McNamara Date: Tue, 7 May 2019 12:27:43 +0100 Subject: weld conditional formatting MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: Ia9c99a17d5a95d67a412cfde959192c99caa70be Reviewed-on: https://gerrit.libreoffice.org/71956 Tested-by: Jenkins Reviewed-by: Caolán McNamara Tested-by: Caolán McNamara --- sc/source/ui/inc/condformatdlg.hxx | 86 +++++++-------- sc/source/ui/inc/condformatdlgentry.hxx | 189 +++++++++++++++++--------------- sc/source/ui/inc/tabvwsh.hxx | 3 - 3 files changed, 140 insertions(+), 138 deletions(-) (limited to 'sc/source/ui/inc') diff --git a/sc/source/ui/inc/condformatdlg.hxx b/sc/source/ui/inc/condformatdlg.hxx index ed1ef668c171..a2f9bae21864 100644 --- a/sc/source/ui/inc/condformatdlg.hxx +++ b/sc/source/ui/inc/condformatdlg.hxx @@ -31,83 +31,82 @@ class ScViewData; class ScCondFormatDlg; -class ScCondFormatList : public Control +class ScCondFormatList { private: - typedef std::vector> EntryContainer; + std::unique_ptr mxScrollWindow; + std::unique_ptr mxGrid; + + typedef std::vector> EntryContainer; EntryContainer maEntries; - bool mbHasScrollBar; bool mbFrozen; bool mbNewEntry; - VclPtr mpScrollBar; ScDocument* mpDoc; ScAddress maPos; ScRangeList maRanges; - VclPtr mpDialogParent; - - void DoScroll(long nDiff); + ScCondFormatDlg* mpDialogParent; public: - ScCondFormatList(vcl::Window* pParent, WinBits nStyle); - virtual ~ScCondFormatList() override; - virtual void dispose() override; - - void init(ScDocument* pDoc, ScCondFormatDlg* pDialogParent, const ScConditionalFormat* pFormat, + ScCondFormatList(ScCondFormatDlg* pParent, + std::unique_ptr xWindow, + std::unique_ptr xGrid); + weld::ScrolledWindow* GetWidget() { return mxScrollWindow.get(); } + weld::Container* GetContainer() { return mxGrid.get(); } + ~ScCondFormatList(); + + void init(ScDocument* pDoc, const ScConditionalFormat* pFormat, const ScRangeList& rRanges, const ScAddress& rPos, condformat::dialog::ScCondFormatDialogType eType); void SetRange(const ScRangeList& rRange); - virtual Size GetOptimalSize() const override; - virtual void queue_resize(StateChangedType eReason = StateChangedType::Layout) override; - virtual void Resize() override; - std::unique_ptr GetConditionalFormat() const; + weld::Window* GetFrameWeld(); void Freeze() { mbFrozen = true; } void Thaw() { mbFrozen = false; } void RecalcAll(); - DECL_LINK( AddBtnHdl, Button*, void ); - DECL_LINK( RemoveBtnHdl, Button*, void ); - DECL_LINK( UpBtnHdl, Button*, void ); - DECL_LINK( DownBtnHdl, Button*, void ); - DECL_LINK( ScrollHdl, ScrollBar*, void ); + DECL_LINK( AddBtnHdl, weld::Button&, void ); + DECL_LINK( RemoveBtnHdl, weld::Button&, void ); + DECL_LINK( UpBtnHdl, weld::Button&, void ); + DECL_LINK( DownBtnHdl, weld::Button&, void ); + DECL_LINK( ScrollHdl, weld::ScrolledWindow&, void ); DECL_LINK( EntrySelectHdl, ScCondFrmtEntry&, void ); - DECL_LINK( TypeListHdl, ListBox&, void ); + DECL_LINK( TypeListHdl, weld::ComboBox&, void ); DECL_LINK( AfterTypeListHdl, void*, void ); - DECL_LINK( ColFormatTypeHdl, ListBox&, void ); + DECL_LINK( ColFormatTypeHdl, weld::ComboBox&, void ); + DECL_LINK( AfterColFormatTypeHdl, void*, void ); }; -class ScCondFormatDlg : public ScAnyRefDlg +class ScCondFormatDlg : public ScAnyRefDlgController { private: - VclPtr mpBtnOk; - VclPtr mpBtnAdd; - VclPtr mpBtnRemove; - VclPtr mpBtnUp; - VclPtr mpBtnDown; - VclPtr mpBtnCancel; - VclPtr mpFtRange; - VclPtr mpEdRange; - VclPtr mpRbRange; - - VclPtr mpCondFormList; sal_Int32 mnKey; ScAddress maPos; ScViewData* mpViewData; - VclPtr mpLastEdit; - std::shared_ptr mpDlgItem; OUString msBaseTitle; - void updateTitle(); - DECL_LINK( EdRangeModifyHdl, Edit&, void ); + formula::WeldRefEdit* mpLastEdit; + std::unique_ptr mxBtnOk; + std::unique_ptr mxBtnAdd; + std::unique_ptr mxBtnRemove; + std::unique_ptr mxBtnUp; + std::unique_ptr mxBtnDown; + std::unique_ptr mxBtnCancel; + std::unique_ptr mxFtRange; + std::unique_ptr mxEdRange; + std::unique_ptr mxRbRange; + std::unique_ptr mxCondFormList; + + void updateTitle(); + DECL_LINK( EdRangeModifyHdl, formula::WeldRefEdit&, void ); protected: virtual void RefInputDone( bool bForced = false ) override; @@ -115,10 +114,9 @@ protected: void CancelPressed(); public: - SC_DLLPUBLIC ScCondFormatDlg(SfxBindings* pB, SfxChildWindow* pCW, vcl::Window* pWindow, + SC_DLLPUBLIC ScCondFormatDlg(SfxBindings* pB, SfxChildWindow* pCW, weld::Window* pWindow, ScViewData* pViewData, const ScCondFormatDlgItem* pDlgItem); virtual ~ScCondFormatDlg() override; - virtual void dispose() override; SC_DLLPUBLIC std::unique_ptr GetConditionalFormat() const; @@ -126,13 +124,13 @@ public: virtual bool IsRefInputMode() const override; virtual void SetActive() override; virtual bool IsTableLocked() const override; - virtual bool Close() override; + virtual void Close() override; void InvalidateRefData(); void OnSelectionChange(size_t nIndex, size_t nSize, bool bSelected = true); - DECL_LINK( BtnPressedHdl, Button*, void ); - DECL_LINK( RangeGetFocusHdl, Control&, void ); + DECL_LINK( BtnPressedHdl, weld::Button&, void ); + DECL_LINK( RangeGetFocusHdl, formula::WeldRefEdit&, void ); }; #endif diff --git a/sc/source/ui/inc/condformatdlgentry.hxx b/sc/source/ui/inc/condformatdlgentry.hxx index a46360555d7c..83ba66460ec4 100644 --- a/sc/source/ui/inc/condformatdlgentry.hxx +++ b/sc/source/ui/inc/condformatdlgentry.hxx @@ -15,12 +15,14 @@ #include #include #include +#include #include #include class ScIconSetFrmtDataEntry; class ScCondFormatDlg; -class SvxColorListBox; +class ScCondFormatList; +class ColorListBox; class ScColorScaleFormat; class ScDataBarFormat; class ScIconSetFormat; @@ -45,22 +47,27 @@ enum ScCondFrmtEntryType } -class ScCondFrmtEntry : public VclContainer - , public VclBuilderContainer +class ScCondFrmtEntry { +protected: + ScCondFormatList* mpParent; + std::unique_ptr mxBuilder; + private: - bool mbActive; + //general ui elements + std::unique_ptr mxBorder; + std::unique_ptr mxGrid; + std::unique_ptr mxFtCondNr; + std::unique_ptr mxFtCondition; + bool mbActive; + OUString const maStrCondition; Link maClickHdl; - //general ui elements - VclPtr maGrid; - VclPtr maFtCondNr; - VclPtr maFtCondition; + DECL_LINK( EntrySelectHdl, const MouseEvent&, bool ); - OUString const maStrCondition; protected: - VclPtr maLbType; + std::unique_ptr mxLbType; ScDocument* mpDoc; ScAddress maPos; @@ -71,18 +78,20 @@ protected: virtual OUString GetExpressionString() = 0; public: - ScCondFrmtEntry( vcl::Window* pParent, ScDocument* pDoc, const ScAddress& rPos ); - virtual ~ScCondFrmtEntry() override; - virtual Size calculateRequisition() const override; - virtual void setAllocation(const Size &rAllocation) override; - virtual void dispose() override; + ScCondFrmtEntry(ScCondFormatList* pParent, ScDocument* pDoc, const ScAddress& rPos); + virtual ~ScCondFrmtEntry(); + + void Show() { mxGrid->show(); } + void Hide() { mxGrid->hide(); } - virtual bool EventNotify( NotifyEvent& rNEvt ) override; + void set_grid_top_attach(int nAttach) { mxBorder->set_grid_top_attach(nAttach); } + int get_grid_top_attach() const { return mxBorder->get_grid_top_attach(); } + + Size get_preferred_size() const { return mxBorder->get_preferred_size(); } void SetPos(const ScAddress& rPos) { maPos = rPos; }; bool IsSelected() const { return mbActive;} void SetIndex(sal_Int32 nIndex); - void SetHeight(); virtual ScFormatEntry* GetEntry() const = 0; virtual void SetActive() = 0; @@ -94,13 +103,15 @@ public: class ScConditionFrmtEntry : public ScCondFrmtEntry, public SfxListener { //cond format ui elements - VclPtr maLbCondType; - VclPtr maEdVal1; - VclPtr maEdVal2; - VclPtr maFtVal; - VclPtr maFtStyle; - VclPtr maLbStyle; - VclPtr maWdPreview; + FontPrevWindow maWdPreview; + std::unique_ptr mxLbCondType; + std::unique_ptr mxEdVal1; + std::unique_ptr mxEdVal2; + std::unique_ptr mxFtVal; + std::unique_ptr mxFtStyle; + std::unique_ptr mxLbStyle; + std::unique_ptr mxWdPreviewWin; + std::unique_ptr mxWdPreview; bool mbIsInStyleCreate; static const sal_Int32 NUM_COND_ENTRIES = 24; @@ -111,9 +122,9 @@ class ScConditionFrmtEntry : public ScCondFrmtEntry, public SfxListener virtual OUString GetExpressionString() override; void Init(ScCondFormatDlg* pDialogParent); - DECL_LINK( StyleSelectHdl, ListBox&, void ); - DECL_LINK( ConditionTypeSelectHdl, ListBox&, void ); - DECL_LINK( OnEdChanged, Edit&, void ); + DECL_LINK( StyleSelectHdl, weld::ComboBox&, void ); + DECL_LINK( ConditionTypeSelectHdl, weld::ComboBox&, void ); + DECL_LINK( OnEdChanged, formula::WeldRefEdit&, void ); // Searches the lookup table for the entry position, given condition mode static sal_Int32 ConditionModeToEntryPos( ScConditionMode eMode ); @@ -127,10 +138,9 @@ protected: virtual void Deselect() override; public: - ScConditionFrmtEntry( vcl::Window* pParent, ScDocument* pDoc, ScCondFormatDlg* pDialogParent, - const ScAddress& rPos, const ScCondFormatEntry* pFormatEntry = nullptr ); + ScConditionFrmtEntry(ScCondFormatList* pParent, ScDocument* pDoc, ScCondFormatDlg* pDialogParent, + const ScAddress& rPos, const ScCondFormatEntry* pFormatEntry = nullptr); virtual ~ScConditionFrmtEntry() override; - virtual void dispose() override; virtual ScFormatEntry* GetEntry() const override; virtual void SetActive() override; @@ -143,21 +153,22 @@ public: class ScFormulaFrmtEntry : public ScCondFrmtEntry { - VclPtr maFtStyle; - VclPtr maLbStyle; - VclPtr maWdPreview; - VclPtr maEdFormula; + FontPrevWindow maWdPreview; + std::unique_ptr mxFtStyle; + std::unique_ptr mxLbStyle; + std::unique_ptr mxWdPreviewWin; + std::unique_ptr mxWdPreview; + std::unique_ptr mxEdFormula; ScFormatEntry* createFormulaEntry() const; virtual OUString GetExpressionString() override; void Init(ScCondFormatDlg* pDialogParent); - DECL_LINK( StyleSelectHdl, ListBox&, void ); + DECL_LINK(StyleSelectHdl, weld::ComboBox&, void); public: - ScFormulaFrmtEntry( vcl::Window* pParent, ScDocument* PDoc, ScCondFormatDlg* pDialogParent, const ScAddress& rPos, const ScCondFormatEntry* pFormatEntry = nullptr ); + ScFormulaFrmtEntry(ScCondFormatList* pParent, ScDocument* PDoc, ScCondFormatDlg* pDialogParent, const ScAddress& rPos, const ScCondFormatEntry* pFormatEntry = nullptr); virtual ~ScFormulaFrmtEntry() override; - virtual void dispose() override; virtual ScFormatEntry* GetEntry() const override; virtual void SetActive() override; @@ -169,31 +180,30 @@ class ScColorScale2FrmtEntry : public ScCondFrmtEntry { //color format ui elements - VclPtr maLbColorFormat; + std::unique_ptr mxLbColorFormat; //color scale ui elements - VclPtr maLbEntryTypeMin; - VclPtr maLbEntryTypeMax; + std::unique_ptr mxLbEntryTypeMin; + std::unique_ptr mxLbEntryTypeMax; - VclPtr maEdMin; - VclPtr maEdMax; + std::unique_ptr mxEdMin; + std::unique_ptr mxEdMax; - VclPtr maLbColMin; - VclPtr maLbColMax; + std::unique_ptr mxLbColMin; + std::unique_ptr mxLbColMax; - VclPtr maFtMin; - VclPtr maFtMax; + std::unique_ptr mxFtMin; + std::unique_ptr mxFtMax; ScFormatEntry* createColorscaleEntry() const; virtual OUString GetExpressionString() override; void Init(); - DECL_LINK( EntryTypeHdl, ListBox&, void ); + DECL_LINK( EntryTypeHdl, weld::ComboBox&, void ); public: - ScColorScale2FrmtEntry( vcl::Window* pParent, ScDocument* pDoc, const ScAddress& rPos, const ScColorScaleFormat* pFormat = nullptr ); + ScColorScale2FrmtEntry(ScCondFormatList* pParent, ScDocument* pDoc, const ScAddress& rPos, const ScColorScaleFormat* pFormat = nullptr); virtual ~ScColorScale2FrmtEntry() override; - virtual void dispose() override; virtual ScFormatEntry* GetEntry() const override; virtual void SetActive() override; virtual void SetInactive() override; @@ -204,34 +214,33 @@ class ScColorScale3FrmtEntry : public ScCondFrmtEntry { //color format ui elements - VclPtr maLbColorFormat; + std::unique_ptr mxLbColorFormat; //color scale ui elements - VclPtr maLbEntryTypeMin; - VclPtr maLbEntryTypeMiddle; - VclPtr maLbEntryTypeMax; + std::unique_ptr mxLbEntryTypeMin; + std::unique_ptr mxLbEntryTypeMiddle; + std::unique_ptr mxLbEntryTypeMax; - VclPtr maEdMin; - VclPtr maEdMiddle; - VclPtr maEdMax; + std::unique_ptr mxEdMin; + std::unique_ptr mxEdMiddle; + std::unique_ptr mxEdMax; - VclPtr maLbColMin; - VclPtr maLbColMiddle; - VclPtr maLbColMax; + std::unique_ptr mxLbColMin; + std::unique_ptr mxLbColMiddle; + std::unique_ptr mxLbColMax; - VclPtr maFtMin; - VclPtr maFtMax; + std::unique_ptr mxFtMin; + std::unique_ptr mxFtMax; ScFormatEntry* createColorscaleEntry() const; virtual OUString GetExpressionString() override; void Init(); - DECL_LINK( EntryTypeHdl, ListBox&, void ); + DECL_LINK( EntryTypeHdl, weld::ComboBox&, void ); public: - ScColorScale3FrmtEntry( vcl::Window* pParent, ScDocument* pDoc, const ScAddress& rPos, const ScColorScaleFormat* pFormat = nullptr ); + ScColorScale3FrmtEntry(ScCondFormatList* pParent, ScDocument* pDoc, const ScAddress& rPos, const ScColorScaleFormat* pFormat = nullptr); virtual ~ScColorScale3FrmtEntry() override; - virtual void dispose() override; virtual ScFormatEntry* GetEntry() const override; virtual void SetActive() override; virtual void SetInactive() override; @@ -241,18 +250,17 @@ public: class ScDataBarFrmtEntry : public ScCondFrmtEntry { //color format ui elements - VclPtr maLbColorFormat; + std::unique_ptr mxLbColorFormat; //data bar ui elements - VclPtr maLbDataBarMinType; - VclPtr maLbDataBarMaxType; - VclPtr maEdDataBarMin; - VclPtr maEdDataBarMax; - - VclPtr maBtOptions; + std::unique_ptr mxLbDataBarMinType; + std::unique_ptr mxLbDataBarMaxType; + std::unique_ptr mxEdDataBarMin; + std::unique_ptr mxEdDataBarMax; + std::unique_ptr mxBtOptions; - VclPtr maFtMin; - VclPtr maFtMax; + std::unique_ptr mxFtMin; + std::unique_ptr mxFtMax; std::unique_ptr mpDataBarData; @@ -261,12 +269,11 @@ class ScDataBarFrmtEntry : public ScCondFrmtEntry virtual OUString GetExpressionString() override; void Init(); - DECL_LINK( OptionBtnHdl, Button*, void ); - DECL_LINK( DataBarTypeSelectHdl, ListBox&, void ); + DECL_LINK( OptionBtnHdl, weld::Button&, void ); + DECL_LINK( DataBarTypeSelectHdl, weld::ComboBox&, void ); public: - ScDataBarFrmtEntry( vcl::Window* pParemt, ScDocument* pDoc, const ScAddress& rPos, const ScDataBarFormat* pFormat = nullptr ); + ScDataBarFrmtEntry(ScCondFormatList* pParemt, ScDocument* pDoc, const ScAddress& rPos, const ScDataBarFormat* pFormat = nullptr); virtual ~ScDataBarFrmtEntry() override; - virtual void dispose() override; virtual ScFormatEntry* GetEntry() const override; virtual void SetActive() override; virtual void SetInactive() override; @@ -277,9 +284,8 @@ public: class ScDateFrmtEntry : public ScCondFrmtEntry, public SfxListener { public: - ScDateFrmtEntry( vcl::Window* pParent, ScDocument* pDoc, const ScCondDateFormatEntry* pFormat = nullptr ); + ScDateFrmtEntry(ScCondFormatList* pParent, ScDocument* pDoc, const ScCondDateFormatEntry* pFormat = nullptr); virtual ~ScDateFrmtEntry() override; - virtual void dispose() override; virtual ScFormatEntry* GetEntry() const override; virtual void SetActive() override; virtual void SetInactive() override; @@ -293,12 +299,14 @@ protected: private: void Init(); - DECL_LINK( StyleSelectHdl, ListBox&, void ); + DECL_LINK( StyleSelectHdl, weld::ComboBox&, void ); - VclPtr maLbDateEntry; - VclPtr maFtStyle; - VclPtr maLbStyle; - VclPtr maWdPreview; + FontPrevWindow maWdPreview; + std::unique_ptr mxLbDateEntry; + std::unique_ptr mxFtStyle; + std::unique_ptr mxLbStyle; + std::unique_ptr mxWdPreviewWin; + std::unique_ptr mxWdPreview; bool mbIsInStyleCreate; }; @@ -306,26 +314,25 @@ private: class ScIconSetFrmtEntry : public ScCondFrmtEntry { //color format ui elements - VclPtr maLbColorFormat; + std::unique_ptr mxLbColorFormat; // icon set ui elements - VclPtr maLbIconSetType; + std::unique_ptr mxLbIconSetType; - VclPtr maIconParent; + std::unique_ptr mxIconParent; - typedef std::vector> ScIconSetFrmtDataEntriesType; + typedef std::vector> ScIconSetFrmtDataEntriesType; ScIconSetFrmtDataEntriesType maEntries; virtual OUString GetExpressionString() override; void Init(); - DECL_LINK( IconSetTypeHdl, ListBox&, void ); + DECL_LINK(IconSetTypeHdl, weld::ComboBox&, void); public: - ScIconSetFrmtEntry( vcl::Window* pParent, ScDocument* pDoc, const ScAddress& rPos, const ScIconSetFormat* pFormat = nullptr ); + ScIconSetFrmtEntry(ScCondFormatList* pParent, ScDocument* pDoc, const ScAddress& rPos, const ScIconSetFormat* pFormat = nullptr); virtual ~ScIconSetFrmtEntry() override; - virtual void dispose() override; virtual ScFormatEntry* GetEntry() const override; virtual void SetActive() override; virtual void SetInactive() override; diff --git a/sc/source/ui/inc/tabvwsh.hxx b/sc/source/ui/inc/tabvwsh.hxx index a572751e8192..1d5ab9612d0a 100644 --- a/sc/source/ui/inc/tabvwsh.hxx +++ b/sc/source/ui/inc/tabvwsh.hxx @@ -325,9 +325,6 @@ public: void DeactivateOle(); static ScTabViewShell* GetActiveViewShell(); - VclPtr CreateRefDialog( SfxBindings* pB, SfxChildWindow* pCW, - const SfxChildWinInfo* pInfo, - vcl::Window* pParent, sal_uInt16 nSlotId ); std::unique_ptr CreateRefDialogController(SfxBindings* pB, SfxChildWindow* pCW, const SfxChildWinInfo* pInfo, -- cgit