diff options
Diffstat (limited to 'vcl/source/control/slider.cxx')
-rw-r--r-- | vcl/source/control/slider.cxx | 130 |
1 files changed, 65 insertions, 65 deletions
diff --git a/vcl/source/control/slider.cxx b/vcl/source/control/slider.cxx index 61841ef4c216..24c84d0a3a3e 100644 --- a/vcl/source/control/slider.cxx +++ b/vcl/source/control/slider.cxx @@ -178,27 +178,27 @@ void Slider::ImplUpdateRects( bool bUpdate ) maThumbRect.SetEmpty(); } - if ( bUpdate ) + if ( !bUpdate ) + return; + + if ( aOldThumbRect == maThumbRect ) + return; + + if( bInvalidateAll ) + Invalidate(InvalidateFlags::NoChildren | InvalidateFlags::NoErase); + else { - if ( aOldThumbRect != maThumbRect ) - { - if( bInvalidateAll ) - Invalidate(InvalidateFlags::NoChildren | InvalidateFlags::NoErase); - else - { - vcl::Region aInvalidRegion( aOldThumbRect ); - aInvalidRegion.Union( maThumbRect ); + vcl::Region aInvalidRegion( aOldThumbRect ); + aInvalidRegion.Union( maThumbRect ); - if( !IsBackground() && GetParent() ) - { - const Point aPos( GetPosPixel() ); - aInvalidRegion.Move( aPos.X(), aPos.Y() ); - GetParent()->Invalidate( aInvalidRegion, InvalidateFlags::Transparent | InvalidateFlags::Update ); - } - else - Invalidate( aInvalidRegion ); - } + if( !IsBackground() && GetParent() ) + { + const Point aPos( GetPosPixel() ); + aInvalidRegion.Move( aPos.X(), aPos.Y() ); + GetParent()->Invalidate( aInvalidRegion, InvalidateFlags::Transparent | InvalidateFlags::Update ); } + else + Invalidate( aInvalidRegion ); } } @@ -444,21 +444,21 @@ void Slider::ImplDraw(vcl::RenderContext& rRenderContext) } } - if (!maThumbRect.IsEmpty()) + if (maThumbRect.IsEmpty()) + return; + + if (bEnabled) { - if (bEnabled) - { - nStyle = DrawButtonFlags::NONE; - if (mnStateFlags & SLIDER_STATE_THUMB_DOWN) - nStyle |= DrawButtonFlags::Pressed; - aDecoView.DrawButton(maThumbRect, nStyle); - } - else - { - rRenderContext.SetLineColor(rStyleSettings.GetShadowColor()); - rRenderContext.SetFillColor(rStyleSettings.GetCheckedColor()); - rRenderContext.DrawRect(maThumbRect); - } + nStyle = DrawButtonFlags::NONE; + if (mnStateFlags & SLIDER_STATE_THUMB_DOWN) + nStyle |= DrawButtonFlags::Pressed; + aDecoView.DrawButton(maThumbRect, nStyle); + } + else + { + rRenderContext.SetLineColor(rStyleSettings.GetShadowColor()); + rRenderContext.SetFillColor(rStyleSettings.GetCheckedColor()); + rRenderContext.DrawRect(maThumbRect); } } @@ -604,43 +604,43 @@ void Slider::ImplDoSlideAction( ScrollType eScrollType ) void Slider::MouseButtonDown( const MouseEvent& rMEvt ) { - if ( rMEvt.IsLeft() ) - { - const Point& rMousePos = rMEvt.GetPosPixel(); - StartTrackingFlags nTrackFlags = StartTrackingFlags::NONE; + if ( !rMEvt.IsLeft() ) + return; - if ( maThumbRect.IsInside( rMousePos ) ) - { - meScrollType = ScrollType::Drag; + const Point& rMousePos = rMEvt.GetPosPixel(); + StartTrackingFlags nTrackFlags = StartTrackingFlags::NONE; - // calculate additional values - Point aCenterPos = maThumbRect.Center(); - if ( GetStyle() & WB_HORZ ) - mnMouseOff = rMousePos.X()-aCenterPos.X(); - else - mnMouseOff = rMousePos.Y()-aCenterPos.Y(); - } - else if ( ImplIsPageUp( rMousePos ) ) - { - nTrackFlags = StartTrackingFlags::ButtonRepeat; - meScrollType = ScrollType::PageUp; - } - else if ( ImplIsPageDown( rMousePos ) ) - { - nTrackFlags = StartTrackingFlags::ButtonRepeat; - meScrollType = ScrollType::PageDown; - } + if ( maThumbRect.IsInside( rMousePos ) ) + { + meScrollType = ScrollType::Drag; - // Shall we start Tracking? - if( meScrollType != ScrollType::DontKnow ) - { - // store Start position for cancel and EndScroll delta - mnStartPos = mnThumbPos; - ImplDoMouseAction( rMousePos, /*bCallAction*/true ); - PaintImmediately(); + // calculate additional values + Point aCenterPos = maThumbRect.Center(); + if ( GetStyle() & WB_HORZ ) + mnMouseOff = rMousePos.X()-aCenterPos.X(); + else + mnMouseOff = rMousePos.Y()-aCenterPos.Y(); + } + else if ( ImplIsPageUp( rMousePos ) ) + { + nTrackFlags = StartTrackingFlags::ButtonRepeat; + meScrollType = ScrollType::PageUp; + } + else if ( ImplIsPageDown( rMousePos ) ) + { + nTrackFlags = StartTrackingFlags::ButtonRepeat; + meScrollType = ScrollType::PageDown; + } - StartTracking( nTrackFlags ); - } + // Shall we start Tracking? + if( meScrollType != ScrollType::DontKnow ) + { + // store Start position for cancel and EndScroll delta + mnStartPos = mnThumbPos; + ImplDoMouseAction( rMousePos, /*bCallAction*/true ); + PaintImmediately(); + + StartTracking( nTrackFlags ); } } |