summaryrefslogtreecommitdiffstats
path: root/include/svtools/editbrowsebox.hxx
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2020-07-09 20:16:22 +0100
committerCaolán McNamara <caolanm@redhat.com>2020-07-12 18:16:22 +0200
commit8328d84a0ce8c1b9592ce0dbab17dbbecc423b3c (patch)
treeb25fd10fd460280b1e03d5057dffde1e95cf0bb8 /include/svtools/editbrowsebox.hxx
parentcheck if the "realhandler" is the tracking window (diff)
downloadcore-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.hxx53
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;