git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2954
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
WXDLLEXPORT_DATA(extern const wxChar*) wxPanelNameStr;
WXDLLEXPORT_DATA(extern const wxChar*) wxPanelNameStr;
-class WXDLLEXPORT wxScrolledWindow: public wxPanel
+class WXDLLEXPORT wxScrolledWindow : public wxPanel
{
DECLARE_ABSTRACT_CLASS(wxScrolledWindow)
{
DECLARE_ABSTRACT_CLASS(wxScrolledWindow)
Create(parent, id, pos, size, style, name);
}
Create(parent, id, pos, size, style, name);
}
+ ~wxScrolledWindow() { }
bool Create(wxWindow *parent, wxWindowID id,
const wxPoint& pos = wxDefaultPosition,
bool Create(wxWindow *parent, wxWindowID id,
const wxPoint& pos = wxDefaultPosition,
#if WXWIN_COMPATIBILITY
virtual void GetScrollUnitsPerPage(int *x_page, int *y_page) const;
#if WXWIN_COMPATIBILITY
virtual void GetScrollUnitsPerPage(int *x_page, int *y_page) const;
+ virtual void CalcUnscrolledPosition(int x, int y, float *xx, float *yy) const ;
#endif
int GetScrollPageSize(int orient) const ;
#endif
int GetScrollPageSize(int orient) const ;
virtual void GetVirtualSize(int *x, int *y) const;
// Set the scale factor, used in PrepareDC
virtual void GetVirtualSize(int *x, int *y) const;
// Set the scale factor, used in PrepareDC
- inline void SetScale(double xs, double ys) { m_scaleX = xs; m_scaleY = ys; }
- inline double GetScaleX() const { return m_scaleX; }
- inline double GetScaleY() const { return m_scaleY; }
+ void SetScale(double xs, double ys) { m_scaleX = xs; m_scaleY = ys; }
+ double GetScaleX() const { return m_scaleX; }
+ double GetScaleY() const { return m_scaleY; }
virtual void CalcScrolledPosition(int x, int y, int *xx, int *yy) const ;
virtual void CalcScrolledPosition(int x, int y, int *xx, int *yy) const ;
- virtual void CalcUnscrolledPosition(int x, int y, float *xx, float *yy) const ;
+ virtual void CalcUnscrolledPosition(int x, int y, int *xx, int *yy) const ;
// Adjust the scrollbars
virtual void AdjustScrollbars(void);
// Adjust the scrollbars
virtual void AdjustScrollbars(void);
- void OnScroll(wxScrollWinEvent& event);
- void OnSize(wxSizeEvent& event);
- void OnPaint(wxPaintEvent& event);
-
- // Override this function to draw the graphic.
+ // Override this function to draw the graphic (or just process EVT_PAINT)
virtual void OnDraw(wxDC& WXUNUSED(dc)) {};
// Override this function if you don't want to have wxScrolledWindow
// automatically change the origin according to the scroll position.
virtual void PrepareDC(wxDC& dc);
virtual void OnDraw(wxDC& WXUNUSED(dc)) {};
// Override this function if you don't want to have wxScrolledWindow
// automatically change the origin according to the scroll position.
virtual void PrepareDC(wxDC& dc);
-public:
- // IMPLEMENTATION
-
+ // implementation from now on
+ void OnScroll(wxScrollWinEvent& event);
+ void OnSize(wxSizeEvent& event);
+ void OnPaint(wxPaintEvent& event);
+
// Calculate scroll increment
virtual int CalcScrollInc(wxScrollWinEvent& event);
// Calculate scroll increment
virtual int CalcScrollInc(wxScrollWinEvent& event);
*x_page = GetScrollPageSize(wxHORIZONTAL);
*y_page = GetScrollPageSize(wxVERTICAL);
}
*x_page = GetScrollPageSize(wxHORIZONTAL);
*y_page = GetScrollPageSize(wxVERTICAL);
}
+
+void wxScrolledWindow::CalcUnscrolledPosition(int x, int y, float *xx, float *yy) const
+{
+ if ( xx )
+ *xx = (float)(x + m_xScrollPosition * m_xScrollPixelsPerLine);
+ if ( yy )
+ *yy = (float)(y + m_yScrollPosition * m_yScrollPixelsPerLine);
+}
+#endif // WXWIN_COMPATIBILITY
void wxScrolledWindow::GetScrollPixelsPerUnit (int *x_unit, int *y_unit) const
{
void wxScrolledWindow::GetScrollPixelsPerUnit (int *x_unit, int *y_unit) const
{
- *x_unit = m_xScrollPixelsPerLine;
- *y_unit = m_yScrollPixelsPerLine;
+ if ( x_unit )
+ *x_unit = m_xScrollPixelsPerLine;
+ if ( y_unit )
+ *y_unit = m_yScrollPixelsPerLine;
}
int wxScrolledWindow::GetScrollPageSize(int orient) const
}
int wxScrolledWindow::GetScrollPageSize(int orient) const
void wxScrolledWindow::GetVirtualSize (int *x, int *y) const
{
void wxScrolledWindow::GetVirtualSize (int *x, int *y) const
{
- *x = m_xScrollPixelsPerLine * m_xScrollLines;
- *y = m_yScrollPixelsPerLine * m_yScrollLines;
+ if ( x )
+ *x = m_xScrollPixelsPerLine * m_xScrollLines;
+ if ( y )
+ *y = m_yScrollPixelsPerLine * m_yScrollLines;
}
// Where the current view starts from
void wxScrolledWindow::ViewStart (int *x, int *y) const
{
}
// Where the current view starts from
void wxScrolledWindow::ViewStart (int *x, int *y) const
{
- *x = m_xScrollPosition;
- *y = m_yScrollPosition;
+ if ( x )
+ *x = m_xScrollPosition;
+ if ( y )
+ *y = m_yScrollPosition;
}
void wxScrolledWindow::CalcScrolledPosition(int x, int y, int *xx, int *yy) const
{
}
void wxScrolledWindow::CalcScrolledPosition(int x, int y, int *xx, int *yy) const
{
- *xx = x - m_xScrollPosition * m_xScrollPixelsPerLine;
- *yy = y - m_yScrollPosition * m_yScrollPixelsPerLine;
+ if ( xx )
+ *xx = x - m_xScrollPosition * m_xScrollPixelsPerLine;
+ if ( yy )
+ *yy = y - m_yScrollPosition * m_yScrollPixelsPerLine;
-void wxScrolledWindow::CalcUnscrolledPosition(int x, int y, float *xx, float *yy) const
+void wxScrolledWindow::CalcUnscrolledPosition(int x, int y, int *xx, int *yy) const
- *xx = (float)(x + m_xScrollPosition * m_xScrollPixelsPerLine);
- *yy = (float)(y + m_yScrollPosition * m_yScrollPixelsPerLine);
+ if ( xx )
+ *xx = x + m_xScrollPosition * m_xScrollPixelsPerLine;
+ if ( yy )
+ *yy = y + m_yScrollPosition * m_yScrollPixelsPerLine;