diff options
author | Caolán McNamara <caolanm@redhat.com> | 2019-02-23 13:42:55 +0000 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2019-02-27 22:18:22 +0100 |
commit | cfe41185bc8514949d1938ee1d7cd56968682510 (patch) | |
tree | 8d990aae964cf0ed6ed49c06a86133057481ae7d /vcl/source | |
parent | 3e1306c283c2aca372a8384801a1e206f208e1cb (diff) |
weld LicenseDialogImpl
Change-Id: I4b2dbd2446779e7179d2b79bf81cc2ff879377bf
Reviewed-on: https://gerrit.libreoffice.org/68389
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'vcl/source')
-rw-r--r-- | vcl/source/app/customweld.cxx | 12 | ||||
-rw-r--r-- | vcl/source/app/salvtables.cxx | 116 | ||||
-rw-r--r-- | vcl/source/edit/vclmedit.cxx | 155 |
3 files changed, 169 insertions, 114 deletions
diff --git a/vcl/source/app/customweld.cxx b/vcl/source/app/customweld.cxx index 110d2e727a0c..058ee0b7671d 100644 --- a/vcl/source/app/customweld.cxx +++ b/vcl/source/app/customweld.cxx @@ -46,19 +46,19 @@ IMPL_LINK(CustomWeld, DoPaint, weld::DrawingArea::draw_args, aPayload, void) m_rWidgetController.Paint(aPayload.first, aPayload.second); } -IMPL_LINK(CustomWeld, DoMouseButtonDown, const MouseEvent&, rMEvt, void) +IMPL_LINK(CustomWeld, DoMouseButtonDown, const MouseEvent&, rMEvt, bool) { - m_rWidgetController.MouseButtonDown(rMEvt); + return m_rWidgetController.MouseButtonDown(rMEvt); } -IMPL_LINK(CustomWeld, DoMouseMove, const MouseEvent&, rMEvt, void) +IMPL_LINK(CustomWeld, DoMouseMove, const MouseEvent&, rMEvt, bool) { - m_rWidgetController.MouseMove(rMEvt); + return m_rWidgetController.MouseMove(rMEvt); } -IMPL_LINK(CustomWeld, DoMouseButtonUp, const MouseEvent&, rMEvt, void) +IMPL_LINK(CustomWeld, DoMouseButtonUp, const MouseEvent&, rMEvt, bool) { - m_rWidgetController.MouseButtonUp(rMEvt); + return m_rWidgetController.MouseButtonUp(rMEvt); } IMPL_LINK_NOARG(CustomWeld, DoGetFocus, weld::Widget&, void) { m_rWidgetController.GetFocus(); } diff --git a/vcl/source/app/salvtables.cxx b/vcl/source/app/salvtables.cxx index d865351bec06..ce61bf6c69e5 100644 --- a/vcl/source/app/salvtables.cxx +++ b/vcl/source/app/salvtables.cxx @@ -499,6 +499,24 @@ public: weld::Widget::connect_size_allocate(rLink); } + virtual void connect_mouse_press(const Link<const MouseEvent&, bool>& rLink) override + { + ensure_event_listener(); + weld::Widget::connect_mouse_press(rLink); + } + + virtual void connect_mouse_move(const Link<const MouseEvent&, bool>& rLink) override + { + ensure_event_listener(); + weld::Widget::connect_mouse_move(rLink); + } + + virtual void connect_mouse_release(const Link<const MouseEvent&, bool>& rLink) override + { + ensure_event_listener(); + weld::Widget::connect_mouse_release(rLink); + } + virtual void connect_key_press(const Link<const KeyEvent&, bool>& rLink) override { ensure_key_listener(); @@ -604,6 +622,21 @@ void SalInstanceWidget::HandleEventListener(VclWindowEvent& rEvent) m_aFocusOutHdl.Call(*this); else if (rEvent.GetId() == VclEventId::WindowResize) m_aSizeAllocateHdl.Call(m_xWidget->GetSizePixel()); + else if (rEvent.GetId() == VclEventId::WindowMouseButtonDown) + { + const MouseEvent* pMouseEvent = static_cast<const MouseEvent*>(rEvent.GetData()); + m_aMousePressHdl.Call(*pMouseEvent); + } + else if (rEvent.GetId() == VclEventId::WindowMouseButtonUp) + { + const MouseEvent* pMouseEvent = static_cast<const MouseEvent*>(rEvent.GetData()); + m_aMouseReleaseHdl.Call(*pMouseEvent); + } + else if (rEvent.GetId() == VclEventId::WindowMouseMove) + { + const MouseEvent* pMouseEvent = static_cast<const MouseEvent*>(rEvent.GetData()); + m_aMouseMotionHdl.Call(*pMouseEvent); + } } bool SalInstanceWidget::HandleKeyEventListener(VclWindowEvent& rEvent) @@ -624,7 +657,6 @@ bool SalInstanceWidget::HandleKeyEventListener(VclWindowEvent& rEvent) return false; } - IMPL_LINK(SalInstanceWidget, EventListener, VclWindowEvent&, rEvent, void) { HandleEventListener(rEvent); @@ -1256,11 +1288,11 @@ public: } }; -IMPL_LINK_NOARG(SalInstanceScrolledWindow, VscrollHdl, ScrollBar*, void) +IMPL_LINK(SalInstanceScrolledWindow, VscrollHdl, ScrollBar*, pScrollBar, void) { signal_vadjustment_changed(); if (!m_bUserManagedScrolling) - m_aOrigVScrollHdl.Call(&m_xScrolledWindow->getVertScrollBar()); + m_aOrigVScrollHdl.Call(pScrollBar); } IMPL_LINK_NOARG(SalInstanceScrolledWindow, HscrollHdl, ScrollBar*, void) @@ -3241,14 +3273,19 @@ class SalInstanceTextView : public SalInstanceContainer, public virtual weld::Te { private: VclPtr<VclMultiLineEdit> m_xTextView; + Link<ScrollBar*,void> m_aOrigVScrollHdl; DECL_LINK(ChangeHdl, Edit&, void); + DECL_LINK(VscrollHdl, ScrollBar*, void); 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)); } virtual void set_text(const OUString& rText) override @@ -3299,12 +3336,54 @@ public: m_xTextView->SetControlFont(aFont); } + virtual int vadjustment_get_value() const override + { + ScrollBar& rVertScrollBar = m_xTextView->GetVScrollBar(); + return rVertScrollBar.GetThumbPos(); + } + + virtual void vadjustment_set_value(int value) override + { + ScrollBar& rVertScrollBar = m_xTextView->GetVScrollBar(); + rVertScrollBar.SetThumbPos(value); + m_aOrigVScrollHdl.Call(&rVertScrollBar); + } + + virtual int vadjustment_get_upper() const override + { + ScrollBar& rVertScrollBar = m_xTextView->GetVScrollBar(); + return rVertScrollBar.GetRangeMax(); + } + + virtual int vadjustment_get_lower() const override + { + ScrollBar& rVertScrollBar = m_xTextView->GetVScrollBar(); + return rVertScrollBar.GetRangeMin(); + } + + virtual int vadjustment_get_page_size() const override + { + ScrollBar& rVertScrollBar = m_xTextView->GetVScrollBar(); + return rVertScrollBar.GetVisibleSize(); + } + virtual ~SalInstanceTextView() override { - m_xTextView->SetModifyHdl(Link<Edit&, void>()); + if (!m_xTextView->IsDisposed()) + { + m_xTextView->SetModifyHdl(Link<Edit&, void>()); + ScrollBar& rVertScrollBar = m_xTextView->GetVScrollBar(); + rVertScrollBar.SetScrollHdl(m_aOrigVScrollHdl); + } } }; +IMPL_LINK(SalInstanceTextView, VscrollHdl, ScrollBar*, pScrollBar, void) +{ + signal_vadjustment_changed(); + m_aOrigVScrollHdl.Call(pScrollBar); +} + IMPL_LINK_NOARG(SalInstanceTextView, ChangeHdl, Edit&, void) { signal_changed(); @@ -3354,9 +3433,9 @@ private: typedef std::pair<vcl::RenderContext&, const tools::Rectangle&> target_and_area; DECL_LINK(PaintHdl, target_and_area, void); DECL_LINK(ResizeHdl, const Size&, void); - DECL_LINK(MousePressHdl, const MouseEvent&, void); - DECL_LINK(MouseMoveHdl, const MouseEvent&, void); - DECL_LINK(MouseReleaseHdl, const MouseEvent&, void); + DECL_LINK(MousePressHdl, const MouseEvent&, bool); + DECL_LINK(MouseMoveHdl, const MouseEvent&, bool); + DECL_LINK(MouseReleaseHdl, const MouseEvent&, bool); DECL_LINK(KeyPressHdl, const KeyEvent&, bool); DECL_LINK(KeyReleaseHdl, const KeyEvent&, bool); DECL_LINK(StyleUpdatedHdl, VclDrawingArea&, void); @@ -3368,7 +3447,10 @@ private: // in VclDrawingArea virtual void HandleEventListener(VclWindowEvent& rEvent) override { - if (rEvent.GetId() == VclEventId::WindowResize) + if (rEvent.GetId() == VclEventId::WindowResize || + rEvent.GetId() == VclEventId::WindowMouseButtonDown || + rEvent.GetId() == VclEventId::WindowMouseButtonUp || + rEvent.GetId() == VclEventId::WindowMouseMove) { return; } @@ -3471,9 +3553,9 @@ public: m_xDrawingArea->SetQueryTooltipHdl(Link<tools::Rectangle&, OUString>()); m_xDrawingArea->SetPopupMenuHdl(Link<const Point&, bool>()); m_xDrawingArea->SetStyleUpdatedHdl(Link<VclDrawingArea&, void>()); - m_xDrawingArea->SetMousePressHdl(Link<const MouseEvent&, void>()); - m_xDrawingArea->SetMouseMoveHdl(Link<const MouseEvent&, void>()); - m_xDrawingArea->SetMouseReleaseHdl(Link<const MouseEvent&, void>()); + m_xDrawingArea->SetMousePressHdl(Link<const MouseEvent&, bool>()); + m_xDrawingArea->SetMouseMoveHdl(Link<const MouseEvent&, bool>()); + m_xDrawingArea->SetMouseReleaseHdl(Link<const MouseEvent&, bool>()); m_xDrawingArea->SetKeyPressHdl(Link<const KeyEvent&, bool>()); m_xDrawingArea->SetKeyReleaseHdl(Link<const KeyEvent&, bool>()); m_xDrawingArea->SetResizeHdl(Link<const Size&, void>()); @@ -3499,19 +3581,19 @@ IMPL_LINK(SalInstanceDrawingArea, ResizeHdl, const Size&, rSize, void) m_aSizeAllocateHdl.Call(rSize); } -IMPL_LINK(SalInstanceDrawingArea, MousePressHdl, const MouseEvent&, rEvent, void) +IMPL_LINK(SalInstanceDrawingArea, MousePressHdl, const MouseEvent&, rEvent, bool) { - m_aMousePressHdl.Call(rEvent); + return m_aMousePressHdl.Call(rEvent); } -IMPL_LINK(SalInstanceDrawingArea, MouseMoveHdl, const MouseEvent&, rEvent, void) +IMPL_LINK(SalInstanceDrawingArea, MouseMoveHdl, const MouseEvent&, rEvent, bool) { - m_aMouseMotionHdl.Call(rEvent); + return m_aMouseMotionHdl.Call(rEvent); } -IMPL_LINK(SalInstanceDrawingArea, MouseReleaseHdl, const MouseEvent&, rEvent, void) +IMPL_LINK(SalInstanceDrawingArea, MouseReleaseHdl, const MouseEvent&, rEvent, bool) { - m_aMouseReleaseHdl.Call(rEvent); + return m_aMouseReleaseHdl.Call(rEvent); } IMPL_LINK(SalInstanceDrawingArea, KeyPressHdl, const KeyEvent&, rEvent, bool) diff --git a/vcl/source/edit/vclmedit.cxx b/vcl/source/edit/vclmedit.cxx index 77a168e9ef14..1a16612c650c 100644 --- a/vcl/source/edit/vclmedit.cxx +++ b/vcl/source/edit/vclmedit.cxx @@ -107,15 +107,20 @@ public: void InitFromStyle( WinBits nWinStyle ); TextWindow* GetTextWindow() { return mpTextWindow; } - ScrollBar* GetHScrollBar() { return mpHScrollBar; } - ScrollBar* GetVScrollBar() { return mpVScrollBar; } + ScrollBar& GetHScrollBar() { return *mpHScrollBar; } + ScrollBar& GetVScrollBar() { return *mpVScrollBar; } }; ImpVclMEdit::ImpVclMEdit( VclMultiLineEdit* pEdt, WinBits nWinStyle ) : pVclMultiLineEdit(pEdt) , mpTextWindow(VclPtr<TextWindow>::Create(pEdt)) + , mpHScrollBar(VclPtr<ScrollBar>::Create(pVclMultiLineEdit, WB_HSCROLL|WB_DRAG)) + , mpVScrollBar(VclPtr<ScrollBar>::Create(pVclMultiLineEdit, WB_VSCROLL|WB_DRAG)) + , mpScrollBox(VclPtr<ScrollBarBox>::Create(pVclMultiLineEdit, WB_SIZEABLE)) , mnTextWidth(0) { + mpVScrollBar->SetScrollHdl( LINK( this, ImpVclMEdit, ScrollHdl ) ); + mpHScrollBar->SetScrollHdl( LINK( this, ImpVclMEdit, ScrollHdl ) ); mpTextWindow->Show(); InitFromStyle( nWinStyle ); StartListening( *mpTextWindow->GetTextEngine() ); @@ -123,9 +128,9 @@ ImpVclMEdit::ImpVclMEdit( VclMultiLineEdit* pEdt, WinBits nWinStyle ) void ImpVclMEdit::ImpUpdateSrollBarVis( WinBits nWinStyle ) { - const bool bHaveVScroll = (nullptr != mpVScrollBar); - const bool bHaveHScroll = (nullptr != mpHScrollBar); - const bool bHaveScrollBox = (nullptr != mpScrollBox); + const bool bHaveVScroll = mpVScrollBar->IsVisible(); + const bool bHaveHScroll = mpHScrollBar->IsVisible(); + const bool bHaveScrollBox = mpScrollBox->IsVisible(); bool bNeedVScroll = ( nWinStyle & WB_VSCROLL ) == WB_VSCROLL; const bool bNeedHScroll = ( nWinStyle & WB_HSCROLL ) == WB_HSCROLL; @@ -146,39 +151,19 @@ void ImpVclMEdit::ImpUpdateSrollBarVis( WinBits nWinStyle ) bool bScrollbarsChanged = false; if ( bHaveVScroll != bNeedVScroll ) { - mpVScrollBar.disposeAndClear(); - mpVScrollBar = bNeedVScroll ? VclPtr<ScrollBar>::Create( pVclMultiLineEdit, WB_VSCROLL|WB_DRAG ) : nullptr; - - if ( bNeedVScroll ) - { - mpVScrollBar->Show(); - mpVScrollBar->SetScrollHdl( LINK( this, ImpVclMEdit, ScrollHdl ) ); - } - + mpVScrollBar->Show(bNeedVScroll); bScrollbarsChanged = true; } if ( bHaveHScroll != bNeedHScroll ) { - mpHScrollBar.disposeAndClear(); - mpHScrollBar = bNeedHScroll ? VclPtr<ScrollBar>::Create( pVclMultiLineEdit, WB_HSCROLL|WB_DRAG ) : nullptr; - - if ( bNeedHScroll ) - { - mpHScrollBar->Show(); - mpHScrollBar->SetScrollHdl( LINK( this, ImpVclMEdit, ScrollHdl ) ); - } - + mpHScrollBar->Show(bNeedHScroll); bScrollbarsChanged = true; } if ( bHaveScrollBox != bNeedScrollBox ) { - mpScrollBox.disposeAndClear(); - mpScrollBox = bNeedScrollBox ? VclPtr<ScrollBarBox>::Create( pVclMultiLineEdit, WB_SIZEABLE ) : nullptr; - - if ( bNeedScrollBox ) - mpScrollBox->Show(); + mpScrollBox->Show(bNeedScrollBox); } if ( bScrollbarsChanged ) @@ -229,46 +214,32 @@ ImpVclMEdit::~ImpVclMEdit() void ImpVclMEdit::ImpSetScrollBarRanges() { - if ( mpVScrollBar ) - { - const long nTextHeight = mpTextWindow->GetTextEngine()->GetTextHeight(); - mpVScrollBar->SetRange( Range( 0, nTextHeight-1 ) ); - } - if ( mpHScrollBar ) - { -// sal_uLong nTextWidth = mpTextWindow->GetTextEngine()->CalcTextWidth(); - // there is no Notify by width change -// sal_uLong nW = Max( (sal_uLong)mpTextWindow->GetOutputSizePixel().Width()*5, (sal_uLong)nTextWidth ); -// mpHScrollBar->SetRange( Range( 0, (long)nW ) ); - mpHScrollBar->SetRange( Range( 0, mnTextWidth-1 ) ); - } + const long nTextHeight = mpTextWindow->GetTextEngine()->GetTextHeight(); + mpVScrollBar->SetRange( Range( 0, nTextHeight-1 ) ); + + mpHScrollBar->SetRange( Range( 0, mnTextWidth-1 ) ); } void ImpVclMEdit::ImpInitScrollBars() { static const sal_Unicode sampleChar = { 'x' }; - if ( mpHScrollBar || mpVScrollBar ) - { - ImpSetScrollBarRanges(); - Size aCharBox; - aCharBox.setWidth( mpTextWindow->GetTextWidth( OUString(sampleChar) ) ); - aCharBox.setHeight( mpTextWindow->GetTextHeight() ); - Size aOutSz = mpTextWindow->GetOutputSizePixel(); - if ( mpHScrollBar ) - { - mpHScrollBar->SetVisibleSize( aOutSz.Width() ); - mpHScrollBar->SetPageSize( aOutSz.Width() * 8 / 10 ); - mpHScrollBar->SetLineSize( aCharBox.Width()*10 ); - ImpSetHScrollBarThumbPos(); - } - if ( mpVScrollBar ) - { - mpVScrollBar->SetVisibleSize( aOutSz.Height() ); - mpVScrollBar->SetPageSize( aOutSz.Height() * 8 / 10 ); - mpVScrollBar->SetLineSize( aCharBox.Height() ); - mpVScrollBar->SetThumbPos( mpTextWindow->GetTextView()->GetStartDocPos().Y() ); - } - } + + ImpSetScrollBarRanges(); + + Size aCharBox; + aCharBox.setWidth( mpTextWindow->GetTextWidth( OUString(sampleChar) ) ); + aCharBox.setHeight( mpTextWindow->GetTextHeight() ); + Size aOutSz = mpTextWindow->GetOutputSizePixel(); + + mpHScrollBar->SetVisibleSize( aOutSz.Width() ); + mpHScrollBar->SetPageSize( aOutSz.Width() * 8 / 10 ); + mpHScrollBar->SetLineSize( aCharBox.Width()*10 ); + ImpSetHScrollBarThumbPos(); + + mpVScrollBar->SetVisibleSize( aOutSz.Height() ); + mpVScrollBar->SetPageSize( aOutSz.Height() * 8 / 10 ); + mpVScrollBar->SetLineSize( aCharBox.Height() ); + mpVScrollBar->SetThumbPos( mpTextWindow->GetTextView()->GetStartDocPos().Y() ); } void ImpVclMEdit::ImpSetHScrollBarThumbPos() @@ -372,18 +343,18 @@ void ImpVclMEdit::Resize() long nSBWidth = pVclMultiLineEdit->GetSettings().GetStyleSettings().GetScrollBarSize(); nSBWidth = pVclMultiLineEdit->CalcZoom( nSBWidth ); - if ( mpHScrollBar ) + if (mpHScrollBar->IsVisible()) aSz.AdjustHeight( -(nSBWidth+1) ); - if ( mpVScrollBar ) + if (mpVScrollBar->IsVisible()) aSz.AdjustWidth( -(nSBWidth+1) ); - if ( !mpHScrollBar ) + if (!mpHScrollBar->IsVisible()) mpTextWindow->GetTextEngine()->SetMaxTextWidth( aSz.Width() ); else mpHScrollBar->setPosSizePixel( 0, aEditSize.Height()-nSBWidth, aSz.Width(), nSBWidth ); Point aTextWindowPos; - if ( mpVScrollBar ) + if (mpVScrollBar->IsVisible()) { if( AllSettings::GetLayoutRTL() ) { @@ -394,7 +365,7 @@ void ImpVclMEdit::Resize() mpVScrollBar->setPosSizePixel( aEditSize.Width()-nSBWidth, 0, nSBWidth, aSz.Height() ); } - if ( mpScrollBox ) + if (mpScrollBox->IsVisible()) mpScrollBox->setPosSizePixel( aSz.Width(), aSz.Height(), nSBWidth, nSBWidth ); Size aTextWindowSize( aSz ); @@ -478,9 +449,9 @@ void ImpVclMEdit::Notify( SfxBroadcaster&, const SfxHint& rHint ) switch (pTextHint->GetId()) { case SfxHintId::TextViewScrolled: - if ( mpHScrollBar ) + if (mpHScrollBar->IsVisible()) ImpSetHScrollBarThumbPos(); - if ( mpVScrollBar ) + if (mpVScrollBar->IsVisible()) mpVScrollBar->SetThumbPos( mpTextWindow->GetTextView()->GetStartDocPos().Y() ); break; @@ -496,7 +467,7 @@ void ImpVclMEdit::Notify( SfxBroadcaster&, const SfxHint& rHint ) break; case SfxHintId::TextFormatted: - if ( mpHScrollBar ) + if (mpHScrollBar->IsVisible()) { const long nWidth = mpTextWindow->GetTextEngine()->CalcTextWidth(); if ( nWidth != mnTextWidth ) @@ -598,9 +569,9 @@ Size ImpVclMEdit::CalcMinimumSize() const Size aSz( mpTextWindow->GetTextEngine()->CalcTextWidth(), mpTextWindow->GetTextEngine()->GetTextHeight() ); - if ( mpHScrollBar ) + if (mpHScrollBar->IsVisible()) aSz.AdjustHeight(mpHScrollBar->GetSizePixel().Height() ); - if ( mpVScrollBar ) + if (mpVScrollBar->IsVisible()) aSz.AdjustWidth(mpVScrollBar->GetSizePixel().Width() ); return aSz; @@ -625,9 +596,9 @@ Size ImpVclMEdit::CalcBlockSize( sal_uInt16 nColumns, sal_uInt16 nLines ) const else aSz.setWidth( mpTextWindow->GetTextEngine()->CalcTextWidth() ); - if ( mpHScrollBar ) + if (mpHScrollBar->IsVisible()) aSz.AdjustHeight(mpHScrollBar->GetSizePixel().Height() ); - if ( mpVScrollBar ) + if (mpVScrollBar->IsVisible()) aSz.AdjustWidth(mpVScrollBar->GetSizePixel().Width() ); return aSz; @@ -645,9 +616,9 @@ void ImpVclMEdit::GetMaxVisColumnsAndLines( sal_uInt16& rnCols, sal_uInt16& rnLi void ImpVclMEdit::Enable( bool bEnable ) { mpTextWindow->Enable( bEnable ); - if ( mpHScrollBar ) + if (mpHScrollBar->IsVisible()) mpHScrollBar->Enable( bEnable ); - if ( mpVScrollBar ) + if (mpVScrollBar->IsVisible()) mpVScrollBar->Enable( bEnable ); } @@ -658,7 +629,9 @@ bool ImpVclMEdit::HandleCommand( const CommandEvent& rCEvt ) ( rCEvt.GetCommand() == CommandEventId::StartAutoScroll ) || ( rCEvt.GetCommand() == CommandEventId::AutoScroll ) ) { - (void)mpTextWindow->HandleScrollCommand( rCEvt, mpHScrollBar, mpVScrollBar ); + ScrollBar* pHScrollBar = mpHScrollBar->IsVisible() ? mpHScrollBar.get() : nullptr; + ScrollBar* pVScrollBar = mpVScrollBar->IsVisible() ? mpVScrollBar.get() : nullptr; + (void)mpTextWindow->HandleScrollCommand(rCEvt, pHScrollBar, pVScrollBar); bDone = true; } return bDone; @@ -1437,38 +1410,38 @@ bool VclMultiLineEdit::PreNotify( NotifyEvent& rNEvt ) { case KEY_UP: { - if ( pImpVclMEdit->GetVScrollBar() ) - pImpVclMEdit->GetVScrollBar()->DoScrollAction( ScrollType::LineUp ); + if ( pImpVclMEdit->GetVScrollBar().IsVisible() ) + pImpVclMEdit->GetVScrollBar().DoScrollAction( ScrollType::LineUp ); } break; case KEY_DOWN: { - if ( pImpVclMEdit->GetVScrollBar() ) - pImpVclMEdit->GetVScrollBar()->DoScrollAction( ScrollType::LineDown ); + if ( pImpVclMEdit->GetVScrollBar().IsVisible() ) + pImpVclMEdit->GetVScrollBar().DoScrollAction( ScrollType::LineDown ); } break; case KEY_PAGEUP : { - if ( pImpVclMEdit->GetVScrollBar() ) - pImpVclMEdit->GetVScrollBar()->DoScrollAction( ScrollType::PageUp ); + if ( pImpVclMEdit->GetVScrollBar().IsVisible() ) + pImpVclMEdit->GetVScrollBar().DoScrollAction( ScrollType::PageUp ); } break; case KEY_PAGEDOWN: { - if ( pImpVclMEdit->GetVScrollBar() ) - pImpVclMEdit->GetVScrollBar()->DoScrollAction( ScrollType::PageDown ); + if ( pImpVclMEdit->GetVScrollBar().IsVisible() ) + pImpVclMEdit->GetVScrollBar().DoScrollAction( ScrollType::PageDown ); } break; case KEY_LEFT: { - if ( pImpVclMEdit->GetHScrollBar() ) - pImpVclMEdit->GetHScrollBar()->DoScrollAction( ScrollType::LineUp ); + if ( pImpVclMEdit->GetHScrollBar().IsVisible() ) + pImpVclMEdit->GetHScrollBar().DoScrollAction( ScrollType::LineUp ); } break; case KEY_RIGHT: { - if ( pImpVclMEdit->GetHScrollBar() ) - pImpVclMEdit->GetHScrollBar()->DoScrollAction( ScrollType::LineDown ); + if ( pImpVclMEdit->GetHScrollBar().IsVisible() ) + pImpVclMEdit->GetHScrollBar().DoScrollAction( ScrollType::LineDown ); } break; case KEY_HOME: @@ -1509,7 +1482,7 @@ TextView* VclMultiLineEdit::GetTextView() const return pImpVclMEdit->GetTextWindow()->GetTextView(); } -ScrollBar* VclMultiLineEdit::GetVScrollBar() const +ScrollBar& VclMultiLineEdit::GetVScrollBar() const { return pImpVclMEdit->GetVScrollBar(); } |