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