X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/9bb3f212e26b4685f0c6ed7281d50b658ecc1491..345ff9c65b3ef17709785708b224dfcbf5135583:/src/generic/vscroll.cpp diff --git a/src/generic/vscroll.cpp b/src/generic/vscroll.cpp index 248ea31c66..7ce1079c42 100644 --- a/src/generic/vscroll.cpp +++ b/src/generic/vscroll.cpp @@ -2,7 +2,7 @@ // Name: src/generic/vscroll.cpp // Purpose: wxVScrolledWindow implementation // Author: Vadim Zeitlin -// Modified by: Brad Anderson +// Modified by: Brad Anderson, David Warkentin // Created: 30.05.03 // RCS-ID: $Id$ // Copyright: (c) 2003 Vadim Zeitlin @@ -53,7 +53,7 @@ public: private: wxVarScrollHelperBase *m_scrollHelper; - DECLARE_NO_COPY_CLASS(wxVarScrollHelperEvtHandler) + wxDECLARE_NO_COPY_CLASS(wxVarScrollHelperEvtHandler); }; // ============================================================================ @@ -144,7 +144,7 @@ bool wxVarScrollHelperEvtHandler::ProcessEvent(wxEvent& event) wxVarScrollHelperBase::wxVarScrollHelperBase(wxWindow *win) { - wxASSERT_MSG( win, _T("associated window can't be NULL in wxVarScrollHelperBase") ); + wxASSERT_MSG( win, wxT("associated window can't be NULL in wxVarScrollHelperBase") ); #if wxUSE_MOUSEWHEEL m_sumWheelRotation = 0; @@ -155,8 +155,9 @@ wxVarScrollHelperBase::wxVarScrollHelperBase(wxWindow *win) m_unitFirst = 0; m_win = - m_targetWindow = (wxWindow *)NULL; + m_targetWindow = NULL; + m_physicalScrolling = true; m_handler = NULL; m_win = win; @@ -331,7 +332,7 @@ size_t wxVarScrollHelperBase::GetNewScrollPosition(wxScrollWinEvent& event) cons } // unknown scroll event? - wxFAIL_MSG( _T("unknown scroll event type?") ); + wxFAIL_MSG( wxT("unknown scroll event type?") ); return 0; } @@ -475,7 +476,7 @@ void wxVarScrollHelperBase::RefreshUnit(size_t unit) void wxVarScrollHelperBase::RefreshUnits(size_t from, size_t to) { - wxASSERT_MSG( from <= to, _T("RefreshUnits(): empty range") ); + wxASSERT_MSG( from <= to, wxT("RefreshUnits(): empty range") ); // clump the range to just the visible units -- it is useless to refresh // the other ones @@ -592,7 +593,7 @@ bool wxVarScrollHelperBase::DoScrollToUnit(size_t unit) // to avoid flicker. We can't do this if we have children because they // won't be scrolled if ( m_targetWindow->GetChildren().empty() && - GetVisibleBegin() >= unitLastOld || GetVisibleEnd() <= unitFirstOld ) + (GetVisibleBegin() >= unitLastOld || GetVisibleEnd() <= unitFirstOld) ) { // the simplest case: we don't have any old units left, just redraw // everything @@ -600,7 +601,12 @@ bool wxVarScrollHelperBase::DoScrollToUnit(size_t unit) } else // scroll the window { + // Avoid scrolling visible parts of the screen on Mac +#ifdef __WXMAC__ + if (m_physicalScrolling && m_targetWindow->IsShownOnScreen()) +#else if ( m_physicalScrolling ) +#endif { wxCoord dx = 0, dy = GetUnitsSize(GetVisibleBegin(), unitFirstOld); @@ -811,7 +817,7 @@ void wxVarHVScrollHelper::RefreshRowsColumns(size_t fromRow, size_t toRow, size_t fromColumn, size_t toColumn) { wxASSERT_MSG( fromRow <= toRow || fromColumn <= toColumn, - _T("RefreshRowsColumns(): empty range") ); + wxT("RefreshRowsColumns(): empty range") ); // clump the range to just the visible units -- it is useless to refresh // the other ones @@ -930,7 +936,7 @@ IMPLEMENT_ABSTRACT_CLASS(wxHVScrolledWindow, wxPanel) // wxVarVScrollLegacyAdaptor // =========================================================================== -size_t wxVarVScrollLegacyAdaptor::GetFirstVisibleLine() const +size_t wxVarVScrollLegacyAdaptor::GetFirstVisibleLine() const { return GetVisibleRowsBegin(); } size_t wxVarVScrollLegacyAdaptor::GetLastVisibleLine() const @@ -947,23 +953,36 @@ void wxVarVScrollLegacyAdaptor::RefreshLine(size_t line) void wxVarVScrollLegacyAdaptor::RefreshLines(size_t from, size_t to) { RefreshRows(from, to); } - + bool wxVarVScrollLegacyAdaptor::ScrollToLine(size_t line) { return ScrollToRow(line); } bool wxVarVScrollLegacyAdaptor::ScrollLines(int lines) { return ScrollRows(lines); } - + bool wxVarVScrollLegacyAdaptor::ScrollPages(int pages) { return ScrollRowPages(pages); } wxCoord wxVarVScrollLegacyAdaptor::OnGetLineHeight(size_t WXUNUSED(n)) const { - wxFAIL_MSG( _T("OnGetLineHeight() must be overridden if OnGetRowHeight() isn't!") ); + wxFAIL_MSG( wxT("OnGetLineHeight() must be overridden if OnGetRowHeight() isn't!") ); return -1; } -void wxVarVScrollLegacyAdaptor::OnGetLinesHint( size_t WXUNUSED(lineMin), size_t WXUNUSED(lineMax)) const -{ } +void wxVarVScrollLegacyAdaptor::OnGetLinesHint(size_t WXUNUSED(lineMin), + size_t WXUNUSED(lineMax)) const +{ +} -#endif +wxCoord wxVarVScrollLegacyAdaptor::OnGetRowHeight(size_t n) const +{ + return OnGetLineHeight(n); +} + +void wxVarVScrollLegacyAdaptor::OnGetRowsHeightHint(size_t rowMin, + size_t rowMax) const +{ + OnGetLinesHint(rowMin, rowMax); +} + +#endif // WXWIN_COMPATIBILITY_2_8