#endif
#include "wx/window.h"
+#include "wx/panel.h"
-WXDLLEXPORT_DATA(extern const char*) wxPanelNameStr;
+WXDLLEXPORT_DATA(extern const wxChar*) wxPanelNameStr;
-class WXDLLEXPORT wxScrolledWindow: public wxWindow
+class WXDLLEXPORT wxScrolledWindow : public wxPanel
{
DECLARE_ABSTRACT_CLASS(wxScrolledWindow)
public:
- wxScrolledWindow(void);
- inline wxScrolledWindow(wxWindow *parent, const wxWindowID id = -1,
+ wxScrolledWindow();
+ inline wxScrolledWindow(wxWindow *parent, wxWindowID id = -1,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
- const long style = wxHSCROLL|wxVSCROLL,
+ long style = wxHSCROLL|wxVSCROLL,
const wxString& name = wxPanelNameStr)
{
Create(parent, id, pos, size, style, name);
}
- inline ~wxScrolledWindow(void) {}
+ ~wxScrolledWindow() { }
- bool Create(wxWindow *parent, const wxWindowID id,
+ bool Create(wxWindow *parent, wxWindowID id,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
- const long style = wxHSCROLL|wxVSCROLL,
+ long style = wxHSCROLL|wxVSCROLL,
const wxString& name = wxPanelNameStr);
// Set client size
// Should take account of scrollbars
-// virtual void SetClientSize(const int width, const int size);
+// virtual void SetClientSize(int width, int size);
// Is the window retained?
// inline bool IsRetained(void) const;
// Number of pixels per user unit (0 or -1 for no scrollbar)
// Length of virtual canvas in user units
// Length of page in user units
- virtual void SetScrollbars(const int pixelsPerUnitX, const int pixelsPerUnitY,
- const int noUnitsX, const int noUnitsY,
- const int xPos = 0, const int yPos = 0,
- const bool noRefresh = FALSE );
+ virtual void SetScrollbars(int pixelsPerUnitX, int pixelsPerUnitY,
+ int noUnitsX, int noUnitsY,
+ int xPos = 0, int yPos = 0,
+ bool noRefresh = FALSE );
// Physically scroll the window
- virtual void Scroll(const int x_pos, const int y_pos);
+ virtual void Scroll(int x_pos, int y_pos);
#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 ;
// If FALSE, the whole canvas is invalidated and a Clear() is
// necessary. Disable for when the scroll increment is used
// to actually scroll a non-constant distance
- virtual void EnableScrolling(const bool x_scrolling, const bool y_scrolling);
+ virtual void EnableScrolling(bool x_scrolling, bool y_scrolling);
// Get the view start
virtual void ViewStart(int *x, int *y) const;
// Actual size in pixels when scrolling is taken into account
virtual void GetVirtualSize(int *x, int *y) const;
- virtual void CalcScrolledPosition(const int x, const int y, int *xx, int *yy) const ;
- virtual void CalcUnscrolledPosition(const int x, const int y, float *xx, float *yy) const ;
+ // Set the scale factor, used in PrepareDC
+ 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 CalcUnscrolledPosition(int x, int y, int *xx, int *yy) const ;
// Adjust the scrollbars
virtual void AdjustScrollbars(void);
-/*
-#if WXWIN_COMPATIBILITY
- virtual void OldOnScroll(wxCommandEvent& WXUNUSED(event));
- virtual void OldOnPaint(void); // Called when needs painting
- virtual void OldOnSize(int width, int height); // Called on resize
- virtual void OldOnMouseEvent(wxMouseEvent& event); // Called on mouse event
- virtual void OldOnChar(wxKeyEvent& event); // Called on character event
-#endif
-*/
-
- void OnScroll(wxScrollEvent& 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);
-public:
- ////////////////////////////////////////////////////////////////////////
- //// IMPLEMENTATION
-
+ // implementation from now on
+ void OnScroll(wxScrollWinEvent& event);
+ void OnSize(wxSizeEvent& event);
+ void OnPaint(wxPaintEvent& event);
+
// Calculate scroll increment
- virtual int CalcScrollInc(wxScrollEvent& event);
+ virtual int CalcScrollInc(wxScrollWinEvent& event);
- ////////////////////////////////////////////////////////////////////////
- //// PROTECTED DATA
protected:
int m_xScrollPixelsPerLine;
int m_yScrollPixelsPerLine;
int m_yScrollLines;
int m_xScrollLinesPerPage;
int m_yScrollLinesPerPage;
+ double m_scaleX;
+ double m_scaleY;
DECLARE_EVENT_TABLE()
};
-////////////////////////////////////////////////////////////////////////
-//// INLINES
-
#endif
// __SCROLWINH_G__