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