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:
@@ -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);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -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));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user