CalcUnscrolledPosition takes int, not floats

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2954 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
1999-07-05 20:58:52 +00:00
parent ebea0891d0
commit a0bc2c1d27
2 changed files with 43 additions and 28 deletions

View File

@@ -21,7 +21,7 @@
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)
@@ -36,7 +36,7 @@ public:
Create(parent, id, pos, size, style, name); Create(parent, id, pos, size, style, name);
} }
~wxScrolledWindow() {} ~wxScrolledWindow() { }
bool Create(wxWindow *parent, wxWindowID id, bool Create(wxWindow *parent, wxWindowID id,
const wxPoint& pos = wxDefaultPosition, const wxPoint& pos = wxDefaultPosition,
@@ -64,6 +64,7 @@ public:
#if WXWIN_COMPATIBILITY #if WXWIN_COMPATIBILITY
virtual void GetScrollUnitsPerPage(int *x_page, int *y_page) const; virtual void GetScrollUnitsPerPage(int *x_page, int *y_page) const;
virtual void CalcUnscrolledPosition(int x, int y, float *xx, float *yy) const ;
#endif #endif
int GetScrollPageSize(int orient) const ; int GetScrollPageSize(int orient) const ;
@@ -85,29 +86,27 @@ public:
virtual void GetVirtualSize(int *x, int *y) const; virtual void GetVirtualSize(int *x, int *y) const;
// Set the scale factor, used in PrepareDC // Set the scale factor, used in PrepareDC
inline void SetScale(double xs, double ys) { m_scaleX = xs; m_scaleY = ys; } void SetScale(double xs, double ys) { m_scaleX = xs; m_scaleY = ys; }
inline double GetScaleX() const { return m_scaleX; } double GetScaleX() const { return m_scaleX; }
inline double GetScaleY() const { return m_scaleY; } 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 // Adjust the scrollbars
virtual void AdjustScrollbars(void); virtual void AdjustScrollbars(void);
void OnScroll(wxScrollWinEvent& event); // Override this function to draw the graphic (or just process EVT_PAINT)
void OnSize(wxSizeEvent& event);
void OnPaint(wxPaintEvent& event);
// Override this function to draw the graphic.
virtual void OnDraw(wxDC& WXUNUSED(dc)) {}; virtual void OnDraw(wxDC& WXUNUSED(dc)) {};
// Override this function if you don't want to have wxScrolledWindow // Override this function if you don't want to have wxScrolledWindow
// automatically change the origin according to the scroll position. // automatically change the origin according to the scroll position.
virtual void PrepareDC(wxDC& dc); virtual void PrepareDC(wxDC& dc);
public: // implementation from now on
// IMPLEMENTATION void OnScroll(wxScrollWinEvent& event);
void OnSize(wxSizeEvent& event);
void OnPaint(wxPaintEvent& event);
// Calculate scroll increment // Calculate scroll increment
virtual int CalcScrollInc(wxScrollWinEvent& event); virtual int CalcScrollInc(wxScrollWinEvent& event);

View File

@@ -390,11 +390,21 @@ void wxScrolledWindow::GetScrollUnitsPerPage (int *x_page, int *y_page) const
*x_page = GetScrollPageSize(wxHORIZONTAL); *x_page = GetScrollPageSize(wxHORIZONTAL);
*y_page = GetScrollPageSize(wxVERTICAL); *y_page = GetScrollPageSize(wxVERTICAL);
} }
#endif
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
{ {
if ( x_unit )
*x_unit = m_xScrollPixelsPerLine; *x_unit = m_xScrollPixelsPerLine;
if ( y_unit )
*y_unit = m_yScrollPixelsPerLine; *y_unit = m_yScrollPixelsPerLine;
} }
@@ -475,27 +485,33 @@ void wxScrolledWindow::EnableScrolling (bool x_scroll, bool y_scroll)
void wxScrolledWindow::GetVirtualSize (int *x, int *y) const void wxScrolledWindow::GetVirtualSize (int *x, int *y) const
{ {
if ( x )
*x = m_xScrollPixelsPerLine * m_xScrollLines; *x = m_xScrollPixelsPerLine * m_xScrollLines;
if ( y )
*y = m_yScrollPixelsPerLine * m_yScrollLines; *y = m_yScrollPixelsPerLine * m_yScrollLines;
} }
// Where the current view starts from // Where the current view starts from
void wxScrolledWindow::ViewStart (int *x, int *y) const void wxScrolledWindow::ViewStart (int *x, int *y) const
{ {
if ( x )
*x = m_xScrollPosition; *x = m_xScrollPosition;
if ( y )
*y = m_yScrollPosition; *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
{ {
if ( xx )
*xx = x - m_xScrollPosition * m_xScrollPixelsPerLine; *xx = x - m_xScrollPosition * m_xScrollPixelsPerLine;
if ( yy )
*yy = y - m_yScrollPosition * m_yScrollPixelsPerLine; *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); if ( xx )
*yy = (float)(y + m_yScrollPosition * m_yScrollPixelsPerLine); *xx = x + m_xScrollPosition * m_xScrollPixelsPerLine;
if ( yy )
*yy = y + m_yScrollPosition * m_yScrollPixelsPerLine;
} }