/////////////////////////////////////////////////////////////////////////////
// Name:        cat_functions.h
// Purpose:     Functions-by-category page of the Doxygen manual
// Author:      wxWidgets team
// RCS-ID:      $Id$
// Licence:     wxWindows license
/////////////////////////////////////////////////////////////////////////////
/*!
 @page page_func_cat Functions by category
 A classification of wxWidgets functions by category.
 @li @ref page_func_cat_appinitterm
 @li @ref page_func_cat_procctrl
 @li @ref page_func_cat_thread
 @li @ref page_func_cat_file
 @li @ref page_func_cat_networkuseros
 @li @ref page_func_cat_string
 @li @ref page_func_cat_dialog
 @li @ref page_func_cat_math
 @li @ref page_func_cat_gdi
 @li @ref page_func_cat_printer
 @li @ref page_func_cat_clipboard
 @li @ref page_func_cat_misc
 @li @ref page_func_cat_log
 @li @ref page_func_cat_time
 @li @ref page_func_cat_debug
 @li @ref page_func_cat_env
 @li @ref page_func_cat_atomic
 
 @section page_func_cat_appinitterm Application initialization and termination
 The functions in this section are used on application startup/shutdown and also
 to control the behaviour of the main event loop of the GUI programs.
 @li wxEntry
 @li wxEntryCleanup
 @li wxEntryStart
 @li wxGetApp
 @li wxHandleFatalExceptions
 @li wxInitAllImageHandlers
 @li wxInitialize
 @li wxSafeYield
 @li wxUninitialize
 @li wxYield
 @li wxWakeUpIdle
 @section page_func_cat_procctrl Process control functions
 The functions in this section are used to launch or terminate the other processes.
 @li wxExecute
 @li wxExit
 @li wxJoin
 @li wxKill
 @li wxGetProcessId
 @li wxShell
 @li wxShutdown
 @section page_func_cat_thread Thread functions
 The functions and macros here mainly exist to make it writing the code which may be
 compiled in multi thread build (wxUSE_THREADS = 1) as well as in single thread
 configuration (wxUSE_THREADS = 0).
 For example, a static variable must be protected against simultaneous access by multiple
 threads in the former configuration but in the latter the extra overhead of using the
 critical section is not needed. To solve this problem, the wxCRITICAL_SECTION macro
 may be used to create and use the critical section only when needed.
 @header{wx/thread.h}
 @sa
 wxThread, wxMutex, @ref overview_thread
 @li wxIsMainThread
 @li wxMutexGuiEnter
 @li wxMutexGuiLeave
 @section page_func_cat_file File functions
 @header{wx/filefn.h}
 @sa
 wxPathList, wxDir, wxFile, wxFileName
 @li wxDos2UnixFilename
 @li wxFileExists
 @li wxFileModificationTime
 @li wxFileNameFromPath
 @li wxFindFirstFile
 @li wxFindNextFile
 @li wxGetDiskSpace
 @li wxGetFileKind
 @li wxGetOSDirectory
 @li wxIsAbsolutePath
 @li wxDirExists
 @li wxPathOnly
 @li wxUnix2DosFilename
 @li wxConcatFiles
 @li wxCopyFile
 @li wxGetCwd
 @li wxGetWorkingDirectory
 @li wxGetTempFileName
 @li wxIsWild
 @li wxMatchWild
 @li wxMkdir
 @li wxParseCommonDialogsFilter
 @li wxRemoveFile
 @li wxRenameFile
 @li wxRmdir
 @li wxSetWorkingDirectory
 @li wxSplit
 @li wxSplitPath
 @li wxTransferFileToStream
 @li wxTransferStreamToFile
 @section page_func_cat_networkuseros Network, user and OS functions
 The functions in this section are used to retrieve information about the current
 computer and/or user characteristics.
 @li wxGetEmailAddress
 @li wxGetFreeMemory
 @li wxGetFullHostName
 @li wxGetHomeDir
 @li wxGetHostName
 @li wxGetOsDescription
 @li wxGetOsVersion
 @li wxIsPlatformLittleEndian
 @li wxIsPlatform64Bit
 @li wxGetUserHome
 @li wxGetUserId
 @li wxGetUserName
 @section page_func_cat_string String functions
 @li wxGetTranslation
 @li wxIsEmpty
 @li wxStrcmp
 @li wxStricmp
 @li wxStringEq
 @li wxStringMatch
 @li wxStringTokenize
 @li wxStrlen
 @li wxSnprintf
 @li wxVsnprintf
 @section page_func_cat_dialog Dialog functions
 Below are a number of convenience functions for getting input from the user
 or displaying messages. Note that in these functions the last three parameters
 are optional. However, it is recommended to pass a parent frame parameter, or
 (in MS Windows or Motif) the wrong window frame may be brought to the front when
 the dialog box is popped up.
 @li wxAboutBox
 @li wxBeginBusyCursor
 @li wxBell
 @li wxCreateFileTipProvider
 @li wxDirSelector
 @li wxFileSelector
 @li wxEndBusyCursor
 @li wxGenericAboutBox
 @li wxGetColourFromUser
 @li wxGetFontFromUser
 @li wxGetMultipleChoices
 @li wxGetNumberFromUser
 @li wxGetPasswordFromUser
 @li wxGetTextFromUser
 @li wxGetSingleChoice
 @li wxGetSingleChoiceIndex
 @li wxGetSingleChoiceData
 @li wxInfoMessageBox
 @li wxIsBusy
 @li wxMessageBox
 @li wxShowTip
 @section page_func_cat_math Math functions
 @header{wx/math.h}
 @li wxFinite
 @li wxIsNaN
 @section page_func_cat_gdi GDI functions
 The following are relevant to the GDI (Graphics Device Interface).
 @header{gdicmn.h}
 @li wxBITMAP
 @li wxClientDisplayRect
 @li wxColourDisplay
 @li wxDisplayDepth
 @li wxDisplaySize
 @li wxDisplaySizeMM
 @li wxDROP_ICON
 @li wxICON
 @li wxMakeMetafilePlaceable
 @li wxSetCursor
 @section page_func_cat_printer Printer settings
 NB: These routines are obsolete and should no longer be used!
 The following functions are used to control PostScript printing.
 Under Windows, PostScript output can only be sent to a file.
 @header{wx/dcps.h}
 @li wxGetPrinterCommand
 @li wxGetPrinterFile
 @li wxGetPrinterMode
 @li wxGetPrinterOptions
 @li wxGetPrinterOrientation
 @li wxGetPrinterPreviewCommand
 @li wxGetPrinterScaling
 @li wxGetPrinterTranslation
 @li wxSetPrinterCommand
 @li wxSetPrinterFile
 @li wxSetPrinterMode
 @li wxSetPrinterOptions
 @li wxSetPrinterOrientation
 @li wxSetPrinterPreviewCommand
 @li wxSetPrinterScaling
 @li wxSetPrinterTranslation
 @section page_func_cat_clipboard Clipboard functions
 These clipboard functions are implemented for Windows only.
 The use of these functions is deprecated and the code is no longer maintained.
 Use the wxClipboard class instead.
 @header{wx/clipbrd.h}
 @li wxClipboardOpen
 @li wxCloseClipboard
 @li wxEmptyClipboard
 @li wxEnumClipboardFormats
 @li wxGetClipboardData
 @li wxGetClipboardFormatName
 @li wxIsClipboardFormatAvailable
 @li wxOpenClipboard
 @li wxRegisterClipboardFormat
 @li wxSetClipboardData
 @section page_func_cat_misc Miscellaneous functions and macros
 @li wxBase64Decode
 @li wxBase64DecodedSize
 @li wxBase64Encode
 @li wxBase64EncodedSize
 @li wxGetKeyState
 @li wxNewId
 @li wxRegisterId
 @li wxDDECleanUp
 @li wxDDEInitialize
 @li wxEnableTopLevelWindows
 @li wxFindMenuItemId
 @li wxFindWindowByLabel
 @li wxFindWindowByName
 @li wxFindWindowAtPoint
 @li wxFindWindowAtPointer
 @li wxGetActiveWindow
 @li wxGetBatteryState
 @li wxGetDisplayName
 @li wxGetPowerType
 @li wxGetMousePosition
 @li wxGetMouseState
 @li wxGetStockLabel
 @li wxGetTopLevelParent
 @li wxLaunchDefaultBrowser
 @li wxLoadUserResource
 @li wxPostDelete
 @li wxPostEvent
 @li wxSetDisplayName
 @li wxStripMenuCodes
 @section page_func_cat_log Log functions
 These functions provide a variety of logging functions: see @ref overview_log for
 further information. The functions use (implicitly) the currently active log target,
 so their descriptions here may not apply if the log target is not the standard one
 (installed by wxWidgets in the beginning of the program).
 @header{wx/log.h}
 @li wxDebugMsg
 @li wxError
 @li wxFatalError
 @li wxLogError
 @li wxLogFatalError
 @li wxLogWarning
 @li wxLogMessage
 @li wxLogVerbose
 @li wxLogStatus
 @li wxLogSysError
 @li wxLogDebug
 @li wxLogTrace
 @li wxSafeShowMessage
 @li wxSysErrorCode
 @li wxSysErrorMsg
 @li wxTrace
 @li wxTraceLevel
 @section page_func_cat_time Time functions
 The functions in this section deal with getting the current time and sleeping
 for the specified time interval.
 @li wxGetLocalTime
 @li wxGetLocalTimeMillis
 @li wxGetUTCTime
 @li wxMicroSleep
 @li wxMilliSleep
 @li wxNow
 @li wxSleep
 @li wxUsleep
 @section page_func_cat_debug Debugging macros and functions
 Useful macros and functions for error checking and defensive programming.
 wxWidgets defines three families of the assert-like macros: the wxASSERT and wxFAIL
 macros only do anything if __WXDEBUG__ is defined (in other words, in the debug build)
 but disappear completely in the release build. On the other hand, the wxCHECK macros
 stay event in release builds but a check failure doesn't generate any user-visible effects
 then. Finally, the compile time assertions don't happen during the run-time but result
 in the compilation error messages if the condition they check fail.
 @header{wx/debug.h}
 @li wxOnAssert
 @li wxTrap
 @li wxIsDebuggerRunning
 @section page_func_cat_env Environment access functions
 The functions in this section allow to access (get) or change value of environment
 variables in a portable way. They are currently implemented under Win32 and
 POSIX-like systems (Unix).
 @header{wx/utils.h}
 @li wxGetenv
 @li wxGetEnv
 @li wxSetEnv
 @li wxUnsetEnv
 @section page_func_cat_atomic Atomic operation functions
 When using multi-threaded applications, it is often required to access or modify
 memory which is shared between threads. Atomic integer and pointer operations are
 an efficient way to handle this issue (another, less efficient, way is to use a mutex
 or critical section). A native implementation exists for Windows, Linux, Solaris and
 Mac OS X, for other OS, a wxCriticalSection is used to protect the data.
 One particular application is reference counting (used by so-called smart pointers).
 You should define your variable with the type wxAtomicInt in order to apply atomic operations to it.
 @header{wx/atomic.h}
 @li wxAtomicInc
 @li wxAtomicDec
*/