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