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