]> git.saurik.com Git - wxWidgets.git/blob - docs/latex/wx/function.tex
added wxCLOSE
[wxWidgets.git] / docs / latex / wx / function.tex
1 \chapter{Functions}\label{functions}
2 \setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}%
3 \setfooter{\thepage}{}{}{}{}{\thepage}
4
5 The functions and macros defined in wxWindows are described here: you can
6 either look up a function using the alphabetical listing of them or find it in
7 the corresponding topic.
8
9 \section{Alphabetical functions and macros list}
10
11 \helpref{CLASSINFO}{classinfo}\\
12 \helpref{copystring}{copystring}\\
13 \helpref{DECLARE\_ABSTRACT\_CLASS}{declareabstractclass}\\
14 \helpref{DECLARE\_APP}{declareapp}\\
15 \helpref{DECLARE\_CLASS}{declareclass}\\
16 \helpref{DECLARE\_DYNAMIC\_CLASS}{declaredynamicclass}\\
17 \helpref{IMPLEMENT\_ABSTRACT\_CLASS2}{implementabstractclass2}\\
18 \helpref{IMPLEMENT\_ABSTRACT\_CLASS}{implementabstractclass}\\
19 \helpref{IMPLEMENT\_APP}{implementapp}\\
20 \helpref{IMPLEMENT\_CLASS2}{implementclass2}\\
21 \helpref{IMPLEMENT\_CLASS}{implementclass}\\
22 \helpref{IMPLEMENT\_DYNAMIC\_CLASS2}{implementdynamicclass2}\\
23 \helpref{IMPLEMENT\_DYNAMIC\_CLASS}{implementdynamicclass}\\
24 \helpref{WXDEBUG\_NEW}{debugnew}\\
25 \helpref{WXTRACELEVEL}{tracelevel}\\
26 \helpref{WXTRACE}{trace}\\
27 \helpref{wxASSERT\_MIN\_BITSIZE}{wxassertminbitsize}\\
28 \helpref{wxASSERT\_MSG}{wxassertmsg}\\
29 \helpref{wxASSERT}{wxassert}\\
30 \helpref{wxBITMAP}{wxbitmapmacro}\\
31 \helpref{wxBeginBusyCursor}{wxbeginbusycursor}\\
32 \helpref{wxBell}{wxbell}\\
33 \helpref{wxCHECK}{wxcheck}\\
34 \helpref{wxCHECK2\_MSG}{wxcheck2msg}\\
35 \helpref{wxCHECK2}{wxcheck2}\\
36 \helpref{wxCHECK\_GCC\_VERSION}{wxcheckgccversion}\\
37 \helpref{wxCHECK\_MSG}{wxcheckmsg}\\
38 \helpref{wxCHECK\_RET}{wxcheckret}\\
39 \helpref{wxCHECK\_VERSION}{wxcheckversion}\\
40 \helpref{wxCHECK\_W32API\_VERSION}{wxcheckw32apiversion}\\
41 \helpref{wxClientDisplayRect}{wxclientdisplayrect}\\
42 \helpref{wxClipboardOpen}{functionwxclipboardopen}\\
43 \helpref{wxCloseClipboard}{wxcloseclipboard}\\
44 \helpref{wxColourDisplay}{wxcolourdisplay}\\
45 \helpref{wxCOMPILE\_TIME\_ASSERT}{wxcompiletimeassert}\\
46 \helpref{wxCOMPILE\_TIME\_ASSERT2}{wxcompiletimeassert2}\\
47 \helpref{wxConcatFiles}{wxconcatfiles}\\
48 \helpref{wxConstCast}{wxconstcast}\\
49 \helpref{wxCopyFile}{wxcopyfile}\\
50 \helpref{wxCreateDynamicObject}{wxcreatedynamicobject}\\
51 \helpref{wxCreateFileTipProvider}{wxcreatefiletipprovider}\\
52 \helpref{wxDDECleanUp}{wxddecleanup}\\
53 \helpref{wxDDEInitialize}{wxddeinitialize}\\
54 \helpref{wxDROP\_ICON}{wxdropicon}\\
55 \helpref{wxDebugMsg}{wxdebugmsg}\\
56 \helpref{wxDirExists}{functionwxdirexists}\\
57 \helpref{wxDirSelector}{wxdirselector}\\
58 \helpref{wxDisplayDepth}{wxdisplaydepth}\\
59 \helpref{wxDisplaySize}{wxdisplaysize}\\
60 \helpref{wxDisplaySizeMM}{wxdisplaysizemm}\\
61 \helpref{wxDos2UnixFilename}{wxdos2unixfilename}\\
62 \helpref{wxDynamicCastThis}{wxdynamiccastthis}\\
63 \helpref{wxDynamicCast}{wxdynamiccast}\\
64 \helpref{wxEmptyClipboard}{wxemptyclipboard}\\
65 \helpref{wxEnableTopLevelWindows}{wxenabletoplevelwindows}\\
66 \helpref{wxEndBusyCursor}{wxendbusycursor}\\
67 \helpref{wxEntry}{wxentry}\\
68 \helpref{wxEnumClipboardFormats}{wxenumclipboardformats}\\
69 \helpref{wxError}{wxerror}\\
70 \helpref{wxExecute}{wxexecute}\\
71 \helpref{wxExit}{wxexit}\\
72 \helpref{wxEXPLICIT}{wxexplicit}\\
73 \helpref{wxFAIL\_MSG}{wxfailmsg}\\
74 \helpref{wxFAIL}{wxfail}\\
75 \helpref{wxFatalError}{wxfatalerror}\\
76 \helpref{wxFileExists}{functionwxfileexists}\\
77 \helpref{wxFileModificationTime}{wxfilemodificationtime}\\
78 \helpref{wxFileNameFromPath}{wxfilenamefrompath}\\
79 \helpref{wxFileSelector}{wxfileselector}\\
80 \helpref{wxFindFirstFile}{wxfindfirstfile}\\
81 \helpref{wxFindMenuItemId}{wxfindmenuitemid}\\
82 \helpref{wxFindNextFile}{wxfindnextfile}\\
83 \helpref{wxFindWindowAtPointer}{wxfindwindowatpointer}\\
84 \helpref{wxFindWindowAtPoint}{wxfindwindowatpoint}\\
85 \helpref{wxFindWindowByLabel}{wxfindwindowbylabel}\\
86 \helpref{wxFindWindowByName}{wxfindwindowbyname}\\
87 \helpref{wxGetActiveWindow}{wxgetactivewindow}\\
88 \helpref{wxGetApp}{wxgetapp}\\
89 \helpref{wxGetClipboardData}{wxgetclipboarddata}\\
90 \helpref{wxGetClipboardFormatName}{wxgetclipboardformatname}\\
91 \helpref{wxGetColourFromUser}{wxgetcolourfromuser}\\
92 \helpref{wxGetCwd}{wxgetcwd}\\
93 \helpref{wxGetDiskSpace}{wxgetdiskspace}\\
94 \helpref{wxGetDisplayName}{wxgetdisplayname}\\
95 \helpref{wxGetElapsedTime}{wxgetelapsedtime}\\
96 \helpref{wxGetEmailAddress}{wxgetemailaddress}\\
97 \helpref{wxGetEnv}{wxgetenv}\\
98 \helpref{wxGetFontFromUser}{wxgetfontfromuser}\\
99 \helpref{wxGetFreeMemory}{wxgetfreememory}\\
100 \helpref{wxGetFullHostName}{wxgetfullhostname}\\
101 \helpref{wxGetHomeDir}{wxgethomedir}\\
102 \helpref{wxGetHostName}{wxgethostname}\\
103 \helpref{wxGetLocalTimeMillis}{wxgetlocaltimemillis}\\
104 \helpref{wxGetLocalTime}{wxgetlocaltime}\\
105 \helpref{wxGetMousePosition}{wxgetmouseposition}\\
106 \helpref{wxGetMultipleChoices}{wxgetmultiplechoices}\\
107 \helpref{wxGetMultipleChoice}{wxgetmultiplechoice}\\
108 \helpref{wxGetNumberFromUser}{wxgetnumberfromuser}\\
109 \helpref{wxGetOSDirectory}{wxgetosdirectory}\\
110 \helpref{wxGetOsDescription}{wxgetosdescription}\\
111 \helpref{wxGetOsVersion}{wxgetosversion}\\
112 \helpref{wxGetPasswordFromUser}{wxgetpasswordfromuser}\\
113 \helpref{wxGetPrinterCommand}{wxgetprintercommand}\\
114 \helpref{wxGetPrinterFile}{wxgetprinterfile}\\
115 \helpref{wxGetPrinterMode}{wxgetprintermode}\\
116 \helpref{wxGetPrinterOptions}{wxgetprinteroptions}\\
117 \helpref{wxGetPrinterOrientation}{wxgetprinterorientation}\\
118 \helpref{wxGetPrinterPreviewCommand}{wxgetprinterpreviewcommand}\\
119 \helpref{wxGetPrinterScaling}{wxgetprinterscaling}\\
120 \helpref{wxGetPrinterTranslation}{wxgetprintertranslation}\\
121 \helpref{wxGetProcessId}{wxgetprocessid}\\
122 \helpref{wxGetResource}{wxgetresource}\\
123 \helpref{wxGetSingleChoiceData}{wxgetsinglechoicedata}\\
124 \helpref{wxGetSingleChoiceIndex}{wxgetsinglechoiceindex}\\
125 \helpref{wxGetSingleChoice}{wxgetsinglechoice}\\
126 \helpref{wxGetTempFileName}{wxgettempfilename}\\
127 \helpref{wxGetTextFromUser}{wxgettextfromuser}\\
128 \helpref{wxGetTopLevelParent}{wxgettoplevelparent}\\
129 \helpref{wxGetTranslation}{wxgettranslation}\\
130 \helpref{wxGetUTCTime}{wxgetutctime}\\
131 \helpref{wxGetUserHome}{wxgetuserhome}\\
132 \helpref{wxGetUserId}{wxgetuserid}\\
133 \helpref{wxGetUserName}{wxgetusername}\\
134 \helpref{wxGetWorkingDirectory}{wxgetworkingdirectory}\\
135 \helpref{wxGetenv}{wxgetenvmacro}\\
136 \helpref{wxHandleFatalExceptions}{wxhandlefatalexceptions}\\
137 \helpref{wxICON}{wxiconmacro}\\
138 \helpref{wxINTXX\_SWAP\_ALWAYS}{intswapalways}\\
139 \helpref{wxINTXX\_SWAP\_ON\_BE}{intswaponbe}\\
140 \helpref{wxINTXX\_SWAP\_ON\_LE}{intswaponle}\\
141 \helpref{wxInitAllImageHandlers}{wxinitallimagehandlers}\\
142 \helpref{wxInitialize}{wxinitialize}\\
143 \helpref{wxIsAbsolutePath}{wxisabsolutepath}\\
144 \helpref{wxIsBusy}{wxisbusy}\\
145 \helpref{wxIsClipboardFormatAvailable}{wxisclipboardformatavailable}\\
146 \helpref{wxIsEmpty}{wxisempty}\\
147 \helpref{wxIsWild}{wxiswild}\\
148 \helpref{wxKill}{wxkill}\\
149 \helpref{wxLoadUserResource}{wxloaduserresource}\\
150 \helpref{wxLogDebug}{wxlogdebug}\\
151 \helpref{wxLogError}{wxlogerror}\\
152 \helpref{wxLogFatalError}{wxlogfatalerror}\\
153 \helpref{wxLogMessage}{wxlogmessage}\\
154 \helpref{wxLogStatus}{wxlogstatus}\\
155 \helpref{wxLogSysError}{wxlogsyserror}\\
156 \helpref{wxLogTrace}{wxlogtrace}\\
157 \helpref{wxLogVerbose}{wxlogverbose}\\
158 \helpref{wxLogWarning}{wxlogwarning}\\
159 \helpref{wxLL}{wxll}\\
160 \helpref{wxLongLongFmtSpec}{wxlonglongfmtspec}\\
161 \helpref{wxMakeMetafilePlaceable}{wxmakemetafileplaceable}\\
162 \helpref{wxMatchWild}{wxmatchwild}\\
163 \helpref{wxMessageBox}{wxmessagebox}\\
164 \helpref{wxMkdir}{wxmkdir}\\
165 \helpref{wxMutexGuiEnter}{wxmutexguienter}\\
166 \helpref{wxMutexGuiLeave}{wxmutexguileave}\\
167 \helpref{wxNewId}{wxnewid}\\
168 \helpref{wxNow}{wxnow}\\
169 \helpref{wxOnAssert}{wxonassert}\\
170 \helpref{wxOpenClipboard}{wxopenclipboard}\\
171 \helpref{wxPathOnly}{wxpathonly}\\
172 \helpref{wxPostDelete}{wxpostdelete}\\
173 \helpref{wxPostEvent}{wxpostevent}\\
174 \helpref{wxRegisterClipboardFormat}{wxregisterclipboardformat}\\
175 \helpref{wxRegisterId}{wxregisterid}\\
176 \helpref{wxRemoveFile}{wxremovefile}\\
177 \helpref{wxRenameFile}{wxrenamefile}\\
178 \helpref{wxResourceAddIdentifier}{wxresourceaddidentifier}\\
179 \helpref{wxResourceClear}{wxresourceclear}\\
180 \helpref{wxResourceCreateBitmap}{wxresourcecreatebitmap}\\
181 \helpref{wxResourceCreateIcon}{wxresourcecreateicon}\\
182 \helpref{wxResourceCreateMenuBar}{wxresourcecreatemenubar}\\
183 \helpref{wxResourceGetIdentifier}{wxresourcegetidentifier}\\
184 \helpref{wxResourceParseData}{wxresourcedata}\\
185 \helpref{wxResourceParseFile}{wxresourceparsefile}\\
186 \helpref{wxResourceParseString}{wxresourceparsestring}\\
187 \helpref{wxResourceRegisterBitmapData}{registerbitmapdata}\\
188 \helpref{wxResourceRegisterIconData}{wxresourceregistericondata}\\
189 \helpref{wxRmdir}{wxrmdir}\\
190 \helpref{wxSafeShowMessage}{wxsafeshowmessage}\\
191 \helpref{wxSafeYield}{wxsafeyield}\\
192 \helpref{wxSetClipboardData}{wxsetclipboarddata}\\
193 \helpref{wxSetCursor}{wxsetcursor}\\
194 \helpref{wxSetDisplayName}{wxsetdisplayname}\\
195 \helpref{wxSetEnv}{wxsetenv}\\
196 \helpref{wxSetPrinterCommand}{wxsetprintercommand}\\
197 \helpref{wxSetPrinterFile}{wxsetprinterfile}\\
198 \helpref{wxSetPrinterMode}{wxsetprintermode}\\
199 \helpref{wxSetPrinterOptions}{wxsetprinteroptions}\\
200 \helpref{wxSetPrinterOrientation}{wxsetprinterorientation}\\
201 \helpref{wxSetPrinterPreviewCommand}{wxsetprinterpreviewcommand}\\
202 \helpref{wxSetPrinterScaling}{wxsetprinterscaling}\\
203 \helpref{wxSetPrinterTranslation}{wxsetprintertranslation}\\
204 \helpref{wxSetWorkingDirectory}{wxsetworkingdirectory}\\
205 \helpref{wxShell}{wxshell}\\
206 \helpref{wxShowTip}{wxshowtip}\\
207 \helpref{wxShutdown}{wxshutdown}\\
208 \helpref{wxSleep}{wxsleep}\\
209 \helpref{wxSnprintf}{wxsnprintf}\\
210 \helpref{wxSplitPath}{wxsplitfunction}\\
211 \helpref{wxStartTimer}{wxstarttimer}\\
212 \helpref{wxStaticCast}{wxstaticcast}\\
213 \helpref{wxStricmp}{wxstricmp}\\
214 \helpref{wxStringEq}{wxstringeq}\\
215 \helpref{wxStringMatch}{wxstringmatch}\\
216 \helpref{wxStripMenuCodes}{wxstripmenucodes}\\
217 \helpref{wxStrlen}{wxstrlen}\\
218 \helpref{wxSysErrorCode}{wxsyserrorcode}\\
219 \helpref{wxSysErrorMsg}{wxsyserrormsg}\\
220 \helpref{wxT}{wxt}\\
221 \helpref{wxToLower}{wxtolower}\\
222 \helpref{wxToUpper}{wxtoupper}\\
223 \helpref{wxTraceLevel}{wxtracelevel}\\
224 \helpref{wxTrace}{wxtrace}\\
225 \helpref{wxTransferFileToStream}{wxtransferfiletostream}\\
226 \helpref{wxTransferStreamToFile}{wxtransferstreamtofile}\\
227 \helpref{wxTrap}{wxtrap}\\
228 \helpref{wxUninitialize}{wxuninitialize}\\
229 \helpref{wxUnix2DosFilename}{wxunix2dosfilename}\\
230 \helpref{wxUnsetEnv}{wxunsetenv}\\
231 \helpref{wxUsleep}{wxusleep}\\
232 \helpref{wxVsnprintf}{wxvsnprintf}\\
233 \helpref{wxWakeUpIdle}{wxwakeupidle}\\
234 \helpref{wxWriteResource}{wxwriteresource}\\
235 \helpref{wxYield}{wxyield}\\
236 \helpref{\_}{underscore}\\
237 \helpref{\_T}{underscoret}
238
239 \section{Version macros}\label{versionfunctions}
240
241 The following constants are defined in wxWindows:
242
243 \begin{itemize}\itemsep=0pt
244 \item {\tt wxMAJOR\_VERSION} is the major version of wxWindows
245 \item {\tt wxMINOR\_VERSION} is the minor version of wxWindows
246 \item {\tt wxRELEASE\_NUMBER} is the release number
247 \end{itemize}
248
249 For example, the values or these constants for wxWindows 2.1.15 are 2, 1 and
250 15.
251
252 Additionally, {\tt wxVERSION\_STRING} is a user-readable string containing
253 the full wxWindows version and {\tt wxVERSION\_NUMBER} is a combination of the
254 three version numbers above: for 2.1.15, it is 2115 and it is 2200 for
255 wxWindows 2.2.
256
257 \wxheading{Include files}
258
259 <wx/version.h> or <wx/defs.h>
260
261 \membersection{wxCHECK\_VERSION}\label{wxcheckversion}
262
263 \func{bool}{wxCHECK\_VERSION}{\param{}{major, minor, release}}
264
265 This is a macro which evaluates to true if the current wxWindows version is at
266 least major.minor.release.
267
268 For example, to test if the program is compiled with wxWindows 2.2 or higher,
269 the following can be done:
270
271 \begin{verbatim}
272 wxString s;
273 #if wxCHECK_VERSION(2, 2, 0)
274 if ( s.StartsWith("foo") )
275 #else // replacement code for old version
276 if ( strncmp(s, "foo", 3) == 0 )
277 #endif
278 {
279 ...
280 }
281 \end{verbatim}
282
283 \membersection{wxCHECK\_GCC\_VERSION}\label{wxcheckgccversion}
284
285 \func{bool}{wxCHECK\_GCC\_VERSION}{\param{}{major, minor, release}}
286
287 Returns $1$ if the compiler being used to compile the code is GNU C++
288 compiler (g++) version major.minor.release or greater. Otherwise, and also if
289 the compiler is not GNU C++ at all, returns $0$.
290
291 \membersection{wxCHECK\_W32API\_VERSION}\label{wxcheckw32apiversion}
292
293 \func{bool}{wxCHECK\_GCC\_VERSION}{\param{}{major, minor, release}}
294
295 Returns $1$ if the version of w32api headers used is major.minor.release or
296 greater. Otherwise, and also if we are not compiling with mingw32/cygwin under
297 Win32 at all, returns $0$.
298
299 \section{Application initialization and termination}\label{appinifunctions}
300
301 The functions in this section are used on application startup/shutdown and also
302 to control the behaviour of the main event loop of the GUI programs.
303
304 \membersection{::wxEntry}\label{wxentry}
305
306 This initializes wxWindows in a platform-dependent way. Use this if you
307 are not using the default wxWindows entry code (e.g. main or WinMain). For example,
308 you can initialize wxWindows from an Microsoft Foundation Classes application using
309 this function.
310
311 \func{void}{wxEntry}{\param{HANDLE}{ hInstance}, \param{HANDLE}{ hPrevInstance},
312 \param{const wxString\& }{commandLine}, \param{int}{ cmdShow}, \param{bool}{ enterLoop = true}}
313
314 wxWindows initialization under Windows (non-DLL). If {\it enterLoop} is false, the
315 function will return immediately after calling wxApp::OnInit. Otherwise, the wxWindows
316 message loop will be entered.
317
318 \func{void}{wxEntry}{\param{HANDLE}{ hInstance}, \param{HANDLE}{ hPrevInstance},
319 \param{WORD}{ wDataSegment}, \param{WORD}{ wHeapSize}, \param{const wxString\& }{ commandLine}}
320
321 wxWindows initialization under Windows (for applications constructed as a DLL).
322
323 \func{int}{wxEntry}{\param{int}{ argc}, \param{const wxString\& *}{argv}}
324
325 wxWindows initialization under Unix.
326
327 \wxheading{Remarks}
328
329 To clean up wxWindows, call wxApp::OnExit followed by the static function
330 wxApp::CleanUp. For example, if exiting from an MFC application that also uses wxWindows:
331
332 \begin{verbatim}
333 int CTheApp::ExitInstance()
334 {
335 // OnExit isn't called by CleanUp so must be called explicitly.
336 wxTheApp->OnExit();
337 wxApp::CleanUp();
338
339 return CWinApp::ExitInstance();
340 }
341 \end{verbatim}
342
343 \wxheading{Include files}
344
345 <wx/app.h>
346
347
348 \membersection{::wxGetApp}\label{wxgetapp}
349
350 \func{wxAppDerivedClass\&}{wxGetApp}{\void}
351
352 This function doesn't exist in wxWindows but it is created by using
353 the \helpref{IMPLEMENT\_APP}{implementapp} macro. Thus, before using it
354 anywhere but in the same module where this macro is used, you must make it
355 available using \helpref{DECLARE\_APP}{declareapp}.
356
357 The advantage of using this function compared to directly using the global
358 wxTheApp pointer is that the latter is of type {\tt wxApp *} and so wouldn't
359 allow you to access the functions specific to your application class but not
360 present in wxApp while wxGetApp() returns the object of the right type.
361
362 \membersection{::wxHandleFatalExceptions}\label{wxhandlefatalexceptions}
363
364 \func{bool}{wxHandleFatalExceptions}{\param{bool}{ doIt = true}}
365
366 If {\it doIt} is true, the fatal exceptions (also known as general protection
367 faults under Windows or segmentation violations in the Unix world) will be
368 caught and passed to \helpref{wxApp::OnFatalException}{wxapponfatalexception}.
369 By default, i.e. before this function is called, they will be handled in the
370 normal way which usually just means that the application will be terminated.
371 Calling wxHandleFatalExceptions() with {\it doIt} equal to false will restore
372 this default behaviour.
373
374 \membersection{::wxInitAllImageHandlers}\label{wxinitallimagehandlers}
375
376 \func{void}{wxInitAllImageHandlers}{\void}
377
378 Initializes all available image handlers. For a list of available handlers,
379 see \helpref{wxImage}{wximage}.
380
381 \wxheading{See also}
382
383 \helpref{wxImage}{wximage}, \helpref{wxImageHandler}{wximagehandler}
384
385 \wxheading{Include files}
386
387 <wx/image.h>
388
389 \membersection{::wxInitialize}\label{wxinitialize}
390
391 \func{bool}{wxInitialize}{\void}
392
393 This function is used in wxBase only and only if you don't create
394 \helpref{wxApp}{wxapp} object at all. In this case you must call it from your
395 {\tt main()} function before calling any other wxWindows functions.
396
397 If the function returns {\tt false} the initialization could not be performed,
398 in this case the library cannot be used and
399 \helpref{wxUninitialize}{wxuninitialize} shouldn't be called neither.
400
401 This function may be called several times but
402 \helpref{wxUninitialize}{wxuninitialize} must be called for each successful
403 call to this function.
404
405 \wxheading{Include files}
406
407 <wx/app.h>
408
409 \membersection{::wxSafeYield}\label{wxsafeyield}
410
411 \func{bool}{wxSafeYield}{\param{wxWindow*}{ win = NULL}, \param{bool}{
412 onlyIfNeeded = false}}
413
414 This function is similar to wxYield, except that it disables the user input to
415 all program windows before calling wxYield and re-enables it again
416 afterwards. If {\it win} is not NULL, this window will remain enabled,
417 allowing the implementation of some limited user interaction.
418
419 Returns the result of the call to \helpref{::wxYield}{wxyield}.
420
421 \wxheading{Include files}
422
423 <wx/utils.h>
424
425 \membersection{::wxUninitialize}\label{wxuninitialize}
426
427 \func{void}{wxUninitialize}{\void}
428
429 This function is for use in console (wxBase) programs only. It must be called
430 once for each previous successful call to \helpref{wxInitialize}{wxinitialize}.
431
432 \wxheading{Include files}
433
434 <wx/app.h>
435
436 \membersection{::wxYield}\label{wxyield}
437
438 \func{bool}{wxYield}{\void}
439
440 Calls \helpref{wxApp::Yield}{wxappyield}.
441
442 This function is kept only for backwards compatibility. Please use
443 the \helpref{wxApp::Yield}{wxappyield} method instead in any new code.
444
445 \wxheading{Include files}
446
447 <wx/app.h> or <wx/utils.h>
448
449 \membersection{::wxWakeUpIdle}\label{wxwakeupidle}
450
451 \func{void}{wxWakeUpIdle}{\void}
452
453 This functions wakes up the (internal and platform dependent) idle system, i.e. it
454 will force the system to send an idle event even if the system currently {\it is}
455 idle and thus would not send any idle event until after some other event would get
456 sent. This is also useful for sending events between two threads and is used by
457 the corresponding functions \helpref{::wxPostEvent}{wxpostevent} and
458 \helpref{wxEvtHandler::AddPendingEvent}{wxevthandleraddpendingevent}.
459
460 \wxheading{Include files}
461
462 <wx/app.h>
463
464 \section{Process control functions}\label{processfunctions}
465
466 The functions in this section are used to launch or terminate the other
467 processes.
468
469 \membersection{::wxExecute}\label{wxexecute}
470
471 \func{long}{wxExecute}{\param{const wxString\& }{command}, \param{int }{sync = wxEXEC\_ASYNC}, \param{wxProcess *}{callback = NULL}}
472
473 \func{long}{wxExecute}{\param{char **}{argv}, \param{int }{flags = wxEXEC\_ASYNC}, \param{wxProcess *}{callback = NULL}}
474
475 \func{long}{wxExecute}{\param{const wxString\& }{command}, \param{wxArrayString\& }{output}}
476
477 \perlnote{In wxPerl this function only takes the {\tt command} argument,
478 and returns a 2-element list {\tt ( status, output )}, where {\tt output} is
479 an array reference.}
480
481 \func{long}{wxExecute}{\param{const wxString\& }{command}, \param{wxArrayString\& }{output}, \param{wxArrayString\& }{errors}}
482
483 \perlnote{In wxPerl this function only takes the {\tt command} argument,
484 and returns a 3-element list {\tt ( status, output, errors )}, where
485 {\tt output} and {\tt errors} are array references.}
486
487 Executes another program in Unix or Windows.
488
489 The first form takes a command string, such as {\tt "emacs file.txt"}.
490
491 The second form takes an array of values: a command, any number of
492 arguments, terminated by NULL.
493
494 The semantics of the third and fourth versions is different from the first two
495 and is described in more details below.
496
497 If {\it flags} parameter contains {\tt wxEXEC\_ASYNC} flag (the default), flow
498 of control immediately returns. If it contains {\tt wxEXEC\_SYNC}, the current
499 application waits until the other program has terminated.
500
501 In the case of synchronous execution, the return value is the exit code of
502 the process (which terminates by the moment the function returns) and will be
503 $-1$ if the process couldn't be started and typically 0 if the process
504 terminated successfully. Also, while waiting for the process to
505 terminate, wxExecute will call \helpref{wxYield}{wxyield}. The caller
506 should ensure that this can cause no recursion, in the simplest case by
507 calling \helpref{wxEnableTopLevelWindows(false)}{wxenabletoplevelwindows}.
508
509 For asynchronous execution, however, the return value is the process id and
510 zero value indicates that the command could not be executed. As an added
511 complication, the return value of $-1$ in this case indicates that we didn't
512 launch a new process, but connected to the running one (this can only happen in
513 case of using DDE under Windows for command execution). In particular, in this,
514 and only this, case the calling code will not get the notification about
515 process termination.
516
517 If callback isn't NULL and if execution is asynchronous,
518 \helpref{wxProcess::OnTerminate}{wxprocessonterminate} will be called when
519 the process finishes. Specifying this parameter also allows you to redirect the
520 standard input and/or output of the process being launched by calling
521 \helpref{Redirect}{wxprocessredirect}. If the child process IO is redirected,
522 under Windows the process window is not shown by default (this avoids having to
523 flush an unnecessary console for the processes which don't create any windows
524 anyhow) but a {\tt wxEXEC\_NOHIDE} flag can be used to prevent this from
525 happening, i.e. with this flag the child process window will be shown normally.
526
527 Under Unix the flag {\tt wxEXEC\_MAKE\_GROUP\_LEADER} may be used to ensure
528 that the new process is a group leader (this will create a new session if
529 needed). Calling \helpref{wxKill}{wxkill} with the argument of -pid where pid
530 is the process ID of the new process will kill this process as well as all of
531 its children (except those which have started their own session).
532
533 Finally, you may use the third overloaded version of this function to execute
534 a process (always synchronously) and capture its output in the array
535 {\it output}. The fourth version adds the possibility to additionally capture
536 the messages from standard error output in the {\it errors} array.
537
538 See also \helpref{wxShell}{wxshell}, \helpref{wxProcess}{wxprocess},
539 \helpref{Exec sample}{sampleexec}.
540
541 \wxheading{Parameters}
542
543 \docparam{command}{The command to execute and any parameters to pass to it as a
544 single string.}
545
546 \docparam{argv}{The command to execute should be the first element of this
547 array, any additional ones are the command parameters and the array must be
548 terminated with a NULL pointer.}
549
550 \docparam{flags}{Combination of bit masks {\tt wxEXEC\_ASYNC},
551 {\tt wxEXEC\_SYNC} and {\tt wxEXEC\_NOHIDE}}
552
553 \docparam{callback}{An optional pointer to \helpref{wxProcess}{wxprocess}}
554
555 \wxheading{Include files}
556
557 <wx/utils.h>
558
559 \membersection{::wxExit}\label{wxexit}
560
561 \func{void}{wxExit}{\void}
562
563 Exits application after calling \helpref{wxApp::OnExit}{wxapponexit}.
564 Should only be used in an emergency: normally the top-level frame
565 should be deleted (after deleting all other frames) to terminate the
566 application. See \helpref{wxCloseEvent}{wxcloseevent} and \helpref{wxApp}{wxapp}.
567
568 \wxheading{Include files}
569
570 <wx/app.h>
571
572 \membersection{::wxKill}\label{wxkill}
573
574 \func{int}{wxKill}{\param{long}{ pid}, \param{int}{ sig = wxSIGTERM}, \param{wxKillError }{*rc = NULL}}
575
576 Equivalent to the Unix kill function: send the given signal {\it sig} to the
577 process with PID {\it pid}. The valid signal values are
578
579 \begin{verbatim}
580 enum wxSignal
581 {
582 wxSIGNONE = 0, // verify if the process exists under Unix
583 wxSIGHUP,
584 wxSIGINT,
585 wxSIGQUIT,
586 wxSIGILL,
587 wxSIGTRAP,
588 wxSIGABRT,
589 wxSIGEMT,
590 wxSIGFPE,
591 wxSIGKILL, // forcefully kill, dangerous!
592 wxSIGBUS,
593 wxSIGSEGV,
594 wxSIGSYS,
595 wxSIGPIPE,
596 wxSIGALRM,
597 wxSIGTERM // terminate the process gently
598 };
599 \end{verbatim}
600
601 {\tt wxSIGNONE}, {\tt wxSIGKILL} and {\tt wxSIGTERM} have the same meaning
602 under both Unix and Windows but all the other signals are equivalent to
603 {\tt wxSIGTERM} under Windows.
604
605 Returns 0 on success, -1 on failure. If {\it rc} parameter is not NULL, it will
606 be filled with an element of {\tt wxKillError} enum:
607
608 \begin{verbatim}
609 enum wxKillError
610 {
611 wxKILL_OK, // no error
612 wxKILL_BAD_SIGNAL, // no such signal
613 wxKILL_ACCESS_DENIED, // permission denied
614 wxKILL_NO_PROCESS, // no such process
615 wxKILL_ERROR // another, unspecified error
616 };
617 \end{verbatim}
618
619 \wxheading{See also}
620
621 \helpref{wxProcess::Kill}{wxprocesskill},\rtfsp
622 \helpref{wxProcess::Exists}{wxprocessexists},\rtfsp
623 \helpref{Exec sample}{sampleexec}
624
625 \wxheading{Include files}
626
627 <wx/utils.h>
628
629 \membersection{::wxGetProcessId}\label{wxgetprocessid}
630
631 \func{unsigned long}{wxGetProcessId}{\void}
632
633 Returns the number uniquely identifying the current process in the system.
634
635 If an error occurs, $0$ is returned.
636
637 \wxheading{Include files}
638
639 <wx/utils.h>
640
641 \membersection{::wxShell}\label{wxshell}
642
643 \func{bool}{wxShell}{\param{const wxString\& }{command = NULL}}
644
645 Executes a command in an interactive shell window. If no command is
646 specified, then just the shell is spawned.
647
648 See also \helpref{wxExecute}{wxexecute}, \helpref{Exec sample}{sampleexec}.
649
650 \wxheading{Include files}
651
652 <wx/utils.h>
653
654 \membersection{::wxShutdown}\label{wxshutdown}
655
656 \func{bool}{wxShutdown}{\param{wxShutdownFlags}{flags}}
657
658 This function shuts down or reboots the computer depending on the value of the
659 {\it flags}. Please notice that doing this requires the corresponding access
660 rights (superuser under Unix, {\tt SE\_SHUTDOWN} privelege under Windows NT)
661 and that this function is only implemented under Unix and Win32.
662
663 \wxheading{Parameters}
664
665 \docparam{flags}{Either {\tt wxSHUTDOWN\_POWEROFF} or {\tt wxSHUTDOWN\_REBOOT}}
666
667 \wxheading{Returns}
668
669 {\tt true} on success, {\tt false} if an error occured.
670
671 \wxheading{Include files}
672
673 <wx/utils.h>
674
675 \section{Thread functions}\label{threadfunctions}
676
677 \wxheading{Include files}
678
679 <wx/thread.h>
680
681 \wxheading{See also}
682
683 \helpref{wxThread}{wxthread}, \helpref{wxMutex}{wxmutex}, \helpref{Multithreading overview}{wxthreadoverview}
684
685 \membersection{::wxMutexGuiEnter}\label{wxmutexguienter}
686
687 \func{void}{wxMutexGuiEnter}{\void}
688
689 This function must be called when any thread other than the main GUI thread
690 wants to get access to the GUI library. This function will block the execution
691 of the calling thread until the main thread (or any other thread holding the
692 main GUI lock) leaves the GUI library and no other thread will enter the GUI
693 library until the calling thread calls \helpref{::wxMutexGuiLeave()}{wxmutexguileave}.
694
695 Typically, these functions are used like this:
696
697 \begin{verbatim}
698 void MyThread::Foo(void)
699 {
700 // before doing any GUI calls we must ensure that this thread is the only
701 // one doing it!
702
703 wxMutexGuiEnter();
704
705 // Call GUI here:
706 my_window->DrawSomething();
707
708 wxMutexGuiLeave();
709 }
710 \end{verbatim}
711
712 Note that under GTK, no creation of top-level windows is allowed in any
713 thread but the main one.
714
715 This function is only defined on platforms which support preemptive
716 threads.
717
718 \membersection{::wxMutexGuiLeave}\label{wxmutexguileave}
719
720 \func{void}{wxMutexGuiLeave}{\void}
721
722 See \helpref{::wxMutexGuiEnter()}{wxmutexguienter}.
723
724 This function is only defined on platforms which support preemptive
725 threads.
726
727 \section{File functions}\label{filefunctions}
728
729 \wxheading{Include files}
730
731 <wx/utils.h>
732
733 \wxheading{See also}
734
735 \helpref{wxPathList}{wxpathlist}\\
736 \helpref{wxDir}{wxdir}\\
737 \helpref{wxFile}{wxfile}\\
738 \helpref{wxFileName}{wxfilename}
739
740 \membersection{::wxDirExists}\label{functionwxdirexists}
741
742 \func{bool}{wxDirExists}{\param{const wxString\& }{dirname}}
743
744 Returns true if the directory exists.
745
746 \membersection{::wxDos2UnixFilename}\label{wxdos2unixfilename}
747
748 \func{void}{wxDos2UnixFilename}{\param{wxChar *}{s}}
749
750 Converts a DOS to a Unix filename by replacing backslashes with forward
751 slashes.
752
753 \membersection{::wxFileExists}\label{functionwxfileexists}
754
755 \func{bool}{wxFileExists}{\param{const wxString\& }{filename}}
756
757 Returns true if the file exists. It also returns true if the file is
758 a directory.
759
760 \membersection{::wxFileModificationTime}\label{wxfilemodificationtime}
761
762 \func{time\_t}{wxFileModificationTime}{\param{const wxString\& }{filename}}
763
764 Returns time of last modification of given file.
765
766 \membersection{::wxFileNameFromPath}\label{wxfilenamefrompath}
767
768 \func{wxString}{wxFileNameFromPath}{\param{const wxString\& }{path}}
769
770 \func{char *}{wxFileNameFromPath}{\param{char *}{path}}
771
772 {\bf NB:} This function is obsolete, please use
773 \helpref{wxFileName::SplitPath}{wxfilenamesplitpath} instead.
774
775 Returns the filename for a full path. The second form returns a pointer to
776 temporary storage that should not be deallocated.
777
778 \membersection{::wxFindFirstFile}\label{wxfindfirstfile}
779
780 \func{wxString}{wxFindFirstFile}{\param{const char *}{spec}, \param{int}{ flags = 0}}
781
782 This function does directory searching; returns the first file
783 that matches the path {\it spec}, or the empty string. Use \helpref{wxFindNextFile}{wxfindnextfile} to
784 get the next matching file. Neither will report the current directory "." or the
785 parent directory "..".
786
787 {\it spec} may contain wildcards.
788
789 {\it flags} may be wxDIR for restricting the query to directories, wxFILE for files or zero for either.
790
791 For example:
792
793 \begin{verbatim}
794 wxString f = wxFindFirstFile("/home/project/*.*");
795 while ( !f.IsEmpty() )
796 {
797 ...
798 f = wxFindNextFile();
799 }
800 \end{verbatim}
801
802 \membersection{::wxFindNextFile}\label{wxfindnextfile}
803
804 \func{wxString}{wxFindNextFile}{\void}
805
806 Returns the next file that matches the path passed to \helpref{wxFindFirstFile}{wxfindfirstfile}.
807
808 See \helpref{wxFindFirstFile}{wxfindfirstfile} for an example.
809
810 \membersection{::wxGetDiskSpace}\label{wxgetdiskspace}
811
812 \func{bool}{wxGetDiskSpace}{\param{const wxString\& }{path}, \param{wxLongLong }{*total = NULL}, \param{wxLongLong }{*free = NULL}}
813
814 This function returns the total number of bytes and number of free bytes on
815 the disk containing the directory {\it path} (it should exist). Both
816 {\it total} and {\it free} parameters may be {\tt NULL} if the corresponding
817 information is not needed.
818
819 \wxheading{Returns}
820
821 {\tt true} on success, {\tt false} if an error occured (for example, the
822 directory doesn't exist).
823
824 \wxheading{Portability}
825
826 This function is implemented for Win16 (only for drives less than 2Gb), Win32,
827 Mac OS and generic Unix provided the system has {\tt statfs()} function.
828
829 This function first appeared in wxWindows 2.3.2.
830
831 \membersection{::wxGetOSDirectory}\label{wxgetosdirectory}
832
833 \func{wxString}{wxGetOSDirectory}{\void}
834
835 Returns the Windows directory under Windows; on other platforms returns the empty string.
836
837 \membersection{::wxIsAbsolutePath}\label{wxisabsolutepath}
838
839 \func{bool}{wxIsAbsolutePath}{\param{const wxString\& }{filename}}
840
841 Returns true if the argument is an absolute filename, i.e. with a slash
842 or drive name at the beginning.
843
844 \membersection{::wxPathOnly}\label{wxpathonly}
845
846 \func{wxString}{wxPathOnly}{\param{const wxString\& }{path}}
847
848 Returns the directory part of the filename.
849
850 \membersection{::wxUnix2DosFilename}\label{wxunix2dosfilename}
851
852 \func{void}{wxUnix2DosFilename}{\param{const wxString\& }{s}}
853
854 Converts a Unix to a DOS filename by replacing forward
855 slashes with backslashes.
856
857 \membersection{::wxConcatFiles}\label{wxconcatfiles}
858
859 \func{bool}{wxConcatFiles}{\param{const wxString\& }{file1}, \param{const wxString\& }{file2},
860 \param{const wxString\& }{file3}}
861
862 Concatenates {\it file1} and {\it file2} to {\it file3}, returning
863 true if successful.
864
865 \membersection{::wxCopyFile}\label{wxcopyfile}
866
867 \func{bool}{wxCopyFile}{\param{const wxString\& }{file1}, \param{const wxString\& }{file2}, \param{bool }{overwrite = true}}
868
869 Copies {\it file1} to {\it file2}, returning true if successful. If
870 {\it overwrite} parameter is true (default), the destination file is overwritten
871 if it exists, but if {\it overwrite} is false, the functions fails in this
872 case.
873
874 \membersection{::wxGetCwd}\label{wxgetcwd}
875
876 \func{wxString}{wxGetCwd}{\void}
877
878 Returns a string containing the current (or working) directory.
879
880 \membersection{::wxGetWorkingDirectory}\label{wxgetworkingdirectory}
881
882 \func{wxString}{wxGetWorkingDirectory}{\param{char *}{buf=NULL}, \param{int }{sz=1000}}
883
884 {\bf NB:} This function is obsolete: use \helpref{wxGetCwd}{wxgetcwd} instead.
885
886 Copies the current working directory into the buffer if supplied, or
887 copies the working directory into new storage (which you must delete yourself)
888 if the buffer is NULL.
889
890 {\it sz} is the size of the buffer if supplied.
891
892 \membersection{::wxGetTempFileName}\label{wxgettempfilename}
893
894 \func{char *}{wxGetTempFileName}{\param{const wxString\& }{prefix}, \param{char *}{buf=NULL}}
895
896 \func{bool}{wxGetTempFileName}{\param{const wxString\& }{prefix}, \param{wxString\& }{buf}}
897
898 %% Makes a temporary filename based on {\it prefix}, opens and closes the file,
899 %% and places the name in {\it buf}. If {\it buf} is NULL, new store
900 %% is allocated for the temporary filename using {\it new}.
901 %%
902 %% Under Windows, the filename will include the drive and name of the
903 %% directory allocated for temporary files (usually the contents of the
904 %% TEMP variable). Under Unix, the {\tt /tmp} directory is used.
905 %%
906 %% It is the application's responsibility to create and delete the file.
907
908 {\bf NB:} These functions are obsolete, please use\rtfsp
909 \helpref{wxFileName::CreateTempFileName}{wxfilenamecreatetempfilename}\rtfsp
910 instead.
911
912 \membersection{::wxIsWild}\label{wxiswild}
913
914 \func{bool}{wxIsWild}{\param{const wxString\& }{pattern}}
915
916 Returns true if the pattern contains wildcards. See \helpref{wxMatchWild}{wxmatchwild}.
917
918 \membersection{::wxMatchWild}\label{wxmatchwild}
919
920 \func{bool}{wxMatchWild}{\param{const wxString\& }{pattern}, \param{const wxString\& }{text}, \param{bool}{ dot\_special}}
921
922 Returns true if the {\it pattern}\/ matches the {\it text}\/; if {\it
923 dot\_special}\/ is true, filenames beginning with a dot are not matched
924 with wildcard characters. See \helpref{wxIsWild}{wxiswild}.
925
926 \membersection{::wxMkdir}\label{wxmkdir}
927
928 \func{bool}{wxMkdir}{\param{const wxString\& }{dir}, \param{int }{perm = 0777}}
929
930 Makes the directory {\it dir}, returning true if successful.
931
932 {\it perm} is the access mask for the directory for the systems on which it is
933 supported (Unix) and doesn't have effect for the other ones.
934
935 \membersection{::wxRemoveFile}\label{wxremovefile}
936
937 \func{bool}{wxRemoveFile}{\param{const wxString\& }{file}}
938
939 Removes {\it file}, returning true if successful.
940
941 \membersection{::wxRenameFile}\label{wxrenamefile}
942
943 \func{bool}{wxRenameFile}{\param{const wxString\& }{file1}, \param{const wxString\& }{file2}}
944
945 Renames {\it file1} to {\it file2}, returning true if successful.
946
947 \membersection{::wxRmdir}\label{wxrmdir}
948
949 \func{bool}{wxRmdir}{\param{const wxString\& }{dir}, \param{int}{ flags=0}}
950
951 Removes the directory {\it dir}, returning true if successful. Does not work under VMS.
952
953 The {\it flags} parameter is reserved for future use.
954
955 \membersection{::wxSetWorkingDirectory}\label{wxsetworkingdirectory}
956
957 \func{bool}{wxSetWorkingDirectory}{\param{const wxString\& }{dir}}
958
959 Sets the current working directory, returning true if the operation succeeded.
960 Under MS Windows, the current drive is also changed if {\it dir} contains a drive specification.
961
962 \membersection{::wxSplitPath}\label{wxsplitfunction}
963
964 \func{void}{wxSplitPath}{\param{const char *}{ fullname}, \param{wxString *}{ path}, \param{wxString *}{ name}, \param{wxString *}{ ext}}
965
966 {\bf NB:} This function is obsolete, please use
967 \helpref{wxFileName::SplitPath}{wxfilenamesplitpath} instead.
968
969 This function splits a full file name into components: the path (including possible disk/drive
970 specification under Windows), the base name and the extension. Any of the output parameters
971 ({\it path}, {\it name} or {\it ext}) may be NULL if you are not interested in the value of
972 a particular component.
973
974 wxSplitPath() will correctly handle filenames with both DOS and Unix path separators under
975 Windows, however it will not consider backslashes as path separators under Unix (where backslash
976 is a valid character in a filename).
977
978 On entry, {\it fullname} should be non-NULL (it may be empty though).
979
980 On return, {\it path} contains the file path (without the trailing separator), {\it name}
981 contains the file name and {\it ext} contains the file extension without leading dot. All
982 three of them may be empty if the corresponding component is. The old contents of the
983 strings pointed to by these parameters will be overwritten in any case (if the pointers
984 are not NULL).
985
986 \membersection{::wxTransferFileToStream}\label{wxtransferfiletostream}
987
988 \func{bool}{wxTransferFileToStream}{\param{const wxString\& }{filename}, \param{ostream\& }{stream}}
989
990 Copies the given file to {\it stream}. Useful when converting an old application to
991 use streams (within the document/view framework, for example).
992
993 \wxheading{Include files}
994
995 <wx/docview.h>
996
997 \membersection{::wxTransferStreamToFile}\label{wxtransferstreamtofile}
998
999 \func{bool}{wxTransferStreamToFile}{\param{istream\& }{stream} \param{const wxString\& }{filename}}
1000
1001 Copies the given stream to the file {\it filename}. Useful when converting an old application to
1002 use streams (within the document/view framework, for example).
1003
1004 \wxheading{Include files}
1005
1006 <wx/docview.h>
1007
1008 \section{Network, user and OS functions}\label{networkfunctions}
1009
1010 The functions in this section are used to retrieve information about the
1011 current computer and/or user characteristics.
1012
1013 \membersection{::wxGetFreeMemory}\label{wxgetfreememory}
1014
1015 \func{long}{wxGetFreeMemory}{\void}
1016
1017 Returns the amount of free memory in bytes under environments which
1018 support it, and -1 if not supported. Currently, it is supported only
1019 under Windows, Linux and Solaris.
1020
1021 \wxheading{Include files}
1022
1023 <wx/utils.h>
1024
1025 \membersection{::wxGetFullHostName}\label{wxgetfullhostname}
1026
1027 \func{wxString}{wxGetFullHostName}{\void}
1028
1029 Returns the FQDN (fully qualified domain host name) or an empty string on
1030 error.
1031
1032 \wxheading{See also}
1033
1034 \helpref{wxGetHostName}{wxgethostname}
1035
1036 \wxheading{Include files}
1037
1038 <wx/utils.h>
1039
1040 \membersection{::wxGetEmailAddress}\label{wxgetemailaddress}
1041
1042 \func{bool}{wxGetEmailAddress}{\param{const wxString\& }{buf}, \param{int }{sz}}
1043
1044 Copies the user's email address into the supplied buffer, by
1045 concatenating the values returned by \helpref{wxGetFullHostName}{wxgetfullhostname}\rtfsp
1046 and \helpref{wxGetUserId}{wxgetuserid}.
1047
1048 Returns true if successful, false otherwise.
1049
1050 \wxheading{Include files}
1051
1052 <wx/utils.h>
1053
1054 \membersection{::wxGetHomeDir}\label{wxgethomedir}
1055
1056 \func{wxString}{wxGetHomeDir}{\void}
1057
1058 Return the (current) user's home directory.
1059
1060 \wxheading{See also}
1061
1062 \helpref{wxGetUserHome}{wxgetuserhome}
1063
1064 \wxheading{Include files}
1065
1066 <wx/utils.h>
1067
1068 \membersection{::wxGetHostName}\label{wxgethostname}
1069
1070 \func{wxString}{wxGetHostName}{\void}
1071
1072 \func{bool}{wxGetHostName}{\param{char * }{buf}, \param{int }{sz}}
1073
1074 Copies the current host machine's name into the supplied buffer. Please note
1075 that the returned name is {\it not} fully qualified, i.e. it does not include
1076 the domain name.
1077
1078 Under Windows or NT, this function first looks in the environment
1079 variable SYSTEM\_NAME; if this is not found, the entry {\bf HostName}\rtfsp
1080 in the {\bf wxWindows} section of the WIN.INI file is tried.
1081
1082 The first variant of this function returns the hostname if successful or an
1083 empty string otherwise. The second (deprecated) function returns true
1084 if successful, false otherwise.
1085
1086 \wxheading{See also}
1087
1088 \helpref{wxGetFullHostName}{wxgetfullhostname}
1089
1090 \wxheading{Include files}
1091
1092 <wx/utils.h>
1093
1094 \membersection{::wxGetUserId}\label{wxgetuserid}
1095
1096 \func{wxString}{wxGetUserId}{\void}
1097
1098 \func{bool}{wxGetUserId}{\param{char * }{buf}, \param{int }{sz}}
1099
1100 This function returns the "user id" also known as "login name" under Unix i.e.
1101 something like "jsmith". It uniquely identifies the current user (on this system).
1102
1103 Under Windows or NT, this function first looks in the environment
1104 variables USER and LOGNAME; if neither of these is found, the entry {\bf UserId}\rtfsp
1105 in the {\bf wxWindows} section of the WIN.INI file is tried.
1106
1107 The first variant of this function returns the login name if successful or an
1108 empty string otherwise. The second (deprecated) function returns true
1109 if successful, false otherwise.
1110
1111 \wxheading{See also}
1112
1113 \helpref{wxGetUserName}{wxgetusername}
1114
1115 \wxheading{Include files}
1116
1117 <wx/utils.h>
1118
1119 \membersection{::wxGetOsDescription}\label{wxgetosdescription}
1120
1121 \func{wxString}{wxGetOsDescription}{\void}
1122
1123 Returns the string containing the description of the current platform in a
1124 user-readable form. For example, this function may return strings like
1125 {\tt Windows NT Version 4.0} or {\tt Linux 2.2.2 i386}.
1126
1127 \wxheading{See also}
1128
1129 \helpref{::wxGetOsVersion}{wxgetosversion}
1130
1131 \wxheading{Include files}
1132
1133 <wx/utils.h>
1134
1135 \membersection{::wxGetOsVersion}\label{wxgetosversion}
1136
1137 \func{int}{wxGetOsVersion}{\param{int *}{major = NULL}, \param{int *}{minor = NULL}}
1138
1139 Gets operating system version information.
1140
1141 \begin{twocollist}\itemsep=0pt
1142 \twocolitemruled{Platform}{Return types}
1143 \twocolitem{Mac OS}{Return value is wxMAC when compiled with CodeWarrior under Mac OS 8.x/9.x and Mac OS X, wxMAC\_DARWIN when compiled with the Apple Developer Tools under Mac OS X.}
1144 \twocolitem{GTK}{Return value is wxGTK, For GTK 1.0, {\it major} is 1, {\it minor} is 0. }
1145 \twocolitem{Motif}{Return value is wxMOTIF\_X, {\it major} is X version, {\it minor} is X revision.}
1146 \twocolitem{OS/2}{Return value is wxOS2\_PM.}
1147 \twocolitem{Windows 3.1}{Return value is wxWINDOWS, {\it major} is 3, {\it minor} is 1.}
1148 \twocolitem{Windows NT/2000}{Return value is wxWINDOWS\_NT, version is returned in {\it major} and {\it minor}}
1149 \twocolitem{Windows 98}{Return value is wxWIN95, {\it major} is 4, {\it minor} is 1 or greater.}
1150 \twocolitem{Windows 95}{Return value is wxWIN95, {\it major} is 4, {\it minor} is 0.}
1151 \twocolitem{Win32s (Windows 3.1)}{Return value is wxWIN32S, {\it major} is 3, {\it minor} is 1.}
1152 \twocolitem{Watcom C++ 386 supervisor mode (Windows 3.1)}{Return value is wxWIN386, {\it major} is 3, {\it minor} is 1.}
1153 \end{twocollist}
1154
1155 \wxheading{See also}
1156
1157 \helpref{::wxGetOsDescription}{wxgetosdescription}
1158
1159 \wxheading{Include files}
1160
1161 <wx/utils.h>
1162
1163 \membersection{::wxGetUserHome}\label{wxgetuserhome}
1164
1165 \func{const wxChar *}{wxGetUserHome}{\param{const wxString\& }{user = ""}}
1166
1167 Returns the home directory for the given user. If the username is empty
1168 (default value), this function behaves like
1169 \helpref{wxGetHomeDir}{wxgethomedir}.
1170
1171 \wxheading{Include files}
1172
1173 <wx/utils.h>
1174
1175 \membersection{::wxGetUserName}\label{wxgetusername}
1176
1177 \func{wxString}{wxGetUserName}{\void}
1178
1179 \func{bool}{wxGetUserName}{\param{char * }{buf}, \param{int }{sz}}
1180
1181 This function returns the full user name (something like "Mr. John Smith").
1182
1183 Under Windows or NT, this function looks for the entry {\bf UserName}\rtfsp
1184 in the {\bf wxWindows} section of the WIN.INI file. If PenWindows
1185 is running, the entry {\bf Current} in the section {\bf User} of
1186 the PENWIN.INI file is used.
1187
1188 The first variant of this function returns the user name if successful or an
1189 empty string otherwise. The second (deprecated) function returns {\tt true}
1190 if successful, {\tt false} otherwise.
1191
1192 \wxheading{See also}
1193
1194 \helpref{wxGetUserId}{wxgetuserid}
1195
1196 \wxheading{Include files}
1197
1198 <wx/utils.h>
1199
1200 \section{String functions}
1201
1202 \membersection{::copystring}\label{copystring}
1203
1204 \func{char *}{copystring}{\param{const char *}{s}}
1205
1206 Makes a copy of the string {\it s} using the C++ new operator, so it can be
1207 deleted with the {\it delete} operator.
1208
1209 This function is deprecated, use \helpref{wxString}{wxstring} class instead.
1210
1211 \membersection{::wxGetTranslation}\label{wxgettranslation}
1212
1213 \func{const char *}{wxGetTranslation}{\param{const char * }{str}}
1214
1215 This function returns the translation of string {\it str} in the current
1216 \helpref{locale}{wxlocale}. If the string is not found in any of the loaded
1217 message catalogs (see \helpref{internationalization overview}{internationalization}), the
1218 original string is returned. In debug build, an error message is logged -- this
1219 should help to find the strings which were not yet translated. As this function
1220 is used very often, an alternative (and also common in Unix world) syntax is
1221 provided: the \helpref{\_()}{underscore} macro is defined to do the same thing
1222 as wxGetTranslation.
1223
1224 \membersection{::wxIsEmpty}\label{wxisempty}
1225
1226 \func{bool}{wxIsEmpty}{\param{const char *}{ p}}
1227
1228 Returns {\tt true} if the pointer is either {\tt NULL} or points to an empty
1229 string, {\tt false} otherwise.
1230
1231 \membersection{::wxStricmp}\label{wxstricmp}
1232
1233 \func{int}{wxStricmp}{\param{const char *}{p1}, \param{const char *}{p2}}
1234
1235 Returns a negative value, 0, or positive value if {\it p1} is less than, equal
1236 to or greater than {\it p2}. The comparison is case-insensitive.
1237
1238 This function complements the standard C function {\it strcmp()} which performs
1239 case-sensitive comparison.
1240
1241 \membersection{::wxStringMatch}\label{wxstringmatch}
1242
1243 \func{bool}{wxStringMatch}{\param{const wxString\& }{s1}, \param{const wxString\& }{s2},\\
1244 \param{bool}{ subString = true}, \param{bool}{ exact = false}}
1245
1246 {\bf NB:} This function is obsolete, use \helpref{wxString::Find}{wxstringfind} instead.
1247
1248 Returns {\tt true} if the substring {\it s1} is found within {\it s2},
1249 ignoring case if {\it exact} is false. If {\it subString} is {\tt false},
1250 no substring matching is done.
1251
1252 \membersection{::wxStringEq}\label{wxstringeq}
1253
1254 \func{bool}{wxStringEq}{\param{const wxString\& }{s1}, \param{const wxString\& }{s2}}
1255
1256 {\bf NB:} This function is obsolete, use \helpref{wxString}{wxstring} instead.
1257
1258 A macro defined as:
1259
1260 \begin{verbatim}
1261 #define wxStringEq(s1, s2) (s1 && s2 && (strcmp(s1, s2) == 0))
1262 \end{verbatim}
1263
1264 \membersection{::wxStrlen}\label{wxstrlen}
1265
1266 \func{size\_t}{wxStrlen}{\param{const char *}{ p}}
1267
1268 This is a safe version of standard function {\it strlen()}: it does exactly the
1269 same thing (i.e. returns the length of the string) except that it returns 0 if
1270 {\it p} is the {\tt NULL} pointer.
1271
1272 \membersection{::wxSnprintf}\label{wxsnprintf}
1273
1274 \func{int}{wxSnprintf}{\param{wxChar *}{buf}, \param{size\_t }{len}, \param{const wxChar *}{format}, \param{}{...}}
1275
1276 This function replaces the dangerous standard function {\tt sprintf()} and is
1277 like {\tt snprintf()} available on some platforms. The only difference with
1278 sprintf() is that an additional argument - buffer size - is taken and the
1279 buffer is never overflowed.
1280
1281 Returns the number of characters copied to the buffer or -1 if there is not
1282 enough space.
1283
1284 \wxheading{See also}
1285
1286 \helpref{wxVsnprintf}{wxvsnprintf}, \helpref{wxString::Printf}{wxstringprintf}
1287
1288 \membersection{wxT}\label{wxt}
1289
1290 \func{wxChar}{wxT}{\param{char }{ch}}
1291
1292 \func{const wxChar *}{wxT}{\param{const char *}{s}}
1293
1294 wxT() is a macro which can be used with character and string literals (in other
1295 words, {\tt 'x'} or {\tt "foo"}) to automatically convert them to Unicode in
1296 Unicode build configuration. Please see the
1297 \helpref{Unicode overview}{unicode} for more information.
1298
1299 This macro is simply returns the value passed to it without changes in ASCII
1300 build. In fact, its definition is:
1301 \begin{verbatim}
1302 #ifdef UNICODE
1303 #define wxT(x) L ## x
1304 #else // !Unicode
1305 #define wxT(x) x
1306 #endif
1307 \end{verbatim}
1308
1309 \membersection{wxTRANSLATE}\label{wxtranslate}
1310
1311 \func{const wxChar *}{wxTRANSLATE}{\param{const char *}{s}}
1312
1313 This macro doesn't do anything in the program code -- it simply expands to the
1314 value of its argument (expand in Unicode build where it is equivalent to
1315 \helpref{wxT}{wxt} which makes it unnecessary to use both wxTRANSLATE and wxT
1316 with the same string which would be really unreadable).
1317
1318 However it does have a purpose and it is to mark the literal strings for the
1319 extraction into the message catalog created by {\tt xgettext} program. Usually
1320 this is achieved using \helpref{\_()}{underscore} but that macro not only marks
1321 the string for extraction but also expands into
1322 \helpref{wxGetTranslation}{wxgettranslation} function call which means that it
1323 cannot be used in some situations, notably for the static arrays
1324 initialization.
1325
1326 Here is an example which should make it more clear: suppose that you have a
1327 static array of strings containing the weekday names and which have to be
1328 translated (note that it is a bad example, really, as
1329 \helpref{wxDateTime}{wxdatetime} already can be used to get the localized week
1330 day names already). If you write
1331 \begin{verbatim}
1332 static const wxChar * const weekdays[] = { _("Mon"), ..., _("Sun") };
1333 ...
1334 // use weekdays[n] as usual
1335 \end{verbatim}
1336 the code wouldn't compile because the function calls are forbidden in the array
1337 initializer. So instead you should do
1338 \begin{verbatim}
1339 static const wxChar * const weekdays[] = { wxTRANSLATE("Mon"), ..., wxTRANSLATE("Sun") };
1340 ...
1341 // use wxGetTranslation(weekdays[n])
1342 \end{verbatim}
1343 here.
1344
1345 Note that although the code {\bf would} compile if you simply omit
1346 wxTRANSLATE() in the above, it wouldn't work as expected because there would be
1347 no translations for the weekday names in the program message catalog and
1348 wxGetTranslation wouldn't find them.
1349
1350
1351 \membersection{::wxToLower}\label{wxtolower}
1352
1353 \func{char}{wxToLower}{\param{char }{ch}}
1354
1355 Converts the character to lower case. This is implemented as a macro for efficiency.
1356
1357 \wxheading{Include files}
1358
1359 <wx/utils.h>
1360
1361 \membersection{::wxToUpper}\label{wxtoupper}
1362
1363 \func{char}{wxToUpper}{\param{char }{ch}}
1364
1365 Converts the character to upper case. This is implemented as a macro for efficiency.
1366
1367 \wxheading{Include files}
1368
1369 <wx/utils.h>
1370
1371 \membersection{::wxVsnprintf}\label{wxvsnprintf}
1372
1373 \func{int}{wxVsnprintf}{\param{wxChar *}{buf}, \param{size\_t }{len}, \param{const wxChar *}{format}, \param{va\_list }{argPtr}}
1374
1375 The same as \helpref{wxSnprintf}{wxsnprintf} but takes a {\tt va\_list }
1376 argument instead of arbitrary number of parameters.
1377
1378 \wxheading{See also}
1379
1380 \helpref{wxSnprintf}{wxsnprintf}, \helpref{wxString::PrintfV}{wxstringprintfv}
1381
1382
1383 \membersection{\_}\label{underscore}
1384
1385 \func{const wxChar *}{\_}{\param{const char *}{s}}
1386
1387 This macro expands into a call to \helpref{wxGetTranslation}{wxgettranslation}
1388 function, so it marks the message for the extraction by {\tt xgettext} just as
1389 \helpref{wxTRANSLATE}{wxtranslate} does, but also returns the translation of
1390 the string for the current locale during execution.
1391
1392 Don't confuse this macro with \helpref{\_T()}{underscoret}!
1393
1394
1395 \membersection{\_T}\label{underscoret}
1396
1397 \func{wxChar}{\_T}{\param{char }{ch}}
1398
1399 \func{const wxChar *}{\_T}{\param{const wxChar }{ch}}
1400
1401 This macro is exactly the same as \helpref{wxT}{wxt} and is defined in
1402 wxWindows simply because it may be more intuitive for Windows programmers as
1403 the standard Win32 headers also define it (as well as yet another name for the
1404 same macro which is {\tt \_TEXT()}).
1405
1406 Don't confuse this macro with \helpref{\_()}{underscore}!
1407
1408 \membersection{\_}\label{underscore}
1409
1410 \section{Dialog functions}\label{dialogfunctions}
1411
1412 Below are a number of convenience functions for getting input from the
1413 user or displaying messages. Note that in these functions the last three
1414 parameters are optional. However, it is recommended to pass a parent frame
1415 parameter, or (in MS Windows or Motif) the wrong window frame may be brought to
1416 the front when the dialog box is popped up.
1417
1418 \membersection{::wxBeginBusyCursor}\label{wxbeginbusycursor}
1419
1420 \func{void}{wxBeginBusyCursor}{\param{wxCursor *}{cursor = wxHOURGLASS\_CURSOR}}
1421
1422 Changes the cursor to the given cursor for all windows in the application.
1423 Use \helpref{wxEndBusyCursor}{wxendbusycursor} to revert the cursor back
1424 to its previous state. These two calls can be nested, and a counter
1425 ensures that only the outer calls take effect.
1426
1427 See also \helpref{wxIsBusy}{wxisbusy}, \helpref{wxBusyCursor}{wxbusycursor}.
1428
1429 \wxheading{Include files}
1430
1431 <wx/utils.h>
1432
1433 \membersection{::wxBell}\label{wxbell}
1434
1435 \func{void}{wxBell}{\void}
1436
1437 Ring the system bell.
1438
1439 \wxheading{Include files}
1440
1441 <wx/utils.h>
1442
1443 \membersection{::wxCreateFileTipProvider}\label{wxcreatefiletipprovider}
1444
1445 \func{wxTipProvider *}{wxCreateFileTipProvider}{\param{const wxString\& }{filename},
1446 \param{size\_t }{currentTip}}
1447
1448 This function creates a \helpref{wxTipProvider}{wxtipprovider} which may be
1449 used with \helpref{wxShowTip}{wxshowtip}.
1450
1451 \docparam{filename}{The name of the file containing the tips, one per line}
1452 \docparam{currentTip}{The index of the first tip to show - normally this index
1453 is remembered between the 2 program runs.}
1454
1455 \wxheading{See also}
1456
1457 \helpref{Tips overview}{tipsoverview}
1458
1459 \wxheading{Include files}
1460
1461 <wx/tipdlg.h>
1462
1463 \membersection{::wxDirSelector}\label{wxdirselector}
1464
1465 \func{wxString}{wxDirSelector}{\param{const wxString\& }{message = wxDirSelectorPromptStr},\\
1466 \param{const wxString\& }{default\_path = ""},\\
1467 \param{long }{style = 0}, \param{const wxPoint\& }{pos = wxDefaultPosition},\\
1468 \param{wxWindow *}{parent = NULL}}
1469
1470 Pops up a directory selector dialog. The arguments have the same meaning as
1471 those of wxDirDialog::wxDirDialog(). The message is displayed at the top,
1472 and the default\_path, if specified, is set as the initial selection.
1473
1474 The application must check for an empty return value (if the user pressed
1475 Cancel). For example:
1476
1477 \begin{verbatim}
1478 const wxString& dir = wxDirSelector("Choose a folder");
1479 if ( !dir.empty() )
1480 {
1481 ...
1482 }
1483 \end{verbatim}
1484
1485 \wxheading{Include files}
1486
1487 <wx/dirdlg.h>
1488
1489 \membersection{::wxFileSelector}\label{wxfileselector}
1490
1491 \func{wxString}{wxFileSelector}{\param{const wxString\& }{message}, \param{const wxString\& }{default\_path = ""},\\
1492 \param{const wxString\& }{default\_filename = ""}, \param{const wxString\& }{default\_extension = ""},\\
1493 \param{const wxString\& }{wildcard = ``*.*''}, \param{int }{flags = 0}, \param{wxWindow *}{parent = ""},\\
1494 \param{int}{ x = -1}, \param{int}{ y = -1}}
1495
1496 Pops up a file selector box. In Windows, this is the common file selector
1497 dialog. In X, this is a file selector box with the same functionality.
1498 The path and filename are distinct elements of a full file pathname.
1499 If path is empty, the current directory will be used. If filename is empty,
1500 no default filename will be supplied. The wildcard determines what files
1501 are displayed in the file selector, and file extension supplies a type
1502 extension for the required filename. Flags may be a combination of wxOPEN,
1503 wxSAVE, wxOVERWRITE\_PROMPT, wxHIDE\_READONLY, wxFILE\_MUST\_EXIST, wxMULTIPLE or 0.
1504
1505 Both the Unix and Windows versions implement a wildcard filter. Typing a
1506 filename containing wildcards (*, ?) in the filename text item, and
1507 clicking on Ok, will result in only those files matching the pattern being
1508 displayed.
1509
1510 The wildcard may be a specification for multiple types of file
1511 with a description for each, such as:
1512
1513 \begin{verbatim}
1514 "BMP files (*.bmp)|*.bmp|GIF files (*.gif)|*.gif"
1515 \end{verbatim}
1516
1517 The application must check for an empty return value (the user pressed
1518 Cancel). For example:
1519
1520 \begin{verbatim}
1521 wxString filename = wxFileSelector("Choose a file to open");
1522 if ( !filename.empty() )
1523 {
1524 // work with the file
1525 ...
1526 }
1527 //else: cancelled by user
1528 \end{verbatim}
1529
1530 \wxheading{Include files}
1531
1532 <wx/filedlg.h>
1533
1534 \membersection{::wxEndBusyCursor}\label{wxendbusycursor}
1535
1536 \func{void}{wxEndBusyCursor}{\void}
1537
1538 Changes the cursor back to the original cursor, for all windows in the application.
1539 Use with \helpref{wxBeginBusyCursor}{wxbeginbusycursor}.
1540
1541 See also \helpref{wxIsBusy}{wxisbusy}, \helpref{wxBusyCursor}{wxbusycursor}.
1542
1543 \wxheading{Include files}
1544
1545 <wx/utils.h>
1546
1547 \membersection{::wxGetColourFromUser}\label{wxgetcolourfromuser}
1548
1549 \func{wxColour}{wxGetColourFromUser}{\param{wxWindow *}{parent}, \param{const wxColour\& }{colInit}}
1550
1551 Shows the colour selection dialog and returns the colour selected by user or
1552 invalid colour (use \helpref{wxColour::Ok}{wxcolourok} to test whether a colour
1553 is valid) if the dialog was cancelled.
1554
1555 \wxheading{Parameters}
1556
1557 \docparam{parent}{The parent window for the colour selection dialog}
1558
1559 \docparam{colInit}{If given, this will be the colour initially selected in the dialog.}
1560
1561 \wxheading{Include files}
1562
1563 <wx/colordlg.h>
1564
1565 \membersection{::wxGetFontFromUser}\label{wxgetfontfromuser}
1566
1567 \func{wxFont}{wxGetFontFromUser}{\param{wxWindow *}{parent}, \param{const wxFont\& }{fontInit}}
1568
1569 Shows the font selection dialog and returns the font selected by user or
1570 invalid font (use \helpref{wxFont::Ok}{wxfontok} to test whether a font
1571 is valid) if the dialog was cancelled.
1572
1573 \wxheading{Parameters}
1574
1575 \docparam{parent}{The parent window for the font selection dialog}
1576
1577 \docparam{fontInit}{If given, this will be the font initially selected in the dialog.}
1578
1579 \wxheading{Include files}
1580
1581 <wx/fontdlg.h>
1582
1583
1584 \membersection{::wxGetMultipleChoices}\label{wxgetmultiplechoices}
1585
1586 \func{size\_t}{wxGetMultipleChoices}{\\
1587 \param{wxArrayInt\& }{selections},\\
1588 \param{const wxString\& }{message},\\
1589 \param{const wxString\& }{caption},\\
1590 \param{const wxArrayString\& }{aChoices},\\
1591 \param{wxWindow *}{parent = NULL},\\
1592 \param{int}{ x = -1}, \param{int}{ y = -1},\\
1593 \param{bool}{ centre = true},\\
1594 \param{int }{width=150}, \param{int }{height=200}}
1595
1596 \func{size\_t}{wxGetMultipleChoices}{\\
1597 \param{wxArrayInt\& }{selections},\\
1598 \param{const wxString\& }{message},\\
1599 \param{const wxString\& }{caption},\\
1600 \param{int}{ n}, \param{const wxString\& }{choices[]},\\
1601 \param{wxWindow *}{parent = NULL},\\
1602 \param{int}{ x = -1}, \param{int}{ y = -1},\\
1603 \param{bool}{ centre = true},\\
1604 \param{int }{width=150}, \param{int }{height=200}}
1605
1606 Pops up a dialog box containing a message, OK/Cancel buttons and a
1607 multiple-selection listbox. The user may choose an arbitrary (including 0)
1608 number of items in the listbox whose indices will be returned in
1609 {\it selection} array. The initial contents of this array will be used to
1610 select the items when the dialog is shown.
1611
1612 You may pass the list of strings to choose from either using {\it choices}
1613 which is an array of {\it n} strings for the listbox or by using a single
1614 {\it aChoices} parameter of type \helpref{wxArrayString}{wxarraystring}.
1615
1616 If {\it centre} is true, the message text (which may include new line
1617 characters) is centred; if false, the message is left-justified.
1618
1619 \wxheading{Include files}
1620
1621 <wx/choicdlg.h>
1622
1623 \perlnote{In wxPerl there is just an array reference in place of {\tt n}
1624 and {\tt choices}, and no {\tt selections} parameter; the function
1625 returns an array containing the user selections.}
1626
1627 \membersection{::wxGetNumberFromUser}\label{wxgetnumberfromuser}
1628
1629 \func{long}{wxGetNumberFromUser}{
1630 \param{const wxString\& }{message},
1631 \param{const wxString\& }{prompt},
1632 \param{const wxString\& }{caption},
1633 \param{long }{value},
1634 \param{long }{min = 0},
1635 \param{long }{max = 100},
1636 \param{wxWindow *}{parent = NULL},
1637 \param{const wxPoint\& }{pos = wxDefaultPosition}}
1638
1639 Shows a dialog asking the user for numeric input. The dialogs title is set to
1640 {\it caption}, it contains a (possibly) multiline {\it message} above the
1641 single line {\it prompt} and the zone for entering the number.
1642
1643 The number entered must be in the range {\it min}..{\it max} (both of which
1644 should be positive) and {\it value} is the initial value of it. If the user
1645 enters an invalid value or cancels the dialog, the function will return -1.
1646
1647 Dialog is centered on its {\it parent} unless an explicit position is given in
1648 {\it pos}.
1649
1650 \wxheading{Include files}
1651
1652 <wx/textdlg.h>
1653
1654 \membersection{::wxGetPasswordFromUser}\label{wxgetpasswordfromuser}
1655
1656 \func{wxString}{wxGetTextFromUser}{\param{const wxString\& }{message}, \param{const wxString\& }{caption = ``Input text"},\\
1657 \param{const wxString\& }{default\_value = ``"}, \param{wxWindow *}{parent = NULL}}
1658
1659 Similar to \helpref{wxGetTextFromUser}{wxgettextfromuser} but the text entered
1660 in the dialog is not shown on screen but replaced with stars. This is intended
1661 to be used for entering passwords as the function name implies.
1662
1663 \wxheading{Include files}
1664
1665 <wx/textdlg.h>
1666
1667 \membersection{::wxGetTextFromUser}\label{wxgettextfromuser}
1668
1669 \func{wxString}{wxGetTextFromUser}{\param{const wxString\& }{message}, \param{const wxString\& }{caption = ``Input text"},\\
1670 \param{const wxString\& }{default\_value = ``"}, \param{wxWindow *}{parent = NULL},\\
1671 \param{int}{ x = -1}, \param{int}{ y = -1}, \param{bool}{ centre = true}}
1672
1673 Pop up a dialog box with title set to {\it caption}, {\it message}, and a
1674 \rtfsp{\it default\_value}. The user may type in text and press OK to return this text,
1675 or press Cancel to return the empty string.
1676
1677 If {\it centre} is true, the message text (which may include new line characters)
1678 is centred; if false, the message is left-justified.
1679
1680 \wxheading{Include files}
1681
1682 <wx/textdlg.h>
1683
1684 \membersection{::wxGetMultipleChoice}\label{wxgetmultiplechoice}
1685
1686 \func{int}{wxGetMultipleChoice}{\param{const wxString\& }{message}, \param{const wxString\& }{caption}, \param{int}{ n}, \param{const wxString\& }{choices[]},\\
1687 \param{int }{nsel}, \param{int *}{selection},
1688 \param{wxWindow *}{parent = NULL}, \param{int}{ x = -1}, \param{int}{ y = -1},\\
1689 \param{bool}{ centre = true}, \param{int }{width=150}, \param{int }{height=200}}
1690
1691 Pops up a dialog box containing a message, OK/Cancel buttons and a multiple-selection
1692 listbox. The user may choose one or more item(s) and press OK or Cancel.
1693
1694 The number of initially selected choices, and array of the selected indices,
1695 are passed in; this array will contain the user selections on exit, with
1696 the function returning the number of selections. {\it selection} must be
1697 as big as the number of choices, in case all are selected.
1698
1699 If Cancel is pressed, -1 is returned.
1700
1701 {\it choices} is an array of {\it n} strings for the listbox.
1702
1703 If {\it centre} is true, the message text (which may include new line characters)
1704 is centred; if false, the message is left-justified.
1705
1706 \wxheading{Include files}
1707
1708 <wx/choicdlg.h>
1709
1710 \membersection{::wxGetSingleChoice}\label{wxgetsinglechoice}
1711
1712 \func{wxString}{wxGetSingleChoice}{\param{const wxString\& }{message},\\
1713 \param{const wxString\& }{caption},\\
1714 \param{const wxArrayString\& }{aChoices},\\
1715 \param{wxWindow *}{parent = NULL},\\
1716 \param{int}{ x = -1}, \param{int}{ y = -1},\\
1717 \param{bool}{ centre = true},\\
1718 \param{int }{width=150}, \param{int }{height=200}}
1719
1720 \func{wxString}{wxGetSingleChoice}{\param{const wxString\& }{message},\\
1721 \param{const wxString\& }{caption},\\
1722 \param{int}{ n}, \param{const wxString\& }{choices[]},\\
1723 \param{wxWindow *}{parent = NULL},\\
1724 \param{int}{ x = -1}, \param{int}{ y = -1},\\
1725 \param{bool}{ centre = true},\\
1726 \param{int }{width=150}, \param{int }{height=200}}
1727
1728 Pops up a dialog box containing a message, OK/Cancel buttons and a
1729 single-selection listbox. The user may choose an item and press OK to return a
1730 string or Cancel to return the empty string. Use
1731 \helpref{wxGetSingleChoiceIndex}{wxgetsinglechoiceindex} if empty string is a
1732 valid choice and if you want to be able to detect pressing Cancel reliably.
1733
1734 You may pass the list of strings to choose from either using {\it choices}
1735 which is an array of {\it n} strings for the listbox or by using a single
1736 {\it aChoices} parameter of type \helpref{wxArrayString}{wxarraystring}.
1737
1738 If {\it centre} is true, the message text (which may include new line
1739 characters) is centred; if false, the message is left-justified.
1740
1741 \wxheading{Include files}
1742
1743 <wx/choicdlg.h>
1744
1745 \perlnote{In wxPerl there is just an array reference in place of {\tt n}
1746 and {\tt choices}.}
1747
1748 \membersection{::wxGetSingleChoiceIndex}\label{wxgetsinglechoiceindex}
1749
1750 \func{int}{wxGetSingleChoiceIndex}{\param{const wxString\& }{message},\\
1751 \param{const wxString\& }{caption},\\
1752 \param{const wxArrayString\& }{aChoices},\\
1753 \param{wxWindow *}{parent = NULL}, \param{int}{ x = -1}, \param{int}{ y = -1},\\
1754 \param{bool}{ centre = true}, \param{int }{width=150}, \param{int }{height=200}}
1755
1756 \func{int}{wxGetSingleChoiceIndex}{\param{const wxString\& }{message},\\
1757 \param{const wxString\& }{caption},\\
1758 \param{int}{ n}, \param{const wxString\& }{choices[]},\\
1759 \param{wxWindow *}{parent = NULL}, \param{int}{ x = -1}, \param{int}{ y = -1},\\
1760 \param{bool}{ centre = true}, \param{int }{width=150}, \param{int }{height=200}}
1761
1762 As {\bf wxGetSingleChoice} but returns the index representing the selected
1763 string. If the user pressed cancel, -1 is returned.
1764
1765 \wxheading{Include files}
1766
1767 <wx/choicdlg.h>
1768
1769 \perlnote{In wxPerl there is just an array reference in place of {\tt n}
1770 and {\tt choices}.}
1771
1772 \membersection{::wxGetSingleChoiceData}\label{wxgetsinglechoicedata}
1773
1774 \func{wxString}{wxGetSingleChoiceData}{\param{const wxString\& }{message},\\
1775 \param{const wxString\& }{caption},\\
1776 \param{const wxArrayString\& }{aChoices},\\
1777 \param{const wxString\& }{client\_data[]},\\
1778 \param{wxWindow *}{parent = NULL},\\
1779 \param{int}{ x = -1}, \param{int}{ y = -1},\\
1780 \param{bool}{ centre = true}, \param{int }{width=150}, \param{int }{height=200}}
1781
1782 \func{wxString}{wxGetSingleChoiceData}{\param{const wxString\& }{message},\\
1783 \param{const wxString\& }{caption},\\
1784 \param{int}{ n}, \param{const wxString\& }{choices[]},\\
1785 \param{const wxString\& }{client\_data[]},\\
1786 \param{wxWindow *}{parent = NULL},\\
1787 \param{int}{ x = -1}, \param{int}{ y = -1},\\
1788 \param{bool}{ centre = true}, \param{int }{width=150}, \param{int }{height=200}}
1789
1790 As {\bf wxGetSingleChoice} but takes an array of client data pointers
1791 corresponding to the strings, and returns one of these pointers or NULL if
1792 Cancel was pressed. The {\it client\_data} array must have the same number of
1793 elements as {\it choices} or {\it aChoices}!
1794
1795 \wxheading{Include files}
1796
1797 <wx/choicdlg.h>
1798
1799 \perlnote{In wxPerl there is just an array reference in place of {\tt n}
1800 and {\tt choices}, and the client data array must have the
1801 same length as the choices array.}
1802
1803 \membersection{::wxIsBusy}\label{wxisbusy}
1804
1805 \func{bool}{wxIsBusy}{\void}
1806
1807 Returns true if between two \helpref{wxBeginBusyCursor}{wxbeginbusycursor} and\rtfsp
1808 \helpref{wxEndBusyCursor}{wxendbusycursor} calls.
1809
1810 See also \helpref{wxBusyCursor}{wxbusycursor}.
1811
1812 \wxheading{Include files}
1813
1814 <wx/utils.h>
1815
1816 \membersection{::wxMessageBox}\label{wxmessagebox}
1817
1818 \func{int}{wxMessageBox}{\param{const wxString\& }{message}, \param{const wxString\& }{caption = ``Message"}, \param{int}{ style = wxOK \pipe wxCENTRE},\\
1819 \param{wxWindow *}{parent = NULL}, \param{int}{ x = -1}, \param{int}{ y = -1}}
1820
1821 General purpose message dialog. {\it style} may be a bit list of the
1822 following identifiers:
1823
1824 \begin{twocollist}\itemsep=0pt
1825 \twocolitem{wxYES\_NO}{Puts Yes and No buttons on the message box. May be combined with
1826 wxCANCEL.}
1827 \twocolitem{wxCANCEL}{Puts a Cancel button on the message box. May be combined with
1828 wxYES\_NO or wxOK.}
1829 \twocolitem{wxOK}{Puts an Ok button on the message box. May be combined with wxCANCEL.}
1830 \twocolitem{wxCENTRE}{Centres the text.}
1831 \twocolitem{wxICON\_EXCLAMATION}{Displays an exclamation mark symbol.}
1832 \twocolitem{wxICON\_HAND}{Displays an error symbol.}
1833 \twocolitem{wxICON\_ERROR}{Displays an error symbol - the same as wxICON\_HAND.}
1834 \twocolitem{wxICON\_QUESTION}{Displays a question mark symbol.}
1835 \twocolitem{wxICON\_INFORMATION}{Displays an information symbol.}
1836 \end{twocollist}
1837
1838 The return value is one of: wxYES, wxNO, wxCANCEL, wxOK.
1839
1840 For example:
1841
1842 \begin{verbatim}
1843 ...
1844 int answer = wxMessageBox("Quit program?", "Confirm",
1845 wxYES_NO | wxCANCEL, main_frame);
1846 if (answer == wxYES)
1847 delete main_frame;
1848 ...
1849 \end{verbatim}
1850
1851 {\it message} may contain newline characters, in which case the
1852 message will be split into separate lines, to cater for large messages.
1853
1854 Under Windows, the native MessageBox function is used unless wxCENTRE
1855 is specified in the style, in which case a generic function is used.
1856 This is because the native MessageBox function cannot centre text.
1857 The symbols are not shown when the generic function is used.
1858
1859 \wxheading{Include files}
1860
1861 <wx/msgdlg.h>
1862
1863 \membersection{::wxShowTip}\label{wxshowtip}
1864
1865 \func{bool}{wxShowTip}{\param{wxWindow *}{parent},
1866 \param{wxTipProvider *}{tipProvider},
1867 \param{bool }{showAtStartup = true}}
1868
1869 This function shows a "startup tip" to the user. The return value is the
1870 state of the ``Show tips at startup'' checkbox.
1871
1872 \docparam{parent}{The parent window for the modal dialog}
1873
1874 \docparam{tipProvider}{An object which is used to get the text of the tips.
1875 It may be created with the \helpref{wxCreateFileTipProvider}{wxcreatefiletipprovider} function.}
1876
1877 \docparam{showAtStartup}{Should be true if startup tips are shown, false
1878 otherwise. This is used as the initial value for "Show tips at startup"
1879 checkbox which is shown in the tips dialog.}
1880
1881 \wxheading{See also}
1882
1883 \helpref{Tips overview}{tipsoverview}
1884
1885 \wxheading{Include files}
1886
1887 <wx/tipdlg.h>
1888
1889 \section{GDI functions}\label{gdifunctions}
1890
1891 The following are relevant to the GDI (Graphics Device Interface).
1892
1893 \wxheading{Include files}
1894
1895 <wx/gdicmn.h>
1896
1897 \membersection{wxBITMAP}\label{wxbitmapmacro}
1898
1899 \func{}{wxBITMAP}{bitmapName}
1900
1901 This macro loads a bitmap from either application resources (on the platforms
1902 for which they exist, i.e. Windows and OS2) or from an XPM file. It allows to
1903 avoid using {\tt \#ifdef}s when creating bitmaps.
1904
1905 \wxheading{See also}
1906
1907 \helpref{Bitmaps and icons overview}{wxbitmapoverview},
1908 \helpref{wxICON}{wxiconmacro}
1909
1910 \wxheading{Include files}
1911
1912 <wx/gdicmn.h>
1913
1914 \membersection{::wxClientDisplayRect}\label{wxclientdisplayrect}
1915
1916 \func{void}{wxClientDisplayRect}{\param{int *}{x}, \param{int *}{y},
1917 \param{int *}{width}, \param{int *}{height}}
1918
1919 \func{wxRect}{wxGetClientDisplayRect}{\void}
1920
1921 Returns the dimensions of the work area on the display. On Windows
1922 this means the area not covered by the taskbar, etc. Other platforms
1923 are currently defaulting to the whole display until a way is found to
1924 provide this info for all window managers, etc.
1925
1926 \membersection{::wxColourDisplay}\label{wxcolourdisplay}
1927
1928 \func{bool}{wxColourDisplay}{\void}
1929
1930 Returns true if the display is colour, false otherwise.
1931
1932 \membersection{::wxDisplayDepth}\label{wxdisplaydepth}
1933
1934 \func{int}{wxDisplayDepth}{\void}
1935
1936 Returns the depth of the display (a value of 1 denotes a monochrome display).
1937
1938 \membersection{::wxDisplaySize}\label{wxdisplaysize}
1939
1940 \func{void}{wxDisplaySize}{\param{int *}{width}, \param{int *}{height}}
1941
1942 \func{wxSize}{wxGetDisplaySize}{\void}
1943
1944 Returns the display size in pixels.
1945
1946 \membersection{::wxDisplaySizeMM}\label{wxdisplaysizemm}
1947
1948 \func{void}{wxDisplaySizeMM}{\param{int *}{width}, \param{int *}{height}}
1949
1950 \func{wxSize}{wxGetDisplaySizeMM}{\void}
1951
1952 Returns the display size in millimeters.
1953
1954 \membersection{::wxDROP\_ICON}\label{wxdropicon}
1955
1956 \func{wxIconOrCursor}{wxDROP\_ICON}{\param{const char *}{name}}
1957
1958 This macro creates either a cursor (MSW) or an icon (elsewhere) with the given
1959 name. Under MSW, the cursor is loaded from the resource file and the icon is
1960 loaded from XPM file under other platforms.
1961
1962 This macro should be used with
1963 \helpref{wxDropSource constructor}{wxdropsourcewxdropsource}.
1964
1965 \wxheading{Include files}
1966
1967 <wx/dnd.h>
1968
1969 \membersection{wxICON}\label{wxiconmacro}
1970
1971 \func{}{wxICON}{iconName}
1972
1973 This macro loads an icon from either application resources (on the platforms
1974 for which they exist, i.e. Windows and OS2) or from an XPM file. It allows to
1975 avoid using {\tt \#ifdef}s when creating icons.
1976
1977 \wxheading{See also}
1978
1979 \helpref{Bitmaps and icons overview}{wxbitmapoverview},
1980 \helpref{wxBITMAP}{wxbitmapmacro}
1981
1982 \wxheading{Include files}
1983
1984 <wx/gdicmn.h>
1985
1986 \membersection{::wxMakeMetafilePlaceable}\label{wxmakemetafileplaceable}
1987
1988 \func{bool}{wxMakeMetafilePlaceable}{\param{const wxString\& }{filename}, \param{int }{minX}, \param{int }{minY},
1989 \param{int }{maxX}, \param{int }{maxY}, \param{float }{scale=1.0}}
1990
1991 Given a filename for an existing, valid metafile (as constructed using \helpref{wxMetafileDC}{wxmetafiledc})
1992 makes it into a placeable metafile by prepending a header containing the given
1993 bounding box. The bounding box may be obtained from a device context after drawing
1994 into it, using the functions wxDC::MinX, wxDC::MinY, wxDC::MaxX and wxDC::MaxY.
1995
1996 In addition to adding the placeable metafile header, this function adds
1997 the equivalent of the following code to the start of the metafile data:
1998
1999 \begin{verbatim}
2000 SetMapMode(dc, MM_ANISOTROPIC);
2001 SetWindowOrg(dc, minX, minY);
2002 SetWindowExt(dc, maxX - minX, maxY - minY);
2003 \end{verbatim}
2004
2005 This simulates the wxMM\_TEXT mapping mode, which wxWindows assumes.
2006
2007 Placeable metafiles may be imported by many Windows applications, and can be
2008 used in RTF (Rich Text Format) files.
2009
2010 {\it scale} allows the specification of scale for the metafile.
2011
2012 This function is only available under Windows.
2013
2014 \membersection{::wxSetCursor}\label{wxsetcursor}
2015
2016 \func{void}{wxSetCursor}{\param{wxCursor *}{cursor}}
2017
2018 Globally sets the cursor; only has an effect in Windows and GTK.
2019 See also \helpref{wxCursor}{wxcursor}, \helpref{wxWindow::SetCursor}{wxwindowsetcursor}.
2020
2021 \section{Printer settings}\label{printersettings}
2022
2023 {\bf NB:} These routines are obsolete and should no longer be used!
2024
2025 The following functions are used to control PostScript printing. Under
2026 Windows, PostScript output can only be sent to a file.
2027
2028 \wxheading{Include files}
2029
2030 <wx/dcps.h>
2031
2032 \membersection{::wxGetPrinterCommand}\label{wxgetprintercommand}
2033
2034 \func{wxString}{wxGetPrinterCommand}{\void}
2035
2036 Gets the printer command used to print a file. The default is {\tt lpr}.
2037
2038 \membersection{::wxGetPrinterFile}\label{wxgetprinterfile}
2039
2040 \func{wxString}{wxGetPrinterFile}{\void}
2041
2042 Gets the PostScript output filename.
2043
2044 \membersection{::wxGetPrinterMode}\label{wxgetprintermode}
2045
2046 \func{int}{wxGetPrinterMode}{\void}
2047
2048 Gets the printing mode controlling where output is sent (PS\_PREVIEW, PS\_FILE or PS\_PRINTER).
2049 The default is PS\_PREVIEW.
2050
2051 \membersection{::wxGetPrinterOptions}\label{wxgetprinteroptions}
2052
2053 \func{wxString}{wxGetPrinterOptions}{\void}
2054
2055 Gets the additional options for the print command (e.g. specific printer). The default is nothing.
2056
2057 \membersection{::wxGetPrinterOrientation}\label{wxgetprinterorientation}
2058
2059 \func{int}{wxGetPrinterOrientation}{\void}
2060
2061 Gets the orientation (PS\_PORTRAIT or PS\_LANDSCAPE). The default is PS\_PORTRAIT.
2062
2063 \membersection{::wxGetPrinterPreviewCommand}\label{wxgetprinterpreviewcommand}
2064
2065 \func{wxString}{wxGetPrinterPreviewCommand}{\void}
2066
2067 Gets the command used to view a PostScript file. The default depends on the platform.
2068
2069 \membersection{::wxGetPrinterScaling}\label{wxgetprinterscaling}
2070
2071 \func{void}{wxGetPrinterScaling}{\param{float *}{x}, \param{float *}{y}}
2072
2073 Gets the scaling factor for PostScript output. The default is 1.0, 1.0.
2074
2075 \membersection{::wxGetPrinterTranslation}\label{wxgetprintertranslation}
2076
2077 \func{void}{wxGetPrinterTranslation}{\param{float *}{x}, \param{float *}{y}}
2078
2079 Gets the translation (from the top left corner) for PostScript output. The default is 0.0, 0.0.
2080
2081 \membersection{::wxSetPrinterCommand}\label{wxsetprintercommand}
2082
2083 \func{void}{wxSetPrinterCommand}{\param{const wxString\& }{command}}
2084
2085 Sets the printer command used to print a file. The default is {\tt lpr}.
2086
2087 \membersection{::wxSetPrinterFile}\label{wxsetprinterfile}
2088
2089 \func{void}{wxSetPrinterFile}{\param{const wxString\& }{filename}}
2090
2091 Sets the PostScript output filename.
2092
2093 \membersection{::wxSetPrinterMode}\label{wxsetprintermode}
2094
2095 \func{void}{wxSetPrinterMode}{\param{int }{mode}}
2096
2097 Sets the printing mode controlling where output is sent (PS\_PREVIEW, PS\_FILE or PS\_PRINTER).
2098 The default is PS\_PREVIEW.
2099
2100 \membersection{::wxSetPrinterOptions}\label{wxsetprinteroptions}
2101
2102 \func{void}{wxSetPrinterOptions}{\param{const wxString\& }{options}}
2103
2104 Sets the additional options for the print command (e.g. specific printer). The default is nothing.
2105
2106 \membersection{::wxSetPrinterOrientation}\label{wxsetprinterorientation}
2107
2108 \func{void}{wxSetPrinterOrientation}{\param{int}{ orientation}}
2109
2110 Sets the orientation (PS\_PORTRAIT or PS\_LANDSCAPE). The default is PS\_PORTRAIT.
2111
2112 \membersection{::wxSetPrinterPreviewCommand}\label{wxsetprinterpreviewcommand}
2113
2114 \func{void}{wxSetPrinterPreviewCommand}{\param{const wxString\& }{command}}
2115
2116 Sets the command used to view a PostScript file. The default depends on the platform.
2117
2118 \membersection{::wxSetPrinterScaling}\label{wxsetprinterscaling}
2119
2120 \func{void}{wxSetPrinterScaling}{\param{float }{x}, \param{float }{y}}
2121
2122 Sets the scaling factor for PostScript output. The default is 1.0, 1.0.
2123
2124 \membersection{::wxSetPrinterTranslation}\label{wxsetprintertranslation}
2125
2126 \func{void}{wxSetPrinterTranslation}{\param{float }{x}, \param{float }{y}}
2127
2128 Sets the translation (from the top left corner) for PostScript output. The default is 0.0, 0.0.
2129
2130 \section{Clipboard functions}\label{clipsboard}
2131
2132 These clipboard functions are implemented for Windows only. The use of these functions
2133 is deprecated and the code is no longer maintained. Use the \helpref{wxClipboard}{wxclipboard}
2134 class instead.
2135
2136 \wxheading{Include files}
2137
2138 <wx/clipbrd.h>
2139
2140 \membersection{::wxClipboardOpen}\label{functionwxclipboardopen}
2141
2142 \func{bool}{wxClipboardOpen}{\void}
2143
2144 Returns true if this application has already opened the clipboard.
2145
2146 \membersection{::wxCloseClipboard}\label{wxcloseclipboard}
2147
2148 \func{bool}{wxCloseClipboard}{\void}
2149
2150 Closes the clipboard to allow other applications to use it.
2151
2152 \membersection{::wxEmptyClipboard}\label{wxemptyclipboard}
2153
2154 \func{bool}{wxEmptyClipboard}{\void}
2155
2156 Empties the clipboard.
2157
2158 \membersection{::wxEnumClipboardFormats}\label{wxenumclipboardformats}
2159
2160 \func{int}{wxEnumClipboardFormats}{\param{int}{dataFormat}}
2161
2162 Enumerates the formats found in a list of available formats that belong
2163 to the clipboard. Each call to this function specifies a known
2164 available format; the function returns the format that appears next in
2165 the list.
2166
2167 {\it dataFormat} specifies a known format. If this parameter is zero,
2168 the function returns the first format in the list.
2169
2170 The return value specifies the next known clipboard data format if the
2171 function is successful. It is zero if the {\it dataFormat} parameter specifies
2172 the last format in the list of available formats, or if the clipboard
2173 is not open.
2174
2175 Before it enumerates the formats function, an application must open the clipboard by using the
2176 wxOpenClipboard function.
2177
2178 \membersection{::wxGetClipboardData}\label{wxgetclipboarddata}
2179
2180 \func{wxObject *}{wxGetClipboardData}{\param{int}{dataFormat}}
2181
2182 Gets data from the clipboard.
2183
2184 {\it dataFormat} may be one of:
2185
2186 \begin{itemize}\itemsep=0pt
2187 \item wxCF\_TEXT or wxCF\_OEMTEXT: returns a pointer to new memory containing a null-terminated text string.
2188 \item wxCF\_BITMAP: returns a new wxBitmap.
2189 \end{itemize}
2190
2191 The clipboard must have previously been opened for this call to succeed.
2192
2193 \membersection{::wxGetClipboardFormatName}\label{wxgetclipboardformatname}
2194
2195 \func{bool}{wxGetClipboardFormatName}{\param{int}{dataFormat}, \param{const wxString\& }{formatName}, \param{int}{maxCount}}
2196
2197 Gets the name of a registered clipboard format, and puts it into the buffer {\it formatName} which is of maximum
2198 length {\it maxCount}. {\it dataFormat} must not specify a predefined clipboard format.
2199
2200 \membersection{::wxIsClipboardFormatAvailable}\label{wxisclipboardformatavailable}
2201
2202 \func{bool}{wxIsClipboardFormatAvailable}{\param{int}{dataFormat}}
2203
2204 Returns true if the given data format is available on the clipboard.
2205
2206 \membersection{::wxOpenClipboard}\label{wxopenclipboard}
2207
2208 \func{bool}{wxOpenClipboard}{\void}
2209
2210 Opens the clipboard for passing data to it or getting data from it.
2211
2212 \membersection{::wxRegisterClipboardFormat}\label{wxregisterclipboardformat}
2213
2214 \func{int}{wxRegisterClipboardFormat}{\param{const wxString\& }{formatName}}
2215
2216 Registers the clipboard data format name and returns an identifier.
2217
2218 \membersection{::wxSetClipboardData}\label{wxsetclipboarddata}
2219
2220 \func{bool}{wxSetClipboardData}{\param{int}{dataFormat}, \param{wxObject *}{data}, \param{int}{width}, \param{int}{height}}
2221
2222 Passes data to the clipboard.
2223
2224 {\it dataFormat} may be one of:
2225
2226 \begin{itemize}\itemsep=0pt
2227 \item wxCF\_TEXT or wxCF\_OEMTEXT: {\it data} is a null-terminated text string.
2228 \item wxCF\_BITMAP: {\it data} is a wxBitmap.
2229 \item wxCF\_DIB: {\it data} is a wxBitmap. The bitmap is converted to a DIB (device independent bitmap).
2230 \item wxCF\_METAFILE: {\it data} is a wxMetafile. {\it width} and {\it height} are used to give recommended dimensions.
2231 \end{itemize}
2232
2233 The clipboard must have previously been opened for this call to succeed.
2234
2235 \section{Miscellaneous functions}\label{miscellany}
2236
2237 \membersection{wxEXPLICIT}\label{wxexplicit}
2238
2239 {\tt wxEXPLICIT} is a macro which expands to the C++ {\tt explicit} keyword if
2240 the compiler supports it or nothing otherwise. Thus, it can be used even in the
2241 code which might have to be compiled with an old compiler without support for
2242 this language feature but still take advantage of it when it is available.
2243
2244 \membersection{wxLL}\label{wxll}
2245
2246 \func{wxLongLong\_t}{wxLL}{\param{}{number}}
2247
2248 This macro is defined for the platforms with a native 64 bit integer type and
2249 allows to define 64 bit compile time constants:
2250
2251 \begin{verbatim}
2252 #ifdef wxLongLong_t
2253 wxLongLong_t ll = wxLL(0x1234567890abcdef);
2254 #endif
2255 \end{verbatim}
2256
2257 \wxheading{Include files}
2258
2259 <wx/longlong.h>
2260
2261 \membersection{wxLongLongFmtSpec}\label{wxlonglongfmtspec}
2262
2263 This macro is defined to contain the {\tt printf()} format specifier using
2264 which 64 bit integer numbers (i.e. those of type {\tt wxLongLong\_t}) can be
2265 printed. Example of using it:
2266
2267 \begin{verbatim}
2268 #ifdef wxLongLong_t
2269 wxLongLong_t ll = wxLL(0x1234567890abcdef);
2270 printf("Long long = %" wxLongLongFmtSpec "x\n", ll);
2271 #endif
2272 \end{verbatim}
2273
2274 \wxheading{See also}
2275
2276 \helpref{wxLL}{wxll}
2277
2278 \wxheading{Include files}
2279
2280 <wx/longlong.h>
2281
2282 \membersection{::wxNewId}\label{wxnewid}
2283
2284 \func{long}{wxNewId}{\void}
2285
2286 Generates an integer identifier unique to this run of the program.
2287
2288 \wxheading{Include files}
2289
2290 <wx/utils.h>
2291
2292 \membersection{::wxRegisterId}\label{wxregisterid}
2293
2294 \func{void}{wxRegisterId}{\param{long}{ id}}
2295
2296 Ensures that ids subsequently generated by {\bf NewId} do not clash with
2297 the given {\bf id}.
2298
2299 \wxheading{Include files}
2300
2301 <wx/utils.h>
2302
2303 \membersection{::wxDDECleanUp}\label{wxddecleanup}
2304
2305 \func{void}{wxDDECleanUp}{\void}
2306
2307 Called when wxWindows exits, to clean up the DDE system. This no longer needs to be
2308 called by the application.
2309
2310 See also \helpref{wxDDEInitialize}{wxddeinitialize}.
2311
2312 \wxheading{Include files}
2313
2314 <wx/dde.h>
2315
2316 \membersection{::wxDDEInitialize}\label{wxddeinitialize}
2317
2318 \func{void}{wxDDEInitialize}{\void}
2319
2320 Initializes the DDE system. May be called multiple times without harm.
2321
2322 This no longer needs to be called by the application: it will be called
2323 by wxWindows if necessary.
2324
2325 See also \helpref{wxDDEServer}{wxddeserver}, \helpref{wxDDEClient}{wxddeclient}, \helpref{wxDDEConnection}{wxddeconnection},
2326 \helpref{wxDDECleanUp}{wxddecleanup}.
2327
2328 \wxheading{Include files}
2329
2330 <wx/dde.h>
2331
2332 \membersection{::wxEnableTopLevelWindows}\label{wxenabletoplevelwindows}
2333
2334 \func{void}{wxEnableTopLevelWindow}{\param{bool}{ enable = true}}
2335
2336 This function enables or disables all top level windows. It is used by
2337 \helpref{::wxSafeYield}{wxsafeyield}.
2338
2339 \wxheading{Include files}
2340
2341 <wx/utils.h>
2342
2343 \membersection{::wxFindMenuItemId}\label{wxfindmenuitemid}
2344
2345 \func{int}{wxFindMenuItemId}{\param{wxFrame *}{frame}, \param{const wxString\& }{menuString}, \param{const wxString\& }{itemString}}
2346
2347 Find a menu item identifier associated with the given frame's menu bar.
2348
2349 \wxheading{Include files}
2350
2351 <wx/utils.h>
2352
2353 \membersection{::wxFindWindowByLabel}\label{wxfindwindowbylabel}
2354
2355 \func{wxWindow *}{wxFindWindowByLabel}{\param{const wxString\& }{label}, \param{wxWindow *}{parent=NULL}}
2356
2357 {\bf NB:} This function is obsolete, please use
2358 \helpref{wxWindow::FindWindowByLabel}{wxwindowfindwindowbylabel} instead.
2359
2360 Find a window by its label. Depending on the type of window, the label may be a window title
2361 or panel item label. If {\it parent} is NULL, the search will start from all top-level
2362 frames and dialog boxes; if non-NULL, the search will be limited to the given window hierarchy.
2363 The search is recursive in both cases.
2364
2365 \wxheading{Include files}
2366
2367 <wx/utils.h>
2368
2369 \membersection{::wxFindWindowByName}\label{wxfindwindowbyname}
2370
2371 \func{wxWindow *}{wxFindWindowByName}{\param{const wxString\& }{name}, \param{wxWindow *}{parent=NULL}}
2372
2373 {\bf NB:} This function is obsolete, please use
2374 \helpref{wxWindow::FindWindowByName}{wxwindowfindwindowbyname} instead.
2375
2376 Find a window by its name (as given in a window constructor or {\bf Create} function call).
2377 If {\it parent} is NULL, the search will start from all top-level
2378 frames and dialog boxes; if non-NULL, the search will be limited to the given window hierarchy.
2379 The search is recursive in both cases.
2380
2381 If no such named window is found, {\bf wxFindWindowByLabel} is called.
2382
2383 \wxheading{Include files}
2384
2385 <wx/utils.h>
2386
2387 \membersection{::wxFindWindowAtPoint}\label{wxfindwindowatpoint}
2388
2389 \func{wxWindow *}{wxFindWindowAtPoint}{\param{const wxPoint\& }{pt}}
2390
2391 Find the deepest window at the given mouse position in screen coordinates,
2392 returning the window if found, or NULL if not.
2393
2394 \membersection{::wxFindWindowAtPointer}\label{wxfindwindowatpointer}
2395
2396 \func{wxWindow *}{wxFindWindowAtPointer}{\param{wxPoint\& }{pt}}
2397
2398 Find the deepest window at the mouse pointer position, returning the window
2399 and current pointer position in screen coordinates.
2400
2401 \membersection{::wxGetActiveWindow}\label{wxgetactivewindow}
2402
2403 \func{wxWindow *}{wxGetActiveWindow}{\void}
2404
2405 Gets the currently active window (Windows only).
2406
2407 \wxheading{Include files}
2408
2409 <wx/windows.h>
2410
2411 \membersection{::wxGetDisplayName}\label{wxgetdisplayname}
2412
2413 \func{wxString}{wxGetDisplayName}{\void}
2414
2415 Under X only, returns the current display name. See also \helpref{wxSetDisplayName}{wxsetdisplayname}.
2416
2417 \wxheading{Include files}
2418
2419 <wx/utils.h>
2420
2421 \membersection{::wxGetMousePosition}\label{wxgetmouseposition}
2422
2423 \func{wxPoint}{wxGetMousePosition}{\void}
2424
2425 Returns the mouse position in screen coordinates.
2426
2427 \wxheading{Include files}
2428
2429 <wx/utils.h>
2430
2431 \membersection{::wxGetResource}\label{wxgetresource}
2432
2433 \func{bool}{wxGetResource}{\param{const wxString\& }{section}, \param{const wxString\& }{entry},
2434 \param{const wxString\& *}{value}, \param{const wxString\& }{file = NULL}}
2435
2436 \func{bool}{wxGetResource}{\param{const wxString\& }{section}, \param{const wxString\& }{entry},
2437 \param{float *}{value}, \param{const wxString\& }{file = NULL}}
2438
2439 \func{bool}{wxGetResource}{\param{const wxString\& }{section}, \param{const wxString\& }{entry},
2440 \param{long *}{value}, \param{const wxString\& }{file = NULL}}
2441
2442 \func{bool}{wxGetResource}{\param{const wxString\& }{section}, \param{const wxString\& }{entry},
2443 \param{int *}{value}, \param{const wxString\& }{file = NULL}}
2444
2445 Gets a resource value from the resource database (for example, WIN.INI, or
2446 .Xdefaults). If {\it file} is NULL, WIN.INI or .Xdefaults is used,
2447 otherwise the specified file is used.
2448
2449 Under X, if an application class (wxApp::GetClassName) has been defined,
2450 it is appended to the string /usr/lib/X11/app-defaults/ to try to find
2451 an applications default file when merging all resource databases.
2452
2453 The reason for passing the result in an argument is that it
2454 can be convenient to define a default value, which gets overridden
2455 if the value exists in the resource file. It saves a separate
2456 test for that resource's existence, and it also allows
2457 the overloading of the function for different types.
2458
2459 See also \helpref{wxWriteResource}{wxwriteresource}, \helpref{wxConfigBase}{wxconfigbase}.
2460
2461 \wxheading{Include files}
2462
2463 <wx/utils.h>
2464
2465 \membersection{::wxGetTopLevelParent}\label{wxgettoplevelparent}
2466
2467 \func{wxWindow *}{wxGetTopLevelParent}{\param{wxWindow }{*win}}
2468
2469 Returns the first top level parent of the given window, or in other words, the
2470 frame or dialog containing it, or {\tt NULL}.
2471
2472 \wxheading{Include files}
2473
2474 <wx/window.h>
2475
2476 \membersection{::wxLoadUserResource}\label{wxloaduserresource}
2477
2478 \func{wxString}{wxLoadUserResource}{\param{const wxString\& }{resourceName}, \param{const wxString\& }{resourceType=``TEXT"}}
2479
2480 Loads a user-defined Windows resource as a string. If the resource is found, the function creates
2481 a new character array and copies the data into it. A pointer to this data is returned. If unsuccessful, NULL is returned.
2482
2483 The resource must be defined in the {\tt .rc} file using the following syntax:
2484
2485 \begin{verbatim}
2486 myResource TEXT file.ext
2487 \end{verbatim}
2488
2489 where {\tt file.ext} is a file that the resource compiler can find.
2490
2491 One use of this is to store {\tt .wxr} files instead of including the data in the C++ file; some compilers
2492 cannot cope with the long strings in a {\tt .wxr} file. The resource data can then be parsed
2493 using \helpref{wxResourceParseString}{wxresourceparsestring}.
2494
2495 This function is available under Windows only.
2496
2497 \wxheading{Include files}
2498
2499 <wx/utils.h>
2500
2501 \membersection{::wxPostDelete}\label{wxpostdelete}
2502
2503 \func{void}{wxPostDelete}{\param{wxObject *}{object}}
2504
2505 Tells the system to delete the specified object when
2506 all other events have been processed. In some environments, it is
2507 necessary to use this instead of deleting a frame directly with the
2508 delete operator, because some GUIs will still send events to a deleted window.
2509
2510 Now obsolete: use \helpref{wxWindow::Close}{wxwindowclose} instead.
2511
2512 \wxheading{Include files}
2513
2514 <wx/utils.h>
2515
2516 \membersection{::wxPostEvent}\label{wxpostevent}
2517
2518 \func{void}{wxPostEvent}{\param{wxEvtHandler *}{dest}, \param{wxEvent\& }{event}}
2519
2520 In a GUI application, this function posts {\it event} to the specified {\it dest}
2521 object using \helpref{wxEvtHandler::AddPendingEvent}{wxevthandleraddpendingevent}.
2522 Otherwise, it dispatches {\it event} immediately using
2523 \helpref{wxEvtHandler::ProcessEvent}{wxevthandlerprocessevent}.
2524 See the respective documentation for details (and caveats).
2525
2526 \wxheading{Include files}
2527
2528 <wx/app.h>
2529
2530 \membersection{::wxSetDisplayName}\label{wxsetdisplayname}
2531
2532 \func{void}{wxSetDisplayName}{\param{const wxString\& }{displayName}}
2533
2534 Under X only, sets the current display name. This is the X host and display name such
2535 as ``colonsay:0.0", and the function indicates which display should be used for creating
2536 windows from this point on. Setting the display within an application allows multiple
2537 displays to be used.
2538
2539 See also \helpref{wxGetDisplayName}{wxgetdisplayname}.
2540
2541 \wxheading{Include files}
2542
2543 <wx/utils.h>
2544
2545 \membersection{::wxStripMenuCodes}\label{wxstripmenucodes}
2546
2547 \func{wxString}{wxStripMenuCodes}{\param{const wxString\& }{in}}
2548
2549 \func{void}{wxStripMenuCodes}{\param{char *}{in}, \param{char *}{out}}
2550
2551 {\bf NB:} This function is obsolete, please use
2552 \helpref{wxMenuItem::GetLabelFromText}{wxmenuitemgetlabelfromtext} instead.
2553
2554 Strips any menu codes from {\it in} and places the result
2555 in {\it out} (or returns the new string, in the first form).
2556
2557 Menu codes include \& (mark the next character with an underline
2558 as a keyboard shortkey in Windows and Motif) and $\backslash$t (tab in Windows).
2559
2560 \wxheading{Include files}
2561
2562 <wx/utils.h>
2563
2564 \membersection{::wxWriteResource}\label{wxwriteresource}
2565
2566 \func{bool}{wxWriteResource}{\param{const wxString\& }{section}, \param{const wxString\& }{entry},
2567 \param{const wxString\& }{value}, \param{const wxString\& }{file = NULL}}
2568
2569 \func{bool}{wxWriteResource}{\param{const wxString\& }{section}, \param{const wxString\& }{entry},
2570 \param{float }{value}, \param{const wxString\& }{file = NULL}}
2571
2572 \func{bool}{wxWriteResource}{\param{const wxString\& }{section}, \param{const wxString\& }{entry},
2573 \param{long }{value}, \param{const wxString\& }{file = NULL}}
2574
2575 \func{bool}{wxWriteResource}{\param{const wxString\& }{section}, \param{const wxString\& }{entry},
2576 \param{int }{value}, \param{const wxString\& }{file = NULL}}
2577
2578 Writes a resource value into the resource database (for example, WIN.INI, or
2579 .Xdefaults). If {\it file} is NULL, WIN.INI or .Xdefaults is used,
2580 otherwise the specified file is used.
2581
2582 Under X, the resource databases are cached until the internal function
2583 \rtfsp{\bf wxFlushResources} is called automatically on exit, when
2584 all updated resource databases are written to their files.
2585
2586 Note that it is considered bad manners to write to the .Xdefaults
2587 file under Unix, although the WIN.INI file is fair game under Windows.
2588
2589 See also \helpref{wxGetResource}{wxgetresource}, \helpref{wxConfigBase}{wxconfigbase}.
2590
2591 \wxheading{Include files}
2592
2593 <wx/utils.h>
2594
2595 \section{Byte order macros}\label{byteordermacros}
2596
2597 The endian-ness issues (that is the difference between big-endian and
2598 little-endian architectures) are important for the portable programs working
2599 with the external binary data (for example, data files or data coming from
2600 network) which is usually in some fixed, platform-independent format. The
2601 macros are helpful for transforming the data to the correct format.
2602
2603 \membersection{wxINTXX\_SWAP\_ALWAYS}\label{intswapalways}
2604
2605 \func{wxInt32}{wxINT32\_SWAP\_ALWAYS}{\param{wxInt32 }{value}}
2606
2607 \func{wxUint32}{wxUINT32\_SWAP\_ALWAYS}{\param{wxUint32 }{value}}
2608
2609 \func{wxInt16}{wxINT16\_SWAP\_ALWAYS}{\param{wxInt16 }{value}}
2610
2611 \func{wxUint16}{wxUINT16\_SWAP\_ALWAYS}{\param{wxUint16 }{value}}
2612
2613 These macros will swap the bytes of the {\it value} variable from little
2614 endian to big endian or vice versa unconditionally, i.e. independently of the
2615 current platform.
2616
2617 \membersection{wxINTXX\_SWAP\_ON\_BE}\label{intswaponbe}
2618
2619 \func{wxInt32}{wxINT32\_SWAP\_ON\_BE}{\param{wxInt32 }{value}}
2620
2621 \func{wxUint32}{wxUINT32\_SWAP\_ON\_BE}{\param{wxUint32 }{value}}
2622
2623 \func{wxInt16}{wxINT16\_SWAP\_ON\_BE}{\param{wxInt16 }{value}}
2624
2625 \func{wxUint16}{wxUINT16\_SWAP\_ON\_BE}{\param{wxUint16 }{value}}
2626
2627 This macro will swap the bytes of the {\it value} variable from little
2628 endian to big endian or vice versa if the program is compiled on a
2629 big-endian architecture (such as Sun work stations). If the program has
2630 been compiled on a little-endian architecture, the value will be unchanged.
2631
2632 Use these macros to read data from and write data to a file that stores
2633 data in little-endian (for example Intel i386) format.
2634
2635 \membersection{wxINTXX\_SWAP\_ON\_LE}\label{intswaponle}
2636
2637 \func{wxInt32}{wxINT32\_SWAP\_ON\_LE}{\param{wxInt32 }{value}}
2638
2639 \func{wxUint32}{wxUINT32\_SWAP\_ON\_LE}{\param{wxUint32 }{value}}
2640
2641 \func{wxInt16}{wxINT16\_SWAP\_ON\_LE}{\param{wxInt16 }{value}}
2642
2643 \func{wxUint16}{wxUINT16\_SWAP\_ON\_LE}{\param{wxUint16 }{value}}
2644
2645 This macro will swap the bytes of the {\it value} variable from little
2646 endian to big endian or vice versa if the program is compiled on a
2647 little-endian architecture (such as Intel PCs). If the program has
2648 been compiled on a big-endian architecture, the value will be unchanged.
2649
2650 Use these macros to read data from and write data to a file that stores
2651 data in big-endian format.
2652
2653 \section{RTTI functions}\label{rttimacros}
2654
2655 wxWindows uses its own RTTI ("run-time type identification") system which
2656 predates the current standard C++ RTTI and so is kept for backwards
2657 compatibility reasons but also because it allows some things which the
2658 standard RTTI doesn't directly support (such as creating a class from its
2659 name).
2660
2661 The standard C++ RTTI can be used in the user code without any problems and in
2662 general you shouldn't need to use the functions and the macros in this section
2663 unless you are thinking of modifying or adding any wxWindows classes.
2664
2665 \wxheading{See also}
2666
2667 \helpref{RTTI overview}{runtimeclassoverview}
2668
2669 \membersection{CLASSINFO}\label{classinfo}
2670
2671 \func{wxClassInfo *}{CLASSINFO}{className}
2672
2673 Returns a pointer to the wxClassInfo object associated with this class.
2674
2675 \wxheading{Include files}
2676
2677 <wx/object.h>
2678
2679 \membersection{DECLARE\_ABSTRACT\_CLASS}\label{declareabstractclass}
2680
2681 \func{}{DECLARE\_ABSTRACT\_CLASS}{className}
2682
2683 Used inside a class declaration to declare that the class should be
2684 made known to the class hierarchy, but objects of this class cannot be created
2685 dynamically. The same as DECLARE\_CLASS.
2686
2687 Example:
2688
2689 \begin{verbatim}
2690 class wxCommand: public wxObject
2691 {
2692 DECLARE_ABSTRACT_CLASS(wxCommand)
2693
2694 private:
2695 ...
2696 public:
2697 ...
2698 };
2699 \end{verbatim}
2700
2701 \wxheading{Include files}
2702
2703 <wx/object.h>
2704
2705 \membersection{DECLARE\_APP}\label{declareapp}
2706
2707 \func{}{DECLARE\_APP}{className}
2708
2709 This is used in headers to create a forward declaration of the
2710 \helpref{wxGetApp}{wxgetapp} function implemented by
2711 \helpref{IMPLEMENT\_APP}{implementapp}. It creates the declaration
2712 {\tt className\& wxGetApp(void)}.
2713
2714 Example:
2715
2716 \begin{verbatim}
2717 DECLARE_APP(MyApp)
2718 \end{verbatim}
2719
2720 \wxheading{Include files}
2721
2722 <wx/app.h>
2723
2724 \membersection{DECLARE\_CLASS}\label{declareclass}
2725
2726 \func{}{DECLARE\_CLASS}{className}
2727
2728 Used inside a class declaration to declare that the class should be
2729 made known to the class hierarchy, but objects of this class cannot be created
2730 dynamically. The same as DECLARE\_ABSTRACT\_CLASS.
2731
2732 \wxheading{Include files}
2733
2734 <wx/object.h>
2735
2736 \membersection{DECLARE\_DYNAMIC\_CLASS}\label{declaredynamicclass}
2737
2738 \func{}{DECLARE\_DYNAMIC\_CLASS}{className}
2739
2740 Used inside a class declaration to declare that the objects of this class should be dynamically
2741 creatable from run-time type information.
2742
2743 Example:
2744
2745 \begin{verbatim}
2746 class wxFrame: public wxWindow
2747 {
2748 DECLARE_DYNAMIC_CLASS(wxFrame)
2749
2750 private:
2751 const wxString& frameTitle;
2752 public:
2753 ...
2754 };
2755 \end{verbatim}
2756
2757 \wxheading{Include files}
2758
2759 <wx/object.h>
2760
2761 \membersection{IMPLEMENT\_ABSTRACT\_CLASS}\label{implementabstractclass}
2762
2763 \func{}{IMPLEMENT\_ABSTRACT\_CLASS}{className, baseClassName}
2764
2765 Used in a C++ implementation file to complete the declaration of
2766 a class that has run-time type information. The same as IMPLEMENT\_CLASS.
2767
2768 Example:
2769
2770 \begin{verbatim}
2771 IMPLEMENT_ABSTRACT_CLASS(wxCommand, wxObject)
2772
2773 wxCommand::wxCommand(void)
2774 {
2775 ...
2776 }
2777 \end{verbatim}
2778
2779 \wxheading{Include files}
2780
2781 <wx/object.h>
2782
2783 \membersection{IMPLEMENT\_ABSTRACT\_CLASS2}\label{implementabstractclass2}
2784
2785 \func{}{IMPLEMENT\_ABSTRACT\_CLASS2}{className, baseClassName1, baseClassName2}
2786
2787 Used in a C++ implementation file to complete the declaration of
2788 a class that has run-time type information and two base classes. The same as IMPLEMENT\_CLASS2.
2789
2790 \wxheading{Include files}
2791
2792 <wx/object.h>
2793
2794 \membersection{IMPLEMENT\_APP}\label{implementapp}
2795
2796 \func{}{IMPLEMENT\_APP}{className}
2797
2798 This is used in the application class implementation file to make the application class known to
2799 wxWindows for dynamic construction. You use this instead of
2800
2801 Old form:
2802
2803 \begin{verbatim}
2804 MyApp myApp;
2805 \end{verbatim}
2806
2807 New form:
2808
2809 \begin{verbatim}
2810 IMPLEMENT_APP(MyApp)
2811 \end{verbatim}
2812
2813 See also \helpref{DECLARE\_APP}{declareapp}.
2814
2815 \wxheading{Include files}
2816
2817 <wx/app.h>
2818
2819 \membersection{IMPLEMENT\_CLASS}\label{implementclass}
2820
2821 \func{}{IMPLEMENT\_CLASS}{className, baseClassName}
2822
2823 Used in a C++ implementation file to complete the declaration of
2824 a class that has run-time type information. The same as IMPLEMENT\_ABSTRACT\_CLASS.
2825
2826 \wxheading{Include files}
2827
2828 <wx/object.h>
2829
2830 \membersection{IMPLEMENT\_CLASS2}\label{implementclass2}
2831
2832 \func{}{IMPLEMENT\_CLASS2}{className, baseClassName1, baseClassName2}
2833
2834 Used in a C++ implementation file to complete the declaration of a
2835 class that has run-time type information and two base classes. The
2836 same as IMPLEMENT\_ABSTRACT\_CLASS2.
2837
2838 \wxheading{Include files}
2839
2840 <wx/object.h>
2841
2842 \membersection{IMPLEMENT\_DYNAMIC\_CLASS}\label{implementdynamicclass}
2843
2844 \func{}{IMPLEMENT\_DYNAMIC\_CLASS}{className, baseClassName}
2845
2846 Used in a C++ implementation file to complete the declaration of
2847 a class that has run-time type information, and whose instances
2848 can be created dynamically.
2849
2850 Example:
2851
2852 \begin{verbatim}
2853 IMPLEMENT_DYNAMIC_CLASS(wxFrame, wxWindow)
2854
2855 wxFrame::wxFrame(void)
2856 {
2857 ...
2858 }
2859 \end{verbatim}
2860
2861 \wxheading{Include files}
2862
2863 <wx/object.h>
2864
2865 \membersection{IMPLEMENT\_DYNAMIC\_CLASS2}\label{implementdynamicclass2}
2866
2867 \func{}{IMPLEMENT\_DYNAMIC\_CLASS2}{className, baseClassName1, baseClassName2}
2868
2869 Used in a C++ implementation file to complete the declaration of
2870 a class that has run-time type information, and whose instances
2871 can be created dynamically. Use this for classes derived from two
2872 base classes.
2873
2874 \wxheading{Include files}
2875
2876 <wx/object.h>
2877
2878 \membersection{wxConstCast}\label{wxconstcast}
2879
2880 \func{classname *}{wxConstCast}{ptr, classname}
2881
2882 This macro expands into {\tt const\_cast<classname *>(ptr)} if the compiler
2883 supports {\it const\_cast} or into an old, C-style cast, otherwise.
2884
2885 \wxheading{See also}
2886
2887 \helpref{wxDynamicCast}{wxdynamiccast}\\
2888 \helpref{wxStaticCast}{wxstaticcast}
2889
2890 \membersection{::wxCreateDynamicObject}\label{wxcreatedynamicobject}
2891
2892 \func{wxObject *}{wxCreateDynamicObject}{\param{const wxString\& }{className}}
2893
2894 Creates and returns an object of the given class, if the class has been
2895 registered with the dynamic class system using DECLARE... and IMPLEMENT... macros.
2896
2897 \membersection{WXDEBUG\_NEW}\label{debugnew}
2898
2899 \func{}{WXDEBUG\_NEW}{arg}
2900
2901 This is defined in debug mode to be call the redefined new operator
2902 with filename and line number arguments. The definition is:
2903
2904 \begin{verbatim}
2905 #define WXDEBUG_NEW new(__FILE__,__LINE__)
2906 \end{verbatim}
2907
2908 In non-debug mode, this is defined as the normal new operator.
2909
2910 \wxheading{Include files}
2911
2912 <wx/object.h>
2913
2914 \membersection{wxDynamicCast}\label{wxdynamiccast}
2915
2916 \func{classname *}{wxDynamicCast}{ptr, classname}
2917
2918 This macro returns the pointer {\it ptr} cast to the type {\it classname *} if
2919 the pointer is of this type (the check is done during the run-time) or
2920 {\tt NULL} otherwise. Usage of this macro is preferred over obsoleted
2921 wxObject::IsKindOf() function.
2922
2923 The {\it ptr} argument may be {\tt NULL}, in which case {\tt NULL} will be
2924 returned.
2925
2926 Example:
2927
2928 \begin{verbatim}
2929 wxWindow *win = wxWindow::FindFocus();
2930 wxTextCtrl *text = wxDynamicCast(win, wxTextCtrl);
2931 if ( text )
2932 {
2933 // a text control has the focus...
2934 }
2935 else
2936 {
2937 // no window has the focus or it is not a text control
2938 }
2939 \end{verbatim}
2940
2941 \wxheading{See also}
2942
2943 \helpref{RTTI overview}{runtimeclassoverview}\\
2944 \helpref{wxDynamicCastThis}{wxdynamiccastthis}\\
2945 \helpref{wxConstCast}{wxconstcast}\\
2946 \helpref{wxStatiicCast}{wxstaticcast}
2947
2948 \membersection{wxDynamicCastThis}\label{wxdynamiccastthis}
2949
2950 \func{classname *}{wxDynamicCastThis}{classname}
2951
2952 This macro is equivalent to {\tt wxDynamicCast(this, classname)} but the
2953 latter provokes spurious compilation warnings from some compilers (because it
2954 tests whether {\tt this} pointer is non {\tt NULL} which is always true), so
2955 this macro should be used to avoid them.
2956
2957 \wxheading{See also}
2958
2959 \helpref{wxDynamicCast}{wxdynamiccast}
2960
2961 \membersection{wxStaticCast}\label{wxstaticcast}
2962
2963 \func{classname *}{wxStaticCast}{ptr, classname}
2964
2965 This macro checks that the cast is valid in debug mode (an assert failure will
2966 result if {\tt wxDynamicCast(ptr, classname) == NULL}) and then returns the
2967 result of executing an equivalent of {\tt static\_cast<classname *>(ptr)}.
2968
2969 \helpref{wxDynamicCast}{wxdynamiccast}\\
2970 \helpref{wxConstCast}{wxconstcast}
2971
2972 \section{Resource functions}\label{resourcefuncs}
2973
2974 \overview{Resource functions}{resourceformats}
2975
2976 This section details functions for manipulating wxWindows (.WXR) resource
2977 files and loading user interface elements from resources.
2978
2979 \normalbox{Please note that this use of the word `resource' is different from that used when talking
2980 about initialisation file resource reading and writing, using such functions
2981 as wxWriteResource and wxGetResource. It is just an unfortunate clash of terminology.}
2982
2983 \helponly{For an overview of the wxWindows resource mechanism, see \helpref{the wxWindows resource system}{resourceformats}.}
2984
2985 See also \helpref{wxWindow::LoadFromResource}{wxwindowloadfromresource} for
2986 loading from resource data.
2987
2988 \membersection{::wxResourceAddIdentifier}\label{wxresourceaddidentifier}
2989
2990 \func{bool}{wxResourceAddIdentifier}{\param{const wxString\& }{name}, \param{int }{value}}
2991
2992 Used for associating a name with an integer identifier (equivalent to dynamically\rtfsp
2993 {\tt\#}defining a name to an integer). Unlikely to be used by an application except
2994 perhaps for implementing resource functionality for interpreted languages.
2995
2996 \membersection{::wxResourceClear}\label{wxresourceclear}
2997
2998 \func{void}{wxResourceClear}{\void}
2999
3000 Clears the wxWindows resource table.
3001
3002 \membersection{::wxResourceCreateBitmap}\label{wxresourcecreatebitmap}
3003
3004 \func{wxBitmap *}{wxResourceCreateBitmap}{\param{const wxString\& }{resource}}
3005
3006 Creates a new bitmap from a file, static data, or Windows resource, given a valid
3007 wxWindows bitmap resource identifier. For example, if the .WXR file contains
3008 the following:
3009
3010 \begin{verbatim}
3011 static const wxString\& project_resource = "bitmap(name = 'project_resource',\
3012 bitmap = ['project', wxBITMAP_TYPE_BMP_RESOURCE, 'WINDOWS'],\
3013 bitmap = ['project.xpm', wxBITMAP_TYPE_XPM, 'X']).";
3014 \end{verbatim}
3015
3016 then this function can be called as follows:
3017
3018 \begin{verbatim}
3019 wxBitmap *bitmap = wxResourceCreateBitmap("project_resource");
3020 \end{verbatim}
3021
3022 \membersection{::wxResourceCreateIcon}\label{wxresourcecreateicon}
3023
3024 \func{wxIcon *}{wxResourceCreateIcon}{\param{const wxString\& }{resource}}
3025
3026 Creates a new icon from a file, static data, or Windows resource, given a valid
3027 wxWindows icon resource identifier. For example, if the .WXR file contains
3028 the following:
3029
3030 \begin{verbatim}
3031 static const wxString\& project_resource = "icon(name = 'project_resource',\
3032 icon = ['project', wxBITMAP_TYPE_ICO_RESOURCE, 'WINDOWS'],\
3033 icon = ['project', wxBITMAP_TYPE_XBM_DATA, 'X']).";
3034 \end{verbatim}
3035
3036 then this function can be called as follows:
3037
3038 \begin{verbatim}
3039 wxIcon *icon = wxResourceCreateIcon("project_resource");
3040 \end{verbatim}
3041
3042 \membersection{::wxResourceCreateMenuBar}\label{wxresourcecreatemenubar}
3043
3044 \func{wxMenuBar *}{wxResourceCreateMenuBar}{\param{const wxString\& }{resource}}
3045
3046 Creates a new menu bar given a valid wxWindows menubar resource
3047 identifier. For example, if the .WXR file contains the following:
3048
3049 \begin{verbatim}
3050 static const wxString\& menuBar11 = "menu(name = 'menuBar11',\
3051 menu = \
3052 [\
3053 ['&File', 1, '', \
3054 ['&Open File', 2, 'Open a file'],\
3055 ['&Save File', 3, 'Save a file'],\
3056 [],\
3057 ['E&xit', 4, 'Exit program']\
3058 ],\
3059 ['&Help', 5, '', \
3060 ['&About', 6, 'About this program']\
3061 ]\
3062 ]).";
3063 \end{verbatim}
3064
3065 then this function can be called as follows:
3066
3067 \begin{verbatim}
3068 wxMenuBar *menuBar = wxResourceCreateMenuBar("menuBar11");
3069 \end{verbatim}
3070
3071
3072 \membersection{::wxResourceGetIdentifier}\label{wxresourcegetidentifier}
3073
3074 \func{int}{wxResourceGetIdentifier}{\param{const wxString\& }{name}}
3075
3076 Used for retrieving the integer value associated with an identifier.
3077 A zero value indicates that the identifier was not found.
3078
3079 See \helpref{wxResourceAddIdentifier}{wxresourceaddidentifier}.
3080
3081 \membersection{::wxResourceParseData}\label{wxresourcedata}
3082
3083 \func{bool}{wxResourceParseData}{\param{const wxString\& }{resource}, \param{wxResourceTable *}{table = NULL}}
3084
3085 Parses a string containing one or more wxWindows resource objects. If
3086 the resource objects are global static data that are included into the
3087 C++ program, then this function must be called for each variable
3088 containing the resource data, to make it known to wxWindows.
3089
3090 {\it resource} should contain data in the following form:
3091
3092 \begin{verbatim}
3093 dialog(name = 'dialog1',
3094 style = 'wxCAPTION | wxDEFAULT_DIALOG_STYLE',
3095 title = 'Test dialog box',
3096 x = 312, y = 234, width = 400, height = 300,
3097 modal = 0,
3098 control = [1000, wxStaticBox, 'Groupbox', '0', 'group6', 5, 4, 380, 262,
3099 [11, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0]],
3100 control = [1001, wxTextCtrl, '', 'wxTE_MULTILINE', 'text3',
3101 156, 126, 200, 70, 'wxWindows is a multi-platform, GUI toolkit.',
3102 [11, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0],
3103 [11, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0]]).
3104 \end{verbatim}
3105
3106 This function will typically be used after including a {\tt .wxr} file into
3107 a C++ program as follows:
3108
3109 \begin{verbatim}
3110 #include "dialog1.wxr"
3111 \end{verbatim}
3112
3113 Each of the contained resources will declare a new C++ variable, and each
3114 of these variables should be passed to wxResourceParseData.
3115
3116 \membersection{::wxResourceParseFile}\label{wxresourceparsefile}
3117
3118 \func{bool}{wxResourceParseFile}{\param{const wxString\& }{filename}, \param{wxResourceTable *}{table = NULL}}
3119
3120 Parses a file containing one or more wxWindows resource objects
3121 in C++-compatible syntax. Use this function to dynamically load
3122 wxWindows resource data.
3123
3124 \membersection{::wxResourceParseString}\label{wxresourceparsestring}
3125
3126 \func{bool}{wxResourceParseString}{\param{char *}{s}, \param{wxResourceTable *}{table = NULL}}
3127
3128 Parses a string containing one or more wxWindows resource objects. If
3129 the resource objects are global static data that are included into the
3130 C++ program, then this function must be called for each variable
3131 containing the resource data, to make it known to wxWindows.
3132
3133 {\it resource} should contain data with the following form:
3134
3135 \begin{verbatim}
3136 dialog(name = 'dialog1',
3137 style = 'wxCAPTION | wxDEFAULT_DIALOG_STYLE',
3138 title = 'Test dialog box',
3139 x = 312, y = 234, width = 400, height = 300,
3140 modal = 0,
3141 control = [1000, wxStaticBox, 'Groupbox', '0', 'group6', 5, 4, 380, 262,
3142 [11, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0]],
3143 control = [1001, wxTextCtrl, '', 'wxTE_MULTILINE', 'text3',
3144 156, 126, 200, 70, 'wxWindows is a multi-platform, GUI toolkit.',
3145 [11, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0],
3146 [11, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0]]).
3147 \end{verbatim}
3148
3149 This function will typically be used after calling \helpref{wxLoadUserResource}{wxloaduserresource} to
3150 load an entire {\tt .wxr file} into a string.
3151
3152 \membersection{::wxResourceRegisterBitmapData}\label{registerbitmapdata}
3153
3154 \func{bool}{wxResourceRegisterBitmapData}{\param{const wxString\& }{name}, \param{char *}{xbm\_data}, \param{int }{width},
3155 \param{int }{height}, \param{wxResourceTable *}{table = NULL}}
3156
3157 \func{bool}{wxResourceRegisterBitmapData}{\param{const wxString\& }{name}, \param{char **}{xpm\_data}}
3158
3159 Makes {\tt\#}included XBM or XPM bitmap data known to the wxWindows resource system.
3160 This is required if other resources will use the bitmap data, since otherwise there
3161 is no connection between names used in resources, and the global bitmap data.
3162
3163 \membersection{::wxResourceRegisterIconData}\label{wxresourceregistericondata}
3164
3165 Another name for \helpref{wxResourceRegisterBitmapData}{registerbitmapdata}.
3166
3167 \section{Log functions}\label{logfunctions}
3168
3169 These functions provide a variety of logging functions: see \helpref{Log classes overview}{wxlogoverview} for
3170 further information. The functions use (implicitly) the currently active log
3171 target, so their descriptions here may not apply if the log target is not the
3172 standard one (installed by wxWindows in the beginning of the program).
3173
3174 \wxheading{Include files}
3175
3176 <wx/log.h>
3177
3178 \membersection{::wxDebugMsg}\label{wxdebugmsg}
3179
3180 \func{void}{wxDebugMsg}{\param{const wxString\& }{fmt}, \param{...}{}}
3181
3182 {\bf NB:} This function is now obsolete, replaced by \helpref{Log
3183 functions}{logfunctions} and \helpref{wxLogDebug}{wxlogdebug} in particular.
3184
3185 Display a debugging message; under Windows, this will appear on the
3186 debugger command window, and under Unix, it will be written to standard
3187 error.
3188
3189 The syntax is identical to {\bf printf}: pass a format string and a
3190 variable list of arguments.
3191
3192 {\bf Tip:} under Windows, if your application crashes before the
3193 message appears in the debugging window, put a wxYield call after
3194 each wxDebugMsg call. wxDebugMsg seems to be broken under WIN32s
3195 (at least for Watcom C++): preformat your messages and use OutputDebugString
3196 instead.
3197
3198 \wxheading{Include files}
3199
3200 <wx/utils.h>
3201
3202 \membersection{::wxError}\label{wxerror}
3203
3204 \func{void}{wxError}{\param{const wxString\& }{msg}, \param{const wxString\& }{title = "wxWindows Internal Error"}}
3205
3206 {\bf NB:} This function is now obsolete, please use \helpref{wxLogError}{wxlogerror}
3207 instead.
3208
3209 Displays {\it msg} and continues. This writes to standard error under
3210 Unix, and pops up a message box under Windows. Used for internal
3211 wxWindows errors. See also \helpref{wxFatalError}{wxfatalerror}.
3212
3213 \wxheading{Include files}
3214
3215 <wx/utils.h>
3216
3217 \membersection{::wxFatalError}\label{wxfatalerror}
3218
3219 \func{void}{wxFatalError}{\param{const wxString\& }{msg}, \param{const wxString\& }{title = "wxWindows Fatal Error"}}
3220
3221 {\bf NB:} This function is now obsolete, please use
3222 \helpref{wxLogFatalError}{wxlogfatalerror} instead.
3223
3224 Displays {\it msg} and exits. This writes to standard error under Unix,
3225 and pops up a message box under Windows. Used for fatal internal
3226 wxWindows errors. See also \helpref{wxError}{wxerror}.
3227
3228 \wxheading{Include files}
3229
3230 <wx/utils.h>
3231
3232 \membersection{::wxLogError}\label{wxlogerror}
3233
3234 \func{void}{wxLogError}{\param{const char *}{formatString}, \param{...}{}}
3235
3236 \func{void}{wxVLogError}{\param{const char *}{formatString}, \param{va\_list }{argPtr}}
3237
3238 The functions to use for error messages, i.e. the messages that must be shown
3239 to the user. The default processing is to pop up a message box to inform the
3240 user about it.
3241
3242 \membersection{::wxLogFatalError}\label{wxlogfatalerror}
3243
3244 \func{void}{wxLogFatalError}{\param{const char *}{formatString}, \param{...}{}}
3245
3246 \func{void}{wxVLogFatalError}{\param{const char *}{formatString}, \param{va\_list }{argPtr}}
3247
3248 Like \helpref{wxLogError}{wxlogerror}, but also
3249 terminates the program with the exit code 3. Using {\it abort()} standard
3250 function also terminates the program with this exit code.
3251
3252 \membersection{::wxLogWarning}\label{wxlogwarning}
3253
3254 \func{void}{wxLogWarning}{\param{const char *}{formatString}, \param{...}{}}
3255
3256 \func{void}{wxVLogWarning}{\param{const char *}{formatString}, \param{va\_list }{argPtr}}
3257
3258 For warnings - they are also normally shown to the user, but don't interrupt
3259 the program work.
3260
3261 \membersection{::wxLogMessage}\label{wxlogmessage}
3262
3263 \func{void}{wxLogMessage}{\param{const char *}{formatString}, \param{...}{}}
3264
3265 \func{void}{wxVLogMessage}{\param{const char *}{formatString}, \param{va\_list }{argPtr}}
3266
3267 For all normal, informational messages. They also appear in a message box by
3268 default (but it can be changed). Notice that the standard behaviour is to not
3269 show informational messages if there are any errors later - the logic being
3270 that the later error messages make the informational messages preceding them
3271 meaningless.
3272
3273 \membersection{::wxLogVerbose}\label{wxlogverbose}
3274
3275 \func{void}{wxLogVerbose}{\param{const char *}{formatString}, \param{...}{}}
3276
3277 \func{void}{wxVLogVerbose}{\param{const char *}{formatString}, \param{va\_list }{argPtr}}
3278
3279 For verbose output. Normally, it is suppressed, but
3280 might be activated if the user wishes to know more details about the program
3281 progress (another, but possibly confusing name for the same function is {\bf wxLogInfo}).
3282
3283 \membersection{::wxLogStatus}\label{wxlogstatus}
3284
3285 \func{void}{wxLogStatus}{\param{wxFrame *}{frame}, \param{const char *}{formatString}, \param{...}{}}
3286
3287 \func{void}{wxVLogStatus}{\param{wxFrame *}{frame}, \param{const char *}{formatString}, \param{va\_list }{argPtr}}
3288
3289 \func{void}{wxLogStatus}{\param{const char *}{formatString}, \param{...}{}}
3290
3291 \func{void}{wxVLogStatus}{\param{const char *}{formatString}, \param{va\_list }{argPtr}}
3292
3293 Messages logged by these functions will appear in the statusbar of the {\it
3294 frame} or of the top level application window by default (i.e. when using
3295 the second version of the functions).
3296
3297 If the target frame doesn't have a statusbar, the message will be lost.
3298
3299 \membersection{::wxLogSysError}\label{wxlogsyserror}
3300
3301 \func{void}{wxLogSysError}{\param{const char *}{formatString}, \param{...}{}}
3302
3303 \func{void}{wxVLogSysError}{\param{const char *}{formatString}, \param{va\_list }{argPtr}}
3304
3305 Mostly used by wxWindows itself, but might be handy for logging errors after
3306 system call (API function) failure. It logs the specified message text as well
3307 as the last system error code ({\it errno} or {\it ::GetLastError()} depending
3308 on the platform) and the corresponding error message. The second form
3309 of this function takes the error code explicitly as the first argument.
3310
3311 \wxheading{See also}
3312
3313 \helpref{wxSysErrorCode}{wxsyserrorcode},
3314 \helpref{wxSysErrorMsg}{wxsyserrormsg}
3315
3316 \membersection{::wxLogDebug}\label{wxlogdebug}
3317
3318 \func{void}{wxLogDebug}{\param{const char *}{formatString}, \param{...}{}}
3319
3320 \func{void}{wxVLogDebug}{\param{const char *}{formatString}, \param{va\_list }{argPtr}}
3321
3322 The right functions for debug output. They only do something in debug
3323 mode (when the preprocessor symbol \_\_WXDEBUG\_\_ is defined) and expand to
3324 nothing in release mode (otherwise).
3325
3326 \membersection{::wxLogTrace}\label{wxlogtrace}
3327
3328 \func{void}{wxLogTrace}{\param{const char *}{formatString}, \param{...}{}}
3329
3330 \func{void}{wxVLogTrace}{\param{const char *}{formatString}, \param{va\_list }{argPtr}}
3331
3332 \func{void}{wxLogTrace}{\param{const char *}{mask}, \param{const char *}{formatString}, \param{...}{}}
3333
3334 \func{void}{wxVLogTrace}{\param{const char *}{mask}, \param{const char *}{formatString}, \param{va\_list }{argPtr}}
3335
3336 \func{void}{wxLogTrace}{\param{wxTraceMask}{ mask}, \param{const char *}{formatString}, \param{...}{}}
3337
3338 \func{void}{wxVLogTrace}{\param{wxTraceMask}{ mask}, \param{const char *}{formatString}, \param{va\_list }{argPtr}}
3339
3340 As {\bf wxLogDebug}, trace functions only do something in debug build and
3341 expand to nothing in the release one. The reason for making
3342 it a separate function from it is that usually there are a lot of trace
3343 messages, so it might make sense to separate them from other debug messages.
3344
3345 The trace messages also usually can be separated into different categories and
3346 the second and third versions of this function only log the message if the
3347 {\it mask} which it has is currently enabled in \helpref{wxLog}{wxlog}. This
3348 allows to selectively trace only some operations and not others by changing
3349 the value of the trace mask (possible during the run-time).
3350
3351 For the second function (taking a string mask), the message is logged only if
3352 the mask has been previously enabled by the call to
3353 \helpref{AddTraceMask}{wxlogaddtracemask}. The predefined string trace masks
3354 used by wxWindows are:
3355
3356 \begin{itemize}\itemsep=0pt
3357 \item wxTRACE\_MemAlloc: trace memory allocation (new/delete)
3358 \item wxTRACE\_Messages: trace window messages/X callbacks
3359 \item wxTRACE\_ResAlloc: trace GDI resource allocation
3360 \item wxTRACE\_RefCount: trace various ref counting operations
3361 \item wxTRACE\_OleCalls: trace OLE method calls (Win32 only)
3362 \end{itemize}
3363
3364 The third version of the function only logs the message if all the bit
3365 corresponding to the {\it mask} are set in the wxLog trace mask which can be
3366 set by \helpref{SetTraceMask}{wxlogsettracemask}. This version is less
3367 flexible than the previous one because it doesn't allow defining the user
3368 trace masks easily - this is why it is deprecated in favour of using string
3369 trace masks.
3370
3371 \begin{itemize}\itemsep=0pt
3372 \item wxTraceMemAlloc: trace memory allocation (new/delete)
3373 \item wxTraceMessages: trace window messages/X callbacks
3374 \item wxTraceResAlloc: trace GDI resource allocation
3375 \item wxTraceRefCount: trace various ref counting operations
3376 \item wxTraceOleCalls: trace OLE method calls (Win32 only)
3377 \end{itemize}
3378
3379 \membersection{::wxSafeShowMessage}\label{wxsafeshowmessage}
3380
3381 \func{void}{wxSafeShowMessage}{\param{const wxString\& }{title}, \param{const wxString\& }{text}}
3382
3383 This function shows a message to the user in a safe way and should be safe to
3384 call even before the application has been initialized or if it is currently in
3385 some other strange state (for example, about to crash). Under Windows this
3386 function shows a message box using a native dialog instead of
3387 \helpref{wxMessageBox}{wxmessagebox} (which might be unsafe to call), elsewhere
3388 it simply prints the message to the standard output using the title as prefix.
3389
3390 \wxheading{Parameters}
3391
3392 \docparam{title}{The title of the message box shown to the user or the prefix
3393 of the message string}
3394
3395 \docparam{text}{The text to show to the user}
3396
3397 \wxheading{See also}
3398
3399 \helpref{wxLogFatalError}{wxlogfatalerror}
3400
3401 \wxheading{Include files}
3402
3403 <wx/log.h>
3404
3405 \membersection{::wxSysErrorCode}\label{wxsyserrorcode}
3406
3407 \func{unsigned long}{wxSysErrorCode}{\void}
3408
3409 Returns the error code from the last system call. This function uses
3410 {\tt errno} on Unix platforms and {\tt GetLastError} under Win32.
3411
3412 \wxheading{See also}
3413
3414 \helpref{wxSysErrorMsg}{wxsyserrormsg},
3415 \helpref{wxLogSysError}{wxlogsyserror}
3416
3417 \membersection{::wxSysErrorMsg}\label{wxsyserrormsg}
3418
3419 \func{const wxChar *}{wxSysErrorMsg}{\param{unsigned long }{errCode = 0}}
3420
3421 Returns the error message corresponding to the given system error code. If
3422 {\it errCode} is $0$ (default), the last error code (as returned by
3423 \helpref{wxSysErrorCode}{wxsyserrorcode}) is used.
3424
3425 \wxheading{See also}
3426
3427 \helpref{wxSysErrorCode}{wxsyserrorcode},
3428 \helpref{wxLogSysError}{wxlogsyserror}
3429
3430 \membersection{WXTRACE}\label{trace}
3431
3432 \wxheading{Include files}
3433
3434 <wx/object.h>
3435
3436 \func{}{WXTRACE}{formatString, ...}
3437
3438 {\bf NB:} This macro is now obsolete, replaced by \helpref{Log functions}{logfunctions}.
3439
3440 Calls wxTrace with printf-style variable argument syntax. Output
3441 is directed to the current output stream (see \helpref{wxDebugContext}{wxdebugcontextoverview}).
3442
3443 \wxheading{Include files}
3444
3445 <wx/memory.h>
3446
3447 \membersection{WXTRACELEVEL}\label{tracelevel}
3448
3449 \func{}{WXTRACELEVEL}{level, formatString, ...}
3450
3451 {\bf NB:} This function is now obsolete, replaced by \helpref{Log functions}{logfunctions}.
3452
3453 Calls wxTraceLevel with printf-style variable argument syntax. Output
3454 is directed to the current output stream (see \helpref{wxDebugContext}{wxdebugcontextoverview}).
3455 The first argument should be the level at which this information is appropriate.
3456 It will only be output if the level returned by wxDebugContext::GetLevel is equal to or greater than
3457 this value.
3458
3459 \wxheading{Include files}
3460
3461 <wx/memory.h>
3462
3463 \membersection{::wxTrace}\label{wxtrace}
3464
3465 \func{void}{wxTrace}{\param{const wxString\& }{fmt}, \param{...}{}}
3466
3467 {\bf NB:} This function is now obsolete, replaced by \helpref{Log functions}{logfunctions}.
3468
3469 Takes printf-style variable argument syntax. Output
3470 is directed to the current output stream (see \helpref{wxDebugContext}{wxdebugcontextoverview}).
3471
3472 \wxheading{Include files}
3473
3474 <wx/memory.h>
3475
3476 \membersection{::wxTraceLevel}\label{wxtracelevel}
3477
3478 \func{void}{wxTraceLevel}{\param{int}{ level}, \param{const wxString\& }{fmt}, \param{...}{}}
3479
3480 {\bf NB:} This function is now obsolete, replaced by \helpref{Log functions}{logfunctions}.
3481
3482 Takes printf-style variable argument syntax. Output
3483 is directed to the current output stream (see \helpref{wxDebugContext}{wxdebugcontextoverview}).
3484 The first argument should be the level at which this information is appropriate.
3485 It will only be output if the level returned by wxDebugContext::GetLevel is equal to or greater than
3486 this value.
3487
3488 \wxheading{Include files}
3489
3490 <wx/memory.h>
3491
3492 \section{Time functions}\label{timefunctions}
3493
3494 The functions in this section deal with getting the current time and
3495 starting/stopping the global timers. Please note that the timer functions are
3496 deprecated because they work with one global timer only and
3497 \helpref{wxTimer}{wxtimer} and/or \helpref{wxStopWatch}{wxstopwatch} classes
3498 should be used instead. For retrieving the current time, you may also use
3499 \helpref{wxDateTime::Now}{wxdatetimenow} or
3500 \helpref{wxDateTime::UNow}{wxdatetimeunow} methods.
3501
3502 \membersection{::wxGetElapsedTime}\label{wxgetelapsedtime}
3503
3504 \func{long}{wxGetElapsedTime}{\param{bool}{ resetTimer = true}}
3505
3506 Gets the time in milliseconds since the last \helpref{::wxStartTimer}{wxstarttimer}.
3507
3508 If {\it resetTimer} is true (the default), the timer is reset to zero
3509 by this call.
3510
3511 See also \helpref{wxTimer}{wxtimer}.
3512
3513 \wxheading{Include files}
3514
3515 <wx/timer.h>
3516
3517 \membersection{::wxGetLocalTime}\label{wxgetlocaltime}
3518
3519 \func{long}{wxGetLocalTime}{\void}
3520
3521 Returns the number of seconds since local time 00:00:00 Jan 1st 1970.
3522
3523 \wxheading{See also}
3524
3525 \helpref{wxDateTime::Now}{wxdatetimenow}
3526
3527 \wxheading{Include files}
3528
3529 <wx/timer.h>
3530
3531 \membersection{::wxGetLocalTimeMillis}\label{wxgetlocaltimemillis}
3532
3533 \func{wxLongLong}{wxGetLocalTimeMillis}{\void}
3534
3535 Returns the number of milliseconds since local time 00:00:00 Jan 1st 1970.
3536
3537 \wxheading{See also}
3538
3539 \helpref{wxDateTime::Now}{wxdatetimenow},\\
3540 \helpref{wxLongLong}{wxlonglong}
3541
3542 \wxheading{Include files}
3543
3544 <wx/timer.h>
3545
3546 \membersection{::wxGetUTCTime}\label{wxgetutctime}
3547
3548 \func{long}{wxGetUTCTime}{\void}
3549
3550 Returns the number of seconds since GMT 00:00:00 Jan 1st 1970.
3551
3552 \wxheading{See also}
3553
3554 \helpref{wxDateTime::Now}{wxdatetimenow}
3555
3556 \wxheading{Include files}
3557
3558 <wx/timer.h>
3559
3560 \membersection{::wxNow}\label{wxnow}
3561
3562 \func{wxString}{wxNow}{\void}
3563
3564 Returns a string representing the current date and time.
3565
3566 \wxheading{Include files}
3567
3568 <wx/utils.h>
3569
3570 \membersection{::wxSleep}\label{wxsleep}
3571
3572 \func{void}{wxSleep}{\param{int}{ secs}}
3573
3574 Sleeps for the specified number of seconds.
3575
3576 \wxheading{Include files}
3577
3578 <wx/utils.h>
3579
3580 \membersection{::wxStartTimer}\label{wxstarttimer}
3581
3582 \func{void}{wxStartTimer}{\void}
3583
3584 Starts a stopwatch; use \helpref{::wxGetElapsedTime}{wxgetelapsedtime} to get the elapsed time.
3585
3586 See also \helpref{wxTimer}{wxtimer}.
3587
3588 \wxheading{Include files}
3589
3590 <wx/timer.h>
3591
3592 \membersection{::wxUsleep}\label{wxusleep}
3593
3594 \func{void}{wxUsleep}{\param{unsigned long}{ milliseconds}}
3595
3596 Sleeps for the specified number of milliseconds. Notice that usage of this
3597 function is encouraged instead of calling usleep(3) directly because the
3598 standard usleep() function is not MT safe.
3599
3600 \wxheading{Include files}
3601
3602 <wx/utils.h>
3603
3604 \section{Debugging macros and functions}\label{debugmacros}
3605
3606 Useful macros and functions for error checking and defensive programming.
3607 wxWindows defines three families of the assert-like macros:
3608 the wxASSERT and wxFAIL macros only do anything if \_\_WXDEBUG\_\_ is defined
3609 (in other words, in the debug build) but disappear completely in the release
3610 build. On the other hand, the wxCHECK macros stay event in release builds but a
3611 check failure doesn't generate any user-visible effects then. Finally, the
3612 compile time assertions don't happen during the run-time but result in the
3613 compilation error messages if the condition they check fail.
3614
3615 \wxheading{Include files}
3616
3617 <wx/debug.h>
3618
3619 \membersection{::wxOnAssert}\label{wxonassert}
3620
3621 \func{void}{wxOnAssert}{\param{const char *}{fileName}, \param{int}{ lineNumber}, \param{const char *}{cond}, \param{const char *}{msg = NULL}}
3622
3623 This function is called whenever one of debugging macros fails (i.e. condition
3624 is false in an assertion). It is only defined in the debug mode, in release
3625 builds the \helpref{wxCHECK}{wxcheck} failures don't result in anything.
3626
3627 To override the default behaviour in the debug builds which is to show the user
3628 a dialog asking whether he wants to abort the program, continue or continue
3629 ignoring any subsequent assert failures, you may override
3630 \helpref{wxApp::OnAssert}{wxapponassert} which is called by this function if
3631 the global application object exists.
3632
3633 \membersection{wxASSERT}\label{wxassert}
3634
3635 \func{}{wxASSERT}{\param{}{condition}}
3636
3637 Assert macro. An error message will be generated if the condition is false in
3638 debug mode, but nothing will be done in the release build.
3639
3640 Please note that the condition in wxASSERT() should have no side effects
3641 because it will not be executed in release mode at all.
3642
3643 \wxheading{See also}
3644
3645 \helpref{wxASSERT\_MSG}{wxassertmsg},\\
3646 \helpref{wxCOMPILE\_TIME\_ASSERT}{wxcompiletimeassert}
3647
3648 \membersection{wxASSERT\_MIN\_BITSIZE}\label{wxassertminbitsize}
3649
3650 \func{}{wxASSERT\_MIN\_BITSIZE}{\param{}{type}, \param{}{size}}
3651
3652 This macro results in a
3653 \helpref{compile time assertion failure}{wxcompiletimeassert} if the size
3654 of the given type {\it type} is less than {\it size} bits.
3655
3656 You may use it like this, for example:
3657
3658 \begin{verbatim}
3659 // we rely on the int being able to hold values up to 2^32
3660 wxASSERT_MIN_BITSIZE(int, 32);
3661
3662 // can't work with the platforms using UTF-8 for wchar_t
3663 wxASSERT_MIN_BITSIZE(wchar_t, 16);
3664 \end{verbatim}
3665
3666 \membersection{wxASSERT\_MSG}\label{wxassertmsg}
3667
3668 \func{}{wxASSERT\_MSG}{\param{}{condition}, \param{}{msg}}
3669
3670 Assert macro with message. An error message will be generated if the condition is false.
3671
3672 \wxheading{See also}
3673
3674 \helpref{wxASSERT}{wxassert},\\
3675 \helpref{wxCOMPILE\_TIME\_ASSERT}{wxcompiletimeassert}
3676
3677 \membersection{wxCOMPILE\_TIME\_ASSERT}\label{wxcompiletimeassert}
3678
3679 \func{}{wxCOMPILE\_TIME\_ASSERT}{\param{}{condition}, \param{}{msg}}
3680
3681 Using {\tt wxCOMPILE\_TIME\_ASSERT} results in a compilation error if the
3682 specified {\it condition} is false. The compiler error message should include
3683 the {\it msg} identifier - please note that it must be a valid C++ identifier
3684 and not a string unlike in the other cases.
3685
3686 This macro is mostly useful for testing the expressions involving the
3687 {\tt sizeof} operator as they can't be tested by the preprocessor but it is
3688 sometimes desirable to test them at the compile time.
3689
3690 Note that this macro internally declares a struct whose name it tries to make
3691 unique by using the {\tt \_\_LINE\_\_} in it but it may still not work if you
3692 use it on the same line in two different source files. In this case you may
3693 either change the line in which either of them appears on or use the
3694 \helpref{wxCOMPILE\_TIME\_ASSERT2}{wxcompiletimeassert2} macro.
3695
3696 \wxheading{See also}
3697
3698 \helpref{wxASSERT\_MSG}{wxassertmsg},\\
3699 \helpref{wxASSERT\_MIN\_BITSIZE}{wxassertminbitsize}
3700
3701 \membersection{wxCOMPILE\_TIME\_ASSERT2}\label{wxcompiletimeassert2}
3702
3703 \func{}{wxCOMPILE\_TIME\_ASSERT}{\param{}{condition}, \param{}{msg}, \param{}{name}}
3704
3705 This macro is identical to \helpref{wxCOMPILE\_TIME\_ASSERT2}{wxcompiletimeassert2}
3706 except that it allows you to specify a unique {\it name} for the struct
3707 internally defined by this macro to avoid getting the compilation errors
3708 described \helpref{above}{wxcompiletimeassert}.
3709
3710 \membersection{wxFAIL}\label{wxfail}
3711
3712 \func{}{wxFAIL}{\void}
3713
3714 Will always generate an assert error if this code is reached (in debug mode).
3715
3716 See also: \helpref{wxFAIL\_MSG}{wxfailmsg}
3717
3718 \membersection{wxFAIL\_MSG}\label{wxfailmsg}
3719
3720 \func{}{wxFAIL\_MSG}{\param{}{msg}}
3721
3722 Will always generate an assert error with specified message if this code is reached (in debug mode).
3723
3724 This macro is useful for marking unreachable" code areas, for example
3725 it may be used in the "default:" branch of a switch statement if all possible
3726 cases are processed above.
3727
3728 \wxheading{See also}
3729
3730 \helpref{wxFAIL}{wxfail}
3731
3732 \membersection{wxCHECK}\label{wxcheck}
3733
3734 \func{}{wxCHECK}{\param{}{condition}, \param{}{retValue}}
3735
3736 Checks that the condition is true, returns with the given return value if not (FAILs in debug mode).
3737 This check is done even in release mode.
3738
3739 \membersection{wxCHECK\_MSG}\label{wxcheckmsg}
3740
3741 \func{}{wxCHECK\_MSG}{\param{}{condition}, \param{}{retValue}, \param{}{msg}}
3742
3743 Checks that the condition is true, returns with the given return value if not (FAILs in debug mode).
3744 This check is done even in release mode.
3745
3746 This macro may be only used in non void functions, see also
3747 \helpref{wxCHECK\_RET}{wxcheckret}.
3748
3749 \membersection{wxCHECK\_RET}\label{wxcheckret}
3750
3751 \func{}{wxCHECK\_RET}{\param{}{condition}, \param{}{msg}}
3752
3753 Checks that the condition is true, and returns if not (FAILs with given error
3754 message in debug mode). This check is done even in release mode.
3755
3756 This macro should be used in void functions instead of
3757 \helpref{wxCHECK\_MSG}{wxcheckmsg}.
3758
3759 \membersection{wxCHECK2}\label{wxcheck2}
3760
3761 \func{}{wxCHECK2}{\param{}{condition}, \param{}{operation}}
3762
3763 Checks that the condition is true and \helpref{wxFAIL}{wxfail} and execute
3764 {\it operation} if it is not. This is a generalisation of
3765 \helpref{wxCHECK}{wxcheck} and may be used when something else than just
3766 returning from the function must be done when the {\it condition} is false.
3767
3768 This check is done even in release mode.
3769
3770 \membersection{wxCHECK2\_MSG}\label{wxcheck2msg}
3771
3772 \func{}{wxCHECK2}{\param{}{condition}, \param{}{operation}, \param{}{msg}}
3773
3774 This is the same as \helpref{wxCHECK2}{wxcheck2}, but
3775 \helpref{wxFAIL\_MSG}{wxfailmsg} with the specified {\it msg} is called
3776 instead of wxFAIL() if the {\it condition} is false.
3777
3778 \membersection{::wxTrap}\label{wxtrap}
3779
3780 \func{void}{wxTrap}{\void}
3781
3782 In debug mode (when {\tt \_\_WXDEBUG\_\_} is defined) this function generates a
3783 debugger exception meaning that the control is passed to the debugger if one is
3784 attached to the process. Otherwise the program just terminates abnormally.
3785
3786 In release mode this function does nothing.
3787
3788 \wxheading{Include files}
3789
3790 <wx/debug.h>
3791
3792 \section{Environment access functions}\label{environfunctions}
3793
3794 The functions in this section allow to access (get) or change value of
3795 environment variables in a portable way. They are currently implemented under
3796 Win32 and POSIX-like systems (Unix).
3797
3798 % TODO add some stuff about env var inheriting but not propagating upwards (VZ)
3799
3800 \wxheading{Include files}
3801
3802 <wx/utils.h>
3803
3804 \membersection{wxGetenv}\label{wxgetenvmacro}
3805
3806 \func{wxChar *}{wxGetEnv}{\param{const wxString\&}{ var}}
3807
3808 This is a macro defined as {\tt getenv()} or its wide char version in Unicode
3809 mode.
3810
3811 Note that under Win32 it may not return correct value for the variables set
3812 with \helpref{wxSetEnv}{wxsetenv}, use \helpref{wxGetEnv}{wxgetenv} function
3813 instead.
3814
3815 \membersection{wxGetEnv}\label{wxgetenv}
3816
3817 \func{bool}{wxGetEnv}{\param{const wxString\&}{ var}, \param{wxString *}{value}}
3818
3819 Returns the current value of the environment variable {\it var} in {\it value}.
3820 {\it value} may be {\tt NULL} if you just want to know if the variable exists
3821 and are not interested in its value.
3822
3823 Returns {\tt true} if the variable exists, {\tt false} otherwise.
3824
3825 \membersection{wxSetEnv}\label{wxsetenv}
3826
3827 \func{bool}{wxSetEnv}{\param{const wxString\&}{ var}, \param{const wxChar *}{value}}
3828
3829 Sets the value of the environment variable {\it var} (adding it if necessary)
3830 to {\it value}.
3831
3832 Returns {\tt true} on success.
3833
3834 \membersection{wxUnsetEnv}\label{wxunsetenv}
3835
3836 \func{bool}{wxUnsetEnv}{\param{const wxString\&}{ var}}
3837
3838 Removes the variable {\it var} from the environment.
3839 \helpref{wxGetEnv}{wxgetenv} will return {\tt NULL} after the call to this
3840 function.
3841
3842 Returns {\tt true} on success.
3843