diff options
author | Caolán McNamara <caolanm@redhat.com> | 2020-07-09 20:16:22 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2020-07-12 18:16:22 +0200 |
commit | 8328d84a0ce8c1b9592ce0dbab17dbbecc423b3c (patch) | |
tree | b25fd10fd460280b1e03d5057dffde1e95cf0bb8 /include/svtools/editbrowsebox.hxx | |
parent | check if the "realhandler" is the tracking window (diff) | |
download | core-8328d84a0ce8c1b9592ce0dbab17dbbecc423b3c.tar.gz core-8328d84a0ce8c1b9592ce0dbab17dbbecc423b3c.zip |
weld CheckBoxControl
Change-Id: Iea057189ab17c1fdaf6663f1c328b9d288d97a18
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/98532
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'include/svtools/editbrowsebox.hxx')
-rw-r--r-- | include/svtools/editbrowsebox.hxx | 53 |
1 files changed, 33 insertions, 20 deletions
diff --git a/include/svtools/editbrowsebox.hxx b/include/svtools/editbrowsebox.hxx index cbeb152c15d1..3b21aaea53c4 100644 --- a/include/svtools/editbrowsebox.hxx +++ b/include/svtools/editbrowsebox.hxx @@ -37,7 +37,6 @@ class BrowserDataWin; class Button; -class CheckBox; class SpinField; // EditBrowseBoxFlags (EBBF) @@ -219,11 +218,10 @@ namespace svt virtual bool ProcessKey(const KeyEvent& rKEvt); + virtual void Draw(OutputDevice* pDevice, const Point& rPos, DrawFlags nFlags) override; protected: void InitControlBase(weld::Widget* pWidget); - virtual void Draw(OutputDevice* pDevice, const Point& rPos, DrawFlags nFlags) override; - DECL_LINK(KeyInputHdl, const KeyEvent&, bool); private: weld::Widget* m_pWidget; @@ -580,33 +578,48 @@ namespace svt }; //= CheckBoxControl - class SVT_DLLPUBLIC CheckBoxControl final : public Control + class SVT_DLLPUBLIC CheckBoxControl final : public ControlBase { - VclPtr<CheckBox> pBox; - Link<VclPtr<CheckBox>,void> m_aClickLink; - Link<LinkParamNone*,void> m_aModifyLink; + std::unique_ptr<weld::CheckButton> m_xBox; + Link<weld::Button&,void> m_aClickLink; + Link<LinkParamNone*,void> m_aModify1Hdl; + Link<LinkParamNone*,void> m_aModify2Hdl; + bool m_bTriState; public: - CheckBoxControl(vcl::Window* pParent); + CheckBoxControl(BrowserDataWin* pParent); virtual ~CheckBoxControl() override; virtual void dispose() override; - virtual void GetFocus() override; - virtual bool PreNotify(NotifyEvent& rEvt) override; - virtual void Paint(vcl::RenderContext& rRenderContext, const tools::Rectangle& rClientRect) override; - virtual void Draw( OutputDevice* pDev, const Point& rPos, DrawFlags nFlags ) override; - virtual void StateChanged( StateChangedType nStateChange ) override; - virtual void DataChanged( const DataChangedEvent& _rEvent ) override; - virtual void Resize() override; + void SetClickHdl(const Link<weld::Button&,void>& rHdl) {m_aClickLink = rHdl;} - void SetClickHdl(const Link<VclPtr<CheckBox>,void>& rHdl) {m_aClickLink = rHdl;} + // sets a link to call when the text is changed by the user + void SetModifyHdl(const Link<LinkParamNone*,void>& rHdl) + { + m_aModify1Hdl = rHdl; + } - void SetModifyHdl(const Link<LinkParamNone*,void>& rHdl) {m_aModifyLink = rHdl;} + // sets an additional link to call when the text is changed by the user + void SetAuxModifyHdl(const Link<LinkParamNone*,void>& rLink) + { + m_aModify2Hdl = rLink; + } - CheckBox& GetBox() {return *pBox;}; + void SetState(TriState eState); + TriState GetState() const { return m_xBox->get_state(); } + + void EnableTriState(bool bTriState); + + weld::CheckButton& GetBox() {return *m_xBox;}; private: - DECL_LINK( OnClick, Button*, void ); + DECL_LINK(OnClick, weld::Button&, void); + + void CallModifyHdls() + { + m_aModify1Hdl.Call(nullptr); + m_aModify2Hdl.Call(nullptr); + } }; //= CheckBoxCellController @@ -615,7 +628,7 @@ namespace svt public: CheckBoxCellController(CheckBoxControl* pWin); - CheckBox& GetCheckBox() const; + weld::CheckButton& GetCheckBox() const; virtual bool IsValueChangedFromSaved() const override; virtual void SaveValue() override; |