+ if (m_yScrollingEnabled)
+ m_targetWindow->ScrollWindow(0, -m_yScrollPixelsPerLine * nScrollInc, (const wxRect *) NULL);
+ else
+ m_targetWindow->Refresh();
+ }
+}
+
+int wxScrolledWindow::CalcScrollInc(wxScrollWinEvent& event)
+{
+ int pos = event.GetPosition();
+ int orient = event.GetOrientation();
+
+ int nScrollInc = 0;
+ switch (event.GetEventType())
+ {
+ case wxEVT_SCROLLWIN_TOP:
+ {
+ if (orient == wxHORIZONTAL)
+ nScrollInc = - m_xScrollPosition;
+ else
+ nScrollInc = - m_yScrollPosition;
+ break;
+ }
+ case wxEVT_SCROLLWIN_BOTTOM:
+ {
+ if (orient == wxHORIZONTAL)
+ nScrollInc = m_xScrollLines - m_xScrollPosition;
+ else
+ nScrollInc = m_yScrollLines - m_yScrollPosition;
+ break;
+ }
+ case wxEVT_SCROLLWIN_LINEUP:
+ {
+ nScrollInc = -1;
+ break;
+ }
+ case wxEVT_SCROLLWIN_LINEDOWN:
+ {
+ nScrollInc = 1;
+ break;
+ }
+ case wxEVT_SCROLLWIN_PAGEUP:
+ {
+ if (orient == wxHORIZONTAL)
+ nScrollInc = -GetScrollPageSize(wxHORIZONTAL);
+ else
+ nScrollInc = -GetScrollPageSize(wxVERTICAL);
+ break;
+ }
+ case wxEVT_SCROLLWIN_PAGEDOWN:
+ {
+ if (orient == wxHORIZONTAL)
+ nScrollInc = GetScrollPageSize(wxHORIZONTAL);
+ else
+ nScrollInc = GetScrollPageSize(wxVERTICAL);
+ break;
+ }
+ case wxEVT_SCROLLWIN_THUMBTRACK:
+ {
+ if (orient == wxHORIZONTAL)
+ nScrollInc = pos - m_xScrollPosition;
+ else
+ nScrollInc = pos - m_yScrollPosition;
+ break;
+ }
+ default:
+ {
+ break;
+ }