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
This commit is contained in:
Paul Cornett
2009-02-08 20:51:44 +00:00
parent 51be4a55cf
commit 8aa40b04f8
2 changed files with 8 additions and 49 deletions

View File

@@ -18,6 +18,7 @@
class WXDLLIMPEXP_CORE wxScrollHelper : public wxScrollHelperBase class WXDLLIMPEXP_CORE wxScrollHelper : public wxScrollHelperBase
{ {
typedef wxScrollHelperBase base_type;
public: public:
// default ctor doesn't do anything // default ctor doesn't do anything
wxScrollHelper(wxWindow *win) : wxScrollHelperBase(win) { } wxScrollHelper(wxWindow *win) : wxScrollHelperBase(win) { }
@@ -70,7 +71,6 @@ private:
int pixelsPerLine, int pixelsPerLine,
int *posOld); int *posOld);
private:
wxDECLARE_NO_COPY_CLASS(wxScrollHelper); wxDECLARE_NO_COPY_CLASS(wxScrollHelper);
}; };

View File

@@ -10,14 +10,6 @@
// Licence: wxWindows licence // Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
// ============================================================================
// declarations
// ============================================================================
// ----------------------------------------------------------------------------
// headers
// ----------------------------------------------------------------------------
// For compilers that support precompilation, includes "wx.h". // For compilers that support precompilation, includes "wx.h".
#include "wx/wxprec.h" #include "wx/wxprec.h"
@@ -26,11 +18,8 @@
#endif #endif
#include "wx/scrolwin.h" #include "wx/scrolwin.h"
#include "wx/gtk/private.h"
// ============================================================================ #include <gtk/gtk.h>
// implementation
// ============================================================================
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
// wxScrollHelper implementation // wxScrollHelper implementation
@@ -39,41 +28,12 @@
void wxScrollHelper::SetScrollbars(int pixelsPerUnitX, int pixelsPerUnitY, void wxScrollHelper::SetScrollbars(int pixelsPerUnitX, int pixelsPerUnitY,
int noUnitsX, int noUnitsY, int noUnitsX, int noUnitsY,
int xPos, int yPos, int xPos, int yPos,
bool WXUNUSED(noRefresh)) bool noRefresh)
{ {
m_xScrollPixelsPerLine = pixelsPerUnitX; m_win->m_scrollBar[wxWindow::ScrollDir_Horz]->adjustment->value = xPos;
m_yScrollPixelsPerLine = pixelsPerUnitY; m_win->m_scrollBar[wxWindow::ScrollDir_Vert]->adjustment->value = yPos;
base_type::SetScrollbars(
int w = noUnitsX * pixelsPerUnitX; pixelsPerUnitX, pixelsPerUnitY, noUnitsX, noUnitsY, xPos, yPos, noRefresh);
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
} }
void wxScrollHelper::DoAdjustScrollbar(GtkRange* range, void wxScrollHelper::DoAdjustScrollbar(GtkRange* range,
@@ -105,7 +65,7 @@ void wxScrollHelper::DoAdjustScrollbar(GtkRange* range,
GtkAdjustment* adj = range->adjustment; GtkAdjustment* adj = range->adjustment;
adj->step_increment = 1; adj->step_increment = 1;
adj->page_increment = adj->page_increment =
adj->page_size = page_size; adj->page_size = page_size;
gtk_range_set_range(range, 0, upper); gtk_range_set_range(range, 0, upper);
@@ -224,4 +184,3 @@ void wxScrollHelper::DoShowScrollbars(wxScrollbarVisibility horz,
GtkPolicyFromWX(horz), GtkPolicyFromWX(horz),
GtkPolicyFromWX(vert)); GtkPolicyFromWX(vert));
} }