diff options
author | Caolán McNamara <caolanm@redhat.com> | 2020-07-03 20:09:37 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2020-07-06 14:53:21 +0200 |
commit | d5b3c5d5093c56e748610a3972fc90b1521ae9e3 (patch) | |
tree | 96aa4b2b0509d233830c690ef3992cfb9c55e7bf /include | |
parent | 291f1776a661cd5d809fbe385efd1e1c8432ddd1 (diff) |
weld DbNumericField item
Change-Id: I96b7945cdf9f00c3d0a4e043ee77666e19c8a072
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/97896
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'include')
-rw-r--r-- | include/svtools/editbrowsebox.hxx | 88 |
1 files changed, 48 insertions, 40 deletions
diff --git a/include/svtools/editbrowsebox.hxx b/include/svtools/editbrowsebox.hxx index 1e24ced1d8ed..128c16021ca0 100644 --- a/include/svtools/editbrowsebox.hxx +++ b/include/svtools/editbrowsebox.hxx @@ -186,26 +186,37 @@ namespace svt virtual void Paste() override; }; - class SVT_DLLPUBLIC EditControlBase : public InterimItemWindow + class SVT_DLLPUBLIC ControlBase : public InterimItemWindow { public: - EditControlBase(BrowserDataWin* pParent); + ControlBase(BrowserDataWin* pParent, const OUString& rUIXMLDescription, const OString& rID); + + bool ControlHasFocus() const; virtual void dispose() override; - virtual void GetFocus() override - { - if (m_pEntry) - m_pEntry->grab_focus(); - InterimItemWindow::GetFocus(); - } + virtual void GetFocus() override; + + protected: + void InitControlBase(weld::Widget* pWidget); + + private: + weld::Widget* m_pWidget; + }; + + class SVT_DLLPUBLIC EditControlBase : public ControlBase + { + public: + EditControlBase(BrowserDataWin* pParent); + + virtual void dispose() override; weld::Entry& get_widget() { return *m_pEntry; } virtual void connect_changed(const Link<weld::Entry&, void>& rLink) = 0; protected: - void init(weld::Entry* pEntry); + void InitEditControlBase(weld::Entry* pEntry); private: weld::Entry* m_pEntry; @@ -422,9 +433,7 @@ namespace svt DECL_LINK(ModifyHdl, LinkParamNone*, void); }; - //= SpinCellController - class UNLESS_MERGELIBS(SVT_DLLPUBLIC) SpinCellController final : public CellController { public: @@ -440,9 +449,7 @@ namespace svt DECL_LINK(ModifyHdl, Edit&, void); }; - //= CheckBoxControl - class SVT_DLLPUBLIC CheckBoxControl final : public Control { VclPtr<CheckBox> pBox; @@ -489,19 +496,12 @@ namespace svt }; //= ComboBoxControl - class SVT_DLLPUBLIC ComboBoxControl final : public InterimItemWindow + class SVT_DLLPUBLIC ComboBoxControl final : public ControlBase { friend class ComboBoxCellController; public: - ComboBoxControl(vcl::Window* pParent); - - virtual void GetFocus() override - { - if (m_xWidget) - m_xWidget->grab_focus(); - InterimItemWindow::GetFocus(); - } + ComboBoxControl(BrowserDataWin* pParent); weld::ComboBox& get_widget() { return *m_xWidget; } @@ -529,19 +529,12 @@ namespace svt }; //= ListBoxControl - class SVT_DLLPUBLIC ListBoxControl final : public InterimItemWindow + class SVT_DLLPUBLIC ListBoxControl final : public ControlBase { friend class ListBoxCellController; public: - ListBoxControl(vcl::Window* pParent); - - virtual void GetFocus() override - { - if (m_xWidget) - m_xWidget->grab_focus(); - InterimItemWindow::GetFocus(); - } + ListBoxControl(BrowserDataWin* pParent); weld::ComboBox& get_widget() { return *m_xWidget; } @@ -567,30 +560,43 @@ namespace svt DECL_LINK(ListBoxSelectHdl, weld::ComboBox&, void); }; - class SVT_DLLPUBLIC FormattedControl : public EditControlBase + class SVT_DLLPUBLIC FormattedControlBase : public EditControlBase { public: - FormattedControl(BrowserDataWin* pParent); + FormattedControlBase(BrowserDataWin* pParent, bool bSpinVariant); virtual void dispose() override; - virtual void connect_changed(const Link<weld::Entry&, void>& rLink) override - { - m_xEntryFormatter->connect_changed(rLink); - } + virtual void connect_changed(const Link<weld::Entry&, void>& rLink) override; - weld::EntryFormatter& get_formatter() { return *m_xEntryFormatter; } + weld::EntryFormatter& get_formatter(); - private: + protected: + bool m_bSpinVariant; std::unique_ptr<weld::Entry> m_xEntry; + std::unique_ptr<weld::FormattedSpinButton> m_xSpinButton; std::unique_ptr<weld::EntryFormatter> m_xEntryFormatter; + + void InitFormattedControlBase(); + }; + + class SVT_DLLPUBLIC FormattedControl : public FormattedControlBase + { + public: + FormattedControl(BrowserDataWin* pParent, bool bSpinVariant); + }; + + class SVT_DLLPUBLIC DoubleNumericControl : public FormattedControlBase + { + public: + DoubleNumericControl(BrowserDataWin* pParent, bool bSpinVariant); }; //= FormattedFieldCellController class SVT_DLLPUBLIC FormattedFieldCellController final : public EditCellController { public: - FormattedFieldCellController( FormattedControl* _pFormatted ); + FormattedFieldCellController( FormattedControlBase* _pFormatted ); virtual void CommitModifications() override; }; @@ -827,6 +833,8 @@ namespace svt SVT_DLLPRIVATE void implActivateCellOnMouseEvent(const BrowserMouseEvent& _rEvt, bool _bUp); + bool ControlHasFocus() const; + DECL_DLLPRIVATE_LINK( ModifyHdl, LinkParamNone*, void ); DECL_DLLPRIVATE_LINK( StartEditHdl, void*, void ); DECL_DLLPRIVATE_LINK( EndEditHdl, void*, void ); |