]> git.saurik.com Git - wxWidgets.git/blame - wxPython/src/_window.i
fixes to wint_t and wchar_t handling in unichar.h (fixes FreeBSD compilation and...
[wxWidgets.git] / wxPython / src / _window.i
CommitLineData
d14a1e28
RD
1/////////////////////////////////////////////////////////////////////////////
2// Name: _window.i
3// Purpose: SWIG interface for wxWindow
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
dd9f7fea
RD
21MAKE_CONST_WXSTRING(PanelNameStr);
22
d14a1e28
RD
23//---------------------------------------------------------------------------
24%newgroup
25
0facd0e5 26
fe45b493
RD
27wxLIST_WRAPPER(wxWindowList, wxWindow);
28
29
174051f6 30DocStr(wxVisualAttributes,
d07d2bc9 31 "struct containing all the visual attributes of a control", "");
174051f6
RD
32
33struct wxVisualAttributes
34{
35 %extend {
baf1aa5d 36 wxVisualAttributes() { return new wxVisualAttributes; }
880715c9 37 ~wxVisualAttributes() { delete self; }
6d450e1a 38 }
174051f6 39
9859d369
RD
40// // the font used for control label/text inside it
41// wxFont font;
42// // the foreground colour
43// wxColour colFg;
44// // the background colour, may be wxNullColour if the controls background
45// // colour is not solid
46// wxColour colBg;
174051f6 47
9859d369
RD
48 // Use our own getters and properties instead of the ones that SWIG will
49 // generate, so copies of the attributes will be made when they are
50 // accessed, instead of using a pointer to the one in the object which may
51 // be temporary.
52 %extend {
53 wxFont _get_font() { return self->font; }
54 wxColour _get_colFg() { return self->colFg; }
55 wxColour _get_colBg() { return self->colBg; }
56 }
174051f6 57
9859d369
RD
58 %property(font, _get_font)
59 %property(colFg, _get_colFg)
60 %property(colBg, _get_colBg)
174051f6
RD
61};
62
63
64
65
8d332bdd
RD
66enum wxWindowVariant
67{
8d332bdd
RD
68 wxWINDOW_VARIANT_NORMAL, // Normal size
69 wxWINDOW_VARIANT_SMALL, // Smaller size (about 25 % smaller than normal )
70 wxWINDOW_VARIANT_MINI, // Mini size (about 33 % smaller than normal )
71 wxWINDOW_VARIANT_LARGE, // Large size (about 25 % larger than normal )
174051f6 72 wxWINDOW_VARIANT_MAX
8d332bdd
RD
73};
74
75
0facd0e5 76DocStr(wxWindow,
d07d2bc9 77"wx.Window is the base class for all windows and represents any visible
0facd0e5
RD
78object on the screen. All controls, top level windows and so on are
79wx.Windows. Sizers and device contexts are not however, as they don't
80appear on screen themselves.
d07d2bc9
RD
81",
82"
83Styles
84-------
85 ============================= =====================================
86 wx.SIMPLE_BORDER Displays a thin border around the window.
87
88 wx.DOUBLE_BORDER Displays a double border. Windows and Mac only.
89
90 wx.SUNKEN_BORDER Displays a sunken border.
91
92 wx.RAISED_BORDER Displays a raised border.
93
94 wx.STATIC_BORDER Displays a border suitable for a static
95 control. Windows only.
96
97 wx.NO_BORDER Displays no border, overriding the default
98 border style for the window.
99
100 wx.TRANSPARENT_WINDOW The window is transparent, that is, it
101 will not receive paint events. Windows only.
102
103 wx.TAB_TRAVERSAL Use this to enable tab traversal for
104 non-dialog windows.
105
106 wx.WANTS_CHARS Use this to indicate that the window
107 wants to get all char/key events for
108 all keys - even for keys like TAB or
109 ENTER which are usually used for
110 dialog navigation and which wouldn't
111 be generated without this style. If
112 you need to use this style in order to
113 get the arrows or etc., but would
114 still like to have normal keyboard
115 navigation take place, you should
116 create and send a wxNavigationKeyEvent
117 in response to the key events for Tab
118 and Shift-Tab.
119
120 wx.NO_FULL_REPAINT_ON_RESIZE Disables repainting the window
121 completely when its size is changed.
122 You will have to repaint the new
123 window area manually if you use this
124 style. As of version 2.5.1 this
125 style is on by default. Use
126 wx.FULL_REPAINT_ON_RESIZE to
127 deactivate it.
128
129 wx.VSCROLL Use this style to enable a vertical scrollbar.
fe45b493
RD
130 Notice that this style cannot be used with
131 native controls which don't support scrollbars
132 nor with top-level windows in most ports.
d07d2bc9
RD
133
134 wx.HSCROLL Use this style to enable a horizontal scrollbar.
fe45b493
RD
135 The same limitations as for wx.VSCROLL apply to
136 this style.
137
d07d2bc9
RD
138 wx.ALWAYS_SHOW_SB If a window has scrollbars, disable them
139 instead of hiding them when they are
140 not needed (i.e. when the size of the
141 window is big enough to not require
142 the scrollbars to navigate it). This
143 style is currently only implemented
144 for wxMSW and wxUniversal and does
145 nothing on the other platforms.
146
147 wx.CLIP_CHILDREN Use this style to eliminate flicker caused by
148 the background being repainted, then
149 children being painted over
150 them. Windows only.
151
152 wx.FULL_REPAINT_ON_RESIZE Use this style to force a complete
153 redraw of the window whenever it is
154 resized instead of redrawing just the
155 part of the window affected by
156 resizing. Note that this was the
157 behaviour by default before 2.5.1
158 release and that if you experience
159 redraw problems with the code which
160 previously used to work you may want
161 to try this.
162 ============================= =====================================
163
164
165Extra Styles
166------------
167 ============================= =====================================
168 wx.WS_EX_VALIDATE_RECURSIVELY By default,
0facd0e5
RD
169 Validate/TransferDataTo/FromWindow()
170 only work on direct children of
171 the window (compatible
172 behaviour). Set this flag to make
173 them recursively descend into all
174 subwindows.
175
d07d2bc9 176 wx.WS_EX_BLOCK_EVENTS wx.CommandEvents and the objects of the
0facd0e5
RD
177 derived classes are forwarded to
178 the parent window and so on
179 recursively by default. Using this
180 flag for the given window allows
181 to block this propagation at this
182 window, i.e. prevent the events
183 from being propagated further
184 upwards. Dialogs have this flag on
185 by default.
186
187 wx.WS_EX_TRANSIENT Don't use this window as an implicit parent for
188 the other windows: this must be
189 used with transient windows as
190 otherwise there is the risk of
191 creating a dialog/frame with this
192 window as a parent which would
193 lead to a crash if the parent is
194 destroyed before the child.
195
d07d2bc9 196 wx.WS_EX_PROCESS_IDLE This window should always process idle
0facd0e5 197 events, even if the mode set by
e47ce385 198 `wx.IdleEvent.SetMode` is
0facd0e5
RD
199 wx.IDLE_PROCESS_SPECIFIED.
200
201 wx.WS_EX_PROCESS_UI_UPDATES This window should always process UI
202 update events, even if the mode
e47ce385 203 set by `wx.UpdateUIEvent.SetMode` is
0facd0e5 204 wxUPDATE_UI_PROCESS_SPECIFIED.
d07d2bc9 205 ============================= =====================================
0facd0e5
RD
206
207");
208
209
ab1f7d2a
RD
210MustHaveApp(wxWindow);
211MustHaveApp(wxWindow::FindFocus);
212MustHaveApp(wxWindow::GetCapture);
75db4959
RD
213
214// This one is not restricted to wxWindow
215MustHaveApp(GetClassDefaultAttributes);
0facd0e5 216
d14a1e28
RD
217class wxWindow : public wxEvtHandler
218{
219public:
2b9048c5
RD
220 %pythonAppend wxWindow "self._setOORInfo(self)"
221 %pythonAppend wxWindow() ""
b39c3fa0 222 %typemap(out) wxWindow*; // turn off this typemap
d14a1e28 223
0facd0e5 224 DocCtorStr(
baf1aa5d 225 wxWindow(wxWindow* parent, const wxWindowID id=-1,
0facd0e5
RD
226 const wxPoint& pos = wxDefaultPosition,
227 const wxSize& size = wxDefaultSize,
228 long style = 0,
229 const wxString& name = wxPyPanelNameStr),
d07d2bc9 230 "Construct and show a generic Window.", "");
0facd0e5
RD
231
232 DocCtorStrName(
233 wxWindow(),
d07d2bc9 234 "Precreate a Window for 2-phase creation.", "",
0facd0e5
RD
235 PreWindow);
236
b39c3fa0
RD
237 // Turn it back on again
238 %typemap(out) wxWindow* { $result = wxPyMake_wxObject($1, $owner); }
d14a1e28 239
b39c3fa0 240
0facd0e5 241 DocDeclStr(
baf1aa5d 242 bool , Create(wxWindow* parent, const wxWindowID id=-1,
d14a1e28
RD
243 const wxPoint& pos = wxDefaultPosition,
244 const wxSize& size = wxDefaultSize,
245 long style = 0,
0facd0e5 246 const wxString& name = wxPyPanelNameStr),
d07d2bc9 247 "Create the GUI part of the Window for 2-phase creation mode.", "");
0facd0e5 248
d14a1e28
RD
249
250 // deleting the window
251 // -------------------
252
d14a1e28 253
0facd0e5 254 DocDeclStr(
a72f4631 255 bool , Close( bool force = false ),
0facd0e5
RD
256 "This function simply generates a EVT_CLOSE event whose handler usually
257tries to close the window. It doesn't close the window itself,
258however. If force is False (the default) then the window's close
d07d2bc9
RD
259handler will be allowed to veto the destruction of the window.",
260"
0facd0e5
RD
261Usually Close is only used with the top level windows (wx.Frame and
262wx.Dialog classes) as the others are not supposed to have any special
263EVT_CLOSE logic.
264
265The close handler should check whether the window is being deleted
266forcibly, using wx.CloseEvent.GetForce, in which case it should
267destroy the window using wx.Window.Destroy.
268
269Note that calling Close does not guarantee that the window will be
270destroyed; but it provides a way to simulate a manual close of a
271window, which may or may not be implemented by destroying the
272window. The default EVT_CLOSE handler for wx.Dialog does not
273necessarily delete the dialog, since it will simply simulate an
274wxID_CANCEL event which is handled by the appropriate button event
275handler and may do anything at all.
276
277To guarantee that the window will be destroyed, call wx.Window.Destroy
278instead.");
279
280
281
4b5a79cf 282 %pythonPrepend Destroy "args[0].this.own(False)"
0facd0e5
RD
283 DocDeclStr(
284 virtual bool , Destroy(),
285 "Destroys the window safely. Frames and dialogs are not destroyed
286immediately when this function is called -- they are added to a list
287of windows to be deleted on idle time, when all the window's events
288have been processed. This prevents problems with events being sent to
289non-existent windows.
d14a1e28 290
0facd0e5 291Returns True if the window has either been successfully deleted, or it
d07d2bc9 292has been added to the list of windows pending real deletion.", "");
0facd0e5 293
d14a1e28 294
0facd0e5
RD
295 DocDeclStr(
296 bool , DestroyChildren(),
d07d2bc9
RD
297 "Destroys all children of a window. Called automatically by the
298destructor.", "");
0facd0e5 299
d14a1e28 300
0facd0e5
RD
301 DocDeclStr(
302 bool , IsBeingDeleted() const,
d07d2bc9 303 "Is the window in the process of being deleted?", "");
0facd0e5 304
d14a1e28 305
0facd0e5 306
d14a1e28
RD
307 // window attributes
308 // -----------------
309
793b53a0
WS
310 //DocDeclStr(
311 // virtual void , SetTitle( const wxString& title),
312 // "Sets the window's title. Applicable only to frames and dialogs.", "");
0facd0e5 313
793b53a0
WS
314 //DocDeclStr(
315 // virtual wxString , GetTitle() const,
316 // "Gets the window's title. Applicable only to frames and dialogs.", "");
d14a1e28 317
0facd0e5
RD
318 DocDeclStr(
319 virtual void , SetLabel(const wxString& label),
d07d2bc9 320 "Set the text which the window shows in its label if applicable.", "");
0facd0e5
RD
321
322 DocDeclStr(
323 virtual wxString , GetLabel() const,
d07d2bc9
RD
324 "Generic way of getting a label from any window, for identification
325purposes. The interpretation of this function differs from class to
326class. For frames and dialogs, the value returned is the title. For
327buttons or static text controls, it is the button text. This function
328can be useful for meta-programs such as testing tools or special-needs
329access programs)which need to identify windows by name.", "");
0facd0e5 330
d14a1e28 331
0facd0e5
RD
332 DocDeclStr(
333 virtual void , SetName( const wxString &name ),
d07d2bc9
RD
334 "Sets the window's name. The window name is used for ressource setting
335in X, it is not the same as the window title/label", "");
0facd0e5
RD
336
337 DocDeclStr(
338 virtual wxString , GetName() const,
d07d2bc9
RD
339 "Returns the windows name. This name is not guaranteed to be unique;
340it is up to the programmer to supply an appropriate name in the window
341constructor or via wx.Window.SetName.", "");
8d332bdd
RD
342
343
344 DocDeclStr(
345 void , SetWindowVariant( wxWindowVariant variant ),
d07d2bc9
RD
346 "Sets the variant of the window/font size to use for this window, if
347the platform supports variants, for example, wxMac.",
348 "
349Variant values are:
174051f6 350
d07d2bc9 351 ======================== =======================================
174051f6
RD
352 wx.WINDOW_VARIANT_NORMAL Normal size
353 wx.WINDOW_VARIANT_SMALL Smaller size (about 25 % smaller than normal)
354 wx.WINDOW_VARIANT_MINI Mini size (about 33 % smaller than normal)
355 wx.WINDOW_VARIANT_LARGE Large size (about 25 % larger than normal)
d07d2bc9 356 ======================== =======================================
174051f6 357");
8d332bdd
RD
358
359 DocDeclStr(
360 wxWindowVariant , GetWindowVariant() const,
d07d2bc9 361 "", "");
0facd0e5 362
d14a1e28 363
0facd0e5
RD
364 DocDeclStr(
365 void , SetId( wxWindowID winid ),
366 "Sets the identifier of the window. Each window has an integer
367identifier. If the application has not provided one, an identifier
368will be generated. Normally, the identifier should be provided on
d07d2bc9 369creation and should not be modified subsequently.", "");
0facd0e5
RD
370
371 DocDeclStr(
372 wxWindowID , GetId() const,
373 "Returns the identifier of the window. Each window has an integer
374identifier. If the application has not provided one (or the default Id
375-1 is used) then an unique identifier with a negative value will be
d07d2bc9 376generated.", "");
0facd0e5 377
d14a1e28 378
0facd0e5
RD
379 DocDeclStr(
380 static int , NewControlId(),
d07d2bc9 381 "Generate a control id for the controls which were not given one.", "");
0facd0e5 382
d14a1e28 383
0facd0e5
RD
384 DocDeclStr(
385 static int , NextControlId(int winid),
d07d2bc9
RD
386 "Get the id of the control following the one with the given
387autogenerated) id", "");
0facd0e5 388
d14a1e28 389
0facd0e5
RD
390 DocDeclStr(
391 static int , PrevControlId(int winid),
d07d2bc9
RD
392 "Get the id of the control preceding the one with the given
393autogenerated) id", "");
0facd0e5 394
d14a1e28 395
e81b607b
RD
396 DocDeclStr(
397 virtual wxLayoutDirection , GetLayoutDirection() const,
398 "Get the layout direction (LTR or RTL) for this window. Returns
399``wx.Layout_Default`` if layout direction is not supported.", "");
400
401 DocDeclStr(
402 virtual void , SetLayoutDirection(wxLayoutDirection dir),
403 "Set the layout direction (LTR or RTL) for this window.", "");
404
405
406 DocDeclStr(
407 virtual wxCoord , AdjustForLayoutDirection(wxCoord x,
408 wxCoord width,
409 wxCoord widthTotal) const,
410 "Mirror coordinates for RTL layout if this window uses it and if the
411mirroring is not done automatically like Win32.", "");
412
413
414
d14a1e28
RD
415
416
417 // moving/resizing
418 // ---------------
419
d14a1e28 420
0facd0e5
RD
421 DocDeclStr(
422 void , SetSize( const wxSize& size ),
d07d2bc9 423 "Sets the size of the window in pixels.", "");
d14a1e28 424
d14a1e28 425
0facd0e5
RD
426 DocDeclStrName(
427 void , SetSize( int x, int y, int width, int height,
428 int sizeFlags = wxSIZE_AUTO ),
429 "Sets the position and size of the window in pixels. The sizeFlags
430parameter indicates the interpretation of the other params if they are
7bde93ff
RD
431equal to -1.
432
433 ======================== ======================================
434 wx.SIZE_AUTO A -1 indicates that a class-specific
435 default should be used.
436 wx.SIZE_USE_EXISTING Axisting dimensions should be used if
437 -1 values are supplied.
438 wxSIZE_ALLOW_MINUS_ONE Allow dimensions of -1 and less to be
439 interpreted as real dimensions, not
440 default values.
441 ======================== ======================================
442", "",
0facd0e5
RD
443 SetDimensions);
444
445
446 DocDeclStrName(
447 void , SetSize(const wxRect& rect, int sizeFlags = wxSIZE_AUTO),
d07d2bc9 448 "Sets the position and size of the window in pixels using a wx.Rect.", "",
0facd0e5
RD
449 SetRect);
450
451
452 DocDeclStrName(
453 void , SetSize( int width, int height ),
d07d2bc9 454 "Sets the size of the window in pixels.", "",
0facd0e5
RD
455 SetSizeWH);
456
d14a1e28 457
0facd0e5
RD
458 DocDeclStr(
459 void , Move(const wxPoint& pt, int flags = wxSIZE_USE_EXISTING),
d07d2bc9 460 "Moves the window to the given position.", "");
0facd0e5 461
d14a1e28
RD
462 %pythoncode { SetPosition = Move }
463
d14a1e28 464
0facd0e5
RD
465 DocDeclStrName(
466 void , Move(int x, int y, int flags = wxSIZE_USE_EXISTING),
d07d2bc9 467 "Moves the window to the given position.", "",
0facd0e5
RD
468 MoveXY);
469
fe161a26 470 DocDeclStr(
170acdc9 471 void , SetInitialSize(const wxSize& size=wxDefaultSize),
fe161a26
RD
472 "A 'Smart' SetSize that will fill in default size components with the
473window's *best size* values. Also set's the minsize for use with sizers.", "");
170acdc9 474 %pythoncode { SetBestFittingSize = wx._deprecated(SetInitialSize, 'Use `SetInitialSize`') }
0facd0e5 475
fe161a26 476
0facd0e5
RD
477 DocDeclStr(
478 virtual void , Raise(),
02b800ce 479 "Raises the window to the top of the window hierarchy. In current
5ec5b47f 480version of wxWidgets this works both for managed and child windows.", "");
0facd0e5
RD
481
482 DocDeclStr(
483 virtual void , Lower(),
02b800ce 484 "Lowers the window to the bottom of the window hierarchy. In current
5ec5b47f 485version of wxWidgets this works both for managed and child windows.", "");
0facd0e5
RD
486
487
488
d14a1e28 489 // client size is the size of the area available for subwindows
0facd0e5
RD
490 DocStr(SetClientSize,
491 "This sets the size of the window client area in pixels. Using this
492function to size a window tends to be more device-independent than
493wx.Window.SetSize, since the application need not worry about what
494dimensions the border or title bar have when trying to fit the window
d07d2bc9 495around panel items, for example.", "");
d14a1e28 496 void SetClientSize( const wxSize& size );
1b8c7ba6
RD
497 %Rename(SetClientSizeWH, void, SetClientSize( int width, int height ));
498 %Rename(SetClientRect, void, SetClientSize(const wxRect& rect));
d14a1e28
RD
499
500
dd9f7fea 501 DocStr(GetPosition, // sets the docstring for both
5756f986
RD
502 "Get the window's position. Notice that the position is in client
503coordinates for child windows and screen coordinates for the top level
504ones, use `GetScreenPosition` if you need screen coordinates for all
505kinds of windows.", "");
506 wxPoint GetPosition() const;
d14a1e28 507
dd9f7fea 508 DocDeclAName(
5756f986 509 void, GetPosition(int *OUTPUT, int *OUTPUT) const,
dd9f7fea
RD
510 "GetPositionTuple() -> (x,y)",
511 GetPositionTuple);
d14a1e28 512
5756f986
RD
513
514 DocStr(GetScreenPosition, // sets the docstring for both
515 "Get the position of the window in screen coordinantes.", "");
516 wxPoint GetScreenPosition() const;
517 DocDeclAName(
518 void, GetScreenPosition(int *OUTPUT, int *OUTPUT) const,
519 "GetScreenPositionTuple() -> (x,y)",
520 GetScreenPositionTuple);
521
522 DocDeclStr(
523 wxRect , GetScreenRect() const,
524 "Returns the size and position of the window in screen coordinantes as
525a `wx.Rect` object.", "
526:see: `GetRect`, `GetScreenPosition`");
527
322913ce 528
d07d2bc9 529 DocStr(GetSize, "Get the window size.", "");
dd9f7fea
RD
530 wxSize GetSize() const;
531 DocDeclAName(
532 void, GetSize( int *OUTPUT, int *OUTPUT ) const,
533 "GetSizeTuple() -> (width, height)",
534 GetSizeTuple);
535
536
d14a1e28 537
0facd0e5
RD
538 DocDeclStr(
539 wxRect , GetRect() const,
5756f986 540 "Returns the size and position of the window as a `wx.Rect` object.", "");
0facd0e5
RD
541
542
543 DocStr(GetClientSize,
544 "This gets the size of the window's 'client area' in pixels. The client
545area is the area which may be drawn on by the programmer, excluding
d07d2bc9 546title bar, border, scrollbars, etc.", "");
d14a1e28 547 wxSize GetClientSize() const;
dd9f7fea
RD
548 DocDeclAName(
549 void, GetClientSize( int *OUTPUT, int *OUTPUT ) const,
550 "GetClientSizeTuple() -> (width, height)",
551 GetClientSizeTuple);
d14a1e28 552
0facd0e5 553
d14a1e28 554
0facd0e5
RD
555 DocDeclStr(
556 virtual wxPoint , GetClientAreaOrigin() const,
557 "Get the origin of the client area of the window relative to the
558window's top left corner (the client area may be shifted because of
d07d2bc9 559the borders, scrollbars, other decorations...)", "");
0facd0e5 560
d14a1e28 561
0facd0e5
RD
562 DocDeclStr(
563 wxRect , GetClientRect() const,
729b64a3 564 "Get the client area position and size as a `wx.Rect` object.", "");
0facd0e5 565
d14a1e28 566
0facd0e5 567
dd9f7fea 568 DocStr(GetBestSize,
d5573410 569 "This function returns the best acceptable minimal size for the
d07d2bc9
RD
570window, if applicable. For example, for a static text control, it will
571be the minimal size such that the control label is not truncated. For
572windows containing subwindows (suzh aswx.Panel), the size returned by
573this function will be the same as the size the window would have had
574after calling Fit.", "");
d14a1e28 575 wxSize GetBestSize() const;
dd9f7fea
RD
576 DocDeclAName(
577 void, GetBestSize(int *OUTPUT, int *OUTPUT) const,
578 "GetBestSizeTuple() -> (width, height)",
579 GetBestSizeTuple);
580
d14a1e28 581
9f884528
RD
582 DocDeclStr(
583 void , InvalidateBestSize(),
584 "Reset the cached best size value so it will be recalculated the next
585time it is needed.", "");
586
8dc41cdb
RD
587 DocDeclStr(
588 void , CacheBestSize(const wxSize& size) const,
589 "Cache the best size so it doesn't need to be calculated again, (at least until
590some properties of the window change.)", "");
9f884528
RD
591
592
593 DocDeclStr(
170acdc9 594 wxSize , GetEffectiveMinSize() const,
9f884528
RD
595 "This function will merge the window's best size into the window's
596minimum size, giving priority to the min size components, and returns
597the results.
598", "");
0d82d64e 599 %pythoncode { GetBestFittingSize = wx._deprecated(GetEffectiveMinSize, 'Use `GetEffectiveMinSize` instead.') }
9f884528 600
8f514ab4
RD
601 %pythoncode {
602 def GetAdjustedBestSize(self):
603 s = self.GetBestSize()
604 return wx.Size(max(s.width, self.GetMinWidth()),
605 max(s.height, self.GetMinHeight()))
170acdc9 606 GetAdjustedBestSize = wx._deprecated(GetAdjustedBestSize, 'Use `GetEffectiveMinSize` instead.')
8f514ab4 607 }
0facd0e5 608
d14a1e28
RD
609
610
0facd0e5
RD
611 DocDeclStr(
612 void , Center( int direction = wxBOTH ),
613 "Centers the window. The parameter specifies the direction for
614cetering, and may be wx.HORIZONTAL, wx.VERTICAL or wx.BOTH. It may
615also include wx.CENTER_ON_SCREEN flag if you want to center the window
616on the entire screen and not on its parent window. If it is a
617top-level window and has no parent then it will always be centered
1d0ac8f5 618relative to the screen.", "");
d14a1e28
RD
619 %pythoncode { Centre = Center }
620
0facd0e5 621
0facd0e5
RD
622 DocDeclStr(
623 void , CenterOnParent(int dir = wxBOTH),
d07d2bc9 624 "Center with respect to the the parent window", "");
0facd0e5 625 %pythoncode { CentreOnParent = CenterOnParent }
d14a1e28 626
0facd0e5 627
d14a1e28 628
0facd0e5
RD
629 DocDeclStr(
630 virtual void , Fit(),
631 "Sizes the window so that it fits around its subwindows. This function
632won't do anything if there are no subwindows and will only really work
633correctly if sizers are used for the subwindows layout. Also, if the
634window has exactly one subwindow it is better (faster and the result
635is more precise as Fit adds some margin to account for fuzziness of
636its calculations) to call window.SetClientSize(child.GetSize())
d07d2bc9 637instead of calling Fit.", "");
0facd0e5 638
d14a1e28 639
0facd0e5
RD
640 DocDeclStr(
641 virtual void , FitInside(),
642 "Similar to Fit, but sizes the interior (virtual) size of a
643window. Mainly useful with scrolled windows to reset scrollbars after
644sizing changes that do not trigger a size event, and/or scrolled
645windows without an interior sizer. This function similarly won't do
d07d2bc9 646anything if there are no subwindows.", "");
0facd0e5 647
d14a1e28 648
33e10b88 649
33e10b88 650 DocStr(SetSizeHints,
0facd0e5
RD
651 "Allows specification of minimum and maximum window sizes, and window
652size increments. If a pair of values is not set (or set to -1), the
653default values will be used. If this function is called, the user
3b74f194
RD
654will not be able to size the window outside the given bounds (if it is
655a top-level window.) Sizers will also inspect the minimum window size
656and will use that value if set when calculating layout.
657
658The resizing increments are only significant under Motif or Xt.", "
659
660:see: `GetMinSize`, `GetMaxSize`, `SetMinSize`, `SetMaxSize`
661");
3b74f194
RD
662 virtual void SetSizeHints( int minW, int minH,
663 int maxW = -1, int maxH = -1,
664 int incW = -1, int incH = -1 );
1b8c7ba6
RD
665 %Rename(SetSizeHintsSz, void, SetSizeHints( const wxSize& minSize,
666 const wxSize& maxSize=wxDefaultSize,
667 const wxSize& incSize=wxDefaultSize));
d14a1e28 668
33e10b88 669
33e10b88 670 DocStr(SetVirtualSizeHints,
0facd0e5
RD
671 "Allows specification of minimum and maximum virtual window sizes. If a
672pair of values is not set (or set to -1), the default values will be
673used. If this function is called, the user will not be able to size
d07d2bc9 674the virtual area of the window outside the given bounds.", "");
3b74f194
RD
675 virtual void SetVirtualSizeHints( int minW, int minH,
676 int maxW = -1, int maxH = -1 );
1b8c7ba6
RD
677 %Rename(SetVirtualSizeHintsSz, void, SetVirtualSizeHints(
678 const wxSize& minSize, const wxSize& maxSize=wxDefaultSize));
9f8a9f54
RD
679
680
0facd0e5
RD
681
682 DocDeclStr(
3b74f194 683 virtual wxSize , GetMaxSize() const,
d07d2bc9 684 "", "");
0facd0e5
RD
685
686 DocDeclStr(
3b74f194 687 virtual wxSize , GetMinSize() const,
d07d2bc9 688 "", "");
0facd0e5
RD
689
690 DocDeclStr(
8f514ab4 691 virtual void , SetMinSize(const wxSize& minSize),
3b74f194
RD
692 "A more convenient method than `SetSizeHints` for setting just the
693min size.", "");
694
695 DocDeclStr(
8f514ab4 696 virtual void , SetMaxSize(const wxSize& maxSize),
3b74f194
RD
697 "A more convenient method than `SetSizeHints` for setting just the
698max size.", "");
699
700
701
702 DocDeclStr(
703 virtual int , GetMinWidth() const,
d07d2bc9 704 "", "");
0facd0e5
RD
705
706 DocDeclStr(
3b74f194 707 virtual int , GetMinHeight() const,
d07d2bc9 708 "", "");
0facd0e5 709
0facd0e5 710 DocDeclStr(
3b74f194 711 int , GetMaxWidth() const,
d07d2bc9 712 "", "");
0facd0e5 713
33e10b88 714 DocDeclStr(
3b74f194 715 int , GetMaxHeight() const,
d07d2bc9 716 "", "");
33e10b88 717
dd9f7fea 718
3b74f194 719
dd9f7fea 720 DocStr(SetVirtualSize,
0facd0e5
RD
721 "Set the the virtual size of a window in pixels. For most windows this
722is just the client area of the window, but for some like scrolled
d07d2bc9 723windows it is more or less independent of the screen window size.", "");
dd9f7fea 724 void SetVirtualSize(const wxSize& size );
1b8c7ba6 725 %Rename(SetVirtualSizeWH, void, SetVirtualSize( int w, int h ));
d14a1e28 726
dd9f7fea
RD
727
728 DocStr(GetVirtualSize,
0facd0e5
RD
729 "Get the the virtual size of the window in pixels. For most windows
730this is just the client area of the window, but for some like scrolled
d07d2bc9 731windows it is more or less independent of the screen window size.", "");
d14a1e28 732 wxSize GetVirtualSize() const;
dd9f7fea
RD
733 DocDeclAName(
734 void, GetVirtualSize( int *OUTPUT, int *OUTPUT ) const,
735 "GetVirtualSizeTuple() -> (width, height)",
736 GetVirtualSizeTuple);
d14a1e28
RD
737
738
b5bc23fb
RD
739 DocDeclStr(
740 virtual wxSize , GetWindowBorderSize() const,
741 "Return the size of the left/right and top/bottom borders.", "");
742
743
d14a1e28
RD
744// TODO: using directors?
745// // Override these methods for windows that have a virtual size
746// // independent of their client size. eg. the virtual area of a
747// // wxScrolledWindow. Default is to alias VirtualSize to ClientSize.
748// virtual void DoSetVirtualSize( int x, int y );
749// virtual wxSize DoGetVirtualSize() const; // { return m_virtualSize; }
750
751
0facd0e5
RD
752 DocDeclStr(
753 virtual wxSize , GetBestVirtualSize() const,
754 "Return the largest of ClientSize and BestSize (as determined by a
d07d2bc9 755sizer, interior children, or other means)", "");
0facd0e5 756
d14a1e28
RD
757
758
16ec1954
RD
759// void SetScrollHelper( wxScrollHelper *sh );
760// wxScrollHelper *GetScrollHelper();
761
762
d14a1e28
RD
763 // window state
764 // ------------
765
0facd0e5 766 DocDeclStr(
a72f4631 767 virtual bool , Show( bool show = true ),
0facd0e5
RD
768 "Shows or hides the window. You may need to call Raise for a top level
769window if you want to bring it to top, although this is not needed if
e2bbfc8f
RD
770Show is called immediately after the frame creation. Returns True if
771the window has been shown or hidden or False if nothing was done
d07d2bc9 772because it already was in the requested state.", "");
0facd0e5
RD
773
774 DocDeclStr(
775 bool , Hide(),
d07d2bc9 776 "Equivalent to calling Show(False).", "");
0facd0e5 777
d14a1e28 778
0facd0e5 779 DocDeclStr(
a72f4631 780 virtual bool , Enable( bool enable = true ),
0facd0e5
RD
781 "Enable or disable the window for user input. Note that when a parent
782window is disabled, all of its children are disabled as well and they
783are reenabled again when the parent is. Returns true if the window
784has been enabled or disabled, false if nothing was done, i.e. if the
d07d2bc9 785window had already been in the specified state.", "");
0facd0e5
RD
786
787 DocDeclStr(
788 bool , Disable(),
d07d2bc9 789 "Disables the window, same as Enable(false).", "");
0facd0e5 790
d14a1e28 791
0facd0e5
RD
792 DocDeclStr(
793 bool , IsShown() const,
d07d2bc9 794 "Returns true if the window is shown, false if it has been hidden.", "");
0facd0e5
RD
795
796 DocDeclStr(
797 bool , IsEnabled() const,
cbfc9df6
RD
798 "Returns true if the window is enabled for input, false otherwise.
799This method takes into account the enabled state of parent windows up
800to the top-level window.", "");
801
802 DocDeclStr(
803 bool , IsThisEnabled() const,
804 "Returns the internal enabled state independent of the parent(s) state,
805i.e. the state in which the window would be if all of its parents are
806enabled. Use `IsEnabled` to get the effective window state.", "");
807
d14a1e28 808
6517912d 809 DocDeclStr(
16ec1954 810 virtual bool , IsShownOnScreen() const,
6517912d
RD
811 "Returns ``True`` if the window is physically visible on the screen,
812i.e. it is shown and all its parents up to the toplevel window are
813shown as well.", "");
814
0facd0e5 815
d14a1e28 816
d14a1e28 817
0facd0e5
RD
818 DocDeclStr(
819 virtual void , SetWindowStyleFlag( long style ),
d07d2bc9
RD
820 "Sets the style of the window. Please note that some styles cannot be
821changed after the window creation and that Refresh() might need to be
822called after changing the others for the change to take place
823immediately.", "");
0facd0e5
RD
824
825 DocDeclStr(
826 virtual long , GetWindowStyleFlag() const,
e2bbfc8f 827 "Gets the window style that was passed to the constructor or Create
d07d2bc9 828method.", "");
d14a1e28 829
0facd0e5
RD
830 %pythoncode { SetWindowStyle = SetWindowStyleFlag; GetWindowStyle = GetWindowStyleFlag }
831
832
833 DocDeclStr(
834 bool , HasFlag(int flag) const,
d07d2bc9 835 "Test if the given style is set for this window.", "");
0facd0e5 836
d14a1e28 837
0facd0e5
RD
838 DocDeclStr(
839 virtual bool , IsRetained() const,
840 "Returns true if the window is retained, false otherwise. Retained
d07d2bc9 841windows are only available on X platforms.", "");
0facd0e5 842
d14a1e28 843
5917d041
RD
844 DocDeclStr(
845 bool , ToggleWindowStyle(int flag),
846 "Turn the flag on if it had been turned off before and vice versa,
847returns True if the flag is turned on by this function call.", "");
848
849
d14a1e28 850
0facd0e5
RD
851 DocDeclStr(
852 virtual void , SetExtraStyle(long exStyle),
853 "Sets the extra style bits for the window. Extra styles are the less
854often used style bits which can't be set with the constructor or with
d07d2bc9 855SetWindowStyleFlag()", "");
0facd0e5
RD
856
857 DocDeclStr(
858 long , GetExtraStyle() const,
d07d2bc9 859 "Returns the extra style bits for the window.", "");
0facd0e5 860
a7c987f9
RD
861 DocDeclStr(
862 bool , HasExtraStyle(int exFlag) const,
863 "Returns ``True`` if the given extra flag is set.", "");
d14a1e28 864
0facd0e5
RD
865
866 DocDeclStr(
a72f4631 867 virtual void , MakeModal(bool modal = true),
0facd0e5
RD
868 "Disables all other windows in the application so that the user can
869only interact with this window. Passing False will reverse this
d07d2bc9 870effect.", "");
0facd0e5 871
d14a1e28 872
0facd0e5
RD
873
874 DocDeclStr(
875 virtual void , SetThemeEnabled(bool enableTheme),
876 "This function tells a window if it should use the system's \"theme\"
877 code to draw the windows' background instead if its own background
878 drawing code. This will only have an effect on platforms that support
879 the notion of themes in user defined windows. One such platform is
880 GTK+ where windows can have (very colourful) backgrounds defined by a
881 user's selected theme.
882
883Dialogs, notebook pages and the status bar have this flag set to true
d07d2bc9 884by default so that the default look and feel is simulated best.", "");
0facd0e5
RD
885
886 DocDeclStr(
887 virtual bool , GetThemeEnabled() const,
d07d2bc9 888 "Return the themeEnabled flag.", "");
0facd0e5 889
d14a1e28 890
0facd0e5
RD
891// TODO with directors
892// // controls by default inherit the colours of their parents, if a
893// // particular control class doesn't want to do it, it can override
894// // ShouldInheritColours() to return False
895// virtual bool ShouldInheritColours() const;
d14a1e28 896
d14a1e28 897
d14a1e28 898
0facd0e5 899
d14a1e28 900
0facd0e5
RD
901 // focus and keyboard handling
902 // ---------------------------
d14a1e28 903
0facd0e5
RD
904
905 DocDeclStr(
906 virtual void , SetFocus(),
d07d2bc9 907 "Set's the focus to this window, allowing it to receive keyboard input.", "");
0facd0e5
RD
908
909 DocDeclStr(
910 virtual void , SetFocusFromKbd(),
911 "Set focus to this window as the result of a keyboard action. Normally
d07d2bc9 912only called internally.", "");
0facd0e5
RD
913
914
915
916 DocDeclStr(
917 static wxWindow *, FindFocus(),
918 "Returns the window or control that currently has the keyboard focus,
d07d2bc9 919or None.", "");
0facd0e5 920
d14a1e28 921
0facd0e5
RD
922 DocDeclStr(
923 virtual bool , AcceptsFocus() const,
d07d2bc9 924 "Can this window have focus?", "");
0facd0e5 925
d14a1e28 926
cbfc9df6
RD
927 DocDeclStr(
928 bool , CanAcceptFocus() const,
929 "Can this window have focus right now?", "");
930
931
932
0facd0e5
RD
933 DocDeclStr(
934 virtual bool , AcceptsFocusFromKeyboard() const,
935 "Can this window be given focus by keyboard navigation? if not, the
936only way to give it focus (provided it accepts it at all) is to click
d07d2bc9 937it.", "");
0facd0e5 938
d14a1e28 939
cbfc9df6
RD
940
941 DocDeclStr(
942 bool , CanAcceptFocusFromKeyboard() const,
943 "Can this window be assigned focus from keyboard right now?", "");
944
945
c655dbdd
RD
946 DocDeclStr(
947 virtual void , SetCanFocus(bool canFocus),
948 "", "");
949
950
cbfc9df6
RD
951
952 DocDeclAStr(
953 virtual bool , NavigateIn(int flags = wxNavigationKeyEvent::IsForward),
954 "NavigateIn(self, int flags=NavigationKeyEvent.IsForward) -> bool",
955 "Navigates inside this window.", "");
d14a1e28 956
a9a04486 957
3b74f194
RD
958 DocDeclAStr(
959 virtual bool , Navigate(int flags = wxNavigationKeyEvent::IsForward),
960 "Navigate(self, int flags=NavigationKeyEvent.IsForward) -> bool",
cbfc9df6
RD
961 "Does keyboard navigation starting from this window to another. This is
962equivalient to self.GetParent().NavigateIn().", "
3b74f194 963
75de5546
RD
964 :param flags: A combination of the ``IsForward`` or ``IsBackward``
965 and the ``WinChange`` values in the `wx.NavigationKeyEvent`
966 class, which determine if the navigation should be in forward
967 or reverse order, and if it should be able to cross parent
968 window boundaries, such as between notebook pages or MDI child
969 frames. Typically the status of the Shift key (for forward or
970 backward) or the Control key (for WinChange) would be used to
971 determine how to set the flags.
3b74f194
RD
972
973One situation in which you may wish to call this method is from a text
974control custom keypress handler to do the default navigation behaviour
975for the tab key, since the standard default behaviour for a multiline
976text control with the wx.TE_PROCESS_TAB style is to insert a tab and
977not navigate to the next control.");
705b61cc
RD
978
979
980
981 DocDeclStr(
982 void , MoveAfterInTabOrder(wxWindow *win),
983 "Moves this window in the tab navigation order after the specified
984sibling window. This means that when the user presses the TAB key on
985that other window, the focus switches to this window.
986
987The default tab order is the same as creation order. This function
988and `MoveBeforeInTabOrder` allow to change it after creating all the
989windows.
990", "");
991
992
993 DocDeclStr(
994 void , MoveBeforeInTabOrder(wxWindow *win),
995 "Same as `MoveAfterInTabOrder` except that it inserts this window just
996before win instead of putting it right after it.", "");
0facd0e5
RD
997
998
705b61cc
RD
999
1000
d14a1e28
RD
1001 // parent/children relations
1002 // -------------------------
1003
0facd0e5 1004
0facd0e5 1005 DocStr(GetChildren,
fe45b493
RD
1006 "Returns an object containing a list of the window's children. The
1007object provides a Python sequence-like interface over the internal
1008list maintained by the window..", "");
1009 wxWindowList& GetChildren();
1010
d14a1e28 1011
0facd0e5
RD
1012 DocDeclStr(
1013 wxWindow *, GetParent() const,
d07d2bc9 1014 "Returns the parent window of this window, or None if there isn't one.", "");
0facd0e5
RD
1015
1016 DocDeclStr(
1017 wxWindow *, GetGrandParent() const,
d07d2bc9
RD
1018 "Returns the parent of the parent of this window, or None if there
1019isn't one.", "");
d14a1e28 1020
cbfc9df6
RD
1021
1022 %extend {
1023 DocDeclStr(wxWindow *, GetTopLevelParent(),
1024 "Returns the first frame or dialog in this window's parental hierarchy.", "")
1025 {
1026 return wxGetTopLevelParent(self);
1027 }
1028 }
1029
0facd0e5
RD
1030
1031 DocDeclStr(
1032 virtual bool , IsTopLevel() const,
1033 "Returns true if the given window is a top-level one. Currently all
1034frames and dialogs are always considered to be top-level windows (even
d07d2bc9 1035if they have a parent window).", "");
0facd0e5 1036
d14a1e28 1037
dd9f7fea
RD
1038 // change the real parent of this window, return True if the parent
1039 // was changed, False otherwise (error or newParent == oldParent)
0facd0e5
RD
1040 DocDeclStr(
1041 virtual bool , Reparent( wxWindow *newParent ),
1042 "Reparents the window, i.e the window will be removed from its current
1043parent window (e.g. a non-standard toolbar in a wxFrame) and then
1044re-inserted into another. Available on Windows and GTK. Returns True
1045if the parent was changed, False otherwise (error or newParent ==
d07d2bc9 1046oldParent)", "");
0facd0e5 1047
d14a1e28 1048
0facd0e5
RD
1049 DocDeclStr(
1050 virtual void , AddChild( wxWindow *child ),
1051 "Adds a child window. This is called automatically by window creation
d07d2bc9 1052functions so should not be required by the application programmer.", "");
0facd0e5
RD
1053
1054 DocDeclStr(
1055 virtual void , RemoveChild( wxWindow *child ),
1056 "Removes a child window. This is called automatically by window
1057deletion functions so should not be required by the application
d07d2bc9 1058programmer.", "");
d14a1e28
RD
1059
1060
d0e2ede0
RD
1061 DocStr(SetDoubleBuffered,
1062 "Currently wxGTK2 only.", "");
1063#ifdef __WXGTK__
1064 void SetDoubleBuffered(bool on);
1065#else
1066 %extend {
1067 void SetDoubleBuffered(bool on) {}
1068 }
1069#endif
1070
d14a1e28
RD
1071
1072 // looking for windows
1073 // -------------------
1074
0facd0e5
RD
1075 DocDeclStrName(
1076 wxWindow *, FindWindow( long winid ),
d07d2bc9 1077 "Find a chld of this window by window ID", "",
0facd0e5
RD
1078 FindWindowById);
1079
1080 DocDeclStrName(
1081 wxWindow *, FindWindow( const wxString& name ),
d07d2bc9 1082 "Find a child of this window by name", "",
0facd0e5
RD
1083 FindWindowByName);
1084
d14a1e28
RD
1085
1086
1087 // event handler stuff
1088 // -------------------
1089
0facd0e5
RD
1090 DocDeclStr(
1091 wxEvtHandler *, GetEventHandler() const,
1092 "Returns the event handler for this window. By default, the window is
d07d2bc9 1093its own event handler.", "");
0facd0e5 1094
d14a1e28 1095
0facd0e5
RD
1096 DocDeclStr(
1097 void , SetEventHandler( wxEvtHandler *handler ),
1098 "Sets the event handler for this window. An event handler is an object
d49bdf34
RD
1099that is capable of processing the events sent to a window. (In other
1100words, is able to dispatch the events to handler function.) By
1101default, the window is its own event handler, but an application may
1102wish to substitute another, for example to allow central
1103implementation of event-handling for a variety of different window
1104classes.
0facd0e5 1105
d07d2bc9 1106It is usually better to use `wx.Window.PushEventHandler` since this sets
0facd0e5 1107up a chain of event handlers, where an event not handled by one event
d49bdf34 1108handler is handed off to the next one in the chain.", "");
0facd0e5 1109
d14a1e28 1110
0facd0e5
RD
1111 DocDeclStr(
1112 void , PushEventHandler( wxEvtHandler *handler ),
1113 "Pushes this event handler onto the event handler stack for the window.
1114An event handler is an object that is capable of processing the events
0b0849b5 1115sent to a window. (In other words, is able to dispatch the events to a
d49bdf34
RD
1116handler function.) By default, the window is its own event handler,
1117but an application may wish to substitute another, for example to
1118allow central implementation of event-handling for a variety of
1119different window classes.
d14a1e28 1120
0facd0e5
RD
1121wx.Window.PushEventHandler allows an application to set up a chain of
1122event handlers, where an event not handled by one event handler is
d49bdf34
RD
1123handed to the next one in the chain. Use `wx.Window.PopEventHandler`
1124to remove the event handler. Ownership of the handler is *not* given
1125to the window, so you should be sure to pop the handler before the
1126window is destroyed and either let PopEventHandler destroy it, or call
1127its Destroy method yourself.", "");
0facd0e5
RD
1128
1129
1130 DocDeclStr(
a72f4631 1131 wxEvtHandler *, PopEventHandler( bool deleteHandler = false ),
0facd0e5
RD
1132 "Removes and returns the top-most event handler on the event handler
1133stack. If deleteHandler is True then the wx.EvtHandler object will be
d49bdf34 1134destroyed after it is popped, and ``None`` will be returned instead.", "");
0facd0e5
RD
1135
1136
1137 DocDeclStr(
1138 bool , RemoveEventHandler(wxEvtHandler *handler),
d07d2bc9 1139 "Find the given handler in the event handler chain and remove (but not
d49bdf34 1140delete) it from the event handler chain, returns True if it was found
d07d2bc9
RD
1141and False otherwise (this also results in an assert failure so this
1142function should only be called when the handler is supposed to be
1143there.)", "");
0facd0e5 1144
d14a1e28
RD
1145
1146
1147
1148 // validators
1149 // ----------
1150
1151 // a window may have an associated validator which is used to control
1152 // user input
0facd0e5
RD
1153 DocDeclStr(
1154 virtual void , SetValidator( const wxValidator &validator ),
1155 "Deletes the current validator (if any) and sets the window validator,
1156having called wx.Validator.Clone to create a new validator of this
d07d2bc9 1157type.", "");
0facd0e5
RD
1158
1159 DocDeclStr(
1160 virtual wxValidator *, GetValidator(),
1161 "Returns a pointer to the current validator for the window, or None if
d07d2bc9 1162there is none.", "");
b8fd6d07
RD
1163
1164
1165 DocDeclStr(
1166 virtual bool , Validate(),
1167 "Validates the current values of the child controls using their
d07d2bc9
RD
1168validators. If the window has wx.WS_EX_VALIDATE_RECURSIVELY extra
1169style flag set, the method will also call Validate() of all child
1170windows. Returns false if any of the validations failed.", "");
b8fd6d07
RD
1171
1172
1173 DocDeclStr(
1174 virtual bool , TransferDataToWindow(),
d07d2bc9
RD
1175 "Transfers values to child controls from data areas specified by their
1176validators. If the window has wx.WS_EX_VALIDATE_RECURSIVELY extra
1177style flag set, the method will also call TransferDataToWindow() of
1178all child windows.", "");
b8fd6d07
RD
1179
1180 DocDeclStr(
1181 virtual bool , TransferDataFromWindow(),
d07d2bc9
RD
1182 "Transfers values from child controls to data areas specified by their
1183validators. Returns false if a transfer failed. If the window has
1184wx.WS_EX_VALIDATE_RECURSIVELY extra style flag set, the method will
1185also call TransferDataFromWindow() of all child windows.", "");
b8fd6d07
RD
1186
1187
1188 DocDeclStr(
1189 virtual void , InitDialog(),
d07d2bc9
RD
1190 "Sends an EVT_INIT_DIALOG event, whose handler usually transfers data
1191to the dialog via validators.", "");
b8fd6d07 1192
0facd0e5 1193
d14a1e28
RD
1194
1195
1196 // accelerators
1197 // ------------
1198
0facd0e5
RD
1199 DocDeclStr(
1200 virtual void , SetAcceleratorTable( const wxAcceleratorTable& accel ),
d07d2bc9 1201 "Sets the accelerator table for this window.", "");
0facd0e5
RD
1202
1203 DocDeclStr(
1204 wxAcceleratorTable *, GetAcceleratorTable(),
d07d2bc9 1205 "Gets the accelerator table for this window.", "");
0facd0e5 1206
d14a1e28
RD
1207
1208
1209
1210
1211 // hot keys (system wide accelerators)
1212 // -----------------------------------
1213 %extend {
0facd0e5
RD
1214 DocStr(RegisterHotKey,
1215 "Registers a system wide hotkey. Every time the user presses the hotkey
1216registered here, this window will receive a hotkey event. It will
1217receive the event even if the application is in the background and
1218does not have the input focus because the user is working with some
1219other application. To bind an event handler function to this hotkey
1220use EVT_HOTKEY with an id equal to hotkeyId. Returns True if the
d07d2bc9 1221hotkey was registered successfully.", "");
d14a1e28 1222 bool RegisterHotKey(int hotkeyId, int modifiers, int keycode) {
baf1aa5d 1223 %#if wxUSE_HOTKEY
d14a1e28 1224 return self->RegisterHotKey(hotkeyId, modifiers, keycode);
baf1aa5d 1225 %#else
a72f4631 1226 return false;
baf1aa5d 1227 %#endif
d14a1e28
RD
1228 }
1229
0facd0e5
RD
1230
1231 DocStr(UnregisterHotKey,
d07d2bc9 1232 "Unregisters a system wide hotkey.", "");
d14a1e28
RD
1233 bool UnregisterHotKey(int hotkeyId) {
1234 #if wxUSE_HOTKEY
1235 return self->UnregisterHotKey(hotkeyId);
1236 #else
a72f4631 1237 return false;
d14a1e28
RD
1238 #endif
1239 }
1240 }
1241
1242
1243
1244 // "dialog units" translations
1245 // ---------------------------
1246
0facd0e5 1247 DocStr(ConvertDialogToPixels,
e2bbfc8f
RD
1248 "Converts a point or size from dialog units to pixels. Dialog units
1249are used for maintaining a dialog's proportions even if the font
0facd0e5
RD
1250changes. For the x dimension, the dialog units are multiplied by the
1251average character width and then divided by 4. For the y dimension,
1252the dialog units are multiplied by the average character height and
d07d2bc9 1253then divided by 8.", "");
1b8c7ba6
RD
1254 %Rename(ConvertDialogPointToPixels, wxPoint, ConvertDialogToPixels(const wxPoint& pt));
1255 %Rename(ConvertDialogSizeToPixels, wxSize, ConvertDialogToPixels(const wxSize& sz));
1256 %Rename(DLG_PNT, wxPoint, ConvertDialogToPixels(const wxPoint& pt));
1257 %Rename(DLG_SZE, wxSize, ConvertDialogToPixels(const wxSize& sz));
d14a1e28 1258
0facd0e5
RD
1259
1260 DocStr(ConvertPixelPointToDialog,
1261 "Converts a point or size from pixels to dialog units. Dialog units
1262are used for maintaining a dialog's proportions even if the font
1263changes. For the x dimension, the dialog units are multiplied by the
1264average character width and then divided by 4. For the y dimension,
1265the dialog units are multiplied by the average character height and
d07d2bc9 1266then divided by 8.", "");
1b8c7ba6
RD
1267 %Rename(ConvertPixelPointToDialog, wxPoint, ConvertPixelsToDialog(const wxPoint& pt));
1268 %Rename(ConvertPixelSizeToDialog, wxSize, ConvertPixelsToDialog(const wxSize& sz));
d14a1e28
RD
1269
1270
1271
1272 // mouse functions
1273 // ---------------
1274
0facd0e5
RD
1275 DocDeclStr(
1276 virtual void , WarpPointer(int x, int y),
1277 "Moves the pointer to the given position on the window.
1278
1279NOTE: This function is not supported under Mac because Apple Human
d07d2bc9 1280Interface Guidelines forbid moving the mouse cursor programmatically.", "");
0facd0e5 1281
d14a1e28 1282
0facd0e5
RD
1283 DocDeclStr(
1284 void , CaptureMouse(),
1285 "Directs all mouse input to this window. Call wx.Window.ReleaseMouse to
1286release the capture.
d14a1e28 1287
0facd0e5
RD
1288Note that wxWindows maintains the stack of windows having captured the
1289mouse and when the mouse is released the capture returns to the window
1290which had had captured it previously and it is only really released if
1291there were no previous window. In particular, this means that you must
e249d3c0
RD
1292release the mouse as many times as you capture it, unless the window
1293receives the `wx.MouseCaptureLostEvent` event.
1294
1295Any application which captures the mouse in the beginning of some
1296operation *must* handle `wx.MouseCaptureLostEvent` and cancel this
1297operation when it receives the event. The event handler must not
1298recapture mouse.", "");
0facd0e5
RD
1299
1300 DocDeclStr(
1301 void , ReleaseMouse(),
d07d2bc9 1302 "Releases mouse input captured with wx.Window.CaptureMouse.", "");
0facd0e5
RD
1303
1304
1305 DocDeclStr(
1306 static wxWindow *, GetCapture(),
d07d2bc9 1307 "Returns the window which currently captures the mouse or None", "");
0facd0e5 1308
d14a1e28 1309
0facd0e5
RD
1310 DocDeclStr(
1311 virtual bool , HasCapture() const,
d07d2bc9 1312 "Returns true if this window has the current mouse capture.", "");
0facd0e5 1313
d14a1e28
RD
1314
1315
0facd0e5 1316
d14a1e28
RD
1317
1318 // painting the window
1319 // -------------------
1320
0facd0e5 1321 DocDeclStr(
a72f4631 1322 virtual void , Refresh( bool eraseBackground = true,
0facd0e5
RD
1323 const wxRect *rect = NULL ),
1324 "Mark the specified rectangle (or the whole window) as \"dirty\" so it
1325will be repainted. Causes an EVT_PAINT event to be generated and sent
d07d2bc9 1326to the window.", "");
0facd0e5 1327
d14a1e28 1328
0facd0e5 1329 DocDeclStr(
8815349a 1330 void , RefreshRect(const wxRect& rect, bool eraseBackground = true),
0facd0e5 1331 "Redraws the contents of the given rectangle: the area inside it will
d07d2bc9 1332be repainted. This is the same as Refresh but has a nicer syntax.", "");
0facd0e5 1333
d14a1e28 1334
0facd0e5
RD
1335 DocDeclStr(
1336 virtual void , Update(),
1337 "Calling this method immediately repaints the invalidated area of the
1338window instead of waiting for the EVT_PAINT event to happen, (normally
1339this would usually only happen when the flow of control returns to the
1340event loop.) Notice that this function doesn't refresh the window and
a0fd79ba 1341does nothing if the window has been already repainted. Use `Refresh`
0facd0e5 1342first if you want to immediately redraw the window (or some portion of
d07d2bc9 1343it) unconditionally.", "");
0facd0e5 1344
d14a1e28 1345
0facd0e5
RD
1346 DocDeclStr(
1347 virtual void , ClearBackground(),
1348 "Clears the window by filling it with the current background
d07d2bc9 1349colour. Does not cause an erase background event to be generated.", "");
0facd0e5 1350
d14a1e28 1351
d14a1e28 1352
0facd0e5
RD
1353 DocDeclStr(
1354 virtual void , Freeze(),
d07d2bc9
RD
1355 "Freezes the window or, in other words, prevents any updates from
1356taking place on screen, the window is not redrawn at all. Thaw must be
1357called to reenable window redrawing. Calls to Freeze/Thaw may be
1358nested, with the actual Thaw being delayed until all the nesting has
1359been undone.
d14a1e28 1360
0facd0e5
RD
1361This method is useful for visual appearance optimization (for example,
1362it is a good idea to use it before inserting large amount of text into
1363a wxTextCtrl under wxGTK) but is not implemented on all platforms nor
1364for all controls so it is mostly just a hint to wxWindows and not a
d07d2bc9 1365mandatory directive.", "");
16ec1954 1366
0facd0e5 1367
16ec1954
RD
1368 DocDeclStr(
1369 virtual bool , IsFrozen() const,
1370 "Returns ``True`` if the window has been frozen and not thawed yet.
d14a1e28 1371
16ec1954
RD
1372:see: `Freeze` and `Thaw`", "");
1373
1374
1375
0facd0e5
RD
1376 DocDeclStr(
1377 virtual void , Thaw(),
2f4ad68c 1378 "Reenables window updating after a previous call to Freeze. Calls to
d07d2bc9
RD
1379Freeze/Thaw may be nested, so Thaw must be called the same number of
1380times that Freeze was before the window will be updated.", "");
0facd0e5 1381
d14a1e28 1382
0facd0e5
RD
1383 DocDeclStr(
1384 virtual void , PrepareDC( wxDC & dc ),
1385 "Call this function to prepare the device context for drawing a
1386scrolled image. It sets the device origin according to the current
d07d2bc9 1387scroll position.", "");
9a3dccf6
RD
1388
1389 DocDeclStr(
1390 virtual bool , IsDoubleBuffered() const,
1391 "Returns ``True`` if the window contents is double-buffered by the
1392system, i.e. if any drawing done on the window is really done on a
1393temporary backing surface and transferred to the screen all at once
1394later.", "");
0facd0e5
RD
1395
1396
1397 DocDeclStr(
1398 wxRegion& , GetUpdateRegion(),
1399 "Returns the region specifying which parts of the window have been
d07d2bc9 1400damaged. Should only be called within an EVT_PAINT handler.", "");
0facd0e5 1401
d14a1e28 1402
0facd0e5
RD
1403 DocDeclStr(
1404 wxRect , GetUpdateClientRect() const,
d07d2bc9 1405 "Get the update rectangle region bounding box in client coords.", "");
0facd0e5
RD
1406
1407
1408 DocStr(IsExposed,
1409 "Returns true if the given point or rectangle area has been exposed
1410since the last repaint. Call this in an paint event handler to
1411optimize redrawing by only redrawing those areas, which have been
d07d2bc9 1412exposed.", "");
d14a1e28 1413 bool IsExposed( int x, int y, int w=1, int h=1 ) const;
1b8c7ba6
RD
1414 %Rename(IsExposedPoint, bool, IsExposed( const wxPoint& pt ) const);
1415 %Rename(IsExposedRect, bool, IsExposed( const wxRect& rect ) const);
d14a1e28
RD
1416
1417
1418
1419 // colours, fonts and cursors
1420 // --------------------------
1421
d14a1e28 1422
174051f6 1423 DocDeclStr(
880715c9 1424 virtual wxVisualAttributes , GetDefaultAttributes() const,
d07d2bc9
RD
1425 "Get the default attributes for an instance of this class. This is
1426useful if you want to use the same font or colour in your own control
1427as in a standard control -- which is a much better idea than hard
1428coding specific colours or fonts which might look completely out of
d474ed7b 1429place on the user's system, especially if it uses themes.", "");
174051f6 1430
d14a1e28 1431
174051f6
RD
1432 DocDeclStr(
1433 static wxVisualAttributes ,
1434 GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL),
d07d2bc9
RD
1435 "Get the default attributes for this class. This is useful if you want
1436to use the same font or colour in your own control as in a standard
1437control -- which is a much better idea than hard coding specific
d474ed7b
RD
1438colours or fonts which might look completely out of place on the
1439user's system, especially if it uses themes.
174051f6
RD
1440
1441The variant parameter is only relevant under Mac currently and is
d07d2bc9 1442ignore under other platforms. Under Mac, it will change the size of
d474ed7b
RD
1443the returned font. See `wx.Window.SetWindowVariant` for more about
1444this.", "");
174051f6 1445
0facd0e5
RD
1446
1447 DocDeclStr(
1448 virtual bool , SetBackgroundColour( const wxColour &colour ),
1449 "Sets the background colour of the window. Returns True if the colour
1450was changed. The background colour is usually painted by the default
1451EVT_ERASE_BACKGROUND event handler function under Windows and
fe161a26
RD
1452automatically under GTK. Using `wx.NullColour` will reset the window
1453to the default background colour.
0facd0e5 1454
d474ed7b 1455Note that setting the background colour may not cause an immediate
fe161a26 1456refresh, so you may wish to call `ClearBackground` or `Refresh` after
0facd0e5
RD
1457calling this function.
1458
fe161a26
RD
1459Using this function will disable attempts to use themes for this
1460window, if the system supports them. Use with care since usually the
1461themes represent the appearance chosen by the user to be used for all
1462applications on the system.", "");
ed3ff7fe
RD
1463
1464 DocDeclStr(
6d450e1a 1465 void , SetOwnBackgroundColour(const wxColour& colour),
d07d2bc9 1466 "", "");
ed3ff7fe
RD
1467
1468
0facd0e5
RD
1469
1470 DocDeclStr(
1471 virtual bool , SetForegroundColour( const wxColour &colour ),
1472 "Sets the foreground colour of the window. Returns True is the colour
1473was changed. The interpretation of foreground colour is dependent on
1474the window class; it may be the text colour or other colour, or it may
d07d2bc9 1475not be used at all.", "");
174051f6 1476
ed3ff7fe 1477 DocDeclStr(
fa47d7a7 1478 void , SetOwnForegroundColour(const wxColour& colour),
d07d2bc9 1479 "", "");
ed3ff7fe 1480
0facd0e5 1481
ed3ff7fe 1482
0facd0e5
RD
1483 DocDeclStr(
1484 wxColour , GetBackgroundColour() const,
d07d2bc9 1485 "Returns the background colour of the window.", "");
0facd0e5
RD
1486
1487 DocDeclStr(
1488 wxColour , GetForegroundColour() const,
1489 "Returns the foreground colour of the window. The interpretation of
1490foreground colour is dependent on the window class; it may be the text
d07d2bc9 1491colour or other colour, or it may not be used at all.", "");
6bda7508 1492
562ecc31
RD
1493 DocDeclStr(
1494 bool , InheritsBackgroundColour() const,
1495 "", "");
1496
1497 DocDeclStr(
1498 bool , UseBgCol() const,
1499 "", "");
1500
1501
6bda7508
RD
1502// TODO:
1503// // if the window shouldn't inherit its colour from the parent, override
1504// // this function to return true
1505// //
1506// // this is currently only used by wxMSW and wxUniv but should be useful for
1507// // the other ports too
1508// virtual bool ProvidesBackground() const;
1509
d14a1e28 1510
a8af432b
RD
1511 // Set/get the background style.
1512 // Pass one of wxBG_STYLE_SYSTEM, wxBG_STYLE_COLOUR, wxBG_STYLE_CUSTOM
1513 DocDeclStr(
1514 virtual bool , SetBackgroundStyle(wxBackgroundStyle style),
1515 "Returns the background style of the window. The background style
1516indicates how the background of the window is drawn.
1517
1518 ====================== ========================================
1519 wx.BG_STYLE_SYSTEM The background colour or pattern should
1520 be determined by the system
1521 wx.BG_STYLE_COLOUR The background should be a solid colour
1522 wx.BG_STYLE_CUSTOM The background will be implemented by the
1523 application.
1524 ====================== ========================================
1525
1526On GTK+, use of wx.BG_STYLE_CUSTOM allows the flicker-free drawing of
1527a custom background, such as a tiled bitmap. Currently the style has
1528no effect on other platforms.
1529
1530:see: `GetBackgroundStyle`, `SetBackgroundColour`", "");
1531
1532 DocDeclStr(
1533 virtual wxBackgroundStyle , GetBackgroundStyle() const,
1534 "Returns the background style of the window.
1535
1536:see: `SetBackgroundStyle`", "");
4b60a5d7 1537
a8af432b 1538
4b60a5d7
RD
1539 DocDeclStr(
1540 bool , HasTransparentBackground(),
1541 "Returns True if this window's background is transparent (as, for
1542example, for `wx.StaticText`) and should show the parent window's
1543background.
d14a1e28 1544
4b60a5d7
RD
1545This method is mostly used internally by the library itself and you
1546normally shouldn't have to call it. You may, however, have to override
1547it in your custom control classes to ensure that background is painted
1548correctly.", "");
1549
0facd0e5
RD
1550
1551 DocDeclStr(
1552 virtual bool , SetCursor( const wxCursor &cursor ),
1553 "Sets the window's cursor. Notice that the window cursor also sets it
1554for the children of the window implicitly.
d14a1e28 1555
0facd0e5 1556The cursor may be wx.NullCursor in which case the window cursor will
d07d2bc9 1557be reset back to default.", "");
0facd0e5
RD
1558
1559 DocDeclStr(
9f884528 1560 wxCursor , GetCursor(),
d07d2bc9 1561 "Return the cursor associated with this window.", "");
0facd0e5 1562
d14a1e28 1563
0facd0e5
RD
1564
1565 DocDeclStr(
1566 virtual bool , SetFont( const wxFont &font ),
d07d2bc9 1567 "Sets the font for this window.", "");
0facd0e5 1568
ed3ff7fe 1569 DocDeclStr(
fa47d7a7 1570 void , SetOwnFont(const wxFont& font),
d07d2bc9 1571 "", "");
ed3ff7fe
RD
1572
1573
1574
0facd0e5 1575 DocDeclStr(
9f884528 1576 wxFont , GetFont(),
d07d2bc9 1577 "Returns the default font used for this window.", "");
0facd0e5
RD
1578
1579
1580
214c4fbe 1581 %disownarg( wxCaret *caret );
0facd0e5
RD
1582 DocDeclStr(
1583 void , SetCaret(wxCaret *caret),
d07d2bc9 1584 "Sets the caret associated with the window.", "");
214c4fbe 1585 %cleardisown( wxCaret *caret );
0facd0e5
RD
1586
1587 DocDeclStr(
1588 wxCaret *, GetCaret() const,
d07d2bc9 1589 "Returns the caret associated with the window.", "");
0facd0e5
RD
1590
1591
1592
1593 DocDeclStr(
1594 virtual int , GetCharHeight() const,
d07d2bc9 1595 "Get the (average) character size for the current font.", "");
0facd0e5
RD
1596
1597 DocDeclStr(
1598 virtual int , GetCharWidth() const,
d07d2bc9 1599 "Get the (average) character size for the current font.", "");
0facd0e5 1600
d14a1e28 1601
dd9f7fea
RD
1602
1603 DocDeclAStr(
1604 void, GetTextExtent(const wxString& string, int *OUTPUT, int *OUTPUT),
64e8a1f0 1605 "GetTextExtent(String string) -> (width, height)",
d07d2bc9 1606 "Get the width and height of the text using the current font.", "");
dd9f7fea
RD
1607 DocDeclAStrName(
1608 void, GetTextExtent(const wxString& string,
1609 int *OUTPUT, int *OUTPUT, int *OUTPUT, int* OUTPUT,
1610 const wxFont* font = NULL),
64e8a1f0 1611 "GetFullTextExtent(String string, Font font=None) ->\n (width, height, descent, externalLeading)",
0facd0e5 1612 "Get the width, height, decent and leading of the text using the
d07d2bc9 1613current or specified font.", "",
dd9f7fea
RD
1614 GetFullTextExtent);
1615
d14a1e28
RD
1616
1617
1618 // client <-> screen coords
1619 // ------------------------
1620
1621 %apply int * INOUT { int* x, int* y };
1622
1623 // translate to/from screen/client coordinates
0facd0e5
RD
1624 DocDeclAStrName(
1625 void , ClientToScreen( int *x, int *y ) const,
1626 "ClientToScreenXY(int x, int y) -> (x,y)",
d07d2bc9 1627 "Converts to screen coordinates from coordinates relative to this window.", "",
0facd0e5
RD
1628 ClientToScreenXY);
1629
1630 DocDeclAStrName(
1631 void , ScreenToClient( int *x, int *y ) const,
1632 "ScreenToClientXY(int x, int y) -> (x,y)",
d07d2bc9 1633 "Converts from screen to client window coordinates.", "",
0facd0e5
RD
1634 ScreenToClientXY);
1635
d14a1e28 1636
0facd0e5
RD
1637 DocDeclStr(
1638 wxPoint , ClientToScreen(const wxPoint& pt) const,
d07d2bc9 1639 "Converts to screen coordinates from coordinates relative to this window.", "");
0facd0e5
RD
1640
1641 DocDeclStr(
1642 wxPoint , ScreenToClient(const wxPoint& pt) const,
d07d2bc9 1643 "Converts from screen to client window coordinates.", "");
0facd0e5 1644
d14a1e28 1645
0facd0e5
RD
1646
1647 DocDeclStrName(
1648 wxHitTest , HitTest(wxCoord x, wxCoord y) const,
d07d2bc9 1649 "Test where the given (in client coords) point lies", "",
0facd0e5
RD
1650 HitTestXY);
1651
1652 DocDeclStr(
1653 wxHitTest , HitTest(const wxPoint& pt) const,
d07d2bc9 1654 "Test where the given (in client coords) point lies", "");
0facd0e5 1655
d14a1e28
RD
1656
1657
1658
1659 // misc
1660 // ----
1661
0facd0e5
RD
1662 %nokwargs GetBorder;
1663 DocDeclStr(
1664 wxBorder , GetBorder(long flags) const,
1665 "Get the window border style from the given flags: this is different
1666from simply doing flags & wxBORDER_MASK because it uses
1667GetDefaultBorder() to translate wxBORDER_DEFAULT to something
1668reasonable.
d07d2bc9 1669", "");
0facd0e5
RD
1670
1671 DocDeclStr(
1672 wxBorder , GetBorder() const,
d07d2bc9 1673 "Get border for the flags of this window", "");
0facd0e5 1674
d14a1e28 1675
0facd0e5 1676
d14a1e28 1677
0facd0e5
RD
1678 DocDeclStr(
1679 virtual void , UpdateWindowUI(long flags = wxUPDATE_UI_NONE),
1680 "This function sends EVT_UPDATE_UI events to the window. The particular
1681implementation depends on the window; for example a wx.ToolBar will
1682send an update UI event for each toolbar button, and a wx.Frame will
1683send an update UI event for each menubar menu item. You can call this
1684function from your application to ensure that your UI is up-to-date at
1685a particular point in time (as far as your EVT_UPDATE_UI handlers are
1686concerned). This may be necessary if you have called
e47ce385 1687`wx.UpdateUIEvent.SetMode` or `wx.UpdateUIEvent.SetUpdateInterval` to
0facd0e5 1688limit the overhead that wxWindows incurs by sending update UI events
d07d2bc9
RD
1689in idle time.",
1690"
0facd0e5
RD
1691The flags should be a bitlist of one or more of the following values:
1692
d07d2bc9 1693 ===================== ==============================
0facd0e5
RD
1694 wx.UPDATE_UI_NONE No particular value
1695 wx.UPDATE_UI_RECURSE Call the function for descendants
1696 wx.UPDATE_UI_FROMIDLE Invoked from OnIdle
d07d2bc9 1697 ===================== ==============================
0facd0e5
RD
1698
1699If you are calling this function from an OnIdle function, make sure
d07d2bc9
RD
1700you pass the wx.UPDATE_UI_FROMIDLE flag, since this tells the window
1701to only update the UI elements that need to be updated in idle
1702time. Some windows update their elements only when necessary, for
1703example when a menu is about to be shown. The following is an example
1704of how to call UpdateWindowUI from an idle function::
0facd0e5
RD
1705
1706 def OnIdle(self, evt):
1707 if wx.UpdateUIEvent.CanUpdate(self):
1708 self.UpdateWindowUI(wx.UPDATE_UI_FROMIDLE);
1709");
1710
d14a1e28
RD
1711
1712// TODO: using directors?
1713// // do the window-specific processing after processing the update event
1714// virtual void DoUpdateWindowUI(wxUpdateUIEvent& event) ;
1715
0facd0e5
RD
1716
1717 DocStr(PopupMenu,
d25d9ed0
RD
1718 "Pops up the given menu at the specified coordinates, relative to this window,
1719and returns control when the user has dismissed the menu. If a menu item is
1720selected, the corresponding menu event is generated and will be processed as
1721usual. If the default position is given then the current position of the
1722mouse cursor will be used.", "");
1b8c7ba6 1723 %Rename(PopupMenuXY, bool, PopupMenu(wxMenu *menu, int x=-1, int y=-1));
d25d9ed0 1724 bool PopupMenu(wxMenu *menu, const wxPoint& pos=wxDefaultPosition);
d14a1e28 1725
0facd0e5 1726
6aaca5ba
RD
1727 DocDeclStr(
1728 virtual bool , HasMultiplePages() const,
1729 "", "");
1730
0facd0e5 1731
d14a1e28 1732 %extend {
0facd0e5
RD
1733 DocStr(GetHandle,
1734 "Returns the platform-specific handle (as a long integer) of the
1735physical window. Currently on wxMac it returns the handle of the
d07d2bc9 1736toplevel parent of the window.", "");
d14a1e28
RD
1737 long GetHandle() {
1738 return wxPyGetWinHandle(self);
1739 }
1740 }
1741
70272341
RD
1742 DocStr(
1743 AssociateHandle,
1744 "Associate the window with a new native handle", "");
1745 %extend {
1746 void AssociateHandle(long handle) {
1747 self->AssociateHandle((WXWidget)handle);
1748 }
1749 }
1750
1751
1752 DocDeclStr(
1753 virtual void , DissociateHandle(),
1754 "Dissociate the current native handle from the window", "");
1755
d14a1e28 1756
0facd0e5 1757
d14a1e28
RD
1758#ifdef __WXMSW__
1759 // A way to do the native draw first... Too bad it isn't in wxGTK too.
1760 void OnPaint(wxPaintEvent& event);
1761#endif
1762
1763
1764
1765 // scrollbars
1766 // ----------
1767
0facd0e5
RD
1768
1769 DocDeclStr(
1770 bool , HasScrollbar(int orient) const,
d07d2bc9 1771 "Does the window have the scrollbar for this orientation?", "");
0facd0e5 1772
d14a1e28
RD
1773
1774 // configure the window scrollbars
0facd0e5
RD
1775 DocDeclStr(
1776 virtual void , SetScrollbar( int orientation,
d07d2bc9
RD
1777 int position,
1778 int thumbSize,
0facd0e5 1779 int range,
a72f4631 1780 bool refresh = true ),
d07d2bc9
RD
1781 "Sets the scrollbar properties of a built-in scrollbar.",
1782 "
1783 :param orientation: Determines the scrollbar whose page size is to
1784 be set. May be wx.HORIZONTAL or wx.VERTICAL.
0facd0e5 1785
d07d2bc9 1786 :param position: The position of the scrollbar in scroll units.
0facd0e5 1787
d07d2bc9 1788 :param thumbSize: The size of the thumb, or visible portion of the
0facd0e5
RD
1789 scrollbar, in scroll units.
1790
d07d2bc9 1791 :param range: The maximum position of the scrollbar.
0facd0e5 1792
d07d2bc9
RD
1793 :param refresh: True to redraw the scrollbar, false otherwise.
1794");
0facd0e5
RD
1795
1796 DocDeclStr(
a72f4631 1797 virtual void , SetScrollPos( int orientation, int pos, bool refresh = true ),
d07d2bc9 1798 "Sets the position of one of the built-in scrollbars.", "");
0facd0e5
RD
1799
1800 DocDeclStr(
1801 virtual int , GetScrollPos( int orientation ) const,
d07d2bc9 1802 "Returns the built-in scrollbar position.", "");
0facd0e5
RD
1803
1804 DocDeclStr(
1805 virtual int , GetScrollThumb( int orientation ) const,
d07d2bc9 1806 "Returns the built-in scrollbar thumb size.", "");
0facd0e5
RD
1807
1808 DocDeclStr(
1809 virtual int , GetScrollRange( int orientation ) const,
d07d2bc9 1810 "Returns the built-in scrollbar range.", "");
0facd0e5
RD
1811
1812
1813
1814
1815 DocDeclStr(
1816 virtual void , ScrollWindow( int dx, int dy,
1817 const wxRect* rect = NULL ),
1818 "Physically scrolls the pixels in the window and move child windows
1819accordingly. Use this function to optimise your scrolling
1820implementations, to minimise the area that must be redrawn. Note that
7c1f6b54
RD
1821it is rarely required to call this function from a user program.","
1822
d07d2bc9 1823 :param dx: Amount to scroll horizontally.
0facd0e5 1824
d07d2bc9 1825 :param dy: Amount to scroll vertically.
0facd0e5 1826
d07d2bc9
RD
1827 :param rect: Rectangle to invalidate. If this is None, the whole
1828 window is invalidated. If you pass a rectangle corresponding
1829 to the area of the window exposed by the scroll, your
1830 painting handler can optimize painting by checking for the
0facd0e5
RD
1831 invalidated region.");
1832
1833
1834 DocDeclStr(
1835 virtual bool , ScrollLines(int lines),
1836 "If the platform and window class supports it, scrolls the window by
1837the given number of lines down, if lines is positive, or up if lines
1838is negative. Returns True if the window was scrolled, False if it was
d07d2bc9 1839already on top/bottom and nothing was done.", "");
0facd0e5
RD
1840
1841 DocDeclStr(
1842 virtual bool , ScrollPages(int pages),
d07d2bc9 1843 "If the platform and window class supports it, scrolls the window by
0facd0e5
RD
1844the given number of pages down, if pages is positive, or up if pages
1845is negative. Returns True if the window was scrolled, False if it was
d07d2bc9 1846already on top/bottom and nothing was done.", "");
0facd0e5
RD
1847
1848
1849 DocDeclStr(
1850 bool , LineUp(),
d07d2bc9 1851 "This is just a wrapper for ScrollLines(-1).", "");
0facd0e5
RD
1852
1853 DocDeclStr(
1854 bool , LineDown(),
d07d2bc9 1855 "This is just a wrapper for ScrollLines(1).", "");
0facd0e5
RD
1856
1857 DocDeclStr(
1858 bool , PageUp(),
d07d2bc9 1859 "This is just a wrapper for ScrollPages(-1).", "");
0facd0e5
RD
1860
1861 DocDeclStr(
1862 bool , PageDown(),
d07d2bc9 1863 "This is just a wrapper for ScrollPages(1).", "");
0facd0e5 1864
d14a1e28
RD
1865
1866
1867
1868 // context-sensitive help
1869 // ----------------------
1870
0facd0e5
RD
1871 DocDeclStr(
1872 void , SetHelpText(const wxString& text),
1873 "Sets the help text to be used as context-sensitive help for this
1874window. Note that the text is actually stored by the current
ac288fac 1875`wx.HelpProvider` implementation, and not in the window object itself.", "");
0facd0e5 1876
d14a1e28 1877
0facd0e5
RD
1878 DocDeclStr(
1879 void , SetHelpTextForId(const wxString& text),
1880 "Associate this help text with all windows with the same id as this
d07d2bc9 1881one.", "");
0facd0e5 1882
d14a1e28 1883
0facd0e5 1884 DocDeclStr(
a3532702
RD
1885 virtual wxString , GetHelpTextAtPoint(const wxPoint& pt,
1886 wxHelpEvent::Origin origin) const,
1887 "Get the help string associated with the given position in this window.
1888
1889Notice that pt may be invalid if event origin is keyboard or unknown
1890and this method should return the global window help text then
1891", "");
1892
1893
1894 DocDeclStr(
0facd0e5
RD
1895 wxString , GetHelpText() const,
1896 "Gets the help text to be used as context-sensitive help for this
1897window. Note that the text is actually stored by the current
ac288fac 1898`wx.HelpProvider` implementation, and not in the window object itself.", "");
0facd0e5 1899
d14a1e28
RD
1900
1901
f87da722 1902#ifndef __WXX11__
d14a1e28
RD
1903 // tooltips
1904 // --------
1905
0facd0e5 1906 DocStr(SetToolTip,
d07d2bc9 1907 "Attach a tooltip to the window.", "");
1b8c7ba6 1908 %Rename(SetToolTipString, void, SetToolTip( const wxString &tip ));
214c4fbe
RD
1909
1910 %disownarg( wxToolTip *tip );
d14a1e28 1911 void SetToolTip( wxToolTip *tip );
214c4fbe 1912 %cleardisown( wxToolTip *tip );
d14a1e28 1913
0facd0e5
RD
1914 DocDeclStr(
1915 wxToolTip* , GetToolTip() const,
d07d2bc9 1916 "get the associated tooltip or None if none", "");
0facd0e5 1917
d14a1e28 1918 // LINK ERROR --> wxString GetToolTipText() const;
f87da722 1919#endif
d14a1e28
RD
1920
1921
f87da722
RD
1922
1923#ifndef __WXX11__
d14a1e28
RD
1924 // drag and drop
1925 // -------------
1926
214c4fbe 1927 %disownarg( wxPyDropTarget *dropTarget );
0facd0e5
RD
1928 DocDeclStr(
1929 virtual void , SetDropTarget( wxPyDropTarget *dropTarget ),
1930 "Associates a drop target with this window. If the window already has
d07d2bc9 1931a drop target, it is deleted.", "");
214c4fbe 1932 %cleardisown( wxPyDropTarget *dropTarget );
0facd0e5
RD
1933
1934
1935 DocDeclStr(
1936 virtual wxPyDropTarget *, GetDropTarget() const,
d07d2bc9 1937 "Returns the associated drop target, which may be None.", "");
8668c242 1938
d14a1e28 1939
e47ce385 1940 DocStr(DragAcceptFiles,
0facd0e5 1941 "Enables or disables eligibility for drop file events, EVT_DROP_FILES.
e47ce385
RD
1942Only functional on Windows.", "");
1943#ifdef __WXMSW__
1944 void DragAcceptFiles(bool accept);
1945#else
1946 %extend {
1947 void DragAcceptFiles(bool accept) {}
1948 }
d14a1e28 1949#endif
f87da722
RD
1950#endif
1951
d14a1e28
RD
1952
1953 // constraints and sizers
1954 // ----------------------
1955
c5633576 1956 %disownarg(wxLayoutConstraints*);
0facd0e5
RD
1957 DocDeclStr(
1958 void , SetConstraints( wxLayoutConstraints *constraints ),
1959 "Sets the window to have the given layout constraints. If an existing
1960layout constraints object is already owned by the window, it will be
1961deleted. Pass None to disassociate and delete the window's current
1962constraints.
1963
1964You must call SetAutoLayout to tell a window to use the constraints
1965automatically in its default EVT_SIZE handler; otherwise, you must
1966handle EVT_SIZE yourself and call Layout() explicitly. When setting
1967both a wx.LayoutConstraints and a wx.Sizer, only the sizer will have
d07d2bc9 1968effect.", "");
0facd0e5
RD
1969
1970 DocDeclStr(
1971 wxLayoutConstraints *, GetConstraints() const,
1972 "Returns a pointer to the window's layout constraints, or None if there
d07d2bc9 1973are none.", "");
c5633576 1974 %cleardisown(wxLayoutConstraints*);
0facd0e5 1975
d14a1e28 1976
0facd0e5
RD
1977 DocDeclStr(
1978 void , SetAutoLayout( bool autoLayout ),
1979 "Determines whether the Layout function will be called automatically
12e7f72a
RD
1980when the window is resized. lease note that this only happens for the
1981windows usually used to contain children, namely `wx.Panel` and
1982`wx.TopLevelWindow` (and the classes deriving from them).
1983
1984This method is called implicitly by `SetSizer` but if you use
1985`SetConstraints` you should call it manually or otherwise the window
1986layout won't be correctly updated when its size changes.", "");
0facd0e5
RD
1987
1988 DocDeclStr(
1989 bool , GetAutoLayout() const,
d07d2bc9 1990 "Returns the current autoLayout setting", "");
0facd0e5 1991
d14a1e28 1992
0facd0e5
RD
1993 DocDeclStr(
1994 virtual bool , Layout(),
1995 "Invokes the constraint-based layout algorithm or the sizer-based
1996algorithm for this window. See SetAutoLayout: when auto layout is on,
1997this function gets called automatically by the default EVT_SIZE
d07d2bc9 1998handler when the window is resized.", "");
0facd0e5 1999
d14a1e28 2000
214c4fbe 2001 %disownarg( wxSizer *sizer );
0facd0e5 2002 DocDeclStr(
a72f4631 2003 void , SetSizer(wxSizer *sizer, bool deleteOld = true ),
0facd0e5
RD
2004 "Sets the window to have the given layout sizer. The window will then
2005own the object, and will take care of its deletion. If an existing
2006layout sizer object is already owned by the window, it will be deleted
2007if the deleteOld parameter is true. Note that this function will also
2008call SetAutoLayout implicitly with a True parameter if the sizer is
a72f4631 2009non-None, and False otherwise.", "");
0facd0e5
RD
2010
2011 DocDeclStr(
a72f4631 2012 void , SetSizerAndFit( wxSizer *sizer, bool deleteOld = true ),
0facd0e5 2013 "The same as SetSizer, except it also sets the size hints for the
d07d2bc9 2014window based on the sizer's minimum size.", "");
214c4fbe
RD
2015 %cleardisown( wxSizer *sizer );
2016
d14a1e28 2017
0facd0e5
RD
2018 DocDeclStr(
2019 wxSizer *, GetSizer() const,
2020 "Return the sizer associated with the window by a previous call to
d07d2bc9 2021SetSizer or None if there isn't one.", "");
0facd0e5 2022
d14a1e28
RD
2023
2024 // Track if this window is a member of a sizer
0facd0e5
RD
2025 DocDeclStr(
2026 void , SetContainingSizer(wxSizer* sizer),
2027 "This normally does not need to be called by application code. It is
2028called internally when a window is added to a sizer, and is used so
d07d2bc9 2029the window can remove itself from the sizer when it is destroyed.", "");
0facd0e5
RD
2030
2031 DocDeclStr(
2032 wxSizer *, GetContainingSizer() const,
d07d2bc9 2033 "Return the sizer that this window is a member of, if any, otherwise None.", "");
0facd0e5 2034
d14a1e28
RD
2035
2036
2037
2038 // accessibility
2039 // ----------------------
2040#if wxUSE_ACCESSIBILITY
2041 // Override to create a specific accessible object.
2042 virtual wxAccessible* CreateAccessible();
2043
2044 // Sets the accessible object.
2045 void SetAccessible(wxAccessible* accessible) ;
2046
2047 // Returns the accessible object.
2048 wxAccessible* GetAccessible() { return m_accessible; };
2049
2050 // Returns the accessible object, creating if necessary.
2051 wxAccessible* GetOrCreateAccessible() ;
2052#endif
2053
2054
75b39b4c
RD
2055
2056
2057 DocDeclStr(
2058 virtual void , InheritAttributes(),
d07d2bc9
RD
2059 "This function is (or should be, in case of custom controls) called
2060during window creation to intelligently set up the window visual
2061attributes, that is the font and the foreground and background
2062colours.
2063
2064By 'intelligently' the following is meant: by default, all windows use
2065their own default attributes. However if some of the parent's
2066attributes are explicitly changed (that is, using SetFont and not
fa47d7a7 2067SetOwnFont) and if the corresponding attribute hadn't been
d07d2bc9
RD
2068explicitly set for this window itself, then this window takes the same
2069value as used by the parent. In addition, if the window overrides
2070ShouldInheritColours to return false, the colours will not be changed
2071no matter what and only the font might.
2072
34621cc5
KH
2073This rather complicated logic is necessary in order to accommodate the
2074different usage scenarios. The most common one is when all default
d07d2bc9
RD
2075attributes are used and in this case, nothing should be inherited as
2076in modern GUIs different controls use different fonts (and colours)
2077than their siblings so they can't inherit the same value from the
2078parent. However it was also deemed desirable to allow to simply change
2079the attributes of all children at once by just changing the font or
2080colour of their common parent, hence in this case we do inherit the
2081parents attributes.
2082", "");
75b39b4c
RD
2083
2084
2085// TODO: Virtualize this with directors
2086 DocDeclStr(
2087 virtual bool , ShouldInheritColours() const,
2088 "Return true from here to allow the colours of this window to be
d07d2bc9
RD
2089changed by InheritAttributes, returning false forbids inheriting them
2090from the parent window.
75b39b4c 2091
d07d2bc9
RD
2092The base class version returns false, but this method is overridden in
2093wxControl where it returns true.", "");
75b39b4c 2094
b58d5e2d
RD
2095
2096
2097 DocDeclStr(
2098 virtual bool , CanSetTransparent(),
2099 "Returns ``True`` if the platform supports setting the transparency for
2100this window. Note that this method will err on the side of caution,
2101so it is possible that this will return ``False`` when it is in fact
2102possible to set the transparency.
2103
2104NOTE: On X-windows systems the X server must have the composite
2105extension loaded, and there must be a composite manager program (such
2106as xcompmgr) running.", "");
2107
2108 DocDeclStr(
2109 virtual bool , SetTransparent(byte alpha),
2110 "Attempt to set the transparency of this window to the ``alpha`` value,
2111returns True on success. The ``alpha`` value is an integer in the
2112range of 0 to 255, where 0 is fully transparent and 255 is fully
2113opaque.", "");
2114
ed3ff7fe 2115
d14a1e28
RD
2116
2117 %pythoncode {
2118 def PostCreate(self, pre):
0facd0e5
RD
2119 """
2120 Phase 3 of the 2-phase create <wink!>
2121 Call this method after precreating the window with the 2-phase create method.
2122 """
d14a1e28
RD
2123 self.this = pre.this
2124 self.thisown = pre.thisown
2125 pre.thisown = 0
2126 if hasattr(self, '_setOORInfo'):
3c69a2ec
RD
2127 try:
2128 self._setOORInfo(self)
2129 except TypeError:
2130 pass
d14a1e28 2131 if hasattr(self, '_setCallbackInfo'):
3c69a2ec
RD
2132 try:
2133 self._setCallbackInfo(self, pre.__class__)
2134 except TypeError:
2135 pass
d14a1e28 2136 }
214c4fbe
RD
2137
2138 %pythoncode {
2139 def SendSizeEvent(self):
c9e13cbb 2140 self.GetEventHandler().ProcessEvent(wx.SizeEvent((-1,-1)))
214c4fbe 2141 }
d14a1e28 2142
0eae5d09
RD
2143
2144 %property(AcceleratorTable, GetAcceleratorTable, SetAcceleratorTable, doc="See `GetAcceleratorTable` and `SetAcceleratorTable`");
0eae5d09
RD
2145 %property(AutoLayout, GetAutoLayout, SetAutoLayout, doc="See `GetAutoLayout` and `SetAutoLayout`");
2146 %property(BackgroundColour, GetBackgroundColour, SetBackgroundColour, doc="See `GetBackgroundColour` and `SetBackgroundColour`");
2147 %property(BackgroundStyle, GetBackgroundStyle, SetBackgroundStyle, doc="See `GetBackgroundStyle` and `SetBackgroundStyle`");
170acdc9 2148 %property(EffectiveMinSize, GetEffectiveMinSize, doc="See `GetEffectiveMinSize`");
0eae5d09
RD
2149 %property(BestSize, GetBestSize, doc="See `GetBestSize`");
2150 %property(BestVirtualSize, GetBestVirtualSize, doc="See `GetBestVirtualSize`");
2151 %property(Border, GetBorder, doc="See `GetBorder`");
2152 %property(Caret, GetCaret, SetCaret, doc="See `GetCaret` and `SetCaret`");
2153 %property(CharHeight, GetCharHeight, doc="See `GetCharHeight`");
2154 %property(CharWidth, GetCharWidth, doc="See `GetCharWidth`");
2155 %property(Children, GetChildren, doc="See `GetChildren`");
2156 %property(ClientAreaOrigin, GetClientAreaOrigin, doc="See `GetClientAreaOrigin`");
2157 %property(ClientRect, GetClientRect, SetClientRect, doc="See `GetClientRect` and `SetClientRect`");
2158 %property(ClientSize, GetClientSize, SetClientSize, doc="See `GetClientSize` and `SetClientSize`");
2159 %property(Constraints, GetConstraints, SetConstraints, doc="See `GetConstraints` and `SetConstraints`");
2160 %property(ContainingSizer, GetContainingSizer, SetContainingSizer, doc="See `GetContainingSizer` and `SetContainingSizer`");
2161 %property(Cursor, GetCursor, SetCursor, doc="See `GetCursor` and `SetCursor`");
2162 %property(DefaultAttributes, GetDefaultAttributes, doc="See `GetDefaultAttributes`");
2163 %property(DropTarget, GetDropTarget, SetDropTarget, doc="See `GetDropTarget` and `SetDropTarget`");
2164 %property(EventHandler, GetEventHandler, SetEventHandler, doc="See `GetEventHandler` and `SetEventHandler`");
2165 %property(ExtraStyle, GetExtraStyle, SetExtraStyle, doc="See `GetExtraStyle` and `SetExtraStyle`");
2166 %property(Font, GetFont, SetFont, doc="See `GetFont` and `SetFont`");
2167 %property(ForegroundColour, GetForegroundColour, SetForegroundColour, doc="See `GetForegroundColour` and `SetForegroundColour`");
0eae5d09 2168 %property(GrandParent, GetGrandParent, doc="See `GetGrandParent`");
cbfc9df6 2169 %property(TopLevelParent, GetTopLevelParent, doc="See `GetTopLevelParent`");
0eae5d09
RD
2170 %property(Handle, GetHandle, doc="See `GetHandle`");
2171 %property(HelpText, GetHelpText, SetHelpText, doc="See `GetHelpText` and `SetHelpText`");
0eae5d09
RD
2172 %property(Id, GetId, SetId, doc="See `GetId` and `SetId`");
2173 %property(Label, GetLabel, SetLabel, doc="See `GetLabel` and `SetLabel`");
994453b8 2174 %property(LayoutDirection, GetLayoutDirection, SetLayoutDirection, doc="See `GetLayoutDirection` and `SetLayoutDirection`");
0eae5d09
RD
2175 %property(MaxHeight, GetMaxHeight, doc="See `GetMaxHeight`");
2176 %property(MaxSize, GetMaxSize, SetMaxSize, doc="See `GetMaxSize` and `SetMaxSize`");
2177 %property(MaxWidth, GetMaxWidth, doc="See `GetMaxWidth`");
2178 %property(MinHeight, GetMinHeight, doc="See `GetMinHeight`");
2179 %property(MinSize, GetMinSize, SetMinSize, doc="See `GetMinSize` and `SetMinSize`");
2180 %property(MinWidth, GetMinWidth, doc="See `GetMinWidth`");
2181 %property(Name, GetName, SetName, doc="See `GetName` and `SetName`");
2182 %property(Parent, GetParent, doc="See `GetParent`");
2183 %property(Position, GetPosition, SetPosition, doc="See `GetPosition` and `SetPosition`");
2184 %property(Rect, GetRect, SetRect, doc="See `GetRect` and `SetRect`");
2185 %property(ScreenPosition, GetScreenPosition, doc="See `GetScreenPosition`");
2186 %property(ScreenRect, GetScreenRect, doc="See `GetScreenRect`");
0eae5d09
RD
2187 %property(Size, GetSize, SetSize, doc="See `GetSize` and `SetSize`");
2188 %property(Sizer, GetSizer, SetSizer, doc="See `GetSizer` and `SetSizer`");
0eae5d09
RD
2189 %property(ThemeEnabled, GetThemeEnabled, SetThemeEnabled, doc="See `GetThemeEnabled` and `SetThemeEnabled`");
2190 %property(ToolTip, GetToolTip, SetToolTip, doc="See `GetToolTip` and `SetToolTip`");
2191 %property(UpdateClientRect, GetUpdateClientRect, doc="See `GetUpdateClientRect`");
2192 %property(UpdateRegion, GetUpdateRegion, doc="See `GetUpdateRegion`");
2193 %property(Validator, GetValidator, SetValidator, doc="See `GetValidator` and `SetValidator`");
2194 %property(VirtualSize, GetVirtualSize, SetVirtualSize, doc="See `GetVirtualSize` and `SetVirtualSize`");
2195 %property(WindowStyle, GetWindowStyle, SetWindowStyle, doc="See `GetWindowStyle` and `SetWindowStyle`");
2196 %property(WindowStyleFlag, GetWindowStyleFlag, SetWindowStyleFlag, doc="See `GetWindowStyleFlag` and `SetWindowStyleFlag`");
2197 %property(WindowVariant, GetWindowVariant, SetWindowVariant, doc="See `GetWindowVariant` and `SetWindowVariant`");
d14a1e28 2198
e81b607b
RD
2199 %property(Shown, IsShown, Show, doc="See `IsShown` and `Show`");
2200 %property(Enabled, IsEnabled, Enable, doc="See `IsEnabled` and `Enable`");
2201 %property(TopLevel, IsTopLevel, doc="See `IsTopLevel`");
2202
0eae5d09 2203};
d14a1e28
RD
2204
2205
2206
2207
2208
2209
2210%pythoncode {
2211def DLG_PNT(win, point_or_x, y=None):
0facd0e5
RD
2212 """
2213 Convenience function for converting a Point or (x,y) in
2214 dialog units to pixel units.
2215 """
d14a1e28
RD
2216 if y is None:
2217 return win.ConvertDialogPointToPixels(point_or_x)
2218 else:
fd3f2efe 2219 return win.ConvertDialogPointToPixels(wx.Point(point_or_x, y))
d14a1e28
RD
2220
2221def DLG_SZE(win, size_width, height=None):
0facd0e5
RD
2222 """
2223 Convenience function for converting a Size or (w,h) in
2224 dialog units to pixel units.
2225 """
d14a1e28
RD
2226 if height is None:
2227 return win.ConvertDialogSizeToPixels(size_width)
2228 else:
fd3f2efe 2229 return win.ConvertDialogSizeToPixels(wx.Size(size_width, height))
d14a1e28
RD
2230}
2231
2232
2233
2234
2235// Unfortunatly the names of these new static methods clash with the
2236// names wxPython has been using forever for the overloaded
2237// wxWindow::FindWindow, so instead of swigging them as statics create
2238// standalone functions for them.
2239
2240
0facd0e5
RD
2241DocStr(wxFindWindowById,
2242"Find the first window in the application with the given id. If parent
2243is None, the search will start from all top-level frames and dialog
2244boxes; if non-None, the search will be limited to the given window
d07d2bc9 2245hierarchy. The search is recursive in both cases.", "");
0facd0e5
RD
2246
2247DocStr(wxFindWindowByName,
2248"Find a window by its name (as given in a window constructor or Create
2249function call). If parent is None, the search will start from all
2250top-level frames and dialog boxes; if non-None, the search will be
2251limited to the given window hierarchy. The search is recursive in both
2252cases.
2253
d07d2bc9 2254If no window with such name is found, wx.FindWindowByLabel is called.", "");
0facd0e5
RD
2255
2256DocStr(wxFindWindowByLabel,
2257"Find a window by its label. Depending on the type of window, the label
2258may be a window title or panel item label. If parent is None, the
2259search will start from all top-level frames and dialog boxes; if
2260non-None, the search will be limited to the given window
d07d2bc9 2261hierarchy. The search is recursive in both cases.", "");
0facd0e5
RD
2262
2263
ab1f7d2a
RD
2264MustHaveApp(wxFindWindowById);
2265MustHaveApp(wxFindWindowByName);
2266MustHaveApp(wxFindWindowByLabel);
2267
d14a1e28
RD
2268%inline %{
2269wxWindow* wxFindWindowById( long id, const wxWindow *parent = NULL ) {
2270 return wxWindow::FindWindowById(id, parent);
2271}
2272
2273wxWindow* wxFindWindowByName( const wxString& name,
2274 const wxWindow *parent = NULL ) {
2275 return wxWindow::FindWindowByName(name, parent);
2276}
2277
2278wxWindow* wxFindWindowByLabel( const wxString& label,
2279 const wxWindow *parent = NULL ) {
2280 return wxWindow::FindWindowByLabel(label, parent);
2281}
2282%}
2283
2284
2285
96577d6d
RD
2286%{
2287#ifdef __WXMSW__
2288#include <wx/msw/private.h> // to get wxGetWindowId
2289#endif
2290%}
2291
a2bc9053
RD
2292MustHaveApp(wxWindow_FromHWND);
2293
d14a1e28 2294%inline %{
2f4ad68c 2295 wxWindow* wxWindow_FromHWND(wxWindow* parent, unsigned long _hWnd) {
d14a1e28 2296#ifdef __WXMSW__
2f4ad68c
RD
2297 WXHWND hWnd = (WXHWND)_hWnd;
2298 long id = wxGetWindowId(hWnd);
d14a1e28 2299 wxWindow* win = new wxWindow;
02b800ce
RD
2300 if (parent)
2301 parent->AddChild(win);
2f4ad68c
RD
2302 win->SetEventHandler(win);
2303 win->SetHWND(hWnd);
2304 win->SetId(id);
2305 win->SubclassWin(hWnd);
2306 win->AdoptAttributesFromHWND();
2307 win->SetupColours();
d14a1e28
RD
2308 return win;
2309#else
81cfe5e1 2310 wxPyRaiseNotImplemented();
d14a1e28
RD
2311 return NULL;
2312#endif
2313 }
2314%}
2315
791fbf34
RD
2316//---------------------------------------------------------------------------
2317
2318DocStr(GetTopLevelWindows,
fe45b493
RD
2319"Returns a list-like object of the the application's top-level windows, (frames,
2320dialogs, etc.)", "");
791fbf34 2321%inline %{
fe45b493
RD
2322 wxWindowList& GetTopLevelWindows() {
2323 return wxTopLevelWindows;
791fbf34
RD
2324 }
2325%}
2326
d14a1e28
RD
2327//---------------------------------------------------------------------------
2328//---------------------------------------------------------------------------
2329