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