Kaydet (Commit) c16de2eb authored tarafından Tor Lillqvist's avatar Tor Lillqvist

Factor out identical code for vertical and horizontal scrollbar

Change-Id: Ifc4925feccea9c35654356120b157f27d7cbfd3b
üst 671b7378
...@@ -1197,26 +1197,19 @@ sal_Bool Window::HandleScrollCommand( const CommandEvent& rCmd, ...@@ -1197,26 +1197,19 @@ sal_Bool Window::HandleScrollCommand( const CommandEvent& rCmd,
// ----------------------------------------------------------------------- // -----------------------------------------------------------------------
// Not that when called for COMMAND_WHEEL above, despite its name, static void lcl_HandleScrollHelper( ScrollBar* pScrl, long nN )
// pVScrl isn't necessarily the vertical scroll bar. Depending on
// whether the scroll is horizontal or vertical, it is either the
// horizontal or vertical scroll bar. nY is correspondingly either
// the horizontal or vertical scroll amount.
void Window::ImplHandleScroll( ScrollBar* pHScrl, long nX,
ScrollBar* pVScrl, long nY )
{ {
if ( pHScrl && nX && pHScrl->IsEnabled() && pHScrl->IsInputEnabled() && ! pHScrl->IsInModalMode() ) if ( pScrl && nN && pScrl->IsEnabled() && pScrl->IsInputEnabled() && ! pScrl->IsInModalMode() )
{ {
long nNewPos = pHScrl->GetThumbPos(); long nNewPos = pScrl->GetThumbPos();
if ( nX == -LONG_MAX ) if ( nN == -LONG_MAX )
nNewPos += pHScrl->GetPageSize(); nNewPos += pScrl->GetPageSize();
else if ( nX == LONG_MAX ) else if ( nN == LONG_MAX )
nNewPos -= pHScrl->GetPageSize(); nNewPos -= pScrl->GetPageSize();
else else
{ {
const double fVal = (double)nNewPos - ((double)nX * pHScrl->GetLineSize()); const double fVal = (double)nNewPos - ((double)nN * pScrl->GetLineSize());
if ( fVal < LONG_MIN ) if ( fVal < LONG_MIN )
nNewPos = LONG_MIN; nNewPos = LONG_MIN;
...@@ -1226,31 +1219,22 @@ void Window::ImplHandleScroll( ScrollBar* pHScrl, long nX, ...@@ -1226,31 +1219,22 @@ void Window::ImplHandleScroll( ScrollBar* pHScrl, long nX,
nNewPos = (long)fVal; nNewPos = (long)fVal;
} }
pHScrl->DoScroll( nNewPos ); pScrl->DoScroll( nNewPos );
} }
if ( pVScrl && nY && pVScrl->IsEnabled() && pVScrl->IsInputEnabled() && ! pVScrl->IsInModalMode() ) }
{
long nNewPos = pVScrl->GetThumbPos();
if ( nY == -LONG_MAX )
nNewPos += pVScrl->GetPageSize();
else if ( nY == LONG_MAX )
nNewPos -= pVScrl->GetPageSize();
else
{
const double fVal = (double)nNewPos - ((double)nY * pVScrl->GetLineSize());
if ( fVal < LONG_MIN ) // Note that when called for COMMAND_WHEEL above, despite its name,
nNewPos = LONG_MIN; // pVScrl isn't necessarily the vertical scroll bar. Depending on
else if ( fVal > LONG_MAX ) // whether the scroll is horizontal or vertical, it is either the
nNewPos = LONG_MAX; // horizontal or vertical scroll bar. nY is correspondingly either
else // the horizontal or vertical scroll amount.
nNewPos = (long)fVal;
}
pVScrl->DoScroll( nNewPos ); void Window::ImplHandleScroll( ScrollBar* pHScrl, long nX,
} ScrollBar* pVScrl, long nY )
{
lcl_HandleScrollHelper( pHScrl, nX );
lcl_HandleScrollHelper( pVScrl, nY );
} }
DockingManager* Window::GetDockingManager() DockingManager* Window::GetDockingManager()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment