]> git.saurik.com Git - wxWidgets.git/blame - interface/toplevel.h
make it callable from any path
[wxWidgets.git] / interface / toplevel.h
CommitLineData
23324ae1
FM
1/////////////////////////////////////////////////////////////////////////////
2// Name: toplevel.h
3// Purpose: documentation for wxTopLevelWindow class
4// Author: wxWidgets team
5// RCS-ID: $Id$
6// Licence: wxWindows license
7/////////////////////////////////////////////////////////////////////////////
8
9/**
10 @class wxTopLevelWindow
11 @wxheader{toplevel.h}
12
13 wxTopLevelWindow is a common base class for wxDialog and
14 wxFrame. It is an abstract base class meaning that you never
15 work with objects of this class directly, but all of its methods are also
16 applicable for the two classes above.
17
18 @library{wxcore}
19 @category{managedwnd}
20
21 @seealso
22 wxTopLevelWindow::SetTransparent
23*/
24class wxTopLevelWindow : public wxWindow
25{
26public:
27 /**
28 Returns @true if the platform supports making the window translucent.
29
30 @sa SetTransparent()
31 */
32 virtual bool CanSetTransparent();
33
34 /**
35 A synonym for CentreOnScreen().
36 */
37 void CenterOnScreen(int direction);
38
39 /**
40 Centres the window on screen.
41
42 @param direction
43 Specifies the direction for the centering. May be wxHORIZONTAL, wxVERTICAL
44 or wxBOTH.
45
46 @sa wxWindow::CentreOnParent
47 */
48 void CentreOnScreen(int direction = wxBOTH);
49
50 /**
51 Enables or disables the Close button (most often in the right
52 upper corner of a dialog) and the Close entry of the system
53 menu (most often in the left upper corner of the dialog).
54 Currently only implemented for wxMSW and wxGTK. Returns
55 @true if operation was successful. This may be wrong on
56 X11 (including GTK+) where the window manager may not support
57 this operation and there is no way to find out.
58 */
59 bool EnableCloseButton(bool enable = @true);
60
61 /**
62 Returns a pointer to the button which is the default for this window, or @c
63 @NULL.
64 The default button is the one activated by pressing the Enter key.
65 */
66 wxWindow * GetDefaultItem();
67
68 /**
69 Returns the standard icon of the window. The icon will be invalid if it hadn't
70 been previously set by SetIcon().
71
72 @sa GetIcons()
73 */
74 const wxIcon GetIcon();
75
76 /**
77 Returns all icons associated with the window, there will be none of them if
78 neither SetIcon() nor
79 SetIcons() had been called before.
80
81 Use GetIcon() to get the main icon of the
82 window.
83
84 @sa wxIconBundle
85 */
86 const wxIconBundle GetIcons();
87
88 /**
89 Gets a string containing the window title.
90
91 @sa SetTitle()
92 */
93 wxString GetTitle();
94
95 /**
96 Unique to the wxWinCE port. Responds to showing/hiding SIP (soft input panel)
97 area and resize
98 window accordingly. Override this if you want to avoid resizing or do additional
99 operations.
100 */
101 virtual bool HandleSettingChange(WXWPARAM wParam,
102 WXLPARAM lParam);
103
104 /**
105 Iconizes or restores the window.
106
107 @param iconize
108 If @true, iconizes the window; if @false, shows and restores it.
109
110 @sa IsIconized(), Maximize().
111 */
112 void Iconize(bool iconize);
113
114 /**
115 Returns @true if this window is currently active, i.e. if the user is
116 currently
117 working with it.
118 */
119 bool IsActive();
120
121 /**
122 Returns @true if this window is expected to be always maximized, either due
123 to platform policy
124 or due to local policy regarding particular class.
125 */
126 virtual bool IsAlwaysMaximized();
127
128 /**
129 Returns @true if the window is in fullscreen mode.
130
131 @sa ShowFullScreen()
132 */
133 bool IsFullScreen();
134
135 /**
136 Returns @true if the window is iconized.
137 */
138 bool IsIconized();
139
140 /**
141 Returns @true if the window is maximized.
142 */
143 bool IsMaximized();
144
145 /**
146 @b @c This method is specific to wxUniversal port
147
148 Returns @true if this window is using native decorations, @false if we draw
149 them ourselves.
150
151 @sa UseNativeDecorations(),
152 UseNativeDecorationsByDefault()
153 */
154 bool IsUsingNativeDecorations();
155
156 /**
157 Maximizes or restores the window.
158
159 @param maximize
160 If @true, maximizes the window, otherwise it restores it.
161
162 @sa Iconize()
163 */
164 void Maximize(bool maximize);
165
166 /**
167 Use a system-dependent way to attract users attention to the window when it is
168 in background.
169
170 @e flags may have the value of either @c wxUSER_ATTENTION_INFO
171 (default) or @c wxUSER_ATTENTION_ERROR which results in a more drastic
172 action. When in doubt, use the default value.
173
174 Note that this function should normally be only used when the application is
175 not already in foreground.
176
177 This function is currently implemented for Win32 where it flashes the
178 window icon in the taskbar, and for wxGTK with task bars supporting it.
179 */
180 void RequestUserAttention(int flags = wxUSER_ATTENTION_INFO);
181
182 /**
183 Changes the default item for the panel, usually @e win is a button.
184
185 @sa GetDefaultItem()
186 */
187 void SetDefaultItem(wxWindow win);
188
189 /**
190 Sets the icon for this window.
191
192 @param icon
193 The icon to associate with this window.
194
195 @remarks The window takes a 'copy' of icon, but since it uses reference
196 counting, the copy is very quick. It is safe to
197 delete icon after calling this function.
198 */
199 void SetIcon(const wxIcon& icon);
200
201 /**
202 Sets several icons of different sizes for this window: this allows to use
203 different icons for different situations (e.g. task switching bar, taskbar,
204 window title bar) instead of scaling, with possibly bad looking results, the
205 only icon set by SetIcon().
206
207 @param icons
208 The icons to associate with this window.
209
210 @sa wxIconBundle.
211 */
212 void SetIcons(const wxIconBundle& icons);
213
214 /**
215 Sets action or menu activated by pressing left hardware button on the smart
216 phones.
217 Unavailable on full keyboard machines.
218
219 @param id
220 Identifier for this button.
221
222 @param label
223 Text to be displayed on the screen area dedicated to this hardware button.
224
225 @param subMenu
226 The menu to be opened after pressing this hardware button.
227
228 @sa SetRightMenu().
229 */
230 void SetLeftMenu(int id = wxID_ANY,
231 const wxString& label = wxEmptyString,
232 wxMenu * subMenu = @NULL);
233
234 /**
235 A simpler interface for setting the size hints than
236 SetSizeHints().
237 */
238 void SetMaxSize(const wxSize& size);
239
240 /**
241 A simpler interface for setting the size hints than
242 SetSizeHints().
243 */
244 void SetMinSize(const wxSize& size);
245
246 /**
247 Sets action or menu activated by pressing right hardware button on the smart
248 phones.
249 Unavailable on full keyboard machines.
250
251 @param id
252 Identifier for this button.
253
254 @param label
255 Text to be displayed on the screen area dedicated to this hardware button.
256
257 @param subMenu
258 The menu to be opened after pressing this hardware button.
259
260 @sa SetLeftMenu().
261 */
262 void SetRightMenu(int id = wxID_ANY,
263 const wxString& label = wxEmptyString,
264 wxMenu * subMenu = @NULL);
265
266 /**
267 If the platform supports it, sets the shape of the window to that
268 depicted by @e region. The system will not display or
269 respond to any mouse event for the pixels that lie outside of the
270 region. To reset the window to the normal rectangular shape simply
271 call @e SetShape again with an empty region. Returns @true if the
272 operation is successful.
273 */
274 bool SetShape(const wxRegion& region);
275
276 //@{
277 /**
278 Allows specification of minimum and maximum window sizes, and window size
279 increments.
280 If a pair of values is not set (or set to -1), no constraints will be used.
281
282 @param incW
283 Specifies the increment for sizing the width (GTK/Motif/Xt only).
284
285 @param incH
286 Specifies the increment for sizing the height (GTK/Motif/Xt only).
287
288 @param incSize
289 Increment size (only taken into account under X11-based
290 ports such as wxGTK/wxMotif/wxX11).
291
292 @remarks Notice that this function not only prevents the user from
293 resizing the window outside the given bounds but it
294 also prevents the program itself from doing it using
295 SetSize.
296 */
297 virtual void SetSizeHints(int minW, int minH, int maxW=-1,
298 int maxH=-1,
299 int incW=-1,
300 int incH=-1);
301 void SetSizeHints(const wxSize& minSize,
302 const wxSize& maxSize=wxDefaultSize,
303 const wxSize& incSize=wxDefaultSize);
304 //@}
305
306 /**
307 Sets the window title.
308
309 @param title
310 The window title.
311
312 @sa GetTitle()
313 */
314 virtual void SetTitle(const wxString& title);
315
316 /**
317 If the platform supports it will set the window to be translucent
318
319 @param alpha
320 Determines how opaque or transparent the window will
321 be, if the platform supports the opreration. A value of 0 sets the
322 window to be fully transparent, and a value of 255 sets the window
323 to be fully opaque.
324 */
325 virtual bool SetTransparent(int alpha);
326
327 /**
328 This virtual function is not meant to be called directly but can be overridden
329 to return @false (it returns @true by default) to allow the application to
330 close even if this, presumably not very important, window is still opened.
331 By default, the application stays alive as long as there are any open top level
332 windows.
333 */
334 virtual bool ShouldPreventAppExit();
335
336 /**
337 Depending on the value of @e show parameter the window is either shown full
338 screen or restored to its normal state. @e style is a bit list containing
339 some or all of the following values, which indicate what elements of the window
340 to hide in full-screen mode:
341
342 wxFULLSCREEN_NOMENUBAR
343 wxFULLSCREEN_NOTOOLBAR
344 wxFULLSCREEN_NOSTATUSBAR
345 wxFULLSCREEN_NOBORDER
346 wxFULLSCREEN_NOCAPTION
347 wxFULLSCREEN_ALL (all of the above)
348
349 This function has not been tested with MDI frames.
350
351 Note that showing a window full screen also actually
352 @ref wxWindow::show Show()s if it hadn't been shown yet.
353
354 @sa IsFullScreen()
355 */
356 bool ShowFullScreen(bool show, long style = wxFULLSCREEN_ALL);
357
358 /**
359 @b @c This method is specific to wxUniversal port
360
361 Use native or custom-drawn decorations for this window only. Notice that to
362 have any effect this method must be called before really creating the window,
363 i.e. two step creation must be used:
364
365 @sa UseNativeDecorationsByDefault(),
366 IsUsingNativeDecorations()
367 */
368 void UseNativeDecorations(bool native = @true);
369
370 /**
371 @b @c This method is specific to wxUniversal port
372
373 Top level windows in wxUniversal port can use either system-provided window
374 decorations (i.e. title bar and various icons, buttons and menus in it) or draw
375 the decorations themselves. By default the system decorations are used if they
376 are available, but this method can be called with @e native set to @false to
377 change this for all windows created after this point.
378
379 Also note that if @c WXDECOR environment variable is set, then custom
380 decorations are used by default and so it may make sense to call this method
381 with default argument if the application can't use custom decorations at all
382 for some reason.
383 */
384 void UseNativeDecorationsByDefault(bool native = @true);
385};