From 8aa40b04f87deb33b41efab7a6a28fc9fc053d8d Mon Sep 17 00:00:00 2001 From: Paul Cornett Date: Sun, 8 Feb 2009 20:51:44 +0000 Subject: [PATCH] do only what is necessary in SetScrollbars(), let the base class do the rest git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58773 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/gtk/scrolwin.h | 2 +- src/gtk/scrolwin.cpp | 55 +++++---------------------------------- 2 files changed, 8 insertions(+), 49 deletions(-) diff --git a/include/wx/gtk/scrolwin.h b/include/wx/gtk/scrolwin.h index 88cbc2494e..dac8d76689 100644 --- a/include/wx/gtk/scrolwin.h +++ b/include/wx/gtk/scrolwin.h @@ -18,6 +18,7 @@ class WXDLLIMPEXP_CORE wxScrollHelper : public wxScrollHelperBase { + typedef wxScrollHelperBase base_type; public: // default ctor doesn't do anything wxScrollHelper(wxWindow *win) : wxScrollHelperBase(win) { } @@ -70,7 +71,6 @@ private: int pixelsPerLine, int *posOld); -private: wxDECLARE_NO_COPY_CLASS(wxScrollHelper); }; diff --git a/src/gtk/scrolwin.cpp b/src/gtk/scrolwin.cpp index 76b7d458a9..f5e5b78e8c 100644 --- a/src/gtk/scrolwin.cpp +++ b/src/gtk/scrolwin.cpp @@ -10,14 +10,6 @@ // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -// ============================================================================ -// declarations -// ============================================================================ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - // For compilers that support precompilation, includes "wx.h". #include "wx/wxprec.h" @@ -26,11 +18,8 @@ #endif #include "wx/scrolwin.h" -#include "wx/gtk/private.h" -// ============================================================================ -// implementation -// ============================================================================ +#include // ---------------------------------------------------------------------------- // wxScrollHelper implementation @@ -39,41 +28,12 @@ void wxScrollHelper::SetScrollbars(int pixelsPerUnitX, int pixelsPerUnitY, int noUnitsX, int noUnitsY, int xPos, int yPos, - bool WXUNUSED(noRefresh)) + bool noRefresh) { - m_xScrollPixelsPerLine = pixelsPerUnitX; - m_yScrollPixelsPerLine = pixelsPerUnitY; - - int w = noUnitsX * pixelsPerUnitX; - int h = noUnitsY * pixelsPerUnitY; - m_targetWindow->SetVirtualSize( w ? w : wxDefaultCoord, - h ? h : wxDefaultCoord); - - GtkRange *sb = m_win->m_scrollBar[wxWindow::ScrollDir_Vert]; - gtk_range_set_value(sb, yPos); - sb = m_win->m_scrollBar[wxWindow::ScrollDir_Horz]; - gtk_range_set_value(sb, xPos); - - m_xScrollPosition = wxRound( m_win->m_scrollBar[wxWindow::ScrollDir_Horz]->adjustment->value ); - m_yScrollPosition = wxRound( m_win->m_scrollBar[wxWindow::ScrollDir_Vert]->adjustment->value ); - - // If the target is not the same as the window with the scrollbars, - // then we need to update the scrollbars here, since they won't have - // been updated by SetVirtualSize(). - if (m_targetWindow != m_win) - { - AdjustScrollbars(); - } - -#if 0 - if (!noRefresh) - { - int new_x = m_xScrollPixelsPerLine * m_xScrollPosition; - int new_y = m_yScrollPixelsPerLine * m_yScrollPosition; - - m_targetWindow->ScrollWindow( old_x - new_x, old_y - new_y ); - } -#endif + m_win->m_scrollBar[wxWindow::ScrollDir_Horz]->adjustment->value = xPos; + m_win->m_scrollBar[wxWindow::ScrollDir_Vert]->adjustment->value = yPos; + base_type::SetScrollbars( + pixelsPerUnitX, pixelsPerUnitY, noUnitsX, noUnitsY, xPos, yPos, noRefresh); } void wxScrollHelper::DoAdjustScrollbar(GtkRange* range, @@ -105,7 +65,7 @@ void wxScrollHelper::DoAdjustScrollbar(GtkRange* range, GtkAdjustment* adj = range->adjustment; adj->step_increment = 1; - adj->page_increment = + adj->page_increment = adj->page_size = page_size; gtk_range_set_range(range, 0, upper); @@ -224,4 +184,3 @@ void wxScrollHelper::DoShowScrollbars(wxScrollbarVisibility horz, GtkPolicyFromWX(horz), GtkPolicyFromWX(vert)); } - -- 2.45.2