1 \chapter{Functions
}\label{functions
}
2 \setheader{{\it CHAPTER
\thechapter}}{}{}{}{}{{\it CHAPTER
\thechapter}}%
3 \setfooter{\thepage}{}{}{}{}{\thepage}
5 The functions and macros defined in wxWindows are described here: you can
6 either look up a function using the alphabetical listing of them or find it in
7 the corresponding topic.
9 \section{Alphabetical functions and macros list
}
11 \helpref{CLASSINFO
}{classinfo
}\\
12 \helpref{DECLARE
\_ABSTRACT\_CLASS}{declareabstractclass
}\\
13 \helpref{DECLARE
\_APP}{declareapp
}\\
14 \helpref{DECLARE
\_CLASS}{declareclass
}\\
15 \helpref{DECLARE
\_DYNAMIC\_CLASS}{declaredynamicclass
}\\
16 \helpref{IMPLEMENT
\_ABSTRACT\_CLASS2}{implementabstractclass2
}\\
17 \helpref{IMPLEMENT
\_ABSTRACT\_CLASS}{implementabstractclass
}\\
18 \helpref{IMPLEMENT
\_APP}{implementapp
}\\
19 \helpref{IMPLEMENT
\_CLASS2}{implementclass2
}\\
20 \helpref{IMPLEMENT
\_CLASS}{implementclass
}\\
21 \helpref{IMPLEMENT
\_DYNAMIC\_CLASS2}{implementdynamicclass2
}\\
22 \helpref{IMPLEMENT
\_DYNAMIC\_CLASS}{implementdynamicclass
}\\
23 \helpref{WXDEBUG
\_NEW}{debugnew
}\\
24 \helpref{WXTRACELEVEL
}{tracelevel
}\\
25 \helpref{WXTRACE
}{trace
}\\
26 \helpref{copystring
}{copystring
}\\
27 \helpref{wxASSERT
\_MSG}{wxassertmsg
}\\
28 \helpref{wxASSERT
}{wxassert
}\\
29 \helpref{wxBITMAP
}{wxbitmapmacro
}\\
30 \helpref{wxBeginBusyCursor
}{wxbeginbusycursor
}\\
31 \helpref{wxBell
}{wxbell
}\\
32 \helpref{wxCHECK2
\_MSG}{wxcheck2msg
}\\
33 \helpref{wxCHECK2
}{wxcheck2
}\\
34 \helpref{wxCHECK
\_MSG}{wxcheckmsg
}\\
35 \helpref{wxCHECK
\_RET}{wxcheckret
}\\
36 \helpref{wxCHECK
\_VERSION}{wxcheckversion
}\\
37 \helpref{wxCHECK
}{wxcheck
}\\
38 \helpref{wxClientDisplayRect
}{wxclientdisplayrect
}\\
39 \helpref{wxClipboardOpen
}{wxclipboardopen
}\\
40 \helpref{wxCloseClipboard
}{wxcloseclipboard
}\\
41 \helpref{wxColourDisplay
}{wxcolourdisplay
}\\
42 \helpref{wxConcatFiles
}{wxconcatfiles
}\\
43 \helpref{wxConstCast
}{wxconstcast
}\\
44 \helpref{wxCopyFile
}{wxcopyfile
}\\
45 \helpref{wxCreateDynamicObject
}{wxcreatedynamicobject
}\\
46 \helpref{wxCreateFileTipProvider
}{wxcreatefiletipprovider
}\\
47 \helpref{wxDDECleanUp
}{wxddecleanup
}\\
48 \helpref{wxDDEInitialize
}{wxddeinitialize
}\\
49 \helpref{wxDROP
\_ICON}{wxdropicon
}\\
50 \helpref{wxDebugMsg
}{wxdebugmsg
}\\
51 \helpref{wxDirExists
}{wxdirexists
}\\
52 \helpref{wxDirSelector
}{wxdirselector
}\\
53 \helpref{wxDisplayDepth
}{wxdisplaydepth
}\\
54 \helpref{wxDisplaySizeMM
}{wxdisplaysizemm
}\\
55 \helpref{wxDisplaySize
}{wxdisplaysize
}\\
56 \helpref{wxDisplaySize
}{wxdisplaysize
}\\
57 \helpref{wxDos2UnixFilename
}{wxdos2unixfilename
}\\
58 \helpref{wxDynamicCastThis
}{wxdynamiccastthis
}\\
59 \helpref{wxDynamicCast
}{wxdynamiccast
}\\
60 \helpref{wxEmptyClipboard
}{wxemptyclipboard
}\\
61 \helpref{wxEnableTopLevelWindows
}{wxenabletoplevelwindows
}\\
62 \helpref{wxEndBusyCursor
}{wxendbusycursor
}\\
63 \helpref{wxEntry
}{wxentry
}\\
64 \helpref{wxEnumClipboardFormats
}{wxenumclipboardformats
}\\
65 \helpref{wxError
}{wxerror
}\\
66 \helpref{wxExecute
}{wxexecute
}\\
67 \helpref{wxExit
}{wxexit
}\\
68 \helpref{wxFAIL
\_MSG}{wxfailmsg
}\\
69 \helpref{wxFAIL
}{wxfail
}\\
70 \helpref{wxFatalError
}{wxfatalerror
}\\
71 \helpref{wxFileExists
}{wxfileexists
}\\
72 \helpref{wxFileModificationTime
}{wxfilemodificationtime
}\\
73 \helpref{wxFileNameFromPath
}{wxfilenamefrompath
}\\
74 \helpref{wxFileSelector
}{wxfileselector
}\\
75 \helpref{wxFindFirstFile
}{wxfindfirstfile
}\\
76 \helpref{wxFindMenuItemId
}{wxfindmenuitemid
}\\
77 \helpref{wxFindNextFile
}{wxfindnextfile
}\\
78 \helpref{wxFindWindowAtPointer
}{wxfindwindowatpointer
}\\
79 \helpref{wxFindWindowAtPoint
}{wxfindwindowatpoint
}\\
80 \helpref{wxFindWindowByLabel
}{wxfindwindowbylabel
}\\
81 \helpref{wxFindWindowByName
}{wxfindwindowbyname
}\\
82 \helpref{wxGetActiveWindow
}{wxgetactivewindow
}\\
83 \helpref{wxGetClipboardData
}{wxgetclipboarddata
}\\
84 \helpref{wxGetClipboardFormatName
}{wxgetclipboardformatname
}\\
85 \helpref{wxGetColourFromUser
}{wxgetcolourfromuser
}\\
86 \helpref{wxGetCwd
}{wxgetcwd
}\\
87 \helpref{wxGetDiskSpace
}{wxgetdiskspace
}\\
88 \helpref{wxGetDisplayName
}{wxgetdisplayname
}\\
89 \helpref{wxGetElapsedTime
}{wxgetelapsedtime
}\\
90 \helpref{wxGetEmailAddress
}{wxgetemailaddress
}\\
91 \helpref{wxGetEnv
}{wxgetenv
}\\
92 \helpref{wxGetFreeMemory
}{wxgetfreememory
}\\
93 \helpref{wxGetFullHostName
}{wxgetfullhostname
}\\
94 \helpref{wxGetHomeDir
}{wxgethomedir
}\\
95 \helpref{wxGetHostName
}{wxgethostname
}\\
96 \helpref{wxGetLocalTimeMillis
}{wxgetlocaltimemillis
}\\
97 \helpref{wxGetLocalTime
}{wxgetlocaltime
}\\
98 \helpref{wxGetMousePosition
}{wxgetmouseposition
}\\
99 \helpref{wxGetMultipleChoices
}{wxgetmultiplechoices
}\\
100 \helpref{wxGetMultipleChoice
}{wxgetmultiplechoice
}\\
101 \helpref{wxGetNumberFromUser
}{wxgetnumberfromuser
}\\
102 \helpref{wxGetOSDirectory
}{wxgetosdirectory
}\\
103 \helpref{wxGetOsDescription
}{wxgetosdescription
}\\
104 \helpref{wxGetOsVersion
}{wxgetosversion
}\\
105 \helpref{wxGetPasswordFromUser
}{wxgetpasswordfromuser
}\\
106 \helpref{wxGetPrinterCommand
}{wxgetprintercommand
}\\
107 \helpref{wxGetPrinterFile
}{wxgetprinterfile
}\\
108 \helpref{wxGetPrinterMode
}{wxgetprintermode
}\\
109 \helpref{wxGetPrinterOptions
}{wxgetprinteroptions
}\\
110 \helpref{wxGetPrinterOrientation
}{wxgetprinterorientation
}\\
111 \helpref{wxGetPrinterPreviewCommand
}{wxgetprinterpreviewcommand
}\\
112 \helpref{wxGetPrinterScaling
}{wxgetprinterscaling
}\\
113 \helpref{wxGetPrinterTranslation
}{wxgetprintertranslation
}\\
114 \helpref{wxGetResource
}{wxgetresource
}\\
115 \helpref{wxGetSingleChoiceData
}{wxgetsinglechoicedata
}\\
116 \helpref{wxGetSingleChoiceIndex
}{wxgetsinglechoiceindex
}\\
117 \helpref{wxGetSingleChoice
}{wxgetsinglechoice
}\\
118 \helpref{wxGetTempFileName
}{wxgettempfilename
}\\
119 \helpref{wxGetTextFromUser
}{wxgettextfromuser
}\\
120 \helpref{wxGetTranslation
}{wxgettranslation
}\\
121 \helpref{wxGetUTCTime
}{wxgetutctime
}\\
122 \helpref{wxGetUserHome
}{wxgetuserhome
}\\
123 \helpref{wxGetUserId
}{wxgetuserid
}\\
124 \helpref{wxGetUserName
}{wxgetusername
}\\
125 \helpref{wxGetWorkingDirectory
}{wxgetworkingdirectory
}\\
126 \helpref{wxGetenv
}{wxgetenvmacro
}\\
127 \helpref{wxHandleFatalExceptions
}{wxhandlefatalexceptions
}\\
128 \helpref{wxICON
}{wxiconmacro
}\\
129 \helpref{wxINTXX
\_SWAP\_ALWAYS}{intswapalways
}\\
130 \helpref{wxINTXX
\_SWAP\_ON\_BE}{intswaponbe
}\\
131 \helpref{wxINTXX
\_SWAP\_ON\_LE}{intswaponle
}\\
132 \helpref{wxInitAllImageHandlers
}{wxinitallimagehandlers
}\\
133 \helpref{wxInitialize
}{wxinitialize
}\\
134 \helpref{wxIsAbsolutePath
}{wxisabsolutepath
}\\
135 \helpref{wxIsBusy
}{wxisbusy
}\\
136 \helpref{wxIsClipboardFormatAvailable
}{wxisclipboardformatavailable
}\\
137 \helpref{wxIsEmpty
}{wxisempty
}\\
138 \helpref{wxIsWild
}{wxiswild
}\\
139 \helpref{wxKill
}{wxkill
}\\
140 \helpref{wxLoadUserResource
}{wxloaduserresource
}\\
141 \helpref{wxLogDebug
}{wxlogdebug
}\\
142 \helpref{wxLogError
}{wxlogerror
}\\
143 \helpref{wxLogFatalError
}{wxlogfatalerror
}\\
144 \helpref{wxLogMessage
}{wxlogmessage
}\\
145 \helpref{wxLogStatus
}{wxlogstatus
}\\
146 \helpref{wxLogSysError
}{wxlogsyserror
}\\
147 \helpref{wxLogTrace
}{wxlogtrace
}\\
148 \helpref{wxLogVerbose
}{wxlogverbose
}\\
149 \helpref{wxLogWarning
}{wxlogwarning
}\\
150 \helpref{wxMakeMetafilePlaceable
}{wxmakemetafileplaceable
}\\
151 \helpref{wxMatchWild
}{wxmatchwild
}\\
152 \helpref{wxMessageBox
}{wxmessagebox
}\\
153 \helpref{wxMkdir
}{wxmkdir
}\\
154 \helpref{wxMutexGuiEnter
}{wxmutexguienter
}\\
155 \helpref{wxMutexGuiLeave
}{wxmutexguileave
}\\
156 \helpref{wxNewId
}{wxnewid
}\\
157 \helpref{wxNow
}{wxnow
}\\
158 \helpref{wxOnAssert
}{wxonassert
}\\
159 \helpref{wxOpenClipboard
}{wxopenclipboard
}\\
160 \helpref{wxPathOnly
}{wxpathonly
}\\
161 \helpref{wxPostDelete
}{wxpostdelete
}\\
162 \helpref{wxPostEvent
}{wxpostevent
}\\
163 \helpref{wxRegisterClipboardFormat
}{wxregisterclipboardformat
}\\
164 \helpref{wxRegisterId
}{wxregisterid
}\\
165 \helpref{wxRemoveFile
}{wxremovefile
}\\
166 \helpref{wxRenameFile
}{wxrenamefile
}\\
167 \helpref{wxResourceAddIdentifier
}{wxresourceaddidentifier
}\\
168 \helpref{wxResourceClear
}{wxresourceclear
}\\
169 \helpref{wxResourceCreateBitmap
}{wxresourcecreatebitmap
}\\
170 \helpref{wxResourceCreateIcon
}{wxresourcecreateicon
}\\
171 \helpref{wxResourceCreateMenuBar
}{wxresourcecreatemenubar
}\\
172 \helpref{wxResourceGetIdentifier
}{wxresourcegetidentifier
}\\
173 \helpref{wxResourceParseData
}{wxresourcedata
}\\
174 \helpref{wxResourceParseFile
}{wxresourceparsefile
}\\
175 \helpref{wxResourceParseString
}{wxresourceparsestring
}\\
176 \helpref{wxResourceRegisterBitmapData
}{registerbitmapdata
}\\
177 \helpref{wxResourceRegisterIconData
}{wxresourceregistericondata
}\\
178 \helpref{wxRmdir
}{wxrmdir
}\\
179 \helpref{wxSafeYield
}{wxsafeyield
}\\
180 \helpref{wxSetClipboardData
}{wxsetclipboarddata
}\\
181 \helpref{wxSetCursor
}{wxsetcursor
}\\
182 \helpref{wxSetDisplayName
}{wxsetdisplayname
}\\
183 \helpref{wxSetEnv
}{wxsetenv
}\\
184 \helpref{wxSetPrinterCommand
}{wxsetprintercommand
}\\
185 \helpref{wxSetPrinterFile
}{wxsetprinterfile
}\\
186 \helpref{wxSetPrinterMode
}{wxsetprintermode
}\\
187 \helpref{wxSetPrinterOptions
}{wxsetprinteroptions
}\\
188 \helpref{wxSetPrinterOrientation
}{wxsetprinterorientation
}\\
189 \helpref{wxSetPrinterPreviewCommand
}{wxsetprinterpreviewcommand
}\\
190 \helpref{wxSetPrinterScaling
}{wxsetprinterscaling
}\\
191 \helpref{wxSetPrinterTranslation
}{wxsetprintertranslation
}\\
192 \helpref{wxSetWorkingDirectory
}{wxsetworkingdirectory
}\\
193 \helpref{wxShell
}{wxshell
}\\
194 \helpref{wxShowTip
}{wxshowtip
}\\
195 \helpref{wxSleep
}{wxsleep
}\\
196 \helpref{wxSnprintf
}{wxsnprintf
}\\
197 \helpref{wxSplitPath
}{wxsplitfunction
}\\
198 \helpref{wxStartTimer
}{wxstarttimer
}\\
199 \helpref{wxStaticCast
}{wxstaticcast
}\\
200 \helpref{wxStricmp
}{wxstricmp
}\\
201 \helpref{wxStringEq
}{wxstringeq
}\\
202 \helpref{wxStringMatch
}{wxstringmatch
}\\
203 \helpref{wxStripMenuCodes
}{wxstripmenucodes
}\\
204 \helpref{wxStrlen
}{wxstrlen
}\\
205 \helpref{wxSysErrorCode
}{wxsyserrorcode
}\\
206 \helpref{wxSysErrorMsg
}{wxsyserrormsg
}\\
207 \helpref{wxToLower
}{wxtolower
}\\
208 \helpref{wxToUpper
}{wxtoupper
}\\
209 \helpref{wxTraceLevel
}{wxtracelevel
}\\
210 \helpref{wxTrace
}{wxtrace
}\\
211 \helpref{wxTransferFileToStream
}{wxtransferfiletostream
}\\
212 \helpref{wxTransferStreamToFile
}{wxtransferstreamtofile
}\\
213 \helpref{wxTrap
}{wxtrap
}\\
214 \helpref{wxUninitialize
}{wxuninitialize
}\\
215 \helpref{wxUnix2DosFilename
}{wxunix2dosfilename
}\\
216 \helpref{wxUnsetEnv
}{wxunsetenv
}\\
217 \helpref{wxUsleep
}{wxusleep
}\\
218 \helpref{wxVsnprintf
}{wxvsnprintf
}\\
219 \helpref{wxWakeUpIdle
}{wxwakeupidle
}\\
220 \helpref{wxWriteResource
}{wxwriteresource
}\\
221 \helpref{wxYield
}{wxyield
}
223 \section{Version macros
}\label{versionfunctions
}
225 The following constants are defined in wxWindows:
227 \begin{itemize
}\itemsep=
0pt
228 \item {\tt wxMAJOR
\_VERSION} is the major version of wxWindows
229 \item {\tt wxMINOR
\_VERSION} is the minor version of wxWindows
230 \item {\tt wxRELEASE
\_NUMBER} is the release number
233 For example, the values or these constants for wxWindows
2.1.15 are
2,
1 and
236 Additionally,
{\tt wxVERSION
\_STRING} is a user-readable string containing
237 the full wxWindows version and
{\tt wxVERSION
\_NUMBER} is a combination of the
238 three version numbers above: for
2.1.15, it is
2115 and it is
2200 for
241 \wxheading{Include files
}
243 <wx/version.h> or <wx/defs.h>
245 \membersection{wxCHECK
\_VERSION}\label{wxcheckversion
}
247 \func{bool
}{wxCHECK
\_VERSION}{\param{}{major, minor, release
}}
249 This is a macro which evaluates to true if the current wxWindows version is at
250 least major.minor.release.
252 For example, to test if the program is compiled with wxWindows
2.2 or higher,
253 the following can be done:
257 #if wxCHECK_VERSION(
2,
2,
0)
258 if ( s.StartsWith("foo") )
259 #else // replacement code for old version
260 if ( strncmp(s, "foo",
3) ==
0 )
267 \section{Application initialization and termination
}\label{appinifunctions
}
269 The functions in this section are used on application startup/shutdown and also
270 to control the behaviour of the main event loop of the GUI programs.
272 \membersection{::wxEntry
}\label{wxentry
}
274 This initializes wxWindows in a platform-dependent way. Use this if you
275 are not using the default wxWindows entry code (e.g. main or WinMain). For example,
276 you can initialize wxWindows from an Microsoft Foundation Classes application using
279 \func{void
}{wxEntry
}{\param{HANDLE
}{ hInstance
},
\param{HANDLE
}{ hPrevInstance
},
280 \param{const wxString\&
}{commandLine
},
\param{int
}{ cmdShow
},
\param{bool
}{ enterLoop = TRUE
}}
282 wxWindows initialization under Windows (non-DLL). If
{\it enterLoop
} is FALSE, the
283 function will return immediately after calling wxApp::OnInit. Otherwise, the wxWindows
284 message loop will be entered.
286 \func{void
}{wxEntry
}{\param{HANDLE
}{ hInstance
},
\param{HANDLE
}{ hPrevInstance
},
287 \param{WORD
}{ wDataSegment
},
\param{WORD
}{ wHeapSize
},
\param{const wxString\&
}{ commandLine
}}
289 wxWindows initialization under Windows (for applications constructed as a DLL).
291 \func{int
}{wxEntry
}{\param{int
}{ argc
},
\param{const wxString\& *
}{argv
}}
293 wxWindows initialization under Unix.
297 To clean up wxWindows, call wxApp::OnExit followed by the static function
298 wxApp::CleanUp. For example, if exiting from an MFC application that also uses wxWindows:
301 int CTheApp::ExitInstance()
303 // OnExit isn't called by CleanUp so must be called explicitly.
307 return CWinApp::ExitInstance();
311 \wxheading{Include files
}
315 \membersection{::wxHandleFatalExceptions
}\label{wxhandlefatalexceptions
}
317 \func{bool
}{wxHandleFatalExceptions
}{\param{bool
}{ doIt = TRUE
}}
319 If
{\it doIt
} is TRUE, the fatal exceptions (also known as general protection
320 faults under Windows or segmentation violations in the Unix world) will be
321 caught and passed to
\helpref{wxApp::OnFatalException
}{wxapponfatalexception
}.
322 By default, i.e. before this function is called, they will be handled in the
323 normal way which usually just means that the application will be terminated.
324 Calling wxHandleFatalExceptions() with
{\it doIt
} equal to FALSE will restore
325 this default behaviour.
327 \membersection{::wxInitAllImageHandlers
}\label{wxinitallimagehandlers
}
329 \func{void
}{wxInitAllImageHandlers
}{\void}
331 Initializes all available image handlers. For a list of available handlers,
332 see
\helpref{wxImage
}{wximage
}.
336 \helpref{wxImage
}{wximage
},
\helpref{wxImageHandler
}{wximagehandler
}
338 \wxheading{Include files
}
342 \membersection{::wxInitialize
}\label{wxinitialize
}
344 \func{bool
}{wxInitialize
}{\void}
346 This function is used in wxBase only and only if you don't create
347 \helpref{wxApp
}{wxapp
} object at all. In this case you must call it from your
348 {\tt main()
} function before calling any other wxWindows functions.
350 If the function returns
{\tt FALSE
} the initialization could not be performed,
351 in this case the library cannot be used and
352 \helpref{wxUninitialize
}{wxuninitialize
} shouldn't be called neither.
354 This function may be called several times but
355 \helpref{wxUninitialize
}{wxuninitialize
} must be called for each successful
356 call to this function.
358 \wxheading{Include files
}
362 \membersection{::wxSafeYield
}\label{wxsafeyield
}
364 \func{bool
}{wxSafeYield
}{\param{wxWindow*
}{ win = NULL
}}
366 This function is similar to wxYield, except that it disables the user input to
367 all program windows before calling wxYield and re-enables it again
368 afterwards. If
{\it win
} is not NULL, this window will remain enabled,
369 allowing the implementation of some limited user interaction.
371 Returns the result of the call to
\helpref{::wxYield
}{wxyield
}.
373 \wxheading{Include files
}
377 \membersection{::wxUninitialize
}\label{wxuninitialize
}
379 \func{void
}{wxUninitialize
}{\void}
381 This function is for use in console (wxBase) programs only. It must be called
382 once for each previous successful call to
\helpref{wxInitialize
}{wxinitialize
}.
384 \wxheading{Include files
}
388 \membersection{::wxYield
}\label{wxyield
}
390 \func{bool
}{wxYield
}{\void}
392 Calls
\helpref{wxApp::Yield
}{wxappyield
}.
394 This function is kept only for backwards compatibility, please use
395 \helpref{wxApp::Yield
}{wxappyield
}method instead in any new code.
397 \wxheading{Include files
}
399 <wx/app.h> or <wx/utils.h>
401 \membersection{::wxWakeUpIdle
}\label{wxwakeupidle
}
403 \func{void
}{wxWakeUpIdle
}{\void}
405 This functions wakes up the (internal and platform dependent) idle system, i.e. it
406 will force the system to send an idle event even if the system currently
{\it is
}
407 idle and thus would not send any idle event until after some other event would get
408 sent. This is also useful for sending events between two threads and is used by
409 the corresponding functions
\helpref{::wxPostEvent
}{wxpostevent
} and
410 \helpref{wxEvtHandler::AddPendingEvent
}{wxevthandleraddpendingevent
}.
412 \wxheading{Include files
}
416 \section{Process control functions
}\label{processfunctions
}
418 The functions in this section are used to launch or terminate the other
421 \membersection{::wxExecute
}\label{wxexecute
}
423 \func{long
}{wxExecute
}{\param{const wxString\&
}{command
},
\param{bool
}{sync = FALSE
},
\param{wxProcess *
}{callback = NULL
}}
425 \func{long
}{wxExecute
}{\param{char **
}{argv
},
\param{bool
}{sync = FALSE
},
\param{wxProcess *
}{callback = NULL
}}
427 \func{long
}{wxExecute
}{\param{const wxString\&
}{command
},
\param{wxArrayString\&
}{output
}}
429 \func{long
}{wxExecute
}{\param{const wxString\&
}{command
},
\param{wxArrayString\&
}{output
},
\param{wxArrayString\&
}{errors
}}
431 Executes another program in Unix or Windows.
433 The first form takes a command string, such as
{\tt "emacs file.txt"
}.
435 The second form takes an array of values: a command, any number of
436 arguments, terminated by NULL.
438 The semantics of the third and fourth versions is different from the first two
439 and is described in more details below.
441 If
{\it sync
} is FALSE (the default), flow of control immediately returns.
442 If TRUE, the current application waits until the other program has terminated.
444 In the case of synchronous execution, the return value is the exit code of
445 the process (which terminates by the moment the function returns) and will be
446 $-
1$ if the process couldn't be started and typically
0 if the process
447 terminated successfully. Also, while waiting for the process to
448 terminate, wxExecute will call
\helpref{wxYield
}{wxyield
}. The caller
449 should ensure that this can cause no recursion, in the simplest case by
450 calling
\helpref{wxEnableTopLevelWindows(FALSE)
}{wxenabletoplevelwindows
}.
452 For asynchronous execution, however, the return value is the process id and
453 zero value indicates that the command could not be executed. As an added
454 complication, the return value of $-
1$ in this case indicattes that we didn't
455 launch a new process, but connected to the running one (this can only happen in
456 case of using DDE under Windows for command execution). In particular, in this,
457 and only this, case the calling code will not get the notification about
460 If callback isn't NULL and if execution is asynchronous (note that callback
461 parameter can not be non-NULL for synchronous execution),
462 \helpref{wxProcess::OnTerminate
}{wxprocessonterminate
} will be called when
463 the process finishes.
465 Finally, you may use the third overloaded version of this function to execute
466 a process (always synchronously) and capture its output in the array
467 {\it output
}. The fourth version adds the possibility to additionally capture
468 the messages from standard error output in the
{\it errors
} array.
470 See also
\helpref{wxShell
}{wxshell
},
\helpref{wxProcess
}{wxprocess
},
471 \helpref{Exec sample
}{sampleexec
}.
473 \wxheading{Include files
}
477 \membersection{::wxExit
}\label{wxexit
}
479 \func{void
}{wxExit
}{\void}
481 Exits application after calling
\helpref{wxApp::OnExit
}{wxapponexit
}.
482 Should only be used in an emergency: normally the top-level frame
483 should be deleted (after deleting all other frames) to terminate the
484 application. See
\helpref{wxWindow::OnCloseWindow
}{wxwindowonclosewindow
} and
\helpref{wxApp
}{wxapp
}.
486 \wxheading{Include files
}
490 \membersection{::wxKill
}\label{wxkill
}
492 \func{int
}{wxKill
}{\param{long
}{ pid
},
\param{int
}{ sig = wxSIGTERM
},
\param{wxKillError
}{*rc = NULL
}}
494 Equivalent to the Unix kill function: send the given signal
{\it sig
} to the
495 process with PID
{\it pid
}. The valud signal values are
500 wxSIGNONE =
0, // verify if the process exists under Unix
509 wxSIGKILL, // forcefully kill, dangerous!
515 wxSIGTERM // terminate the process gently
519 {\tt wxSIGNONE
},
{\tt wxSIGKILL
} and
{\tt wxSIGTERM
} have the same meaning
520 under both Unix and Windows but all the other signals are equivalent to
521 {\tt wxSIGTERM
} under Windows.
523 Returns
0 on success, -
1 on failure. If
{\it rc
} parameter is not NULL, it will
524 be filled with an element of
{\tt wxKillError
} enum:
529 wxKILL_OK, // no error
530 wxKILL_BAD_SIGNAL, // no such signal
531 wxKILL_ACCESS_DENIED, // permission denied
532 wxKILL_NO_PROCESS, // no such process
533 wxKILL_ERROR // another, unspecified error
539 \helpref{wxProcess::Kill
}{wxprocesskill
},
\rtfsp
540 \helpref{wxProcess::Exists
}{wxprocessexists
},
\rtfsp
541 \helpref{Exec sample
}{sampleexec
}
543 \wxheading{Include files
}
547 \membersection{::wxShell
}\label{wxshell
}
549 \func{bool
}{wxShell
}{\param{const wxString\&
}{command = NULL
}}
551 Executes a command in an interactive shell window. If no command is
552 specified, then just the shell is spawned.
554 See also
\helpref{wxExecute
}{wxexecute
},
\helpref{Exec sample
}{sampleexec
}.
556 \wxheading{Include files
}
561 \section{Thread functions
}\label{threadfunctions
}
563 \wxheading{Include files
}
569 \helpref{wxThread
}{wxthread
},
\helpref{wxMutex
}{wxmutex
},
\helpref{Multithreading overview
}{wxthreadoverview
}
571 \membersection{::wxMutexGuiEnter
}\label{wxmutexguienter
}
573 \func{void
}{wxMutexGuiEnter
}{\void}
575 This function must be called when any thread other than the main GUI thread
576 wants to get access to the GUI library. This function will block the execution
577 of the calling thread until the main thread (or any other thread holding the
578 main GUI lock) leaves the GUI library and no other thread will enter the GUI
579 library until the calling thread calls
\helpref{::wxMutexGuiLeave()
}{wxmutexguileave
}.
581 Typically, these functions are used like this:
584 void MyThread::Foo(void)
586 // before doing any GUI calls we must ensure that this thread is the only
592 my_window->DrawSomething();
598 Note that under GTK, no creation of top-level windows is allowed in any
599 thread but the main one.
601 This function is only defined on platforms which support preemptive
604 \membersection{::wxMutexGuiLeave
}\label{wxmutexguileave
}
606 \func{void
}{wxMutexGuiLeave
}{\void}
608 See
\helpref{::wxMutexGuiEnter()
}{wxmutexguienter
}.
610 This function is only defined on platforms which support preemptive
613 \section{File functions
}\label{filefunctions
}
615 \wxheading{Include files
}
621 \helpref{wxPathList
}{wxpathlist
}\\
622 \helpref{wxDir
}{wxdir
}\\
623 \helpref{wxFile
}{wxfile
}\\
624 \helpref{wxFileName
}{wxfilename
}
626 \membersection{::wxDirExists
}\label{wxdirexists
}
628 \func{bool
}{wxDirExists
}{\param{const wxString\&
}{dirname
}}
630 Returns TRUE if the directory exists.
632 \membersection{::wxDos2UnixFilename
}\label{wxdos2unixfilename
}
634 \func{void
}{wxDos2UnixFilename
}{\param{wxChar *
}{s
}}
636 Converts a DOS to a Unix filename by replacing backslashes with forward
639 \membersection{::wxFileExists
}\label{wxfileexists
}
641 \func{bool
}{wxFileExists
}{\param{const wxString\&
}{filename
}}
643 Returns TRUE if the file exists. It also returns TRUE if the file is
646 \membersection{::wxFileModificationTime
}\label{wxfilemodificationtime
}
648 \func{time
\_t}{wxFileModificationTime
}{\param{const wxString\&
}{filename
}}
650 Returns time of last modification of given file.
652 \membersection{::wxFileNameFromPath
}\label{wxfilenamefrompath
}
654 \func{wxString
}{wxFileNameFromPath
}{\param{const wxString\&
}{path
}}
656 \func{char*
}{wxFileNameFromPath
}{\param{char*
}{path
}}
658 Returns the filename for a full path. The second form returns a pointer to
659 temporary storage that should not be deallocated.
661 \membersection{::wxFindFirstFile
}\label{wxfindfirstfile
}
663 \func{wxString
}{wxFindFirstFile
}{\param{const char*
}{spec
},
\param{int
}{ flags =
0}}
665 This function does directory searching; returns the first file
666 that matches the path
{\it spec
}, or the empty string. Use
\helpref{wxFindNextFile
}{wxfindnextfile
} to
667 get the next matching file. Neither will
report the current directory "." or the
668 parent directory "..".
670 {\it spec
} may contain wildcards.
672 {\it flags
} may be wxDIR for restricting the query to directories, wxFILE for files or zero for either.
677 wxString f = wxFindFirstFile("/home/project/*.*");
678 while ( !f.IsEmpty() )
681 f = wxFindNextFile();
685 \membersection{::wxFindNextFile
}\label{wxfindnextfile
}
687 \func{wxString
}{wxFindNextFile
}{\void}
689 Returns the next file that matches the path passed to
\helpref{wxFindFirstFile
}{wxfindfirstfile
}.
691 See
\helpref{wxFindFirstFile
}{wxfindfirstfile
} for an example.
693 \membersection{::wxGetDiskSpace
}\label{wxgetdiskspace
}
695 \func{bool
}{wxGetDiskSpace
}{\param{const wxString\&
}{path
},
\param{wxLongLong
}{*total = NULL
},
\param{wxLongLong
}{*free = NULL
}}
697 This function returns the total number of bytes and number of free bytes on
698 the disk containing the directory
{\it path
} (it should exist). Both
699 {\it total
} and
{\it free
} parameters may be
{\tt NULL
} if the corresponding
700 information is not needed.
704 {\tt TRUE
} on success,
{\tt FALSE
} if an error occured (for example, the
705 directory doesn't exist).
707 \wxheading{Portability
}
709 This function is implemented for Win16 (only for drives less than
2Gb), Win32,
710 Mac OS and generic Unix provided the system has
{\tt statfs()
} function.
712 This function first appeared in wxWindows
2.3.2.
714 \membersection{::wxGetOSDirectory
}\label{wxgetosdirectory
}
716 \func{wxString
}{wxGetOSDirectory
}{\void}
718 Returns the Windows directory under Windows; on other platforms returns the empty string.
720 \membersection{::wxIsAbsolutePath
}\label{wxisabsolutepath
}
722 \func{bool
}{wxIsAbsolutePath
}{\param{const wxString\&
}{filename
}}
724 Returns TRUE if the argument is an absolute filename, i.e. with a slash
725 or drive name at the beginning.
727 \membersection{::wxPathOnly
}\label{wxpathonly
}
729 \func{wxString
}{wxPathOnly
}{\param{const wxString\&
}{path
}}
731 Returns the directory part of the filename.
733 \membersection{::wxUnix2DosFilename
}\label{wxunix2dosfilename
}
735 \func{void
}{wxUnix2DosFilename
}{\param{const wxString\&
}{s
}}
737 Converts a Unix to a DOS filename by replacing forward
738 slashes with backslashes.
740 \membersection{::wxConcatFiles
}\label{wxconcatfiles
}
742 \func{bool
}{wxConcatFiles
}{\param{const wxString\&
}{file1
},
\param{const wxString\&
}{file2
},
743 \param{const wxString\&
}{file3
}}
745 Concatenates
{\it file1
} and
{\it file2
} to
{\it file3
}, returning
748 \membersection{::wxCopyFile
}\label{wxcopyfile
}
750 \func{bool
}{wxCopyFile
}{\param{const wxString\&
}{file1
},
\param{const wxString\&
}{file2
},
\param{bool
}{overwrite = TRUE
}}
752 Copies
{\it file1
} to
{\it file2
}, returning TRUE if successful. If
753 {\it overwrite
} parameter is TRUE (default), the destination file is overwritten
754 if it exists, but if
{\it overwrite
} is FALSE, the functions failes in this
757 \membersection{::wxGetCwd
}\label{wxgetcwd
}
759 \func{wxString
}{wxGetCwd
}{\void}
761 Returns a string containing the current (or working) directory.
763 \membersection{::wxGetWorkingDirectory
}\label{wxgetworkingdirectory
}
765 \func{wxString
}{wxGetWorkingDirectory
}{\param{char*
}{buf=NULL
},
\param{int
}{sz=
1000}}
767 This function is obsolete: use
\helpref{wxGetCwd
}{wxgetcwd
} instead.
769 Copies the current working directory into the buffer if supplied, or
770 copies the working directory into new storage (which you must delete yourself)
771 if the buffer is NULL.
773 {\it sz
} is the size of the buffer if supplied.
775 \membersection{::wxGetTempFileName
}\label{wxgettempfilename
}
777 \func{char*
}{wxGetTempFileName
}{\param{const wxString\&
}{prefix
},
\param{char*
}{buf=NULL
}}
779 \func{bool
}{wxGetTempFileName
}{\param{const wxString\&
}{prefix
},
\param{wxString\&
}{buf
}}
781 %% Makes a temporary filename based on {\it prefix}, opens and closes the file,
782 %% and places the name in {\it buf}. If {\it buf} is NULL, new store
783 %% is allocated for the temporary filename using {\it new}.
785 %% Under Windows, the filename will include the drive and name of the
786 %% directory allocated for temporary files (usually the contents of the
787 %% TEMP variable). Under Unix, the {\tt /tmp} directory is used.
789 %% It is the application's responsibility to create and delete the file.
791 These functions are obsolete, please use
\rtfsp
792 \helpref{wxFileName::CreateTempFileName
}{wxfilenamecreatetempfilename
}\rtfsp
795 \membersection{::wxIsWild
}\label{wxiswild
}
797 \func{bool
}{wxIsWild
}{\param{const wxString\&
}{pattern
}}
799 Returns TRUE if the pattern contains wildcards. See
\helpref{wxMatchWild
}{wxmatchwild
}.
801 \membersection{::wxMatchWild
}\label{wxmatchwild
}
803 \func{bool
}{wxMatchWild
}{\param{const wxString\&
}{pattern
},
\param{const wxString\&
}{text
},
\param{bool
}{ dot
\_special}}
805 Returns TRUE if the
{\it pattern
}\/ matches the
{\it text
}\/; if
{\it
806 dot
\_special}\/ is TRUE, filenames beginning with a dot are not matched
807 with wildcard characters. See
\helpref{wxIsWild
}{wxiswild
}.
809 \membersection{::wxMkdir
}\label{wxmkdir
}
811 \func{bool
}{wxMkdir
}{\param{const wxString\&
}{dir
},
\param{int
}{perm =
0777}}
813 Makes the directory
{\it dir
}, returning TRUE if successful.
815 {\it perm
} is the access mask for the directory for the systems on which it is
816 supported (Unix) and doesn't have effect for the other ones.
818 \membersection{::wxRemoveFile
}\label{wxremovefile
}
820 \func{bool
}{wxRemoveFile
}{\param{const wxString\&
}{file
}}
822 Removes
{\it file
}, returning TRUE if successful.
824 \membersection{::wxRenameFile
}\label{wxrenamefile
}
826 \func{bool
}{wxRenameFile
}{\param{const wxString\&
}{file1
},
\param{const wxString\&
}{file2
}}
828 Renames
{\it file1
} to
{\it file2
}, returning TRUE if successful.
830 \membersection{::wxRmdir
}\label{wxrmdir
}
832 \func{bool
}{wxRmdir
}{\param{const wxString\&
}{dir
},
\param{int
}{ flags=
0}}
834 Removes the directory
{\it dir
}, returning TRUE if successful. Does not work under VMS.
836 The
{\it flags
} parameter is reserved for future use.
838 \membersection{::wxSetWorkingDirectory
}\label{wxsetworkingdirectory
}
840 \func{bool
}{wxSetWorkingDirectory
}{\param{const wxString\&
}{dir
}}
842 Sets the current working directory, returning TRUE if the operation succeeded.
843 Under MS Windows, the current drive is also changed if
{\it dir
} contains a drive specification.
845 \membersection{::wxSplitPath
}\label{wxsplitfunction
}
847 \func{void
}{wxSplitPath
}{\param{const char *
}{ fullname
},
\param{wxString *
}{ path
},
\param{wxString *
}{ name
},
\param{wxString *
}{ ext
}}
849 This function splits a full file name into components: the path (including possible disk/drive
850 specification under Windows), the base name and the extension. Any of the output parameters
851 (
{\it path
},
{\it name
} or
{\it ext
}) may be NULL if you are not interested in the value of
852 a particular component.
854 wxSplitPath() will correctly handle filenames with both DOS and Unix path separators under
855 Windows, however it will not consider backslashes as path separators under Unix (where backslash
856 is a valid character in a filename).
858 On entry,
{\it fullname
} should be non-NULL (it may be empty though).
860 On return,
{\it path
} contains the file path (without the trailing separator),
{\it name
}
861 contains the file name and
{\it ext
} contains the file extension without leading dot. All
862 three of them may be empty if the corresponding component is. The old contents of the
863 strings pointed to by these parameters will be overwritten in any case (if the pointers
866 \membersection{::wxTransferFileToStream
}\label{wxtransferfiletostream
}
868 \func{bool
}{wxTransferFileToStream
}{\param{const wxString\&
}{filename
},
\param{ostream\&
}{stream
}}
870 Copies the given file to
{\it stream
}. Useful when converting an old application to
871 use streams (within the
document/view framework, for example).
873 \wxheading{Include files
}
877 \membersection{::wxTransferStreamToFile
}\label{wxtransferstreamtofile
}
879 \func{bool
}{wxTransferStreamToFile
}{\param{istream\&
}{stream
} \param{const wxString\&
}{filename
}}
881 Copies the given stream to the file
{\it filename
}. Useful when converting an old application to
882 use streams (within the
document/view framework, for example).
884 \wxheading{Include files
}
888 \section{Network, user and OS functions
}\label{networkfunctions
}
890 The functions in this section are used to retrieve information about the
891 current computer and/or user characteristics.
893 \membersection{::wxGetFreeMemory
}\label{wxgetfreememory
}
895 \func{long
}{wxGetFreeMemory
}{\void}
897 Returns the amount of free memory in bytes under environments which
898 support it, and -
1 if not supported. Currently, it is supported only
899 under Windows, Linux and Solaris.
901 \wxheading{Include files
}
905 \membersection{::wxGetFullHostName
}\label{wxgetfullhostname
}
907 \func{wxString
}{wxGetFullHostName
}{\void}
909 Returns the FQDN (fully qualified domain host name) or an empty string on
914 \helpref{wxGetHostName
}{wxgethostname
}
916 \wxheading{Include files
}
920 \membersection{::wxGetEmailAddress
}\label{wxgetemailaddress
}
922 \func{bool
}{wxGetEmailAddress
}{\param{const wxString\&
}{buf
},
\param{int
}{sz
}}
924 Copies the user's email address into the supplied buffer, by
925 concatenating the values returned by
\helpref{wxGetFullHostName
}{wxgetfullhostname
}\rtfsp
926 and
\helpref{wxGetUserId
}{wxgetuserid
}.
928 Returns TRUE if successful, FALSE otherwise.
930 \wxheading{Include files
}
934 \membersection{::wxGetHomeDir
}\label{wxgethomedir
}
936 \func{wxString
}{wxGetHomeDir
}{\void}
938 Return the (current) user's home directory.
942 \helpref{wxGetUserHome
}{wxgetuserhome
}
944 \wxheading{Include files
}
948 \membersection{::wxGetHostName
}\label{wxgethostname
}
950 \func{wxString
}{wxGetHostName
}{\void}
952 \func{bool
}{wxGetHostName
}{\param{char *
}{buf
},
\param{int
}{sz
}}
954 Copies the current host machine's name into the supplied buffer. Please note
955 that the returned name is
{\it not
} fully qualified, i.e. it does not include
958 Under Windows or NT, this function first looks in the environment
959 variable SYSTEM
\_NAME; if this is not found, the entry
{\bf HostName
}\rtfsp
960 in the
{\bf wxWindows
} section of the WIN.INI file is tried.
962 The first variant of this function returns the hostname if successful or an
963 empty string otherwise. The second (deprecated) function returns TRUE
964 if successful, FALSE otherwise.
968 \helpref{wxGetFullHostName
}{wxgetfullhostname
}
970 \wxheading{Include files
}
974 \membersection{::wxGetUserId
}\label{wxgetuserid
}
976 \func{wxString
}{wxGetUserId
}{\void}
978 \func{bool
}{wxGetUserId
}{\param{char *
}{buf
},
\param{int
}{sz
}}
980 This function returns the "user id" also known as "login name" under Unix i.e.
981 something like "jsmith". It uniquely identifies the current user (on this system).
983 Under Windows or NT, this function first looks in the environment
984 variables USER and LOGNAME; if neither of these is found, the entry
{\bf UserId
}\rtfsp
985 in the
{\bf wxWindows
} section of the WIN.INI file is tried.
987 The first variant of this function returns the login name if successful or an
988 empty string otherwise. The second (deprecated) function returns TRUE
989 if successful, FALSE otherwise.
993 \helpref{wxGetUserName
}{wxgetusername
}
995 \wxheading{Include files
}
999 \membersection{::wxGetOsDescription
}\label{wxgetosdescription
}
1001 \func{wxString
}{wxGetOsDescription
}{\void}
1003 Returns the string containing the description of the current platform in a
1004 user-readable form. For example, this function may return strings like
1005 {\tt Windows NT Version
4.0} or
{\tt Linux
2.2.2 i386
}.
1007 \wxheading{See also
}
1009 \helpref{::wxGetOsVersion
}{wxgetosversion
}
1011 \wxheading{Include files
}
1015 \membersection{::wxGetOsVersion
}\label{wxgetosversion
}
1017 \func{int
}{wxGetOsVersion
}{\param{int *
}{major = NULL
},
\param{int *
}{minor = NULL
}}
1019 Gets operating system version information.
1021 \begin{twocollist
}\itemsep=
0pt
1022 \twocolitemruled{Platform
}{Return types
}
1023 \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.
}
1024 \twocolitem{GTK
}{Return value is wxGTK, For GTK
1.0,
{\it major
} is
1,
{\it minor
} is
0.
}
1025 \twocolitem{Motif
}{Return value is wxMOTIF
\_X,
{\it major
} is X version,
{\it minor
} is X revision.
}
1026 \twocolitem{OS/
2}{Return value is wxOS2
\_PM.
}
1027 \twocolitem{Windows
3.1}{Return value is wxWINDOWS,
{\it major
} is
3,
{\it minor
} is
1.
}
1028 \twocolitem{Windows NT/
2000}{Return value is wxWINDOWS
\_NT, version is returned in
{\it major
} and
{\it minor
}}
1029 \twocolitem{Windows
98}{Return value is wxWIN95,
{\it major
} is
4,
{\it minor
} is
1 or greater.
}
1030 \twocolitem{Windows
95}{Return value is wxWIN95,
{\it major
} is
4,
{\it minor
} is
0.
}
1031 \twocolitem{Win32s (Windows
3.1)
}{Return value is wxWIN32S,
{\it major
} is
3,
{\it minor
} is
1.
}
1032 \twocolitem{Watcom C++
386 supervisor mode (Windows
3.1)
}{Return value is wxWIN386,
{\it major
} is
3,
{\it minor
} is
1.
}
1035 \wxheading{See also
}
1037 \helpref{::wxGetOsDescription
}{wxgetosdescription
}
1039 \wxheading{Include files
}
1043 \membersection{::wxGetUserHome
}\label{wxgetuserhome
}
1045 \func{const wxChar *
}{wxGetUserHome
}{\param{const wxString\&
}{user = ""
}}
1047 Returns the home directory for the given user. If the username is empty
1048 (default value), this function behaves like
1049 \helpref{wxGetHomeDir
}{wxgethomedir
}.
1051 \wxheading{Include files
}
1055 \membersection{::wxGetUserName
}\label{wxgetusername
}
1057 \func{wxString
}{wxGetUserName
}{\void}
1059 \func{bool
}{wxGetUserName
}{\param{char *
}{buf
},
\param{int
}{sz
}}
1061 This function returns the full user name (something like "Mr. John Smith").
1063 Under Windows or NT, this function looks for the entry
{\bf UserName
}\rtfsp
1064 in the
{\bf wxWindows
} section of the WIN.INI file. If PenWindows
1065 is running, the entry
{\bf Current
} in the section
{\bf User
} of
1066 the PENWIN.INI file is used.
1068 The first variant of this function returns the user name if successful or an
1069 empty string otherwise. The second (deprecated) function returns
{\tt TRUE
}
1070 if successful,
{\tt FALSE
} otherwise.
1072 \wxheading{See also
}
1074 \helpref{wxGetUserId
}{wxgetuserid
}
1076 \wxheading{Include files
}
1080 \section{String functions
}
1082 \membersection{::copystring
}\label{copystring
}
1084 \func{char*
}{copystring
}{\param{const char*
}{s
}}
1086 Makes a copy of the string
{\it s
} using the C++ new operator, so it can be
1087 deleted with the
{\it delete
} operator.
1089 This function is deprecated, use
\helpref{wxString
}{wxstring
} class instead.
1091 \membersection{::wxIsEmpty
}\label{wxisempty
}
1093 \func{bool
}{wxIsEmpty
}{\param{const char *
}{ p
}}
1095 Returns
{\tt TRUE
} if the pointer is either
{\tt NULL
} or points to an empty
1096 string,
{\tt FALSE
} otherwise.
1098 \membersection{::wxStricmp
}\label{wxstricmp
}
1100 \func{int
}{wxStricmp
}{\param{const char *
}{p1
},
\param{const char *
}{p2
}}
1102 Returns a negative value,
0, or positive value if
{\it p1
} is less than, equal
1103 to or greater than
{\it p2
}. The comparison is case-insensitive.
1105 This function complements the standard C function
{\it strcmp()
} which performs
1106 case-sensitive comparison.
1108 \membersection{::wxStringMatch
}\label{wxstringmatch
}
1110 \func{bool
}{wxStringMatch
}{\param{const wxString\&
}{s1
},
\param{const wxString\&
}{s2
},\\
1111 \param{bool
}{ subString = TRUE
},
\param{bool
}{ exact = FALSE
}}
1113 Returns
{\tt TRUE
} if the substring
{\it s1
} is found within
{\it s2
},
1114 ignoring case if
{\it exact
} is FALSE. If
{\it subString
} is
{\tt FALSE
},
1115 no substring matching is done.
1117 This function is obsolete, use
\helpref{wxString::Find
}{wxstringfind
} instead.
1119 \membersection{::wxStringEq
}\label{wxstringeq
}
1121 \func{bool
}{wxStringEq
}{\param{const wxString\&
}{s1
},
\param{const wxString\&
}{s2
}}
1126 #define wxStringEq(s1, s2) (s1 && s2 && (strcmp(s1, s2) ==
0))
1129 This function is obsolete, use
\helpref{wxString
}{wxstring
} instead.
1131 \membersection{::wxStrlen
}\label{wxstrlen
}
1133 \func{size
\_t}{wxStrlen
}{\param{const char *
}{ p
}}
1135 This is a safe version of standard function
{\it strlen()
}: it does exactly the
1136 same thing (i.e. returns the length of the string) except that it returns
0 if
1137 {\it p
} is the
{\tt NULL
} pointer.
1139 \membersection{::wxGetTranslation
}\label{wxgettranslation
}
1141 \func{const char *
}{wxGetTranslation
}{\param{const char *
}{str
}}
1143 This function returns the translation of string
{\it str
} in the current
1144 \helpref{locale
}{wxlocale
}. If the string is not found in any of the loaded
1145 message catalogs (see
\helpref{internationalization overview
}{internationalization
}), the
1146 original string is returned. In debug build, an error message is logged - this
1147 should help to find the strings which were not yet translated. As this function
1148 is used very often, an alternative syntax is provided: the
\_() macro is
1149 defined as wxGetTranslation().
1151 \membersection{::wxSnprintf
}\label{wxsnprintf
}
1153 \func{int
}{wxSnprintf
}{\param{wxChar *
}{buf
},
\param{size
\_t }{len
},
\param{const wxChar *
}{format
},
\param{}{...
}}
1155 This function replaces the dangerous standard function
{\tt sprintf()
} and is
1156 like
{\tt snprintf()
} available on some platforms. The only difference with
1157 sprintf() is that an additional argument - buffer size - is taken and the
1158 buffer is never overflowed.
1160 Returns the number of characters copied to the buffer or -
1 if there is not
1163 \wxheading{See also
}
1165 \helpref{wxVsnprintf
}{wxvsnprintf
},
\helpref{wxString::Printf
}{wxstringprintf
}
1167 \membersection{::wxToLower
}\label{wxtolower
}
1169 \func{char
}{wxToLower
}{\param{char
}{ch
}}
1171 Converts the character to lower case. This is implemented as a macro for efficiency.
1173 \wxheading{Include files
}
1177 \membersection{::wxToUpper
}\label{wxtoupper
}
1179 \func{char
}{wxToUpper
}{\param{char
}{ch
}}
1181 Converts the character to upper case. This is implemented as a macro for efficiency.
1183 \wxheading{Include files
}
1187 \membersection{::wxVsnprintf
}\label{wxvsnprintf
}
1189 \func{int
}{wxVsnprintf
}{\param{wxChar *
}{buf
},
\param{size
\_t }{len
},
\param{const wxChar *
}{format
},
\param{va
\_list }{argPtr
}}
1191 The same as
\helpref{wxSnprintf
}{wxsnprintf
} but takes a
{\tt va
\_list}
1192 argument instead of arbitrary number of parameters.
1194 \wxheading{See also
}
1196 \helpref{wxSnprintf
}{wxsnprintf
},
\helpref{wxString::PrintfV
}{wxstringprintfv
}
1198 \section{Dialog functions
}\label{dialogfunctions
}
1200 Below are a number of convenience functions for getting input from the
1201 user or displaying messages. Note that in these functions the last three
1202 parameters are optional. However, it is recommended to pass a parent frame
1203 parameter, or (in MS Windows or Motif) the wrong window frame may be brought to
1204 the front when the dialog box is popped up.
1206 \membersection{::wxBeginBusyCursor
}\label{wxbeginbusycursor
}
1208 \func{void
}{wxBeginBusyCursor
}{\param{wxCursor *
}{cursor = wxHOURGLASS
\_CURSOR}}
1210 Changes the cursor to the given cursor for all windows in the application.
1211 Use
\helpref{wxEndBusyCursor
}{wxendbusycursor
} to revert the cursor back
1212 to its previous state. These two calls can be nested, and a counter
1213 ensures that only the outer calls take effect.
1215 See also
\helpref{wxIsBusy
}{wxisbusy
},
\helpref{wxBusyCursor
}{wxbusycursor
}.
1217 \wxheading{Include files
}
1221 \membersection{::wxBell
}\label{wxbell
}
1223 \func{void
}{wxBell
}{\void}
1225 Ring the system bell.
1227 \wxheading{Include files
}
1231 \membersection{::wxCreateFileTipProvider
}\label{wxcreatefiletipprovider
}
1233 \func{wxTipProvider *
}{wxCreateFileTipProvider
}{\param{const wxString\&
}{filename
},
1234 \param{size
\_t }{currentTip
}}
1236 This function creates a
\helpref{wxTipProvider
}{wxtipprovider
} which may be
1237 used with
\helpref{wxShowTip
}{wxshowtip
}.
1239 \docparam{filename
}{The name of the file containing the tips, one per line
}
1240 \docparam{currentTip
}{The index of the first tip to show - normally this index
1241 is remembered between the
2 program runs.
}
1243 \wxheading{See also
}
1245 \helpref{Tips overview
}{tipsoverview
}
1247 \wxheading{Include files
}
1251 \membersection{::wxDirSelector
}\label{wxdirselector
}
1253 \func{wxString
}{wxDirSelector
}{\param{const wxString\&
}{message = wxDirSelectorPromptStr
},\\
1254 \param{const wxString\&
}{default
\_path = ""
},\\
1255 \param{long
}{style =
0},
\param{const wxPoint\&
}{pos = wxDefaultPosition
},\\
1256 \param{wxWindow *
}{parent = NULL
}}
1258 Pops up a directory selector dialog. The arguments have the same meaning as
1259 those of wxDirDialog::wxDirDialog(). The message is displayed at the top,
1260 and the default
\_path, if specified, is set as the initial selection.
1262 The application must check for an empty return value (if the user pressed
1263 Cancel). For example:
1266 const wxString& dir = wxDirSelector("Choose a folder");
1273 \wxheading{Include files
}
1277 \membersection{::wxFileSelector
}\label{wxfileselector
}
1279 \func{wxString
}{wxFileSelector
}{\param{const wxString\&
}{message
},
\param{const wxString\&
}{default
\_path = ""
},\\
1280 \param{const wxString\&
}{default
\_filename = ""
},
\param{const wxString\&
}{default
\_extension = ""
},\\
1281 \param{const wxString\&
}{wildcard = ``*.*''
},
\param{int
}{flags =
0},
\param{wxWindow *
}{parent = ""
},\\
1282 \param{int
}{ x = -
1},
\param{int
}{ y = -
1}}
1284 Pops up a file selector box. In Windows, this is the common file selector
1285 dialog. In X, this is a file selector box with the same functionality.
1286 The path and filename are distinct elements of a full file pathname.
1287 If path is empty, the current directory will be used. If filename is empty,
1288 no default filename will be supplied. The wildcard determines what files
1289 are displayed in the file selector, and file extension supplies a type
1290 extension for the required filename. Flags may be a combination of wxOPEN,
1291 wxSAVE, wxOVERWRITE
\_PROMPT, wxHIDE
\_READONLY, wxFILE
\_MUST\_EXIST, wxMULTIPLE or
0.
1293 Both the Unix and Windows versions implement a wildcard filter. Typing a
1294 filename containing wildcards
(*, ?) in the filename text item, and
1295 clicking on Ok, will result in only those files matching the pattern being
1298 The wildcard may be a specification for multiple types of file
1299 with a description for each, such as:
1302 "BMP files (*.bmp)|*.bmp|GIF files (*.gif)|*.gif"
1305 The application must check for an empty return value (the user pressed
1306 Cancel). For example:
1309 const wxString& s = wxFileSelector("Choose a file to open");
1316 \wxheading{Include files}
1320 \membersection{::wxEndBusyCursor}\label{wxendbusycursor}
1322 \func{void}{wxEndBusyCursor}{\void}
1324 Changes the cursor back to the original cursor, for all windows in the application.
1325 Use with \helpref{wxBeginBusyCursor}{wxbeginbusycursor}.
1327 See also \helpref{wxIsBusy}{wxisbusy}, \helpref{wxBusyCursor}{wxbusycursor}.
1329 \wxheading{Include files}
1333 \membersection{::wxGetColourFromUser}\label{wxgetcolourfromuser}
1335 \func{wxColour}{wxGetColourFromUser}{\param{wxWindow *}{parent}, \param{const wxColour\& }{colInit}}
1337 Shows the colour selection dialog and returns the colour selected by user or
1338 invalid colour (use \helpref{wxColour::Ok}{wxcolourok} to test whether a colour
1339 is valid) if the dialog was cancelled.
1341 \wxheading{Parameters}
1343 \docparam{parent}{The parent window for the colour selection dialog}
1345 \docparam{colInit}{If given, this will be the colour initially selected in the dialog.}
1347 \wxheading{Include files}
1351 \membersection{::wxGetMultipleChoices}\label{wxgetmultiplechoices}
1353 \func{size\_t}{wxGetMultipleChoices}{\\
1354 \param{wxArrayInt\& }{selections},\\
1355 \param{const wxString\& }{message},\\
1356 \param{const wxString\& }{caption},\\
1357 \param{const wxArrayString\& }{aChoices},\\
1358 \param{wxWindow *}{parent = NULL},\\
1359 \param{int}{ x = -1}, \param{int}{ y = -1},\\
1360 \param{bool}{ centre = TRUE},\\
1361 \param{int }{width=150}, \param{int }{height=200}}
1363 \func{size\_t}{wxGetMultipleChoices}{\\
1364 \param{wxArrayInt\& }{selections},\\
1365 \param{const wxString\& }{message},\\
1366 \param{const wxString\& }{caption},\\
1367 \param{int}{ n}, \param{const wxString\& }{choices[]},\\
1368 \param{wxWindow *}{parent = NULL},\\
1369 \param{int}{ x = -1}, \param{int}{ y = -1},\\
1370 \param{bool}{ centre = TRUE},\\
1371 \param{int }{width=150}, \param{int }{height=200}}
1373 Pops up a dialog box containing a message, OK/Cancel buttons and a
1374 multiple-selection listbox. The user may choose an arbitrary (including 0)
1375 number of items in the listbox whose indices will be returned in
1376 {\it selection} array. The initial contents of this array will be used to
1377 select the items when the dialog is shown.
1379 You may pass the list of strings to choose from either using {\it choices}
1380 which is an array of {\it n} strings for the listbox or by using a single
1381 {\it aChoices} parameter of type \helpref{wxArrayString}{wxarraystring}.
1383 If {\it centre} is TRUE, the message text (which may include new line
1384 characters) is centred; if FALSE, the message is left-justified.
1386 \wxheading{Include files}
1390 \perlnote{In wxPerl there is just an array reference in place of {\tt n}
1391 and {\tt choices}, and no {\tt selections} parameter; the function
1392 returns an array containing the user selections.}
1394 \membersection{::wxGetNumberFromUser}\label{wxgetnumberfromuser}
1396 \func{long}{wxGetNumberFromUser}{
1397 \param{const wxString\& }{message},
1398 \param{const wxString\& }{prompt},
1399 \param{const wxString\& }{caption},
1400 \param{long }{value},
1401 \param{long }{min = 0},
1402 \param{long }{max = 100},
1403 \param{wxWindow *}{parent = NULL},
1404 \param{const wxPoint\& }{pos = wxDefaultPosition}}
1406 Shows a dialog asking the user for numeric input. The dialogs title is set to
1407 {\it caption}, it contains a (possibly) multiline {\it message} above the
1408 single line {\it prompt} and the zone for entering the number.
1410 The number entered must be in the range {\it min}..{\it max} (both of which
1411 should be positive) and {\it value} is the initial value of it. If the user
1412 enters an invalid value or cancels the dialog, the function will return -1.
1414 Dialog is centered on its {\it parent} unless an explicit position is given in
1417 \wxheading{Include files}
1421 \membersection{::wxGetPasswordFromUser}\label{wxgetpasswordfromuser}
1423 \func{wxString}{wxGetTextFromUser}{\param{const wxString\& }{message}, \param{const wxString\& }{caption = ``Input text"},\\
1424 \param{const wxString\& }{default\_value = ``"}, \param{wxWindow *}{parent = NULL}}
1426 Similar to \helpref{wxGetTextFromUser}{wxgettextfromuser} but the text entered
1427 in the dialog is not shown on screen but replaced with stars. This is intended
1428 to be used for entering passwords as the function name implies.
1430 \wxheading{Include files}
1434 \membersection{::wxGetTextFromUser}\label{wxgettextfromuser}
1436 \func{wxString}{wxGetTextFromUser}{\param{const wxString\& }{message}, \param{const wxString\& }{caption = ``Input text"},\\
1437 \param{const wxString\& }{default\_value = ``"}, \param{wxWindow *}{parent = NULL},\\
1438 \param{int}{ x = -1}, \param{int}{ y = -1}, \param{bool}{ centre = TRUE}}
1440 Pop up a dialog box with title set to {\it caption}, {\it message}, and a
1441 \rtfsp{\it default\_value}. The user may type in text and press OK to return this text,
1442 or press Cancel to return the empty string.
1444 If {\it centre} is TRUE, the message text (which may include new line characters)
1445 is centred; if FALSE, the message is left-justified.
1447 \wxheading{Include files}
1451 \membersection{::wxGetMultipleChoice}\label{wxgetmultiplechoice}
1453 \func{int}{wxGetMultipleChoice}{\param{const wxString\& }{message}, \param{const wxString\& }{caption}, \param{int}{ n}, \param{const wxString\& }{choices[]},\\
1454 \param{int }{nsel}, \param{int *}{selection},
1455 \param{wxWindow *}{parent = NULL}, \param{int}{ x = -1}, \param{int}{ y = -1},\\
1456 \param{bool}{ centre = TRUE}, \param{int }{width=150}, \param{int }{height=200}}
1458 Pops up a dialog box containing a message, OK/Cancel buttons and a multiple-selection
1459 listbox. The user may choose one or more item(s) and press OK or Cancel.
1461 The number of initially selected choices, and array of the selected indices,
1462 are passed in; this array will contain the user selections on exit, with
1463 the function returning the number of selections. {\it selection} must be
1464 as big as the number of choices, in case all are selected.
1466 If Cancel is pressed, -1 is returned.
1468 {\it choices} is an array of {\it n} strings for the listbox.
1470 If {\it centre} is TRUE, the message text (which may include new line characters)
1471 is centred; if FALSE, the message is left-justified.
1473 \wxheading{Include files}
1477 \membersection{::wxGetSingleChoice}\label{wxgetsinglechoice}
1479 \func{wxString}{wxGetSingleChoice}{\param{const wxString\& }{message},\\
1480 \param{const wxString\& }{caption},\\
1481 \param{const wxArrayString\& }{aChoices},\\
1482 \param{wxWindow *}{parent = NULL},\\
1483 \param{int}{ x = -1}, \param{int}{ y = -1},\\
1484 \param{bool}{ centre = TRUE},\\
1485 \param{int }{width=150}, \param{int }{height=200}}
1487 \func{wxString}{wxGetSingleChoice}{\param{const wxString\& }{message},\\
1488 \param{const wxString\& }{caption},\\
1489 \param{int}{ n}, \param{const wxString\& }{choices[]},\\
1490 \param{wxWindow *}{parent = NULL},\\
1491 \param{int}{ x = -1}, \param{int}{ y = -1},\\
1492 \param{bool}{ centre = TRUE},\\
1493 \param{int }{width=150}, \param{int }{height=200}}
1495 Pops up a dialog box containing a message, OK/Cancel buttons and a
1496 single-selection listbox. The user may choose an item and press OK to return a
1497 string or Cancel to return the empty string. Use
1498 \helpref{wxGetSingleChoiceIndex}{wxgetsinglechoiceindex} if empty string is a
1499 valid choice and if you want to be able to detect pressing Cancel reliably.
1501 You may pass the list of strings to choose from either using {\it choices}
1502 which is an array of {\it n} strings for the listbox or by using a single
1503 {\it aChoices} parameter of type \helpref{wxArrayString}{wxarraystring}.
1505 If {\it centre} is TRUE, the message text (which may include new line
1506 characters) is centred; if FALSE, the message is left-justified.
1508 \wxheading{Include files}
1512 \perlnote{In wxPerl there is just an array reference in place of {\tt n}
1515 \membersection{::wxGetSingleChoiceIndex}\label{wxgetsinglechoiceindex}
1517 \func{int}{wxGetSingleChoiceIndex}{\param{const wxString\& }{message},\\
1518 \param{const wxString\& }{caption},\\
1519 \param{const wxArrayString\& }{aChoices},\\
1520 \param{wxWindow *}{parent = NULL}, \param{int}{ x = -1}, \param{int}{ y = -1},\\
1521 \param{bool}{ centre = TRUE}, \param{int }{width=150}, \param{int }{height=200}}
1523 \func{int}{wxGetSingleChoiceIndex}{\param{const wxString\& }{message},\\
1524 \param{const wxString\& }{caption},\\
1525 \param{int}{ n}, \param{const wxString\& }{choices[]},\\
1526 \param{wxWindow *}{parent = NULL}, \param{int}{ x = -1}, \param{int}{ y = -1},\\
1527 \param{bool}{ centre = TRUE}, \param{int }{width=150}, \param{int }{height=200}}
1529 As {\bf wxGetSingleChoice} but returns the index representing the selected
1530 string. If the user pressed cancel, -1 is returned.
1532 \wxheading{Include files}
1536 \perlnote{In wxPerl there is just an array reference in place of {\tt n}
1539 \membersection{::wxGetSingleChoiceData}\label{wxgetsinglechoicedata}
1541 \func{wxString}{wxGetSingleChoiceData}{\param{const wxString\& }{message},\\
1542 \param{const wxString\& }{caption},\\
1543 \param{const wxArrayString\& }{aChoices},\\
1544 \param{const wxString\& }{client\_data[]},\\
1545 \param{wxWindow *}{parent = NULL},\\
1546 \param{int}{ x = -1}, \param{int}{ y = -1},\\
1547 \param{bool}{ centre = TRUE}, \param{int }{width=150}, \param{int }{height=200}}
1549 \func{wxString}{wxGetSingleChoiceData}{\param{const wxString\& }{message},\\
1550 \param{const wxString\& }{caption},\\
1551 \param{int}{ n}, \param{const wxString\& }{choices[]},\\
1552 \param{const wxString\& }{client\_data[]},\\
1553 \param{wxWindow *}{parent = NULL},\\
1554 \param{int}{ x = -1}, \param{int}{ y = -1},\\
1555 \param{bool}{ centre = TRUE}, \param{int }{width=150}, \param{int }{height=200}}
1557 As {\bf wxGetSingleChoice} but takes an array of client data pointers
1558 corresponding to the strings, and returns one of these pointers or NULL if
1559 Cancel was pressed. The {\it client\_data} array must have the same number of
1560 elements as {\it choices} or {\it aChoices}!
1562 \wxheading{Include files}
1566 \perlnote{In wxPerl there is just an array reference in place of {\tt n}
1567 and {\tt choices}, and the client data array must have the
1568 same length as the choices array.}
1570 \membersection{::wxIsBusy}\label{wxisbusy}
1572 \func{bool}{wxIsBusy}{\void}
1574 Returns TRUE if between two \helpref{wxBeginBusyCursor}{wxbeginbusycursor} and\rtfsp
1575 \helpref{wxEndBusyCursor}{wxendbusycursor} calls.
1577 See also \helpref{wxBusyCursor}{wxbusycursor}.
1579 \wxheading{Include files}
1583 \membersection{::wxMessageBox}\label{wxmessagebox}
1585 \func{int}{wxMessageBox}{\param{const wxString\& }{message}, \param{const wxString\& }{caption = ``Message"}, \param{int}{ style = wxOK \pipe wxCENTRE},\\
1586 \param{wxWindow *}{parent = NULL}, \param{int}{ x = -1}, \param{int}{ y = -1}}
1588 General purpose message dialog. {\it style} may be a bit list of the
1589 following identifiers:
1591 \begin{twocollist}\itemsep=0pt
1592 \twocolitem{wxYES\_NO}{Puts Yes and No buttons on the message box. May be combined with
1594 \twocolitem{wxCANCEL}{Puts a Cancel button on the message box. May be combined with
1596 \twocolitem{wxOK}{Puts an Ok button on the message box. May be combined with wxCANCEL.}
1597 \twocolitem{wxCENTRE}{Centres the text.}
1598 \twocolitem{wxICON\_EXCLAMATION}{Displays an exclamation mark symbol.}
1599 \twocolitem{wxICON\_HAND}{Displays an error symbol.}
1600 \twocolitem{wxICON\_ERROR}{Displays an error symbol - the same as wxICON\_HAND.}
1601 \twocolitem{wxICON\_QUESTION}{Displays a question mark symbol.}
1602 \twocolitem{wxICON\_INFORMATION}{Displays an information symbol.}
1605 The return value is one of: wxYES, wxNO, wxCANCEL, wxOK.
1611 int answer = wxMessageBox("Quit program?", "Confirm",
1612 wxYES_NO | wxCANCEL, main_frame);
1613 if (answer == wxYES)
1618 {\it message} may contain newline characters, in which case the
1619 message will be split into separate lines, to cater for large messages.
1621 Under Windows, the native MessageBox function is used unless wxCENTRE
1622 is specified in the style, in which case a generic function is used.
1623 This is because the native MessageBox function cannot centre text.
1624 The symbols are not shown when the generic function is used.
1626 \wxheading{Include files}
1630 \membersection{::wxShowTip}\label{wxshowtip}
1632 \func{bool}{wxShowTip}{\param{wxWindow *}{parent},
1633 \param{wxTipProvider *}{tipProvider},
1634 \param{bool }{showAtStartup = TRUE}}
1636 This function shows a "startup tip" to the user.
1638 \docparam{parent}{The parent window for the modal dialog}
1640 \docparam{tipProvider}{An object which is used to get the text of the tips.
1641 It may be created with the \helpref{wxCreateFileTipProvider}{wxcreatefiletipprovider} function.}
1643 \docparam{showAtStartup}{Should be TRUE if startup tips are shown, FALSE
1644 otherwise. This is used as the initial value for "Show tips at startup"
1645 checkbox which is shown in the tips dialog.}
1647 \wxheading{See also}
1649 \helpref{Tips overview}{tipsoverview}
1651 \wxheading{Include files}
1655 \section{GDI functions}\label{gdifunctions}
1657 The following are relevant to the GDI (Graphics Device Interface).
1659 \wxheading{Include files}
1663 \membersection{wxBITMAP}\label{wxbitmapmacro}
1665 \func{}{wxBITMAP}{bitmapName}
1667 This macro loads a bitmap from either application resources (on the platforms
1668 for which they exist, i.e. Windows and OS2) or from an XPM file. It allows to
1669 avoid using {\tt \#ifdef}s when creating bitmaps.
1671 \wxheading{See also}
1673 \helpref{Bitmaps and icons overview}{wxbitmapoverview},
1674 \helpref{wxICON}{wxiconmacro}
1676 \wxheading{Include files}
1680 \membersection{::wxClientDisplayRect}\label{wxclientdisplayrect}
1682 \func{void}{wxClientDisplayRect}{\param{int *}{x}, \param{int *}{y},
1683 \param{int *}{width}, \param{int *}{height}}
1685 \func{wxRect}{wxGetClientDisplayRect}{\void}
1687 Returns the dimensions of the work area on the display. On Windows
1688 this means the area not covered by the taskbar, etc. Other platforms
1689 are currently defaulting to the whole display until a way is found to
1690 provide this info for all window managers, etc.
1692 \membersection{::wxColourDisplay}\label{wxcolourdisplay}
1694 \func{bool}{wxColourDisplay}{\void}
1696 Returns TRUE if the display is colour, FALSE otherwise.
1698 \membersection{::wxDisplayDepth}\label{wxdisplaydepth}
1700 \func{int}{wxDisplayDepth}{\void}
1702 Returns the depth of the display (a value of 1 denotes a monochrome display).
1704 \membersection{::wxDisplaySize}\label{wxdisplaysize}
1706 \func{void}{wxDisplaySize}{\param{int *}{width}, \param{int *}{height}}
1708 \func{wxSize}{wxGetDisplaySize}{\void}
1710 Returns the display size in pixels.
1712 \membersection{::wxDisplaySizeMM}\label{wxdisplaysizemm}
1714 \func{void}{wxDisplaySizeMM}{\param{int *}{width}, \param{int *}{height}}
1716 \func{wxSize}{wxGetDisplaySizeMM}{\void}
1718 Returns the display size in millimeters.
1720 \membersection{::wxDROP\_ICON}\label{wxdropicon}
1722 \func{wxIconOrCursor}{wxDROP\_ICON}{\param{const char *}{name}}
1724 This macro creates either a cursor (MSW) or an icon (elsewhere) with the given
1725 name. Under MSW, the cursor is loaded from the resource file and the icon is
1726 loaded from XPM file under other platforms.
1728 This macro should be used with
1729 \helpref{wxDropSource constructor}{wxdropsourcewxdropsource}.
1731 \wxheading{Include files}
1735 \membersection{wxICON}\label{wxiconmacro}
1737 \func{}{wxICON}{iconName}
1739 This macro loads an icon from either application resources (on the platforms
1740 for which they exist, i.e. Windows and OS2) or from an XPM file. It allows to
1741 avoid using {\tt \#ifdef}s when creating icons.
1743 \wxheading{See also}
1745 \helpref{Bitmaps and icons overview}{wxbitmapoverview},
1746 \helpref{wxBITMAP}{wxbitmapmacro}
1748 \wxheading{Include files}
1752 \membersection{::wxMakeMetafilePlaceable}\label{wxmakemetafileplaceable}
1754 \func{bool}{wxMakeMetafilePlaceable}{\param{const wxString\& }{filename}, \param{int }{minX}, \param{int }{minY},
1755 \param{int }{maxX}, \param{int }{maxY}, \param{float }{scale=1.0}}
1757 Given a filename for an existing, valid metafile (as constructed using \helpref{wxMetafileDC}{wxmetafiledc})
1758 makes it into a placeable metafile by prepending a header containing the given
1759 bounding box. The bounding box may be obtained from a device context after drawing
1760 into it, using the functions wxDC::MinX, wxDC::MinY, wxDC::MaxX and wxDC::MaxY.
1762 In addition to adding the placeable metafile header, this function adds
1763 the equivalent of the following code to the start of the metafile data:
1766 SetMapMode(dc, MM_ANISOTROPIC);
1767 SetWindowOrg(dc, minX, minY);
1768 SetWindowExt(dc, maxX - minX, maxY - minY);
1771 This simulates the wxMM\_TEXT mapping mode, which wxWindows assumes.
1773 Placeable metafiles may be imported by many Windows applications, and can be
1774 used in RTF (Rich Text Format) files.
1776 {\it scale} allows the specification of scale for the metafile.
1778 This function is only available under Windows.
1780 \membersection{::wxSetCursor}\label{wxsetcursor}
1782 \func{void}{wxSetCursor}{\param{wxCursor *}{cursor}}
1784 Globally sets the cursor; only has an effect in Windows and GTK.
1785 See also \helpref{wxCursor}{wxcursor}, \helpref{wxWindow::SetCursor}{wxwindowsetcursor}.
1787 \section{Printer settings}\label{printersettings}
1789 These routines are obsolete and should no longer be used!
1791 The following functions are used to control PostScript printing. Under
1792 Windows, PostScript output can only be sent to a file.
1794 \wxheading{Include files}
1798 \membersection{::wxGetPrinterCommand}\label{wxgetprintercommand}
1800 \func{wxString}{wxGetPrinterCommand}{\void}
1802 Gets the printer command used to print a file. The default is {\tt lpr}.
1804 \membersection{::wxGetPrinterFile}\label{wxgetprinterfile}
1806 \func{wxString}{wxGetPrinterFile}{\void}
1808 Gets the PostScript output filename.
1810 \membersection{::wxGetPrinterMode}\label{wxgetprintermode}
1812 \func{int}{wxGetPrinterMode}{\void}
1814 Gets the printing mode controlling where output is sent (PS\_PREVIEW, PS\_FILE or PS\_PRINTER).
1815 The default is PS\_PREVIEW.
1817 \membersection{::wxGetPrinterOptions}\label{wxgetprinteroptions}
1819 \func{wxString}{wxGetPrinterOptions}{\void}
1821 Gets the additional options for the print command (e.g. specific printer). The default is nothing.
1823 \membersection{::wxGetPrinterOrientation}\label{wxgetprinterorientation}
1825 \func{int}{wxGetPrinterOrientation}{\void}
1827 Gets the orientation (PS\_PORTRAIT or PS\_LANDSCAPE). The default is PS\_PORTRAIT.
1829 \membersection{::wxGetPrinterPreviewCommand}\label{wxgetprinterpreviewcommand}
1831 \func{wxString}{wxGetPrinterPreviewCommand}{\void}
1833 Gets the command used to view a PostScript file. The default depends on the platform.
1835 \membersection{::wxGetPrinterScaling}\label{wxgetprinterscaling}
1837 \func{void}{wxGetPrinterScaling}{\param{float *}{x}, \param{float *}{y}}
1839 Gets the scaling factor for PostScript output. The default is 1.0, 1.0.
1841 \membersection{::wxGetPrinterTranslation}\label{wxgetprintertranslation}
1843 \func{void}{wxGetPrinterTranslation}{\param{float *}{x}, \param{float *}{y}}
1845 Gets the translation (from the top left corner) for PostScript output. The default is 0.0, 0.0.
1847 \membersection{::wxSetPrinterCommand}\label{wxsetprintercommand}
1849 \func{void}{wxSetPrinterCommand}{\param{const wxString\& }{command}}
1851 Sets the printer command used to print a file. The default is {\tt lpr}.
1853 \membersection{::wxSetPrinterFile}\label{wxsetprinterfile}
1855 \func{void}{wxSetPrinterFile}{\param{const wxString\& }{filename}}
1857 Sets the PostScript output filename.
1859 \membersection{::wxSetPrinterMode}\label{wxsetprintermode}
1861 \func{void}{wxSetPrinterMode}{\param{int }{mode}}
1863 Sets the printing mode controlling where output is sent (PS\_PREVIEW, PS\_FILE or PS\_PRINTER).
1864 The default is PS\_PREVIEW.
1866 \membersection{::wxSetPrinterOptions}\label{wxsetprinteroptions}
1868 \func{void}{wxSetPrinterOptions}{\param{const wxString\& }{options}}
1870 Sets the additional options for the print command (e.g. specific printer). The default is nothing.
1872 \membersection{::wxSetPrinterOrientation}\label{wxsetprinterorientation}
1874 \func{void}{wxSetPrinterOrientation}{\param{int}{ orientation}}
1876 Sets the orientation (PS\_PORTRAIT or PS\_LANDSCAPE). The default is PS\_PORTRAIT.
1878 \membersection{::wxSetPrinterPreviewCommand}\label{wxsetprinterpreviewcommand}
1880 \func{void}{wxSetPrinterPreviewCommand}{\param{const wxString\& }{command}}
1882 Sets the command used to view a PostScript file. The default depends on the platform.
1884 \membersection{::wxSetPrinterScaling}\label{wxsetprinterscaling}
1886 \func{void}{wxSetPrinterScaling}{\param{float }{x}, \param{float }{y}}
1888 Sets the scaling factor for PostScript output. The default is 1.0, 1.0.
1890 \membersection{::wxSetPrinterTranslation}\label{wxsetprintertranslation}
1892 \func{void}{wxSetPrinterTranslation}{\param{float }{x}, \param{float }{y}}
1894 Sets the translation (from the top left corner) for PostScript output. The default is 0.0, 0.0.
1896 \section{Clipboard functions}\label{clipsboard}
1898 These clipboard functions are implemented for Windows only. The use of these functions
1899 is deprecated and the code is no longer maintained. Use the \helpref{wxClipboard}{wxclipboard}
1902 \wxheading{Include files}
1906 \membersection{::wxClipboardOpen}\label{wxclipboardopen}
1908 \func{bool}{wxClipboardOpen}{\void}
1910 Returns TRUE if this application has already opened the clipboard.
1912 \membersection{::wxCloseClipboard}\label{wxcloseclipboard}
1914 \func{bool}{wxCloseClipboard}{\void}
1916 Closes the clipboard to allow other applications to use it.
1918 \membersection{::wxEmptyClipboard}\label{wxemptyclipboard}
1920 \func{bool}{wxEmptyClipboard}{\void}
1922 Empties the clipboard.
1924 \membersection{::wxEnumClipboardFormats}\label{wxenumclipboardformats}
1926 \func{int}{wxEnumClipboardFormats}{\param{int}{dataFormat}}
1928 Enumerates the formats found in a list of available formats that belong
1929 to the clipboard. Each call to this function specifies a known
1930 available format; the function returns the format that appears next in
1933 {\it dataFormat} specifies a known format. If this parameter is zero,
1934 the function returns the first format in the list.
1936 The return value specifies the next known clipboard data format if the
1937 function is successful. It is zero if the {\it dataFormat} parameter specifies
1938 the last format in the list of available formats, or if the clipboard
1941 Before it enumerates the formats function, an application must open the clipboard by using the
1942 wxOpenClipboard function.
1944 \membersection{::wxGetClipboardData}\label{wxgetclipboarddata}
1946 \func{wxObject *}{wxGetClipboardData}{\param{int}{dataFormat}}
1948 Gets data from the clipboard.
1950 {\it dataFormat} may be one of:
1952 \begin{itemize}\itemsep=0pt
1953 \item wxCF\_TEXT or wxCF\_OEMTEXT: returns a pointer to new memory containing a null-terminated text string.
1954 \item wxCF\_BITMAP: returns a new wxBitmap.
1957 The clipboard must have previously been opened for this call to succeed.
1959 \membersection{::wxGetClipboardFormatName}\label{wxgetclipboardformatname}
1961 \func{bool}{wxGetClipboardFormatName}{\param{int}{dataFormat}, \param{const wxString\& }{formatName}, \param{int}{maxCount}}
1963 Gets the name of a registered clipboard format, and puts it into the buffer {\it formatName} which is of maximum
1964 length {\it maxCount}. {\it dataFormat} must not specify a predefined clipboard format.
1966 \membersection{::wxIsClipboardFormatAvailable}\label{wxisclipboardformatavailable}
1968 \func{bool}{wxIsClipboardFormatAvailable}{\param{int}{dataFormat}}
1970 Returns TRUE if the given data format is available on the clipboard.
1972 \membersection{::wxOpenClipboard}\label{wxopenclipboard}
1974 \func{bool}{wxOpenClipboard}{\void}
1976 Opens the clipboard for passing data to it or getting data from it.
1978 \membersection{::wxRegisterClipboardFormat}\label{wxregisterclipboardformat}
1980 \func{int}{wxRegisterClipboardFormat}{\param{const wxString\& }{formatName}}
1982 Registers the clipboard data format name and returns an identifier.
1984 \membersection{::wxSetClipboardData}\label{wxsetclipboarddata}
1986 \func{bool}{wxSetClipboardData}{\param{int}{dataFormat}, \param{wxObject *}{data}, \param{int}{width}, \param{int}{height}}
1988 Passes data to the clipboard.
1990 {\it dataFormat} may be one of:
1992 \begin{itemize}\itemsep=0pt
1993 \item wxCF\_TEXT or wxCF\_OEMTEXT: {\it data} is a null-terminated text string.
1994 \item wxCF\_BITMAP: {\it data} is a wxBitmap.
1995 \item wxCF\_DIB: {\it data} is a wxBitmap. The bitmap is converted to a DIB (device independent bitmap).
1996 \item wxCF\_METAFILE: {\it data} is a wxMetafile. {\it width} and {\it height} are used to give recommended dimensions.
1999 The clipboard must have previously been opened for this call to succeed.
2001 \section{Miscellaneous functions}\label{miscellany}
2003 \membersection{::wxNewId}\label{wxnewid}
2005 \func{long}{wxNewId}{\void}
2007 Generates an integer identifier unique to this run of the program.
2009 \wxheading{Include files}
2013 \membersection{::wxRegisterId}\label{wxregisterid}
2015 \func{void}{wxRegisterId}{\param{long}{ id}}
2017 Ensures that ids subsequently generated by {\bf NewId} do not clash with
2020 \wxheading{Include files}
2024 \membersection{::wxDDECleanUp}\label{wxddecleanup}
2026 \func{void}{wxDDECleanUp}{\void}
2028 Called when wxWindows exits, to clean up the DDE system. This no longer needs to be
2029 called by the application.
2031 See also \helpref{wxDDEInitialize}{wxddeinitialize}.
2033 \wxheading{Include files}
2037 \membersection{::wxDDEInitialize}\label{wxddeinitialize}
2039 \func{void}{wxDDEInitialize}{\void}
2041 Initializes the DDE system. May be called multiple times without harm.
2043 This no longer needs to be called by the application: it will be called
2044 by wxWindows if necessary.
2046 See also \helpref{wxDDEServer}{wxddeserver}, \helpref{wxDDEClient}{wxddeclient}, \helpref{wxDDEConnection}{wxddeconnection},
2047 \helpref{wxDDECleanUp}{wxddecleanup}.
2049 \wxheading{Include files}
2053 \membersection{::wxDisplaySize}\label{wxdisplaysize}
2055 \func{void}{wxDisplaySize}{\param{int *}{width}, \param{int *}{height}}
2057 Gets the physical size of the display in pixels.
2059 \wxheading{Include files}
2063 \membersection{::wxEnableTopLevelWindows}\label{wxenabletoplevelwindows}
2065 \func{void}{wxEnableTopLevelWindow}{\param{bool}{ enable = TRUE}}
2067 This function enables or disables all top level windows. It is used by
2068 \helpref{::wxSafeYield}{wxsafeyield}.
2070 \wxheading{Include files}
2074 \membersection{::wxFindMenuItemId}\label{wxfindmenuitemid}
2076 \func{int}{wxFindMenuItemId}{\param{wxFrame *}{frame}, \param{const wxString\& }{menuString}, \param{const wxString\& }{itemString}}
2078 Find a menu item identifier associated with the given frame's menu bar.
2080 \wxheading{Include files}
2084 \membersection{::wxFindWindowByLabel}\label{wxfindwindowbylabel}
2086 \func{wxWindow *}{wxFindWindowByLabel}{\param{const wxString\& }{label}, \param{wxWindow *}{parent=NULL}}
2088 Find a window by its label. Depending on the type of window, the label may be a window title
2089 or panel item label. If {\it parent} is NULL, the search will start from all top-level
2090 frames and dialog boxes; if non-NULL, the search will be limited to the given window hierarchy.
2091 The search is recursive in both cases.
2093 \wxheading{Include files}
2097 \membersection{::wxFindWindowByName}\label{wxfindwindowbyname}
2099 \func{wxWindow *}{wxFindWindowByName}{\param{const wxString\& }{name}, \param{wxWindow *}{parent=NULL}}
2101 Find a window by its name (as given in a window constructor or {\bf Create} function call).
2102 If {\it parent} is NULL, the search will start from all top-level
2103 frames and dialog boxes; if non-NULL, the search will be limited to the given window hierarchy.
2104 The search is recursive in both cases.
2106 If no such named window is found, {\bf wxFindWindowByLabel} is called.
2108 \wxheading{Include files}
2112 \membersection{::wxFindWindowAtPoint}\label{wxfindwindowatpoint}
2114 \func{wxWindow *}{wxFindWindowAtPoint}{\param{const wxPoint\& }{pt}}
2116 Find the deepest window at the given mouse position in screen coordinates,
2117 returning the window if found, or NULL if not.
2119 \membersection{::wxFindWindowAtPointer}\label{wxfindwindowatpointer}
2121 \func{wxWindow *}{wxFindWindowAtPointer}{\param{wxPoint\& }{pt}}
2123 Find the deepest window at the mouse pointer position, returning the window
2124 and current pointer position in screen coordinates.
2126 \membersection{::wxGetActiveWindow}\label{wxgetactivewindow}
2128 \func{wxWindow *}{wxGetActiveWindow}{\void}
2130 Gets the currently active window (Windows only).
2132 \wxheading{Include files}
2136 \membersection{::wxGetDisplayName}\label{wxgetdisplayname}
2138 \func{wxString}{wxGetDisplayName}{\void}
2140 Under X only, returns the current display name. See also \helpref{wxSetDisplayName}{wxsetdisplayname}.
2142 \wxheading{Include files}
2146 \membersection{::wxGetMousePosition}\label{wxgetmouseposition}
2148 \func{wxPoint}{wxGetMousePosition}{\void}
2150 Returns the mouse position in screen coordinates.
2152 \wxheading{Include files}
2156 \membersection{::wxGetResource}\label{wxgetresource}
2158 \func{bool}{wxGetResource}{\param{const wxString\& }{section}, \param{const wxString\& }{entry},
2159 \param{const wxString\& *}{value}, \param{const wxString\& }{file = NULL}}
2161 \func{bool}{wxGetResource}{\param{const wxString\& }{section}, \param{const wxString\& }{entry},
2162 \param{float *}{value}, \param{const wxString\& }{file = NULL}}
2164 \func{bool}{wxGetResource}{\param{const wxString\& }{section}, \param{const wxString\& }{entry},
2165 \param{long *}{value}, \param{const wxString\& }{file = NULL}}
2167 \func{bool}{wxGetResource}{\param{const wxString\& }{section}, \param{const wxString\& }{entry},
2168 \param{int *}{value}, \param{const wxString\& }{file = NULL}}
2170 Gets a resource value from the resource database (for example, WIN.INI, or
2171 .Xdefaults). If {\it file} is NULL, WIN.INI or .Xdefaults is used,
2172 otherwise the specified file is used.
2174 Under X, if an application class (wxApp::GetClassName) has been defined,
2175 it is appended to the string /usr/lib/X11/app-defaults/ to try to find
2176 an applications default file when merging all resource databases.
2178 The reason for passing the result in an argument is that it
2179 can be convenient to define a default value, which gets overridden
2180 if the value exists in the resource file. It saves a separate
2181 test for that resource's existence, and it also allows
2182 the overloading of the function for different types.
2184 See also \helpref{wxWriteResource}{wxwriteresource}, \helpref{wxConfigBase}{wxconfigbase}.
2186 \wxheading{Include files}
2190 \membersection{::wxLoadUserResource}\label{wxloaduserresource}
2192 \func{wxString}{wxLoadUserResource}{\param{const wxString\& }{resourceName}, \param{const wxString\& }{resourceType=``TEXT"}}
2194 Loads a user-defined Windows resource as a string. If the resource is found, the function creates
2195 a new character array and copies the data into it. A pointer to this data is returned. If unsuccessful, NULL is returned.
2197 The resource must be defined in the {\tt .rc} file using the following syntax:
2200 myResource TEXT file.ext
2203 where {\tt file.ext} is a file that the resource compiler can find.
2205 One use of this is to store {\tt .wxr} files instead of including the data in the C++ file; some compilers
2206 cannot cope with the long strings in a {\tt .wxr} file. The resource data can then be parsed
2207 using \helpref{wxResourceParseString}{wxresourceparsestring}.
2209 This function is available under Windows only.
2211 \wxheading{Include files}
2215 \membersection{::wxPostDelete}\label{wxpostdelete}
2217 \func{void}{wxPostDelete}{\param{wxObject *}{object}}
2219 Tells the system to delete the specified object when
2220 all other events have been processed. In some environments, it is
2221 necessary to use this instead of deleting a frame directly with the
2222 delete operator, because some GUIs will still send events to a deleted window.
2224 Now obsolete: use \helpref{wxWindow::Close}{wxwindowclose} instead.
2226 \wxheading{Include files}
2230 \membersection{::wxPostEvent}\label{wxpostevent}
2232 \func{void}{wxPostEvent}{\param{wxEvtHandler *}{dest}, \param{wxEvent\& }{event}}
2234 This function posts the event to the specified {\it dest} object. The
2235 difference between sending an event and posting it is that in the first case
2236 the event is processed before the function returns (in wxWindows, event sending
2237 is done with \helpref{ProcessEvent}{wxevthandlerprocessevent} function), but in
2238 the second, the function returns immediately and the event will be processed
2239 sometime later - usually during the next even loop iteration.
2241 Note that a copy of the {\it event} is made by the function, so the original
2242 copy can be deleted as soon as function returns. This function can also be used
2243 to send events between different threads safely. As this function makes a
2244 copy of the event, the event needs to have a fully implemented Clone() method,
2245 which may not be the case for all event in wxWindows.
2247 See also \helpref{AddPendingEvent}{wxevthandleraddpendingevent} (which this function
2250 \wxheading{Include files}
2254 \membersection{::wxSetDisplayName}\label{wxsetdisplayname}
2256 \func{void}{wxSetDisplayName}{\param{const wxString\& }{displayName}}
2258 Under X only, sets the current display name. This is the X host and display name such
2259 as ``colonsay:0.0", and the function indicates which display should be used for creating
2260 windows from this point on. Setting the display within an application allows multiple
2261 displays to be used.
2263 See also \helpref{wxGetDisplayName}{wxgetdisplayname}.
2265 \wxheading{Include files}
2269 \membersection{::wxStripMenuCodes}\label{wxstripmenucodes}
2271 \func{wxString}{wxStripMenuCodes}{\param{const wxString\& }{in}}
2273 \func{void}{wxStripMenuCodes}{\param{char* }{in}, \param{char* }{out}}
2275 This function is obsolete, please use
2276 \helpref{wxMenuItem::GetLabelFromText}{wxmenuitemgetlabelfromtext} instead.
2278 Strips any menu codes from {\it in} and places the result
2279 in {\it out} (or returns the new string, in the first form).
2281 Menu codes include \& (mark the next character with an underline
2282 as a keyboard shortkey in Windows and Motif) and $\backslash$t (tab in Windows).
2284 \wxheading{Include files}
2288 \membersection{::wxWriteResource}\label{wxwriteresource}
2290 \func{bool}{wxWriteResource}{\param{const wxString\& }{section}, \param{const wxString\& }{entry},
2291 \param{const wxString\& }{value}, \param{const wxString\& }{file = NULL}}
2293 \func{bool}{wxWriteResource}{\param{const wxString\& }{section}, \param{const wxString\& }{entry},
2294 \param{float }{value}, \param{const wxString\& }{file = NULL}}
2296 \func{bool}{wxWriteResource}{\param{const wxString\& }{section}, \param{const wxString\& }{entry},
2297 \param{long }{value}, \param{const wxString\& }{file = NULL}}
2299 \func{bool}{wxWriteResource}{\param{const wxString\& }{section}, \param{const wxString\& }{entry},
2300 \param{int }{value}, \param{const wxString\& }{file = NULL}}
2302 Writes a resource value into the resource database (for example, WIN.INI, or
2303 .Xdefaults). If {\it file} is NULL, WIN.INI or .Xdefaults is used,
2304 otherwise the specified file is used.
2306 Under X, the resource databases are cached until the internal function
2307 \rtfsp{\bf wxFlushResources} is called automatically on exit, when
2308 all updated resource databases are written to their files.
2310 Note that it is considered bad manners to write to the .Xdefaults
2311 file under Unix, although the WIN.INI file is fair game under Windows.
2313 See also \helpref{wxGetResource}{wxgetresource}, \helpref{wxConfigBase}{wxconfigbase}.
2315 \wxheading{Include files}
2319 \section{Byte order macros}\label{macros}
2321 The endian-ness issues (that is the difference between big-endian and
2322 little-endian architectures) are important for the portable programs working
2323 with the external binary data (for example, data files or data coming from
2324 network) which is usually in some fixed, platform-independent format. The
2325 macros are helpful for transforming the data to the correct format.
2327 \membersection{wxINTXX\_SWAP\_ALWAYS}\label{intswapalways}
2329 \func{wxInt32}{wxINT32\_SWAP\_ALWAYS}{\param{wxInt32 }{value}}
2331 \func{wxUint32}{wxUINT32\_SWAP\_ALWAYS}{\param{wxUint32 }{value}}
2333 \func{wxInt16}{wxINT16\_SWAP\_ALWAYS}{\param{wxInt16 }{value}}
2335 \func{wxUint16}{wxUINT16\_SWAP\_ALWAYS}{\param{wxUint16 }{value}}
2337 These macros will swap the bytes of the {\it value} variable from little
2338 endian to big endian or vice versa unconditionally, i.e. independently of the
2341 \membersection{wxINTXX\_SWAP\_ON\_BE}\label{intswaponbe}
2343 \func{wxInt32}{wxINT32\_SWAP\_ON\_BE}{\param{wxInt32 }{value}}
2345 \func{wxUint32}{wxUINT32\_SWAP\_ON\_BE}{\param{wxUint32 }{value}}
2347 \func{wxInt16}{wxINT16\_SWAP\_ON\_BE}{\param{wxInt16 }{value}}
2349 \func{wxUint16}{wxUINT16\_SWAP\_ON\_BE}{\param{wxUint16 }{value}}
2351 This macro will swap the bytes of the {\it value} variable from little
2352 endian to big endian or vice versa if the program is compiled on a
2353 big-endian architecture (such as Sun work stations). If the program has
2354 been compiled on a little-endian architecture, the value will be unchanged.
2356 Use these macros to read data from and write data to a file that stores
2357 data in little-endian (for example Intel i386) format.
2359 \membersection{wxINTXX\_SWAP\_ON\_LE}\label{intswaponle}
2361 \func{wxInt32}{wxINT32\_SWAP\_ON\_LE}{\param{wxInt32 }{value}}
2363 \func{wxUint32}{wxUINT32\_SWAP\_ON\_LE}{\param{wxUint32 }{value}}
2365 \func{wxInt16}{wxINT16\_SWAP\_ON\_LE}{\param{wxInt16 }{value}}
2367 \func{wxUint16}{wxUINT16\_SWAP\_ON\_LE}{\param{wxUint16 }{value}}
2369 This macro will swap the bytes of the {\it value} variable from little
2370 endian to big endian or vice versa if the program is compiled on a
2371 little-endian architecture (such as Intel PCs). If the program has
2372 been compiled on a big-endian architecture, the value will be unchanged.
2374 Use these macros to read data from and write data to a file that stores
2375 data in big-endian format.
2377 \section{RTTI functions}\label{macros}
2379 wxWindows uses its own RTTI ("run-time type identification") system which
2380 predates the current standard C++ RTTI and so is kept for backwards
2381 compatribility reasons but also because it allows some things which the
2382 standard RTTI doesn't directly support (such as creating a class from its
2385 The standard C++ RTTI can be used in the user code without any problems and in
2386 general you shouldn't need to use the functions and the macros in this section
2387 unless you are thinking of modifying or adding any wxWindows classes.
2389 \wxheading{See also}
2391 \helpref{RTTI overview}{runtimeclassoverview}
2393 \membersection{CLASSINFO}\label{classinfo}
2395 \func{wxClassInfo *}{CLASSINFO}{className}
2397 Returns a pointer to the wxClassInfo object associated with this class.
2399 \wxheading{Include files}
2403 \membersection{DECLARE\_ABSTRACT\_CLASS}\label{declareabstractclass}
2405 \func{}{DECLARE\_ABSTRACT\_CLASS}{className}
2407 Used inside a class declaration to declare that the class should be
2408 made known to the class hierarchy, but objects of this class cannot be created
2409 dynamically. The same as DECLARE\_CLASS.
2414 class wxCommand: public wxObject
2416 DECLARE_ABSTRACT_CLASS(wxCommand)
2425 \wxheading{Include files}
2429 \membersection{DECLARE\_APP}\label{declareapp}
2431 \func{}{DECLARE\_APP}{className}
2433 This is used in headers to create a forward declaration of the wxGetApp function implemented
2434 by IMPLEMENT\_APP. It creates the declaration {\tt className\& wxGetApp(void)}.
2442 \wxheading{Include files}
2446 \membersection{DECLARE\_CLASS}\label{declareclass}
2448 \func{}{DECLARE\_CLASS}{className}
2450 Used inside a class declaration to declare that the class should be
2451 made known to the class hierarchy, but objects of this class cannot be created
2452 dynamically. The same as DECLARE\_ABSTRACT\_CLASS.
2454 \wxheading{Include files}
2458 \membersection{DECLARE\_DYNAMIC\_CLASS}\label{declaredynamicclass}
2460 \func{}{DECLARE\_DYNAMIC\_CLASS}{className}
2462 Used inside a class declaration to declare that the objects of this class should be dynamically
2463 creatable from run-time type information.
2468 class wxFrame: public wxWindow
2470 DECLARE_DYNAMIC_CLASS(wxFrame)
2473 const wxString\& frameTitle;
2479 \wxheading{Include files}
2483 \membersection{IMPLEMENT\_ABSTRACT\_CLASS}\label{implementabstractclass}
2485 \func{}{IMPLEMENT\_ABSTRACT\_CLASS}{className, baseClassName}
2487 Used in a C++ implementation file to complete the declaration of
2488 a class that has run-time type information. The same as IMPLEMENT\_CLASS.
2493 IMPLEMENT_ABSTRACT_CLASS(wxCommand, wxObject)
2495 wxCommand::wxCommand(void)
2501 \wxheading{Include files}
2505 \membersection{IMPLEMENT\_ABSTRACT\_CLASS2}\label{implementabstractclass2}
2507 \func{}{IMPLEMENT\_ABSTRACT\_CLASS2}{className, baseClassName1, baseClassName2}
2509 Used in a C++ implementation file to complete the declaration of
2510 a class that has run-time type information and two base classes. The same as IMPLEMENT\_CLASS2.
2512 \wxheading{Include files}
2516 \membersection{IMPLEMENT\_APP}\label{implementapp}
2518 \func{}{IMPLEMENT\_APP}{className}
2520 This is used in the application class implementation file to make the application class known to
2521 wxWindows for dynamic construction. You use this instead of
2532 IMPLEMENT_APP(MyApp)
2535 See also \helpref{DECLARE\_APP}{declareapp}.
2537 \wxheading{Include files}
2541 \membersection{IMPLEMENT\_CLASS}\label{implementclass}
2543 \func{}{IMPLEMENT\_CLASS}{className, baseClassName}
2545 Used in a C++ implementation file to complete the declaration of
2546 a class that has run-time type information. The same as IMPLEMENT\_ABSTRACT\_CLASS.
2548 \wxheading{Include files}
2552 \membersection{IMPLEMENT\_CLASS2}\label{implementclass2}
2554 \func{}{IMPLEMENT\_CLASS2}{className, baseClassName1, baseClassName2}
2556 Used in a C++ implementation file to complete the declaration of a
2557 class that has run-time type information and two base classes. The
2558 same as IMPLEMENT\_ABSTRACT\_CLASS2.
2560 \wxheading{Include files}
2564 \membersection{IMPLEMENT\_DYNAMIC\_CLASS}\label{implementdynamicclass}
2566 \func{}{IMPLEMENT\_DYNAMIC\_CLASS}{className, baseClassName}
2568 Used in a C++ implementation file to complete the declaration of
2569 a class that has run-time type information, and whose instances
2570 can be created dynamically.
2575 IMPLEMENT_DYNAMIC_CLASS(wxFrame, wxWindow)
2577 wxFrame::wxFrame(void)
2583 \wxheading{Include files}
2587 \membersection{IMPLEMENT\_DYNAMIC\_CLASS2}\label{implementdynamicclass2}
2589 \func{}{IMPLEMENT\_DYNAMIC\_CLASS2}{className, baseClassName1, baseClassName2}
2591 Used in a C++ implementation file to complete the declaration of
2592 a class that has run-time type information, and whose instances
2593 can be created dynamically. Use this for classes derived from two
2596 \wxheading{Include files}
2600 \membersection{wxConstCast}\label{wxconstcast}
2602 \func{classname *}{wxConstCast}{ptr, classname}
2604 This macro expands into {\tt const\_cast<classname *>(ptr)} if the compiler
2605 supports {\it const\_cast} or into an old, C-style cast, otherwise.
2607 \wxheading{See also}
2609 \helpref{wxDynamicCast}{wxdynamiccast}\\
2610 \helpref{wxStaticCast}{wxstaticcast}
2612 \membersection{::wxCreateDynamicObject}\label{wxcreatedynamicobject}
2614 \func{wxObject *}{wxCreateDynamicObject}{\param{const wxString\& }{className}}
2616 Creates and returns an object of the given class, if the class has been
2617 registered with the dynamic class system using DECLARE... and IMPLEMENT... macros.
2619 \membersection{WXDEBUG\_NEW}\label{debugnew}
2621 \func{}{WXDEBUG\_NEW}{arg}
2623 This is defined in debug mode to be call the redefined new operator
2624 with filename and line number arguments. The definition is:
2627 #define WXDEBUG_NEW new(__FILE__,__LINE__)
2630 In non-debug mode, this is defined as the normal new operator.
2632 \wxheading{Include files}
2636 \membersection{wxDynamicCast}\label{wxdynamiccast}
2638 \func{classname *}{wxDynamicCast}{ptr, classname}
2640 This macro returns the pointer {\it ptr} cast to the type {\it classname *} if
2641 the pointer is of this type (the check is done during the run-time) or
2642 {\tt NULL} otherwise. Usage of this macro is preferred over obsoleted
2643 wxObject::IsKindOf() function.
2645 The {\it ptr} argument may be {\tt NULL}, in which case {\tt NULL} will be
2651 wxWindow *win = wxWindow::FindFocus();
2652 wxTextCtrl *text = wxDynamicCast(win, wxTextCtrl);
2655 // a text control has the focus...
2659 // no window has the focus or it is not a text control
2663 \wxheading{See also}
2665 \helpref{RTTI overview}{runtimeclassoverview}\\
2666 \helpref{wxDynamicCastThis}{wxdynamiccastthis}\\
2667 \helpref{wxConstCast}{wxconstcast}\\
2668 \helpref{wxStatiicCast}{wxstaticcast}
2670 \membersection{wxDynamicCastThis}\label{wxdynamiccastthis}
2672 \func{classname *}{wxDynamicCastThis}{classname}
2674 This macro is equivalent to {\tt wxDynamicCast(this, classname)} but the
2675 latter provokes spurious compilation warnings from some compilers (because it
2676 tests whether {\tt this} pointer is non {\tt NULL} which is always true), so
2677 this macro should be used to avoid them.
2679 \wxheading{See also}
2681 \helpref{wxDynamicCast}{wxdynamiccast}
2683 \membersection{wxStaticCast}\label{wxstaticcast}
2685 \func{classname *}{wxStaticCast}{ptr, classname}
2687 This macro checks that the cast is valid in debug mode (an assert failure will
2688 result if {\tt wxDynamicCast(ptr, classname) == NULL}) and then returns the
2689 result of executing an equivalent of {\tt static\_cast<classname *>(ptr)}.
2691 \helpref{wxDynamicCast}{wxdynamiccast}\\
2692 \helpref{wxConstCast}{wxconstcast}
2694 \section{Resource functions}\label{resourcefuncs}
2696 \overview{Resource functions}{resourceformats}
2698 This section details functions for manipulating wxWindows (.WXR) resource
2699 files and loading user interface elements from resources.
2701 \normalbox{Please note that this use of the word `resource' is different from that used when talking
2702 about initialisation file resource reading and writing, using such functions
2703 as wxWriteResource and wxGetResource. It is just an unfortunate clash of terminology.}
2705 \helponly{For an overview of the wxWindows resource mechanism, see \helpref{the wxWindows resource system}{resourceformats}.}
2707 See also \helpref{wxWindow::LoadFromResource}{wxwindowloadfromresource} for
2708 loading from resource data.
2710 \membersection{::wxResourceAddIdentifier}\label{wxresourceaddidentifier}
2712 \func{bool}{wxResourceAddIdentifier}{\param{const wxString\& }{name}, \param{int }{value}}
2714 Used for associating a name with an integer identifier (equivalent to dynamically\rtfsp
2715 \tt{#}defining a name to an integer). Unlikely to be used by an application except
2716 perhaps for implementing resource functionality for interpreted languages.
2718 \membersection{::wxResourceClear}\label{wxresourceclear}
2720 \func{void}{wxResourceClear}{\void}
2722 Clears the wxWindows resource table.
2724 \membersection{::wxResourceCreateBitmap}\label{wxresourcecreatebitmap}
2726 \func{wxBitmap *}{wxResourceCreateBitmap}{\param{const wxString\& }{resource}}
2728 Creates a new bitmap from a file, static data, or Windows resource, given a valid
2729 wxWindows bitmap resource identifier. For example, if the .WXR file contains
2733 static const wxString\& project_resource = "bitmap(name = 'project_resource',\
2734 bitmap = ['project', wxBITMAP_TYPE_BMP_RESOURCE, 'WINDOWS'],\
2735 bitmap = ['project.xpm', wxBITMAP_TYPE_XPM, 'X']).";
2738 then this function can be called as follows:
2741 wxBitmap *bitmap = wxResourceCreateBitmap("project_resource");
2744 \membersection{::wxResourceCreateIcon}\label{wxresourcecreateicon}
2746 \func{wxIcon *}{wxResourceCreateIcon}{\param{const wxString\& }{resource}}
2748 Creates a new icon from a file, static data, or Windows resource, given a valid
2749 wxWindows icon resource identifier. For example, if the .WXR file contains
2753 static const wxString\& project_resource = "icon(name = 'project_resource',\
2754 icon = ['project', wxBITMAP_TYPE_ICO_RESOURCE, 'WINDOWS'],\
2755 icon = ['project', wxBITMAP_TYPE_XBM_DATA, 'X']).";
2758 then this function can be called as follows:
2761 wxIcon *icon = wxResourceCreateIcon("project_resource");
2764 \membersection{::wxResourceCreateMenuBar}\label{wxresourcecreatemenubar}
2766 \func{wxMenuBar *}{wxResourceCreateMenuBar}{\param{const wxString\& }{resource}}
2768 Creates a new menu bar given a valid wxWindows menubar resource
2769 identifier. For example, if the .WXR file contains the following:
2772 static const wxString\& menuBar11 = "menu(name = 'menuBar11',\
2776 ['&Open File', 2, 'Open a file'],\
2777 ['&Save File', 3, 'Save a file'],\
2779 ['E&xit', 4, 'Exit program']\
2782 ['&About', 6, 'About this program']\
2787 then this function can be called as follows:
2790 wxMenuBar *menuBar = wxResourceCreateMenuBar("menuBar11");
2794 \membersection{::wxResourceGetIdentifier}\label{wxresourcegetidentifier}
2796 \func{int}{wxResourceGetIdentifier}{\param{const wxString\& }{name}}
2798 Used for retrieving the integer value associated with an identifier.
2799 A zero value indicates that the identifier was not found.
2801 See \helpref{wxResourceAddIdentifier}{wxresourceaddidentifier}.
2803 \membersection{::wxResourceParseData}\label{wxresourcedata}
2805 \func{bool}{wxResourceParseData}{\param{const wxString\& }{resource}, \param{wxResourceTable *}{table = NULL}}
2807 Parses a string containing one or more wxWindows resource objects. If
2808 the resource objects are global static data that are included into the
2809 C++ program, then this function must be called for each variable
2810 containing the resource data, to make it known to wxWindows.
2812 {\it resource} should contain data in the following form:
2815 dialog(name = 'dialog1',
2816 style = 'wxCAPTION | wxDEFAULT_DIALOG_STYLE',
2817 title = 'Test dialog box',
2818 x = 312, y = 234, width = 400, height = 300,
2820 control = [1000, wxStaticBox, 'Groupbox', '0', 'group6', 5, 4, 380, 262,
2821 [11, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0]],
2822 control = [1001, wxTextCtrl, '', 'wxTE_MULTILINE', 'text3',
2823 156, 126, 200, 70, 'wxWindows is a multi-platform, GUI toolkit.',
2824 [11, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0],
2825 [11, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0]]).
2828 This function will typically be used after including a {\tt .wxr} file into
2829 a C++ program as follows:
2832 #include "dialog1.wxr"
2835 Each of the contained resources will declare a new C++ variable, and each
2836 of these variables should be passed to wxResourceParseData.
2838 \membersection{::wxResourceParseFile}\label{wxresourceparsefile}
2840 \func{bool}{wxResourceParseFile}{\param{const wxString\& }{filename}, \param{wxResourceTable *}{table = NULL}}
2842 Parses a file containing one or more wxWindows resource objects
2843 in C++-compatible syntax. Use this function to dynamically load
2844 wxWindows resource data.
2846 \membersection{::wxResourceParseString}\label{wxresourceparsestring}
2848 \func{bool}{wxResourceParseString}{\param{char*}{ s}, \param{wxResourceTable *}{table = NULL}}
2850 Parses a string containing one or more wxWindows resource objects. If
2851 the resource objects are global static data that are included into the
2852 C++ program, then this function must be called for each variable
2853 containing the resource data, to make it known to wxWindows.
2855 {\it resource} should contain data with the following form:
2858 dialog(name = 'dialog1',
2859 style = 'wxCAPTION | wxDEFAULT_DIALOG_STYLE',
2860 title = 'Test dialog box',
2861 x = 312, y = 234, width = 400, height = 300,
2863 control = [1000, wxStaticBox, 'Groupbox', '0', 'group6', 5, 4, 380, 262,
2864 [11, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0]],
2865 control = [1001, wxTextCtrl, '', 'wxTE_MULTILINE', 'text3',
2866 156, 126, 200, 70, 'wxWindows is a multi-platform, GUI toolkit.',
2867 [11, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0],
2868 [11, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0]]).
2871 This function will typically be used after calling \helpref{wxLoadUserResource}{wxloaduserresource} to
2872 load an entire {\tt .wxr file} into a string.
2874 \membersection{::wxResourceRegisterBitmapData}\label{registerbitmapdata}
2876 \func{bool}{wxResourceRegisterBitmapData}{\param{const wxString\& }{name}, \param{char* }{xbm\_data}, \param{int }{width},
2877 \param{int }{height}, \param{wxResourceTable *}{table = NULL}}
2879 \func{bool}{wxResourceRegisterBitmapData}{\param{const wxString\& }{name}, \param{char** }{xpm\_data}}
2881 Makes \tt{#}included XBM or XPM bitmap data known to the wxWindows resource system.
2882 This is required if other resources will use the bitmap data, since otherwise there
2883 is no connection between names used in resources, and the global bitmap data.
2885 \membersection{::wxResourceRegisterIconData}\label{wxresourceregistericondata}
2887 Another name for \helpref{wxResourceRegisterBitmapData}{registerbitmapdata}.
2889 \section{Log functions}\label{logfunctions}
2891 These functions provide a variety of logging functions: see \helpref{Log classes overview}{wxlogoverview} for
2892 further information. The functions use (implicitly) the currently active log
2893 target, so their descriptions here may not apply if the log target is not the
2894 standard one (installed by wxWindows in the beginning of the program).
2896 \wxheading{Include files}
2900 \membersection{::wxDebugMsg}\label{wxdebugmsg}
2902 \func{void}{wxDebugMsg}{\param{const wxString\& }{fmt}, \param{...}{}}
2904 {\bf This function is deprecated, use \helpref{wxLogDebug}{wxlogdebug} instead!}
2906 Display a debugging message; under Windows, this will appear on the
2907 debugger command window, and under Unix, it will be written to standard
2910 The syntax is identical to {\bf printf}: pass a format string and a
2911 variable list of arguments.
2913 {\bf Tip:} under Windows, if your application crashes before the
2914 message appears in the debugging window, put a wxYield call after
2915 each wxDebugMsg call. wxDebugMsg seems to be broken under WIN32s
2916 (at least for Watcom C++): preformat your messages and use OutputDebugString
2919 This function is now obsolete, replaced by \helpref{Log functions}{logfunctions}.
2921 \wxheading{Include files}
2925 \membersection{::wxError}\label{wxerror}
2927 \func{void}{wxError}{\param{const wxString\& }{msg}, \param{const wxString\& }{title = "wxWindows Internal Error"}}
2929 This function is now obsolete, please use \helpref{wxLogError}{wxlogerror}
2932 Displays {\it msg} and continues. This writes to standard error under
2933 Unix, and pops up a message box under Windows. Used for internal
2934 wxWindows errors. See also \helpref{wxFatalError}{wxfatalerror}.
2936 \wxheading{Include files}
2940 \membersection{::wxFatalError}\label{wxfatalerror}
2942 \func{void}{wxFatalError}{\param{const wxString\& }{msg}, \param{const wxString\& }{title = "wxWindows Fatal Error"}}
2944 This function is now obsolete, please use
2945 \helpref{wxLogFatalError}{wxlogfatalerror} instead.
2947 Displays {\it msg} and exits. This writes to standard error under Unix,
2948 and pops up a message box under Windows. Used for fatal internal
2949 wxWindows errors. See also \helpref{wxError}{wxerror}.
2951 \wxheading{Include files}
2955 \membersection{::wxLogError}\label{wxlogerror}
2957 \func{void}{wxLogError}{\param{const char*}{ formatString}, \param{...}{}}
2958 \func{void}{wxLogError}{\param{const char*}{ formatString}, \param{va_list}{argPtr}}
2960 The functions to use for error messages, i.e. the messages that must be shown
2961 to the user. The default processing is to pop up a message box to inform the
2964 \membersection{::wxLogFatalError}\label{wxlogfatalerror}
2966 \func{void}{wxLogFatalError}{\param{const char*}{ formatString}, \param{...}{}}
2967 \func{void}{wxLogFatalError}{\param{const char*}{ formatString}, \param{va_list}{argPtr}}
2969 Like \helpref{wxLogError}{wxlogerror}, but also
2970 terminates the program with the exit code 3. Using {\it abort()} standard
2971 function also terminates the program with this exit code.
2973 \membersection{::wxLogWarning}\label{wxlogwarning}
2975 \func{void}{wxLogWarning}{\param{const char*}{ formatString}, \param{...}{}}
2976 \func{void}{wxLogWarning}{\param{const char*}{ formatString}, \param{va_list}{argPtr}}
2978 For warnings - they are also normally shown to the user, but don't interrupt
2981 \membersection{::wxLogMessage}\label{wxlogmessage}
2983 \func{void}{wxLogMessage}{\param{const char*}{ formatString}, \param{...}{}}
2984 \func{void}{wxLogMessage}{\param{const char*}{ formatString}, \param{va_list}{argPtr}}
2986 For all normal, informational messages. They also appear in a message box by
2987 default (but it can be changed). Notice that the standard behaviour is to not
2988 show informational messages if there are any errors later - the logic being
2989 that the later error messages make the informational messages preceding them
2992 \membersection{::wxLogVerbose}\label{wxlogverbose}
2994 \func{void}{wxLogVerbose}{\param{const char*}{ formatString}, \param{...}{}}
2995 \func{void}{wxLogVerbose}{\param{const char*}{ formatString}, \param{va_list}{argPtr}}
2997 For verbose output. Normally, it is suppressed, but
2998 might be activated if the user wishes to know more details about the program
2999 progress (another, but possibly confusing name for the same function is {\bf wxLogInfo}).
3001 \membersection{::wxLogStatus}\label{wxlogstatus}
3003 \func{void}{wxLogStatus}{\param{wxFrame *}{frame}, \param{const char*}{ formatString}, \param{...}{}}
3004 \func{void}{wxLogStatus}{\param{wxFrame *}{frame}, \param{const char*}{ formatString}, \param{va_list}{argPtr}}
3006 \func{void}{wxLogStatus}{\param{const char*}{ formatString}, \param{...}{}}
3007 \func{void}{wxLogStatus}{\param{const char*}{ formatString}, \param{va_list}{argPtr}}
3009 Messages logged by these functions will appear in the statusbar of the {\it
3010 frame} or of the top level application window by default (i.e. when using
3011 the second version of the functions).
3013 If the target frame doesn't have a statusbar, the message will be lost.
3015 \membersection{::wxLogSysError}\label{wxlogsyserror}
3017 \func{void}{wxLogSysError}{\param{const char*}{ formatString}, \param{...}{}}
3018 \func{void}{wxLogSysError}{\param{const char*}{ formatString}, \param{va_list}{argPtr}}
3020 Mostly used by wxWindows itself, but might be handy for logging errors after
3021 system call (API function) failure. It logs the specified message text as well
3022 as the last system error code ({\it errno} or {\it ::GetLastError()} depending
3023 on the platform) and the corresponding error message. The second form
3024 of this function takes the error code explicitly as the first argument.
3026 \wxheading{See also}
3028 \helpref{wxSysErrorCode}{wxsyserrorcode},
3029 \helpref{wxSysErrorMsg}{wxsyserrormsg}
3031 \membersection{::wxLogDebug}\label{wxlogdebug}
3033 \func{void}{wxLogDebug}{\param{const char*}{ formatString}, \param{...}{}}
3034 \func{void}{wxLogDebug}{\param{const char*}{ formatString}, \param{va_list}{argPtr}}
3036 The right functions for debug output. They only do something in debug
3037 mode (when the preprocessor symbol \_\_WXDEBUG\_\_ is defined) and expand to
3038 nothing in release mode (otherwise).
3040 \membersection{::wxLogTrace}\label{wxlogtrace}
3042 \func{void}{wxLogTrace}{\param{const char*}{ formatString}, \param{...}{}}
3043 \func{void}{wxLogTrace}{\param{const char*}{ formatString}, \param{va_list}{argPtr}}
3045 \func{void}{wxLogTrace}{\param{const char *}{mask}, \param{const char *}{formatString}, \param{...}{}}
3046 \func{void}{wxLogTrace}{\param{const char *}{mask}, \param{const char *}{formatString}, \param{va_list}{argPtr}}
3048 \func{void}{wxLogTrace}{\param{wxTraceMask}{ mask}, \param{const char *}{formatString}, \param{...}{}}
3049 \func{void}{wxLogTrace}{\param{wxTraceMask}{ mask}, \param{const char *}{formatString}, \param{va_list}{argPtr}}
3051 As {\bf wxLogDebug}, trace functions only do something in debug build and
3052 expand to nothing in the release one. The reason for making
3053 it a separate function from it is that usually there are a lot of trace
3054 messages, so it might make sense to separate them from other debug messages.
3056 The trace messages also usually can be separated into different categories and
3057 the second and third versions of this function only log the message if the
3058 {\it mask} which it has is currently enabled in \helpref{wxLog}{wxlog}. This
3059 allows to selectively trace only some operations and not others by changing
3060 the value of the trace mask (possible during the run-time).
3062 For the second function (taking a string mask), the message is logged only if
3063 the mask has been previously enabled by the call to
3064 \helpref{AddTraceMask}{wxlogaddtracemask}. The predefined string trace masks
3065 used by wxWindows are:
3067 \begin{itemize}\itemsep=0pt
3068 \item wxTRACE\_MemAlloc: trace memory allocation (new/delete)
3069 \item wxTRACE\_Messages: trace window messages/X callbacks
3070 \item wxTRACE\_ResAlloc: trace GDI resource allocation
3071 \item wxTRACE\_RefCount: trace various ref counting operations
3072 \item wxTRACE\_OleCalls: trace OLE method calls (Win32 only)
3075 The third version of the function only logs the message if all the bit
3076 corresponding to the {\it mask} are set in the wxLog trace mask which can be
3077 set by \helpref{SetTraceMask}{wxlogsettracemask}. This version is less
3078 flexible than the previous one because it doesn't allow defining the user
3079 trace masks easily - this is why it is deprecated in favour of using string
3082 \begin{itemize}\itemsep=0pt
3083 \item wxTraceMemAlloc: trace memory allocation (new/delete)
3084 \item wxTraceMessages: trace window messages/X callbacks
3085 \item wxTraceResAlloc: trace GDI resource allocation
3086 \item wxTraceRefCount: trace various ref counting operations
3087 \item wxTraceOleCalls: trace OLE method calls (Win32 only)
3090 \membersection{::wxSysErrorCode}\label{wxsyserrorcode}
3092 \func{unsigned long}{wxSysErrorCode}{\void}
3094 Returns the error code from the last system call. This function uses
3095 {\tt errno} on Unix platforms and {\tt GetLastError} under Win32.
3097 \wxheading{See also}
3099 \helpref{wxSysErrorMsg}{wxsyserrormsg},
3100 \helpref{wxLogSysError}{wxlogsyserror}
3102 \membersection{::wxSysErrorMsg}\label{wxsyserrormsg}
3104 \func{const wxChar *}{wxSysErrorMsg}{\param{unsigned long }{errCode = 0}}
3106 Returns the error message corresponding to the given system error code. If
3107 {\it errCode} is $0$ (default), the last error code (as returned by
3108 \helpref{wxSysErrorCode}{wxsyserrorcode}) is used.
3110 \wxheading{See also}
3112 \helpref{wxSysErrorCode}{wxsyserrorcode},
3113 \helpref{wxLogSysError}{wxlogsyserror}
3115 \membersection{WXTRACE}\label{trace}
3117 \wxheading{Include files}
3121 \func{}{WXTRACE}{formatString, ...}
3123 Calls wxTrace with printf-style variable argument syntax. Output
3124 is directed to the current output stream (see \helpref{wxDebugContext}{wxdebugcontextoverview}).
3126 This macro is now obsolete, replaced by \helpref{Log functions}{logfunctions}.
3128 \wxheading{Include files}
3132 \membersection{WXTRACELEVEL}\label{tracelevel}
3134 \func{}{WXTRACELEVEL}{level, formatString, ...}
3136 Calls wxTraceLevel with printf-style variable argument syntax. Output
3137 is directed to the current output stream (see \helpref{wxDebugContext}{wxdebugcontextoverview}).
3138 The first argument should be the level at which this information is appropriate.
3139 It will only be output if the level returned by wxDebugContext::GetLevel is equal to or greater than
3142 This function is now obsolete, replaced by \helpref{Log functions}{logfunctions}.
3144 \wxheading{Include files}
3148 \membersection{::wxTrace}\label{wxtrace}
3150 \func{void}{wxTrace}{\param{const wxString\& }{fmt}, \param{...}{}}
3152 Takes printf-style variable argument syntax. Output
3153 is directed to the current output stream (see \helpref{wxDebugContext}{wxdebugcontextoverview}).
3155 This function is now obsolete, replaced by \helpref{Log functions}{logfunctions}.
3157 \wxheading{Include files}
3161 \membersection{::wxTraceLevel}\label{wxtracelevel}
3163 \func{void}{wxTraceLevel}{\param{int}{ level}, \param{const wxString\& }{fmt}, \param{...}{}}
3165 Takes printf-style variable argument syntax. Output
3166 is directed to the current output stream (see \helpref{wxDebugContext}{wxdebugcontextoverview}).
3167 The first argument should be the level at which this information is appropriate.
3168 It will only be output if the level returned by wxDebugContext::GetLevel is equal to or greater than
3171 This function is now obsolete, replaced by \helpref{Log functions}{logfunctions}.
3173 \wxheading{Include files}
3177 \section{Time functions}\label{timefunctions}
3179 The functions in this section deal with getting the current time and
3180 starting/stopping the global timers. Please note that the timer functions are
3181 deprecated because they work with one global timer only and
3182 \helpref{wxTimer}{wxtimer} and/or \helpref{wxStopWatch}{wxstopwatch} classes
3183 should be used instead. For retrieving the current time, you may also use
3184 \helpref{wxDateTime::Now}{wxdatetimenow} or
3185 \helpref{wxDateTime::UNow}{wxdatetimeunow} methods.
3187 \membersection{::wxGetElapsedTime}\label{wxgetelapsedtime}
3189 \func{long}{wxGetElapsedTime}{\param{bool}{ resetTimer = TRUE}}
3191 Gets the time in milliseconds since the last \helpref{::wxStartTimer}{wxstarttimer}.
3193 If {\it resetTimer} is TRUE (the default), the timer is reset to zero
3196 See also \helpref{wxTimer}{wxtimer}.
3198 \wxheading{Include files}
3202 \membersection{::wxGetLocalTime}\label{wxgetlocaltime}
3204 \func{long}{wxGetLocalTime}{\void}
3206 Returns the number of seconds since local time 00:00:00 Jan 1st 1970.
3208 \wxheading{See also}
3210 \helpref{wxDateTime::Now}{wxdatetimenow}
3212 \wxheading{Include files}
3216 \membersection{::wxGetLocalTimeMillis}\label{wxgetlocaltimemillis}
3218 \func{wxLongLone}{wxGetLocalTimeMillis}{\void}
3220 Returns the number of milliseconds since local time 00:00:00 Jan 1st 1970.
3222 \wxheading{See also}
3224 \helpref{wxDateTime::Now}{wxdatetimenow},\\
3225 \helpref{wxLongLone}{wxlonglong}
3227 \wxheading{Include files}
3231 \membersection{::wxGetUTCTime}\label{wxgetutctime}
3233 \func{long}{wxGetUTCTime}{\void}
3235 Returns the number of seconds since GMT 00:00:00 Jan 1st 1970.
3237 \wxheading{See also}
3239 \helpref{wxDateTime::Now}{wxdatetimenow}
3241 \wxheading{Include files}
3245 \membersection{::wxNow}\label{wxnow}
3247 \func{wxString}{wxNow}{\void}
3249 Returns a string representing the current date and time.
3251 \wxheading{Include files}
3255 \membersection{::wxSleep}\label{wxsleep}
3257 \func{void}{wxSleep}{\param{int}{ secs}}
3259 Sleeps for the specified number of seconds.
3261 \wxheading{Include files}
3265 \membersection{::wxStartTimer}\label{wxstarttimer}
3267 \func{void}{wxStartTimer}{\void}
3269 Starts a stopwatch; use \helpref{::wxGetElapsedTime}{wxgetelapsedtime} to get the elapsed time.
3271 See also \helpref{wxTimer}{wxtimer}.
3273 \wxheading{Include files}
3277 \membersection{::wxUsleep}\label{wxusleep}
3279 \func{void}{wxUsleep}{\param{unsigned long}{ milliseconds}}
3281 Sleeps for the specified number of milliseconds. Notice that usage of this
3282 function is encouraged instead of calling usleep(3) directly because the
3283 standard usleep() function is not MT safe.
3285 \wxheading{Include files}
3289 \section{Debugging macros and functions}\label{debugmacros}
3291 Useful macros and functions for error checking and defensive programming. ASSERTs are only
3292 compiled if \_\_WXDEBUG\_\_ is defined, whereas CHECK macros stay in release
3295 \wxheading{Include files}
3299 \membersection{::wxOnAssert}\label{wxonassert}
3301 \func{void}{wxOnAssert}{\param{const char*}{ fileName}, \param{int}{ lineNumber}, \param{const char*}{ msg = NULL}}
3303 This function may be redefined to do something non trivial and is called
3304 whenever one of debugging macros fails (i.e. condition is false in an
3306 % TODO: this should probably be an overridable in wxApp.
3308 \membersection{wxASSERT}\label{wxassert}
3310 \func{}{wxASSERT}{\param{}{condition}}
3312 Assert macro. An error message will be generated if the condition is FALSE in
3313 debug mode, but nothing will be done in the release build.
3315 Please note that the condition in wxASSERT() should have no side effects
3316 because it will not be executed in release mode at all.
3318 See also: \helpref{wxASSERT\_MSG}{wxassertmsg}
3320 \membersection{wxASSERT\_MSG}\label{wxassertmsg}
3322 \func{}{wxASSERT\_MSG}{\param{}{condition}, \param{}{msg}}
3324 Assert macro with message. An error message will be generated if the condition is FALSE.
3326 See also: \helpref{wxASSERT}{wxassert}
3328 \membersection{wxFAIL}\label{wxfail}
3330 \func{}{wxFAIL}{\void}
3332 Will always generate an assert error if this code is reached (in debug mode).
3334 See also: \helpref{wxFAIL\_MSG}{wxfailmsg}
3336 \membersection{wxFAIL\_MSG}\label{wxfailmsg}
3338 \func{}{wxFAIL\_MSG}{\param{}{msg}}
3340 Will always generate an assert error with specified message if this code is reached (in debug mode).
3342 This macro is useful for marking unreachable" code areas, for example
3343 it may be used in the "default:" branch of a switch statement if all possible
3344 cases are processed above.
3346 See also: \helpref{wxFAIL}{wxfail}
3348 \membersection{wxCHECK}\label{wxcheck}
3350 \func{}{wxCHECK}{\param{}{condition}, \param{}{retValue}}
3352 Checks that the condition is true, returns with the given return value if not (FAILs in debug mode).
3353 This check is done even in release mode.
3355 \membersection{wxCHECK\_MSG}\label{wxcheckmsg}
3357 \func{}{wxCHECK\_MSG}{\param{}{condition}, \param{}{retValue}, \param{}{msg}}
3359 Checks that the condition is true, returns with the given return value if not (FAILs in debug mode).
3360 This check is done even in release mode.
3362 This macro may be only used in non void functions, see also
3363 \helpref{wxCHECK\_RET}{wxcheckret}.
3365 \membersection{wxCHECK\_RET}\label{wxcheckret}
3367 \func{}{wxCHECK\_RET}{\param{}{condition}, \param{}{msg}}
3369 Checks that the condition is true, and returns if not (FAILs with given error
3370 message in debug mode). This check is done even in release mode.
3372 This macro should be used in void functions instead of
3373 \helpref{wxCHECK\_MSG}{wxcheckmsg}.
3375 \membersection{wxCHECK2}\label{wxcheck2}
3377 \func{}{wxCHECK2}{\param{}{condition}, \param{}{operation}}
3379 Checks that the condition is true and \helpref{wxFAIL}{wxfail} and execute
3380 {\it operation} if it is not. This is a generalisation of
3381 \helpref{wxCHECK}{wxcheck} and may be used when something else than just
3382 returning from the function must be done when the {\it condition} is false.
3384 This check is done even in release mode.
3386 \membersection{wxCHECK2\_MSG}\label{wxcheck2msg}
3388 \func{}{wxCHECK2}{\param{}{condition}, \param{}{operation}, \param{}{msg}}
3390 This is the same as \helpref{wxCHECK2}{wxcheck2}, but
3391 \helpref{wxFAIL\_MSG}{wxfailmsg} with the specified {\it msg} is called
3392 instead of wxFAIL() if the {\it condition} is false.
3394 \membersection{::wxTrap}\label{wxtrap}
3396 \func{void}{wxTrap}{\void}
3398 In debug mode (when {\tt \_\_WXDEBUG\_\_} is defined) this function generates a
3399 debugger exception meaning that the control is passed to the debugger if one is
3400 attached to the process. Otherwise the program just terminates abnormally.
3402 In release mode this function does nothing.
3404 \wxheading{Include files}
3408 \section{Environment access functions}\label{environfunctions}
3410 The functions in this section allow to access (get) or change value of
3411 environment variables in a portable way. They are currently implemented under
3412 Win32 and POSIX-like systems (Unix).
3414 % TODO add some stuff about env var inheriting but not propagating upwards (VZ)
3416 \wxheading{Include files}
3420 \membersection{wxGetenv}\label{wxgetenvmacro}
3422 \func{wxChar *}{wxGetEnv}{\param{const wxString\&}{ var}}
3424 This is a macro defined as {\tt getenv()} or its wide char version in Unicode
3427 Note that under Win32 it may not return correct value for the variables set
3428 with \helpref{wxSetEnv}{wxsetenv}, use \helpref{wxGetEnv}{wxgetenv} function
3431 \membersection{wxGetEnv}\label{wxgetenv}
3433 \func{bool}{wxGetEnv}{\param{const wxString\&}{ var}, \param{wxString *}{value}}
3435 Returns the current value of the environment variable {\it var} in {\it value}.
3436 {\it value} may be {\tt NULL} if you just want to know if the variable exists
3437 and are not interested in its value.
3439 Returns {\tt TRUE} if the variable exists, {\tt FALSE} otherwise.
3441 \membersection{wxSetEnv}\label{wxsetenv}
3443 \func{bool}{wxSetEnv}{\param{const wxString\&}{ var}, \param{const wxChar *}{value}}
3445 Sets the value of the environment variable {\it var} (adding it if necessary)
3448 Returns {\tt TRUE} on success.
3450 \membersection{wxUnsetEnv}\label{wxunsetenv}
3452 \func{bool}{wxUnsetEnv}{\param{const wxString\&}{ var}}
3454 Removes the variable {\it var} from the environment.
3455 \helpref{wxGetEnv}{wxgetenv} will return {\tt NULL} after the call to this
3458 Returns {\tt TRUE} on success.