diff options
author | Szymon Kłos <szymon.klos@collabora.com> | 2020-07-16 11:06:49 +0200 |
---|---|---|
committer | Szymon Kłos <szymon.klos@collabora.com> | 2020-07-16 13:24:53 +0200 |
commit | b1b95b80b54819ced62443d3c87ec6ced27f81a9 (patch) | |
tree | e31a282fa59222031f26f0012f07d17bec135d24 /vcl | |
parent | a48ab89fe259d385f20a14f62c9cd9bc7b5b36e9 (diff) |
Move SalInstanceTextView dect to header file
Change-Id: I779f860fec5203db3493663ff61d7b06167ff685
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/98882
Tested-by: Jenkins
Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
Diffstat (limited to 'vcl')
-rw-r--r-- | vcl/inc/salvtables.hxx | 57 | ||||
-rw-r--r-- | vcl/source/app/salvtables.cxx | 252 |
2 files changed, 175 insertions, 134 deletions
diff --git a/vcl/inc/salvtables.hxx b/vcl/inc/salvtables.hxx index d5061b3e066c..cd82c840694f 100644 --- a/vcl/inc/salvtables.hxx +++ b/vcl/inc/salvtables.hxx @@ -1243,4 +1243,61 @@ public: virtual ~SalInstanceToolbar() override; }; +class SalInstanceTextView : public SalInstanceContainer, public virtual weld::TextView +{ +private: + VclPtr<VclMultiLineEdit> m_xTextView; + Link<ScrollBar*, void> m_aOrigVScrollHdl; + + DECL_LINK(ChangeHdl, Edit&, void); + DECL_LINK(VscrollHdl, ScrollBar*, void); + DECL_LINK(CursorListener, VclWindowEvent&, void); + +public: + SalInstanceTextView(VclMultiLineEdit* pTextView, SalInstanceBuilder* pBuilder, + bool bTakeOwnership); + + virtual void set_text(const OUString& rText) override; + + virtual void replace_selection(const OUString& rText) override; + + virtual OUString get_text() const override; + + bool get_selection_bounds(int& rStartPos, int& rEndPos) override; + + virtual void select_region(int nStartPos, int nEndPos) override; + + virtual void set_editable(bool bEditable) override; + virtual bool get_editable() const override; + virtual void set_max_length(int nChars) override; + + virtual void set_monospace(bool bMonospace) override; + + virtual void connect_cursor_position(const Link<TextView&, void>& rLink) override; + + virtual bool can_move_cursor_with_up() const override; + + virtual bool can_move_cursor_with_down() const override; + + virtual void cut_clipboard() override; + + virtual void copy_clipboard() override; + + virtual void paste_clipboard() override; + + virtual void set_alignment(TxtAlign eXAlign) override; + + virtual int vadjustment_get_value() const override; + + virtual void vadjustment_set_value(int value) override; + + virtual int vadjustment_get_upper() const override; + + virtual int vadjustment_get_lower() const override; + + virtual int vadjustment_get_page_size() const override; + + virtual ~SalInstanceTextView() override; +}; + /* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */ diff --git a/vcl/source/app/salvtables.cxx b/vcl/source/app/salvtables.cxx index 74436a1644e9..3581b14a8afb 100644 --- a/vcl/source/app/salvtables.cxx +++ b/vcl/source/app/salvtables.cxx @@ -5448,164 +5448,148 @@ std::unique_ptr<weld::Label> SalInstanceFrame::weld_label_widget() const return std::make_unique<SalInstanceLabel>(pLabel, m_pBuilder, false); } -namespace -{ -class SalInstanceTextView : public SalInstanceContainer, public virtual weld::TextView +SalInstanceTextView::SalInstanceTextView(VclMultiLineEdit* pTextView, SalInstanceBuilder* pBuilder, + bool bTakeOwnership) + : SalInstanceContainer(pTextView, pBuilder, bTakeOwnership) + , m_xTextView(pTextView) { -private: - VclPtr<VclMultiLineEdit> m_xTextView; - Link<ScrollBar*, void> m_aOrigVScrollHdl; - - DECL_LINK(ChangeHdl, Edit&, void); - DECL_LINK(VscrollHdl, ScrollBar*, void); - DECL_LINK(CursorListener, VclWindowEvent&, void); + m_xTextView->SetModifyHdl(LINK(this, SalInstanceTextView, ChangeHdl)); + ScrollBar& rVertScrollBar = m_xTextView->GetVScrollBar(); + m_aOrigVScrollHdl = rVertScrollBar.GetScrollHdl(); + rVertScrollBar.SetScrollHdl(LINK(this, SalInstanceTextView, VscrollHdl)); +} -public: - SalInstanceTextView(VclMultiLineEdit* pTextView, SalInstanceBuilder* pBuilder, - bool bTakeOwnership) - : SalInstanceContainer(pTextView, pBuilder, bTakeOwnership) - , m_xTextView(pTextView) - { - m_xTextView->SetModifyHdl(LINK(this, SalInstanceTextView, ChangeHdl)); - ScrollBar& rVertScrollBar = m_xTextView->GetVScrollBar(); - m_aOrigVScrollHdl = rVertScrollBar.GetScrollHdl(); - rVertScrollBar.SetScrollHdl(LINK(this, SalInstanceTextView, VscrollHdl)); - } +void SalInstanceTextView::set_text(const OUString& rText) +{ + disable_notify_events(); + m_xTextView->SetText(rText); + enable_notify_events(); +} - virtual void set_text(const OUString& rText) override - { - disable_notify_events(); - m_xTextView->SetText(rText); - enable_notify_events(); - } +void SalInstanceTextView::replace_selection(const OUString& rText) +{ + disable_notify_events(); + m_xTextView->ReplaceSelected(rText); + enable_notify_events(); +} - virtual void replace_selection(const OUString& rText) override - { - disable_notify_events(); - m_xTextView->ReplaceSelected(rText); - enable_notify_events(); - } +OUString SalInstanceTextView::get_text() const { return m_xTextView->GetText(); } - virtual OUString get_text() const override { return m_xTextView->GetText(); } +bool SalInstanceTextView::get_selection_bounds(int& rStartPos, int& rEndPos) +{ + const Selection& rSelection = m_xTextView->GetSelection(); + rStartPos = rSelection.Min(); + rEndPos = rSelection.Max(); + return rSelection.Len(); +} - bool get_selection_bounds(int& rStartPos, int& rEndPos) override - { - const Selection& rSelection = m_xTextView->GetSelection(); - rStartPos = rSelection.Min(); - rEndPos = rSelection.Max(); - return rSelection.Len(); - } +void SalInstanceTextView::select_region(int nStartPos, int nEndPos) +{ + disable_notify_events(); + long nStart = nStartPos < 0 ? SELECTION_MAX : nStartPos; + long nEnd = nEndPos < 0 ? SELECTION_MAX : nEndPos; + m_xTextView->SetSelection(Selection(nStart, nEnd)); + enable_notify_events(); +} - virtual void select_region(int nStartPos, int nEndPos) override - { - disable_notify_events(); - long nStart = nStartPos < 0 ? SELECTION_MAX : nStartPos; - long nEnd = nEndPos < 0 ? SELECTION_MAX : nEndPos; - m_xTextView->SetSelection(Selection(nStart, nEnd)); - enable_notify_events(); - } +void SalInstanceTextView::set_editable(bool bEditable) { m_xTextView->SetReadOnly(!bEditable); } +bool SalInstanceTextView::get_editable() const { return !m_xTextView->IsReadOnly(); } +void SalInstanceTextView::set_max_length(int nChars) { m_xTextView->SetMaxTextLen(nChars); } - virtual void set_editable(bool bEditable) override { m_xTextView->SetReadOnly(!bEditable); } - virtual bool get_editable() const override { return !m_xTextView->IsReadOnly(); } - virtual void set_max_length(int nChars) override { m_xTextView->SetMaxTextLen(nChars); } +void SalInstanceTextView::set_monospace(bool bMonospace) +{ + vcl::Font aOrigFont = m_xTextView->GetControlFont(); + vcl::Font aFont; + if (bMonospace) + aFont = OutputDevice::GetDefaultFont(DefaultFontType::UI_FIXED, LANGUAGE_DONTKNOW, + GetDefaultFontFlags::OnlyOne, m_xTextView); + else + aFont = Application::GetSettings().GetStyleSettings().GetFieldFont(); + aFont.SetFontHeight(aOrigFont.GetFontHeight()); + m_xTextView->SetFont(aFont); + m_xTextView->SetControlFont(aFont); +} - virtual void set_monospace(bool bMonospace) override - { - vcl::Font aOrigFont = m_xTextView->GetControlFont(); - vcl::Font aFont; - if (bMonospace) - aFont = OutputDevice::GetDefaultFont(DefaultFontType::UI_FIXED, LANGUAGE_DONTKNOW, - GetDefaultFontFlags::OnlyOne, m_xTextView); - else - aFont = Application::GetSettings().GetStyleSettings().GetFieldFont(); - aFont.SetFontHeight(aOrigFont.GetFontHeight()); - m_xTextView->SetFont(aFont); - m_xTextView->SetControlFont(aFont); - } +void SalInstanceTextView::connect_cursor_position(const Link<TextView&, void>& rLink) +{ + assert(!m_aCursorPositionHdl.IsSet()); + m_xTextView->AddEventListener(LINK(this, SalInstanceTextView, CursorListener)); + weld::TextView::connect_cursor_position(rLink); +} - virtual void connect_cursor_position(const Link<TextView&, void>& rLink) override - { - assert(!m_aCursorPositionHdl.IsSet()); - m_xTextView->AddEventListener(LINK(this, SalInstanceTextView, CursorListener)); - weld::TextView::connect_cursor_position(rLink); - } +bool SalInstanceTextView::can_move_cursor_with_up() const +{ + bool bNoSelection = !m_xTextView->GetSelection(); + return !bNoSelection || m_xTextView->CanUp(); +} - virtual bool can_move_cursor_with_up() const override - { - bool bNoSelection = !m_xTextView->GetSelection(); - return !bNoSelection || m_xTextView->CanUp(); - } +bool SalInstanceTextView::can_move_cursor_with_down() const +{ + bool bNoSelection = !m_xTextView->GetSelection(); + return !bNoSelection || m_xTextView->CanDown(); +} - virtual bool can_move_cursor_with_down() const override - { - bool bNoSelection = !m_xTextView->GetSelection(); - return !bNoSelection || m_xTextView->CanDown(); - } +void SalInstanceTextView::cut_clipboard() +{ + m_xTextView->Cut(); +} - virtual void cut_clipboard() override - { - m_xTextView->Cut(); - } +void SalInstanceTextView::copy_clipboard() +{ + m_xTextView->Copy(); +} - virtual void copy_clipboard() override - { - m_xTextView->Copy(); - } +void SalInstanceTextView::paste_clipboard() +{ + m_xTextView->Paste(); +} - virtual void paste_clipboard() override - { - m_xTextView->Paste(); - } +void SalInstanceTextView::set_alignment(TxtAlign eXAlign) +{ + ::set_alignment(*m_xTextView, eXAlign); +} - virtual void set_alignment(TxtAlign eXAlign) override - { - ::set_alignment(*m_xTextView, eXAlign); - } +int SalInstanceTextView::vadjustment_get_value() const +{ + ScrollBar& rVertScrollBar = m_xTextView->GetVScrollBar(); + return rVertScrollBar.GetThumbPos(); +} - virtual int vadjustment_get_value() const override - { - ScrollBar& rVertScrollBar = m_xTextView->GetVScrollBar(); - return rVertScrollBar.GetThumbPos(); - } +void SalInstanceTextView::vadjustment_set_value(int value) +{ + ScrollBar& rVertScrollBar = m_xTextView->GetVScrollBar(); + rVertScrollBar.SetThumbPos(value); + m_aOrigVScrollHdl.Call(&rVertScrollBar); +} - virtual void vadjustment_set_value(int value) override - { - ScrollBar& rVertScrollBar = m_xTextView->GetVScrollBar(); - rVertScrollBar.SetThumbPos(value); - m_aOrigVScrollHdl.Call(&rVertScrollBar); - } +int SalInstanceTextView::vadjustment_get_upper() const +{ + ScrollBar& rVertScrollBar = m_xTextView->GetVScrollBar(); + return rVertScrollBar.GetRangeMax(); +} - virtual int vadjustment_get_upper() const override - { - ScrollBar& rVertScrollBar = m_xTextView->GetVScrollBar(); - return rVertScrollBar.GetRangeMax(); - } +int SalInstanceTextView::vadjustment_get_lower() const +{ + ScrollBar& rVertScrollBar = m_xTextView->GetVScrollBar(); + return rVertScrollBar.GetRangeMin(); +} - virtual int vadjustment_get_lower() const override - { - ScrollBar& rVertScrollBar = m_xTextView->GetVScrollBar(); - return rVertScrollBar.GetRangeMin(); - } +int SalInstanceTextView::vadjustment_get_page_size() const +{ + ScrollBar& rVertScrollBar = m_xTextView->GetVScrollBar(); + return rVertScrollBar.GetVisibleSize(); +} - virtual int vadjustment_get_page_size() const override +SalInstanceTextView::~SalInstanceTextView() +{ + if (!m_xTextView->IsDisposed()) { + if (m_aCursorPositionHdl.IsSet()) + m_xTextView->RemoveEventListener(LINK(this, SalInstanceTextView, CursorListener)); + m_xTextView->SetModifyHdl(Link<Edit&, void>()); ScrollBar& rVertScrollBar = m_xTextView->GetVScrollBar(); - return rVertScrollBar.GetVisibleSize(); - } - - virtual ~SalInstanceTextView() override - { - if (!m_xTextView->IsDisposed()) - { - if (m_aCursorPositionHdl.IsSet()) - m_xTextView->RemoveEventListener(LINK(this, SalInstanceTextView, CursorListener)); - m_xTextView->SetModifyHdl(Link<Edit&, void>()); - ScrollBar& rVertScrollBar = m_xTextView->GetVScrollBar(); - rVertScrollBar.SetScrollHdl(m_aOrigVScrollHdl); - } + rVertScrollBar.SetScrollHdl(m_aOrigVScrollHdl); } -}; - } IMPL_LINK(SalInstanceTextView, VscrollHdl, ScrollBar*, pScrollBar, void) |