]> git.saurik.com Git - wxWidgets.git/blob - include/wx/generic/scrolwin.h
#ifdefed out a typedef not appropriate to MSW; added SetSelection to choice dialog
[wxWidgets.git] / include / wx / generic / scrolwin.h
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: scrolwin.h
3 // Purpose: wxScrolledWindow class
4 // Author: Julian Smart
5 // Modified by:
6 // Created: 01/02/97
7 // RCS-ID: $Id$
8 // Copyright: (c) Julian Smart and Markus Holzem
9 // Licence: wxWindows license
10 /////////////////////////////////////////////////////////////////////////////
11
12 #ifndef __SCROLWINH_G__
13 #define __SCROLWINH_G__
14
15 #ifdef __GNUG__
16 #pragma interface "scrolwin.h"
17 #endif
18
19 #include "wx/window.h"
20
21 WXDLLEXPORT_DATA(extern const char*) wxPanelNameStr;
22
23 class WXDLLEXPORT wxScrolledWindow: public wxWindow
24 {
25 DECLARE_ABSTRACT_CLASS(wxScrolledWindow)
26
27 public:
28 wxScrolledWindow(void);
29 inline wxScrolledWindow(wxWindow *parent, const wxWindowID id = -1,
30 const wxPoint& pos = wxDefaultPosition,
31 const wxSize& size = wxDefaultSize,
32 const long style = wxHSCROLL|wxVSCROLL,
33 const wxString& name = wxPanelNameStr)
34 {
35 Create(parent, id, pos, size, style, name);
36 }
37
38 inline ~wxScrolledWindow(void) {}
39
40 bool Create(wxWindow *parent, const wxWindowID id,
41 const wxPoint& pos = wxDefaultPosition,
42 const wxSize& size = wxDefaultSize,
43 const long style = wxHSCROLL|wxVSCROLL,
44 const wxString& name = wxPanelNameStr);
45
46 // Set client size
47 // Should take account of scrollbars
48 // virtual void SetClientSize(const int width, const int size);
49
50 // Is the window retained?
51 // inline bool IsRetained(void) const;
52
53 // Number of pixels per user unit (0 or -1 for no scrollbar)
54 // Length of virtual canvas in user units
55 // Length of page in user units
56 virtual void SetScrollbars(const int pixelsPerUnitX, const int pixelsPerUnitY,
57 const int noUnitsX, const int noUnitsY,
58 const int xPos = 0, const int yPos = 0,
59 const bool noRefresh = FALSE );
60
61 // Physically scroll the window
62 virtual void Scroll(const int x_pos, const int y_pos);
63
64 #if WXWIN_COMPATIBILITY
65 virtual void GetScrollUnitsPerPage(int *x_page, int *y_page) const;
66 #endif
67
68 int GetScrollPageSize(int orient) const ;
69 void SetScrollPageSize(int orient, int pageSize);
70
71 virtual void GetScrollPixelsPerUnit(int *x_unit, int *y_unit) const;
72 // Enable/disable Windows scrolling in either direction.
73 // If TRUE, wxWindows scrolls the canvas and only a bit of
74 // the canvas is invalidated; no Clear() is necessary.
75 // If FALSE, the whole canvas is invalidated and a Clear() is
76 // necessary. Disable for when the scroll increment is used
77 // to actually scroll a non-constant distance
78 virtual void EnableScrolling(const bool x_scrolling, const bool y_scrolling);
79
80 // Get the view start
81 virtual void ViewStart(int *x, int *y) const;
82
83 // Actual size in pixels when scrolling is taken into account
84 virtual void GetVirtualSize(int *x, int *y) const;
85
86 virtual void CalcScrolledPosition(const int x, const int y, int *xx, int *yy) const ;
87 virtual void CalcUnscrolledPosition(const int x, const int y, float *xx, float *yy) const ;
88
89 // Adjust the scrollbars
90 virtual void AdjustScrollbars(void);
91
92 /*
93 #if WXWIN_COMPATIBILITY
94 virtual void OldOnScroll(wxCommandEvent& WXUNUSED(event));
95 virtual void OldOnPaint(void); // Called when needs painting
96 virtual void OldOnSize(int width, int height); // Called on resize
97 virtual void OldOnMouseEvent(wxMouseEvent& event); // Called on mouse event
98 virtual void OldOnChar(wxKeyEvent& event); // Called on character event
99 #endif
100 */
101
102 void OnScroll(wxScrollEvent& event);
103 void OnSize(wxSizeEvent& event);
104 void OnPaint(wxPaintEvent& event);
105
106 // Override this function to draw the graphic.
107 virtual void OnDraw(wxDC& WXUNUSED(dc)) {};
108
109 // Override this function if you don't want to have wxScrolledWindow
110 // automatically change the origin according to the scroll position.
111 virtual void PrepareDC(wxDC& dc);
112
113 public:
114 ////////////////////////////////////////////////////////////////////////
115 //// IMPLEMENTATION
116
117 // Calculate scroll increment
118 virtual int CalcScrollInc(wxScrollEvent& event);
119
120 ////////////////////////////////////////////////////////////////////////
121 //// PROTECTED DATA
122 protected:
123 int m_xScrollPixelsPerLine;
124 int m_yScrollPixelsPerLine;
125 bool m_xScrollingEnabled;
126 bool m_yScrollingEnabled;
127 int m_xScrollPosition;
128 int m_yScrollPosition;
129 int m_xScrollLines;
130 int m_yScrollLines;
131 int m_xScrollLinesPerPage;
132 int m_yScrollLinesPerPage;
133
134 DECLARE_EVENT_TABLE()
135 };
136
137 ////////////////////////////////////////////////////////////////////////
138 //// INLINES
139
140 #endif
141 // __SCROLWINH_G__