]> git.saurik.com Git - wxWidgets.git/blame - wxPython/src/_panel.i
memory dc must have bitmap selected into it before it can be used for measuring
[wxWidgets.git] / wxPython / src / _panel.i
CommitLineData
d14a1e28
RD
1/////////////////////////////////////////////////////////////////////////////
2// Name: _window.i
3// Purpose: SWIG interface for wxPanel and wxScrolledWindow
4//
5// Author: Robin Dunn
6//
7// Created: 24-June-1997
8// RCS-ID: $Id$
9// Copyright: (c) 2003 by Total Control Software
10// Licence: wxWindows license
11/////////////////////////////////////////////////////////////////////////////
12
13// Not a %module
14
15
16//---------------------------------------------------------------------------
17
18%{
19%}
20
d14a1e28
RD
21//---------------------------------------------------------------------------
22%newgroup
23
24
ab1f7d2a
RD
25MustHaveApp(wxPanel);
26
d14a1e28
RD
27class wxPanel : public wxWindow
28{
29public:
2b9048c5
RD
30 %pythonAppend wxPanel "self._setOORInfo(self)"
31 %pythonAppend wxPanel() ""
b39c3fa0 32 %typemap(out) wxPanel*; // turn off this typemap
d14a1e28
RD
33
34 wxPanel(wxWindow* parent,
dd9f7fea 35 const wxWindowID id=-1,
d14a1e28
RD
36 const wxPoint& pos = wxDefaultPosition,
37 const wxSize& size = wxDefaultSize,
38 long style = wxTAB_TRAVERSAL | wxNO_BORDER,
39 const wxString& name = wxPyPanelNameStr);
1b8c7ba6 40 %RenameCtor(PrePanel, wxPanel());
d14a1e28 41
b39c3fa0
RD
42 // Turn it back on again
43 %typemap(out) wxPanel* { $result = wxPyMake_wxObject($1, $owner); }
44
d14a1e28 45 bool Create(wxWindow* parent,
2c65dbc4 46 const wxWindowID id=-1,
d14a1e28
RD
47 const wxPoint& pos = wxDefaultPosition,
48 const wxSize& size = wxDefaultSize,
49 long style = wxTAB_TRAVERSAL | wxNO_BORDER,
50 const wxString& name = wxPyPanelNameStr);
51
52 void InitDialog();
53
ed8d127e
RD
54
55 DocDeclStr(
56 virtual void , SetFocus(),
3ed2b503
RD
57 "Overrides `wx.Window.SetFocus`. This method uses the (undocumented)
58mix-in class wxControlContainer which manages the focus and TAB logic
59for controls which usually have child controls. In practice, if you
60call this method and the panel has at least one child window, then the
61focus will be given to the child window.", "
ed8d127e
RD
62:see: `wx.FocusEvent`, `wx.Window.SetFocus`, `SetFocusIgnoringChildren`");
63
64
65 DocDeclStr(
66 virtual void , SetFocusIgnoringChildren(),
67 "In contrast to `SetFocus` (see above) this will set the focus to the
68panel even of there are child windows in the panel. This is only
69rarely needed.", "");
70
71
880715c9
RD
72 static wxVisualAttributes
73 GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL);
d14a1e28
RD
74};
75
76//---------------------------------------------------------------------------
77%newgroup
78
79
80// TODO: Add wrappers for the wxScrollHelper class, make wxScrolledWindow
81// derive from it and wxPanel. But what to do about wxGTK where this
dd9f7fea 82// is not True?
d14a1e28 83
ab1f7d2a
RD
84MustHaveApp(wxScrolledWindow);
85
d14a1e28
RD
86class wxScrolledWindow : public wxPanel
87{
88public:
2b9048c5
RD
89 %pythonAppend wxScrolledWindow "self._setOORInfo(self)"
90 %pythonAppend wxScrolledWindow() ""
b39c3fa0 91 %typemap(out) wxScrolledWindow*; // turn off this typemap
d14a1e28
RD
92
93 wxScrolledWindow(wxWindow* parent,
94 const wxWindowID id = -1,
95 const wxPoint& pos = wxDefaultPosition,
96 const wxSize& size = wxDefaultSize,
97 long style = wxHSCROLL | wxVSCROLL,
98 const wxString& name = wxPyPanelNameStr);
1b8c7ba6 99 %RenameCtor(PreScrolledWindow, wxScrolledWindow());
d14a1e28 100
b39c3fa0
RD
101 // Turn it back on again
102 %typemap(out) wxScrolledWindow* { $result = wxPyMake_wxObject($1, $owner); }
103
d14a1e28
RD
104 bool Create(wxWindow* parent,
105 const wxWindowID id = -1,
106 const wxPoint& pos = wxDefaultPosition,
107 const wxSize& size = wxDefaultSize,
108 long style = wxHSCROLL | wxVSCROLL,
109 const wxString& name = wxPyPanelNameStr);
110
111
112 // configure the scrolling
113 virtual void SetScrollbars(int pixelsPerUnitX, int pixelsPerUnitY,
114 int noUnitsX, int noUnitsY,
115 int xPos = 0, int yPos = 0,
a72f4631 116 bool noRefresh = false );
d14a1e28
RD
117
118 // scroll to the given (in logical coords) position
119 virtual void Scroll(int x, int y);
120
121 // get/set the page size for this orientation (wxVERTICAL/wxHORIZONTAL)
122 int GetScrollPageSize(int orient) const;
123 void SetScrollPageSize(int orient, int pageSize);
124
125 // Set the x, y scrolling increments.
126 void SetScrollRate( int xstep, int ystep );
127
322913ce
RD
128 DocDeclAStr(
129 virtual void, GetScrollPixelsPerUnit(int *OUTPUT, int *OUTPUT) const,
130 "GetScrollPixelsPerUnit() -> (xUnit, yUnit)",
d07d2bc9 131 "Get the size of one logical unit in physical units.", "");
d14a1e28 132
dd9f7fea 133 // Enable/disable Windows scrolling in either direction. If True, wxWindows
d14a1e28 134 // scrolls the canvas and only a bit of the canvas is invalidated; no
dd9f7fea 135 // Clear() is necessary. If False, the whole canvas is invalidated and a
d14a1e28
RD
136 // Clear() is necessary. Disable for when the scroll increment is used to
137 // actually scroll a non-constant distance
138 virtual void EnableScrolling(bool x_scrolling, bool y_scrolling);
139
d14a1e28 140
322913ce
RD
141 DocDeclAStr(
142 virtual void, GetViewStart(int *OUTPUT, int *OUTPUT) const,
143 "GetViewStart() -> (x,y)",
d07d2bc9 144 "Get the view start", "");
322913ce 145
d14a1e28
RD
146 // Set the scale factor, used in PrepareDC
147 void SetScale(double xs, double ys);
148 double GetScaleX() const;
149 double GetScaleY() const;
150
151
152 %nokwargs CalcScrolledPosition;
153 %nokwargs CalcUnscrolledPosition;
154
d07d2bc9 155 DocStr(CalcScrolledPosition, "Translate between scrolled and unscrolled coordinates.", "");
d14a1e28 156 wxPoint CalcScrolledPosition(const wxPoint& pt) const;
322913ce
RD
157 DocDeclA(
158 void, CalcScrolledPosition(int x, int y, int *OUTPUT, int *OUTPUT) const,
159 "CalcScrolledPosition(int x, int y) -> (sx, sy)");
160
161
d07d2bc9 162 DocStr(CalcUnscrolledPosition, "Translate between scrolled and unscrolled coordinates.", "");
d14a1e28 163 wxPoint CalcUnscrolledPosition(const wxPoint& pt) const;
322913ce
RD
164 DocDeclA(
165 void, CalcUnscrolledPosition(int x, int y, int *OUTPUT, int *OUTPUT) const,
166 "CalcUnscrolledPosition(int x, int y) -> (ux, uy)");
d14a1e28 167
322913ce
RD
168
169
d14a1e28
RD
170// TODO: use directors?
171// virtual void DoCalcScrolledPosition(int x, int y, int *xx, int *yy) const;
172// virtual void DoCalcUnscrolledPosition(int x, int y, int *xx, int *yy) const;
173
174 // Adjust the scrollbars
175 virtual void AdjustScrollbars();
176
177 // Calculate scroll increment
178 virtual int CalcScrollInc(wxScrollWinEvent& event);
179
180 // Normally the wxScrolledWindow will scroll itself, but in some rare
181 // occasions you might want it to scroll [part of] another window (e.g. a
182 // child of it in order to scroll only a portion the area between the
183 // scrollbars (spreadsheet: only cell area will move).
184 virtual void SetTargetWindow(wxWindow *target);
185 virtual wxWindow *GetTargetWindow() const;
186
187#ifndef __WXGTK__
188 void SetTargetRect(const wxRect& rect);
189 wxRect GetTargetRect() const;
190#endif
880715c9 191
3a9d4088
RD
192 // TODO: directorize this?
193 DocDeclStr(
194 virtual void , DoPrepareDC( wxDC & dc ),
195 "Normally what is called by `PrepareDC`.", "");
196
197
880715c9
RD
198 static wxVisualAttributes
199 GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL);
d14a1e28
RD
200};
201
202
203//---------------------------------------------------------------------------