]> git.saurik.com Git - wxWidgets.git/blame - docs/latex/wx/app.tex
Applied patch [ 594623 ] FL: No Taskbar entry for tool windows
[wxWidgets.git] / docs / latex / wx / app.tex
CommitLineData
a660d684
KB
1\section{\class{wxApp}}\label{wxapp}
2
3The {\bf wxApp} class represents the application itself. It is used
4to:
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
11objects in the application.
12\end{itemize}
13
14You should use the macro IMPLEMENT\_APP(appClass) in your application implementation
15file to tell wxWindows how to create an instance of your application class.
16
17Use DECLARE\_APP(appClass) in a header file if you want the wxGetApp function (which returns
18a 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
39Constructor. Called implicitly with a definition of a wxApp object.
40
a660d684
KB
41\membersection{wxApp::\destruct{wxApp}}
42
43\func{void}{\destruct{wxApp}}{\void}
44
45Destructor. Will be called implicitly on program exit if the wxApp
46object is created on the stack.
47
48\membersection{wxApp::argc}\label{wxappargc}
49
50\member{int}{argc}
51
52Number of command line arguments (after environment-specific processing).
53
54\membersection{wxApp::argv}\label{wxappargv}
55
56\member{char **}{argv}
57
58Command line arguments (after environment-specific processing).
59
60\membersection{wxApp::CreateLogTarget}\label{wxappcreatelogtarget}
61
62\func{virtual wxLog*}{CreateLogTarget}{\void}
63
64Creates a wxLog class for the application to use for logging errors. The default
65implementation returns a new wxLogGui class.
66
67\wxheading{See also}
68
69\helpref{wxLog}{wxlog}
70
71\membersection{wxApp::Dispatch}\label{wxappdispatch}
72
73\func{void}{Dispatch}{\void}
74
75Dispatches the next event in the windowing system event queue.
76
77This can be used for programming event loops, e.g.
78
79\begin{verbatim}
80 while (app.Pending())
81 Dispatch();
82\end{verbatim}
83
84\wxheading{See also}
85
86\helpref{wxApp::Pending}{wxapppending}
87
9154d8cf
VZ
88\membersection{wxApp::FilterEvent}\label{wxappfilterevent}
89
90\func{int}{FilterEvent}{\param{wxEvent\& }{event}}
91
92This function is called before processing any event and allows the application
93to preempt the processing of some events. If this method returns $-1$ the event
94is processed normally, otherwise either {\tt TRUE} or {\tt FALSE} should be
95returned and the event processing stops immediately considering that the event
96had been already processed (for the former return value) or that it is not
97going to be processed at all (for the latter one).
98
a660d684
KB
99\membersection{wxApp::GetAppName}\label{wxappgetappname}
100
101\constfunc{wxString}{GetAppName}{\void}
102
103Returns the application name.
104
105\wxheading{Remarks}
106
107wxWindows sets this to a reasonable default before
108calling \helpref{wxApp::OnInit}{wxapponinit}, but the application can reset it at will.
109
110\membersection{wxApp::GetAuto3D}\label{wxappgetauto3d}
111
112\constfunc{bool}{GetAuto3D}{\void}
113
114Returns TRUE if 3D control mode is on, FALSE otherwise.
115
116\wxheading{See also}
117
118\helpref{wxApp::SetAuto3D}{wxappsetauto3d}
119
120\membersection{wxApp::GetClassName}\label{wxappgetclassname}
121
122\constfunc{wxString}{GetClassName}{\void}
123
124Gets the class name of the application. The class name may be used in a platform specific
125manner to refer to the application.
126
127\wxheading{See also}
128
129\helpref{wxApp::SetClassName}{wxappsetclassname}
130
f59d80ca 131\membersection{wxApp::GetExitOnFrameDelete}\label{wxappgetexitonframedelete}
a660d684 132
f59d80ca 133\constfunc{bool}{GetExitFrameOnDelete}{\void}
a660d684
KB
134
135Returns TRUE if the application will exit when the top-level window is deleted, FALSE
136otherwise.
137
138\wxheading{See also}
139
1cbee0b4
VZ
140\helpref{wxApp::SetExitOnFrameDelete}{wxappsetexitonframedelete},\\
141\helpref{wxApp shutdown overview}{wxappshutdownoverview}
a660d684 142
a660d684
KB
143\membersection{wxApp::GetTopWindow}\label{wxappgettopwindow}
144
83a5b533 145\constfunc{virtual wxWindow *}{GetTopWindow}{\void}
a660d684
KB
146
147Returns a pointer to the top window.
148
2a47d3c1
JS
149\wxheading{Remarks}
150
151If the top window hasn't been set using \helpref{wxApp::SetTopWindow}{wxappsettopwindow}, this
152function will find the first top-level window (frame or dialog) and return that.
153
a660d684
KB
154\wxheading{See also}
155
8480b297
RR
156\helpref{SetTopWindow}{wxappsettopwindow}
157
158\membersection{wxApp::GetUseBestVisual}\label{wxappgetusebestvisual}
159
160\constfunc{bool}{GetUseBestVisual}{\void}
161
103aab26 162Returns TRUE if the application will use the best visual on systems that support
8480b297
RR
163different visuals, FALSE otherwise.
164
165\wxheading{See also}
166
167\helpref{SetUseBestVisual}{wxappsetusebestvisual}
a660d684 168
e06b9569 169\membersection{wxApp::GetVendorName}\label{wxappgetvendorname}
2aa59ef4
VS
170
171\constfunc{wxString}{GetVendorName}{\void}
172
173Returns the application's vendor name.
174
a660d684
KB
175\membersection{wxApp::ExitMainLoop}\label{wxappexitmainloop}
176
177\func{void}{ExitMainLoop}{\void}
178
179Call this to explicitly exit the main message (event) loop.
180You should normally exit the main loop (and the application) by deleting
181the top window.
182
183\membersection{wxApp::Initialized}\label{wxappinitialized}
184
185\func{bool}{Initialized}{\void}
186
187Returns TRUE if the application has been initialized (i.e. if\rtfsp
188\helpref{wxApp::OnInit}{wxapponinit} has returned successfully). This can be useful for error
189message routines to determine which method of output is best for the
190current state of the program (some windowing systems may not like
191dialogs to pop up before the main loop has been entered).
192
193\membersection{wxApp::MainLoop}\label{wxappmainloop}
194
195\func{int}{MainLoop}{\void}
196
197Called by wxWindows on creation of the application. Override this if you wish
198to provide your own (environment-dependent) main loop.
199
200\wxheading{Return value}
201
202Returns 0 under X, and the wParam of the WM\_QUIT message under Windows.
203
a5f1fd3e
VZ
204%% VZ: OnXXX() functions should *not* be documented
205%%
206%%\membersection{wxApp::OnActivate}\label{wxapponactivate}
207%%
208%%\func{void}{OnActivate}{\param{wxActivateEvent\& }{event}}
209%%
210%%Provide this member function to know whether the application is being
211%%activated or deactivated (Windows only).
212%%
213%%\wxheading{See also}
214%%
215%%\helpref{wxWindow::OnActivate}{wxwindowonactivate}, \helpref{wxActivateEvent}{wxactivateevent}
216%%
217%%\membersection{wxApp::OnCharHook}\label{wxapponcharhook}
218%%
219%%\func{void}{OnCharHook}{\param{wxKeyEvent\&}{ event}}
220%%
221%%This event handler function is called (under Windows only) to allow the window to intercept keyboard events
222%%before they are processed by child windows.
223%%
224%%\wxheading{Parameters}
225%%
226%%\docparam{event}{The keypress event.}
227%%
228%%\wxheading{Remarks}
229%%
230%%Use the wxEVT\_CHAR\_HOOK macro in your event table.
231%%
232%%If you use this member, you can selectively consume keypress events by calling\rtfsp
233%%\helpref{wxEvent::Skip}{wxeventskip} for characters the application is not interested in.
234%%
235%%\wxheading{See also}
236%%
237%%\helpref{wxKeyEvent}{wxkeyevent}, \helpref{wxWindow::OnChar}{wxwindowonchar},\rtfsp
238%%\helpref{wxWindow::OnCharHook}{wxwindowoncharhook}, \helpref{wxDialog::OnCharHook}{wxdialogoncharhook}
239
240\membersection{wxApp::OnAssert}\label{wxapponassert}
241
aad65f13 242\func{void}{OnAssert}{\param{const wxChar }{*file}, \param{int }{line}, \param{const wxChar }{*cond}, \param{const wxChar }{*msg}}
a5f1fd3e
VZ
243
244This function is called when an assert failure occurs, i.e. the condition
245specified in \helpref{wxASSERT}{wxassert} macro evaluated to {\tt FALSE}.
1156efc1 246It is only called in debug mode (when {\tt \_\_WXDEBUG\_\_} is defined) as
a5f1fd3e
VZ
247asserts are not left in the release code at all.
248
249The base class version show the default assert failure dialog box proposing to
250the user to stop the program, continue or ignore all subsequent asserts.
a660d684 251
a5f1fd3e 252\wxheading{Parameters}
a660d684 253
a5f1fd3e 254\docparam{file}{the name of the source file where the assert occured}
a660d684 255
a5f1fd3e 256\docparam{line}{the line number in this file where the assert occured}
a660d684 257
aad65f13
VZ
258\docparam{cond}{the condition of the failed assert in string form}
259
a5f1fd3e
VZ
260\docparam{msg}{the message specified as argument to
261\helpref{wxASSERT\_MSG}{wxassertmsg} or \helpref{wxFAIL\_MSG}{wxfailmsg}, will
262be {\tt NULL} if just \helpref{wxASSERT}{wxassert} or \helpref{wxFAIL}{wxfail}
263was used}
a660d684
KB
264
265\membersection{wxApp::OnExit}\label{wxapponexit}
266
267\func{int}{OnExit}{\void}
268
269Provide this member function for any processing which needs to be done as
270the application is about to exit.
271
bf188f1a 272\membersection{wxApp::OnCmdLineError}\label{wxapponcmdlineerror}
a37a5a73 273
bf188f1a 274\func{bool}{OnCmdLineError}{\param{wxCmdLineParser\& }{parser}}
a37a5a73 275
bf188f1a
VZ
276Called when command line parsing fails (i.e. an incorrect command line option
277was specified by the user). The default behaviour is to show the program usage
278text and abort the program.
a37a5a73 279
bf188f1a
VZ
280Return {\tt TRUE} to continue normal execution or {\tt FALSE} to return
281{\tt FALSE} from \helpref{OnInit}{wxapponinit} thus terminating the program.
a37a5a73
VZ
282
283\wxheading{See also}
284
bf188f1a 285\helpref{OnInitCmdLine}{wxapponinitcmdline}
a37a5a73 286
bf188f1a 287\membersection{wxApp::OnCmdLineHelp}\label{wxapponcmdlinehelp}
a660d684 288
bf188f1a 289\func{bool}{OnCmdLineHelp}{\param{wxCmdLineParser\& }{parser}}
a660d684 290
bf188f1a
VZ
291Called when the help option ({\tt --help}) was specified on the command line.
292The default behaviour is to show the program usage text and abort the program.
a660d684 293
bf188f1a
VZ
294Return {\tt TRUE} to continue normal execution or {\tt FALSE} to return
295{\tt FALSE} from \helpref{OnInit}{wxapponinit} thus terminating the program.
a660d684
KB
296
297\wxheading{See also}
298
bf188f1a 299\helpref{OnInitCmdLine}{wxapponinitcmdline}
a660d684 300
bf188f1a 301\membersection{wxApp::OnCmdLineParsed}\label{wxapponcmdlineparsed}
387a3b02 302
bf188f1a 303\func{bool}{OnCmdLineParsed}{\param{wxCmdLineParser\& }{parser}}
387a3b02 304
bf188f1a
VZ
305Called after the command line had been successfully parsed. You may override
306this method to test for the values of the various parameters which could be
307set from the command line.
387a3b02 308
bf188f1a
VZ
309Don't forget to call the base class version unless you want to suppress
310processing of the standard command line options.
387a3b02 311
bf188f1a
VZ
312Return {\tt TRUE} to continue normal execution or {\tt FALSE} to return
313{\tt FALSE} from \helpref{OnInit}{wxapponinit} thus terminating the program.
387a3b02 314
bf188f1a
VZ
315\wxheading{See also}
316
317\helpref{OnInitCmdLine}{wxapponinitcmdline}
318
319\membersection{wxApp::OnFatalException}\label{wxapponfatalexception}
320
321\func{void}{OnFatalException}{\void}
387a3b02 322
bf188f1a
VZ
323This function may be called if something fatal happens: an unhandled
324exception under Win32 or a a fatal signal under Unix, for example. However,
325this will not happen by default: you have to explicitly call
326\helpref{wxHandleFatalExceptions}{wxhandlefatalexceptions} to enable this.
387a3b02 327
bf188f1a
VZ
328Generally speaking, this function should only show a message to the user and
329return. You may attempt to save unsaved data but this is not guaranteed to
330work and, in fact, probably won't.
387a3b02
JS
331
332\wxheading{See also}
333
bf188f1a
VZ
334\helpref{wxHandleFatalExcetions}{wxhandlefatalexceptions}
335
336%% VZ: the wxApp event handler are private and should not be documented here!
337%%
338%%\membersection{wxApp::OnIdle}\label{wxapponidle}
339%%
340%%\func{void}{OnIdle}{\param{wxIdleEvent\& }{event}}
341%%
342%%Override this member function for any processing which needs to be done
343%%when the application is idle. You should call wxApp::OnIdle from your own function,
344%%since this forwards OnIdle events to windows and also performs garbage collection for
345%%windows whose destruction has been delayed.
346%%
347%%wxWindows' strategy for OnIdle processing is as follows. After pending user interface events for an
348%%application have all been processed, wxWindows sends an OnIdle event to the application object. wxApp::OnIdle itself
349%%sends an OnIdle event to each application window, allowing windows to do idle processing such as updating
350%%their appearance. If either wxApp::OnIdle or a window OnIdle function requested more time, by
2edb0bde 351%%calling \helpref{wxIdleEvent::RequestMore}{wxidleeventrequestmore}, wxWindows will send another OnIdle
bf188f1a
VZ
352%%event to the application object. This will occur in a loop until either a user event is found to be
353%%pending, or OnIdle requests no more time. Then all pending user events are processed until the system
354%%goes idle again, when OnIdle is called, and so on.
355%%
356%%\wxheading{See also}
357%%
358%%\helpref{wxWindow::OnIdle}{wxwindowonidle}, \helpref{wxIdleEvent}{wxidleevent},\rtfsp
359%%\helpref{wxWindow::SendIdleEvents}{wxappsendidleevents}
360%%
361%%\membersection{wxApp::OnEndSession}\label{wxapponendsession}
362%%
363%%\func{void}{OnEndSession}{\param{wxCloseEvent\& }{event}}
364%%
365%%This is an event handler function called when the operating system or GUI session is
366%%about to close down. The application has a chance to silently save information,
367%%and can optionally close itself.
368%%
369%%Use the EVT\_END\_SESSION event table macro to handle query end session events.
370%%
371%%The default handler calls \helpref{wxWindow::Close}{wxwindowclose} with a TRUE argument
372%%(forcing the application to close itself silently).
373%%
374%%\wxheading{Remarks}
375%%
376%%Under X, OnEndSession is called in response to the `die' event.
377%%
378%%Under Windows, OnEndSession is called in response to the WM\_ENDSESSION message.
379%%
380%%\wxheading{See also}
381%%
382%%\helpref{wxWindow::Close}{wxwindowclose},\rtfsp
383%%\helpref{wxWindow::OnCloseWindow}{wxwindowonclosewindow},\rtfsp
384%%\helpref{wxCloseEvent}{wxcloseevent},\rtfsp
385%%\helpref{wxApp::OnQueryEndSession}{wxapponqueryendsession}
387a3b02 386
a660d684
KB
387\membersection{wxApp::OnInit}\label{wxapponinit}
388
389\func{bool}{OnInit}{\void}
390
391This must be provided by the application, and will usually create the
bf188f1a
VZ
392application's main window, optionally calling
393\helpref{wxApp::SetTopWindow}{wxappsettopwindow}.
394
395Notice that if you want to to use the command line processing provided by
396wxWindows you have to call the base class version in the derived class
397OnInit().
a660d684
KB
398
399Return TRUE to continue processing, FALSE to exit the application.
400
bf188f1a
VZ
401\membersection{wxApp::OnInitCmdLine}\label{wxapponinitcmdline}
402
403\func{void}{OnInitCmdLine}{\param{wxCmdLineParser\& }{parser}}
404
405Called from \helpref{OnInit}{wxapponinit} and may be used to initialize the
406parser with the command line options for this application. The base class
407versions adds support for a few standard options only.
408
387a3b02 409\membersection{wxApp::OnQueryEndSession}\label{wxapponqueryendsession}
a660d684 410
387a3b02 411\func{void}{OnQueryEndSession}{\param{wxCloseEvent\& }{event}}
a660d684 412
387a3b02
JS
413This is an event handler function called when the operating system or GUI session is
414about to close down. Typically, an application will try to save unsaved documents
415at this point.
416
417If \helpref{wxCloseEvent::CanVeto}{wxcloseeventcanveto} returns TRUE, the application
418is allowed to veto the shutdown by calling \helpref{wxCloseEvent::Veto}{wxcloseeventveto}.
419The application might veto the shutdown after prompting for documents to be saved, and the
420user has cancelled the save.
421
422Use the EVT\_QUERY\_END\_SESSION event table macro to handle query end session events.
423
424You should check whether the application is forcing the deletion of the window
425using \helpref{wxCloseEvent::GetForce}{wxcloseeventgetforce}. If this is TRUE,
426destroy the window using \helpref{wxWindow::Destroy}{wxwindowdestroy}.
427If not, it is up to you whether you respond by destroying the window.
428
429The default handler calls \helpref{wxWindow::Close}{wxwindowclose} on the top-level window,
430and vetoes the shutdown if Close returns FALSE. This will be sufficient for many applications.
431
432\wxheading{Remarks}
433
8771a323 434Under X, OnQueryEndSession is called in response to the `save session' event.
387a3b02
JS
435
436Under Windows, OnQueryEndSession is called in response to the WM\_QUERYENDSESSION message.
a660d684
KB
437
438\wxheading{See also}
439
387a3b02 440\helpref{wxWindow::Close}{wxwindowclose},\rtfsp
4d5a0f67
GD
441\helpref{wxCloseEvent}{wxcloseevent}
442%% GD: OnXXX functions are not documented
443%%\helpref{wxApp::OnEndSession}{wxapponendsession}
387a3b02 444
a660d684
KB
445\membersection{wxApp::ProcessMessage}\label{wxappprocessmessage}
446
da25d3ab 447\func{bool}{ProcessMessage}{\param{WXMSG *}{msg}}
a660d684
KB
448
449Windows-only function for processing a message. This function
450is called from the main message loop, checking for windows that
451may wish to process it. The function returns TRUE if the message
452was processed, FALSE otherwise. If you use wxWindows with another class
453library with its own message loop, you should make sure that this
454function is called to allow wxWindows to receive messages. For example,
2edb0bde 455to allow co-existence with the Microsoft Foundation Classes, override
a660d684
KB
456the PreTranslateMessage function:
457
458\begin{verbatim}
459// Provide wxWindows message loop compatibility
460BOOL CTheApp::PreTranslateMessage(MSG *msg)
461{
da25d3ab 462 if (wxTheApp && wxTheApp->ProcessMessage((WXMSW *)msg))
a660d684
KB
463 return TRUE;
464 else
465 return CWinApp::PreTranslateMessage(msg);
466}
467\end{verbatim}
468
387a3b02
JS
469\membersection{wxApp::Pending}\label{wxapppending}
470
471\func{bool}{Pending}{\void}
472
f59d80ca 473Returns TRUE if unprocessed events are in the window system event queue.
387a3b02
JS
474
475\wxheading{See also}
476
477\helpref{wxApp::Dispatch}{wxappdispatch}
478
a660d684
KB
479\membersection{wxApp::SendIdleEvents}\label{wxappsendidleevents}
480
481\func{bool}{SendIdleEvents}{\void}
482
483Sends idle events to all top-level windows.
484
485\func{bool}{SendIdleEvents}{\param{wxWindow*}{ win}}
486
487Sends idle events to a window and its children.
488
489\wxheading{Remarks}
490
491These functions poll the top-level windows, and their children, for idle event processing.
492If TRUE is returned, more OnIdle processing is requested by one or more window.
493
494\wxheading{See also}
495
4d5a0f67
GD
496%% GD: OnXXX functions are not documented
497%%\helpref{wxApp::OnIdle}{wxapponidle}
4d5a0f67 498\helpref{wxIdleEvent}{wxidleevent}
a660d684
KB
499
500\membersection{wxApp::SetAppName}\label{wxappsetappname}
501
502\func{void}{SetAppName}{\param{const wxString\& }{name}}
503
504Sets the name of the application. The name may be used in dialogs
505(for example by the document/view framework). A default name is set by
506wxWindows.
507
508\wxheading{See also}
509
510\helpref{wxApp::GetAppName}{wxappgetappname}
511
512\membersection{wxApp::SetAuto3D}\label{wxappsetauto3d}
513
514\func{void}{SetAuto3D}{\param{const bool}{ auto3D}}
515
516Switches automatic 3D controls on or off.
517
518\wxheading{Parameters}
519
520\docparam{auto3D}{If TRUE, all controls will be created with 3D appearances unless
521overridden for a control or dialog. The default is TRUE}
522
523\wxheading{Remarks}
524
525This has an effect on Windows only.
526
527\wxheading{See also}
528
529\helpref{wxApp::GetAuto3D}{wxappgetauto3d}
530
531\membersection{wxApp::SetClassName}\label{wxappsetclassname}
532
533\func{void}{SetClassName}{\param{const wxString\& }{name}}
534
535Sets the class name of the application. This may be used in a platform specific
536manner to refer to the application.
537
538\wxheading{See also}
539
540\helpref{wxApp::GetClassName}{wxappgetclassname}
541
f59d80ca 542\membersection{wxApp::SetExitOnFrameDelete}\label{wxappsetexitonframedelete}
a660d684 543
f59d80ca 544\func{void}{SetExitOnFrameDelete}{\param{bool}{ flag}}
a660d684
KB
545
546Allows the programmer to specify whether the application will exit when the
547top-level frame is deleted.
548
549\wxheading{Parameters}
550
551\docparam{flag}{If TRUE (the default), the application will exit when the top-level frame is
552deleted. If FALSE, the application will continue to run.}
553
1cbee0b4
VZ
554\wxheading{See also}
555
556\helpref{wxApp::GetExitOnFrameDelete}{wxappgetexitonframedelete},\\
557\helpref{wxApp shutdown overview}{wxappshutdownoverview}
558
a660d684
KB
559\membersection{wxApp::SetTopWindow}\label{wxappsettopwindow}
560
561\func{void}{SetTopWindow}{\param{wxWindow* }{window}}
562
2a47d3c1
JS
563Sets the `top' window. You can call this from within \helpref{wxApp::OnInit}{wxapponinit} to
564let wxWindows know which is the main window. You don't have to set the top window;
f6bcfd97 565it is only a convenience so that (for example) certain dialogs without parents can use a
2a47d3c1
JS
566specific window as the top window. If no top window is specified by the application,
567wxWindows just uses the first frame or dialog in its top-level window list, when it
568needs to use the top window.
a660d684
KB
569
570\wxheading{Parameters}
571
572\docparam{window}{The new top window.}
573
574\wxheading{See also}
575
576\helpref{wxApp::GetTopWindow}{wxappgettopwindow}, \helpref{wxApp::OnInit}{wxapponinit}
577
2aa59ef4
VS
578
579\membersection{wxApp::SetVendorName}\label{wxappsetvendorname}
580
581\func{void}{SetVendorName}{\param{const wxString\& }{name}}
582
583Sets the name of application's vendor. The name will be used
584in registry access. A default name is set by
585wxWindows.
586
587\wxheading{See also}
588
589\helpref{wxApp::GetVendorName}{wxappgetvendorname}
590
8480b297
RR
591\membersection{wxApp::SetUseBestVisual}\label{wxappsetusebestvisual}
592
593\func{void}{SetUseBestVisual}{\param{bool}{ flag}}
594
595Allows the programmer to specify whether the application will use the best visual
103aab26
RR
596on systems that support several visual on the same display. This is typically the
597case under Solaris and IRIX, where the default visual is only 8-bit whereas certain
2edb0bde 598applications are supposed to run in TrueColour mode.
8480b297 599
fa482912 600Note that this function has to be called in the constructor of the {\tt wxApp}
8480b297
RR
601instance and won't have any effect when called later on.
602
603This function currently only has effect under GTK.
604
605\wxheading{Parameters}
606
607\docparam{flag}{If TRUE, the app will use the best visual.}
e06b9569 608
5638d705 609\membersection{wxApp::Yield}\label{wxappyield}
8461e4c2
VZ
610
611\func{bool}{Yield}{\param{bool}{ onlyIfNeeded = FALSE}}
612
613Yields control to pending messages in the windowing system. This can be useful, for example, when a
614time-consuming process writes to a text window. Without an occasional
615yield, the text window will not be updated properly, and on systems with
616cooperative multitasking, such as Windows 3.1 other processes will not respond.
617
618Caution should be exercised, however, since yielding may allow the
619user to perform actions which are not compatible with the current task.
620Disabling menu items or whole menus during processing can avoid unwanted
621reentrance of code: see \helpref{::wxSafeYield}{wxsafeyield} for a better
622function.
623
624Note that Yield() will not flush the message logs. This is intentional as
625calling Yield() is usually done to quickly update the screen and popping up a
626message box dialog may be undesirable. If you do wish to flush the log
627messages immediately (otherwise it will be done during the next idle loop
628iteration), call \helpref{wxLog::FlushActive}{wxlogflushactive}.
629
630Calling Yield() recursively is normally an error and an assert failure is
631raised in debug build if such situation is detected. However if the the
632{\it onlyIfNeeded} parameter is {\tt TRUE}, the method will just silently
633return {\tt FALSE} instead.
634