]>
Commit | Line | Data |
---|---|---|
a660d684 KB |
1 | \section{\class{wxApp}}\label{wxapp} |
2 | ||
3 | The {\bf wxApp} class represents the application itself. It is used | |
4 | to: | |
5 | ||
6 | \begin{itemize}\itemsep=0pt | |
7 | \item set and get application-wide properties; | |
8 | \item implement the windowing system message or event loop; | |
9 | \item initiate application processing via \helpref{wxApp::OnInit}{wxapponinit}; | |
10 | \item allow default processing of events not handled by other | |
11 | objects in the application. | |
12 | \end{itemize} | |
13 | ||
14 | You should use the macro IMPLEMENT\_APP(appClass) in your application implementation | |
15 | file to tell wxWindows how to create an instance of your application class. | |
16 | ||
17 | Use DECLARE\_APP(appClass) in a header file if you want the wxGetApp function (which returns | |
18 | a reference to your application object) to be visible to other files. | |
19 | ||
20 | \wxheading{Derived from} | |
21 | ||
22 | \helpref{wxEvtHandler}{wxevthandler}\\ | |
23 | \helpref{wxObject}{wxobject} | |
24 | ||
954b8ae6 JS |
25 | \wxheading{Include files} |
26 | ||
27 | <wx/app.h> | |
28 | ||
a660d684 KB |
29 | \wxheading{See also} |
30 | ||
31 | \helpref{wxApp overview}{wxappoverview} | |
32 | ||
33 | \latexignore{\rtfignore{\wxheading{Members}}} | |
34 | ||
35 | \membersection{wxApp::wxApp} | |
36 | ||
2fd284a4 | 37 | \func{void}{wxApp}{\void} |
a660d684 KB |
38 | |
39 | Constructor. Called implicitly with a definition of a wxApp object. | |
40 | ||
41 | The argument is a language identifier; this is an experimental | |
42 | feature and will be expanded and documented in future versions. | |
43 | ||
a660d684 KB |
44 | \membersection{wxApp::\destruct{wxApp}} |
45 | ||
46 | \func{void}{\destruct{wxApp}}{\void} | |
47 | ||
48 | Destructor. Will be called implicitly on program exit if the wxApp | |
49 | object is created on the stack. | |
50 | ||
51 | \membersection{wxApp::argc}\label{wxappargc} | |
52 | ||
53 | \member{int}{argc} | |
54 | ||
55 | Number of command line arguments (after environment-specific processing). | |
56 | ||
57 | \membersection{wxApp::argv}\label{wxappargv} | |
58 | ||
59 | \member{char **}{argv} | |
60 | ||
61 | Command line arguments (after environment-specific processing). | |
62 | ||
63 | \membersection{wxApp::CreateLogTarget}\label{wxappcreatelogtarget} | |
64 | ||
65 | \func{virtual wxLog*}{CreateLogTarget}{\void} | |
66 | ||
67 | Creates a wxLog class for the application to use for logging errors. The default | |
68 | implementation returns a new wxLogGui class. | |
69 | ||
70 | \wxheading{See also} | |
71 | ||
72 | \helpref{wxLog}{wxlog} | |
73 | ||
74 | \membersection{wxApp::Dispatch}\label{wxappdispatch} | |
75 | ||
76 | \func{void}{Dispatch}{\void} | |
77 | ||
78 | Dispatches the next event in the windowing system event queue. | |
79 | ||
80 | This can be used for programming event loops, e.g. | |
81 | ||
82 | \begin{verbatim} | |
83 | while (app.Pending()) | |
84 | Dispatch(); | |
85 | \end{verbatim} | |
86 | ||
87 | \wxheading{See also} | |
88 | ||
89 | \helpref{wxApp::Pending}{wxapppending} | |
90 | ||
91 | \membersection{wxApp::GetAppName}\label{wxappgetappname} | |
92 | ||
93 | \constfunc{wxString}{GetAppName}{\void} | |
94 | ||
95 | Returns the application name. | |
96 | ||
97 | \wxheading{Remarks} | |
98 | ||
99 | wxWindows sets this to a reasonable default before | |
100 | calling \helpref{wxApp::OnInit}{wxapponinit}, but the application can reset it at will. | |
101 | ||
102 | \membersection{wxApp::GetAuto3D}\label{wxappgetauto3d} | |
103 | ||
104 | \constfunc{bool}{GetAuto3D}{\void} | |
105 | ||
106 | Returns TRUE if 3D control mode is on, FALSE otherwise. | |
107 | ||
108 | \wxheading{See also} | |
109 | ||
110 | \helpref{wxApp::SetAuto3D}{wxappsetauto3d} | |
111 | ||
112 | \membersection{wxApp::GetClassName}\label{wxappgetclassname} | |
113 | ||
114 | \constfunc{wxString}{GetClassName}{\void} | |
115 | ||
116 | Gets the class name of the application. The class name may be used in a platform specific | |
117 | manner to refer to the application. | |
118 | ||
119 | \wxheading{See also} | |
120 | ||
121 | \helpref{wxApp::SetClassName}{wxappsetclassname} | |
122 | ||
f59d80ca | 123 | \membersection{wxApp::GetExitOnFrameDelete}\label{wxappgetexitonframedelete} |
a660d684 | 124 | |
f59d80ca | 125 | \constfunc{bool}{GetExitFrameOnDelete}{\void} |
a660d684 KB |
126 | |
127 | Returns TRUE if the application will exit when the top-level window is deleted, FALSE | |
128 | otherwise. | |
129 | ||
130 | \wxheading{See also} | |
131 | ||
f59d80ca | 132 | \helpref{wxApp::SetExitOnFrameDelete}{wxappsetexitonframedelete} |
a660d684 | 133 | |
a660d684 KB |
134 | \membersection{wxApp::GetTopWindow}\label{wxappgettopwindow} |
135 | ||
136 | \constfunc{wxWindow *}{GetTopWindow}{\void} | |
137 | ||
138 | Returns a pointer to the top window. | |
139 | ||
2a47d3c1 JS |
140 | \wxheading{Remarks} |
141 | ||
142 | If the top window hasn't been set using \helpref{wxApp::SetTopWindow}{wxappsettopwindow}, this | |
143 | function will find the first top-level window (frame or dialog) and return that. | |
144 | ||
a660d684 KB |
145 | \wxheading{See also} |
146 | ||
8480b297 RR |
147 | \helpref{SetTopWindow}{wxappsettopwindow} |
148 | ||
149 | \membersection{wxApp::GetUseBestVisual}\label{wxappgetusebestvisual} | |
150 | ||
151 | \constfunc{bool}{GetUseBestVisual}{\void} | |
152 | ||
103aab26 | 153 | Returns TRUE if the application will use the best visual on systems that support |
8480b297 RR |
154 | different visuals, FALSE otherwise. |
155 | ||
156 | \wxheading{See also} | |
157 | ||
158 | \helpref{SetUseBestVisual}{wxappsetusebestvisual} | |
a660d684 | 159 | |
e06b9569 | 160 | \membersection{wxApp::GetVendorName}\label{wxappgetvendorname} |
2aa59ef4 VS |
161 | |
162 | \constfunc{wxString}{GetVendorName}{\void} | |
163 | ||
164 | Returns the application's vendor name. | |
165 | ||
a660d684 KB |
166 | \membersection{wxApp::ExitMainLoop}\label{wxappexitmainloop} |
167 | ||
168 | \func{void}{ExitMainLoop}{\void} | |
169 | ||
170 | Call this to explicitly exit the main message (event) loop. | |
171 | You should normally exit the main loop (and the application) by deleting | |
172 | the top window. | |
173 | ||
174 | \membersection{wxApp::Initialized}\label{wxappinitialized} | |
175 | ||
176 | \func{bool}{Initialized}{\void} | |
177 | ||
178 | Returns TRUE if the application has been initialized (i.e. if\rtfsp | |
179 | \helpref{wxApp::OnInit}{wxapponinit} has returned successfully). This can be useful for error | |
180 | message routines to determine which method of output is best for the | |
181 | current state of the program (some windowing systems may not like | |
182 | dialogs to pop up before the main loop has been entered). | |
183 | ||
184 | \membersection{wxApp::MainLoop}\label{wxappmainloop} | |
185 | ||
186 | \func{int}{MainLoop}{\void} | |
187 | ||
188 | Called by wxWindows on creation of the application. Override this if you wish | |
189 | to provide your own (environment-dependent) main loop. | |
190 | ||
191 | \wxheading{Return value} | |
192 | ||
193 | Returns 0 under X, and the wParam of the WM\_QUIT message under Windows. | |
194 | ||
195 | \membersection{wxApp::OnActivate}\label{wxapponactivate} | |
196 | ||
197 | \func{void}{OnActivate}{\param{wxActivateEvent\& }{event}} | |
198 | ||
199 | Provide this member function to know whether the application is being | |
200 | activated or deactivated (Windows only). | |
201 | ||
202 | \wxheading{See also} | |
203 | ||
204 | \helpref{wxWindow::OnActivate}{wxwindowonactivate}, \helpref{wxActivateEvent}{wxactivateevent} | |
205 | ||
206 | \membersection{wxApp::OnExit}\label{wxapponexit} | |
207 | ||
208 | \func{int}{OnExit}{\void} | |
209 | ||
210 | Provide this member function for any processing which needs to be done as | |
211 | the application is about to exit. | |
212 | ||
213 | \membersection{wxApp::OnCharHook}\label{wxapponcharhook} | |
214 | ||
215 | \func{void}{OnCharHook}{\param{wxKeyEvent\&}{ event}} | |
216 | ||
217 | This event handler function is called (under Windows only) to allow the window to intercept keyboard events | |
218 | before they are processed by child windows. | |
219 | ||
220 | \wxheading{Parameters} | |
221 | ||
222 | \docparam{event}{The keypress event.} | |
223 | ||
224 | \wxheading{Remarks} | |
225 | ||
226 | Use the wxEVT\_CHAR\_HOOK macro in your event table. | |
227 | ||
228 | If you use this member, you can selectively consume keypress events by calling\rtfsp | |
229 | \helpref{wxEvent::Skip}{wxeventskip} for characters the application is not interested in. | |
230 | ||
231 | \wxheading{See also} | |
232 | ||
233 | \helpref{wxKeyEvent}{wxkeyevent}, \helpref{wxWindow::OnChar}{wxwindowonchar},\rtfsp | |
234 | \helpref{wxWindow::OnCharHook}{wxwindowoncharhook}, \helpref{wxDialog::OnCharHook}{wxdialogoncharhook} | |
235 | ||
a37a5a73 VZ |
236 | \membersection{wxApp::OnFatalException}\label{wxapponfatalexception} |
237 | ||
238 | \func{void}{OnFatalException}{\void} | |
239 | ||
240 | This function may be called if something fatal happens: an unhandled | |
241 | exception under Win32 or a a fatal signal under Unix, for example. However, | |
242 | this will not happen by default: you have to explicitly call | |
528e0faf | 243 | \helpref{wxHandleFatalExceptions}{wxhandlefatalexceptions} to enable this. |
a37a5a73 VZ |
244 | |
245 | Generally speaking, this function should only show a message to the user and | |
246 | return. You may attempt to save unsaved data but this is not guaranteed to | |
247 | work and, in fact, probably won't. | |
248 | ||
249 | \wxheading{See also} | |
250 | ||
528e0faf | 251 | \helpref{wxHandleFatalExcetions}{wxhandlefatalexceptions} |
a37a5a73 | 252 | |
a660d684 KB |
253 | \membersection{wxApp::OnIdle}\label{wxapponidle} |
254 | ||
255 | \func{void}{OnIdle}{\param{wxIdleEvent\& }{event}} | |
256 | ||
257 | Override this member function for any processing which needs to be done | |
258 | when the application is idle. You should call wxApp::OnIdle from your own function, | |
259 | since this forwards OnIdle events to windows and also performs garbage collection for | |
260 | windows whose destruction has been delayed. | |
261 | ||
262 | wxWindows' strategy for OnIdle processing is as follows. After pending user interface events for an | |
263 | application have all been processed, wxWindows sends an OnIdle event to the application object. wxApp::OnIdle itself | |
264 | sends an OnIdle event to each application window, allowing windows to do idle processing such as updating | |
265 | their appearance. If either wxApp::OnIdle or a window OnIdle function requested more time, by | |
fa482912 | 266 | caling \helpref{wxIdleEvent::RequestMore}{wxidleeventrequestmore}, wxWindows will send another OnIdle |
8a2c6ef8 | 267 | event to the application object. This will occur in a loop until either a user event is found to be |
a660d684 KB |
268 | pending, or OnIdle requests no more time. Then all pending user events are processed until the system |
269 | goes idle again, when OnIdle is called, and so on. | |
270 | ||
271 | \wxheading{See also} | |
272 | ||
273 | \helpref{wxWindow::OnIdle}{wxwindowonidle}, \helpref{wxIdleEvent}{wxidleevent},\rtfsp | |
274 | \helpref{wxWindow::SendIdleEvents}{wxappsendidleevents} | |
275 | ||
387a3b02 JS |
276 | \membersection{wxApp::OnEndSession}\label{wxapponendsession} |
277 | ||
278 | \func{void}{OnEndSession}{\param{wxCloseEvent\& }{event}} | |
279 | ||
280 | This is an event handler function called when the operating system or GUI session is | |
281 | about to close down. The application has a chance to silently save information, | |
282 | and can optionally close itself. | |
283 | ||
284 | Use the EVT\_END\_SESSION event table macro to handle query end session events. | |
285 | ||
286 | The default handler calls \helpref{wxWindow::Close}{wxwindowclose} with a TRUE argument | |
287 | (forcing the application to close itself silently). | |
288 | ||
289 | \wxheading{Remarks} | |
290 | ||
8771a323 | 291 | Under X, OnEndSession is called in response to the `die' event. |
387a3b02 JS |
292 | |
293 | Under Windows, OnEndSession is called in response to the WM\_ENDSESSION message. | |
294 | ||
295 | \wxheading{See also} | |
296 | ||
297 | \helpref{wxWindow::Close}{wxwindowclose},\rtfsp | |
298 | \helpref{wxWindow::OnCloseWindow}{wxwindowonclosewindow},\rtfsp | |
299 | \helpref{wxCloseEvent}{wxcloseevent},\rtfsp | |
da36f544 | 300 | \helpref{wxApp::OnQueryEndSession}{wxapponqueryendsession} |
387a3b02 | 301 | |
a660d684 KB |
302 | \membersection{wxApp::OnInit}\label{wxapponinit} |
303 | ||
304 | \func{bool}{OnInit}{\void} | |
305 | ||
306 | This must be provided by the application, and will usually create the | |
2a47d3c1 | 307 | application's main window, optionally calling \helpref{wxApp::SetTopWindow}{wxappsettopwindow}. |
a660d684 KB |
308 | |
309 | Return TRUE to continue processing, FALSE to exit the application. | |
310 | ||
387a3b02 | 311 | \membersection{wxApp::OnQueryEndSession}\label{wxapponqueryendsession} |
a660d684 | 312 | |
387a3b02 | 313 | \func{void}{OnQueryEndSession}{\param{wxCloseEvent\& }{event}} |
a660d684 | 314 | |
387a3b02 JS |
315 | This is an event handler function called when the operating system or GUI session is |
316 | about to close down. Typically, an application will try to save unsaved documents | |
317 | at this point. | |
318 | ||
319 | If \helpref{wxCloseEvent::CanVeto}{wxcloseeventcanveto} returns TRUE, the application | |
320 | is allowed to veto the shutdown by calling \helpref{wxCloseEvent::Veto}{wxcloseeventveto}. | |
321 | The application might veto the shutdown after prompting for documents to be saved, and the | |
322 | user has cancelled the save. | |
323 | ||
324 | Use the EVT\_QUERY\_END\_SESSION event table macro to handle query end session events. | |
325 | ||
326 | You should check whether the application is forcing the deletion of the window | |
327 | using \helpref{wxCloseEvent::GetForce}{wxcloseeventgetforce}. If this is TRUE, | |
328 | destroy the window using \helpref{wxWindow::Destroy}{wxwindowdestroy}. | |
329 | If not, it is up to you whether you respond by destroying the window. | |
330 | ||
331 | The default handler calls \helpref{wxWindow::Close}{wxwindowclose} on the top-level window, | |
332 | and vetoes the shutdown if Close returns FALSE. This will be sufficient for many applications. | |
333 | ||
334 | \wxheading{Remarks} | |
335 | ||
8771a323 | 336 | Under X, OnQueryEndSession is called in response to the `save session' event. |
387a3b02 JS |
337 | |
338 | Under Windows, OnQueryEndSession is called in response to the WM\_QUERYENDSESSION message. | |
a660d684 KB |
339 | |
340 | \wxheading{See also} | |
341 | ||
387a3b02 JS |
342 | \helpref{wxWindow::Close}{wxwindowclose},\rtfsp |
343 | \helpref{wxWindow::OnCloseWindow}{wxwindowonclosewindow},\rtfsp | |
344 | \helpref{wxCloseEvent}{wxcloseevent},\rtfsp | |
345 | \helpref{wxApp::OnEndSession}{wxapponendsession} | |
346 | ||
a660d684 KB |
347 | \membersection{wxApp::ProcessMessage}\label{wxappprocessmessage} |
348 | ||
349 | \func{bool}{ProcessMessage}{\param{MSG *}{msg}} | |
350 | ||
351 | Windows-only function for processing a message. This function | |
352 | is called from the main message loop, checking for windows that | |
353 | may wish to process it. The function returns TRUE if the message | |
354 | was processed, FALSE otherwise. If you use wxWindows with another class | |
355 | library with its own message loop, you should make sure that this | |
356 | function is called to allow wxWindows to receive messages. For example, | |
357 | to allow co-existance with the Microsoft Foundation Classes, override | |
358 | the PreTranslateMessage function: | |
359 | ||
360 | \begin{verbatim} | |
361 | // Provide wxWindows message loop compatibility | |
362 | BOOL CTheApp::PreTranslateMessage(MSG *msg) | |
363 | { | |
364 | if (wxTheApp && wxTheApp->ProcessMessage(msg)) | |
365 | return TRUE; | |
366 | else | |
367 | return CWinApp::PreTranslateMessage(msg); | |
368 | } | |
369 | \end{verbatim} | |
370 | ||
387a3b02 JS |
371 | \membersection{wxApp::Pending}\label{wxapppending} |
372 | ||
373 | \func{bool}{Pending}{\void} | |
374 | ||
f59d80ca | 375 | Returns TRUE if unprocessed events are in the window system event queue. |
387a3b02 JS |
376 | |
377 | \wxheading{See also} | |
378 | ||
379 | \helpref{wxApp::Dispatch}{wxappdispatch} | |
380 | ||
a660d684 KB |
381 | \membersection{wxApp::SendIdleEvents}\label{wxappsendidleevents} |
382 | ||
383 | \func{bool}{SendIdleEvents}{\void} | |
384 | ||
385 | Sends idle events to all top-level windows. | |
386 | ||
387 | \func{bool}{SendIdleEvents}{\param{wxWindow*}{ win}} | |
388 | ||
389 | Sends idle events to a window and its children. | |
390 | ||
391 | \wxheading{Remarks} | |
392 | ||
393 | These functions poll the top-level windows, and their children, for idle event processing. | |
394 | If TRUE is returned, more OnIdle processing is requested by one or more window. | |
395 | ||
396 | \wxheading{See also} | |
397 | ||
398 | \helpref{wxApp::OnIdle}{wxapponidle}, \helpref{wxWindow::OnIdle}{wxwindowonidle}, \helpref{wxIdleEvent}{wxidleevent} | |
399 | ||
400 | \membersection{wxApp::SetAppName}\label{wxappsetappname} | |
401 | ||
402 | \func{void}{SetAppName}{\param{const wxString\& }{name}} | |
403 | ||
404 | Sets the name of the application. The name may be used in dialogs | |
405 | (for example by the document/view framework). A default name is set by | |
406 | wxWindows. | |
407 | ||
408 | \wxheading{See also} | |
409 | ||
410 | \helpref{wxApp::GetAppName}{wxappgetappname} | |
411 | ||
412 | \membersection{wxApp::SetAuto3D}\label{wxappsetauto3d} | |
413 | ||
414 | \func{void}{SetAuto3D}{\param{const bool}{ auto3D}} | |
415 | ||
416 | Switches automatic 3D controls on or off. | |
417 | ||
418 | \wxheading{Parameters} | |
419 | ||
420 | \docparam{auto3D}{If TRUE, all controls will be created with 3D appearances unless | |
421 | overridden for a control or dialog. The default is TRUE} | |
422 | ||
423 | \wxheading{Remarks} | |
424 | ||
425 | This has an effect on Windows only. | |
426 | ||
427 | \wxheading{See also} | |
428 | ||
429 | \helpref{wxApp::GetAuto3D}{wxappgetauto3d} | |
430 | ||
431 | \membersection{wxApp::SetClassName}\label{wxappsetclassname} | |
432 | ||
433 | \func{void}{SetClassName}{\param{const wxString\& }{name}} | |
434 | ||
435 | Sets the class name of the application. This may be used in a platform specific | |
436 | manner to refer to the application. | |
437 | ||
438 | \wxheading{See also} | |
439 | ||
440 | \helpref{wxApp::GetClassName}{wxappgetclassname} | |
441 | ||
f59d80ca | 442 | \membersection{wxApp::SetExitOnFrameDelete}\label{wxappsetexitonframedelete} |
a660d684 | 443 | |
f59d80ca | 444 | \func{void}{SetExitOnFrameDelete}{\param{bool}{ flag}} |
a660d684 KB |
445 | |
446 | Allows the programmer to specify whether the application will exit when the | |
447 | top-level frame is deleted. | |
448 | ||
449 | \wxheading{Parameters} | |
450 | ||
451 | \docparam{flag}{If TRUE (the default), the application will exit when the top-level frame is | |
452 | deleted. If FALSE, the application will continue to run.} | |
453 | ||
a660d684 KB |
454 | \membersection{wxApp::SetTopWindow}\label{wxappsettopwindow} |
455 | ||
456 | \func{void}{SetTopWindow}{\param{wxWindow* }{window}} | |
457 | ||
2a47d3c1 JS |
458 | Sets the `top' window. You can call this from within \helpref{wxApp::OnInit}{wxapponinit} to |
459 | let wxWindows know which is the main window. You don't have to set the top window; | |
460 | it's only a convenience so that (for example) certain dialogs without parents can use a | |
461 | specific window as the top window. If no top window is specified by the application, | |
462 | wxWindows just uses the first frame or dialog in its top-level window list, when it | |
463 | needs to use the top window. | |
a660d684 KB |
464 | |
465 | \wxheading{Parameters} | |
466 | ||
467 | \docparam{window}{The new top window.} | |
468 | ||
469 | \wxheading{See also} | |
470 | ||
471 | \helpref{wxApp::GetTopWindow}{wxappgettopwindow}, \helpref{wxApp::OnInit}{wxapponinit} | |
472 | ||
2aa59ef4 VS |
473 | |
474 | \membersection{wxApp::SetVendorName}\label{wxappsetvendorname} | |
475 | ||
476 | \func{void}{SetVendorName}{\param{const wxString\& }{name}} | |
477 | ||
478 | Sets the name of application's vendor. The name will be used | |
479 | in registry access. A default name is set by | |
480 | wxWindows. | |
481 | ||
482 | \wxheading{See also} | |
483 | ||
484 | \helpref{wxApp::GetVendorName}{wxappgetvendorname} | |
485 | ||
ebea0891 KB |
486 | \membersection{wxApp::GetStdIcon}\label{wxappgetstdicon} |
487 | ||
488 | \func{virtual wxIcon}{GetStdIcon}{\param{int }{which}} const | |
489 | ||
490 | Returns the icons used by wxWindows internally, e.g. the ones used for | |
491 | message boxes. This function is used internally and | |
492 | can be overridden by the user to change the default icons. | |
493 | ||
494 | \wxheading{Parameters} | |
495 | ||
fa482912 JS |
496 | \docparam{which}{One of the wxICON\_XXX specifies which icon to return.} |
497 | ||
498 | See \helpref{wxMessageBox}{wxmessagebox} for a list of icon identifiers. | |
ebea0891 | 499 | |
8480b297 RR |
500 | \membersection{wxApp::SetUseBestVisual}\label{wxappsetusebestvisual} |
501 | ||
502 | \func{void}{SetUseBestVisual}{\param{bool}{ flag}} | |
503 | ||
504 | Allows the programmer to specify whether the application will use the best visual | |
103aab26 RR |
505 | on systems that support several visual on the same display. This is typically the |
506 | case under Solaris and IRIX, where the default visual is only 8-bit whereas certain | |
507 | appications are supposed to run in TrueColour mode. | |
8480b297 | 508 | |
fa482912 | 509 | Note that this function has to be called in the constructor of the {\tt wxApp} |
8480b297 RR |
510 | instance and won't have any effect when called later on. |
511 | ||
512 | This function currently only has effect under GTK. | |
513 | ||
514 | \wxheading{Parameters} | |
515 | ||
516 | \docparam{flag}{If TRUE, the app will use the best visual.} | |
e06b9569 | 517 |