]> git.saurik.com Git - wxWidgets.git/blame - docs/latex/wx/function.tex
Fixes the problem with VARCHAR fields not allowing the stored string to ever be lengt...
[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 1387\begin{verbatim}
f0f12073
VZ
1388wxString filename = wxFileSelector("Choose a file to open");
1389if ( !filename.empty() )
b0fc8832 1390{
f0f12073
VZ
1391 // work with the file
1392 ...
b0fc8832 1393}
f0f12073 1394//else: cancelled by user
b0fc8832 1395\end{verbatim}
a660d684 1396
b0fc8832 1397\wxheading{Include files}
a660d684 1398
b0fc8832 1399<wx/filedlg.h>
a660d684 1400
b0fc8832 1401\membersection{::wxEndBusyCursor}\label{wxendbusycursor}
a660d684 1402
b0fc8832 1403\func{void}{wxEndBusyCursor}{\void}
f53561f1 1404
b0fc8832
VZ
1405Changes the cursor back to the original cursor, for all windows in the application.
1406Use with \helpref{wxBeginBusyCursor}{wxbeginbusycursor}.
1407
1408See also \helpref{wxIsBusy}{wxisbusy}, \helpref{wxBusyCursor}{wxbusycursor}.
a660d684 1409
954b8ae6
JS
1410\wxheading{Include files}
1411
b0fc8832 1412<wx/utils.h>
954b8ae6 1413
b0fc8832 1414\membersection{::wxGetColourFromUser}\label{wxgetcolourfromuser}
a660d684 1415
b0fc8832 1416\func{wxColour}{wxGetColourFromUser}{\param{wxWindow *}{parent}, \param{const wxColour\& }{colInit}}
a660d684 1417
b0fc8832
VZ
1418Shows the colour selection dialog and returns the colour selected by user or
1419invalid colour (use \helpref{wxColour::Ok}{wxcolourok} to test whether a colour
1420is valid) if the dialog was cancelled.
a660d684 1421
b0fc8832 1422\wxheading{Parameters}
a660d684 1423
b0fc8832 1424\docparam{parent}{The parent window for the colour selection dialog}
a660d684 1425
b0fc8832 1426\docparam{colInit}{If given, this will be the colour initially selected in the dialog.}
a660d684 1427
b0fc8832 1428\wxheading{Include files}
a660d684 1429
b0fc8832 1430<wx/colordlg.h>
a660d684 1431
d741c583
VZ
1432\membersection{::wxGetFontFromUser}\label{wxgetfontfromuser}
1433
1434\func{wxFont}{wxGetFontFromUser}{\param{wxWindow *}{parent}, \param{const wxFont\& }{fontInit}}
1435
1436Shows the font selection dialog and returns the font selected by user or
1437invalid font (use \helpref{wxFont::Ok}{wxfontok} to test whether a font
1438is valid) if the dialog was cancelled.
1439
1440\wxheading{Parameters}
1441
65d877d2 1442\docparam{parent}{The parent window for the font selection dialog}
d741c583
VZ
1443
1444\docparam{fontInit}{If given, this will be the font initially selected in the dialog.}
1445
1446\wxheading{Include files}
1447
1448<wx/fontdlg.h>
1449
1450
b0fc8832 1451\membersection{::wxGetMultipleChoices}\label{wxgetmultiplechoices}
a660d684 1452
b0fc8832
VZ
1453\func{size\_t}{wxGetMultipleChoices}{\\
1454 \param{wxArrayInt\& }{selections},\\
1455 \param{const wxString\& }{message},\\
1456 \param{const wxString\& }{caption},\\
1457 \param{const wxArrayString\& }{aChoices},\\
1458 \param{wxWindow *}{parent = NULL},\\
1459 \param{int}{ x = -1}, \param{int}{ y = -1},\\
1460 \param{bool}{ centre = TRUE},\\
1461 \param{int }{width=150}, \param{int }{height=200}}
a660d684 1462
b0fc8832
VZ
1463\func{size\_t}{wxGetMultipleChoices}{\\
1464 \param{wxArrayInt\& }{selections},\\
1465 \param{const wxString\& }{message},\\
1466 \param{const wxString\& }{caption},\\
1467 \param{int}{ n}, \param{const wxString\& }{choices[]},\\
1468 \param{wxWindow *}{parent = NULL},\\
1469 \param{int}{ x = -1}, \param{int}{ y = -1},\\
1470 \param{bool}{ centre = TRUE},\\
1471 \param{int }{width=150}, \param{int }{height=200}}
a660d684 1472
b0fc8832
VZ
1473Pops up a dialog box containing a message, OK/Cancel buttons and a
1474multiple-selection listbox. The user may choose an arbitrary (including 0)
1475number of items in the listbox whose indices will be returned in
1476{\it selection} array. The initial contents of this array will be used to
1477select the items when the dialog is shown.
a660d684 1478
b0fc8832
VZ
1479You may pass the list of strings to choose from either using {\it choices}
1480which is an array of {\it n} strings for the listbox or by using a single
1481{\it aChoices} parameter of type \helpref{wxArrayString}{wxarraystring}.
a660d684 1482
b0fc8832
VZ
1483If {\it centre} is TRUE, the message text (which may include new line
1484characters) is centred; if FALSE, the message is left-justified.
a660d684 1485
b0fc8832 1486\wxheading{Include files}
a660d684 1487
b0fc8832 1488<wx/choicdlg.h>
a660d684 1489
b0fc8832
VZ
1490\perlnote{In wxPerl there is just an array reference in place of {\tt n}
1491and {\tt choices}, and no {\tt selections} parameter; the function
1492returns an array containing the user selections.}
a660d684 1493
b0fc8832 1494\membersection{::wxGetNumberFromUser}\label{wxgetnumberfromuser}
a660d684 1495
b0fc8832
VZ
1496\func{long}{wxGetNumberFromUser}{
1497 \param{const wxString\& }{message},
1498 \param{const wxString\& }{prompt},
1499 \param{const wxString\& }{caption},
1500 \param{long }{value},
1501 \param{long }{min = 0},
1502 \param{long }{max = 100},
1503 \param{wxWindow *}{parent = NULL},
1504 \param{const wxPoint\& }{pos = wxDefaultPosition}}
a660d684 1505
b0fc8832
VZ
1506Shows a dialog asking the user for numeric input. The dialogs title is set to
1507{\it caption}, it contains a (possibly) multiline {\it message} above the
1508single line {\it prompt} and the zone for entering the number.
a660d684 1509
b0fc8832
VZ
1510The number entered must be in the range {\it min}..{\it max} (both of which
1511should be positive) and {\it value} is the initial value of it. If the user
1512enters an invalid value or cancels the dialog, the function will return -1.
a660d684 1513
b0fc8832
VZ
1514Dialog is centered on its {\it parent} unless an explicit position is given in
1515{\it pos}.
a660d684 1516
b0fc8832 1517\wxheading{Include files}
a660d684 1518
b0fc8832 1519<wx/textdlg.h>
a660d684 1520
b0fc8832 1521\membersection{::wxGetPasswordFromUser}\label{wxgetpasswordfromuser}
a660d684 1522
b0fc8832
VZ
1523\func{wxString}{wxGetTextFromUser}{\param{const wxString\& }{message}, \param{const wxString\& }{caption = ``Input text"},\\
1524 \param{const wxString\& }{default\_value = ``"}, \param{wxWindow *}{parent = NULL}}
a660d684 1525
b0fc8832
VZ
1526Similar to \helpref{wxGetTextFromUser}{wxgettextfromuser} but the text entered
1527in the dialog is not shown on screen but replaced with stars. This is intended
1528to be used for entering passwords as the function name implies.
a660d684 1529
b0fc8832 1530\wxheading{Include files}
a660d684 1531
b0fc8832 1532<wx/textdlg.h>
a660d684 1533
b0fc8832 1534\membersection{::wxGetTextFromUser}\label{wxgettextfromuser}
a660d684 1535
b0fc8832
VZ
1536\func{wxString}{wxGetTextFromUser}{\param{const wxString\& }{message}, \param{const wxString\& }{caption = ``Input text"},\\
1537 \param{const wxString\& }{default\_value = ``"}, \param{wxWindow *}{parent = NULL},\\
1538 \param{int}{ x = -1}, \param{int}{ y = -1}, \param{bool}{ centre = TRUE}}
a660d684 1539
b0fc8832
VZ
1540Pop up a dialog box with title set to {\it caption}, {\it message}, and a
1541\rtfsp{\it default\_value}. The user may type in text and press OK to return this text,
1542or press Cancel to return the empty string.
a660d684 1543
b0fc8832
VZ
1544If {\it centre} is TRUE, the message text (which may include new line characters)
1545is centred; if FALSE, the message is left-justified.
a660d684 1546
b0fc8832 1547\wxheading{Include files}
a660d684 1548
b0fc8832 1549<wx/textdlg.h>
a660d684 1550
b0fc8832 1551\membersection{::wxGetMultipleChoice}\label{wxgetmultiplechoice}
a660d684 1552
b0fc8832
VZ
1553\func{int}{wxGetMultipleChoice}{\param{const wxString\& }{message}, \param{const wxString\& }{caption}, \param{int}{ n}, \param{const wxString\& }{choices[]},\\
1554 \param{int }{nsel}, \param{int *}{selection},
1555 \param{wxWindow *}{parent = NULL}, \param{int}{ x = -1}, \param{int}{ y = -1},\\
1556 \param{bool}{ centre = TRUE}, \param{int }{width=150}, \param{int }{height=200}}
a660d684 1557
b0fc8832
VZ
1558Pops up a dialog box containing a message, OK/Cancel buttons and a multiple-selection
1559listbox. The user may choose one or more item(s) and press OK or Cancel.
a660d684 1560
b0fc8832
VZ
1561The number of initially selected choices, and array of the selected indices,
1562are passed in; this array will contain the user selections on exit, with
1563the function returning the number of selections. {\it selection} must be
1564as big as the number of choices, in case all are selected.
a660d684 1565
b0fc8832 1566If Cancel is pressed, -1 is returned.
a660d684 1567
b0fc8832 1568{\it choices} is an array of {\it n} strings for the listbox.
a660d684 1569
b0fc8832
VZ
1570If {\it centre} is TRUE, the message text (which may include new line characters)
1571is centred; if FALSE, the message is left-justified.
a660d684 1572
b0fc8832 1573\wxheading{Include files}
a660d684 1574
b0fc8832 1575<wx/choicdlg.h>
a660d684 1576
b0fc8832 1577\membersection{::wxGetSingleChoice}\label{wxgetsinglechoice}
a660d684 1578
b0fc8832
VZ
1579\func{wxString}{wxGetSingleChoice}{\param{const wxString\& }{message},\\
1580 \param{const wxString\& }{caption},\\
1581 \param{const wxArrayString\& }{aChoices},\\
1582 \param{wxWindow *}{parent = NULL},\\
1583 \param{int}{ x = -1}, \param{int}{ y = -1},\\
1584 \param{bool}{ centre = TRUE},\\
1585 \param{int }{width=150}, \param{int }{height=200}}
a660d684 1586
b0fc8832
VZ
1587\func{wxString}{wxGetSingleChoice}{\param{const wxString\& }{message},\\
1588 \param{const wxString\& }{caption},\\
1589 \param{int}{ n}, \param{const wxString\& }{choices[]},\\
1590 \param{wxWindow *}{parent = NULL},\\
1591 \param{int}{ x = -1}, \param{int}{ y = -1},\\
1592 \param{bool}{ centre = TRUE},\\
1593 \param{int }{width=150}, \param{int }{height=200}}
a660d684 1594
b0fc8832
VZ
1595Pops up a dialog box containing a message, OK/Cancel buttons and a
1596single-selection listbox. The user may choose an item and press OK to return a
1597string or Cancel to return the empty string. Use
1598\helpref{wxGetSingleChoiceIndex}{wxgetsinglechoiceindex} if empty string is a
1599valid choice and if you want to be able to detect pressing Cancel reliably.
a660d684 1600
b0fc8832
VZ
1601You may pass the list of strings to choose from either using {\it choices}
1602which is an array of {\it n} strings for the listbox or by using a single
1603{\it aChoices} parameter of type \helpref{wxArrayString}{wxarraystring}.
a660d684 1604
b0fc8832
VZ
1605If {\it centre} is TRUE, the message text (which may include new line
1606characters) is centred; if FALSE, the message is left-justified.
a660d684 1607
954b8ae6
JS
1608\wxheading{Include files}
1609
b0fc8832 1610<wx/choicdlg.h>
954b8ae6 1611
b0fc8832
VZ
1612\perlnote{In wxPerl there is just an array reference in place of {\tt n}
1613and {\tt choices}.}
a660d684 1614
b0fc8832 1615\membersection{::wxGetSingleChoiceIndex}\label{wxgetsinglechoiceindex}
a660d684 1616
b0fc8832
VZ
1617\func{int}{wxGetSingleChoiceIndex}{\param{const wxString\& }{message},\\
1618 \param{const wxString\& }{caption},\\
1619 \param{const wxArrayString\& }{aChoices},\\
1620 \param{wxWindow *}{parent = NULL}, \param{int}{ x = -1}, \param{int}{ y = -1},\\
1621 \param{bool}{ centre = TRUE}, \param{int }{width=150}, \param{int }{height=200}}
a660d684 1622
b0fc8832
VZ
1623\func{int}{wxGetSingleChoiceIndex}{\param{const wxString\& }{message},\\
1624 \param{const wxString\& }{caption},\\
1625 \param{int}{ n}, \param{const wxString\& }{choices[]},\\
1626 \param{wxWindow *}{parent = NULL}, \param{int}{ x = -1}, \param{int}{ y = -1},\\
1627 \param{bool}{ centre = TRUE}, \param{int }{width=150}, \param{int }{height=200}}
a660d684 1628
b0fc8832
VZ
1629As {\bf wxGetSingleChoice} but returns the index representing the selected
1630string. If the user pressed cancel, -1 is returned.
a660d684 1631
b0fc8832 1632\wxheading{Include files}
a660d684 1633
b0fc8832 1634<wx/choicdlg.h>
a660d684 1635
b0fc8832
VZ
1636\perlnote{In wxPerl there is just an array reference in place of {\tt n}
1637and {\tt choices}.}
a660d684 1638
b0fc8832 1639\membersection{::wxGetSingleChoiceData}\label{wxgetsinglechoicedata}
a660d684 1640
b0fc8832
VZ
1641\func{wxString}{wxGetSingleChoiceData}{\param{const wxString\& }{message},\\
1642 \param{const wxString\& }{caption},\\
1643 \param{const wxArrayString\& }{aChoices},\\
1644 \param{const wxString\& }{client\_data[]},\\
1645 \param{wxWindow *}{parent = NULL},\\
1646 \param{int}{ x = -1}, \param{int}{ y = -1},\\
1647 \param{bool}{ centre = TRUE}, \param{int }{width=150}, \param{int }{height=200}}
a660d684 1648
b0fc8832
VZ
1649\func{wxString}{wxGetSingleChoiceData}{\param{const wxString\& }{message},\\
1650 \param{const wxString\& }{caption},\\
1651 \param{int}{ n}, \param{const wxString\& }{choices[]},\\
1652 \param{const wxString\& }{client\_data[]},\\
1653 \param{wxWindow *}{parent = NULL},\\
1654 \param{int}{ x = -1}, \param{int}{ y = -1},\\
1655 \param{bool}{ centre = TRUE}, \param{int }{width=150}, \param{int }{height=200}}
a660d684 1656
b0fc8832
VZ
1657As {\bf wxGetSingleChoice} but takes an array of client data pointers
1658corresponding to the strings, and returns one of these pointers or NULL if
1659Cancel was pressed. The {\it client\_data} array must have the same number of
1660elements as {\it choices} or {\it aChoices}!
a660d684 1661
b0fc8832 1662\wxheading{Include files}
a660d684 1663
b0fc8832 1664<wx/choicdlg.h>
a660d684 1665
b0fc8832
VZ
1666\perlnote{In wxPerl there is just an array reference in place of {\tt n}
1667and {\tt choices}, and the client data array must have the
1668same length as the choices array.}
a660d684 1669
b0fc8832 1670\membersection{::wxIsBusy}\label{wxisbusy}
a660d684 1671
b0fc8832 1672\func{bool}{wxIsBusy}{\void}
a660d684 1673
b0fc8832
VZ
1674Returns TRUE if between two \helpref{wxBeginBusyCursor}{wxbeginbusycursor} and\rtfsp
1675\helpref{wxEndBusyCursor}{wxendbusycursor} calls.
a660d684 1676
b0fc8832 1677See also \helpref{wxBusyCursor}{wxbusycursor}.
a660d684 1678
b0fc8832 1679\wxheading{Include files}
a660d684 1680
b0fc8832 1681<wx/utils.h>
a660d684 1682
b0fc8832 1683\membersection{::wxMessageBox}\label{wxmessagebox}
a660d684 1684
b0fc8832
VZ
1685\func{int}{wxMessageBox}{\param{const wxString\& }{message}, \param{const wxString\& }{caption = ``Message"}, \param{int}{ style = wxOK \pipe wxCENTRE},\\
1686 \param{wxWindow *}{parent = NULL}, \param{int}{ x = -1}, \param{int}{ y = -1}}
a660d684 1687
b0fc8832
VZ
1688General purpose message dialog. {\it style} may be a bit list of the
1689following identifiers:
a660d684 1690
b0fc8832
VZ
1691\begin{twocollist}\itemsep=0pt
1692\twocolitem{wxYES\_NO}{Puts Yes and No buttons on the message box. May be combined with
1693wxCANCEL.}
1694\twocolitem{wxCANCEL}{Puts a Cancel button on the message box. May be combined with
1695wxYES\_NO or wxOK.}
1696\twocolitem{wxOK}{Puts an Ok button on the message box. May be combined with wxCANCEL.}
1697\twocolitem{wxCENTRE}{Centres the text.}
1698\twocolitem{wxICON\_EXCLAMATION}{Displays an exclamation mark symbol.}
1699\twocolitem{wxICON\_HAND}{Displays an error symbol.}
1700\twocolitem{wxICON\_ERROR}{Displays an error symbol - the same as wxICON\_HAND.}
1701\twocolitem{wxICON\_QUESTION}{Displays a question mark symbol.}
1702\twocolitem{wxICON\_INFORMATION}{Displays an information symbol.}
1703\end{twocollist}
a660d684 1704
b0fc8832 1705The return value is one of: wxYES, wxNO, wxCANCEL, wxOK.
a660d684 1706
b0fc8832 1707For example:
a660d684 1708
b0fc8832
VZ
1709\begin{verbatim}
1710 ...
1711 int answer = wxMessageBox("Quit program?", "Confirm",
1712 wxYES_NO | wxCANCEL, main_frame);
1713 if (answer == wxYES)
1714 delete main_frame;
1715 ...
1716\end{verbatim}
a660d684 1717
b0fc8832
VZ
1718{\it message} may contain newline characters, in which case the
1719message will be split into separate lines, to cater for large messages.
a660d684 1720
b0fc8832
VZ
1721Under Windows, the native MessageBox function is used unless wxCENTRE
1722is specified in the style, in which case a generic function is used.
1723This is because the native MessageBox function cannot centre text.
1724The symbols are not shown when the generic function is used.
a660d684 1725
b0fc8832 1726\wxheading{Include files}
a660d684 1727
b0fc8832 1728<wx/msgdlg.h>
a660d684 1729
b0fc8832 1730\membersection{::wxShowTip}\label{wxshowtip}
a660d684 1731
b0fc8832
VZ
1732\func{bool}{wxShowTip}{\param{wxWindow *}{parent},
1733 \param{wxTipProvider *}{tipProvider},
1734 \param{bool }{showAtStartup = TRUE}}
a660d684 1735
b0fc8832 1736This function shows a "startup tip" to the user.
a660d684 1737
b0fc8832 1738\docparam{parent}{The parent window for the modal dialog}
a660d684 1739
b0fc8832
VZ
1740\docparam{tipProvider}{An object which is used to get the text of the tips.
1741It may be created with the \helpref{wxCreateFileTipProvider}{wxcreatefiletipprovider} function.}
a660d684 1742
b0fc8832
VZ
1743\docparam{showAtStartup}{Should be TRUE if startup tips are shown, FALSE
1744otherwise. This is used as the initial value for "Show tips at startup"
1745checkbox which is shown in the tips dialog.}
a660d684 1746
b0fc8832 1747\wxheading{See also}
a660d684 1748
b0fc8832 1749\helpref{Tips overview}{tipsoverview}
a660d684 1750
b0fc8832 1751\wxheading{Include files}
f6bcfd97 1752
b0fc8832 1753<wx/tipdlg.h>
f6bcfd97 1754
b0fc8832 1755\section{GDI functions}\label{gdifunctions}
f6bcfd97 1756
b0fc8832 1757The following are relevant to the GDI (Graphics Device Interface).
f6bcfd97
BP
1758
1759\wxheading{Include files}
1760
b0fc8832 1761<wx/gdicmn.h>
f6bcfd97 1762
b0fc8832 1763\membersection{wxBITMAP}\label{wxbitmapmacro}
a660d684 1764
b0fc8832 1765\func{}{wxBITMAP}{bitmapName}
a660d684 1766
b0fc8832
VZ
1767This macro loads a bitmap from either application resources (on the platforms
1768for which they exist, i.e. Windows and OS2) or from an XPM file. It allows to
1769avoid using {\tt \#ifdef}s when creating bitmaps.
a660d684 1770
b0fc8832 1771\wxheading{See also}
954b8ae6 1772
b0fc8832
VZ
1773\helpref{Bitmaps and icons overview}{wxbitmapoverview},
1774\helpref{wxICON}{wxiconmacro}
a660d684 1775
b0fc8832 1776\wxheading{Include files}
954b8ae6 1777
b0fc8832 1778<wx/gdicmn.h>
a660d684 1779
b0fc8832 1780\membersection{::wxClientDisplayRect}\label{wxclientdisplayrect}
a660d684 1781
b0fc8832
VZ
1782\func{void}{wxClientDisplayRect}{\param{int *}{x}, \param{int *}{y},
1783\param{int *}{width}, \param{int *}{height}}
954b8ae6 1784
b0fc8832 1785\func{wxRect}{wxGetClientDisplayRect}{\void}
954b8ae6 1786
b0fc8832
VZ
1787Returns the dimensions of the work area on the display. On Windows
1788this means the area not covered by the taskbar, etc. Other platforms
1789are currently defaulting to the whole display until a way is found to
1790provide this info for all window managers, etc.
a660d684 1791
b0fc8832 1792\membersection{::wxColourDisplay}\label{wxcolourdisplay}
a660d684 1793
b0fc8832 1794\func{bool}{wxColourDisplay}{\void}
a660d684 1795
b0fc8832 1796Returns TRUE if the display is colour, FALSE otherwise.
a660d684 1797
b0fc8832 1798\membersection{::wxDisplayDepth}\label{wxdisplaydepth}
954b8ae6 1799
b0fc8832 1800\func{int}{wxDisplayDepth}{\void}
954b8ae6 1801
b0fc8832 1802Returns the depth of the display (a value of 1 denotes a monochrome display).
a660d684 1803
b0fc8832 1804\membersection{::wxDisplaySize}\label{wxdisplaysize}
a660d684 1805
b0fc8832 1806\func{void}{wxDisplaySize}{\param{int *}{width}, \param{int *}{height}}
a660d684 1807
b0fc8832 1808\func{wxSize}{wxGetDisplaySize}{\void}
a660d684 1809
b0fc8832 1810Returns the display size in pixels.
a660d684 1811
b0fc8832 1812\membersection{::wxDisplaySizeMM}\label{wxdisplaysizemm}
a660d684 1813
b0fc8832 1814\func{void}{wxDisplaySizeMM}{\param{int *}{width}, \param{int *}{height}}
a660d684 1815
b0fc8832 1816\func{wxSize}{wxGetDisplaySizeMM}{\void}
a660d684 1817
b0fc8832 1818Returns the display size in millimeters.
e2a6f233 1819
b0fc8832 1820\membersection{::wxDROP\_ICON}\label{wxdropicon}
e2a6f233 1821
b0fc8832 1822\func{wxIconOrCursor}{wxDROP\_ICON}{\param{const char *}{name}}
e2a6f233 1823
b0fc8832
VZ
1824This macro creates either a cursor (MSW) or an icon (elsewhere) with the given
1825name. Under MSW, the cursor is loaded from the resource file and the icon is
1826loaded from XPM file under other platforms.
1827
1828This macro should be used with
1829\helpref{wxDropSource constructor}{wxdropsourcewxdropsource}.
e2a6f233 1830
954b8ae6
JS
1831\wxheading{Include files}
1832
b0fc8832 1833<wx/dnd.h>
954b8ae6 1834
b0fc8832 1835\membersection{wxICON}\label{wxiconmacro}
e2a6f233 1836
b0fc8832 1837\func{}{wxICON}{iconName}
e2a6f233 1838
b0fc8832
VZ
1839This macro loads an icon from either application resources (on the platforms
1840for which they exist, i.e. Windows and OS2) or from an XPM file. It allows to
1841avoid using {\tt \#ifdef}s when creating icons.
e2a6f233 1842
b0fc8832 1843\wxheading{See also}
e2a6f233 1844
b0fc8832
VZ
1845\helpref{Bitmaps and icons overview}{wxbitmapoverview},
1846\helpref{wxBITMAP}{wxbitmapmacro}
e2a6f233 1847
954b8ae6
JS
1848\wxheading{Include files}
1849
b0fc8832 1850<wx/gdicmn.h>
a660d684 1851
b0fc8832 1852\membersection{::wxMakeMetafilePlaceable}\label{wxmakemetafileplaceable}
de6019fb 1853
b0fc8832
VZ
1854\func{bool}{wxMakeMetafilePlaceable}{\param{const wxString\& }{filename}, \param{int }{minX}, \param{int }{minY},
1855 \param{int }{maxX}, \param{int }{maxY}, \param{float }{scale=1.0}}
a660d684 1856
b0fc8832
VZ
1857Given a filename for an existing, valid metafile (as constructed using \helpref{wxMetafileDC}{wxmetafiledc})
1858makes it into a placeable metafile by prepending a header containing the given
1859bounding box. The bounding box may be obtained from a device context after drawing
1860into it, using the functions wxDC::MinX, wxDC::MinY, wxDC::MaxX and wxDC::MaxY.
a660d684 1861
b0fc8832
VZ
1862In addition to adding the placeable metafile header, this function adds
1863the equivalent of the following code to the start of the metafile data:
a660d684 1864
b0fc8832
VZ
1865\begin{verbatim}
1866 SetMapMode(dc, MM_ANISOTROPIC);
1867 SetWindowOrg(dc, minX, minY);
1868 SetWindowExt(dc, maxX - minX, maxY - minY);
1869\end{verbatim}
6fb26ea3 1870
b0fc8832 1871This simulates the wxMM\_TEXT mapping mode, which wxWindows assumes.
954b8ae6 1872
b0fc8832
VZ
1873Placeable metafiles may be imported by many Windows applications, and can be
1874used in RTF (Rich Text Format) files.
954b8ae6 1875
b0fc8832 1876{\it scale} allows the specification of scale for the metafile.
a660d684 1877
b0fc8832 1878This function is only available under Windows.
a660d684 1879
b0fc8832 1880\membersection{::wxSetCursor}\label{wxsetcursor}
a660d684 1881
b0fc8832 1882\func{void}{wxSetCursor}{\param{wxCursor *}{cursor}}
954b8ae6 1883
b0fc8832
VZ
1884Globally sets the cursor; only has an effect in Windows and GTK.
1885See also \helpref{wxCursor}{wxcursor}, \helpref{wxWindow::SetCursor}{wxwindowsetcursor}.
954b8ae6 1886
b0fc8832 1887\section{Printer settings}\label{printersettings}
8e193f38 1888
2bd25c5a 1889{\bf NB:} These routines are obsolete and should no longer be used!
8e193f38 1890
b0fc8832
VZ
1891The following functions are used to control PostScript printing. Under
1892Windows, PostScript output can only be sent to a file.
8e193f38
VZ
1893
1894\wxheading{Include files}
1895
b0fc8832 1896<wx/dcps.h>
a660d684 1897
b0fc8832 1898\membersection{::wxGetPrinterCommand}\label{wxgetprintercommand}
a660d684 1899
b0fc8832 1900\func{wxString}{wxGetPrinterCommand}{\void}
a660d684 1901
b0fc8832 1902Gets the printer command used to print a file. The default is {\tt lpr}.
a660d684 1903
b0fc8832 1904\membersection{::wxGetPrinterFile}\label{wxgetprinterfile}
a660d684 1905
b0fc8832 1906\func{wxString}{wxGetPrinterFile}{\void}
a660d684 1907
b0fc8832 1908Gets the PostScript output filename.
a660d684 1909
b0fc8832 1910\membersection{::wxGetPrinterMode}\label{wxgetprintermode}
a660d684 1911
b0fc8832 1912\func{int}{wxGetPrinterMode}{\void}
954b8ae6 1913
b0fc8832
VZ
1914Gets the printing mode controlling where output is sent (PS\_PREVIEW, PS\_FILE or PS\_PRINTER).
1915The default is PS\_PREVIEW.
954b8ae6 1916
b0fc8832 1917\membersection{::wxGetPrinterOptions}\label{wxgetprinteroptions}
954b8ae6 1918
b0fc8832 1919\func{wxString}{wxGetPrinterOptions}{\void}
954b8ae6 1920
b0fc8832 1921Gets the additional options for the print command (e.g. specific printer). The default is nothing.
954b8ae6 1922
b0fc8832 1923\membersection{::wxGetPrinterOrientation}\label{wxgetprinterorientation}
954b8ae6 1924
b0fc8832 1925\func{int}{wxGetPrinterOrientation}{\void}
a660d684 1926
b0fc8832 1927Gets the orientation (PS\_PORTRAIT or PS\_LANDSCAPE). The default is PS\_PORTRAIT.
a660d684 1928
b0fc8832 1929\membersection{::wxGetPrinterPreviewCommand}\label{wxgetprinterpreviewcommand}
8e193f38 1930
b0fc8832 1931\func{wxString}{wxGetPrinterPreviewCommand}{\void}
a660d684 1932
b0fc8832 1933Gets the command used to view a PostScript file. The default depends on the platform.
954b8ae6 1934
b0fc8832 1935\membersection{::wxGetPrinterScaling}\label{wxgetprinterscaling}
954b8ae6 1936
b0fc8832 1937\func{void}{wxGetPrinterScaling}{\param{float *}{x}, \param{float *}{y}}
a660d684 1938
b0fc8832 1939Gets the scaling factor for PostScript output. The default is 1.0, 1.0.
a660d684 1940
b0fc8832 1941\membersection{::wxGetPrinterTranslation}\label{wxgetprintertranslation}
a660d684 1942
b0fc8832 1943\func{void}{wxGetPrinterTranslation}{\param{float *}{x}, \param{float *}{y}}
954b8ae6 1944
b0fc8832 1945Gets the translation (from the top left corner) for PostScript output. The default is 0.0, 0.0.
954b8ae6 1946
b0fc8832 1947\membersection{::wxSetPrinterCommand}\label{wxsetprintercommand}
a660d684 1948
b0fc8832 1949\func{void}{wxSetPrinterCommand}{\param{const wxString\& }{command}}
a660d684 1950
b0fc8832 1951Sets the printer command used to print a file. The default is {\tt lpr}.
a660d684 1952
b0fc8832 1953\membersection{::wxSetPrinterFile}\label{wxsetprinterfile}
cd6ce4a9 1954
b0fc8832 1955\func{void}{wxSetPrinterFile}{\param{const wxString\& }{filename}}
f6bcfd97 1956
b0fc8832 1957Sets the PostScript output filename.
a660d684 1958
b0fc8832 1959\membersection{::wxSetPrinterMode}\label{wxsetprintermode}
a660d684 1960
b0fc8832 1961\func{void}{wxSetPrinterMode}{\param{int }{mode}}
a660d684 1962
b0fc8832
VZ
1963Sets the printing mode controlling where output is sent (PS\_PREVIEW, PS\_FILE or PS\_PRINTER).
1964The default is PS\_PREVIEW.
cd6ce4a9 1965
b0fc8832 1966\membersection{::wxSetPrinterOptions}\label{wxsetprinteroptions}
a660d684 1967
b0fc8832 1968\func{void}{wxSetPrinterOptions}{\param{const wxString\& }{options}}
e6045e08 1969
b0fc8832 1970Sets the additional options for the print command (e.g. specific printer). The default is nothing.
a660d684 1971
b0fc8832 1972\membersection{::wxSetPrinterOrientation}\label{wxsetprinterorientation}
eafc087e 1973
b0fc8832 1974\func{void}{wxSetPrinterOrientation}{\param{int}{ orientation}}
cd6ce4a9 1975
b0fc8832 1976Sets the orientation (PS\_PORTRAIT or PS\_LANDSCAPE). The default is PS\_PORTRAIT.
a660d684 1977
b0fc8832 1978\membersection{::wxSetPrinterPreviewCommand}\label{wxsetprinterpreviewcommand}
954b8ae6 1979
b0fc8832 1980\func{void}{wxSetPrinterPreviewCommand}{\param{const wxString\& }{command}}
954b8ae6 1981
b0fc8832 1982Sets the command used to view a PostScript file. The default depends on the platform.
a660d684 1983
b0fc8832 1984\membersection{::wxSetPrinterScaling}\label{wxsetprinterscaling}
a660d684 1985
b0fc8832 1986\func{void}{wxSetPrinterScaling}{\param{float }{x}, \param{float }{y}}
a660d684 1987
b0fc8832 1988Sets the scaling factor for PostScript output. The default is 1.0, 1.0.
954b8ae6 1989
b0fc8832 1990\membersection{::wxSetPrinterTranslation}\label{wxsetprintertranslation}
954b8ae6 1991
b0fc8832 1992\func{void}{wxSetPrinterTranslation}{\param{float }{x}, \param{float }{y}}
a660d684 1993
b0fc8832 1994Sets the translation (from the top left corner) for PostScript output. The default is 0.0, 0.0.
a660d684 1995
b0fc8832
VZ
1996\section{Clipboard functions}\label{clipsboard}
1997
1998These clipboard functions are implemented for Windows only. The use of these functions
1999is deprecated and the code is no longer maintained. Use the \helpref{wxClipboard}{wxclipboard}
2000class instead.
a660d684 2001
954b8ae6
JS
2002\wxheading{Include files}
2003
b0fc8832 2004<wx/clipbrd.h>
954b8ae6 2005
f4fcc291 2006\membersection{::wxClipboardOpen}\label{functionwxclipboardopen}
a660d684 2007
b0fc8832 2008\func{bool}{wxClipboardOpen}{\void}
a660d684 2009
b0fc8832 2010Returns TRUE if this application has already opened the clipboard.
a660d684 2011
b0fc8832 2012\membersection{::wxCloseClipboard}\label{wxcloseclipboard}
954b8ae6 2013
b0fc8832 2014\func{bool}{wxCloseClipboard}{\void}
954b8ae6 2015
b0fc8832 2016Closes the clipboard to allow other applications to use it.
a660d684 2017
b0fc8832 2018\membersection{::wxEmptyClipboard}\label{wxemptyclipboard}
a660d684 2019
b0fc8832 2020\func{bool}{wxEmptyClipboard}{\void}
a660d684 2021
b0fc8832 2022Empties the clipboard.
954b8ae6 2023
b0fc8832 2024\membersection{::wxEnumClipboardFormats}\label{wxenumclipboardformats}
954b8ae6 2025
b0fc8832 2026\func{int}{wxEnumClipboardFormats}{\param{int}{dataFormat}}
a660d684 2027
b0fc8832
VZ
2028Enumerates the formats found in a list of available formats that belong
2029to the clipboard. Each call to this function specifies a known
2030available format; the function returns the format that appears next in
2031the list.
a660d684 2032
b0fc8832
VZ
2033{\it dataFormat} specifies a known format. If this parameter is zero,
2034the function returns the first format in the list.
a660d684 2035
b0fc8832
VZ
2036The return value specifies the next known clipboard data format if the
2037function is successful. It is zero if the {\it dataFormat} parameter specifies
2038the last format in the list of available formats, or if the clipboard
2039is not open.
a660d684 2040
b0fc8832
VZ
2041Before it enumerates the formats function, an application must open the clipboard by using the
2042wxOpenClipboard function.
954b8ae6 2043
b0fc8832 2044\membersection{::wxGetClipboardData}\label{wxgetclipboarddata}
954b8ae6 2045
b0fc8832 2046\func{wxObject *}{wxGetClipboardData}{\param{int}{dataFormat}}
26a80c22 2047
b0fc8832 2048Gets data from the clipboard.
26a80c22 2049
b0fc8832 2050{\it dataFormat} may be one of:
26a80c22 2051
b0fc8832
VZ
2052\begin{itemize}\itemsep=0pt
2053\item wxCF\_TEXT or wxCF\_OEMTEXT: returns a pointer to new memory containing a null-terminated text string.
2054\item wxCF\_BITMAP: returns a new wxBitmap.
2055\end{itemize}
26a80c22 2056
b0fc8832 2057The clipboard must have previously been opened for this call to succeed.
26a80c22 2058
b0fc8832 2059\membersection{::wxGetClipboardFormatName}\label{wxgetclipboardformatname}
26a80c22 2060
b0fc8832 2061\func{bool}{wxGetClipboardFormatName}{\param{int}{dataFormat}, \param{const wxString\& }{formatName}, \param{int}{maxCount}}
a660d684 2062
b0fc8832
VZ
2063Gets the name of a registered clipboard format, and puts it into the buffer {\it formatName} which is of maximum
2064length {\it maxCount}. {\it dataFormat} must not specify a predefined clipboard format.
a660d684 2065
b0fc8832 2066\membersection{::wxIsClipboardFormatAvailable}\label{wxisclipboardformatavailable}
a660d684 2067
b0fc8832 2068\func{bool}{wxIsClipboardFormatAvailable}{\param{int}{dataFormat}}
954b8ae6 2069
b0fc8832 2070Returns TRUE if the given data format is available on the clipboard.
954b8ae6 2071
b0fc8832 2072\membersection{::wxOpenClipboard}\label{wxopenclipboard}
a660d684 2073
b0fc8832 2074\func{bool}{wxOpenClipboard}{\void}
a660d684 2075
b0fc8832 2076Opens the clipboard for passing data to it or getting data from it.
a660d684 2077
b0fc8832 2078\membersection{::wxRegisterClipboardFormat}\label{wxregisterclipboardformat}
954b8ae6 2079
b0fc8832 2080\func{int}{wxRegisterClipboardFormat}{\param{const wxString\& }{formatName}}
954b8ae6 2081
b0fc8832 2082Registers the clipboard data format name and returns an identifier.
a660d684 2083
b0fc8832 2084\membersection{::wxSetClipboardData}\label{wxsetclipboarddata}
a660d684 2085
b0fc8832 2086\func{bool}{wxSetClipboardData}{\param{int}{dataFormat}, \param{wxObject *}{data}, \param{int}{width}, \param{int}{height}}
c51deffc 2087
b0fc8832 2088Passes data to the clipboard.
c51deffc 2089
b0fc8832 2090{\it dataFormat} may be one of:
a660d684 2091
b0fc8832
VZ
2092\begin{itemize}\itemsep=0pt
2093\item wxCF\_TEXT or wxCF\_OEMTEXT: {\it data} is a null-terminated text string.
2094\item wxCF\_BITMAP: {\it data} is a wxBitmap.
2095\item wxCF\_DIB: {\it data} is a wxBitmap. The bitmap is converted to a DIB (device independent bitmap).
2096\item wxCF\_METAFILE: {\it data} is a wxMetafile. {\it width} and {\it height} are used to give recommended dimensions.
2097\end{itemize}
954b8ae6 2098
b0fc8832 2099The clipboard must have previously been opened for this call to succeed.
954b8ae6 2100
b0fc8832 2101\section{Miscellaneous functions}\label{miscellany}
a660d684 2102
b0fc8832 2103\membersection{::wxNewId}\label{wxnewid}
a660d684 2104
b0fc8832
VZ
2105\func{long}{wxNewId}{\void}
2106
2107Generates an integer identifier unique to this run of the program.
a660d684 2108
954b8ae6
JS
2109\wxheading{Include files}
2110
2111<wx/utils.h>
2112
b0fc8832 2113\membersection{::wxRegisterId}\label{wxregisterid}
a660d684 2114
b0fc8832 2115\func{void}{wxRegisterId}{\param{long}{ id}}
a660d684 2116
b0fc8832
VZ
2117Ensures that ids subsequently generated by {\bf NewId} do not clash with
2118the given {\bf id}.
a660d684 2119
954b8ae6
JS
2120\wxheading{Include files}
2121
2122<wx/utils.h>
2123
b0fc8832 2124\membersection{::wxDDECleanUp}\label{wxddecleanup}
bdc72a22 2125
b0fc8832 2126\func{void}{wxDDECleanUp}{\void}
bdc72a22 2127
b0fc8832
VZ
2128Called when wxWindows exits, to clean up the DDE system. This no longer needs to be
2129called by the application.
bdc72a22 2130
b0fc8832 2131See also \helpref{wxDDEInitialize}{wxddeinitialize}.
bdc72a22
VZ
2132
2133\wxheading{Include files}
2134
b0fc8832 2135<wx/dde.h>
a660d684 2136
b0fc8832 2137\membersection{::wxDDEInitialize}\label{wxddeinitialize}
a660d684 2138
b0fc8832 2139\func{void}{wxDDEInitialize}{\void}
a660d684 2140
b0fc8832 2141Initializes the DDE system. May be called multiple times without harm.
a660d684 2142
b0fc8832
VZ
2143This no longer needs to be called by the application: it will be called
2144by wxWindows if necessary.
bdc72a22 2145
b0fc8832
VZ
2146See also \helpref{wxDDEServer}{wxddeserver}, \helpref{wxDDEClient}{wxddeclient}, \helpref{wxDDEConnection}{wxddeconnection},
2147\helpref{wxDDECleanUp}{wxddecleanup}.
bdc72a22 2148
954b8ae6
JS
2149\wxheading{Include files}
2150
b0fc8832 2151<wx/dde.h>
a660d684 2152
b0fc8832 2153\membersection{::wxEnableTopLevelWindows}\label{wxenabletoplevelwindows}
a660d684 2154
b0fc8832 2155\func{void}{wxEnableTopLevelWindow}{\param{bool}{ enable = TRUE}}
a660d684 2156
b0fc8832
VZ
2157This function enables or disables all top level windows. It is used by
2158\helpref{::wxSafeYield}{wxsafeyield}.
a660d684 2159
954b8ae6
JS
2160\wxheading{Include files}
2161
2162<wx/utils.h>
2163
b0fc8832 2164\membersection{::wxFindMenuItemId}\label{wxfindmenuitemid}
a660d684 2165
b0fc8832 2166\func{int}{wxFindMenuItemId}{\param{wxFrame *}{frame}, \param{const wxString\& }{menuString}, \param{const wxString\& }{itemString}}
a660d684 2167
b0fc8832 2168Find a menu item identifier associated with the given frame's menu bar.
a660d684 2169
954b8ae6
JS
2170\wxheading{Include files}
2171
2172<wx/utils.h>
2173
b0fc8832 2174\membersection{::wxFindWindowByLabel}\label{wxfindwindowbylabel}
c51deffc 2175
b0fc8832 2176\func{wxWindow *}{wxFindWindowByLabel}{\param{const wxString\& }{label}, \param{wxWindow *}{parent=NULL}}
c51deffc 2177
146ba0fe
VZ
2178{\bf NB:} This function is obsolete, please use
2179\helpref{wxWindow::FindWindowByLabel}{wxwindowfindwindowbylabel} instead.
2180
b0fc8832
VZ
2181Find a window by its label. Depending on the type of window, the label may be a window title
2182or panel item label. If {\it parent} is NULL, the search will start from all top-level
2183frames and dialog boxes; if non-NULL, the search will be limited to the given window hierarchy.
2184The search is recursive in both cases.
c51deffc
VZ
2185
2186\wxheading{Include files}
2187
2188<wx/utils.h>
2189
b0fc8832
VZ
2190\membersection{::wxFindWindowByName}\label{wxfindwindowbyname}
2191
2192\func{wxWindow *}{wxFindWindowByName}{\param{const wxString\& }{name}, \param{wxWindow *}{parent=NULL}}
a660d684 2193
146ba0fe
VZ
2194{\bf NB:} This function is obsolete, please use
2195\helpref{wxWindow::FindWindowByName}{wxwindowfindwindowbyname} instead.
2196
b0fc8832
VZ
2197Find a window by its name (as given in a window constructor or {\bf Create} function call).
2198If {\it parent} is NULL, the search will start from all top-level
2199frames and dialog boxes; if non-NULL, the search will be limited to the given window hierarchy.
2200The search is recursive in both cases.
a660d684 2201
b0fc8832 2202If no such named window is found, {\bf wxFindWindowByLabel} is called.
a660d684 2203
954b8ae6
JS
2204\wxheading{Include files}
2205
2206<wx/utils.h>
2207
b0fc8832 2208\membersection{::wxFindWindowAtPoint}\label{wxfindwindowatpoint}
6787e41e 2209
b0fc8832 2210\func{wxWindow *}{wxFindWindowAtPoint}{\param{const wxPoint\& }{pt}}
6787e41e 2211
b0fc8832
VZ
2212Find the deepest window at the given mouse position in screen coordinates,
2213returning the window if found, or NULL if not.
4d01e583 2214
b0fc8832 2215\membersection{::wxFindWindowAtPointer}\label{wxfindwindowatpointer}
4d01e583 2216
b0fc8832 2217\func{wxWindow *}{wxFindWindowAtPointer}{\param{wxPoint\& }{pt}}
4d01e583 2218
b0fc8832
VZ
2219Find the deepest window at the mouse pointer position, returning the window
2220and current pointer position in screen coordinates.
4d01e583 2221
b0fc8832 2222\membersection{::wxGetActiveWindow}\label{wxgetactivewindow}
4d01e583 2223
b0fc8832 2224\func{wxWindow *}{wxGetActiveWindow}{\void}
4d01e583 2225
b0fc8832 2226Gets the currently active window (Windows only).
4d01e583 2227
b0fc8832 2228\wxheading{Include files}
4d01e583 2229
b0fc8832 2230<wx/windows.h>
4d01e583 2231
b0fc8832 2232\membersection{::wxGetDisplayName}\label{wxgetdisplayname}
4d01e583 2233
b0fc8832 2234\func{wxString}{wxGetDisplayName}{\void}
4d01e583 2235
b0fc8832 2236Under X only, returns the current display name. See also \helpref{wxSetDisplayName}{wxsetdisplayname}.
4d01e583
VZ
2237
2238\wxheading{Include files}
2239
b0fc8832 2240<wx/utils.h>
4d01e583 2241
b0fc8832 2242\membersection{::wxGetMousePosition}\label{wxgetmouseposition}
4d01e583 2243
b0fc8832 2244\func{wxPoint}{wxGetMousePosition}{\void}
4d01e583 2245
b0fc8832 2246Returns the mouse position in screen coordinates.
4d01e583
VZ
2247
2248\wxheading{Include files}
2249
2250<wx/utils.h>
2251
b0fc8832 2252\membersection{::wxGetResource}\label{wxgetresource}
a660d684 2253
b0fc8832
VZ
2254\func{bool}{wxGetResource}{\param{const wxString\& }{section}, \param{const wxString\& }{entry},
2255 \param{const wxString\& *}{value}, \param{const wxString\& }{file = NULL}}
a660d684 2256
b0fc8832
VZ
2257\func{bool}{wxGetResource}{\param{const wxString\& }{section}, \param{const wxString\& }{entry},
2258 \param{float *}{value}, \param{const wxString\& }{file = NULL}}
a660d684 2259
b0fc8832
VZ
2260\func{bool}{wxGetResource}{\param{const wxString\& }{section}, \param{const wxString\& }{entry},
2261 \param{long *}{value}, \param{const wxString\& }{file = NULL}}
50567b69 2262
b0fc8832
VZ
2263\func{bool}{wxGetResource}{\param{const wxString\& }{section}, \param{const wxString\& }{entry},
2264 \param{int *}{value}, \param{const wxString\& }{file = NULL}}
50567b69 2265
b0fc8832
VZ
2266Gets a resource value from the resource database (for example, WIN.INI, or
2267.Xdefaults). If {\it file} is NULL, WIN.INI or .Xdefaults is used,
2268otherwise the specified file is used.
50567b69 2269
b0fc8832
VZ
2270Under X, if an application class (wxApp::GetClassName) has been defined,
2271it is appended to the string /usr/lib/X11/app-defaults/ to try to find
2272an applications default file when merging all resource databases.
50567b69 2273
b0fc8832
VZ
2274The reason for passing the result in an argument is that it
2275can be convenient to define a default value, which gets overridden
2276if the value exists in the resource file. It saves a separate
2277test for that resource's existence, and it also allows
2278the overloading of the function for different types.
50567b69 2279
b0fc8832 2280See also \helpref{wxWriteResource}{wxwriteresource}, \helpref{wxConfigBase}{wxconfigbase}.
a660d684 2281
954b8ae6 2282\wxheading{Include files}
a660d684 2283
954b8ae6 2284<wx/utils.h>
a660d684 2285
33b494d6
VZ
2286\membersection{::wxGetTopLevelParent}\label{wxgettoplevelparent}
2287
2288\func{wxWindow *}{wxGetTopLevelParent}{\param{wxWindow }{*win}}
2289
2290Returns the first top level parent of the given window, or in other words, the
2291frame or dialog containing it, or {\tt NULL}.
2292
2293\wxheading{Include files}
2294
2295<wx/window.h>
2296
a660d684
KB
2297\membersection{::wxLoadUserResource}\label{wxloaduserresource}
2298
2299\func{wxString}{wxLoadUserResource}{\param{const wxString\& }{resourceName}, \param{const wxString\& }{resourceType=``TEXT"}}
2300
2301Loads a user-defined Windows resource as a string. If the resource is found, the function creates
2302a new character array and copies the data into it. A pointer to this data is returned. If unsuccessful, NULL is returned.
2303
2304The resource must be defined in the {\tt .rc} file using the following syntax:
2305
2306\begin{verbatim}
2307myResource TEXT file.ext
2308\end{verbatim}
2309
2310where {\tt file.ext} is a file that the resource compiler can find.
2311
2312One use of this is to store {\tt .wxr} files instead of including the data in the C++ file; some compilers
2313cannot cope with the long strings in a {\tt .wxr} file. The resource data can then be parsed
2314using \helpref{wxResourceParseString}{wxresourceparsestring}.
2315
2316This function is available under Windows only.
2317
954b8ae6
JS
2318\wxheading{Include files}
2319
2320<wx/utils.h>
2321
a660d684
KB
2322\membersection{::wxPostDelete}\label{wxpostdelete}
2323
2324\func{void}{wxPostDelete}{\param{wxObject *}{object}}
2325
954b8ae6 2326Tells the system to delete the specified object when
a660d684
KB
2327all other events have been processed. In some environments, it is
2328necessary to use this instead of deleting a frame directly with the
954b8ae6 2329delete operator, because some GUIs will still send events to a deleted window.
a660d684
KB
2330
2331Now obsolete: use \helpref{wxWindow::Close}{wxwindowclose} instead.
2332
954b8ae6
JS
2333\wxheading{Include files}
2334
2335<wx/utils.h>
2336
8e193f38
VZ
2337\membersection{::wxPostEvent}\label{wxpostevent}
2338
2339\func{void}{wxPostEvent}{\param{wxEvtHandler *}{dest}, \param{wxEvent\& }{event}}
2340
9a9e73f6
RR
2341In a GUI application, this function posts {\it event} to the specified {\it dest}
2342object using \helpref{wxEvtHandler::AddPendingEvent}{wxevthandleraddpendingevent}.
2343Otherwise, it dispatches {\it event} immediately using
2344\helpref{wxEvtHandler::ProcessEvent}{wxevthandlerprocessevent}.
2345See the respective documentation for details (and caveats).
8e193f38
VZ
2346
2347\wxheading{Include files}
2348
2349<wx/app.h>
2350
a660d684
KB
2351\membersection{::wxSetDisplayName}\label{wxsetdisplayname}
2352
2353\func{void}{wxSetDisplayName}{\param{const wxString\& }{displayName}}
2354
2355Under X only, sets the current display name. This is the X host and display name such
2356as ``colonsay:0.0", and the function indicates which display should be used for creating
2357windows from this point on. Setting the display within an application allows multiple
2358displays to be used.
2359
2360See also \helpref{wxGetDisplayName}{wxgetdisplayname}.
2361
954b8ae6
JS
2362\wxheading{Include files}
2363
2364<wx/utils.h>
2365
b0fc8832 2366\membersection{::wxStripMenuCodes}\label{wxstripmenucodes}
a660d684 2367
8a2c6ef8
JS
2368\func{wxString}{wxStripMenuCodes}{\param{const wxString\& }{in}}
2369
7ac13b21 2370\func{void}{wxStripMenuCodes}{\param{char *}{in}, \param{char *}{out}}
a660d684 2371
2bd25c5a 2372{\bf NB:} This function is obsolete, please use
b0fc8832
VZ
2373\helpref{wxMenuItem::GetLabelFromText}{wxmenuitemgetlabelfromtext} instead.
2374
a660d684 2375Strips any menu codes from {\it in} and places the result
8a2c6ef8
JS
2376in {\it out} (or returns the new string, in the first form).
2377
2378Menu codes include \& (mark the next character with an underline
a660d684
KB
2379as a keyboard shortkey in Windows and Motif) and $\backslash$t (tab in Windows).
2380
954b8ae6
JS
2381\wxheading{Include files}
2382
2383<wx/utils.h>
2384
a660d684
KB
2385\membersection{::wxWriteResource}\label{wxwriteresource}
2386
2387\func{bool}{wxWriteResource}{\param{const wxString\& }{section}, \param{const wxString\& }{entry},
2388 \param{const wxString\& }{value}, \param{const wxString\& }{file = NULL}}
2389
2390\func{bool}{wxWriteResource}{\param{const wxString\& }{section}, \param{const wxString\& }{entry},
2391 \param{float }{value}, \param{const wxString\& }{file = NULL}}
2392
2393\func{bool}{wxWriteResource}{\param{const wxString\& }{section}, \param{const wxString\& }{entry},
2394 \param{long }{value}, \param{const wxString\& }{file = NULL}}
2395
2396\func{bool}{wxWriteResource}{\param{const wxString\& }{section}, \param{const wxString\& }{entry},
2397 \param{int }{value}, \param{const wxString\& }{file = NULL}}
2398
2399Writes a resource value into the resource database (for example, WIN.INI, or
2400.Xdefaults). If {\it file} is NULL, WIN.INI or .Xdefaults is used,
2401otherwise the specified file is used.
2402
2403Under X, the resource databases are cached until the internal function
b0fc8832
VZ
2404\rtfsp{\bf wxFlushResources} is called automatically on exit, when
2405all updated resource databases are written to their files.
8a293590 2406
b0fc8832
VZ
2407Note that it is considered bad manners to write to the .Xdefaults
2408file under Unix, although the WIN.INI file is fair game under Windows.
8a293590 2409
b0fc8832 2410See also \helpref{wxGetResource}{wxgetresource}, \helpref{wxConfigBase}{wxconfigbase}.
8a293590
RR
2411
2412\wxheading{Include files}
2413
b0fc8832 2414<wx/utils.h>
8a293590 2415
81c9effa 2416\section{Byte order macros}\label{byteordermacros}
a660d684 2417
b0fc8832
VZ
2418The endian-ness issues (that is the difference between big-endian and
2419little-endian architectures) are important for the portable programs working
2420with the external binary data (for example, data files or data coming from
2421network) which is usually in some fixed, platform-independent format. The
2422macros are helpful for transforming the data to the correct format.
a660d684 2423
0180dad6
RR
2424\membersection{wxINTXX\_SWAP\_ALWAYS}\label{intswapalways}
2425
2426\func{wxInt32}{wxINT32\_SWAP\_ALWAYS}{\param{wxInt32 }{value}}
2427
2428\func{wxUint32}{wxUINT32\_SWAP\_ALWAYS}{\param{wxUint32 }{value}}
2429
2430\func{wxInt16}{wxINT16\_SWAP\_ALWAYS}{\param{wxInt16 }{value}}
2431
2432\func{wxUint16}{wxUINT16\_SWAP\_ALWAYS}{\param{wxUint16 }{value}}
2433
b0fc8832
VZ
2434These macros will swap the bytes of the {\it value} variable from little
2435endian to big endian or vice versa unconditionally, i.e. independently of the
2436current platform.
0180dad6
RR
2437
2438\membersection{wxINTXX\_SWAP\_ON\_BE}\label{intswaponbe}
2439
2440\func{wxInt32}{wxINT32\_SWAP\_ON\_BE}{\param{wxInt32 }{value}}
2441
2442\func{wxUint32}{wxUINT32\_SWAP\_ON\_BE}{\param{wxUint32 }{value}}
2443
2444\func{wxInt16}{wxINT16\_SWAP\_ON\_BE}{\param{wxInt16 }{value}}
2445
2446\func{wxUint16}{wxUINT16\_SWAP\_ON\_BE}{\param{wxUint16 }{value}}
2447
2448This macro will swap the bytes of the {\it value} variable from little
2449endian to big endian or vice versa if the program is compiled on a
ec5d7799 2450big-endian architecture (such as Sun work stations). If the program has
0180dad6
RR
2451been compiled on a little-endian architecture, the value will be unchanged.
2452
ec5d7799 2453Use these macros to read data from and write data to a file that stores
b0fc8832 2454data in little-endian (for example Intel i386) format.
0180dad6
RR
2455
2456\membersection{wxINTXX\_SWAP\_ON\_LE}\label{intswaponle}
2457
2458\func{wxInt32}{wxINT32\_SWAP\_ON\_LE}{\param{wxInt32 }{value}}
2459
2460\func{wxUint32}{wxUINT32\_SWAP\_ON\_LE}{\param{wxUint32 }{value}}
2461
2462\func{wxInt16}{wxINT16\_SWAP\_ON\_LE}{\param{wxInt16 }{value}}
2463
2464\func{wxUint16}{wxUINT16\_SWAP\_ON\_LE}{\param{wxUint16 }{value}}
2465
2466This macro will swap the bytes of the {\it value} variable from little
2467endian to big endian or vice versa if the program is compiled on a
ec5d7799 2468little-endian architecture (such as Intel PCs). If the program has
0180dad6
RR
2469been compiled on a big-endian architecture, the value will be unchanged.
2470
ec5d7799 2471Use these macros to read data from and write data to a file that stores
b0fc8832
VZ
2472data in big-endian format.
2473
f4fcc291 2474\section{RTTI functions}\label{rttimacros}
b0fc8832
VZ
2475
2476wxWindows uses its own RTTI ("run-time type identification") system which
2477predates the current standard C++ RTTI and so is kept for backwards
2edb0bde 2478compatibility reasons but also because it allows some things which the
b0fc8832
VZ
2479standard RTTI doesn't directly support (such as creating a class from its
2480name).
2481
2482The standard C++ RTTI can be used in the user code without any problems and in
2483general you shouldn't need to use the functions and the macros in this section
2484unless you are thinking of modifying or adding any wxWindows classes.
2485
2486\wxheading{See also}
2487
2488\helpref{RTTI overview}{runtimeclassoverview}
0180dad6 2489
a660d684
KB
2490\membersection{CLASSINFO}\label{classinfo}
2491
2492\func{wxClassInfo *}{CLASSINFO}{className}
2493
2494Returns a pointer to the wxClassInfo object associated with this class.
2495
954b8ae6
JS
2496\wxheading{Include files}
2497
2498<wx/object.h>
2499
b0fc8832 2500\membersection{DECLARE\_ABSTRACT\_CLASS}\label{declareabstractclass}
a660d684
KB
2501
2502\func{}{DECLARE\_ABSTRACT\_CLASS}{className}
2503
2504Used inside a class declaration to declare that the class should be
2505made known to the class hierarchy, but objects of this class cannot be created
2506dynamically. The same as DECLARE\_CLASS.
2507
2508Example:
2509
2510\begin{verbatim}
2511class wxCommand: public wxObject
2512{
2513 DECLARE_ABSTRACT_CLASS(wxCommand)
2514
2515 private:
2516 ...
2517 public:
2518 ...
2519};
2520\end{verbatim}
2521
954b8ae6
JS
2522\wxheading{Include files}
2523
2524<wx/object.h>
2525
a660d684
KB
2526\membersection{DECLARE\_APP}\label{declareapp}
2527
2528\func{}{DECLARE\_APP}{className}
2529
2530This is used in headers to create a forward declaration of the wxGetApp function implemented
2531by IMPLEMENT\_APP. It creates the declaration {\tt className\& wxGetApp(void)}.
2532
2533Example:
2534
2535\begin{verbatim}
2536 DECLARE_APP(MyApp)
2537\end{verbatim}
2538
954b8ae6
JS
2539\wxheading{Include files}
2540
2541<wx/app.h>
2542
b0fc8832 2543\membersection{DECLARE\_CLASS}\label{declareclass}
a660d684
KB
2544
2545\func{}{DECLARE\_CLASS}{className}
2546
2547Used inside a class declaration to declare that the class should be
2548made known to the class hierarchy, but objects of this class cannot be created
2549dynamically. The same as DECLARE\_ABSTRACT\_CLASS.
2550
954b8ae6
JS
2551\wxheading{Include files}
2552
2553<wx/object.h>
2554
b0fc8832 2555\membersection{DECLARE\_DYNAMIC\_CLASS}\label{declaredynamicclass}
a660d684
KB
2556
2557\func{}{DECLARE\_DYNAMIC\_CLASS}{className}
2558
2559Used inside a class declaration to declare that the objects of this class should be dynamically
f6bcfd97 2560creatable from run-time type information.
a660d684
KB
2561
2562Example:
2563
2564\begin{verbatim}
2565class wxFrame: public wxWindow
2566{
2567 DECLARE_DYNAMIC_CLASS(wxFrame)
2568
2569 private:
2570 const wxString\& frameTitle;
2571 public:
2572 ...
2573};
2574\end{verbatim}
2575
954b8ae6
JS
2576\wxheading{Include files}
2577
2578<wx/object.h>
2579
b0fc8832 2580\membersection{IMPLEMENT\_ABSTRACT\_CLASS}\label{implementabstractclass}
a660d684
KB
2581
2582\func{}{IMPLEMENT\_ABSTRACT\_CLASS}{className, baseClassName}
2583
2584Used in a C++ implementation file to complete the declaration of
2585a class that has run-time type information. The same as IMPLEMENT\_CLASS.
2586
2587Example:
2588
2589\begin{verbatim}
2590IMPLEMENT_ABSTRACT_CLASS(wxCommand, wxObject)
2591
2592wxCommand::wxCommand(void)
2593{
2594...
2595}
2596\end{verbatim}
2597
954b8ae6
JS
2598\wxheading{Include files}
2599
2600<wx/object.h>
2601
b0fc8832 2602\membersection{IMPLEMENT\_ABSTRACT\_CLASS2}\label{implementabstractclass2}
a660d684
KB
2603
2604\func{}{IMPLEMENT\_ABSTRACT\_CLASS2}{className, baseClassName1, baseClassName2}
2605
2606Used in a C++ implementation file to complete the declaration of
2607a class that has run-time type information and two base classes. The same as IMPLEMENT\_CLASS2.
2608
954b8ae6
JS
2609\wxheading{Include files}
2610
2611<wx/object.h>
2612
a660d684
KB
2613\membersection{IMPLEMENT\_APP}\label{implementapp}
2614
2615\func{}{IMPLEMENT\_APP}{className}
2616
2617This is used in the application class implementation file to make the application class known to
2618wxWindows for dynamic construction. You use this instead of
2619
2620Old form:
2621
2622\begin{verbatim}
2623 MyApp myApp;
2624\end{verbatim}
2625
2626New form:
2627
2628\begin{verbatim}
2629 IMPLEMENT_APP(MyApp)
2630\end{verbatim}
2631
2632See also \helpref{DECLARE\_APP}{declareapp}.
2633
954b8ae6
JS
2634\wxheading{Include files}
2635
2636<wx/app.h>
2637
b0fc8832 2638\membersection{IMPLEMENT\_CLASS}\label{implementclass}
a660d684
KB
2639
2640\func{}{IMPLEMENT\_CLASS}{className, baseClassName}
2641
2642Used in a C++ implementation file to complete the declaration of
2643a class that has run-time type information. The same as IMPLEMENT\_ABSTRACT\_CLASS.
2644
954b8ae6
JS
2645\wxheading{Include files}
2646
2647<wx/object.h>
2648
b0fc8832 2649\membersection{IMPLEMENT\_CLASS2}\label{implementclass2}
a660d684
KB
2650
2651\func{}{IMPLEMENT\_CLASS2}{className, baseClassName1, baseClassName2}
2652
2653Used in a C++ implementation file to complete the declaration of a
2654class that has run-time type information and two base classes. The
2655same as IMPLEMENT\_ABSTRACT\_CLASS2.
2656
954b8ae6
JS
2657\wxheading{Include files}
2658
2659<wx/object.h>
2660
b0fc8832 2661\membersection{IMPLEMENT\_DYNAMIC\_CLASS}\label{implementdynamicclass}
a660d684
KB
2662
2663\func{}{IMPLEMENT\_DYNAMIC\_CLASS}{className, baseClassName}
2664
2665Used in a C++ implementation file to complete the declaration of
2666a class that has run-time type information, and whose instances
2667can be created dynamically.
2668
2669Example:
2670
2671\begin{verbatim}
2672IMPLEMENT_DYNAMIC_CLASS(wxFrame, wxWindow)
2673
2674wxFrame::wxFrame(void)
2675{
2676...
2677}
2678\end{verbatim}
2679
954b8ae6
JS
2680\wxheading{Include files}
2681
2682<wx/object.h>
2683
b0fc8832 2684\membersection{IMPLEMENT\_DYNAMIC\_CLASS2}\label{implementdynamicclass2}
a660d684
KB
2685
2686\func{}{IMPLEMENT\_DYNAMIC\_CLASS2}{className, baseClassName1, baseClassName2}
2687
2688Used in a C++ implementation file to complete the declaration of
2689a class that has run-time type information, and whose instances
2690can be created dynamically. Use this for classes derived from two
2691base classes.
2692
954b8ae6
JS
2693\wxheading{Include files}
2694
2695<wx/object.h>
2696
f6bcfd97
BP
2697\membersection{wxConstCast}\label{wxconstcast}
2698
f7637829 2699\func{classname *}{wxConstCast}{ptr, classname}
f6bcfd97
BP
2700
2701This macro expands into {\tt const\_cast<classname *>(ptr)} if the compiler
2702supports {\it const\_cast} or into an old, C-style cast, otherwise.
2703
2704\wxheading{See also}
2705
2706\helpref{wxDynamicCast}{wxdynamiccast}\\
2707\helpref{wxStaticCast}{wxstaticcast}
2708
b0fc8832
VZ
2709\membersection{::wxCreateDynamicObject}\label{wxcreatedynamicobject}
2710
2711\func{wxObject *}{wxCreateDynamicObject}{\param{const wxString\& }{className}}
2712
2713Creates and returns an object of the given class, if the class has been
2714registered with the dynamic class system using DECLARE... and IMPLEMENT... macros.
2715
34636400
VZ
2716\membersection{WXDEBUG\_NEW}\label{debugnew}
2717
2718\func{}{WXDEBUG\_NEW}{arg}
2719
2720This is defined in debug mode to be call the redefined new operator
2721with filename and line number arguments. The definition is:
2722
2723\begin{verbatim}
2724#define WXDEBUG_NEW new(__FILE__,__LINE__)
2725\end{verbatim}
2726
2727In non-debug mode, this is defined as the normal new operator.
2728
2729\wxheading{Include files}
2730
2731<wx/object.h>
2732
2733\membersection{wxDynamicCast}\label{wxdynamiccast}
2734
f7637829 2735\func{classname *}{wxDynamicCast}{ptr, classname}
34636400
VZ
2736
2737This macro returns the pointer {\it ptr} cast to the type {\it classname *} if
8a7f3379 2738the pointer is of this type (the check is done during the run-time) or
f7637829
VZ
2739{\tt NULL} otherwise. Usage of this macro is preferred over obsoleted
2740wxObject::IsKindOf() function.
34636400 2741
f7637829
VZ
2742The {\it ptr} argument may be {\tt NULL}, in which case {\tt NULL} will be
2743returned.
34636400
VZ
2744
2745Example:
2746
2747\begin{verbatim}
2748 wxWindow *win = wxWindow::FindFocus();
2749 wxTextCtrl *text = wxDynamicCast(win, wxTextCtrl);
2750 if ( text )
2751 {
2752 // a text control has the focus...
2753 }
2754 else
2755 {
f6bcfd97 2756 // no window has the focus or it is not a text control
34636400
VZ
2757 }
2758\end{verbatim}
2759
2760\wxheading{See also}
2761
f6bcfd97 2762\helpref{RTTI overview}{runtimeclassoverview}\\
f7637829 2763\helpref{wxDynamicCastThis}{wxdynamiccastthis}\\
f6bcfd97
BP
2764\helpref{wxConstCast}{wxconstcast}\\
2765\helpref{wxStatiicCast}{wxstaticcast}
34636400 2766
f7637829
VZ
2767\membersection{wxDynamicCastThis}\label{wxdynamiccastthis}
2768
2769\func{classname *}{wxDynamicCastThis}{classname}
2770
2771This macro is equivalent to {\tt wxDynamicCast(this, classname)} but the
2772latter provokes spurious compilation warnings from some compilers (because it
2773tests whether {\tt this} pointer is non {\tt NULL} which is always true), so
2774this macro should be used to avoid them.
2775
2776\wxheading{See also}
2777
2778\helpref{wxDynamicCast}{wxdynamiccast}
2779
f6bcfd97
BP
2780\membersection{wxStaticCast}\label{wxstaticcast}
2781
f7637829 2782\func{classname *}{wxStaticCast}{ptr, classname}
f6bcfd97
BP
2783
2784This macro checks that the cast is valid in debug mode (an assert failure will
2785result if {\tt wxDynamicCast(ptr, classname) == NULL}) and then returns the
2786result of executing an equivalent of {\tt static\_cast<classname *>(ptr)}.
2787
2788\helpref{wxDynamicCast}{wxdynamiccast}\\
2789\helpref{wxConstCast}{wxconstcast}
2790
b0fc8832 2791\section{Resource functions}\label{resourcefuncs}
a660d684 2792
b0fc8832 2793\overview{Resource functions}{resourceformats}
a660d684
KB
2794
2795This section details functions for manipulating wxWindows (.WXR) resource
2796files and loading user interface elements from resources.
2797
2798\normalbox{Please note that this use of the word `resource' is different from that used when talking
2799about initialisation file resource reading and writing, using such functions
f6bcfd97 2800as wxWriteResource and wxGetResource. It is just an unfortunate clash of terminology.}
a660d684
KB
2801
2802\helponly{For an overview of the wxWindows resource mechanism, see \helpref{the wxWindows resource system}{resourceformats}.}
2803
2804See also \helpref{wxWindow::LoadFromResource}{wxwindowloadfromresource} for
2805loading from resource data.
2806
2807\membersection{::wxResourceAddIdentifier}\label{wxresourceaddidentifier}
2808
2809\func{bool}{wxResourceAddIdentifier}{\param{const wxString\& }{name}, \param{int }{value}}
2810
2811Used for associating a name with an integer identifier (equivalent to dynamically\rtfsp
7af3ca16 2812{\tt\#}defining a name to an integer). Unlikely to be used by an application except
a660d684
KB
2813perhaps for implementing resource functionality for interpreted languages.
2814
b0fc8832 2815\membersection{::wxResourceClear}\label{wxresourceclear}
a660d684
KB
2816
2817\func{void}{wxResourceClear}{\void}
2818
2819Clears the wxWindows resource table.
2820
b0fc8832 2821\membersection{::wxResourceCreateBitmap}\label{wxresourcecreatebitmap}
a660d684
KB
2822
2823\func{wxBitmap *}{wxResourceCreateBitmap}{\param{const wxString\& }{resource}}
2824
2825Creates a new bitmap from a file, static data, or Windows resource, given a valid
2826wxWindows bitmap resource identifier. For example, if the .WXR file contains
2827the following:
2828
2829\begin{verbatim}
f6bcfd97
BP
2830static const wxString\& project_resource = "bitmap(name = 'project_resource',\
2831 bitmap = ['project', wxBITMAP_TYPE_BMP_RESOURCE, 'WINDOWS'],\
2832 bitmap = ['project.xpm', wxBITMAP_TYPE_XPM, 'X']).";
a660d684
KB
2833\end{verbatim}
2834
2835then this function can be called as follows:
2836
2837\begin{verbatim}
f6bcfd97 2838 wxBitmap *bitmap = wxResourceCreateBitmap("project_resource");
a660d684
KB
2839\end{verbatim}
2840
b0fc8832 2841\membersection{::wxResourceCreateIcon}\label{wxresourcecreateicon}
a660d684
KB
2842
2843\func{wxIcon *}{wxResourceCreateIcon}{\param{const wxString\& }{resource}}
2844
2845Creates a new icon from a file, static data, or Windows resource, given a valid
2846wxWindows icon resource identifier. For example, if the .WXR file contains
2847the following:
2848
2849\begin{verbatim}
f6bcfd97
BP
2850static const wxString\& project_resource = "icon(name = 'project_resource',\
2851 icon = ['project', wxBITMAP_TYPE_ICO_RESOURCE, 'WINDOWS'],\
2852 icon = ['project', wxBITMAP_TYPE_XBM_DATA, 'X']).";
a660d684
KB
2853\end{verbatim}
2854
2855then this function can be called as follows:
2856
2857\begin{verbatim}
f6bcfd97 2858 wxIcon *icon = wxResourceCreateIcon("project_resource");
a660d684
KB
2859\end{verbatim}
2860
b0fc8832 2861\membersection{::wxResourceCreateMenuBar}\label{wxresourcecreatemenubar}
a660d684
KB
2862
2863\func{wxMenuBar *}{wxResourceCreateMenuBar}{\param{const wxString\& }{resource}}
2864
2865Creates a new menu bar given a valid wxWindows menubar resource
2866identifier. For example, if the .WXR file contains the following:
2867
2868\begin{verbatim}
2869static const wxString\& menuBar11 = "menu(name = 'menuBar11',\
2870 menu = \
2871 [\
2872 ['&File', 1, '', \
2873 ['&Open File', 2, 'Open a file'],\
2874 ['&Save File', 3, 'Save a file'],\
2875 [],\
2876 ['E&xit', 4, 'Exit program']\
2877 ],\
2878 ['&Help', 5, '', \
2879 ['&About', 6, 'About this program']\
2880 ]\
2881 ]).";
2882\end{verbatim}
2883
2884then this function can be called as follows:
2885
2886\begin{verbatim}
2887 wxMenuBar *menuBar = wxResourceCreateMenuBar("menuBar11");
2888\end{verbatim}
2889
2890
b0fc8832 2891\membersection{::wxResourceGetIdentifier}\label{wxresourcegetidentifier}
a660d684
KB
2892
2893\func{int}{wxResourceGetIdentifier}{\param{const wxString\& }{name}}
2894
2895Used for retrieving the integer value associated with an identifier.
2896A zero value indicates that the identifier was not found.
2897
2898See \helpref{wxResourceAddIdentifier}{wxresourceaddidentifier}.
2899
2900\membersection{::wxResourceParseData}\label{wxresourcedata}
2901
2902\func{bool}{wxResourceParseData}{\param{const wxString\& }{resource}, \param{wxResourceTable *}{table = NULL}}
2903
2904Parses a string containing one or more wxWindows resource objects. If
2905the resource objects are global static data that are included into the
2906C++ program, then this function must be called for each variable
2907containing the resource data, to make it known to wxWindows.
2908
2909{\it resource} should contain data in the following form:
2910
2911\begin{verbatim}
2912dialog(name = 'dialog1',
2913 style = 'wxCAPTION | wxDEFAULT_DIALOG_STYLE',
2914 title = 'Test dialog box',
2915 x = 312, y = 234, width = 400, height = 300,
2916 modal = 0,
f6bcfd97 2917 control = [1000, wxStaticBox, 'Groupbox', '0', 'group6', 5, 4, 380, 262,
a660d684 2918 [11, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0]],
f6bcfd97 2919 control = [1001, wxTextCtrl, '', 'wxTE_MULTILINE', 'text3',
a660d684
KB
2920 156, 126, 200, 70, 'wxWindows is a multi-platform, GUI toolkit.',
2921 [11, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0],
2922 [11, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0]]).
2923\end{verbatim}
2924
2925This function will typically be used after including a {\tt .wxr} file into
2926a C++ program as follows:
2927
2928\begin{verbatim}
2929#include "dialog1.wxr"
2930\end{verbatim}
2931
2932Each of the contained resources will declare a new C++ variable, and each
2933of these variables should be passed to wxResourceParseData.
2934
b0fc8832 2935\membersection{::wxResourceParseFile}\label{wxresourceparsefile}
a660d684
KB
2936
2937\func{bool}{wxResourceParseFile}{\param{const wxString\& }{filename}, \param{wxResourceTable *}{table = NULL}}
2938
2939Parses a file containing one or more wxWindows resource objects
2940in C++-compatible syntax. Use this function to dynamically load
2941wxWindows resource data.
2942
2943\membersection{::wxResourceParseString}\label{wxresourceparsestring}
2944
7ac13b21 2945\func{bool}{wxResourceParseString}{\param{char *}{s}, \param{wxResourceTable *}{table = NULL}}
a660d684
KB
2946
2947Parses a string containing one or more wxWindows resource objects. If
2948the resource objects are global static data that are included into the
2949C++ program, then this function must be called for each variable
2950containing the resource data, to make it known to wxWindows.
2951
2952{\it resource} should contain data with the following form:
2953
2954\begin{verbatim}
f6bcfd97
BP
2955dialog(name = 'dialog1',
2956 style = 'wxCAPTION | wxDEFAULT_DIALOG_STYLE',
2957 title = 'Test dialog box',
2958 x = 312, y = 234, width = 400, height = 300,
2959 modal = 0,
2960 control = [1000, wxStaticBox, 'Groupbox', '0', 'group6', 5, 4, 380, 262,
2961 [11, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0]],
2962 control = [1001, wxTextCtrl, '', 'wxTE_MULTILINE', 'text3',
2963 156, 126, 200, 70, 'wxWindows is a multi-platform, GUI toolkit.',
2964 [11, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0],
2965 [11, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0]]).
a660d684
KB
2966\end{verbatim}
2967
2968This function will typically be used after calling \helpref{wxLoadUserResource}{wxloaduserresource} to
2969load an entire {\tt .wxr file} into a string.
2970
2971\membersection{::wxResourceRegisterBitmapData}\label{registerbitmapdata}
2972
7ac13b21 2973\func{bool}{wxResourceRegisterBitmapData}{\param{const wxString\& }{name}, \param{char *}{xbm\_data}, \param{int }{width},
a660d684
KB
2974\param{int }{height}, \param{wxResourceTable *}{table = NULL}}
2975
7ac13b21 2976\func{bool}{wxResourceRegisterBitmapData}{\param{const wxString\& }{name}, \param{char **}{xpm\_data}}
a660d684 2977
7af3ca16 2978Makes {\tt\#}included XBM or XPM bitmap data known to the wxWindows resource system.
a660d684
KB
2979This is required if other resources will use the bitmap data, since otherwise there
2980is no connection between names used in resources, and the global bitmap data.
2981
b0fc8832 2982\membersection{::wxResourceRegisterIconData}\label{wxresourceregistericondata}
a660d684
KB
2983
2984Another name for \helpref{wxResourceRegisterBitmapData}{registerbitmapdata}.
2985
6fb26ea3
JS
2986\section{Log functions}\label{logfunctions}
2987
2988These functions provide a variety of logging functions: see \helpref{Log classes overview}{wxlogoverview} for
f68586e5
VZ
2989further information. The functions use (implicitly) the currently active log
2990target, so their descriptions here may not apply if the log target is not the
2991standard one (installed by wxWindows in the beginning of the program).
6fb26ea3 2992
954b8ae6
JS
2993\wxheading{Include files}
2994
2995<wx/log.h>
2996
b0fc8832
VZ
2997\membersection{::wxDebugMsg}\label{wxdebugmsg}
2998
2999\func{void}{wxDebugMsg}{\param{const wxString\& }{fmt}, \param{...}{}}
3000
2bd25c5a
VZ
3001{\bf NB:} This function is now obsolete, replaced by \helpref{Log
3002functions}{logfunctions} and \helpref{wxLogDebug}{wxlogdebug} in particular.
b0fc8832
VZ
3003
3004Display a debugging message; under Windows, this will appear on the
3005debugger command window, and under Unix, it will be written to standard
3006error.
3007
3008The syntax is identical to {\bf printf}: pass a format string and a
3009variable list of arguments.
3010
3011{\bf Tip:} under Windows, if your application crashes before the
3012message appears in the debugging window, put a wxYield call after
3013each wxDebugMsg call. wxDebugMsg seems to be broken under WIN32s
3014(at least for Watcom C++): preformat your messages and use OutputDebugString
3015instead.
3016
b0fc8832
VZ
3017\wxheading{Include files}
3018
3019<wx/utils.h>
3020
3021\membersection{::wxError}\label{wxerror}
3022
3023\func{void}{wxError}{\param{const wxString\& }{msg}, \param{const wxString\& }{title = "wxWindows Internal Error"}}
3024
2bd25c5a 3025{\bf NB:} This function is now obsolete, please use \helpref{wxLogError}{wxlogerror}
b0fc8832
VZ
3026instead.
3027
3028Displays {\it msg} and continues. This writes to standard error under
3029Unix, and pops up a message box under Windows. Used for internal
3030wxWindows errors. See also \helpref{wxFatalError}{wxfatalerror}.
3031
3032\wxheading{Include files}
3033
3034<wx/utils.h>
3035
3036\membersection{::wxFatalError}\label{wxfatalerror}
3037
3038\func{void}{wxFatalError}{\param{const wxString\& }{msg}, \param{const wxString\& }{title = "wxWindows Fatal Error"}}
3039
2bd25c5a 3040{\bf NB:} This function is now obsolete, please use
b0fc8832
VZ
3041\helpref{wxLogFatalError}{wxlogfatalerror} instead.
3042
3043Displays {\it msg} and exits. This writes to standard error under Unix,
3044and pops up a message box under Windows. Used for fatal internal
3045wxWindows errors. See also \helpref{wxError}{wxerror}.
3046
3047\wxheading{Include files}
3048
3049<wx/utils.h>
3050
6fb26ea3
JS
3051\membersection{::wxLogError}\label{wxlogerror}
3052
7ac13b21 3053\func{void}{wxLogError}{\param{const char *}{formatString}, \param{...}{}}
6fb26ea3 3054
1d63fd6b
GD
3055\func{void}{wxVLogError}{\param{const char *}{formatString}, \param{va\_list }{argPtr}}
3056
ea44a631 3057The functions to use for error messages, i.e. the messages that must be shown
f68586e5
VZ
3058to the user. The default processing is to pop up a message box to inform the
3059user about it.
6fb26ea3
JS
3060
3061\membersection{::wxLogFatalError}\label{wxlogfatalerror}
3062
7ac13b21 3063\func{void}{wxLogFatalError}{\param{const char *}{formatString}, \param{...}{}}
6fb26ea3 3064
1d63fd6b
GD
3065\func{void}{wxVLogFatalError}{\param{const char *}{formatString}, \param{va\_list }{argPtr}}
3066
6fb26ea3
JS
3067Like \helpref{wxLogError}{wxlogerror}, but also
3068terminates the program with the exit code 3. Using {\it abort()} standard
3069function also terminates the program with this exit code.
3070
3071\membersection{::wxLogWarning}\label{wxlogwarning}
3072
7ac13b21 3073\func{void}{wxLogWarning}{\param{const char *}{formatString}, \param{...}{}}
6fb26ea3 3074
1d63fd6b
GD
3075\func{void}{wxVLogWarning}{\param{const char *}{formatString}, \param{va\_list }{argPtr}}
3076
f68586e5
VZ
3077For warnings - they are also normally shown to the user, but don't interrupt
3078the program work.
6fb26ea3
JS
3079
3080\membersection{::wxLogMessage}\label{wxlogmessage}
3081
7ac13b21 3082\func{void}{wxLogMessage}{\param{const char *}{formatString}, \param{...}{}}
6fb26ea3 3083
1d63fd6b
GD
3084\func{void}{wxVLogMessage}{\param{const char *}{formatString}, \param{va\_list }{argPtr}}
3085
ea44a631 3086For all normal, informational messages. They also appear in a message box by
f68586e5
VZ
3087default (but it can be changed). Notice that the standard behaviour is to not
3088show informational messages if there are any errors later - the logic being
3089that the later error messages make the informational messages preceding them
3090meaningless.
6fb26ea3
JS
3091
3092\membersection{::wxLogVerbose}\label{wxlogverbose}
3093
7ac13b21
GT
3094\func{void}{wxLogVerbose}{\param{const char *}{formatString}, \param{...}{}}
3095
1d63fd6b 3096\func{void}{wxVLogVerbose}{\param{const char *}{formatString}, \param{va\_list }{argPtr}}
6fb26ea3 3097
f6bcfd97 3098For verbose output. Normally, it is suppressed, but
6fb26ea3
JS
3099might be activated if the user wishes to know more details about the program
3100progress (another, but possibly confusing name for the same function is {\bf wxLogInfo}).
3101
3102\membersection{::wxLogStatus}\label{wxlogstatus}
3103
7ac13b21 3104\func{void}{wxLogStatus}{\param{wxFrame *}{frame}, \param{const char *}{formatString}, \param{...}{}}
f68586e5 3105
1d63fd6b 3106\func{void}{wxVLogStatus}{\param{wxFrame *}{frame}, \param{const char *}{formatString}, \param{va\_list }{argPtr}}
7ac13b21
GT
3107
3108\func{void}{wxLogStatus}{\param{const char *}{formatString}, \param{...}{}}
6fb26ea3 3109
1d63fd6b
GD
3110\func{void}{wxVLogStatus}{\param{const char *}{formatString}, \param{va\_list }{argPtr}}
3111
ea44a631 3112Messages logged by these functions will appear in the statusbar of the {\it
f68586e5 3113frame} or of the top level application window by default (i.e. when using
ea44a631 3114the second version of the functions).
f68586e5
VZ
3115
3116If the target frame doesn't have a statusbar, the message will be lost.
6fb26ea3
JS
3117
3118\membersection{::wxLogSysError}\label{wxlogsyserror}
3119
7ac13b21
GT
3120\func{void}{wxLogSysError}{\param{const char *}{formatString}, \param{...}{}}
3121
1d63fd6b 3122\func{void}{wxVLogSysError}{\param{const char *}{formatString}, \param{va\_list }{argPtr}}
6fb26ea3 3123
f68586e5
VZ
3124Mostly used by wxWindows itself, but might be handy for logging errors after
3125system call (API function) failure. It logs the specified message text as well
3126as the last system error code ({\it errno} or {\it ::GetLastError()} depending
3127on the platform) and the corresponding error message. The second form
f6bcfd97 3128of this function takes the error code explicitly as the first argument.
6fb26ea3 3129
6d516e09
VZ
3130\wxheading{See also}
3131
3132\helpref{wxSysErrorCode}{wxsyserrorcode},
3133\helpref{wxSysErrorMsg}{wxsyserrormsg}
3134
6fb26ea3
JS
3135\membersection{::wxLogDebug}\label{wxlogdebug}
3136
7ac13b21
GT
3137\func{void}{wxLogDebug}{\param{const char *}{formatString}, \param{...}{}}
3138
1d63fd6b 3139\func{void}{wxVLogDebug}{\param{const char *}{formatString}, \param{va\_list }{argPtr}}
6fb26ea3 3140
ea44a631
GD
3141The right functions for debug output. They only do something in debug
3142mode (when the preprocessor symbol \_\_WXDEBUG\_\_ is defined) and expand to
f68586e5 3143nothing in release mode (otherwise).
6fb26ea3
JS
3144
3145\membersection{::wxLogTrace}\label{wxlogtrace}
3146
7ac13b21 3147\func{void}{wxLogTrace}{\param{const char *}{formatString}, \param{...}{}}
1d63fd6b
GD
3148
3149\func{void}{wxVLogTrace}{\param{const char *}{formatString}, \param{va\_list }{argPtr}}
6fb26ea3 3150
f68586e5 3151\func{void}{wxLogTrace}{\param{const char *}{mask}, \param{const char *}{formatString}, \param{...}{}}
7ac13b21 3152
1d63fd6b 3153\func{void}{wxVLogTrace}{\param{const char *}{mask}, \param{const char *}{formatString}, \param{va\_list }{argPtr}}
f68586e5
VZ
3154
3155\func{void}{wxLogTrace}{\param{wxTraceMask}{ mask}, \param{const char *}{formatString}, \param{...}{}}
7ac13b21 3156
1d63fd6b 3157\func{void}{wxVLogTrace}{\param{wxTraceMask}{ mask}, \param{const char *}{formatString}, \param{va\_list }{argPtr}}
f68586e5
VZ
3158
3159As {\bf wxLogDebug}, trace functions only do something in debug build and
3160expand to nothing in the release one. The reason for making
3161it a separate function from it is that usually there are a lot of trace
3162messages, so it might make sense to separate them from other debug messages.
3163
3164The trace messages also usually can be separated into different categories and
ec5d7799 3165the second and third versions of this function only log the message if the
f68586e5
VZ
3166{\it mask} which it has is currently enabled in \helpref{wxLog}{wxlog}. This
3167allows to selectively trace only some operations and not others by changing
3168the value of the trace mask (possible during the run-time).
3169
3170For the second function (taking a string mask), the message is logged only if
ec5d7799 3171the mask has been previously enabled by the call to
f68586e5
VZ
3172\helpref{AddTraceMask}{wxlogaddtracemask}. The predefined string trace masks
3173used by wxWindows are:
3174
3175\begin{itemize}\itemsep=0pt
3176\item wxTRACE\_MemAlloc: trace memory allocation (new/delete)
3177\item wxTRACE\_Messages: trace window messages/X callbacks
3178\item wxTRACE\_ResAlloc: trace GDI resource allocation
3179\item wxTRACE\_RefCount: trace various ref counting operations
3180\item wxTRACE\_OleCalls: trace OLE method calls (Win32 only)
3181\end{itemize}
6fb26ea3 3182
f68586e5
VZ
3183The third version of the function only logs the message if all the bit
3184corresponding to the {\it mask} are set in the wxLog trace mask which can be
3185set by \helpref{SetTraceMask}{wxlogsettracemask}. This version is less
3186flexible than the previous one because it doesn't allow defining the user
3187trace masks easily - this is why it is deprecated in favour of using string
3188trace masks.
6fb26ea3
JS
3189
3190\begin{itemize}\itemsep=0pt
3191\item wxTraceMemAlloc: trace memory allocation (new/delete)
3192\item wxTraceMessages: trace window messages/X callbacks
3193\item wxTraceResAlloc: trace GDI resource allocation
3194\item wxTraceRefCount: trace various ref counting operations
f68586e5 3195\item wxTraceOleCalls: trace OLE method calls (Win32 only)
6fb26ea3
JS
3196\end{itemize}
3197
c11d62a6
VZ
3198\membersection{::wxSafeShowMessage}\label{wxsafeshowmessage}
3199
3200\func{void}{wxSafeShowMessage}{\param{const wxString\& }{title}, \param{const wxString\& }{text}}
3201
3202This function shows a message to the user in a safe way and should be safe to
3203call even before the application has been initialized or if it is currently in
3204some other strange state (for example, about to crash). Under Windows this
3205function shows a message box using a native dialog instead of
3206\helpref{wxMessageBox}{wxmessagebox} (which might be unsafe to call), elsewhere
3207it simply prints the message to the standard output using the title as prefix.
3208
3209\wxheading{Parameters}
3210
3211\docparam{title}{The title of the message box shown to the user or the prefix
3212of the message string}
3213
3214\docparam{text}{The text to show to the user}
3215
3216\wxheading{See also}
3217
3218\helpref{wxLogFatalError}{wxlogfatalerror}
3219
3220\wxheading{Include files}
3221
3222<wx/log.h>
3223
6d516e09
VZ
3224\membersection{::wxSysErrorCode}\label{wxsyserrorcode}
3225
3226\func{unsigned long}{wxSysErrorCode}{\void}
3227
3228Returns the error code from the last system call. This function uses
3229{\tt errno} on Unix platforms and {\tt GetLastError} under Win32.
3230
3231\wxheading{See also}
3232
3233\helpref{wxSysErrorMsg}{wxsyserrormsg},
3234\helpref{wxLogSysError}{wxlogsyserror}
3235
3236\membersection{::wxSysErrorMsg}\label{wxsyserrormsg}
3237
3238\func{const wxChar *}{wxSysErrorMsg}{\param{unsigned long }{errCode = 0}}
3239
ec5d7799
RD
3240Returns the error message corresponding to the given system error code. If
3241{\it errCode} is $0$ (default), the last error code (as returned by
6d516e09
VZ
3242\helpref{wxSysErrorCode}{wxsyserrorcode}) is used.
3243
3244\wxheading{See also}
3245
3246\helpref{wxSysErrorCode}{wxsyserrorcode},
3247\helpref{wxLogSysError}{wxlogsyserror}
3248
b0fc8832
VZ
3249\membersection{WXTRACE}\label{trace}
3250
3251\wxheading{Include files}
3252
3253<wx/object.h>
3254
3255\func{}{WXTRACE}{formatString, ...}
3256
2bd25c5a
VZ
3257{\bf NB:} This macro is now obsolete, replaced by \helpref{Log functions}{logfunctions}.
3258
b0fc8832
VZ
3259Calls wxTrace with printf-style variable argument syntax. Output
3260is directed to the current output stream (see \helpref{wxDebugContext}{wxdebugcontextoverview}).
3261
b0fc8832
VZ
3262\wxheading{Include files}
3263
3264<wx/memory.h>
3265
3266\membersection{WXTRACELEVEL}\label{tracelevel}
3267
3268\func{}{WXTRACELEVEL}{level, formatString, ...}
3269
2bd25c5a
VZ
3270{\bf NB:} This function is now obsolete, replaced by \helpref{Log functions}{logfunctions}.
3271
b0fc8832
VZ
3272Calls wxTraceLevel with printf-style variable argument syntax. Output
3273is directed to the current output stream (see \helpref{wxDebugContext}{wxdebugcontextoverview}).
3274The first argument should be the level at which this information is appropriate.
3275It will only be output if the level returned by wxDebugContext::GetLevel is equal to or greater than
3276this value.
3277
b0fc8832
VZ
3278\wxheading{Include files}
3279
3280<wx/memory.h>
3281
3282\membersection{::wxTrace}\label{wxtrace}
3283
3284\func{void}{wxTrace}{\param{const wxString\& }{fmt}, \param{...}{}}
3285
2bd25c5a
VZ
3286{\bf NB:} This function is now obsolete, replaced by \helpref{Log functions}{logfunctions}.
3287
b0fc8832
VZ
3288Takes printf-style variable argument syntax. Output
3289is directed to the current output stream (see \helpref{wxDebugContext}{wxdebugcontextoverview}).
3290
b0fc8832
VZ
3291\wxheading{Include files}
3292
3293<wx/memory.h>
3294
3295\membersection{::wxTraceLevel}\label{wxtracelevel}
3296
3297\func{void}{wxTraceLevel}{\param{int}{ level}, \param{const wxString\& }{fmt}, \param{...}{}}
3298
2bd25c5a
VZ
3299{\bf NB:} This function is now obsolete, replaced by \helpref{Log functions}{logfunctions}.
3300
b0fc8832
VZ
3301Takes printf-style variable argument syntax. Output
3302is directed to the current output stream (see \helpref{wxDebugContext}{wxdebugcontextoverview}).
3303The first argument should be the level at which this information is appropriate.
3304It will only be output if the level returned by wxDebugContext::GetLevel is equal to or greater than
3305this value.
3306
b0fc8832
VZ
3307\wxheading{Include files}
3308
3309<wx/memory.h>
3310
f6bcfd97
BP
3311\section{Time functions}\label{timefunctions}
3312
3313The functions in this section deal with getting the current time and
3314starting/stopping the global timers. Please note that the timer functions are
ec5d7799 3315deprecated because they work with one global timer only and
f6bcfd97 3316\helpref{wxTimer}{wxtimer} and/or \helpref{wxStopWatch}{wxstopwatch} classes
ec5d7799
RD
3317should be used instead. For retrieving the current time, you may also use
3318\helpref{wxDateTime::Now}{wxdatetimenow} or
f6bcfd97
BP
3319\helpref{wxDateTime::UNow}{wxdatetimeunow} methods.
3320
3321\membersection{::wxGetElapsedTime}\label{wxgetelapsedtime}
3322
3323\func{long}{wxGetElapsedTime}{\param{bool}{ resetTimer = TRUE}}
3324
3325Gets the time in milliseconds since the last \helpref{::wxStartTimer}{wxstarttimer}.
3326
3327If {\it resetTimer} is TRUE (the default), the timer is reset to zero
3328by this call.
3329
3330See also \helpref{wxTimer}{wxtimer}.
3331
3332\wxheading{Include files}
3333
3334<wx/timer.h>
3335
3336\membersection{::wxGetLocalTime}\label{wxgetlocaltime}
3337
3338\func{long}{wxGetLocalTime}{\void}
3339
3340Returns the number of seconds since local time 00:00:00 Jan 1st 1970.
3341
3342\wxheading{See also}
3343
3344\helpref{wxDateTime::Now}{wxdatetimenow}
3345
3346\wxheading{Include files}
3347
3348<wx/timer.h>
3349
3350\membersection{::wxGetLocalTimeMillis}\label{wxgetlocaltimemillis}
3351
a9d171bd 3352\func{wxLongLong}{wxGetLocalTimeMillis}{\void}
f6bcfd97
BP
3353
3354Returns the number of milliseconds since local time 00:00:00 Jan 1st 1970.
3355
3356\wxheading{See also}
3357
3358\helpref{wxDateTime::Now}{wxdatetimenow},\\
a9d171bd 3359\helpref{wxLongLong}{wxlonglong}
f6bcfd97
BP
3360
3361\wxheading{Include files}
3362
3363<wx/timer.h>
3364
3365\membersection{::wxGetUTCTime}\label{wxgetutctime}
3366
3367\func{long}{wxGetUTCTime}{\void}
3368
3369Returns the number of seconds since GMT 00:00:00 Jan 1st 1970.
3370
3371\wxheading{See also}
3372
3373\helpref{wxDateTime::Now}{wxdatetimenow}
3374
3375\wxheading{Include files}
3376
3377<wx/timer.h>
3378
b0fc8832
VZ
3379\membersection{::wxNow}\label{wxnow}
3380
3381\func{wxString}{wxNow}{\void}
3382
3383Returns a string representing the current date and time.
3384
3385\wxheading{Include files}
3386
3387<wx/utils.h>
3388
3389\membersection{::wxSleep}\label{wxsleep}
3390
3391\func{void}{wxSleep}{\param{int}{ secs}}
3392
3393Sleeps for the specified number of seconds.
3394
3395\wxheading{Include files}
3396
3397<wx/utils.h>
3398
f6bcfd97
BP
3399\membersection{::wxStartTimer}\label{wxstarttimer}
3400
3401\func{void}{wxStartTimer}{\void}
3402
3403Starts a stopwatch; use \helpref{::wxGetElapsedTime}{wxgetelapsedtime} to get the elapsed time.
3404
3405See also \helpref{wxTimer}{wxtimer}.
3406
3407\wxheading{Include files}
3408
3409<wx/timer.h>
3410
b0fc8832
VZ
3411\membersection{::wxUsleep}\label{wxusleep}
3412
3413\func{void}{wxUsleep}{\param{unsigned long}{ milliseconds}}
3414
3415Sleeps for the specified number of milliseconds. Notice that usage of this
3416function is encouraged instead of calling usleep(3) directly because the
3417standard usleep() function is not MT safe.
3418
3419\wxheading{Include files}
3420
3421<wx/utils.h>
3422
6fb26ea3
JS
3423\section{Debugging macros and functions}\label{debugmacros}
3424
8f5d9104
VZ
3425Useful macros and functions for error checking and defensive programming.
3426wxWindows defines three families of the assert-like macros:
3427the wxASSERT and wxFAIL macros only do anything if \_\_WXDEBUG\_\_ is defined
3428(in other words, in the debug build) but disappear completely in the release
3429build. On the other hand, the wxCHECK macros stay event in release builds but a
3430check failure doesn't generate any user-visible effects then. Finally, the
3431compile time assertions don't happen during the run-time but result in the
3432compilation error messages if the condition they check fail.
6fb26ea3 3433
954b8ae6
JS
3434\wxheading{Include files}
3435
3436<wx/debug.h>
3437
6fb26ea3
JS
3438\membersection{::wxOnAssert}\label{wxonassert}
3439
aad65f13 3440\func{void}{wxOnAssert}{\param{const char *}{fileName}, \param{int}{ lineNumber}, \param{const char *}{cond}, \param{const char *}{msg = NULL}}
6fb26ea3 3441
8f5d9104
VZ
3442This function is called whenever one of debugging macros fails (i.e. condition
3443is false in an assertion). It is only defined in the debug mode, in release
3444builds the \helpref{wxCHECK}{wxcheck} failures don't result in anything.
3445
3446To override the default behaviour in the debug builds which is to show the user
3447a dialog asking whether he wants to abort the program, continue or continue
3448ignoring any subsequent assert failures, you may override
3449\helpref{wxApp::OnAssert}{wxapponassert} which is called by this function if
3450the global application object exists.
6fb26ea3
JS
3451
3452\membersection{wxASSERT}\label{wxassert}
3453
3454\func{}{wxASSERT}{\param{}{condition}}
3455
b207457c
VZ
3456Assert macro. An error message will be generated if the condition is FALSE in
3457debug mode, but nothing will be done in the release build.
3458
3459Please note that the condition in wxASSERT() should have no side effects
3460because it will not be executed in release mode at all.
3461
8f5d9104
VZ
3462\wxheading{See also}
3463
3464\helpref{wxASSERT\_MSG}{wxassertmsg},\\
3465\helpref{wxCOMPILE\_TIME\_ASSERT}{wxcompiletimeassert}
3466
3467\membersection{wxASSERT\_MIN\_BITSIZE}\label{wxassertminbitsize}
3468
3469\func{}{wxASSERT\_MIN\_BITSIZE}{\param{}{type}, \param{}{size}}
3470
3471This macro results in a
9722642d 3472\helpref{compile time assertion failure}{wxcompiletimeassert} if the size
8f5d9104
VZ
3473of the given type {\it type} is less than {\it size} bits.
3474
3475You may use it like this, for example:
3476
3477\begin{verbatim}
3478 // we rely on the int being able to hold values up to 2^32
3479 wxASSERT_MIN_BITSIZE(int, 32);
3480
3481 // can't work with the platforms using UTF-8 for wchar_t
3482 wxASSERT_MIN_BITSIZE(wchar_t, 16);
3483\end{verbatim}
6fb26ea3
JS
3484
3485\membersection{wxASSERT\_MSG}\label{wxassertmsg}
3486
3487\func{}{wxASSERT\_MSG}{\param{}{condition}, \param{}{msg}}
3488
3489Assert macro with message. An error message will be generated if the condition is FALSE.
3490
8f5d9104
VZ
3491\wxheading{See also}
3492
3493\helpref{wxASSERT}{wxassert},\\
3494\helpref{wxCOMPILE\_TIME\_ASSERT}{wxcompiletimeassert}
3495
3496\membersection{wxCOMPILE\_TIME\_ASSERT}\label{wxcompiletimeassert}
3497
3498\func{}{wxCOMPILE\_TIME\_ASSERT}{\param{}{condition}, \param{}{msg}}
3499
3500Using {\tt wxCOMPILE\_TIME\_ASSERT} results in a compilation error if the
9722642d 3501specified {\it condition} is false. The compiler error message should include
8f5d9104
VZ
3502the {\it msg} identifier - please note that it must be a valid C++ identifier
3503and not a string unlike in the other cases.
3504
ff8ebd73 3505This macro is mostly useful for testing the expressions involving the
8f5d9104
VZ
3506{\tt sizeof} operator as they can't be tested by the preprocessor but it is
3507sometimes desirable to test them at the compile time.
3508
5b8643ea
VZ
3509Note that this macro internally declares a struct whose name it tries to make
3510unique by using the {\tt \_\_LINE\_\_} in it but it may still not work if you
3511use it on the same line in two different source files. In this case you may
3512either change the line in which either of them appears on or use the
3513\helpref{wxCOMPILE\_TIME\_ASSERT2}{wxcompiletimeassert2} macro.
3514
8f5d9104
VZ
3515\wxheading{See also}
3516
3517\helpref{wxASSERT\_MSG}{wxassertmsg},\\
3518\helpref{wxASSERT\_MIN\_BITSIZE}{wxassertminbitsize}
b207457c 3519
5b8643ea
VZ
3520\membersection{wxCOMPILE\_TIME\_ASSERT2}\label{wxcompiletimeassert2}
3521
3522\func{}{wxCOMPILE\_TIME\_ASSERT}{\param{}{condition}, \param{}{msg}, \param{}{name}}
3523
3524This macro is identical to \helpref{wxCOMPILE\_TIME\_ASSERT2}{wxcompiletimeassert2}
3525except that it allows you to specify a unique {\it name} for the struct
3526internally defined by this macro to avoid getting the compilation errors
3527described \helpref{above}{wxcompiletimeassert}.
3528
6fb26ea3
JS
3529\membersection{wxFAIL}\label{wxfail}
3530
b207457c 3531\func{}{wxFAIL}{\void}
6fb26ea3
JS
3532
3533Will always generate an assert error if this code is reached (in debug mode).
3534
b207457c
VZ
3535See also: \helpref{wxFAIL\_MSG}{wxfailmsg}
3536
6fb26ea3
JS
3537\membersection{wxFAIL\_MSG}\label{wxfailmsg}
3538
b207457c 3539\func{}{wxFAIL\_MSG}{\param{}{msg}}
6fb26ea3
JS
3540
3541Will always generate an assert error with specified message if this code is reached (in debug mode).
3542
b207457c
VZ
3543This macro is useful for marking unreachable" code areas, for example
3544it may be used in the "default:" branch of a switch statement if all possible
3545cases are processed above.
3546
8f5d9104
VZ
3547\wxheading{See also}
3548
3549\helpref{wxFAIL}{wxfail}
b207457c 3550
6fb26ea3
JS
3551\membersection{wxCHECK}\label{wxcheck}
3552
3553\func{}{wxCHECK}{\param{}{condition}, \param{}{retValue}}
3554
3555Checks that the condition is true, returns with the given return value if not (FAILs in debug mode).
3556This check is done even in release mode.
3557
3558\membersection{wxCHECK\_MSG}\label{wxcheckmsg}
3559
3560\func{}{wxCHECK\_MSG}{\param{}{condition}, \param{}{retValue}, \param{}{msg}}
3561
3562Checks that the condition is true, returns with the given return value if not (FAILs in debug mode).
3563This check is done even in release mode.
3564
ec5d7799 3565This macro may be only used in non void functions, see also
b207457c
VZ
3566\helpref{wxCHECK\_RET}{wxcheckret}.
3567
3568\membersection{wxCHECK\_RET}\label{wxcheckret}
3569
3570\func{}{wxCHECK\_RET}{\param{}{condition}, \param{}{msg}}
3571
3572Checks that the condition is true, and returns if not (FAILs with given error
3573message in debug mode). This check is done even in release mode.
3574
ec5d7799 3575This macro should be used in void functions instead of
b207457c
VZ
3576\helpref{wxCHECK\_MSG}{wxcheckmsg}.
3577
3578\membersection{wxCHECK2}\label{wxcheck2}
3579
3580\func{}{wxCHECK2}{\param{}{condition}, \param{}{operation}}
3581
ec5d7799
RD
3582Checks that the condition is true and \helpref{wxFAIL}{wxfail} and execute
3583{\it operation} if it is not. This is a generalisation of
b207457c
VZ
3584\helpref{wxCHECK}{wxcheck} and may be used when something else than just
3585returning from the function must be done when the {\it condition} is false.
3586
3587This check is done even in release mode.
3588
3589\membersection{wxCHECK2\_MSG}\label{wxcheck2msg}
3590
3591\func{}{wxCHECK2}{\param{}{condition}, \param{}{operation}, \param{}{msg}}
3592
ec5d7799 3593This is the same as \helpref{wxCHECK2}{wxcheck2}, but
b207457c
VZ
3594\helpref{wxFAIL\_MSG}{wxfailmsg} with the specified {\it msg} is called
3595instead of wxFAIL() if the {\it condition} is false.
3596
b0fc8832
VZ
3597\membersection{::wxTrap}\label{wxtrap}
3598
3599\func{void}{wxTrap}{\void}
3600
3601In debug mode (when {\tt \_\_WXDEBUG\_\_} is defined) this function generates a
3602debugger exception meaning that the control is passed to the debugger if one is
3603attached to the process. Otherwise the program just terminates abnormally.
3604
3605In release mode this function does nothing.
3606
3607\wxheading{Include files}
3608
3609<wx/debug.h>
3610
5807634c
VZ
3611\section{Environment access functions}\label{environfunctions}
3612
3613The functions in this section allow to access (get) or change value of
3614environment variables in a portable way. They are currently implemented under
3615Win32 and POSIX-like systems (Unix).
3616
3617% TODO add some stuff about env var inheriting but not propagating upwards (VZ)
3618
3619\wxheading{Include files}
3620
3621<wx/utils.h>
3622
308978f6 3623\membersection{wxGetenv}\label{wxgetenvmacro}
5807634c
VZ
3624
3625\func{wxChar *}{wxGetEnv}{\param{const wxString\&}{ var}}
3626
308978f6
VZ
3627This is a macro defined as {\tt getenv()} or its wide char version in Unicode
3628mode.
3629
3630Note that under Win32 it may not return correct value for the variables set
3631with \helpref{wxSetEnv}{wxsetenv}, use \helpref{wxGetEnv}{wxgetenv} function
3632instead.
3633
3634\membersection{wxGetEnv}\label{wxgetenv}
3635
3636\func{bool}{wxGetEnv}{\param{const wxString\&}{ var}, \param{wxString *}{value}}
3637
3638Returns the current value of the environment variable {\it var} in {\it value}.
3639{\it value} may be {\tt NULL} if you just want to know if the variable exists
3640and are not interested in its value.
3641
3642Returns {\tt TRUE} if the variable exists, {\tt FALSE} otherwise.
5807634c
VZ
3643
3644\membersection{wxSetEnv}\label{wxsetenv}
3645
3646\func{bool}{wxSetEnv}{\param{const wxString\&}{ var}, \param{const wxChar *}{value}}
3647
3648Sets the value of the environment variable {\it var} (adding it if necessary)
3649to {\it value}.
3650
3651Returns {\tt TRUE} on success.
3652
3653\membersection{wxUnsetEnv}\label{wxunsetenv}
3654
3655\func{bool}{wxUnsetEnv}{\param{const wxString\&}{ var}}
3656
ec5d7799 3657Removes the variable {\it var} from the environment.
5df6ed1c 3658\helpref{wxGetEnv}{wxgetenv} will return {\tt NULL} after the call to this
5807634c
VZ
3659function.
3660
3661Returns {\tt TRUE} on success.
3662