1 \chapter{Functions
}\label{functions
}
2 \setheader{{\it CHAPTER
\thechapter}}{}{}{}{}{{\it CHAPTER
\thechapter}}%
3 \setfooter{\thepage}{}{}{}{}{\thepage}
5 The functions and macros defined in wxWidgets are described here: you can
6 either look up a function using the alphabetical listing of them or find it in
7 the corresponding topic.
9 \section{Alphabetical functions and macros list
}
11 \helpref{CLASSINFO
}{classinfo
}\\
12 \helpref{copystring
}{copystring
}\\
13 \helpref{DECLARE
\_ABSTRACT\_CLASS}{declareabstractclass
}\\
14 \helpref{DECLARE
\_APP}{declareapp
}\\
15 \helpref{DECLARE
\_CLASS}{declareclass
}\\
16 \helpref{DECLARE
\_DYNAMIC\_CLASS}{declaredynamicclass
}\\
17 \helpref{IMPLEMENT
\_ABSTRACT\_CLASS2}{implementabstractclass2
}\\
18 \helpref{IMPLEMENT
\_ABSTRACT\_CLASS}{implementabstractclass
}\\
19 \helpref{IMPLEMENT
\_APP}{implementapp
}\\
20 \helpref{IMPLEMENT
\_CLASS2}{implementclass2
}\\
21 \helpref{IMPLEMENT
\_CLASS}{implementclass
}\\
22 \helpref{IMPLEMENT
\_DYNAMIC\_CLASS2}{implementdynamicclass2
}\\
23 \helpref{IMPLEMENT
\_DYNAMIC\_CLASS}{implementdynamicclass
}\\
24 \helpref{wxCONCAT
}{wxconcat
}\\
25 \helpref{WXDEBUG
\_NEW}{debugnew
}\\
26 \helpref{WXTRACELEVEL
}{tracelevel
}\\
27 \helpref{WXTRACE
}{trace
}\\
28 \helpref{wxASSERT
\_MIN\_BITSIZE}{wxassertminbitsize
}\\
29 \helpref{wxASSERT
\_MSG}{wxassertmsg
}\\
30 \helpref{wxASSERT
}{wxassert
}\\
31 \helpref{wxBITMAP
}{wxbitmapmacro
}\\
32 \helpref{wxBeginBusyCursor
}{wxbeginbusycursor
}\\
33 \helpref{wxBell
}{wxbell
}\\
34 \helpref{wxCHECK
}{wxcheck
}\\
35 \helpref{wxCHECK2
\_MSG}{wxcheck2msg
}\\
36 \helpref{wxCHECK2
}{wxcheck2
}\\
37 \helpref{wxCHECK
\_GCC\_VERSION}{wxcheckgccversion
}\\
38 \helpref{wxCHECK
\_MSG}{wxcheckmsg
}\\
39 \helpref{wxCHECK
\_RET}{wxcheckret
}\\
40 \helpref{wxCHECK
\_VERSION}{wxcheckversion
}\\
41 \helpref{wxCHECK
\_VERSION\_FULL}{wxcheckversionfull
}\\
42 \helpref{wxCHECK
\_W32API\_VERSION}{wxcheckw32apiversion
}\\
43 \helpref{wxClientDisplayRect
}{wxclientdisplayrect
}\\
44 \helpref{wxClipboardOpen
}{functionwxclipboardopen
}\\
45 \helpref{wxCloseClipboard
}{wxcloseclipboard
}\\
46 \helpref{wxColourDisplay
}{wxcolourdisplay
}\\
47 \helpref{wxCOMPILE
\_TIME\_ASSERT}{wxcompiletimeassert
}\\
48 \helpref{wxCOMPILE
\_TIME\_ASSERT2}{wxcompiletimeassert2
}\\
49 \helpref{wxConcatFiles
}{wxconcatfiles
}\\
50 \helpref{wxConstCast
}{wxconstcast
}\\
51 \helpref{wxCopyFile
}{wxcopyfile
}\\
52 \helpref{wxCreateDynamicObject
}{wxcreatedynamicobject
}\\
53 \helpref{wxCreateFileTipProvider
}{wxcreatefiletipprovider
}\\
54 \helpref{wxCRIT
\_SECT\_DECLARE}{wxcritsectdeclare
}\\
55 \helpref{wxCRIT
\_SECT\_DECLARE\_MEMBER}{wxcritsectdeclaremember
}\\
56 \helpref{wxCRIT
\_SECT\_LOCKER}{wxcritsectlocker
}\\
57 \helpref{wxCRITICAL
\_SECTION}{wxcriticalsectionmacro
}\\
% wxcs already taken!
58 \helpref{wxDDECleanUp
}{wxddecleanup
}\\
59 \helpref{wxDDEInitialize
}{wxddeinitialize
}\\
60 \helpref{wxDROP
\_ICON}{wxdropicon
}\\
61 \helpref{wxDebugMsg
}{wxdebugmsg
}\\
62 \helpref{wxDirExists
}{functionwxdirexists
}\\
63 \helpref{wxDirSelector
}{wxdirselector
}\\
64 \helpref{wxDisplayDepth
}{wxdisplaydepth
}\\
65 \helpref{wxDisplaySize
}{wxdisplaysize
}\\
66 \helpref{wxDisplaySizeMM
}{wxdisplaysizemm
}\\
67 \helpref{wxDos2UnixFilename
}{wxdos2unixfilename
}\\
68 \helpref{wxDynamicCastThis
}{wxdynamiccastthis
}\\
69 \helpref{wxDynamicCast
}{wxdynamiccast
}\\
70 \helpref{wxDYNLIB
\_FUNCTION}{wxdynlibfunction
}\\
71 \helpref{wxEmptyClipboard
}{wxemptyclipboard
}\\
72 \helpref{wxEnableTopLevelWindows
}{wxenabletoplevelwindows
}\\
73 \helpref{wxEndBusyCursor
}{wxendbusycursor
}\\
74 \helpref{wxENTER
\_CRIT\_SECT}{wxentercritsect
}\\
75 \helpref{wxEntry
}{wxentry
}\\
76 \helpref{wxEnumClipboardFormats
}{wxenumclipboardformats
}\\
77 \helpref{wxError
}{wxerror
}\\
78 \helpref{wxExecute
}{wxexecute
}\\
79 \helpref{wxExit
}{wxexit
}\\
80 \helpref{wxEXPLICIT
}{wxexplicit
}\\
81 \helpref{wxFAIL
\_MSG}{wxfailmsg
}\\
82 \helpref{wxFAIL
}{wxfail
}\\
83 \helpref{wxFatalError
}{wxfatalerror
}\\
84 \helpref{wxFileExists
}{functionwxfileexists
}\\
85 \helpref{wxFileModificationTime
}{wxfilemodificationtime
}\\
86 \helpref{wxFileNameFromPath
}{wxfilenamefrompath
}\\
87 \helpref{wxFileSelector
}{wxfileselector
}\\
88 \helpref{wxFindFirstFile
}{wxfindfirstfile
}\\
89 \helpref{wxFindMenuItemId
}{wxfindmenuitemid
}\\
90 \helpref{wxFindNextFile
}{wxfindnextfile
}\\
91 \helpref{wxFindWindowAtPointer
}{wxfindwindowatpointer
}\\
92 \helpref{wxFindWindowAtPoint
}{wxfindwindowatpoint
}\\
93 \helpref{wxFindWindowByLabel
}{wxfindwindowbylabel
}\\
94 \helpref{wxFindWindowByName
}{wxfindwindowbyname
}\\
95 \helpref{wxFinite
}{wxfinite
}\\
96 \helpref{wxGetActiveWindow
}{wxgetactivewindow
}\\
97 \helpref{wxGetApp
}{wxgetapp
}\\
98 \helpref{wxGetClipboardData
}{wxgetclipboarddata
}\\
99 \helpref{wxGetClipboardFormatName
}{wxgetclipboardformatname
}\\
100 \helpref{wxGetColourFromUser
}{wxgetcolourfromuser
}\\
101 \helpref{wxGetCwd
}{wxgetcwd
}\\
102 \helpref{wxGetDiskSpace
}{wxgetdiskspace
}\\
103 \helpref{wxGetDisplayName
}{wxgetdisplayname
}\\
104 \helpref{wxGetDisplaySize
}{wxdisplaysize
}\\
105 \helpref{wxGetDisplaySizeMM
}{wxdisplaysizemm
}\\
106 \helpref{wxGetElapsedTime
}{wxgetelapsedtime
}\\
107 \helpref{wxGetEmailAddress
}{wxgetemailaddress
}\\
108 \helpref{wxGetEnv
}{wxgetenv
}\\
109 \helpref{wxGetFontFromUser
}{wxgetfontfromuser
}\\
110 \helpref{wxGetFreeMemory
}{wxgetfreememory
}\\
111 \helpref{wxGetFullHostName
}{wxgetfullhostname
}\\
112 \helpref{wxGetHomeDir
}{wxgethomedir
}\\
113 \helpref{wxGetHostName
}{wxgethostname
}\\
114 \helpref{wxGetKeyState
}{wxgetkeystate
}\\
115 \helpref{wxGetLocalTimeMillis
}{wxgetlocaltimemillis
}\\
116 \helpref{wxGetLocalTime
}{wxgetlocaltime
}\\
117 \helpref{wxGetMousePosition
}{wxgetmouseposition
}\\
118 \helpref{wxGetMultipleChoices
}{wxgetmultiplechoices
}\\
119 \helpref{wxGetMultipleChoice
}{wxgetmultiplechoice
}\\
120 \helpref{wxGetNumberFromUser
}{wxgetnumberfromuser
}\\
121 \helpref{wxGetOSDirectory
}{wxgetosdirectory
}\\
122 \helpref{wxGetOsDescription
}{wxgetosdescription
}\\
123 \helpref{wxGetOsVersion
}{wxgetosversion
}\\
124 \helpref{wxGetPasswordFromUser
}{wxgetpasswordfromuser
}\\
125 \helpref{wxGetPrinterCommand
}{wxgetprintercommand
}\\
126 \helpref{wxGetPrinterFile
}{wxgetprinterfile
}\\
127 \helpref{wxGetPrinterMode
}{wxgetprintermode
}\\
128 \helpref{wxGetPrinterOptions
}{wxgetprinteroptions
}\\
129 \helpref{wxGetPrinterOrientation
}{wxgetprinterorientation
}\\
130 \helpref{wxGetPrinterPreviewCommand
}{wxgetprinterpreviewcommand
}\\
131 \helpref{wxGetPrinterScaling
}{wxgetprinterscaling
}\\
132 \helpref{wxGetPrinterTranslation
}{wxgetprintertranslation
}\\
133 \helpref{wxGetProcessId
}{wxgetprocessid
}\\
134 \helpref{wxGetResource
}{wxgetresource
}\\
135 \helpref{wxGetSingleChoiceData
}{wxgetsinglechoicedata
}\\
136 \helpref{wxGetSingleChoiceIndex
}{wxgetsinglechoiceindex
}\\
137 \helpref{wxGetSingleChoice
}{wxgetsinglechoice
}\\
138 \helpref{wxGetTempFileName
}{wxgettempfilename
}\\
139 \helpref{wxGetTextFromUser
}{wxgettextfromuser
}\\
140 \helpref{wxGetTopLevelParent
}{wxgettoplevelparent
}\\
141 \helpref{wxGetTranslation
}{wxgettranslation
}\\
142 \helpref{wxGetUTCTime
}{wxgetutctime
}\\
143 \helpref{wxGetUserHome
}{wxgetuserhome
}\\
144 \helpref{wxGetUserId
}{wxgetuserid
}\\
145 \helpref{wxGetUserName
}{wxgetusername
}\\
146 \helpref{wxGetWorkingDirectory
}{wxgetworkingdirectory
}\\
147 \helpref{wxGetenv
}{wxgetenvmacro
}\\
148 \helpref{wxHandleFatalExceptions
}{wxhandlefatalexceptions
}\\
149 \helpref{wxICON
}{wxiconmacro
}\\
150 \helpref{wxINTXX
\_SWAP\_ALWAYS}{intswapalways
}\\
151 \helpref{wxINTXX
\_SWAP\_ON\_BE}{intswaponbe
}\\
152 \helpref{wxINTXX
\_SWAP\_ON\_LE}{intswaponle
}\\
153 \helpref{wxInitAllImageHandlers
}{wxinitallimagehandlers
}\\
154 \helpref{wxInitialize
}{wxinitialize
}\\
155 \helpref{wxIsAbsolutePath
}{wxisabsolutepath
}\\
156 \helpref{wxIsBusy
}{wxisbusy
}\\
157 \helpref{wxIsClipboardFormatAvailable
}{wxisclipboardformatavailable
}\\
158 \helpref{wxIsDebuggerRunning
}{wxisdebuggerrunning
}\\
159 \helpref{wxIsEmpty
}{wxisempty
}\\
160 \helpref{wxIsMainThread
}{wxismainthread
}\\
161 \helpref{wxIsNaN
}{wxisnan
}\\
162 \helpref{wxIsWild
}{wxiswild
}\\
163 \helpref{wxKill
}{wxkill
}\\
164 \helpref{wxLEAVE
\_CRIT\_SECT}{wxleavecritsect
}\\
165 \helpref{wxLoadUserResource
}{wxloaduserresource
}\\
166 \helpref{wxLogDebug
}{wxlogdebug
}\\
167 \helpref{wxLogError
}{wxlogerror
}\\
168 \helpref{wxLogFatalError
}{wxlogfatalerror
}\\
169 \helpref{wxLogMessage
}{wxlogmessage
}\\
170 \helpref{wxLogStatus
}{wxlogstatus
}\\
171 \helpref{wxLogSysError
}{wxlogsyserror
}\\
172 \helpref{wxLogTrace
}{wxlogtrace
}\\
173 \helpref{wxLogVerbose
}{wxlogverbose
}\\
174 \helpref{wxLogWarning
}{wxlogwarning
}\\
175 \helpref{wxLL
}{wxll
}\\
176 \helpref{wxLongLongFmtSpec
}{wxlonglongfmtspec
}\\
177 \helpref{wxMakeMetafilePlaceable
}{wxmakemetafileplaceable
}\\
178 \helpref{wxMatchWild
}{wxmatchwild
}\\
179 \helpref{wxMessageBox
}{wxmessagebox
}\\
180 \helpref{wxMilliSleep
}{wxmillisleep
}\\
181 \helpref{wxMicroSleep
}{wxmicrosleep
}\\
182 \helpref{wxMkdir
}{wxmkdir
}\\
183 \helpref{wxMutexGuiEnter
}{wxmutexguienter
}\\
184 \helpref{wxMutexGuiLeave
}{wxmutexguileave
}\\
185 \helpref{wxNewId
}{wxnewid
}\\
186 \helpref{wxNow
}{wxnow
}\\
187 \helpref{wxOnAssert
}{wxonassert
}\\
188 \helpref{wxOpenClipboard
}{wxopenclipboard
}\\
189 \helpref{wxParseCommonDialogsFilter
}{wxparsecommondialogsfilter
}\\
190 \helpref{wxPathOnly
}{wxpathonly
}\\
191 \helpref{wxPostDelete
}{wxpostdelete
}\\
192 \helpref{wxPostEvent
}{wxpostevent
}\\
193 \helpref{wxRegisterClipboardFormat
}{wxregisterclipboardformat
}\\
194 \helpref{wxRegisterId
}{wxregisterid
}\\
195 \helpref{wxRemoveFile
}{wxremovefile
}\\
196 \helpref{wxRenameFile
}{wxrenamefile
}\\
197 \helpref{wxRmdir
}{wxrmdir
}\\
198 \helpref{wxSafeShowMessage
}{wxsafeshowmessage
}\\
199 \helpref{wxSafeYield
}{wxsafeyield
}\\
200 \helpref{wxSetClipboardData
}{wxsetclipboarddata
}\\
201 \helpref{wxSetCursor
}{wxsetcursor
}\\
202 \helpref{wxSetDisplayName
}{wxsetdisplayname
}\\
203 \helpref{wxSetEnv
}{wxsetenv
}\\
204 \helpref{wxSetPrinterCommand
}{wxsetprintercommand
}\\
205 \helpref{wxSetPrinterFile
}{wxsetprinterfile
}\\
206 \helpref{wxSetPrinterMode
}{wxsetprintermode
}\\
207 \helpref{wxSetPrinterOptions
}{wxsetprinteroptions
}\\
208 \helpref{wxSetPrinterOrientation
}{wxsetprinterorientation
}\\
209 \helpref{wxSetPrinterPreviewCommand
}{wxsetprinterpreviewcommand
}\\
210 \helpref{wxSetPrinterScaling
}{wxsetprinterscaling
}\\
211 \helpref{wxSetPrinterTranslation
}{wxsetprintertranslation
}\\
212 \helpref{wxSetWorkingDirectory
}{wxsetworkingdirectory
}\\
213 \helpref{wxShell
}{wxshell
}\\
214 \helpref{wxShowTip
}{wxshowtip
}\\
215 \helpref{wxShutdown
}{wxshutdown
}\\
216 \helpref{wxSleep
}{wxsleep
}\\
217 \helpref{wxSnprintf
}{wxsnprintf
}\\
218 \helpref{wxSplitPath
}{wxsplitfunction
}\\
219 \helpref{wxStartTimer
}{wxstarttimer
}\\
220 \helpref{wxStaticCast
}{wxstaticcast
}\\
221 \helpref{wxStrcmp
}{wxstrcmp
}\\
222 \helpref{wxStricmp
}{wxstricmp
}\\
223 \helpref{wxStringEq
}{wxstringeq
}\\
224 \helpref{wxStringMatch
}{wxstringmatch
}\\
225 \helpref{wxStripMenuCodes
}{wxstripmenucodes
}\\
226 \helpref{wxStrlen
}{wxstrlen
}\\
227 \helpref{wxSysErrorCode
}{wxsyserrorcode
}\\
228 \helpref{wxSysErrorMsg
}{wxsyserrormsg
}\\
230 \helpref{wxTraceLevel
}{wxtracelevel
}\\
231 \helpref{wxTrace
}{wxtrace
}\\
232 \helpref{wxTransferFileToStream
}{wxtransferfiletostream
}\\
233 \helpref{wxTransferStreamToFile
}{wxtransferstreamtofile
}\\
234 \helpref{wxTrap
}{wxtrap
}\\
235 \helpref{wxULL
}{wxull
}\\
236 \helpref{wxUninitialize
}{wxuninitialize
}\\
237 \helpref{wxUnix2DosFilename
}{wxunix2dosfilename
}\\
238 \helpref{wxUnsetEnv
}{wxunsetenv
}\\
239 \helpref{wxUsleep
}{wxusleep
}\\
240 \helpref{wxVsnprintf
}{wxvsnprintf
}\\
241 \helpref{wxWakeUpIdle
}{wxwakeupidle
}\\
242 \helpref{wxWriteResource
}{wxwriteresource
}\\
243 \helpref{wxYield
}{wxyield
}\\
244 \helpref{wx
\_const\_cast}{wxconstcastraw
}\\
245 \helpref{wx
\_static\_cast}{wxstaticcastraw
}\\
246 \helpref{\_}{underscore
}\\
247 \helpref{\_T}{underscoret
}
251 \section{Version macros
}\label{versionfunctions
}
253 The following constants are defined in wxWidgets:
255 \begin{itemize
}\itemsep=
0pt
256 \item {\tt wxMAJOR
\_VERSION} is the major version of wxWidgets
257 \item {\tt wxMINOR
\_VERSION} is the minor version of wxWidgets
258 \item {\tt wxRELEASE
\_NUMBER} is the release number
259 \item {\tt wxSUBRELEASE
\_NUMBER} is the subrelease number which is $
0$ for all
263 For example, the values or these constants for wxWidgets
2.1.15 are
2,
1 and
266 Additionally,
{\tt wxVERSION
\_STRING} is a user-readable string containing
267 the full wxWidgets version and
{\tt wxVERSION
\_NUMBER} is a combination of the
268 three version numbers above: for
2.1.15, it is
2115 and it is
2200 for
271 The subrelease number is only used for the sources in between official releases
272 and so normally is not useful.
274 \wxheading{Include files
}
276 <wx/version.h> or <wx/defs.h>
279 \membersection{wxCHECK
\_GCC\_VERSION}\label{wxcheckgccversion
}
281 \func{bool
}{wxCHECK
\_GCC\_VERSION}{\param{}{major, minor, release
}}
283 Returns $
1$ if the compiler being used to compile the code is GNU C++
284 compiler (g++) version major.minor.release or greater. Otherwise, and also if
285 the compiler is not GNU C++ at all, returns $
0$.
288 \membersection{wxCHECK
\_VERSION}\label{wxcheckversion
}
290 \func{bool
}{wxCHECK
\_VERSION}{\param{}{major, minor, release
}}
292 This is a macro which evaluates to true if the current wxWidgets version is at
293 least major.minor.release.
295 For example, to test if the program is compiled with wxWidgets
2.2 or higher,
296 the following can be done:
300 #if wxCHECK_VERSION(
2,
2,
0)
301 if ( s.StartsWith("foo") )
302 #else // replacement code for old version
303 if ( strncmp(s, "foo",
3) ==
0 )
311 \membersection{wxCHECK
\_VERSION\_FULL}\label{wxcheckversionfull
}
313 \func{bool
}{wxCHECK
\_VERSION\_FULL}{\param{}{major, minor, release, subrel
}}
315 Same as
\helpref{wxCHECK
\_VERSION}{wxcheckversion
} but also checks that
316 \texttt{wxSUBRELEASE
\_NUMBER} is at least
\arg{subrel
}.
319 \membersection{wxCHECK
\_W32API\_VERSION}\label{wxcheckw32apiversion
}
321 \func{bool
}{wxCHECK
\_GCC\_VERSION}{\param{}{major, minor, release
}}
323 Returns $
1$ if the version of w32api headers used is major.minor.release or
324 greater. Otherwise, and also if we are not compiling with mingw32/cygwin under
325 Win32 at all, returns $
0$.
329 \section{Application initialization and termination
}\label{appinifunctions
}
331 The functions in this section are used on application startup/shutdown and also
332 to control the behaviour of the main event loop of the GUI programs.
335 \membersection{::wxEntry
}\label{wxentry
}
337 This initializes wxWidgets in a platform-dependent way. Use this if you
338 are not using the default wxWidgets entry code (e.g. main or WinMain). For example,
339 you can initialize wxWidgets from an Microsoft Foundation Classes application using
342 \func{void
}{wxEntry
}{\param{HANDLE
}{ hInstance
},
\param{HANDLE
}{ hPrevInstance
},
343 \param{const wxString\&
}{commandLine
},
\param{int
}{ cmdShow
},
\param{bool
}{ enterLoop = true
}}
345 wxWidgets initialization under Windows (non-DLL). If
{\it enterLoop
} is false, the
346 function will return immediately after calling wxApp::OnInit. Otherwise, the wxWidgets
347 message loop will be entered.
349 \func{void
}{wxEntry
}{\param{HANDLE
}{ hInstance
},
\param{HANDLE
}{ hPrevInstance
},
350 \param{WORD
}{ wDataSegment
},
\param{WORD
}{ wHeapSize
},
\param{const wxString\&
}{ commandLine
}}
352 wxWidgets initialization under Windows (for applications constructed as a DLL).
354 \func{int
}{wxEntry
}{\param{int
}{ argc
},
\param{const wxString\& *
}{argv
}}
356 wxWidgets initialization under Unix.
360 To clean up wxWidgets, call wxApp::OnExit followed by the static function
361 wxApp::CleanUp. For example, if exiting from an MFC application that also uses wxWidgets:
364 int CTheApp::ExitInstance()
366 // OnExit isn't called by CleanUp so must be called explicitly.
370 return CWinApp::ExitInstance();
374 \wxheading{Include files
}
380 \membersection{::wxGetApp
}\label{wxgetapp
}
382 \func{wxAppDerivedClass\&
}{wxGetApp
}{\void}
384 This function doesn't exist in wxWidgets but it is created by using
385 the
\helpref{IMPLEMENT
\_APP}{implementapp
} macro. Thus, before using it
386 anywhere but in the same module where this macro is used, you must make it
387 available using
\helpref{DECLARE
\_APP}{declareapp
}.
389 The advantage of using this function compared to directly using the global
390 wxTheApp pointer is that the latter is of type
{\tt wxApp *
} and so wouldn't
391 allow you to access the functions specific to your application class but not
392 present in wxApp while wxGetApp() returns the object of the right type.
395 \membersection{::wxHandleFatalExceptions
}\label{wxhandlefatalexceptions
}
397 \func{bool
}{wxHandleFatalExceptions
}{\param{bool
}{ doIt = true
}}
399 If
{\it doIt
} is true, the fatal exceptions (also known as general protection
400 faults under Windows or segmentation violations in the Unix world) will be
401 caught and passed to
\helpref{wxApp::OnFatalException
}{wxapponfatalexception
}.
402 By default, i.e. before this function is called, they will be handled in the
403 normal way which usually just means that the application will be terminated.
404 Calling wxHandleFatalExceptions() with
{\it doIt
} equal to false will restore
405 this default behaviour.
408 \membersection{::wxInitAllImageHandlers
}\label{wxinitallimagehandlers
}
410 \func{void
}{wxInitAllImageHandlers
}{\void}
412 Initializes all available image handlers. For a list of available handlers,
413 see
\helpref{wxImage
}{wximage
}.
417 \helpref{wxImage
}{wximage
},
\helpref{wxImageHandler
}{wximagehandler
}
419 \wxheading{Include files
}
424 \membersection{::wxInitialize
}\label{wxinitialize
}
426 \func{bool
}{wxInitialize
}{\void}
428 This function is used in wxBase only and only if you don't create
429 \helpref{wxApp
}{wxapp
} object at all. In this case you must call it from your
430 {\tt main()
} function before calling any other wxWidgets functions.
432 If the function returns
{\tt false
} the initialization could not be performed,
433 in this case the library cannot be used and
434 \helpref{wxUninitialize
}{wxuninitialize
} shouldn't be called neither.
436 This function may be called several times but
437 \helpref{wxUninitialize
}{wxuninitialize
} must be called for each successful
438 call to this function.
440 \wxheading{Include files
}
445 \membersection{::wxSafeYield
}\label{wxsafeyield
}
447 \func{bool
}{wxSafeYield
}{\param{wxWindow*
}{ win = NULL
},
\param{bool
}{
448 onlyIfNeeded = false
}}
450 This function is similar to wxYield, except that it disables the user input to
451 all program windows before calling wxYield and re-enables it again
452 afterwards. If
{\it win
} is not NULL, this window will remain enabled,
453 allowing the implementation of some limited user interaction.
455 Returns the result of the call to
\helpref{::wxYield
}{wxyield
}.
457 \wxheading{Include files
}
462 \membersection{::wxUninitialize
}\label{wxuninitialize
}
464 \func{void
}{wxUninitialize
}{\void}
466 This function is for use in console (wxBase) programs only. It must be called
467 once for each previous successful call to
\helpref{wxInitialize
}{wxinitialize
}.
469 \wxheading{Include files
}
474 \membersection{::wxYield
}\label{wxyield
}
476 \func{bool
}{wxYield
}{\void}
478 Calls
\helpref{wxApp::Yield
}{wxappyield
}.
480 This function is kept only for backwards compatibility. Please use
481 the
\helpref{wxApp::Yield
}{wxappyield
} method instead in any new code.
483 \wxheading{Include files
}
485 <wx/app.h> or <wx/utils.h>
488 \membersection{::wxWakeUpIdle
}\label{wxwakeupidle
}
490 \func{void
}{wxWakeUpIdle
}{\void}
492 This functions wakes up the (internal and platform dependent) idle system, i.e. it
493 will force the system to send an idle event even if the system currently
{\it is
}
494 idle and thus would not send any idle event until after some other event would get
495 sent. This is also useful for sending events between two threads and is used by
496 the corresponding functions
\helpref{::wxPostEvent
}{wxpostevent
} and
497 \helpref{wxEvtHandler::AddPendingEvent
}{wxevthandleraddpendingevent
}.
499 \wxheading{Include files
}
505 \section{Process control functions
}\label{processfunctions
}
507 The functions in this section are used to launch or terminate the other
511 \membersection{::wxExecute
}\label{wxexecute
}
513 \func{long
}{wxExecute
}{\param{const wxString\&
}{command
},
\param{int
}{sync = wxEXEC
\_ASYNC},
\param{wxProcess *
}{callback = NULL
}}
515 \perlnote{In wxPerl this function is called
\texttt{Wx::ExecuteCommand
}}
517 \func{long
}{wxExecute
}{\param{char **
}{argv
},
\param{int
}{flags = wxEXEC
\_ASYNC},
\param{wxProcess *
}{callback = NULL
}}
519 \perlnote{In wxPerl this function is called
\texttt{Wx::ExecuteArgs
}}
521 \func{long
}{wxExecute
}{\param{const wxString\&
}{command
},
\param{wxArrayString\&
}{output
}}
523 \perlnote{In wxPerl this function is called
\texttt{Wx::ExecuteStdout
} and it
524 only takes the
{\tt command
} argument,
525 and returns a
2-element list
{\tt ( status, output )
}, where
{\tt output
} is
528 \func{long
}{wxExecute
}{\param{const wxString\&
}{command
},
\param{wxArrayString\&
}{output
},
\param{wxArrayString\&
}{errors
}}
530 \perlnote{In wxPerl this function is called
\texttt{Wx::ExecuteStdoutStderr
}
531 and it only takes the
{\tt command
} argument,
532 and returns a
3-element list
{\tt ( status, output, errors )
}, where
533 {\tt output
} and
{\tt errors
} are array references.
}
535 Executes another program in Unix or Windows.
537 The first form takes a command string, such as
{\tt "emacs file.txt"
}.
539 The second form takes an array of values: a command, any number of
540 arguments, terminated by NULL.
542 The semantics of the third and fourth versions is different from the first two
543 and is described in more details below.
545 If
{\it flags
} parameter contains
{\tt wxEXEC
\_ASYNC} flag (the default), flow
546 of control immediately returns. If it contains
{\tt wxEXEC
\_SYNC}, the current
547 application waits until the other program has terminated.
549 In the case of synchronous execution, the return value is the exit code of
550 the process (which terminates by the moment the function returns) and will be
551 $-
1$ if the process couldn't be started and typically
0 if the process
552 terminated successfully. Also, while waiting for the process to
553 terminate, wxExecute will call
\helpref{wxYield
}{wxyield
}. The caller
554 should ensure that this can cause no recursion, in the simplest case by
555 calling
\helpref{wxEnableTopLevelWindows(false)
}{wxenabletoplevelwindows
}.
557 For asynchronous execution, however, the return value is the process id and
558 zero value indicates that the command could not be executed. As an added
559 complication, the return value of $-
1$ in this case indicates that we didn't
560 launch a new process, but connected to the running one (this can only happen in
561 case of using DDE under Windows for command execution). In particular, in this,
562 and only this, case the calling code will not get the notification about
565 If callback isn't NULL and if execution is asynchronous,
566 \helpref{wxProcess::OnTerminate
}{wxprocessonterminate
} will be called when
567 the process finishes. Specifying this parameter also allows you to redirect the
568 standard input and/or output of the process being launched by calling
569 \helpref{Redirect
}{wxprocessredirect
}. If the child process IO is redirected,
570 under Windows the process window is not shown by default (this avoids having to
571 flush an unnecessary console for the processes which don't create any windows
572 anyhow) but a
{\tt wxEXEC
\_NOHIDE} flag can be used to prevent this from
573 happening, i.e. with this flag the child process window will be shown normally.
575 Under Unix the flag
{\tt wxEXEC
\_MAKE\_GROUP\_LEADER} may be used to ensure
576 that the new process is a group leader (this will create a new session if
577 needed). Calling
\helpref{wxKill
}{wxkill
} with the argument of -pid where pid
578 is the process ID of the new process will kill this process as well as all of
579 its children (except those which have started their own session).
581 Finally, you may use the third overloaded version of this function to execute
582 a process (always synchronously) and capture its output in the array
583 {\it output
}. The fourth version adds the possibility to additionally capture
584 the messages from standard error output in the
{\it errors
} array.
586 {\bf NB:
} Currently wxExecute() can only be used from the main thread, calling
587 this function from another thread will result in an assert failure in debug
588 build and won't work.
592 \helpref{wxShell
}{wxshell
},
\helpref{wxProcess
}{wxprocess
},
\helpref{Exec sample
}{sampleexec
}.
594 \wxheading{Parameters
}
596 \docparam{command
}{The command to execute and any parameters to pass to it as a
599 \docparam{argv
}{The command to execute should be the first element of this
600 array, any additional ones are the command parameters and the array must be
601 terminated with a NULL pointer.
}
603 \docparam{flags
}{Combination of bit masks
{\tt wxEXEC
\_ASYNC},
\rtfsp
604 {\tt wxEXEC
\_SYNC} and
{\tt wxEXEC
\_NOHIDE}}
606 \docparam{callback
}{An optional pointer to
\helpref{wxProcess
}{wxprocess
}}
608 \wxheading{Include files
}
613 \membersection{::wxExit
}\label{wxexit
}
615 \func{void
}{wxExit
}{\void}
617 Exits application after calling
\helpref{wxApp::OnExit
}{wxapponexit
}.
618 Should only be used in an emergency: normally the top-level frame
619 should be deleted (after deleting all other frames) to terminate the
620 application. See
\helpref{wxCloseEvent
}{wxcloseevent
} and
\helpref{wxApp
}{wxapp
}.
622 \wxheading{Include files
}
627 \membersection{::wxKill
}\label{wxkill
}
629 \func{int
}{wxKill
}{\param{long
}{ pid
},
\param{int
}{ sig = wxSIGTERM
},
\param{wxKillError
}{*rc = NULL
}}
631 Equivalent to the Unix kill function: send the given signal
{\it sig
} to the
632 process with PID
{\it pid
}. The valid signal values are
637 wxSIGNONE =
0, // verify if the process exists under Unix
646 wxSIGKILL, // forcefully kill, dangerous!
652 wxSIGTERM // terminate the process gently
656 {\tt wxSIGNONE
},
{\tt wxSIGKILL
} and
{\tt wxSIGTERM
} have the same meaning
657 under both Unix and Windows but all the other signals are equivalent to
658 {\tt wxSIGTERM
} under Windows.
660 Returns
0 on success, -
1 on failure. If
{\it rc
} parameter is not NULL, it will
661 be filled with an element of
{\tt wxKillError
} enum:
666 wxKILL_OK, // no error
667 wxKILL_BAD_SIGNAL, // no such signal
668 wxKILL_ACCESS_DENIED, // permission denied
669 wxKILL_NO_PROCESS, // no such process
670 wxKILL_ERROR // another, unspecified error
676 \helpref{wxProcess::Kill
}{wxprocesskill
},
\rtfsp
677 \helpref{wxProcess::Exists
}{wxprocessexists
},
\rtfsp
678 \helpref{Exec sample
}{sampleexec
}
680 \wxheading{Include files
}
685 \membersection{::wxGetProcessId
}\label{wxgetprocessid
}
687 \func{unsigned long
}{wxGetProcessId
}{\void}
689 Returns the number uniquely identifying the current process in the system.
691 If an error occurs, $
0$ is returned.
693 \wxheading{Include files
}
698 \membersection{::wxShell
}\label{wxshell
}
700 \func{bool
}{wxShell
}{\param{const wxString\&
}{command = NULL
}}
702 Executes a command in an interactive shell window. If no command is
703 specified, then just the shell is spawned.
705 See also
\helpref{wxExecute
}{wxexecute
},
\helpref{Exec sample
}{sampleexec
}.
707 \wxheading{Include files
}
712 \membersection{::wxShutdown
}\label{wxshutdown
}
714 \func{bool
}{wxShutdown
}{\param{wxShutdownFlags
}{flags
}}
716 This function shuts down or reboots the computer depending on the value of the
717 {\it flags
}. Please notice that doing this requires the corresponding access
718 rights (superuser under Unix,
{\tt SE
\_SHUTDOWN} privelege under Windows NT)
719 and that this function is only implemented under Unix and Win32.
721 \wxheading{Parameters
}
723 \docparam{flags
}{Either
{\tt wxSHUTDOWN
\_POWEROFF} or
{\tt wxSHUTDOWN
\_REBOOT}}
727 {\tt true
} on success,
{\tt false
} if an error occured.
729 \wxheading{Include files
}
735 \section{Thread functions
}\label{threadfunctions
}
737 The functions and macros here mainly exist to make it writing the code which
738 may be compiled in multi thread build (
{\tt wxUSE
\_THREADS} $=
1$) as well as
739 in single thread configuration (
{\tt wxUSE
\_THREADS} $=
0$).
741 For example, a static variable must be protected against simultaneous access by
742 multiple threads in the former configuration but in the latter the extra
743 overhead of using the critical section is not needed. To solve this problem,
744 the
\helpref{wxCRITICAL
\_SECTION}{wxcriticalsectionmacro
} macro may be used
745 to create and use the critical section only when needed.
747 \wxheading{Include files
}
753 \helpref{wxThread
}{wxthread
},
\helpref{wxMutex
}{wxmutex
},
\helpref{Multithreading overview
}{wxthreadoverview
}
757 \membersection{wxCRIT
\_SECT\_DECLARE}\label{wxcritsectdeclare
}
759 \func{}{wxCRIT
\_SECT\_DECLARE}{\param{}{cs
}}
761 This macro declares a (static) critical section object named
{\it cs
} if
762 {\tt wxUSE
\_THREADS} is $
1$ and does nothing if it is $
0$.
766 \membersection{wxCRIT
\_SECT\_DECLARE\_MEMBER}\label{wxcritsectdeclaremember
}
768 \func{}{wxCRIT
\_SECT\_DECLARE}{\param{}{cs
}}
770 This macro declares a critical section object named
{\it cs
} if
771 {\tt wxUSE
\_THREADS} is $
1$ and does nothing if it is $
0$. As it doesn't
772 include the
{\tt static
} keyword (unlike
773 \helpref{wxCRIT
\_SECT\_DECLARE}{wxcritsectdeclare
}), it can be used to declare
774 a class or struct member which explains its name.
778 \membersection{wxCRIT
\_SECT\_LOCKER}\label{wxcritsectlocker
}
780 \func{}{wxCRIT
\_SECT\_LOCKER}{\param{}{name
},
\param{}{cs
}}
782 This macro creates a
\helpref{critical section lock
}{wxcriticalsectionlocker
}
783 object named
{\it name
} and associated with the critical section
{\it cs
} if
784 {\tt wxUSE
\_THREADS} is $
1$ and does nothing if it is $
0$.
788 \membersection{wxCRITICAL
\_SECTION}\label{wxcriticalsectionmacro
}
790 \func{}{wxCRITICAL
\_SECTION}{\param{}{name
}}
792 This macro combines
\helpref{wxCRIT
\_SECT\_DECLARE}{wxcritsectdeclare
} and
793 \helpref{wxCRIT
\_SECT\_LOCKER}{wxcritsectlocker
}: it creates a static critical
794 section object and also the lock object associated with it. Because of this, it
795 can be only used inside a function, not at global scope. For example:
800 static int s_counter =
0;
802 wxCRITICAL_SECTION(counter);
808 (note that we suppose that the function is called the first time from the main
809 thread so that the critical section object is initialized correctly by the time
810 other threads start calling it, if this is not the case this approach can
811 {\bf not
} be used and the critical section must be made a global instead).
815 \membersection{wxENTER
\_CRIT\_SECT}\label{wxentercritsect
}
817 \func{}{wxENTER
\_CRIT\_SECT}{\param{wxCriticalSection\&
}{cs
}}
819 This macro is equivalent to
\helpref{cs.Enter()
}{wxcriticalsectionenter
} if
820 {\tt wxUSE
\_THREADS} is $
1$ and does nothing if it is $
0$.
824 \membersection{::wxIsMainThread
}\label{wxismainthread
}
826 \func{bool
}{wxIsMainThread
}{\void}
828 Returns
{\tt true
} if this thread is the main one. Always returns
{\tt true
} if
829 {\tt wxUSE
\_THREADS} is $
0$.
833 \membersection{wxLEAVE
\_CRIT\_SECT}\label{wxleavecritsect
}
835 \func{}{wxLEAVE
\_CRIT\_SECT}{\param{wxCriticalSection\&
}{cs
}}
837 This macro is equivalent to
\helpref{cs.Leave()
}{wxcriticalsectionleave
} if
838 {\tt wxUSE
\_THREADS} is $
1$ and does nothing if it is $
0$.
842 \membersection{::wxMutexGuiEnter
}\label{wxmutexguienter
}
844 \func{void
}{wxMutexGuiEnter
}{\void}
846 This function must be called when any thread other than the main GUI thread
847 wants to get access to the GUI library. This function will block the execution
848 of the calling thread until the main thread (or any other thread holding the
849 main GUI lock) leaves the GUI library and no other thread will enter the GUI
850 library until the calling thread calls
\helpref{::wxMutexGuiLeave()
}{wxmutexguileave
}.
852 Typically, these functions are used like this:
855 void MyThread::Foo(void)
857 // before doing any GUI calls we must ensure that this thread is the only
863 my_window->DrawSomething();
869 Note that under GTK, no creation of top-level windows is allowed in any
870 thread but the main one.
872 This function is only defined on platforms which support preemptive
876 \membersection{::wxMutexGuiLeave
}\label{wxmutexguileave
}
878 \func{void
}{wxMutexGuiLeave
}{\void}
880 See
\helpref{::wxMutexGuiEnter()
}{wxmutexguienter
}.
882 This function is only defined on platforms which support preemptive
887 \section{File functions
}\label{filefunctions
}
889 \wxheading{Include files
}
895 \helpref{wxPathList
}{wxpathlist
}\\
896 \helpref{wxDir
}{wxdir
}\\
897 \helpref{wxFile
}{wxfile
}\\
898 \helpref{wxFileName
}{wxfilename
}
901 \membersection{::wxDirExists
}\label{functionwxdirexists
}
903 \func{bool
}{wxDirExists
}{\param{const wxString\&
}{dirname
}}
905 Returns true if the directory exists.
908 \membersection{::wxDos2UnixFilename
}\label{wxdos2unixfilename
}
910 \func{void
}{wxDos2UnixFilename
}{\param{wxChar *
}{s
}}
912 Converts a DOS to a Unix filename by replacing backslashes with forward
916 \membersection{::wxFileExists
}\label{functionwxfileexists
}
918 \func{bool
}{wxFileExists
}{\param{const wxString\&
}{filename
}}
920 Returns true if the file exists and is a plain file.
923 \membersection{::wxFileModificationTime
}\label{wxfilemodificationtime
}
925 \func{time
\_t}{wxFileModificationTime
}{\param{const wxString\&
}{filename
}}
927 Returns time of last modification of given file.
930 \membersection{::wxFileNameFromPath
}\label{wxfilenamefrompath
}
932 \func{wxString
}{wxFileNameFromPath
}{\param{const wxString\&
}{path
}}
934 \func{char *
}{wxFileNameFromPath
}{\param{char *
}{path
}}
936 {\bf NB:
} This function is obsolete, please use
937 \helpref{wxFileName::SplitPath
}{wxfilenamesplitpath
} instead.
939 Returns the filename for a full path. The second form returns a pointer to
940 temporary storage that should not be deallocated.
943 \membersection{::wxFindFirstFile
}\label{wxfindfirstfile
}
945 \func{wxString
}{wxFindFirstFile
}{\param{const char *
}{spec
},
\param{int
}{ flags =
0}}
947 This function does directory searching; returns the first file
948 that matches the path
{\it spec
}, or the empty string. Use
\helpref{wxFindNextFile
}{wxfindnextfile
} to
949 get the next matching file. Neither will
report the current directory "." or the
950 parent directory "..".
954 As of wx
2.5.2, these functions are not thread-safe! (use static variables)
956 {\it spec
} may contain wildcards.
958 {\it flags
} may be wxDIR for restricting the query to directories, wxFILE for files or zero for either.
963 wxString f = wxFindFirstFile("/home/project/*.*");
964 while ( !f.IsEmpty() )
967 f = wxFindNextFile();
972 \membersection{::wxFindNextFile
}\label{wxfindnextfile
}
974 \func{wxString
}{wxFindNextFile
}{\void}
976 Returns the next file that matches the path passed to
\helpref{wxFindFirstFile
}{wxfindfirstfile
}.
978 See
\helpref{wxFindFirstFile
}{wxfindfirstfile
} for an example.
981 \membersection{::wxGetDiskSpace
}\label{wxgetdiskspace
}
983 \func{bool
}{wxGetDiskSpace
}{\param{const wxString\&
}{path
},
\param{wxLongLong
}{*total = NULL
},
\param{wxLongLong
}{*free = NULL
}}
985 This function returns the total number of bytes and number of free bytes on
986 the disk containing the directory
{\it path
} (it should exist). Both
987 {\it total
} and
{\it free
} parameters may be
{\tt NULL
} if the corresponding
988 information is not needed.
992 {\tt true
} on success,
{\tt false
} if an error occured (for example, the
993 directory doesn't exist).
995 \wxheading{Portability
}
997 This function is implemented for Win32,
998 Mac OS and generic Unix provided the system has
{\tt statfs()
} function.
1000 This function first appeared in wxWidgets
2.3.2.
1003 \membersection{::wxGetOSDirectory
}\label{wxgetosdirectory
}
1005 \func{wxString
}{wxGetOSDirectory
}{\void}
1007 Returns the Windows directory under Windows; on other platforms returns the empty string.
1010 \membersection{::wxIsAbsolutePath
}\label{wxisabsolutepath
}
1012 \func{bool
}{wxIsAbsolutePath
}{\param{const wxString\&
}{filename
}}
1014 Returns true if the argument is an absolute filename, i.e. with a slash
1015 or drive name at the beginning.
1018 \membersection{::wxPathOnly
}\label{wxpathonly
}
1020 \func{wxString
}{wxPathOnly
}{\param{const wxString\&
}{path
}}
1022 Returns the directory part of the filename.
1025 \membersection{::wxUnix2DosFilename
}\label{wxunix2dosfilename
}
1027 \func{void
}{wxUnix2DosFilename
}{\param{const wxString\&
}{s
}}
1029 Converts a Unix to a DOS filename by replacing forward
1030 slashes with backslashes.
1033 \membersection{::wxConcatFiles
}\label{wxconcatfiles
}
1035 \func{bool
}{wxConcatFiles
}{\param{const wxString\&
}{file1
},
\param{const wxString\&
}{file2
},
1036 \param{const wxString\&
}{file3
}}
1038 Concatenates
{\it file1
} and
{\it file2
} to
{\it file3
}, returning
1042 \membersection{::wxCopyFile
}\label{wxcopyfile
}
1044 \func{bool
}{wxCopyFile
}{\param{const wxString\&
}{file1
},
\param{const wxString\&
}{file2
},
\param{bool
}{overwrite = true
}}
1046 Copies
{\it file1
} to
{\it file2
}, returning true if successful. If
1047 {\it overwrite
} parameter is true (default), the destination file is overwritten
1048 if it exists, but if
{\it overwrite
} is false, the functions fails in this
1052 \membersection{::wxGetCwd
}\label{wxgetcwd
}
1054 \func{wxString
}{wxGetCwd
}{\void}
1056 Returns a string containing the current (or working) directory.
1059 \membersection{::wxGetWorkingDirectory
}\label{wxgetworkingdirectory
}
1061 \func{wxString
}{wxGetWorkingDirectory
}{\param{char *
}{buf=NULL
},
\param{int
}{sz=
1000}}
1063 {\bf NB:
} This function is obsolete: use
\helpref{wxGetCwd
}{wxgetcwd
} instead.
1065 Copies the current working directory into the buffer if supplied, or
1066 copies the working directory into new storage (which you
{\emph must
} delete
1067 yourself) if the buffer is NULL.
1069 {\it sz
} is the size of the buffer if supplied.
1072 \membersection{::wxGetTempFileName
}\label{wxgettempfilename
}
1074 \func{char *
}{wxGetTempFileName
}{\param{const wxString\&
}{prefix
},
\param{char *
}{buf=NULL
}}
1076 \func{bool
}{wxGetTempFileName
}{\param{const wxString\&
}{prefix
},
\param{wxString\&
}{buf
}}
1078 %% Makes a temporary filename based on {\it prefix}, opens and closes the file,
1079 %% and places the name in {\it buf}. If {\it buf} is NULL, new store
1080 %% is allocated for the temporary filename using {\it new}.
1082 %% Under Windows, the filename will include the drive and name of the
1083 %% directory allocated for temporary files (usually the contents of the
1084 %% TEMP variable). Under Unix, the {\tt /tmp} directory is used.
1086 %% It is the application's responsibility to create and delete the file.
1088 {\bf NB:
} These functions are obsolete, please use
\rtfsp
1089 \helpref{wxFileName::CreateTempFileName
}{wxfilenamecreatetempfilename
}\rtfsp
1093 \membersection{::wxIsWild
}\label{wxiswild
}
1095 \func{bool
}{wxIsWild
}{\param{const wxString\&
}{pattern
}}
1097 Returns true if the pattern contains wildcards. See
\helpref{wxMatchWild
}{wxmatchwild
}.
1100 \membersection{::wxMatchWild
}\label{wxmatchwild
}
1102 \func{bool
}{wxMatchWild
}{\param{const wxString\&
}{pattern
},
\param{const wxString\&
}{text
},
\param{bool
}{ dot
\_special}}
1104 Returns true if the
\arg{pattern
}\/ matches the
{\it text
}\/; if
{\it
1105 dot
\_special}\/ is true, filenames beginning with a dot are not matched
1106 with wildcard characters. See
\helpref{wxIsWild
}{wxiswild
}.
1109 \membersection{::wxMkdir
}\label{wxmkdir
}
1111 \func{bool
}{wxMkdir
}{\param{const wxString\&
}{dir
},
\param{int
}{perm =
0777}}
1113 Makes the directory
\arg{dir
}, returning true if successful.
1115 {\it perm
} is the access mask for the directory for the systems on which it is
1116 supported (Unix) and doesn't have effect for the other ones.
1119 \membersection{::wxParseCommonDialogsFilter
}\label{wxparsecommondialogsfilter
}
1121 \func{int
}{wxParseCommonDialogsFilter
}{\param{const wxString\&
}{wildCard
},
\param{wxArrayString\&
}{descriptions
},
\param{wxArrayString\&
}{filters
}}
1123 Parses the
\arg{wildCard
}, returning the number of filters.
1124 Returns
0 if none or if there's a problem.
1125 The arrays will contain an equal number of items found before the error.
1126 On platforms where native dialogs handle only one filter per entry,
1127 entries in arrays are automatically adjusted.
1128 \arg{wildCard
} is in the form:
1130 "All files
(*)|*|Image Files (*.jpeg *.png)|*.jpg;*.png"
1133 \membersection{::wxRemoveFile}\label{wxremovefile}
1135 \func{bool}{wxRemoveFile}{\param{const wxString\& }{file}}
1137 Removes \arg{file}, returning true if successful.
1140 \membersection{::wxRenameFile}\label{wxrenamefile}
1142 \func{bool}{wxRenameFile}{\param{const wxString\& }{file1}, \param{const wxString\& }{file2}}
1144 Renames \arg{file1} to \arg{file2}, returning true if successful.
1147 \membersection{::wxRmdir}\label{wxrmdir}
1149 \func{bool}{wxRmdir}{\param{const wxString\& }{dir}, \param{int}{ flags=0}}
1151 Removes the directory {\it dir}, returning true if successful. Does not work under VMS.
1153 The {\it flags} parameter is reserved for future use.
1156 \membersection{::wxSetWorkingDirectory}\label{wxsetworkingdirectory}
1158 \func{bool}{wxSetWorkingDirectory}{\param{const wxString\& }{dir}}
1160 Sets the current working directory, returning true if the operation succeeded.
1161 Under MS Windows, the current drive is also changed if {\it dir} contains a drive specification.
1164 \membersection{::wxSplitPath}\label{wxsplitfunction}
1166 \func{void}{wxSplitPath}{\param{const char *}{ fullname}, \param{wxString *}{ path}, \param{wxString *}{ name}, \param{wxString *}{ ext}}
1168 {\bf NB:} This function is obsolete, please use
1169 \helpref{wxFileName::SplitPath}{wxfilenamesplitpath} instead.
1171 This function splits a full file name into components: the path (including possible disk/drive
1172 specification under Windows), the base name and the extension. Any of the output parameters
1173 ({\it path}, {\it name} or {\it ext}) may be NULL if you are not interested in the value of
1174 a particular component.
1176 wxSplitPath() will correctly handle filenames with both DOS and Unix path separators under
1177 Windows, however it will not consider backslashes as path separators under Unix (where backslash
1178 is a valid character in a filename).
1180 On entry, {\it fullname} should be non-NULL (it may be empty though).
1182 On return, {\it path} contains the file path (without the trailing separator), {\it name}
1183 contains the file name and {\it ext} contains the file extension without leading dot. All
1184 three of them may be empty if the corresponding component is. The old contents of the
1185 strings pointed to by these parameters will be overwritten in any case (if the pointers
1189 \membersection{::wxTransferFileToStream}\label{wxtransferfiletostream}
1191 \func{bool}{wxTransferFileToStream}{\param{const wxString\& }{filename}, \param{ostream\& }{stream}}
1193 Copies the given file to {\it stream}. Useful when converting an old application to
1194 use streams (within the document/view framework, for example).
1196 \wxheading{Include files}
1201 \membersection{::wxTransferStreamToFile}\label{wxtransferstreamtofile}
1203 \func{bool}{wxTransferStreamToFile}{\param{istream\& }{stream} \param{const wxString\& }{filename}}
1205 Copies the given stream to the file {\it filename}. Useful when converting an old application to
1206 use streams (within the document/view framework, for example).
1208 \wxheading{Include files}
1214 \section{Network, user and OS functions}\label{networkfunctions}
1216 The functions in this section are used to retrieve information about the
1217 current computer and/or user characteristics.
1220 \membersection{::wxGetFreeMemory}\label{wxgetfreememory}
1222 \func{long}{wxGetFreeMemory}{\void}
1224 Returns the amount of free memory in bytes under environments which
1225 support it, and -1 if not supported. Currently, it is supported only
1226 under Windows, Linux and Solaris.
1228 \wxheading{Include files}
1233 \membersection{::wxGetFullHostName}\label{wxgetfullhostname}
1235 \func{wxString}{wxGetFullHostName}{\void}
1237 Returns the FQDN (fully qualified domain host name) or an empty string on
1240 \wxheading{See also}
1242 \helpref{wxGetHostName}{wxgethostname}
1244 \wxheading{Include files}
1249 \membersection{::wxGetEmailAddress}\label{wxgetemailaddress}
1251 \func{bool}{wxGetEmailAddress}{\param{const wxString\& }{buf}, \param{int }{sz}}
1253 Copies the user's email address into the supplied buffer, by
1254 concatenating the values returned by \helpref{wxGetFullHostName}{wxgetfullhostname}\rtfsp
1255 and \helpref{wxGetUserId}{wxgetuserid}.
1257 Returns true if successful, false otherwise.
1259 \wxheading{Include files}
1264 \membersection{::wxGetHomeDir}\label{wxgethomedir}
1266 \func{wxString}{wxGetHomeDir}{\void}
1268 Return the (current) user's home directory.
1270 \wxheading{See also}
1272 \helpref{wxGetUserHome}{wxgetuserhome}
1274 \wxheading{Include files}
1279 \membersection{::wxGetHostName}\label{wxgethostname}
1281 \func{wxString}{wxGetHostName}{\void}
1283 \func{bool}{wxGetHostName}{\param{char * }{buf}, \param{int }{sz}}
1285 Copies the current host machine's name into the supplied buffer. Please note
1286 that the returned name is {\it not} fully qualified, i.e. it does not include
1289 Under Windows or NT, this function first looks in the environment
1290 variable SYSTEM\_NAME; if this is not found, the entry {\bf HostName}\rtfsp
1291 in the {\bf wxWidgets} section of the WIN.INI file is tried.
1293 The first variant of this function returns the hostname if successful or an
1294 empty string otherwise. The second (deprecated) function returns true
1295 if successful, false otherwise.
1297 \wxheading{See also}
1299 \helpref{wxGetFullHostName}{wxgetfullhostname}
1301 \wxheading{Include files}
1306 \membersection{::wxGetUserId}\label{wxgetuserid}
1308 \func{wxString}{wxGetUserId}{\void}
1310 \func{bool}{wxGetUserId}{\param{char * }{buf}, \param{int }{sz}}
1312 This function returns the "user id" also known as "login name" under Unix i.e.
1313 something like "jsmith". It uniquely identifies the current user (on this system).
1315 Under Windows or NT, this function first looks in the environment
1316 variables USER and LOGNAME; if neither of these is found, the entry {\bf UserId}\rtfsp
1317 in the {\bf wxWidgets} section of the WIN.INI file is tried.
1319 The first variant of this function returns the login name if successful or an
1320 empty string otherwise. The second (deprecated) function returns true
1321 if successful, false otherwise.
1323 \wxheading{See also}
1325 \helpref{wxGetUserName}{wxgetusername}
1327 \wxheading{Include files}
1332 \membersection{::wxGetOsDescription}\label{wxgetosdescription}
1334 \func{wxString}{wxGetOsDescription}{\void}
1336 Returns the string containing the description of the current platform in a
1337 user-readable form. For example, this function may return strings like
1338 {\tt Windows NT Version 4.0} or {\tt Linux 2.2.2 i386}.
1340 \wxheading{See also}
1342 \helpref{::wxGetOsVersion}{wxgetosversion}
1344 \wxheading{Include files}
1349 \membersection{::wxGetOsVersion}\label{wxgetosversion}
1351 \func{int}{wxGetOsVersion}{\param{int *}{major = NULL}, \param{int *}{minor = NULL}}
1353 Gets operating system version information.
1355 \begin{twocollist}\itemsep=0pt
1356 \twocolitemruled{Platform}{Return types}
1357 \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.
1359 Both {\it major} and {\it minor} have to be looked at as hexadecimal numbers. So System 10.2.4 returns 0x10, resp 16 for {\it major} and 0x24, resp 36 for {\it minor}. }
1360 \twocolitem{GTK}{Return value is wxGTK, For GTK 1.0, {\it major} is 1, {\it minor} is 0. }
1361 \twocolitem{Motif}{Return value is wxMOTIF\_X, {\it major} is X version, {\it minor} is X revision.}
1362 \twocolitem{OS/2}{Return value is wxOS2\_PM.}
1363 \twocolitem{Windows 3.1}{Return value is wxWINDOWS, {\it major} is 3, {\it minor} is 1.}
1364 \twocolitem{Windows NT/2000}{Return value is wxWINDOWS\_NT, version is returned in {\it major} and {\it minor}}
1365 \twocolitem{Windows 98}{Return value is wxWIN95, {\it major} is 4, {\it minor} is 1 or greater.}
1366 \twocolitem{Windows 95}{Return value is wxWIN95, {\it major} is 4, {\it minor} is 0.}
1367 \twocolitem{Win32s (Windows 3.1)}{Return value is wxWIN32S, {\it major} is 3, {\it minor} is 1.}
1368 \twocolitem{Watcom C++ 386 supervisor mode (Windows 3.1)}{Return value is wxWIN386, {\it major} is 3, {\it minor} is 1.}
1371 \wxheading{See also}
1373 \helpref{::wxGetOsDescription}{wxgetosdescription}
1375 \wxheading{Include files}
1380 \membersection{::wxGetUserHome}\label{wxgetuserhome}
1382 \func{const wxChar *}{wxGetUserHome}{\param{const wxString\& }{user = ""}}
1384 Returns the home directory for the given user. If the username is empty
1385 (default value), this function behaves like
1386 \helpref{wxGetHomeDir}{wxgethomedir}.
1388 \wxheading{Include files}
1393 \membersection{::wxGetUserName}\label{wxgetusername}
1395 \func{wxString}{wxGetUserName}{\void}
1397 \func{bool}{wxGetUserName}{\param{char * }{buf}, \param{int }{sz}}
1399 This function returns the full user name (something like "Mr. John Smith").
1401 Under Windows or NT, this function looks for the entry {\bf UserName}\rtfsp
1402 in the {\bf wxWidgets} section of the WIN.INI file. If PenWindows
1403 is running, the entry {\bf Current} in the section {\bf User} of
1404 the PENWIN.INI file is used.
1406 The first variant of this function returns the user name if successful or an
1407 empty string otherwise. The second (deprecated) function returns {\tt true}
1408 if successful, {\tt false} otherwise.
1410 \wxheading{See also}
1412 \helpref{wxGetUserId}{wxgetuserid}
1414 \wxheading{Include files}
1420 \section{String functions}
1423 \membersection{::copystring}\label{copystring}
1425 \func{char *}{copystring}{\param{const char *}{s}}
1427 Makes a copy of the string {\it s} using the C++ new operator, so it can be
1428 deleted with the {\it delete} operator.
1430 This function is deprecated, use \helpref{wxString}{wxstring} class instead.
1433 \membersection{::wxGetTranslation}\label{wxgettranslation}
1435 \func{const char *}{wxGetTranslation}{\param{const char * }{str}}
1437 \func{const char *}{wxGetTranslation}{\param{const char * }{str}, \param{const char * }{strPlural}, \param{size\_t }{n}}
1439 This function returns the translation of string {\it str} in the current
1440 \helpref{locale}{wxlocale}. If the string is not found in any of the loaded
1441 message catalogs (see \helpref{internationalization overview}{internationalization}), the
1442 original string is returned. In debug build, an error message is logged -- this
1443 should help to find the strings which were not yet translated. As this function
1444 is used very often, an alternative (and also common in Unix world) syntax is
1445 provided: the \helpref{\_()}{underscore} macro is defined to do the same thing
1446 as wxGetTranslation.
1448 The second form is used when retrieving translation of string that has
1449 different singular and plural form in English or different plural forms in some
1450 other language. It takes two extra arguments: \arg{str}
1451 parameter must contain the singular form of the string to be converted.
1452 It is also used as the key for the search in the catalog.
1453 The \arg{strPlural} parameter is the plural form (in English).
1454 The parameter \arg{n} is used to determine the plural form. If no
1455 message catalog is found \arg{str} is returned if `n == 1',
1456 otherwise \arg{strPlural}.
1457 See \urlref{GNU gettext manual}{http://www.gnu.org/manual/gettext/html\_chapter/gettext\_10.html\#SEC150} for additional information on plural forms handling.
1459 Both versions call \helpref{wxLocale::GetString}{wxlocalegetstring}.
1461 \membersection{::wxIsEmpty}\label{wxisempty}
1463 \func{bool}{wxIsEmpty}{\param{const char *}{ p}}
1465 Returns {\tt true} if the pointer is either {\tt NULL} or points to an empty
1466 string, {\tt false} otherwise.
1469 \membersection{::wxStrcmp}\label{wxstrcmp}
1471 \func{int}{wxStrcmp}{\param{const char *}{p1}, \param{const char *}{p2}}
1473 Returns a negative value, 0, or positive value if {\it p1} is less than, equal
1474 to or greater than {\it p2}. The comparison is case-sensitive.
1476 This function complements the standard C function {\it stricmp()} which performs
1477 case-insensitive comparison.
1480 \membersection{::wxStricmp}\label{wxstricmp}
1482 \func{int}{wxStricmp}{\param{const char *}{p1}, \param{const char *}{p2}}
1484 Returns a negative value, 0, or positive value if {\it p1} is less than, equal
1485 to or greater than {\it p2}. The comparison is case-insensitive.
1487 This function complements the standard C function {\it strcmp()} which performs
1488 case-sensitive comparison.
1491 \membersection{::wxStringMatch}\label{wxstringmatch}
1493 \func{bool}{wxStringMatch}{\param{const wxString\& }{s1}, \param{const wxString\& }{s2},\\
1494 \param{bool}{ subString = true}, \param{bool}{ exact = false}}
1496 {\bf NB:} This function is obsolete, use \helpref{wxString::Find}{wxstringfind} instead.
1498 Returns {\tt true} if the substring {\it s1} is found within {\it s2},
1499 ignoring case if {\it exact} is false. If {\it subString} is {\tt false},
1500 no substring matching is done.
1503 \membersection{::wxStringEq}\label{wxstringeq}
1505 \func{bool}{wxStringEq}{\param{const wxString\& }{s1}, \param{const wxString\& }{s2}}
1507 {\bf NB:} This function is obsolete, use \helpref{wxString}{wxstring} instead.
1512 #define wxStringEq(s1, s2) (s1 && s2 && (strcmp(s1, s2) == 0))
1516 \membersection{::wxStrlen}\label{wxstrlen}
1518 \func{size\_t}{wxStrlen}{\param{const char *}{ p}}
1520 This is a safe version of standard function {\it strlen()}: it does exactly the
1521 same thing (i.e. returns the length of the string) except that it returns 0 if
1522 {\it p} is the {\tt NULL} pointer.
1525 \membersection{::wxSnprintf}\label{wxsnprintf}
1527 \func{int}{wxSnprintf}{\param{wxChar *}{buf}, \param{size\_t }{len}, \param{const wxChar *}{format}, \param{}{...}}
1529 This function replaces the dangerous standard function {\tt sprintf()} and is
1530 like {\tt snprintf()} available on some platforms. The only difference with
1531 sprintf() is that an additional argument - buffer size - is taken and the
1532 buffer is never overflowed.
1534 Returns the number of characters copied to the buffer or -1 if there is not
1537 \wxheading{See also}
1539 \helpref{wxVsnprintf}{wxvsnprintf}, \helpref{wxString::Printf}{wxstringprintf}
1542 \membersection{wxT}\label{wxt}
1544 \func{wxChar}{wxT}{\param{char }{ch}}
1546 \func{const wxChar *}{wxT}{\param{const char *}{s}}
1548 wxT() is a macro which can be used with character and string literals (in other
1549 words, {\tt 'x'} or {\tt "foo"}) to automatically convert them to Unicode in
1550 Unicode build configuration. Please see the
1551 \helpref{Unicode overview}{unicode} for more information.
1553 This macro is simply returns the value passed to it without changes in ASCII
1554 build. In fact, its definition is:
1557 #define wxT(x) L ## x
1564 \membersection{wxTRANSLATE}\label{wxtranslate}
1566 \func{const wxChar *}{wxTRANSLATE}{\param{const char *}{s}}
1568 This macro doesn't do anything in the program code -- it simply expands to the
1569 value of its argument (except in Unicode build where it is equivalent to
1570 \helpref{wxT}{wxt} which makes it unnecessary to use both wxTRANSLATE and wxT
1571 with the same string which would be really unreadable).
1573 However it does have a purpose and it is to mark the literal strings for the
1574 extraction into the message catalog created by {\tt xgettext} program. Usually
1575 this is achieved using \helpref{\_()}{underscore} but that macro not only marks
1576 the string for extraction but also expands into a
1577 \helpref{wxGetTranslation}{wxgettranslation} function call which means that it
1578 cannot be used in some situations, notably for static array
1581 Here is an example which should make it more clear: suppose that you have a
1582 static array of strings containing the weekday names and which have to be
1583 translated (note that it is a bad example, really, as
1584 \helpref{wxDateTime}{wxdatetime} already can be used to get the localized week
1585 day names already). If you write
1588 static const wxChar * const weekdays[] = { _("Mon"), ..., _("Sun") };
1590 // use weekdays[n] as usual
1593 the code wouldn't compile because the function calls are forbidden in the array
1594 initializer. So instead you should do
1597 static const wxChar * const weekdays[] = { wxTRANSLATE("Mon"), ..., wxTRANSLATE("Sun") };
1599 // use wxGetTranslation(weekdays[n])
1604 Note that although the code {\bf would} compile if you simply omit
1605 wxTRANSLATE() in the above, it wouldn't work as expected because there would be
1606 no translations for the weekday names in the program message catalog and
1607 wxGetTranslation wouldn't find them.
1609 \membersection{::wxVsnprintf}\label{wxvsnprintf}
1611 \func{int}{wxVsnprintf}{\param{wxChar *}{buf}, \param{size\_t }{len}, \param{const wxChar *}{format}, \param{va\_list }{argPtr}}
1613 The same as \helpref{wxSnprintf}{wxsnprintf} but takes a {\tt va\_list }
1614 argument instead of arbitrary number of parameters.
1616 \wxheading{See also}
1618 \helpref{wxSnprintf}{wxsnprintf}, \helpref{wxString::PrintfV}{wxstringprintfv}
1622 \membersection{\_}\label{underscore}
1624 \func{const wxChar *}{\_}{\param{const char *}{s}}
1626 This macro expands into a call to \helpref{wxGetTranslation}{wxgettranslation}
1627 function, so it marks the message for the extraction by {\tt xgettext} just as
1628 \helpref{wxTRANSLATE}{wxtranslate} does, but also returns the translation of
1629 the string for the current locale during execution.
1631 Don't confuse this macro with \helpref{\_T()}{underscoret}!
1634 \membersection{\_T}\label{underscoret}
1636 \func{wxChar}{\_T}{\param{char }{ch}}
1638 \func{const wxChar *}{\_T}{\param{const wxChar }{ch}}
1640 This macro is exactly the same as \helpref{wxT}{wxt} and is defined in
1641 wxWidgets simply because it may be more intuitive for Windows programmers as
1642 the standard Win32 headers also define it (as well as yet another name for the
1643 same macro which is {\tt \_TEXT()}).
1645 Don't confuse this macro with \helpref{\_()}{underscore}!
1649 \section{Dialog functions}\label{dialogfunctions}
1651 Below are a number of convenience functions for getting input from the
1652 user or displaying messages. Note that in these functions the last three
1653 parameters are optional. However, it is recommended to pass a parent frame
1654 parameter, or (in MS Windows or Motif) the wrong window frame may be brought to
1655 the front when the dialog box is popped up.
1658 \membersection{::wxBeginBusyCursor}\label{wxbeginbusycursor}
1660 \func{void}{wxBeginBusyCursor}{\param{wxCursor *}{cursor = wxHOURGLASS\_CURSOR}}
1662 Changes the cursor to the given cursor for all windows in the application.
1663 Use \helpref{wxEndBusyCursor}{wxendbusycursor} to revert the cursor back
1664 to its previous state. These two calls can be nested, and a counter
1665 ensures that only the outer calls take effect.
1667 See also \helpref{wxIsBusy}{wxisbusy}, \helpref{wxBusyCursor}{wxbusycursor}.
1669 \wxheading{Include files}
1674 \membersection{::wxBell}\label{wxbell}
1676 \func{void}{wxBell}{\void}
1678 Ring the system bell.
1680 \wxheading{Include files}
1685 \membersection{::wxCreateFileTipProvider}\label{wxcreatefiletipprovider}
1687 \func{wxTipProvider *}{wxCreateFileTipProvider}{\param{const wxString\& }{filename},
1688 \param{size\_t }{currentTip}}
1690 This function creates a \helpref{wxTipProvider}{wxtipprovider} which may be
1691 used with \helpref{wxShowTip}{wxshowtip}.
1693 \docparam{filename}{The name of the file containing the tips, one per line}
1694 \docparam{currentTip}{The index of the first tip to show - normally this index
1695 is remembered between the 2 program runs.}
1697 \wxheading{See also}
1699 \helpref{Tips overview}{tipsoverview}
1701 \wxheading{Include files}
1706 \membersection{::wxDirSelector}\label{wxdirselector}
1708 \func{wxString}{wxDirSelector}{\param{const wxString\& }{message = wxDirSelectorPromptStr},\\
1709 \param{const wxString\& }{default\_path = ""},\\
1710 \param{long }{style = 0}, \param{const wxPoint\& }{pos = wxDefaultPosition},\\
1711 \param{wxWindow *}{parent = NULL}}
1713 Pops up a directory selector dialog. The arguments have the same meaning as
1714 those of wxDirDialog::wxDirDialog(). The message is displayed at the top,
1715 and the default\_path, if specified, is set as the initial selection.
1717 The application must check for an empty return value (if the user pressed
1718 Cancel). For example:
1721 const wxString& dir = wxDirSelector("Choose a folder");
1728 \wxheading{Include files}
1733 \membersection{::wxFileSelector}\label{wxfileselector}
1735 \func{wxString}{wxFileSelector}{\param{const wxString\& }{message}, \param{const wxString\& }{default\_path = ""},\\
1736 \param{const wxString\& }{default\_filename = ""}, \param{const wxString\& }{default\_extension = ""},\\
1737 \param{const wxString\& }{wildcard = ``*.*''}, \param{int }{flags = 0}, \param{wxWindow *}{parent = ""},\\
1738 \param{int}{ x = -1}, \param{int}{ y = -1}}
1740 Pops up a file selector box. In Windows, this is the common file selector
1741 dialog. In X, this is a file selector box with the same functionality.
1742 The path and filename are distinct elements of a full file pathname.
1743 If path is empty, the current directory will be used. If filename is empty,
1744 no default filename will be supplied. The wildcard determines what files
1745 are displayed in the file selector, and file extension supplies a type
1746 extension for the required filename. Flags may be a combination of wxOPEN,
1747 wxSAVE, wxOVERWRITE\_PROMPT, wxFILE\_MUST\_EXIST, wxMULTIPLE or 0.
1749 Both the Unix and Windows versions implement a wildcard filter. Typing a
1750 filename containing wildcards (*, ?) in the filename text item, and
1751 clicking on Ok, will result in only those files matching the pattern being
1754 The wildcard may be a specification for multiple types of file
1755 with a description for each, such as:
1758 "BMP files (*.bmp)|*.bmp|GIF files (*.gif)|*.gif"
1761 The application must check for an empty return value (the user pressed
1762 Cancel). For example:
1765 wxString filename = wxFileSelector("Choose a file to open");
1766 if ( !filename.empty() )
1768 // work with the file
1771 //else: cancelled by user
1774 \wxheading{Include files}
1779 \membersection{::wxEndBusyCursor}\label{wxendbusycursor}
1781 \func{void}{wxEndBusyCursor}{\void}
1783 Changes the cursor back to the original cursor, for all windows in the application.
1784 Use with \helpref{wxBeginBusyCursor}{wxbeginbusycursor}.
1786 See also \helpref{wxIsBusy}{wxisbusy}, \helpref{wxBusyCursor}{wxbusycursor}.
1788 \wxheading{Include files}
1793 \membersection{::wxGetColourFromUser}\label{wxgetcolourfromuser}
1795 \func{wxColour}{wxGetColourFromUser}{\param{wxWindow *}{parent}, \param{const wxColour\& }{colInit}}
1797 Shows the colour selection dialog and returns the colour selected by user or
1798 invalid colour (use \helpref{wxColour::Ok}{wxcolourok} to test whether a colour
1799 is valid) if the dialog was cancelled.
1801 \wxheading{Parameters}
1803 \docparam{parent}{The parent window for the colour selection dialog}
1805 \docparam{colInit}{If given, this will be the colour initially selected in the dialog.}
1807 \wxheading{Include files}
1812 \membersection{::wxGetFontFromUser}\label{wxgetfontfromuser}
1814 \func{wxFont}{wxGetFontFromUser}{\param{wxWindow *}{parent}, \param{const wxFont\& }{fontInit}}
1816 Shows the font selection dialog and returns the font selected by user or
1817 invalid font (use \helpref{wxFont::Ok}{wxfontok} to test whether a font
1818 is valid) if the dialog was cancelled.
1820 \wxheading{Parameters}
1822 \docparam{parent}{The parent window for the font selection dialog}
1824 \docparam{fontInit}{If given, this will be the font initially selected in the dialog.}
1826 \wxheading{Include files}
1832 \membersection{::wxGetMultipleChoices}\label{wxgetmultiplechoices}
1834 \func{size\_t}{wxGetMultipleChoices}{\\
1835 \param{wxArrayInt\& }{selections},\\
1836 \param{const wxString\& }{message},\\
1837 \param{const wxString\& }{caption},\\
1838 \param{const wxArrayString\& }{aChoices},\\
1839 \param{wxWindow *}{parent = NULL},\\
1840 \param{int}{ x = -1}, \param{int}{ y = -1},\\
1841 \param{bool}{ centre = true},\\
1842 \param{int }{width=150}, \param{int }{height=200}}
1844 \func{size\_t}{wxGetMultipleChoices}{\\
1845 \param{wxArrayInt\& }{selections},\\
1846 \param{const wxString\& }{message},\\
1847 \param{const wxString\& }{caption},\\
1848 \param{int}{ n}, \param{const wxString\& }{choices[]},\\
1849 \param{wxWindow *}{parent = NULL},\\
1850 \param{int}{ x = -1}, \param{int}{ y = -1},\\
1851 \param{bool}{ centre = true},\\
1852 \param{int }{width=150}, \param{int }{height=200}}
1854 Pops up a dialog box containing a message, OK/Cancel buttons and a
1855 multiple-selection listbox. The user may choose an arbitrary (including 0)
1856 number of items in the listbox whose indices will be returned in
1857 {\it selection} array. The initial contents of this array will be used to
1858 select the items when the dialog is shown.
1860 You may pass the list of strings to choose from either using {\it choices}
1861 which is an array of {\it n} strings for the listbox or by using a single
1862 {\it aChoices} parameter of type \helpref{wxArrayString}{wxarraystring}.
1864 If {\it centre} is true, the message text (which may include new line
1865 characters) is centred; if false, the message is left-justified.
1867 \wxheading{Include files}
1871 \perlnote{In wxPerl there is just an array reference in place of {\tt n}
1872 and {\tt choices}, and no {\tt selections} parameter; the function
1873 returns an array containing the user selections.}
1876 \membersection{::wxGetNumberFromUser}\label{wxgetnumberfromuser}
1878 \func{long}{wxGetNumberFromUser}{
1879 \param{const wxString\& }{message},
1880 \param{const wxString\& }{prompt},
1881 \param{const wxString\& }{caption},
1882 \param{long }{value},
1883 \param{long }{min = 0},
1884 \param{long }{max = 100},
1885 \param{wxWindow *}{parent = NULL},
1886 \param{const wxPoint\& }{pos = wxDefaultPosition}}
1888 Shows a dialog asking the user for numeric input. The dialogs title is set to
1889 {\it caption}, it contains a (possibly) multiline {\it message} above the
1890 single line {\it prompt} and the zone for entering the number.
1892 The number entered must be in the range {\it min}..{\it max} (both of which
1893 should be positive) and {\it value} is the initial value of it. If the user
1894 enters an invalid value or cancels the dialog, the function will return -1.
1896 Dialog is centered on its {\it parent} unless an explicit position is given in
1899 \wxheading{Include files}
1904 \membersection{::wxGetPasswordFromUser}\label{wxgetpasswordfromuser}
1906 \func{wxString}{wxGetTextFromUser}{\param{const wxString\& }{message}, \param{const wxString\& }{caption = ``Input text"},\\
1907 \param{const wxString\& }{default\_value = ``"}, \param{wxWindow *}{parent = NULL}}
1909 Similar to \helpref{wxGetTextFromUser}{wxgettextfromuser} but the text entered
1910 in the dialog is not shown on screen but replaced with stars. This is intended
1911 to be used for entering passwords as the function name implies.
1913 \wxheading{Include files}
1918 \membersection{::wxGetTextFromUser}\label{wxgettextfromuser}
1920 \func{wxString}{wxGetTextFromUser}{\param{const wxString\& }{message}, \param{const wxString\& }{caption = ``Input text"},\\
1921 \param{const wxString\& }{default\_value = ``"}, \param{wxWindow *}{parent = NULL},\\
1922 \param{int}{ x = -1}, \param{int}{ y = -1}, \param{bool}{ centre = true}}
1924 Pop up a dialog box with title set to {\it caption}, {\it message}, and a
1925 \rtfsp{\it default\_value}. The user may type in text and press OK to return this text,
1926 or press Cancel to return the empty string.
1928 If {\it centre} is true, the message text (which may include new line characters)
1929 is centred; if false, the message is left-justified.
1931 \wxheading{Include files}
1936 \membersection{::wxGetMultipleChoice}\label{wxgetmultiplechoice}
1938 \func{int}{wxGetMultipleChoice}{\param{const wxString\& }{message}, \param{const wxString\& }{caption}, \param{int}{ n}, \param{const wxString\& }{choices[]},\\
1939 \param{int }{nsel}, \param{int *}{selection},
1940 \param{wxWindow *}{parent = NULL}, \param{int}{ x = -1}, \param{int}{ y = -1},\\
1941 \param{bool}{ centre = true}, \param{int }{width=150}, \param{int }{height=200}}
1943 Pops up a dialog box containing a message, OK/Cancel buttons and a multiple-selection
1944 listbox. The user may choose one or more item(s) and press OK or Cancel.
1946 The number of initially selected choices, and array of the selected indices,
1947 are passed in; this array will contain the user selections on exit, with
1948 the function returning the number of selections. {\it selection} must be
1949 as big as the number of choices, in case all are selected.
1951 If Cancel is pressed, -1 is returned.
1953 {\it choices} is an array of {\it n} strings for the listbox.
1955 If {\it centre} is true, the message text (which may include new line characters)
1956 is centred; if false, the message is left-justified.
1958 \wxheading{Include files}
1963 \membersection{::wxGetSingleChoice}\label{wxgetsinglechoice}
1965 \func{wxString}{wxGetSingleChoice}{\param{const wxString\& }{message},\\
1966 \param{const wxString\& }{caption},\\
1967 \param{const wxArrayString\& }{aChoices},\\
1968 \param{wxWindow *}{parent = NULL},\\
1969 \param{int}{ x = -1}, \param{int}{ y = -1},\\
1970 \param{bool}{ centre = true},\\
1971 \param{int }{width=150}, \param{int }{height=200}}
1973 \func{wxString}{wxGetSingleChoice}{\param{const wxString\& }{message},\\
1974 \param{const wxString\& }{caption},\\
1975 \param{int}{ n}, \param{const wxString\& }{choices[]},\\
1976 \param{wxWindow *}{parent = NULL},\\
1977 \param{int}{ x = -1}, \param{int}{ y = -1},\\
1978 \param{bool}{ centre = true},\\
1979 \param{int }{width=150}, \param{int }{height=200}}
1981 Pops up a dialog box containing a message, OK/Cancel buttons and a
1982 single-selection listbox. The user may choose an item and press OK to return a
1983 string or Cancel to return the empty string. Use
1984 \helpref{wxGetSingleChoiceIndex}{wxgetsinglechoiceindex} if empty string is a
1985 valid choice and if you want to be able to detect pressing Cancel reliably.
1987 You may pass the list of strings to choose from either using {\it choices}
1988 which is an array of {\it n} strings for the listbox or by using a single
1989 {\it aChoices} parameter of type \helpref{wxArrayString}{wxarraystring}.
1991 If {\it centre} is true, the message text (which may include new line
1992 characters) is centred; if false, the message is left-justified.
1994 \wxheading{Include files}
1998 \perlnote{In wxPerl there is just an array reference in place of {\tt n}
2002 \membersection{::wxGetSingleChoiceIndex}\label{wxgetsinglechoiceindex}
2004 \func{int}{wxGetSingleChoiceIndex}{\param{const wxString\& }{message},\\
2005 \param{const wxString\& }{caption},\\
2006 \param{const wxArrayString\& }{aChoices},\\
2007 \param{wxWindow *}{parent = NULL}, \param{int}{ x = -1}, \param{int}{ y = -1},\\
2008 \param{bool}{ centre = true}, \param{int }{width=150}, \param{int }{height=200}}
2010 \func{int}{wxGetSingleChoiceIndex}{\param{const wxString\& }{message},\\
2011 \param{const wxString\& }{caption},\\
2012 \param{int}{ n}, \param{const wxString\& }{choices[]},\\
2013 \param{wxWindow *}{parent = NULL}, \param{int}{ x = -1}, \param{int}{ y = -1},\\
2014 \param{bool}{ centre = true}, \param{int }{width=150}, \param{int }{height=200}}
2016 As {\bf wxGetSingleChoice} but returns the index representing the selected
2017 string. If the user pressed cancel, -1 is returned.
2019 \wxheading{Include files}
2023 \perlnote{In wxPerl there is just an array reference in place of {\tt n}
2027 \membersection{::wxGetSingleChoiceData}\label{wxgetsinglechoicedata}
2029 \func{wxString}{wxGetSingleChoiceData}{\param{const wxString\& }{message},\\
2030 \param{const wxString\& }{caption},\\
2031 \param{const wxArrayString\& }{aChoices},\\
2032 \param{const wxString\& }{client\_data[]},\\
2033 \param{wxWindow *}{parent = NULL},\\
2034 \param{int}{ x = -1}, \param{int}{ y = -1},\\
2035 \param{bool}{ centre = true}, \param{int }{width=150}, \param{int }{height=200}}
2037 \func{wxString}{wxGetSingleChoiceData}{\param{const wxString\& }{message},\\
2038 \param{const wxString\& }{caption},\\
2039 \param{int}{ n}, \param{const wxString\& }{choices[]},\\
2040 \param{const wxString\& }{client\_data[]},\\
2041 \param{wxWindow *}{parent = NULL},\\
2042 \param{int}{ x = -1}, \param{int}{ y = -1},\\
2043 \param{bool}{ centre = true}, \param{int }{width=150}, \param{int }{height=200}}
2045 As {\bf wxGetSingleChoice} but takes an array of client data pointers
2046 corresponding to the strings, and returns one of these pointers or NULL if
2047 Cancel was pressed. The {\it client\_data} array must have the same number of
2048 elements as {\it choices} or {\it aChoices}!
2050 \wxheading{Include files}
2054 \perlnote{In wxPerl there is just an array reference in place of {\tt n}
2055 and {\tt choices}, and the client data array must have the
2056 same length as the choices array.}
2059 \membersection{::wxIsBusy}\label{wxisbusy}
2061 \func{bool}{wxIsBusy}{\void}
2063 Returns true if between two \helpref{wxBeginBusyCursor}{wxbeginbusycursor} and\rtfsp
2064 \helpref{wxEndBusyCursor}{wxendbusycursor} calls.
2066 See also \helpref{wxBusyCursor}{wxbusycursor}.
2068 \wxheading{Include files}
2073 \membersection{::wxMessageBox}\label{wxmessagebox}
2075 \func{int}{wxMessageBox}{\param{const wxString\& }{message}, \param{const wxString\& }{caption = ``Message"}, \param{int}{ style = wxOK},\\
2076 \param{wxWindow *}{parent = NULL}, \param{int}{ x = -1}, \param{int}{ y = -1}}
2078 General purpose message dialog. {\it style} may be a bit list of the
2079 following identifiers:
2081 \begin{twocollist}\itemsep=0pt
2082 \twocolitem{wxYES\_NO}{Puts Yes and No buttons on the message box. May be combined with
2084 \twocolitem{wxCANCEL}{Puts a Cancel button on the message box. May be combined with
2086 \twocolitem{wxOK}{Puts an Ok button on the message box. May be combined with wxCANCEL.}
2087 \twocolitem{wxICON\_EXCLAMATION}{Displays an exclamation mark symbol.}
2088 \twocolitem{wxICON\_HAND}{Displays an error symbol.}
2089 \twocolitem{wxICON\_ERROR}{Displays an error symbol - the same as wxICON\_HAND.}
2090 \twocolitem{wxICON\_QUESTION}{Displays a question mark symbol.}
2091 \twocolitem{wxICON\_INFORMATION}{Displays an information symbol.}
2094 The return value is one of: wxYES, wxNO, wxCANCEL, wxOK.
2100 int answer = wxMessageBox("Quit program?", "Confirm",
2101 wxYES_NO | wxCANCEL, main_frame);
2102 if (answer == wxYES)
2103 main_frame->Close();
2107 {\it message} may contain newline characters, in which case the
2108 message will be split into separate lines, to cater for large messages.
2110 \wxheading{Include files}
2115 \membersection{::wxShowTip}\label{wxshowtip}
2117 \func{bool}{wxShowTip}{\param{wxWindow *}{parent},
2118 \param{wxTipProvider *}{tipProvider},
2119 \param{bool }{showAtStartup = true}}
2121 This function shows a "startup tip" to the user. The return value is the
2122 state of the ``Show tips at startup'' checkbox.
2124 \docparam{parent}{The parent window for the modal dialog}
2126 \docparam{tipProvider}{An object which is used to get the text of the tips.
2127 It may be created with the \helpref{wxCreateFileTipProvider}{wxcreatefiletipprovider} function.}
2129 \docparam{showAtStartup}{Should be true if startup tips are shown, false
2130 otherwise. This is used as the initial value for "Show tips at startup"
2131 checkbox which is shown in the tips dialog.}
2133 \wxheading{See also}
2135 \helpref{Tips overview}{tipsoverview}
2137 \wxheading{Include files}
2144 \section{Math functions}
2146 \wxheading{Include files}
2151 \membersection{wxFinite}\label{wxfinite}
2153 \func{int}{wxFinite}{\param{double }{x}}
2155 Returns a non-zero value if {\it x} is neither infinite or NaN (not a number),
2156 returns 0 otherwise.
2159 \membersection{wxIsNaN}\label{wxisnan}
2161 \func{bool}{wxIsNaN}{\param{double }{x}}
2163 Returns a non-zero value if {\it x} is NaN (not a number), returns 0
2169 \section{GDI functions}\label{gdifunctions}
2171 The following are relevant to the GDI (Graphics Device Interface).
2173 \wxheading{Include files}
2178 \membersection{wxBITMAP}\label{wxbitmapmacro}
2180 \func{}{wxBITMAP}{bitmapName}
2182 This macro loads a bitmap from either application resources (on the platforms
2183 for which they exist, i.e. Windows and OS2) or from an XPM file. It allows to
2184 avoid using {\tt \#ifdef}s when creating bitmaps.
2186 \wxheading{See also}
2188 \helpref{Bitmaps and icons overview}{wxbitmapoverview},
2189 \helpref{wxICON}{wxiconmacro}
2191 \wxheading{Include files}
2196 \membersection{::wxClientDisplayRect}\label{wxclientdisplayrect}
2198 \func{void}{wxClientDisplayRect}{\param{int *}{x}, \param{int *}{y},
2199 \param{int *}{width}, \param{int *}{height}}
2201 \func{wxRect}{wxGetClientDisplayRect}{\void}
2203 Returns the dimensions of the work area on the display. On Windows
2204 this means the area not covered by the taskbar, etc. Other platforms
2205 are currently defaulting to the whole display until a way is found to
2206 provide this info for all window managers, etc.
2209 \membersection{::wxColourDisplay}\label{wxcolourdisplay}
2211 \func{bool}{wxColourDisplay}{\void}
2213 Returns true if the display is colour, false otherwise.
2216 \membersection{::wxDisplayDepth}\label{wxdisplaydepth}
2218 \func{int}{wxDisplayDepth}{\void}
2220 Returns the depth of the display (a value of 1 denotes a monochrome display).
2223 \membersection{::wxDisplaySize}\label{wxdisplaysize}
2225 \func{void}{wxDisplaySize}{\param{int *}{width}, \param{int *}{height}}
2227 \func{wxSize}{wxGetDisplaySize}{\void}
2229 Returns the display size in pixels.
2232 \membersection{::wxDisplaySizeMM}\label{wxdisplaysizemm}
2234 \func{void}{wxDisplaySizeMM}{\param{int *}{width}, \param{int *}{height}}
2236 \func{wxSize}{wxGetDisplaySizeMM}{\void}
2238 Returns the display size in millimeters.
2241 \membersection{::wxDROP\_ICON}\label{wxdropicon}
2243 \func{wxIconOrCursor}{wxDROP\_ICON}{\param{const char *}{name}}
2245 This macro creates either a cursor (MSW) or an icon (elsewhere) with the given
2246 name. Under MSW, the cursor is loaded from the resource file and the icon is
2247 loaded from XPM file under other platforms.
2249 This macro should be used with
2250 \helpref{wxDropSource constructor}{wxdropsourcewxdropsource}.
2252 \wxheading{Include files}
2257 \membersection{wxICON}\label{wxiconmacro}
2259 \func{}{wxICON}{iconName}
2261 This macro loads an icon from either application resources (on the platforms
2262 for which they exist, i.e. Windows and OS2) or from an XPM file. It allows to
2263 avoid using {\tt \#ifdef}s when creating icons.
2265 \wxheading{See also}
2267 \helpref{Bitmaps and icons overview}{wxbitmapoverview},
2268 \helpref{wxBITMAP}{wxbitmapmacro}
2270 \wxheading{Include files}
2275 \membersection{::wxMakeMetafilePlaceable}\label{wxmakemetafileplaceable}
2277 \func{bool}{wxMakeMetafilePlaceable}{\param{const wxString\& }{filename}, \param{int }{minX}, \param{int }{minY},
2278 \param{int }{maxX}, \param{int }{maxY}, \param{float }{scale=1.0}}
2280 Given a filename for an existing, valid metafile (as constructed using \helpref{wxMetafileDC}{wxmetafiledc})
2281 makes it into a placeable metafile by prepending a header containing the given
2282 bounding box. The bounding box may be obtained from a device context after drawing
2283 into it, using the functions wxDC::MinX, wxDC::MinY, wxDC::MaxX and wxDC::MaxY.
2285 In addition to adding the placeable metafile header, this function adds
2286 the equivalent of the following code to the start of the metafile data:
2289 SetMapMode(dc, MM_ANISOTROPIC);
2290 SetWindowOrg(dc, minX, minY);
2291 SetWindowExt(dc, maxX - minX, maxY - minY);
2294 This simulates the wxMM\_TEXT mapping mode, which wxWidgets assumes.
2296 Placeable metafiles may be imported by many Windows applications, and can be
2297 used in RTF (Rich Text Format) files.
2299 {\it scale} allows the specification of scale for the metafile.
2301 This function is only available under Windows.
2304 \membersection{::wxSetCursor}\label{wxsetcursor}
2306 \func{void}{wxSetCursor}{\param{wxCursor *}{cursor}}
2308 Globally sets the cursor; only has an effect in Windows and GTK.
2309 See also \helpref{wxCursor}{wxcursor}, \helpref{wxWindow::SetCursor}{wxwindowsetcursor}.
2313 \section{Printer settings}\label{printersettings}
2315 {\bf NB:} These routines are obsolete and should no longer be used!
2317 The following functions are used to control PostScript printing. Under
2318 Windows, PostScript output can only be sent to a file.
2320 \wxheading{Include files}
2325 \membersection{::wxGetPrinterCommand}\label{wxgetprintercommand}
2327 \func{wxString}{wxGetPrinterCommand}{\void}
2329 Gets the printer command used to print a file. The default is {\tt lpr}.
2332 \membersection{::wxGetPrinterFile}\label{wxgetprinterfile}
2334 \func{wxString}{wxGetPrinterFile}{\void}
2336 Gets the PostScript output filename.
2339 \membersection{::wxGetPrinterMode}\label{wxgetprintermode}
2341 \func{int}{wxGetPrinterMode}{\void}
2343 Gets the printing mode controlling where output is sent (PS\_PREVIEW, PS\_FILE or PS\_PRINTER).
2344 The default is PS\_PREVIEW.
2347 \membersection{::wxGetPrinterOptions}\label{wxgetprinteroptions}
2349 \func{wxString}{wxGetPrinterOptions}{\void}
2351 Gets the additional options for the print command (e.g. specific printer). The default is nothing.
2354 \membersection{::wxGetPrinterOrientation}\label{wxgetprinterorientation}
2356 \func{int}{wxGetPrinterOrientation}{\void}
2358 Gets the orientation (PS\_PORTRAIT or PS\_LANDSCAPE). The default is PS\_PORTRAIT.
2361 \membersection{::wxGetPrinterPreviewCommand}\label{wxgetprinterpreviewcommand}
2363 \func{wxString}{wxGetPrinterPreviewCommand}{\void}
2365 Gets the command used to view a PostScript file. The default depends on the platform.
2368 \membersection{::wxGetPrinterScaling}\label{wxgetprinterscaling}
2370 \func{void}{wxGetPrinterScaling}{\param{float *}{x}, \param{float *}{y}}
2372 Gets the scaling factor for PostScript output. The default is 1.0, 1.0.
2375 \membersection{::wxGetPrinterTranslation}\label{wxgetprintertranslation}
2377 \func{void}{wxGetPrinterTranslation}{\param{float *}{x}, \param{float *}{y}}
2379 Gets the translation (from the top left corner) for PostScript output. The default is 0.0, 0.0.
2382 \membersection{::wxSetPrinterCommand}\label{wxsetprintercommand}
2384 \func{void}{wxSetPrinterCommand}{\param{const wxString\& }{command}}
2386 Sets the printer command used to print a file. The default is {\tt lpr}.
2389 \membersection{::wxSetPrinterFile}\label{wxsetprinterfile}
2391 \func{void}{wxSetPrinterFile}{\param{const wxString\& }{filename}}
2393 Sets the PostScript output filename.
2396 \membersection{::wxSetPrinterMode}\label{wxsetprintermode}
2398 \func{void}{wxSetPrinterMode}{\param{int }{mode}}
2400 Sets the printing mode controlling where output is sent (PS\_PREVIEW, PS\_FILE or PS\_PRINTER).
2401 The default is PS\_PREVIEW.
2404 \membersection{::wxSetPrinterOptions}\label{wxsetprinteroptions}
2406 \func{void}{wxSetPrinterOptions}{\param{const wxString\& }{options}}
2408 Sets the additional options for the print command (e.g. specific printer). The default is nothing.
2411 \membersection{::wxSetPrinterOrientation}\label{wxsetprinterorientation}
2413 \func{void}{wxSetPrinterOrientation}{\param{int}{ orientation}}
2415 Sets the orientation (PS\_PORTRAIT or PS\_LANDSCAPE). The default is PS\_PORTRAIT.
2418 \membersection{::wxSetPrinterPreviewCommand}\label{wxsetprinterpreviewcommand}
2420 \func{void}{wxSetPrinterPreviewCommand}{\param{const wxString\& }{command}}
2422 Sets the command used to view a PostScript file. The default depends on the platform.
2425 \membersection{::wxSetPrinterScaling}\label{wxsetprinterscaling}
2427 \func{void}{wxSetPrinterScaling}{\param{float }{x}, \param{float }{y}}
2429 Sets the scaling factor for PostScript output. The default is 1.0, 1.0.
2432 \membersection{::wxSetPrinterTranslation}\label{wxsetprintertranslation}
2434 \func{void}{wxSetPrinterTranslation}{\param{float }{x}, \param{float }{y}}
2436 Sets the translation (from the top left corner) for PostScript output. The default is 0.0, 0.0.
2440 \section{Clipboard functions}\label{clipsboard}
2442 These clipboard functions are implemented for Windows only. The use of these functions
2443 is deprecated and the code is no longer maintained. Use the \helpref{wxClipboard}{wxclipboard}
2446 \wxheading{Include files}
2451 \membersection{::wxClipboardOpen}\label{functionwxclipboardopen}
2453 \func{bool}{wxClipboardOpen}{\void}
2455 Returns true if this application has already opened the clipboard.
2458 \membersection{::wxCloseClipboard}\label{wxcloseclipboard}
2460 \func{bool}{wxCloseClipboard}{\void}
2462 Closes the clipboard to allow other applications to use it.
2465 \membersection{::wxEmptyClipboard}\label{wxemptyclipboard}
2467 \func{bool}{wxEmptyClipboard}{\void}
2469 Empties the clipboard.
2472 \membersection{::wxEnumClipboardFormats}\label{wxenumclipboardformats}
2474 \func{int}{wxEnumClipboardFormats}{\param{int}{dataFormat}}
2476 Enumerates the formats found in a list of available formats that belong
2477 to the clipboard. Each call to this function specifies a known
2478 available format; the function returns the format that appears next in
2481 {\it dataFormat} specifies a known format. If this parameter is zero,
2482 the function returns the first format in the list.
2484 The return value specifies the next known clipboard data format if the
2485 function is successful. It is zero if the {\it dataFormat} parameter specifies
2486 the last format in the list of available formats, or if the clipboard
2489 Before it enumerates the formats function, an application must open the clipboard by using the
2490 wxOpenClipboard function.
2493 \membersection{::wxGetClipboardData}\label{wxgetclipboarddata}
2495 \func{wxObject *}{wxGetClipboardData}{\param{int}{dataFormat}}
2497 Gets data from the clipboard.
2499 {\it dataFormat} may be one of:
2501 \begin{itemize}\itemsep=0pt
2502 \item wxCF\_TEXT or wxCF\_OEMTEXT: returns a pointer to new memory containing a null-terminated text string.
2503 \item wxCF\_BITMAP: returns a new wxBitmap.
2506 The clipboard must have previously been opened for this call to succeed.
2509 \membersection{::wxGetClipboardFormatName}\label{wxgetclipboardformatname}
2511 \func{bool}{wxGetClipboardFormatName}{\param{int}{dataFormat}, \param{const wxString\& }{formatName}, \param{int}{maxCount}}
2513 Gets the name of a registered clipboard format, and puts it into the buffer {\it formatName} which is of maximum
2514 length {\it maxCount}. {\it dataFormat} must not specify a predefined clipboard format.
2517 \membersection{::wxIsClipboardFormatAvailable}\label{wxisclipboardformatavailable}
2519 \func{bool}{wxIsClipboardFormatAvailable}{\param{int}{dataFormat}}
2521 Returns true if the given data format is available on the clipboard.
2524 \membersection{::wxOpenClipboard}\label{wxopenclipboard}
2526 \func{bool}{wxOpenClipboard}{\void}
2528 Opens the clipboard for passing data to it or getting data from it.
2531 \membersection{::wxRegisterClipboardFormat}\label{wxregisterclipboardformat}
2533 \func{int}{wxRegisterClipboardFormat}{\param{const wxString\& }{formatName}}
2535 Registers the clipboard data format name and returns an identifier.
2538 \membersection{::wxSetClipboardData}\label{wxsetclipboarddata}
2540 \func{bool}{wxSetClipboardData}{\param{int}{dataFormat}, \param{wxObject *}{data}, \param{int}{width}, \param{int}{height}}
2542 Passes data to the clipboard.
2544 {\it dataFormat} may be one of:
2546 \begin{itemize}\itemsep=0pt
2547 \item wxCF\_TEXT or wxCF\_OEMTEXT: {\it data} is a null-terminated text string.
2548 \item wxCF\_BITMAP: {\it data} is a wxBitmap.
2549 \item wxCF\_DIB: {\it data} is a wxBitmap. The bitmap is converted to a DIB (device independent bitmap).
2550 \item wxCF\_METAFILE: {\it data} is a wxMetafile. {\it width} and {\it height} are used to give recommended dimensions.
2553 The clipboard must have previously been opened for this call to succeed.
2558 \section{Miscellaneous functions}\label{miscellany}
2561 \membersection{wxCONCAT}\label{wxconcat}
2563 \func{}{wxCONCAT}{\param{}{x}, \param{}{y}}
2565 This macro returns the concatenation of two tokens \arg{x} and \arg{y}.
2568 \membersection{wxDYNLIB\_FUNCTION}\label{wxdynlibfunction}
2570 \func{}{wxDYNLIB\_FUNCTION}{\param{}{type}, \param{}{name}, \param{}{dynlib}}
2572 When loading a function from a DLL you always have to cast the returned
2573 {\tt void *} pointer to the correct type and, even more annoyingly, you have to
2574 repeat this type twice if you want to declare and define a function pointer all
2577 This macro makes this slightly less painful by allowing you to specify the
2578 type only once, as the first parameter, and creating a variable of this type
2579 named after the function but with {\tt pfn} prefix and initialized with the
2580 function \arg{name} from the \helpref{wxDynamicLibrary}{wxdynamiclibrary}
2583 \wxheading{Parameters}
2585 \docparam{type}{the type of the function}
2587 \docparam{name}{the name of the function to load, not a string (without quotes,
2588 it is quoted automatically by the macro)}
2590 \docparam{dynlib}{the library to load the function from}
2594 \membersection{wxEXPLICIT}\label{wxexplicit}
2596 {\tt wxEXPLICIT} is a macro which expands to the C++ {\tt explicit} keyword if
2597 the compiler supports it or nothing otherwise. Thus, it can be used even in the
2598 code which might have to be compiled with an old compiler without support for
2599 this language feature but still take advantage of it when it is available.
2602 \membersection{::wxGetKeyState}\label{wxgetkeystate}
2604 \func{bool}{wxGetKeyState}{\param{wxKeyCode }{key}}
2606 Returns \true if the key parameter is currently pressed on the keyboard, or
2607 with modifier keys, (caps lock, etc) if the key is active (the led light is
2610 \wxheading{Include files}
2615 \membersection{wxLL}\label{wxll}
2617 \func{wxLongLong\_t}{wxLL}{\param{}{number}}
2619 This macro is defined for the platforms with a native 64 bit integer type and
2620 allows to define 64 bit compile time constants:
2624 wxLongLong_t ll = wxLL(0x1234567890abcdef);
2628 \wxheading{Include files}
2632 \wxheading{See also}
2634 \helpref{wxULL}{wxull}, \helpref{wxLongLong}{wxlonglong}
2637 \membersection{wxLongLongFmtSpec}\label{wxlonglongfmtspec}
2639 This macro is defined to contain the {\tt printf()} format specifier using
2640 which 64 bit integer numbers (i.e. those of type {\tt wxLongLong\_t}) can be
2641 printed. Example of using it:
2645 wxLongLong_t ll = wxLL(0x1234567890abcdef);
2646 printf("Long long = %" wxLongLongFmtSpec "x\n", ll);
2650 \wxheading{See also}
2652 \helpref{wxLL}{wxll}
2654 \wxheading{Include files}
2659 \membersection{::wxNewId}\label{wxnewid}
2661 \func{long}{wxNewId}{\void}
2663 Generates an integer identifier unique to this run of the program.
2665 \wxheading{Include files}
2670 \membersection{::wxRegisterId}\label{wxregisterid}
2672 \func{void}{wxRegisterId}{\param{long}{ id}}
2674 Ensures that ids subsequently generated by {\bf NewId} do not clash with
2677 \wxheading{Include files}
2682 \membersection{::wxDDECleanUp}\label{wxddecleanup}
2684 \func{void}{wxDDECleanUp}{\void}
2686 Called when wxWidgets exits, to clean up the DDE system. This no longer needs to be
2687 called by the application.
2689 See also \helpref{wxDDEInitialize}{wxddeinitialize}.
2691 \wxheading{Include files}
2696 \membersection{::wxDDEInitialize}\label{wxddeinitialize}
2698 \func{void}{wxDDEInitialize}{\void}
2700 Initializes the DDE system. May be called multiple times without harm.
2702 This no longer needs to be called by the application: it will be called
2703 by wxWidgets if necessary.
2705 See also \helpref{wxDDEServer}{wxddeserver}, \helpref{wxDDEClient}{wxddeclient}, \helpref{wxDDEConnection}{wxddeconnection},\rtfsp
2706 \helpref{wxDDECleanUp}{wxddecleanup}.
2708 \wxheading{Include files}
2713 \membersection{::wxEnableTopLevelWindows}\label{wxenabletoplevelwindows}
2715 \func{void}{wxEnableTopLevelWindow}{\param{bool}{ enable = true}}
2717 This function enables or disables all top level windows. It is used by
2718 \helpref{::wxSafeYield}{wxsafeyield}.
2720 \wxheading{Include files}
2725 \membersection{::wxFindMenuItemId}\label{wxfindmenuitemid}
2727 \func{int}{wxFindMenuItemId}{\param{wxFrame *}{frame}, \param{const wxString\& }{menuString}, \param{const wxString\& }{itemString}}
2729 Find a menu item identifier associated with the given frame's menu bar.
2731 \wxheading{Include files}
2736 \membersection{::wxFindWindowByLabel}\label{wxfindwindowbylabel}
2738 \func{wxWindow *}{wxFindWindowByLabel}{\param{const wxString\& }{label}, \param{wxWindow *}{parent=NULL}}
2740 {\bf NB:} This function is obsolete, please use
2741 \helpref{wxWindow::FindWindowByLabel}{wxwindowfindwindowbylabel} instead.
2743 Find a window by its label. Depending on the type of window, the label may be a window title
2744 or panel item label. If {\it parent} is NULL, the search will start from all top-level
2745 frames and dialog boxes; if non-NULL, the search will be limited to the given window hierarchy.
2746 The search is recursive in both cases.
2748 \wxheading{Include files}
2753 \membersection{::wxFindWindowByName}\label{wxfindwindowbyname}
2755 \func{wxWindow *}{wxFindWindowByName}{\param{const wxString\& }{name}, \param{wxWindow *}{parent=NULL}}
2757 {\bf NB:} This function is obsolete, please use
2758 \helpref{wxWindow::FindWindowByName}{wxwindowfindwindowbyname} instead.
2760 Find a window by its name (as given in a window constructor or {\bf Create} function call).
2761 If {\it parent} is NULL, the search will start from all top-level
2762 frames and dialog boxes; if non-NULL, the search will be limited to the given window hierarchy.
2763 The search is recursive in both cases.
2765 If no such named window is found, {\bf wxFindWindowByLabel} is called.
2767 \wxheading{Include files}
2772 \membersection{::wxFindWindowAtPoint}\label{wxfindwindowatpoint}
2774 \func{wxWindow *}{wxFindWindowAtPoint}{\param{const wxPoint\& }{pt}}
2776 Find the deepest window at the given mouse position in screen coordinates,
2777 returning the window if found, or NULL if not.
2780 \membersection{::wxFindWindowAtPointer}\label{wxfindwindowatpointer}
2782 \func{wxWindow *}{wxFindWindowAtPointer}{\param{wxPoint\& }{pt}}
2784 Find the deepest window at the mouse pointer position, returning the window
2785 and current pointer position in screen coordinates.
2788 \membersection{::wxGetActiveWindow}\label{wxgetactivewindow}
2790 \func{wxWindow *}{wxGetActiveWindow}{\void}
2792 Gets the currently active window (Windows only).
2794 \wxheading{Include files}
2799 \membersection{::wxGetDisplayName}\label{wxgetdisplayname}
2801 \func{wxString}{wxGetDisplayName}{\void}
2803 Under X only, returns the current display name. See also \helpref{wxSetDisplayName}{wxsetdisplayname}.
2805 \wxheading{Include files}
2810 \membersection{::wxGetMousePosition}\label{wxgetmouseposition}
2812 \func{wxPoint}{wxGetMousePosition}{\void}
2814 Returns the mouse position in screen coordinates.
2816 \wxheading{Include files}
2821 \membersection{::wxGetResource}\label{wxgetresource}
2823 \func{bool}{wxGetResource}{\param{const wxString\& }{section}, \param{const wxString\& }{entry},
2824 \param{const wxString\& *}{value}, \param{const wxString\& }{file = NULL}}
2826 \func{bool}{wxGetResource}{\param{const wxString\& }{section}, \param{const wxString\& }{entry},
2827 \param{float *}{value}, \param{const wxString\& }{file = NULL}}
2829 \func{bool}{wxGetResource}{\param{const wxString\& }{section}, \param{const wxString\& }{entry},
2830 \param{long *}{value}, \param{const wxString\& }{file = NULL}}
2832 \func{bool}{wxGetResource}{\param{const wxString\& }{section}, \param{const wxString\& }{entry},
2833 \param{int *}{value}, \param{const wxString\& }{file = NULL}}
2835 Gets a resource value from the resource database (for example, WIN.INI, or
2836 .Xdefaults). If {\it file} is NULL, WIN.INI or .Xdefaults is used,
2837 otherwise the specified file is used.
2839 Under X, if an application class (wxApp::GetClassName) has been defined,
2840 it is appended to the string /usr/lib/X11/app-defaults/ to try to find
2841 an applications default file when merging all resource databases.
2843 The reason for passing the result in an argument is that it
2844 can be convenient to define a default value, which gets overridden
2845 if the value exists in the resource file. It saves a separate
2846 test for that resource's existence, and it also allows
2847 the overloading of the function for different types.
2849 See also \helpref{wxWriteResource}{wxwriteresource}, \helpref{wxConfigBase}{wxconfigbase}.
2851 \wxheading{Include files}
2856 \membersection{::wxGetTopLevelParent}\label{wxgettoplevelparent}
2858 \func{wxWindow *}{wxGetTopLevelParent}{\param{wxWindow }{*win}}
2860 Returns the first top level parent of the given window, or in other words, the
2861 frame or dialog containing it, or {\tt NULL}.
2863 \wxheading{Include files}
2868 \membersection{::wxLoadUserResource}\label{wxloaduserresource}
2870 \func{wxString}{wxLoadUserResource}{\param{const wxString\& }{resourceName}, \param{const wxString\& }{resourceType=``TEXT"}}
2872 Loads a user-defined Windows resource as a string. If the resource is found, the function creates
2873 a new character array and copies the data into it. A pointer to this data is returned. If unsuccessful, NULL is returned.
2875 The resource must be defined in the {\tt .rc} file using the following syntax:
2878 myResource TEXT file.ext
2881 where {\tt file.ext} is a file that the resource compiler can find.
2883 This function is available under Windows only.
2885 \wxheading{Include files}
2890 \membersection{::wxPostDelete}\label{wxpostdelete}
2892 \func{void}{wxPostDelete}{\param{wxObject *}{object}}
2894 Tells the system to delete the specified object when
2895 all other events have been processed. In some environments, it is
2896 necessary to use this instead of deleting a frame directly with the
2897 delete operator, because some GUIs will still send events to a deleted window.
2899 Now obsolete: use \helpref{wxWindow::Close}{wxwindowclose} instead.
2901 \wxheading{Include files}
2906 \membersection{::wxPostEvent}\label{wxpostevent}
2908 \func{void}{wxPostEvent}{\param{wxEvtHandler *}{dest}, \param{wxEvent\& }{event}}
2910 In a GUI application, this function posts {\it event} to the specified {\it dest}
2911 object using \helpref{wxEvtHandler::AddPendingEvent}{wxevthandleraddpendingevent}.
2912 Otherwise, it dispatches {\it event} immediately using
2913 \helpref{wxEvtHandler::ProcessEvent}{wxevthandlerprocessevent}.
2914 See the respective documentation for details (and caveats).
2916 \wxheading{Include files}
2921 \membersection{::wxSetDisplayName}\label{wxsetdisplayname}
2923 \func{void}{wxSetDisplayName}{\param{const wxString\& }{displayName}}
2925 Under X only, sets the current display name. This is the X host and display name such
2926 as ``colonsay:0.0", and the function indicates which display should be used for creating
2927 windows from this point on. Setting the display within an application allows multiple
2928 displays to be used.
2930 See also \helpref{wxGetDisplayName}{wxgetdisplayname}.
2932 \wxheading{Include files}
2937 \membersection{::wxStripMenuCodes}\label{wxstripmenucodes}
2939 \func{wxString}{wxStripMenuCodes}{\param{const wxString\& }{in}}
2941 \func{void}{wxStripMenuCodes}{\param{char *}{in}, \param{char *}{out}}
2943 {\bf NB:} This function is obsolete, please use
2944 \helpref{wxMenuItem::GetLabelFromText}{wxmenuitemgetlabelfromtext} instead.
2946 Strips any menu codes from {\it in} and places the result
2947 in {\it out} (or returns the new string, in the first form).
2949 Menu codes include \& (mark the next character with an underline
2950 as a keyboard shortkey in Windows and Motif) and $\backslash$t (tab in Windows).
2952 \wxheading{Include files}
2957 \membersection{wxULL}\label{wxull}
2959 \func{wxLongLong\_t}{wxULL}{\param{}{number}}
2961 This macro is defined for the platforms with a native 64 bit integer type and
2962 allows to define unsigned 64 bit compile time constants:
2966 unsigned wxLongLong_t ll = wxULL(0x1234567890abcdef);
2970 \wxheading{Include files}
2974 \wxheading{See also}
2976 \helpref{wxLL}{wxll}, \helpref{wxLongLong}{wxlonglong}
2979 \membersection{::wxWriteResource}\label{wxwriteresource}
2981 \func{bool}{wxWriteResource}{\param{const wxString\& }{section}, \param{const wxString\& }{entry},
2982 \param{const wxString\& }{value}, \param{const wxString\& }{file = NULL}}
2984 \func{bool}{wxWriteResource}{\param{const wxString\& }{section}, \param{const wxString\& }{entry},
2985 \param{float }{value}, \param{const wxString\& }{file = NULL}}
2987 \func{bool}{wxWriteResource}{\param{const wxString\& }{section}, \param{const wxString\& }{entry},
2988 \param{long }{value}, \param{const wxString\& }{file = NULL}}
2990 \func{bool}{wxWriteResource}{\param{const wxString\& }{section}, \param{const wxString\& }{entry},
2991 \param{int }{value}, \param{const wxString\& }{file = NULL}}
2993 Writes a resource value into the resource database (for example, WIN.INI, or
2994 .Xdefaults). If {\it file} is NULL, WIN.INI or .Xdefaults is used,
2995 otherwise the specified file is used.
2997 Under X, the resource databases are cached until the internal function
2998 \rtfsp{\bf wxFlushResources} is called automatically on exit, when
2999 all updated resource databases are written to their files.
3001 Note that it is considered bad manners to write to the .Xdefaults
3002 file under Unix, although the WIN.INI file is fair game under Windows.
3004 See also \helpref{wxGetResource}{wxgetresource}, \helpref{wxConfigBase}{wxconfigbase}.
3006 \wxheading{Include files}
3012 \section{Byte order macros}\label{byteordermacros}
3014 The endian-ness issues (that is the difference between big-endian and
3015 little-endian architectures) are important for the portable programs working
3016 with the external binary data (for example, data files or data coming from
3017 network) which is usually in some fixed, platform-independent format. The
3018 macros are helpful for transforming the data to the correct format.
3021 \membersection{wxINTXX\_SWAP\_ALWAYS}\label{intswapalways}
3023 \func{wxInt32}{wxINT32\_SWAP\_ALWAYS}{\param{wxInt32 }{value}}
3025 \func{wxUint32}{wxUINT32\_SWAP\_ALWAYS}{\param{wxUint32 }{value}}
3027 \func{wxInt16}{wxINT16\_SWAP\_ALWAYS}{\param{wxInt16 }{value}}
3029 \func{wxUint16}{wxUINT16\_SWAP\_ALWAYS}{\param{wxUint16 }{value}}
3031 These macros will swap the bytes of the {\it value} variable from little
3032 endian to big endian or vice versa unconditionally, i.e. independently of the
3036 \membersection{wxINTXX\_SWAP\_ON\_BE}\label{intswaponbe}
3038 \func{wxInt32}{wxINT32\_SWAP\_ON\_BE}{\param{wxInt32 }{value}}
3040 \func{wxUint32}{wxUINT32\_SWAP\_ON\_BE}{\param{wxUint32 }{value}}
3042 \func{wxInt16}{wxINT16\_SWAP\_ON\_BE}{\param{wxInt16 }{value}}
3044 \func{wxUint16}{wxUINT16\_SWAP\_ON\_BE}{\param{wxUint16 }{value}}
3046 This macro will swap the bytes of the {\it value} variable from little
3047 endian to big endian or vice versa if the program is compiled on a
3048 big-endian architecture (such as Sun work stations). If the program has
3049 been compiled on a little-endian architecture, the value will be unchanged.
3051 Use these macros to read data from and write data to a file that stores
3052 data in little-endian (for example Intel i386) format.
3055 \membersection{wxINTXX\_SWAP\_ON\_LE}\label{intswaponle}
3057 \func{wxInt32}{wxINT32\_SWAP\_ON\_LE}{\param{wxInt32 }{value}}
3059 \func{wxUint32}{wxUINT32\_SWAP\_ON\_LE}{\param{wxUint32 }{value}}
3061 \func{wxInt16}{wxINT16\_SWAP\_ON\_LE}{\param{wxInt16 }{value}}
3063 \func{wxUint16}{wxUINT16\_SWAP\_ON\_LE}{\param{wxUint16 }{value}}
3065 This macro will swap the bytes of the {\it value} variable from little
3066 endian to big endian or vice versa if the program is compiled on a
3067 little-endian architecture (such as Intel PCs). If the program has
3068 been compiled on a big-endian architecture, the value will be unchanged.
3070 Use these macros to read data from and write data to a file that stores
3071 data in big-endian format.
3075 \section{RTTI functions}\label{rttimacros}
3077 wxWidgets uses its own RTTI ("run-time type identification") system which
3078 predates the current standard C++ RTTI and so is kept for backwards
3079 compatibility reasons but also because it allows some things which the
3080 standard RTTI doesn't directly support (such as creating a class from its
3083 The standard C++ RTTI can be used in the user code without any problems and in
3084 general you shouldn't need to use the functions and the macros in this section
3085 unless you are thinking of modifying or adding any wxWidgets classes.
3087 \wxheading{See also}
3089 \helpref{RTTI overview}{runtimeclassoverview}
3092 \membersection{CLASSINFO}\label{classinfo}
3094 \func{wxClassInfo *}{CLASSINFO}{className}
3096 Returns a pointer to the wxClassInfo object associated with this class.
3098 \wxheading{Include files}
3103 \membersection{DECLARE\_ABSTRACT\_CLASS}\label{declareabstractclass}
3105 \func{}{DECLARE\_ABSTRACT\_CLASS}{className}
3107 Used inside a class declaration to declare that the class should be
3108 made known to the class hierarchy, but objects of this class cannot be created
3109 dynamically. The same as DECLARE\_CLASS.
3114 class wxCommand: public wxObject
3116 DECLARE_ABSTRACT_CLASS(wxCommand)
3125 \wxheading{Include files}
3130 \membersection{DECLARE\_APP}\label{declareapp}
3132 \func{}{DECLARE\_APP}{className}
3134 This is used in headers to create a forward declaration of the
3135 \helpref{wxGetApp}{wxgetapp} function implemented by
3136 \helpref{IMPLEMENT\_APP}{implementapp}. It creates the declaration
3137 {\tt className\& wxGetApp(void)}.
3145 \wxheading{Include files}
3150 \membersection{DECLARE\_CLASS}\label{declareclass}
3152 \func{}{DECLARE\_CLASS}{className}
3154 Used inside a class declaration to declare that the class should be
3155 made known to the class hierarchy, but objects of this class cannot be created
3156 dynamically. The same as DECLARE\_ABSTRACT\_CLASS.
3158 \wxheading{Include files}
3163 \membersection{DECLARE\_DYNAMIC\_CLASS}\label{declaredynamicclass}
3165 \func{}{DECLARE\_DYNAMIC\_CLASS}{className}
3167 Used inside a class declaration to declare that the objects of this class should be dynamically
3168 creatable from run-time type information.
3173 class wxFrame: public wxWindow
3175 DECLARE_DYNAMIC_CLASS(wxFrame)
3178 const wxString& frameTitle;
3184 \wxheading{Include files}
3189 \membersection{IMPLEMENT\_ABSTRACT\_CLASS}\label{implementabstractclass}
3191 \func{}{IMPLEMENT\_ABSTRACT\_CLASS}{className, baseClassName}
3193 Used in a C++ implementation file to complete the declaration of
3194 a class that has run-time type information. The same as IMPLEMENT\_CLASS.
3199 IMPLEMENT_ABSTRACT_CLASS(wxCommand, wxObject)
3201 wxCommand::wxCommand(void)
3207 \wxheading{Include files}
3212 \membersection{IMPLEMENT\_ABSTRACT\_CLASS2}\label{implementabstractclass2}
3214 \func{}{IMPLEMENT\_ABSTRACT\_CLASS2}{className, baseClassName1, baseClassName2}
3216 Used in a C++ implementation file to complete the declaration of
3217 a class that has run-time type information and two base classes. The same as IMPLEMENT\_CLASS2.
3219 \wxheading{Include files}
3224 \membersection{IMPLEMENT\_APP}\label{implementapp}
3226 \func{}{IMPLEMENT\_APP}{className}
3228 This is used in the application class implementation file to make the application class known to
3229 wxWidgets for dynamic construction. You use this instead of
3240 IMPLEMENT_APP(MyApp)
3243 See also \helpref{DECLARE\_APP}{declareapp}.
3245 \wxheading{Include files}
3250 \membersection{IMPLEMENT\_CLASS}\label{implementclass}
3252 \func{}{IMPLEMENT\_CLASS}{className, baseClassName}
3254 Used in a C++ implementation file to complete the declaration of
3255 a class that has run-time type information. The same as IMPLEMENT\_ABSTRACT\_CLASS.
3257 \wxheading{Include files}
3262 \membersection{IMPLEMENT\_CLASS2}\label{implementclass2}
3264 \func{}{IMPLEMENT\_CLASS2}{className, baseClassName1, baseClassName2}
3266 Used in a C++ implementation file to complete the declaration of a
3267 class that has run-time type information and two base classes. The
3268 same as IMPLEMENT\_ABSTRACT\_CLASS2.
3270 \wxheading{Include files}
3275 \membersection{IMPLEMENT\_DYNAMIC\_CLASS}\label{implementdynamicclass}
3277 \func{}{IMPLEMENT\_DYNAMIC\_CLASS}{className, baseClassName}
3279 Used in a C++ implementation file to complete the declaration of
3280 a class that has run-time type information, and whose instances
3281 can be created dynamically.
3286 IMPLEMENT_DYNAMIC_CLASS(wxFrame, wxWindow)
3288 wxFrame::wxFrame(void)
3294 \wxheading{Include files}
3299 \membersection{IMPLEMENT\_DYNAMIC\_CLASS2}\label{implementdynamicclass2}
3301 \func{}{IMPLEMENT\_DYNAMIC\_CLASS2}{className, baseClassName1, baseClassName2}
3303 Used in a C++ implementation file to complete the declaration of
3304 a class that has run-time type information, and whose instances
3305 can be created dynamically. Use this for classes derived from two
3308 \wxheading{Include files}
3313 \membersection{wxConstCast}\label{wxconstcast}
3315 \func{classname *}{wxConstCast}{ptr, classname}
3317 This macro expands into {\tt const\_cast<classname *>(ptr)} if the compiler
3318 supports {\it const\_cast} or into an old, C-style cast, otherwise.
3320 \wxheading{See also}
3322 \helpref{wx\_const\_cast}{wxconstcastraw}\\
3323 \helpref{wxDynamicCast}{wxdynamiccast}\\
3324 \helpref{wxStaticCast}{wxstaticcast}
3327 \membersection{::wxCreateDynamicObject}\label{wxcreatedynamicobject}
3329 \func{wxObject *}{wxCreateDynamicObject}{\param{const wxString\& }{className}}
3331 Creates and returns an object of the given class, if the class has been
3332 registered with the dynamic class system using DECLARE... and IMPLEMENT... macros.
3335 \membersection{WXDEBUG\_NEW}\label{debugnew}
3337 \func{}{WXDEBUG\_NEW}{arg}
3339 This is defined in debug mode to be call the redefined new operator
3340 with filename and line number arguments. The definition is:
3343 #define WXDEBUG_NEW new(__FILE__,__LINE__)
3346 In non-debug mode, this is defined as the normal new operator.
3348 \wxheading{Include files}
3353 \membersection{wxDynamicCast}\label{wxdynamiccast}
3355 \func{classname *}{wxDynamicCast}{ptr, classname}
3357 This macro returns the pointer {\it ptr} cast to the type {\it classname *} if
3358 the pointer is of this type (the check is done during the run-time) or
3359 {\tt NULL} otherwise. Usage of this macro is preferred over obsoleted
3360 wxObject::IsKindOf() function.
3362 The {\it ptr} argument may be {\tt NULL}, in which case {\tt NULL} will be
3368 wxWindow *win = wxWindow::FindFocus();
3369 wxTextCtrl *text = wxDynamicCast(win, wxTextCtrl);
3372 // a text control has the focus...
3376 // no window has the focus or it is not a text control
3380 \wxheading{See also}
3382 \helpref{RTTI overview}{runtimeclassoverview}\\
3383 \helpref{wxDynamicCastThis}{wxdynamiccastthis}\\
3384 \helpref{wxConstCast}{wxconstcast}\\
3385 \helpref{wxStatiicCast}{wxstaticcast}
3388 \membersection{wxDynamicCastThis}\label{wxdynamiccastthis}
3390 \func{classname *}{wxDynamicCastThis}{classname}
3392 This macro is equivalent to {\tt wxDynamicCast(this, classname)} but the
3393 latter provokes spurious compilation warnings from some compilers (because it
3394 tests whether {\tt this} pointer is non {\tt NULL} which is always true), so
3395 this macro should be used to avoid them.
3397 \wxheading{See also}
3399 \helpref{wxDynamicCast}{wxdynamiccast}
3402 \membersection{wxStaticCast}\label{wxstaticcast}
3404 \func{classname *}{wxStaticCast}{ptr, classname}
3406 This macro checks that the cast is valid in debug mode (an assert failure will
3407 result if {\tt wxDynamicCast(ptr, classname) == NULL}) and then returns the
3408 result of executing an equivalent of {\tt static\_cast<classname *>(ptr)}.
3410 \wxheading{See also}
3412 \helpref{wx\_static\_cast}{wxstaticcastraw}\\
3413 \helpref{wxDynamicCast}{wxdynamiccast}\\
3414 \helpref{wxConstCast}{wxconstcast}
3417 \membersection{wx\_const\_cast}\label{wxconstcastraw}
3419 \func{T}{wx\_const\_cast}{T, x}
3421 Same as \texttt{const\_cast<T>(x)} if the compiler supports const cast or
3422 \texttt{(T)x} for old compilers. Unlike \helpref{wxConstCast}{wxconstcast},
3423 the cast it to the type \arg{T} and not to \texttt{T *} and also the order of
3424 arguments is the same as for the standard cast.
3426 \wxheading{See also}
3428 \helpref{wx\_static\_cast}{wxstaticcastraw}\\
3431 \membersection{wx\_static\_cast}\label{wxstaticcastraw}
3433 \func{T}{wx\_static\_cast}{T, x}
3435 Same as \texttt{static\_cast<T>(x)} if the compiler supports static cast or
3436 \texttt{(T)x} for old compilers. Unlike \helpref{wxStaticCast}{wxstaticcast},
3437 there are no checks being done and the meaning of the macro arguments is exactly
3438 the same as for the standard static cast, i.e. \arg{T} is the full type name and
3439 star is not appended to it.
3441 \wxheading{See also}
3443 \helpref{wx\_const\_cast}{wxconstcastraw}\\
3447 \section{Log functions}\label{logfunctions}
3449 These functions provide a variety of logging functions: see \helpref{Log classes overview}{wxlogoverview} for
3450 further information. The functions use (implicitly) the currently active log
3451 target, so their descriptions here may not apply if the log target is not the
3452 standard one (installed by wxWidgets in the beginning of the program).
3454 \wxheading{Include files}
3459 \membersection{::wxDebugMsg}\label{wxdebugmsg}
3461 \func{void}{wxDebugMsg}{\param{const wxString\& }{fmt}, \param{...}{}}
3463 {\bf NB:} This function is now obsolete, replaced by \helpref{Log
3464 functions}{logfunctions} and \helpref{wxLogDebug}{wxlogdebug} in particular.
3466 Display a debugging message; under Windows, this will appear on the
3467 debugger command window, and under Unix, it will be written to standard
3470 The syntax is identical to {\bf printf}: pass a format string and a
3471 variable list of arguments.
3473 {\bf Tip:} under Windows, if your application crashes before the
3474 message appears in the debugging window, put a wxYield call after
3475 each wxDebugMsg call. wxDebugMsg seems to be broken under WIN32s
3476 (at least for Watcom C++): preformat your messages and use OutputDebugString
3479 \wxheading{Include files}
3484 \membersection{::wxError}\label{wxerror}
3486 \func{void}{wxError}{\param{const wxString\& }{msg}, \param{const wxString\& }{title = "wxWidgets Internal Error"}}
3488 {\bf NB:} This function is now obsolete, please use \helpref{wxLogError}{wxlogerror}
3491 Displays {\it msg} and continues. This writes to standard error under
3492 Unix, and pops up a message box under Windows. Used for internal
3493 wxWidgets errors. See also \helpref{wxFatalError}{wxfatalerror}.
3495 \wxheading{Include files}
3500 \membersection{::wxFatalError}\label{wxfatalerror}
3502 \func{void}{wxFatalError}{\param{const wxString\& }{msg}, \param{const wxString\& }{title = "wxWidgets Fatal Error"}}
3504 {\bf NB:} This function is now obsolete, please use
3505 \helpref{wxLogFatalError}{wxlogfatalerror} instead.
3507 Displays {\it msg} and exits. This writes to standard error under Unix,
3508 and pops up a message box under Windows. Used for fatal internal
3509 wxWidgets errors. See also \helpref{wxError}{wxerror}.
3511 \wxheading{Include files}
3516 \membersection{::wxLogError}\label{wxlogerror}
3518 \func{void}{wxLogError}{\param{const char *}{formatString}, \param{...}{}}
3520 \func{void}{wxVLogError}{\param{const char *}{formatString}, \param{va\_list }{argPtr}}
3522 The functions to use for error messages, i.e. the messages that must be shown
3523 to the user. The default processing is to pop up a message box to inform the
3527 \membersection{::wxLogFatalError}\label{wxlogfatalerror}
3529 \func{void}{wxLogFatalError}{\param{const char *}{formatString}, \param{...}{}}
3531 \func{void}{wxVLogFatalError}{\param{const char *}{formatString}, \param{va\_list }{argPtr}}
3533 Like \helpref{wxLogError}{wxlogerror}, but also
3534 terminates the program with the exit code 3. Using {\it abort()} standard
3535 function also terminates the program with this exit code.
3538 \membersection{::wxLogWarning}\label{wxlogwarning}
3540 \func{void}{wxLogWarning}{\param{const char *}{formatString}, \param{...}{}}
3542 \func{void}{wxVLogWarning}{\param{const char *}{formatString}, \param{va\_list }{argPtr}}
3544 For warnings - they are also normally shown to the user, but don't interrupt
3548 \membersection{::wxLogMessage}\label{wxlogmessage}
3550 \func{void}{wxLogMessage}{\param{const char *}{formatString}, \param{...}{}}
3552 \func{void}{wxVLogMessage}{\param{const char *}{formatString}, \param{va\_list }{argPtr}}
3554 For all normal, informational messages. They also appear in a message box by
3555 default (but it can be changed). Notice that the standard behaviour is to not
3556 show informational messages if there are any errors later - the logic being
3557 that the later error messages make the informational messages preceding them
3561 \membersection{::wxLogVerbose}\label{wxlogverbose}
3563 \func{void}{wxLogVerbose}{\param{const char *}{formatString}, \param{...}{}}
3565 \func{void}{wxVLogVerbose}{\param{const char *}{formatString}, \param{va\_list }{argPtr}}
3567 For verbose output. Normally, it is suppressed, but
3568 might be activated if the user wishes to know more details about the program
3569 progress (another, but possibly confusing name for the same function is {\bf wxLogInfo}).
3572 \membersection{::wxLogStatus}\label{wxlogstatus}
3574 \func{void}{wxLogStatus}{\param{wxFrame *}{frame}, \param{const char *}{formatString}, \param{...}{}}
3576 \func{void}{wxVLogStatus}{\param{wxFrame *}{frame}, \param{const char *}{formatString}, \param{va\_list }{argPtr}}
3578 \func{void}{wxLogStatus}{\param{const char *}{formatString}, \param{...}{}}
3580 \func{void}{wxVLogStatus}{\param{const char *}{formatString}, \param{va\_list }{argPtr}}
3582 Messages logged by these functions will appear in the statusbar of the {\it
3583 frame} or of the top level application window by default (i.e. when using
3584 the second version of the functions).
3586 If the target frame doesn't have a statusbar, the message will be lost.
3589 \membersection{::wxLogSysError}\label{wxlogsyserror}
3591 \func{void}{wxLogSysError}{\param{const char *}{formatString}, \param{...}{}}
3593 \func{void}{wxVLogSysError}{\param{const char *}{formatString}, \param{va\_list }{argPtr}}
3595 Mostly used by wxWidgets itself, but might be handy for logging errors after
3596 system call (API function) failure. It logs the specified message text as well
3597 as the last system error code ({\it errno} or {\it ::GetLastError()} depending
3598 on the platform) and the corresponding error message. The second form
3599 of this function takes the error code explicitly as the first argument.
3601 \wxheading{See also}
3603 \helpref{wxSysErrorCode}{wxsyserrorcode},
3604 \helpref{wxSysErrorMsg}{wxsyserrormsg}
3607 \membersection{::wxLogDebug}\label{wxlogdebug}
3609 \func{void}{wxLogDebug}{\param{const char *}{formatString}, \param{...}{}}
3611 \func{void}{wxVLogDebug}{\param{const char *}{formatString}, \param{va\_list }{argPtr}}
3613 The right functions for debug output. They only do something in debug
3614 mode (when the preprocessor symbol \_\_WXDEBUG\_\_ is defined) and expand to
3615 nothing in release mode (otherwise).
3618 \membersection{::wxLogTrace}\label{wxlogtrace}
3620 \func{void}{wxLogTrace}{\param{const char *}{formatString}, \param{...}{}}
3622 \func{void}{wxVLogTrace}{\param{const char *}{formatString}, \param{va\_list }{argPtr}}
3624 \func{void}{wxLogTrace}{\param{const char *}{mask}, \param{const char *}{formatString}, \param{...}{}}
3626 \func{void}{wxVLogTrace}{\param{const char *}{mask}, \param{const char *}{formatString}, \param{va\_list }{argPtr}}
3628 \func{void}{wxLogTrace}{\param{wxTraceMask}{ mask}, \param{const char *}{formatString}, \param{...}{}}
3630 \func{void}{wxVLogTrace}{\param{wxTraceMask}{ mask}, \param{const char *}{formatString}, \param{va\_list }{argPtr}}
3632 As {\bf wxLogDebug}, trace functions only do something in debug build and
3633 expand to nothing in the release one. The reason for making
3634 it a separate function from it is that usually there are a lot of trace
3635 messages, so it might make sense to separate them from other debug messages.
3637 The trace messages also usually can be separated into different categories and
3638 the second and third versions of this function only log the message if the
3639 {\it mask} which it has is currently enabled in \helpref{wxLog}{wxlog}. This
3640 allows to selectively trace only some operations and not others by changing
3641 the value of the trace mask (possible during the run-time).
3643 For the second function (taking a string mask), the message is logged only if
3644 the mask has been previously enabled by the call to
3645 \helpref{AddTraceMask}{wxlogaddtracemask} or by setting
3646 \helpref{{\tt WXTRACE} environment variable}{envvars}.
3647 The predefined string trace masks
3648 used by wxWidgets are:
3650 \begin{itemize}\itemsep=0pt
3651 \item wxTRACE\_MemAlloc: trace memory allocation (new/delete)
3652 \item wxTRACE\_Messages: trace window messages/X callbacks
3653 \item wxTRACE\_ResAlloc: trace GDI resource allocation
3654 \item wxTRACE\_RefCount: trace various ref counting operations
3655 \item wxTRACE\_OleCalls: trace OLE method calls (Win32 only)
3658 {\bf Caveats:} since both the mask and the format string are strings,
3659 this might lead to function signature confusion in some cases:
3660 if you intend to call the format string only version of wxLogTrace,
3661 then add a \%s format string parameter and then supply a second string parameter for that \%s, the string mask version of wxLogTrace will erroneously get called instead, since you are supplying two string parameters to the function.
3662 In this case you'll unfortunately have to avoid having two leading
3663 string parameters, e.g. by adding a bogus integer (with its \%d format string).
3665 The third version of the function only logs the message if all the bits
3666 corresponding to the {\it mask} are set in the wxLog trace mask which can be
3667 set by \helpref{SetTraceMask}{wxlogsettracemask}. This version is less
3668 flexible than the previous one because it doesn't allow defining the user
3669 trace masks easily - this is why it is deprecated in favour of using string
3672 \begin{itemize}\itemsep=0pt
3673 \item wxTraceMemAlloc: trace memory allocation (new/delete)
3674 \item wxTraceMessages: trace window messages/X callbacks
3675 \item wxTraceResAlloc: trace GDI resource allocation
3676 \item wxTraceRefCount: trace various ref counting operations
3677 \item wxTraceOleCalls: trace OLE method calls (Win32 only)
3681 \membersection{::wxSafeShowMessage}\label{wxsafeshowmessage}
3683 \func{void}{wxSafeShowMessage}{\param{const wxString\& }{title}, \param{const wxString\& }{text}}
3685 This function shows a message to the user in a safe way and should be safe to
3686 call even before the application has been initialized or if it is currently in
3687 some other strange state (for example, about to crash). Under Windows this
3688 function shows a message box using a native dialog instead of
3689 \helpref{wxMessageBox}{wxmessagebox} (which might be unsafe to call), elsewhere
3690 it simply prints the message to the standard output using the title as prefix.
3692 \wxheading{Parameters}
3694 \docparam{title}{The title of the message box shown to the user or the prefix
3695 of the message string}
3697 \docparam{text}{The text to show to the user}
3699 \wxheading{See also}
3701 \helpref{wxLogFatalError}{wxlogfatalerror}
3703 \wxheading{Include files}
3708 \membersection{::wxSysErrorCode}\label{wxsyserrorcode}
3710 \func{unsigned long}{wxSysErrorCode}{\void}
3712 Returns the error code from the last system call. This function uses
3713 {\tt errno} on Unix platforms and {\tt GetLastError} under Win32.
3715 \wxheading{See also}
3717 \helpref{wxSysErrorMsg}{wxsyserrormsg},
3718 \helpref{wxLogSysError}{wxlogsyserror}
3721 \membersection{::wxSysErrorMsg}\label{wxsyserrormsg}
3723 \func{const wxChar *}{wxSysErrorMsg}{\param{unsigned long }{errCode = 0}}
3725 Returns the error message corresponding to the given system error code. If
3726 {\it errCode} is $0$ (default), the last error code (as returned by
3727 \helpref{wxSysErrorCode}{wxsyserrorcode}) is used.
3729 \wxheading{See also}
3731 \helpref{wxSysErrorCode}{wxsyserrorcode},
3732 \helpref{wxLogSysError}{wxlogsyserror}
3735 \membersection{WXTRACE}\label{trace}
3737 \wxheading{Include files}
3741 \func{}{WXTRACE}{formatString, ...}
3743 {\bf NB:} This macro is now obsolete, replaced by \helpref{Log functions}{logfunctions}.
3745 Calls wxTrace with printf-style variable argument syntax. Output
3746 is directed to the current output stream (see \helpref{wxDebugContext}{wxdebugcontextoverview}).
3748 \wxheading{Include files}
3753 \membersection{WXTRACELEVEL}\label{tracelevel}
3755 \func{}{WXTRACELEVEL}{level, formatString, ...}
3757 {\bf NB:} This function is now obsolete, replaced by \helpref{Log functions}{logfunctions}.
3759 Calls wxTraceLevel with printf-style variable argument syntax. Output
3760 is directed to the current output stream (see \helpref{wxDebugContext}{wxdebugcontextoverview}).
3761 The first argument should be the level at which this information is appropriate.
3762 It will only be output if the level returned by wxDebugContext::GetLevel is equal to or greater than
3765 \wxheading{Include files}
3770 \membersection{::wxTrace}\label{wxtrace}
3772 \func{void}{wxTrace}{\param{const wxString\& }{fmt}, \param{...}{}}
3774 {\bf NB:} This function is now obsolete, replaced by \helpref{Log functions}{logfunctions}.
3776 Takes printf-style variable argument syntax. Output
3777 is directed to the current output stream (see \helpref{wxDebugContext}{wxdebugcontextoverview}).
3779 \wxheading{Include files}
3784 \membersection{::wxTraceLevel}\label{wxtracelevel}
3786 \func{void}{wxTraceLevel}{\param{int}{ level}, \param{const wxString\& }{fmt}, \param{...}{}}
3788 {\bf NB:} This function is now obsolete, replaced by \helpref{Log functions}{logfunctions}.
3790 Takes printf-style variable argument syntax. Output
3791 is directed to the current output stream (see \helpref{wxDebugContext}{wxdebugcontextoverview}).
3792 The first argument should be the level at which this information is appropriate.
3793 It will only be output if the level returned by wxDebugContext::GetLevel is equal to or greater than
3796 \wxheading{Include files}
3802 \section{Time functions}\label{timefunctions}
3804 The functions in this section deal with getting the current time and
3805 starting/stopping the global timers. Please note that the timer functions are
3806 deprecated because they work with one global timer only and
3807 \helpref{wxTimer}{wxtimer} and/or \helpref{wxStopWatch}{wxstopwatch} classes
3808 should be used instead. For retrieving the current time, you may also use
3809 \helpref{wxDateTime::Now}{wxdatetimenow} or
3810 \helpref{wxDateTime::UNow}{wxdatetimeunow} methods.
3813 \membersection{::wxGetElapsedTime}\label{wxgetelapsedtime}
3815 \func{long}{wxGetElapsedTime}{\param{bool}{ resetTimer = true}}
3817 Gets the time in milliseconds since the last \helpref{::wxStartTimer}{wxstarttimer}.
3819 If {\it resetTimer} is true (the default), the timer is reset to zero
3822 See also \helpref{wxTimer}{wxtimer}.
3824 \wxheading{Include files}
3829 \membersection{::wxGetLocalTime}\label{wxgetlocaltime}
3831 \func{long}{wxGetLocalTime}{\void}
3833 Returns the number of seconds since local time 00:00:00 Jan 1st 1970.
3835 \wxheading{See also}
3837 \helpref{wxDateTime::Now}{wxdatetimenow}
3839 \wxheading{Include files}
3844 \membersection{::wxGetLocalTimeMillis}\label{wxgetlocaltimemillis}
3846 \func{wxLongLong}{wxGetLocalTimeMillis}{\void}
3848 Returns the number of milliseconds since local time 00:00:00 Jan 1st 1970.
3850 \wxheading{See also}
3852 \helpref{wxDateTime::Now}{wxdatetimenow},\\
3853 \helpref{wxLongLong}{wxlonglong}
3855 \wxheading{Include files}
3860 \membersection{::wxGetUTCTime}\label{wxgetutctime}
3862 \func{long}{wxGetUTCTime}{\void}
3864 Returns the number of seconds since GMT 00:00:00 Jan 1st 1970.
3866 \wxheading{See also}
3868 \helpref{wxDateTime::Now}{wxdatetimenow}
3870 \wxheading{Include files}
3875 \membersection{::wxMicroSleep}\label{wxmicrosleep}
3877 \func{void}{wxMicroSleep}{\param{unsigned long}{ microseconds}}
3879 Sleeps for the specified number of microseconds. The microsecond resolution may
3880 not, in fact, be available on all platforms (currently only Unix platforms with
3881 nanosleep(2) may provide it) in which case this is the same as
3882 \helpref{wxMilliSleep}{wxmillisleep}(\arg{microseconds}$/1000$).
3884 \wxheading{Include files}
3889 \membersection{::wxMilliSleep}\label{wxmillisleep}
3891 \func{void}{wxMilliSleep}{\param{unsigned long}{ milliseconds}}
3893 Sleeps for the specified number of milliseconds. Notice that usage of this
3894 function is encouraged instead of calling usleep(3) directly because the
3895 standard usleep() function is not MT safe.
3897 \wxheading{Include files}
3902 \membersection{::wxNow}\label{wxnow}
3904 \func{wxString}{wxNow}{\void}
3906 Returns a string representing the current date and time.
3908 \wxheading{Include files}
3913 \membersection{::wxSleep}\label{wxsleep}
3915 \func{void}{wxSleep}{\param{int}{ secs}}
3917 Sleeps for the specified number of seconds.
3919 \wxheading{Include files}
3924 \membersection{::wxStartTimer}\label{wxstarttimer}
3926 \func{void}{wxStartTimer}{\void}
3928 Starts a stopwatch; use \helpref{::wxGetElapsedTime}{wxgetelapsedtime} to get the elapsed time.
3930 See also \helpref{wxTimer}{wxtimer}.
3932 \wxheading{Include files}
3937 \membersection{::wxUsleep}\label{wxusleep}
3939 \func{void}{wxUsleep}{\param{unsigned long}{ milliseconds}}
3941 This function is deprecated because its name is misleading: notice that the
3942 argument is in milliseconds, not microseconds. Please use either
3943 \helpref{wxMilliSleep}{wxmillisleep} or \helpref{wxMicroSleep}{wxmicrosleep}
3944 depending on the resolution you need.
3948 \section{Debugging macros and functions}\label{debugmacros}
3950 Useful macros and functions for error checking and defensive programming.
3951 wxWidgets defines three families of the assert-like macros:
3952 the wxASSERT and wxFAIL macros only do anything if \_\_WXDEBUG\_\_ is defined
3953 (in other words, in the debug build) but disappear completely in the release
3954 build. On the other hand, the wxCHECK macros stay event in release builds but a
3955 check failure doesn't generate any user-visible effects then. Finally, the
3956 compile time assertions don't happen during the run-time but result in the
3957 compilation error messages if the condition they check fail.
3959 \wxheading{Include files}
3964 \membersection{::wxOnAssert}\label{wxonassert}
3966 \func{void}{wxOnAssert}{\param{const char *}{fileName}, \param{int}{ lineNumber}, \param{const char *}{cond}, \param{const char *}{msg = NULL}}
3968 This function is called whenever one of debugging macros fails (i.e. condition
3969 is false in an assertion). It is only defined in the debug mode, in release
3970 builds the \helpref{wxCHECK}{wxcheck} failures don't result in anything.
3972 To override the default behaviour in the debug builds which is to show the user
3973 a dialog asking whether he wants to abort the program, continue or continue
3974 ignoring any subsequent assert failures, you may override
3975 \helpref{wxApp::OnAssert}{wxapponassert} which is called by this function if
3976 the global application object exists.
3979 \membersection{wxASSERT}\label{wxassert}
3981 \func{}{wxASSERT}{\param{}{condition}}
3983 Assert macro. An error message will be generated if the condition is false in
3984 debug mode, but nothing will be done in the release build.
3986 Please note that the condition in wxASSERT() should have no side effects
3987 because it will not be executed in release mode at all.
3989 \wxheading{See also}
3991 \helpref{wxASSERT\_MSG}{wxassertmsg},\\
3992 \helpref{wxCOMPILE\_TIME\_ASSERT}{wxcompiletimeassert}
3995 \membersection{wxASSERT\_MIN\_BITSIZE}\label{wxassertminbitsize}
3997 \func{}{wxASSERT\_MIN\_BITSIZE}{\param{}{type}, \param{}{size}}
3999 This macro results in a
4000 \helpref{compile time assertion failure}{wxcompiletimeassert} if the size
4001 of the given type {\it type} is less than {\it size} bits.
4003 You may use it like this, for example:
4006 // we rely on the int being able to hold values up to 2^32
4007 wxASSERT_MIN_BITSIZE(int, 32);
4009 // can't work with the platforms using UTF-8 for wchar_t
4010 wxASSERT_MIN_BITSIZE(wchar_t, 16);
4014 \membersection{wxASSERT\_MSG}\label{wxassertmsg}
4016 \func{}{wxASSERT\_MSG}{\param{}{condition}, \param{}{msg}}
4018 Assert macro with message. An error message will be generated if the condition is false.
4020 \wxheading{See also}
4022 \helpref{wxASSERT}{wxassert},\\
4023 \helpref{wxCOMPILE\_TIME\_ASSERT}{wxcompiletimeassert}
4026 \membersection{wxCOMPILE\_TIME\_ASSERT}\label{wxcompiletimeassert}
4028 \func{}{wxCOMPILE\_TIME\_ASSERT}{\param{}{condition}, \param{}{msg}}
4030 Using {\tt wxCOMPILE\_TIME\_ASSERT} results in a compilation error if the
4031 specified {\it condition} is false. The compiler error message should include
4032 the {\it msg} identifier - please note that it must be a valid C++ identifier
4033 and not a string unlike in the other cases.
4035 This macro is mostly useful for testing the expressions involving the
4036 {\tt sizeof} operator as they can't be tested by the preprocessor but it is
4037 sometimes desirable to test them at the compile time.
4039 Note that this macro internally declares a struct whose name it tries to make
4040 unique by using the {\tt \_\_LINE\_\_} in it but it may still not work if you
4041 use it on the same line in two different source files. In this case you may
4042 either change the line in which either of them appears on or use the
4043 \helpref{wxCOMPILE\_TIME\_ASSERT2}{wxcompiletimeassert2} macro.
4045 Also note that Microsoft Visual C++ has a bug which results in compiler errors
4046 if you use this macro with ``Program Database For Edit And Continue''
4047 (\texttt{/ZI}) option, so you shouldn't use it (``Program Database''
4048 (\texttt{/Zi}) is ok though) for the code making use of this macro.
4050 \wxheading{See also}
4052 \helpref{wxASSERT\_MSG}{wxassertmsg},\\
4053 \helpref{wxASSERT\_MIN\_BITSIZE}{wxassertminbitsize}
4056 \membersection{wxCOMPILE\_TIME\_ASSERT2}\label{wxcompiletimeassert2}
4058 \func{}{wxCOMPILE\_TIME\_ASSERT}{\param{}{condition}, \param{}{msg}, \param{}{name}}
4060 This macro is identical to \helpref{wxCOMPILE\_TIME\_ASSERT2}{wxcompiletimeassert2}
4061 except that it allows you to specify a unique {\it name} for the struct
4062 internally defined by this macro to avoid getting the compilation errors
4063 described \helpref{above}{wxcompiletimeassert}.
4066 \membersection{wxFAIL}\label{wxfail}
4068 \func{}{wxFAIL}{\void}
4070 Will always generate an assert error if this code is reached (in debug mode).
4072 See also: \helpref{wxFAIL\_MSG}{wxfailmsg}
4075 \membersection{wxFAIL\_MSG}\label{wxfailmsg}
4077 \func{}{wxFAIL\_MSG}{\param{}{msg}}
4079 Will always generate an assert error with specified message if this code is reached (in debug mode).
4081 This macro is useful for marking unreachable" code areas, for example
4082 it may be used in the "default:" branch of a switch statement if all possible
4083 cases are processed above.
4085 \wxheading{See also}
4087 \helpref{wxFAIL}{wxfail}
4090 \membersection{wxCHECK}\label{wxcheck}
4092 \func{}{wxCHECK}{\param{}{condition}, \param{}{retValue}}
4094 Checks that the condition is true, returns with the given return value if not (FAILs in debug mode).
4095 This check is done even in release mode.
4098 \membersection{wxCHECK\_MSG}\label{wxcheckmsg}
4100 \func{}{wxCHECK\_MSG}{\param{}{condition}, \param{}{retValue}, \param{}{msg}}
4102 Checks that the condition is true, returns with the given return value if not (FAILs in debug mode).
4103 This check is done even in release mode.
4105 This macro may be only used in non void functions, see also
4106 \helpref{wxCHECK\_RET}{wxcheckret}.
4109 \membersection{wxCHECK\_RET}\label{wxcheckret}
4111 \func{}{wxCHECK\_RET}{\param{}{condition}, \param{}{msg}}
4113 Checks that the condition is true, and returns if not (FAILs with given error
4114 message in debug mode). This check is done even in release mode.
4116 This macro should be used in void functions instead of
4117 \helpref{wxCHECK\_MSG}{wxcheckmsg}.
4120 \membersection{wxCHECK2}\label{wxcheck2}
4122 \func{}{wxCHECK2}{\param{}{condition}, \param{}{operation}}
4124 Checks that the condition is true and \helpref{wxFAIL}{wxfail} and execute
4125 {\it operation} if it is not. This is a generalisation of
4126 \helpref{wxCHECK}{wxcheck} and may be used when something else than just
4127 returning from the function must be done when the {\it condition} is false.
4129 This check is done even in release mode.
4132 \membersection{wxCHECK2\_MSG}\label{wxcheck2msg}
4134 \func{}{wxCHECK2}{\param{}{condition}, \param{}{operation}, \param{}{msg}}
4136 This is the same as \helpref{wxCHECK2}{wxcheck2}, but
4137 \helpref{wxFAIL\_MSG}{wxfailmsg} with the specified {\it msg} is called
4138 instead of wxFAIL() if the {\it condition} is false.
4141 \membersection{::wxTrap}\label{wxtrap}
4143 \func{void}{wxTrap}{\void}
4145 In debug mode (when {\tt \_\_WXDEBUG\_\_} is defined) this function generates a
4146 debugger exception meaning that the control is passed to the debugger if one is
4147 attached to the process. Otherwise the program just terminates abnormally.
4149 In release mode this function does nothing.
4151 \wxheading{Include files}
4157 \membersection{::wxIsDebuggerRunning}\label{wxisdebuggerrunning}
4159 \func{bool}{wxIsDebuggerRunning}{\void}
4161 Returns {\tt true} if the program is running under debugger, {\tt false}
4164 Please note that this function is currently only implemented for Mac builds
4165 using CodeWarrior and always returns {\tt false} elsewhere.
4170 \section{Environment access functions}\label{environfunctions}
4172 The functions in this section allow to access (get) or change value of
4173 environment variables in a portable way. They are currently implemented under
4174 Win32 and POSIX-like systems (Unix).
4176 % TODO add some stuff about env var inheriting but not propagating upwards (VZ)
4178 \wxheading{Include files}
4183 \membersection{wxGetenv}\label{wxgetenvmacro}
4185 \func{wxChar *}{wxGetEnv}{\param{const wxString\&}{ var}}
4187 This is a macro defined as {\tt getenv()} or its wide char version in Unicode
4190 Note that under Win32 it may not return correct value for the variables set
4191 with \helpref{wxSetEnv}{wxsetenv}, use \helpref{wxGetEnv}{wxgetenv} function
4195 \membersection{wxGetEnv}\label{wxgetenv}
4197 \func{bool}{wxGetEnv}{\param{const wxString\&}{ var}, \param{wxString *}{value}}
4199 Returns the current value of the environment variable {\it var} in {\it value}.
4200 {\it value} may be {\tt NULL} if you just want to know if the variable exists
4201 and are not interested in its value.
4203 Returns {\tt true} if the variable exists, {\tt false} otherwise.
4206 \membersection{wxSetEnv}\label{wxsetenv}
4208 \func{bool}{wxSetEnv}{\param{const wxString\&}{ var}, \param{const wxChar *}{value}}
4210 Sets the value of the environment variable {\it var} (adding it if necessary)
4213 Returns {\tt true} on success.
4216 \membersection{wxUnsetEnv}\label{wxunsetenv}
4218 \func{bool}{wxUnsetEnv}{\param{const wxString\&}{ var}}
4220 Removes the variable {\it var} from the environment.
4221 \helpref{wxGetEnv}{wxgetenv} will return {\tt NULL} after the call to this
4224 Returns {\tt true} on success.