diff --git a/docs/doxygen/Doxyfile b/docs/doxygen/Doxyfile
index ab8eccfc05..5ab090654f 100644
--- a/docs/doxygen/Doxyfile
+++ b/docs/doxygen/Doxyfile
@@ -1,7 +1,7 @@
#############################################################################
## Name: Doxyfile
## Purpose: Doxygen configuration file for wxWidgets manual
-## Author: wxWidgets team
+## Author: Francesco Montorsi
## RCS-ID: $Id$
## Licence: wxWindows license
#############################################################################
@@ -62,7 +62,7 @@ ALIASES += beginExtraStyleTable="\section class_extrastyles Extra Styles\n"
ALIASES += endExtraStyleTable="\n"
# misc aliases
-ALIASES += library{1}="\section class_lib Library\n \ref \1"
+ALIASES += library{1}="\section class_lib Library\n \ref page_libraries_\1"
ALIASES += nolibrary="\section class_lib Library\n None; this class implementation is entirely header-based."
ALIASES += stdobjects="\section class_stdobj Predefined objects\n \b"
@@ -82,14 +82,47 @@ ALIASES += true="true"
ALIASES += false="false"
ALIASES += NULL="NULL"
-# these are useful for creation of tables
+# table aliases for 2 and 3 column tables
ALIASES += beginTable="
"
ALIASES += beginInvisibleTable=""
-ALIASES += row{2}="\1 | \2 |
"
-ALIASES += row{3}="\1 | \2 \3 |
"
-ALIASES += row{4}="\1 | \2 \3 \4 |
"
+ALIASES += row2col{2}="\1 | \2 |
"
+ALIASES += row2col{3}="\1 | \2,\3 |
"
+ALIASES += row2col{4}="\1 | \2,\3,\4 |
"
+ALIASES += row2col{5}="\1 | \2,\3,\4,\5 |
"
+ALIASES += row2col{6}="\1 | \2,\3,\4,\5,\6 |
"
+ALIASES += row2col{7}="\1 | \2,\3,\4,\5,\6,\7 |
"
+ALIASES += row2col{8}="\1 | \2,\3,\4,\5,\6,\7,\8 |
"
+ALIASES += row2col{9}="\1 | \2,\3,\4,\5,\6,\7,\8,\9 |
"
+ALIASES += row2col{10}="\1 | \2,\3,\4,\5,\6,\7,\8,\9,\10 |
"
+ALIASES += row3col{3}="\1 | \2 | \3 |
"
+ALIASES += row3col{4}="\1 | \2 | \3,\4 |
"
+ALIASES += row3col{5}="\1 | \2 | \3,\4,\5 |
"
+ALIASES += row3col{6}="\1 | \2 | \3,\4,\5,\6 |
"
+ALIASES += row3col{7}="\1 | \2 | \3,\4,\5,\6,\7 |
"
+ALIASES += row3col{8}="\1 | \2 | \3,\4,\5,\6,\7,\8 |
"
+ALIASES += row3col{9}="\1 | \2 | \3,\4,\5,\6,\7,\8,\9 |
"
+ALIASES += row3col{10}="\1 | \2 | \3,\4,\5,\6,\7,\8,\9,\10 |
"
ALIASES += endTable="
"
+# definition list aliases
+# a definition list currently is rendered as 2-column table but it may use as
+# well the , - and
- HTML tags in future.
+# In any case a definition list differs from a table because of its semantic
+# nature and because it is always the association of a "title" with a "description"
+# (in contrast a table may have more than 2 columns of data)...
+ALIASES += beginDefList="
"
+ALIASES += itemdef{2}="\b \1 | \2 |
"
+ALIASES += itemdef{3}="\b \1 | \2,\3 |
"
+ALIASES += itemdef{4}="\b \1 | \2,\3,\4 |
"
+ALIASES += itemdef{5}="\b \1 | \2,\3,\4,\5 |
"
+ALIASES += itemdef{6}="\b \1 | \2,\3,\4,\5,\6 |
"
+ALIASES += itemdef{7}="\b \1 | \2,\3,\4,\5,\6,\7 |
"
+ALIASES += itemdef{8}="\b \1 | \2,\3,\4,\5,\6,\7,\8 |
"
+ALIASES += itemdef{9}="\b \1 | \2,\3,\4,\5,\6,\7,\8,\9 |
"
+ALIASES += itemdef{10}="\b \1 | \2,\3,\4,\5,\6,\7,\8,\9,\10 |
"
+ALIASES += endDefList="
"
+
+
# NOTE: we could put aliases also for e.g. @wxDefaultSize, @wxDefaultPosition, @wxID_ANY,
# @wxEmptyString, @wxNullIcon, etc etc
@@ -147,7 +180,7 @@ WARN_LOGFILE = doxygen.log
#---------------------------------------------------------------------------
# configuration options related to the input files
#---------------------------------------------------------------------------
-INPUT = . ./overviews ../../interface
+INPUT = ./mainpages ./overviews #../../interface
INPUT_ENCODING = UTF-8
FILE_PATTERNS = *.h *.txt
RECURSIVE = YES
diff --git a/docs/doxygen/mainpages/categories.h b/docs/doxygen/mainpages/categories.h
new file mode 100644
index 0000000000..fb6291a941
--- /dev/null
+++ b/docs/doxygen/mainpages/categories.h
@@ -0,0 +1,740 @@
+/////////////////////////////////////////////////////////////////////////////
+// Name: categories.h
+// Purpose: Classes-by-category page of the Doxygen manual
+// Author: wxWidgets team
+// RCS-ID: $Id$
+// Licence: wxWindows license
+/////////////////////////////////////////////////////////////////////////////
+
+
+/*!
+
+ @page page_categories Classes by category
+
+ A classification of wxWidgets classes by category.
+
+ @beginInvisibleTable
+
+ @li @ref page_categories_manwnd
+ @li @ref page_categories_miscwnd
+ @li @ref page_categories_cmndlg
+ @li @ref page_categories_ctrl
+ @li @ref page_categories_miscpickers
+ @li @ref page_categories_menus
+ @li @ref page_categories_wxaui
+ @li @ref page_categories_winlayout
+ @li @ref page_categories_dc
+ @li @ref page_categories_gdi
+ @li @ref page_categories_events
+ @li @ref page_categories_val
+ @li @ref page_categories_data
+ @li @ref page_categories_containers
+ @li @ref page_categories_smartpointers
+ @li @ref page_categories_rtti
+ @li @ref page_categories_logging
+ @li @ref page_categories_debugging
+ @li @ref page_categories_net
+ |
+ @li @ref page_categories_ipc
+ @li @ref page_categories_dvf
+ @li @ref page_categories_printing
+ @li @ref page_categories_dd
+ @li @ref page_categories_file
+ @li @ref page_categories_streams
+ @li @ref page_categories_threading
+ @li @ref page_categories_html
+ @li @ref page_categories_rich
+ @li @ref page_categories_stc
+ @li @ref page_categories_vfs
+ @li @ref page_categories_xml
+ @li @ref page_categories_xrc
+ @li @ref page_categories_help
+ @li @ref page_categories_media
+ @li @ref page_categories_gl
+ @li @ref page_categories_appmanagement
+ @li @ref page_categories_misc
+ |
+ @endTable
+
+
+
+
+
+ @section page_categories_manwnd Managed windows
+
+ There are several types of window that are directly controlled by the
+ window manager (such as MS Windows, or the Motif Window Manager).
+ Frames and dialogs are similar in wxWidgets, but only dialogs may be modal.
+
+ @li wxTopLevelWindow: Any top level window, dialog or frame
+ @li wxDialog: Dialog box
+ @li wxFrame: Normal frame
+ @li wxMDIChildFrame: MDI child frame
+ @li wxMDIParentFrame: MDI parent frame
+ @li wxMiniFrame: A frame with a small title bar
+ @li wxPropertySheetDialog: Property sheet dialog
+ @li wxSplashScreen: Splash screen class
+ @li wxTipWindow: Shows text in a small window
+ @li wxWizard: A wizard dialog
+
+ See also the @ref commondialogs_overview.
+
+
+ @section page_categories_miscwnd Miscellaneous windows
+
+ The following are a variety of classes that are derived from wxWindow.
+
+ @li wxPanel: A window whose colour changes according to current user settings
+ @li wxScrolledWindow: Window with automatically managed scrollbars
+ @li wxGrid: A grid (table) window
+ @li wxSplitterWindow: Window which can be split vertically or horizontally
+ @li wxStatusBar: Implements the status bar on a frame
+ @li wxToolBar: Toolbar class
+ @li wxNotebook: Notebook class
+ @li wxListbook: Similar to notebook but using list control
+ @li wxChoicebook: Similar to notebook but using choice control
+ @li wxTreebook: Similar to notebook but using tree control
+ @li wxSashWindow: Window with four optional sashes that can be dragged
+ @li wxSashLayoutWindow: Window that can be involved in an IDE-like layout arrangement
+ @li wxVScrolledWindow: As wxScrolledWindow but supports lines of variable height
+ @li wxWizardPage: A base class for the page in wizard dialog.
+ @li wxWizardPageSimple: A page in wizard dialog.
+
+
+ @section page_categories_cmndlg Common dialogs
+
+ @ref commondialogs_overview
+
+ Common dialogs are ready-made dialog classes which are frequently used
+ in an application.
+
+ @li wxDialog: Base class for common dialogs
+ @li wxColourDialog: Colour chooser dialog
+ @li wxDirDialog: Directory selector dialog
+ @li wxFileDialog: File selector dialog
+ @li wxFindReplaceDialog: Text search/replace dialog
+ @li wxMultiChoiceDialog: Dialog to get one or more selections from a list
+ @li wxSingleChoiceDialog: Dialog to get a single selection from a list and return the string
+ @li wxTextEntryDialog: Dialog to get a single line of text from the user
+ @li wxPasswordEntryDialog: Dialog to get a password from the user
+ @li wxFontDialog: Font chooser dialog
+ @li wxPageSetupDialog: Standard page setup dialog
+ @li wxPrintDialog: Standard print dialog
+ @li wxProgressDialog: Progress indication dialog
+ @li wxMessageDialog: Simple message box dialog
+ @li wxSymbolPickerDialog: Symbol selector dialog
+ @li wxRichTextFormattingDialog: A dialog for formatting the content of a wxRichTextCtrl
+ @li wxWizard: A wizard dialog.
+
+
+ @section page_categories_ctrl Controls
+
+ Typically, these are small windows which provide interaction with the user. Controls
+ that are not static can have wxValidator associated with them.
+
+ @li wxAnimationCtrl: A control to display an animation
+ @li wxControl: The base class for controls
+ @li wxButton: Push button control, displaying text
+ @li wxBitmapButton: Push button control, displaying a bitmap
+ @li wxBitmapComboBox: A combobox with bitmaps next to text items
+ @li wxToggleButton: A button which stays pressed when clicked by user.
+ @li wxBitmapToggleButton: A toggle button with bitmaps.
+ @li wxCalendarCtrl: Control showing an entire calendar month
+ @li wxCheckBox: Checkbox control
+ @li wxCheckListBox: A listbox with a checkbox to the left of each item
+ @li wxChoice: Choice control (a combobox without the editable area)
+ @li wxCollapsiblePane: A panel which can be shown/hidden by the user
+ @li wxComboBox: A choice with an editable area
+ @li wxComboCtrl: A combobox with application defined popup
+ @li wxDataViewCtrl: A control to tabular or tree like data
+ @li wxDataViewTreeCtrl: A specialized wxDataViewCtrl with wxTreeCtrl-like API
+ @li wxGauge: A control to represent a varying quantity, such as time remaining
+ @li wxGenericDirCtrl: A control for displaying a directory tree
+ @li wxHtmlListBox: An abstract class for creating listboxes showing HTML content
+ @li wxSimpleHtmlListBox: A listbox showing HTML content
+ @li wxStaticBox: A static, or group box for visually grouping related controls
+ @li wxListBox: A list of strings for single or multiple selection
+ @li wxListCtrl: A control for displaying lists of strings and/or icons, plus a multicolumn report view
+ @li wxListView: A simpler interface (façade) for wxListCtrl in report mode
+ @li wxOwnerDrawnComboBox: A combobox with owner-drawn list items
+ @li wxRichTextCtrl: Generic rich text editing control
+ @li wxTextCtrl: Single or multiline text editing control
+ @li wxTreeCtrl: Tree (hierarchy) control
+ @li wxScrollBar: Scrollbar control
+ @li wxSpinButton: A spin or `up-down' control
+ @li wxSpinCtrl: A spin control - i.e. spin button and text control
+ @li wxStaticText: One or more lines of non-editable text
+ @li wxHyperlinkCtrl: A static text which opens an URL when clicked
+ @li wxStaticBitmap: A control to display a bitmap
+ @li wxRadioBox: A group of radio buttons
+ @li wxRadioButton: A round button to be used with others in a mutually exclusive way
+ @li wxSlider: A slider that can be dragged by the user
+ @li wxVListBox: A listbox supporting variable height rows
+
+
+
+ @section page_categories_miscpickers Miscellaneous pickers
+
+ A picker control is a control whose appearance and behaviour is highly platform-dependent.
+
+ @li wxColourPickerCtrl: A control which allows the user to choose a colour
+ @li wxDirPickerCtrl: A control which allows the user to choose a directory
+ @li wxFilePickerCtrl: A control which allows the user to choose a file
+ @li wxFontPickerCtrl: A control which allows the user to choose a font
+ @li wxDatePickerCtrl: Small date picker control
+
+
+
+ @section page_categories_menus Menus
+
+ @li wxMenu: Displays a series of menu items for selection
+ @li wxMenuBar: Contains a series of menus for use with a frame
+ @li wxMenuItem: Represents a single menu item
+
+
+
+ @section page_categories_wxaui wxAUI - advanced user interface
+
+ This is a new set of classes for writing a customizable application
+ interface with built-in docking, floatable panes and a flexible
+ MDI-like interface. Further classes for custom notebooks with
+ draggable tabs etc. are in progress. See also @ref aui_overview.
+
+ @li wxAuiManager: The central class for managing the interface
+ @li wxAuiNotebook: A replacement notebook class with extra features
+ @li wxAuiPaneInfo: Describes a single pane
+ @li wxAuiDockArt: Art and metrics provider for customizing the docking user interface
+ @li wxAuiTabArt: Art and metrics provider for customizing the notebook user interface
+
+
+
+ @section page_categories_winlayout Window layout
+
+ There are two different systems for laying out windows (and dialogs in particular).
+ One is based upon so-called sizers and it requires less typing, thinking and calculating
+ and will in almost all cases produce dialogs looking equally well on all platforms, the
+ other is based on so-called constraints and is deprecated, though still available.
+
+ @ref sizer_overview describes sizer-based layout.
+
+ These are the classes relevant to sizer-based layout.
+
+ @li wxSizer: Abstract base class
+ @li wxGridSizer: A sizer for laying out windows in a grid with all fields having the same size
+ @li wxFlexGridSizer: A sizer for laying out windows in a flexible grid
+ @li wxGridBagSizer: Another grid sizer that lets you specify the cell an item is in, and items can span rows and/or columns.
+ @li wxBoxSizer: A sizer for laying out windows in a row or column
+ @li wxStaticBoxSizer: Same as wxBoxSizer, but with a surrounding static box
+ @li wxWrapSizer: A sizer which wraps its child controls as size permits
+
+ @ref constraints_overview describes constraints-based layout.
+
+ These are the classes relevant to constraints-based window layout.
+
+ @li wxIndividualLayoutConstraint: Represents a single constraint dimension
+ @li wxLayoutConstraints: Represents the constraints for a window class
+
+ Other layouting classes:
+
+ @li wxLayoutAlgorithm: An alternative window layout facility
+
+
+ @section page_categories_dc Device contexts
+
+ @ref dc_overview
+
+ Device contexts are surfaces that may be drawn on, and provide an
+ abstraction that allows parameterisation of your drawing code
+ by passing different device contexts.
+
+ @li wxAutoBufferedPaintDC: A helper device context for double buffered drawing inside @b OnPaint.
+ @li wxBufferedDC: A helper device context for double buffered drawing.
+ @li wxBufferedPaintDC: A helper device context for double buffered drawing inside @b OnPaint.
+ @li wxClientDC: A device context to access the client area outside @b OnPaint events
+ @li wxPaintDC: A device context to access the client area inside @b OnPaint events
+ @li wxWindowDC: A device context to access the non-client area
+ @li wxScreenDC: A device context to access the entire screen
+ @li wxDC: The device context base class
+ @li wxMemoryDC: A device context for drawing into bitmaps
+ @li wxMetafileDC: A device context for drawing into metafiles
+ @li wxMirrorDC: A proxy device context allowing for simple mirroring.
+ @li wxPostScriptDC: A device context for drawing into PostScript files
+ @li wxPrinterDC: A device context for drawing to printers
+
+
+ @section page_categories_gdi Graphics device interface
+
+ @ref bitmap_overview
+
+ These classes are related to drawing on device contexts and windows.
+
+ @li wxColour: Represents the red, blue and green elements of a colour
+ @li wxDCClipper: Wraps the operations of setting and destroying the clipping region
+ @li wxBitmap: Represents a bitmap
+ @li wxBrush: Used for filling areas on a device context
+ @li wxBrushList: The list of previously-created brushes
+ @li wxCursor: A small, transparent bitmap representing the cursor
+ @li wxFont: Represents fonts
+ @li wxFontList: The list of previously-created fonts
+ @li wxIcon: A small, transparent bitmap for assigning to frames and drawing on device contexts
+ @li wxImage: A platform-independent image class
+ @li wxImageList: A list of images, used with some controls
+ @li wxMask: Represents a mask to be used with a bitmap for transparent drawing
+ @li wxPen: Used for drawing lines on a device context
+ @li wxPenList: The list of previously-created pens
+ @li wxPalette: Represents a table of indices into RGB values
+ @li wxRegion: Represents a simple or complex region on a window or device context
+ @li wxRendererNative: Abstracts high-level drawing primitives
+
+
+ @section page_categories_events Events
+
+ @ref eventhandling_overview
+
+ An event object contains information about a specific event. Event handlers
+ (usually member functions) have a single, event argument.
+
+ @li wxActivateEvent: A window or application activation event
+ @li wxCalendarEvent: Used with wxCalendarCtrl
+ @li wxCalculateLayoutEvent: Used to calculate window layout
+ @li wxChildFocusEvent: A child window focus event
+ @li wxClipboardTextEvent: A clipboard copy/cut/paste treebook event event
+ @li wxCloseEvent: A close window or end session event
+ @li wxCommandEvent: An event from a variety of standard controls
+ @li wxContextMenuEvent: An event generated when the user issues a context menu command
+ @li wxDateEvent: Used with wxDatePickerCtrl
+ @li wxDialUpEvent: Event send by wxDialUpManager
+ @li wxDropFilesEvent: A drop files event
+ @li wxEraseEvent: An erase background event
+ @li wxEvent: The event base class
+ @li wxFindDialogEvent: Event sent by wxFindReplaceDialog
+ @li wxFocusEvent: A window focus event
+ @li wxKeyEvent: A keypress event
+ @li wxIconizeEvent: An iconize/restore event
+ @li wxIdleEvent: An idle event
+ @li wxInitDialogEvent: A dialog initialisation event
+ @li wxJoystickEvent: A joystick event
+ @li wxListEvent: A list control event
+ @li wxMaximizeEvent: A maximize event
+ @li wxMenuEvent: A menu event
+ @li wxMouseCaptureChangedEvent: A mouse capture changed event
+ @li wxMouseCaptureLostEvent: A mouse capture lost event
+ @li wxMouseEvent: A mouse event
+ @li wxMoveEvent: A move event
+ @li wxNavigationKeyEvent: An event set by navigation keys such as tab
+ @li wxNotebookEvent: A notebook control event
+ @li wxNotifyEvent: A notification event, which can be vetoed
+ @li wxPaintEvent: A paint event
+ @li wxProcessEvent: A process ending event
+ @li wxQueryLayoutInfoEvent: Used to query layout information
+ @li wxRichTextEvent: A rich text editing event
+ @li wxScrollEvent: A scroll event from sliders, stand-alone scrollbars and spin buttons
+ @li wxScrollWinEvent: A scroll event from scrolled windows
+ @li wxSizeEvent: A size event
+ @li wxSocketEvent: A socket event
+ @li wxSpinEvent: An event from wxSpinButton
+ @li wxSplitterEvent: An event from wxSplitterWindow
+ @li wxSysColourChangedEvent: A system colour change event
+ @li wxTimerEvent: A timer expiration event
+ @li wxTreebookEvent: A treebook control event
+ @li wxTreeEvent: A tree control event
+ @li wxUpdateUIEvent: A user interface update event
+ @li wxWindowCreateEvent: A window creation event
+ @li wxWindowDestroyEvent: A window destruction event
+ @li wxWizardEvent: A wizard event
+
+
+ @section page_categories_val Validators
+
+ @ref validator_overview
+
+ These are the window validators, used for filtering and validating
+ user input.
+
+ @li wxValidator: Base validator class
+ @li wxTextValidator: Text control validator class
+ @li wxGenericValidator: Generic control validator class
+
+
+ @section page_categories_data Data structures
+
+ These are the data structure classes supported by wxWidgets.
+
+ @li wxCmdLineParser: Command line parser class
+ @li wxDateSpan: A logical time interval.
+ @li wxDateTime: A class for date/time manipulations
+ @li wxLongLong: A portable 64 bit integer type
+ @li wxObject: The root class for most wxWidgets classes
+ @li wxPathList: A class to help search multiple paths
+ @li wxPoint: Representation of a point
+ @li wxRect: A class representing a rectangle
+ @li wxRegEx: Regular expression support
+ @li wxRegion: A class representing a region
+ @li wxString: A string class
+ @li wxStringTokenizer: A class for interpreting a string as a list of tokens or words
+ @li wxRealPoint: Representation of a point using floating point numbers
+ @li wxSize: Representation of a size
+ @li wxTimeSpan: A time interval.
+ @li wxURI: Represents a Uniform Resource Identifier
+ @li wxVariant: A class for storing arbitrary types that may change at run-time
+
+
+ @section page_categories_containers Container classes
+
+ @ref container_overview
+
+ These are classes, templates and class macros are used by wxWidgets. Most
+ of these classes provide a subset or almost complete STL API.
+
+ @li wxArray: A type-safe dynamic array implementation (macro based)
+ @li wxArrayString: An efficient container for storing wxString objects
+ @li wxHashMap: A type-safe hash map implementation (macro based)
+ @li wxHashSet: A type-safe hash set implementation(macro based)
+ @li wxHashTable: A simple hash table implementation (deprecated, use wxHashMap)
+ @li wxList: A type-safe linked list implementation (macro based)
+ @li wxVector: Template base vector implementation identical to std::vector
+
+
+ @section page_categories_smartpointers Smart pointers
+
+ wxWidgets provides a few smart pointer class templates.
+
+ @li wxObjectDataPtr: A shared pointer (using intrusive reference counting)
+ @li wxScopedPtr: A scoped pointer
+ @li wxSharedPtr: A shared pointer (using non-intrusive reference counting)
+ @li wxWeakRef: A weak reference
+
+
+ @section page_categories_rtti Run-time class information system
+
+ @ref runtimeclass_overview
+
+ wxWidgets supports run-time manipulation of class information, and dynamic
+ creation of objects given class names.
+
+ @li wxClassInfo: Holds run-time class information
+ @li wxObject: Root class for classes with run-time information
+ @li RTTI macros: Macros for manipulating run-time information
+
+
+ @section page_categories_logging Logging features
+
+ @ref log_overview
+
+ wxWidgets provides several classes and functions for message logging.
+ Please see the @ref log_overview for more details.
+
+ @li wxLog: The base log class
+ @li wxLogStderr: Log messages to a C STDIO stream
+ @li wxLogStream: Log messages to a C++ iostream
+ @li wxLogTextCtrl: Log messages to a wxTextCtrl
+ @li wxLogWindow: Log messages to a log frame
+ @li wxLogGui: Default log target for GUI programs
+ @li wxLogNull: Temporarily suppress message logging
+ @li wxLogChain: Allows to chain two log targets
+ @li wxLogInterposer: Allows to filter the log messages
+ @li wxLogInterposerTemp: Allows to filter the log messages
+ @li wxStreamToTextRedirector: Allows to redirect output sent to @c cout to a wxTextCtrl
+ @li Log functions: Error and warning logging functions
+
+
+ @section page_categories_debugging Debugging features
+
+ @ref debugging_overview
+
+ wxWidgets supports some aspects of debugging an application through
+ classes, functions and macros.
+
+ @li wxDebugContext: Provides memory-checking facilities
+ @li Debugging macros: Debug macros for assertion and checking
+ @li WXDEBUG_NEW: Use this macro to give further debugging information
+ @li wxDebugReport: Base class for creating debug reports in case of a program crash.
+ @li wxDebugReportCompress: Class for creating compressed debug reports.
+ @li wxDebugReportUpload: Class for uploading compressed debug reports via HTTP.
+ @li wxDebugReportPreview: Abstract base class for previewing the contents of a debug report.
+ @li wxDebugReportPreviewStd: Standard implementation of wxDebugReportPreview.
+
+
+ @section page_categories_net Networking classes
+
+ wxWidgets provides its own classes for socket based networking.
+
+ @li wxDialUpManager: Provides functions to check the status of network connection and to establish one
+ @li wxIPV4address: Represents an Internet address
+ @li wxIPaddress: Represents an Internet address
+ @li wxSocketBase: Represents a socket base object
+ @li wxSocketClient: Represents a socket client
+ @li wxSocketServer: Represents a socket server
+ @li wxSocketEvent: A socket event
+ @li wxFTP: FTP protocol class
+ @li wxHTTP: HTTP protocol class
+ @li wxURL: Represents a Universal Resource Locator
+
+
+
+ @section page_categories_ipc Interprocess communication
+
+ @ref ipc_overview
+
+ wxWidgets provides simple interprocess communications facilities
+ based on Windows DDE, but available on most platforms using TCP.
+
+ @li wxClient, wxDDEClient: Represents a client
+ @li wxConnection, wxDDEConnection: Represents the connection between a client and a server
+ @li wxServer, wxDDEServer: Represents a server
+
+
+
+ @section page_categories_dvf Document-view framework
+
+ @ref docview_overview
+
+ wxWidgets supports a document/view framework which provides
+ housekeeping for a document-centric application.
+
+ @li wxDocument: Represents a document
+ @li wxView: Represents a view
+ @li wxDocTemplate: Manages the relationship between a document class and a view class
+ @li wxDocManager: Manages the documents and views in an application
+ @li wxDocChildFrame: A child frame for showing a document view
+ @li wxDocParentFrame: A parent frame to contain views
+
+
+
+ @section page_categories_printing Printing framework
+
+ @ref printing_overview
+
+ A printing and previewing framework is implemented to
+ make it relatively straightforward to provide document printing
+ facilities.
+
+ @li wxPreviewFrame: Frame for displaying a print preview
+ @li wxPreviewCanvas: Canvas for displaying a print preview
+ @li wxPreviewControlBar: Standard control bar for a print preview
+ @li wxPrintDialog: Standard print dialog
+ @li wxPageSetupDialog: Standard page setup dialog
+ @li wxPrinter: Class representing the printer
+ @li wxPrinterDC: Printer device context
+ @li wxPrintout: Class representing a particular printout
+ @li wxPrintPreview: Class representing a print preview
+ @li wxPrintData: Represents information about the document being printed
+ @li wxPrintDialogData: Represents information about the print dialog
+ @li wxPageSetupDialogData: Represents information about the page setup dialog
+
+
+
+ @section page_categories_dd Drag and drop and clipboard classes
+
+ @ref dnd_overview
+
+ @li wxDataObject: Data object class
+ @li wxDataFormat: Represents a data format
+ @li wxTextDataObject: Text data object class
+ @li wxFileDataObject: File data object class
+ @li wxBitmapDataObject: Bitmap data object class
+ @li wxURLDataObject: URL data object class
+ @li wxCustomDataObject: Custom data object class
+ @li wxClipboard: Clipboard class
+ @li wxDropTarget: Drop target class
+ @li wxFileDropTarget: File drop target class
+ @li wxTextDropTarget: Text drop target class
+ @li wxDropSource: Drop source class
+
+
+ @section page_categories_file File related classes
+
+ wxWidgets has several small classes to work with disk files, see wxfileoverview for more details.
+
+ @li wxFileName: Operations with the file name and attributes
+ @li wxDir: Class for enumerating files/subdirectories.
+ @li wxDirTraverser: Class used together with wxDir for recursively enumerating the files/subdirectories
+ @li wxFile: Low-level file input/output class.
+ @li wxFFile: Another low-level file input/output class.
+ @li wxTempFile: Class to safely replace an existing file
+ @li wxTextFile: Class for working with text files as with arrays of lines
+ @li wxStandardPaths: Paths for standard directories
+ @li wxPathList: A class to help search multiple paths
+
+
+ @section page_categories_streams Stream classes
+
+ wxWidgets has its own set of stream classes, as an alternative to often buggy standard stream
+ libraries, and to provide enhanced functionality.
+
+ @li wxStreamBase: Stream base class
+ @li wxStreamBuffer: Stream buffer class
+ @li wxInputStream: Input stream class
+ @li wxOutputStream: Output stream class
+ @li wxCountingOutputStream: Stream class for querying what size a stream would have.
+ @li wxFilterInputStream: Filtered input stream class
+ @li wxFilterOutputStream: Filtered output stream class
+ @li wxBufferedInputStream: Buffered input stream class
+ @li wxBufferedOutputStream: Buffered output stream class
+ @li wxMemoryInputStream: Memory input stream class
+ @li wxMemoryOutputStream: Memory output stream class
+ @li wxDataInputStream: Platform-independent binary data input stream class
+ @li wxDataOutputStream: Platform-independent binary data output stream class
+ @li wxTextInputStream: Platform-independent text data input stream class
+ @li wxTextOutputStream: Platform-independent text data output stream class
+ @li wxFileInputStream: File input stream class
+ @li wxFileOutputStream: File output stream class
+ @li wxFFileInputStream: Another file input stream class
+ @li wxFFileOutputStream: Another file output stream class
+ @li wxTempFileOutputStream: Stream to safely replace an existing file
+ @li wxStringInputStream: String input stream class
+ @li wxStringOutputStream: String output stream class
+ @li wxZlibInputStream: Zlib and gzip (compression) input stream class
+ @li wxZlibOutputStream: Zlib and gzip (compression) output stream class
+ @li wxZipInputStream: Input stream for reading from ZIP archives
+ @li wxZipOutputStream: Output stream for writing from ZIP archives
+ @li wxTarInputStream: Input stream for reading from tar archives
+ @li wxTarOutputStream: Output stream for writing from tar archives
+ @li wxSocketInputStream: Socket input stream class
+ @li wxSocketOutputStream: Socket output stream class
+
+
+ @section page_categories_threading Threading classes
+
+ @ref thread_overview
+
+ wxWidgets provides a set of classes to make use of the native thread
+ capabilities of the various platforms.
+
+ @li wxThread: Thread class
+ @li wxThreadHelper: Manages background threads easily
+ @li wxMutex: Mutex class
+ @li wxMutexLocker: Mutex locker utility class
+ @li wxCriticalSection: Critical section class
+ @li wxCriticalSectionLocker: Critical section locker utility class
+ @li wxCondition: Condition class
+ @li wxSemaphore: Semaphore class
+
+
+ @section page_categories_html HTML classes
+
+ wxWidgets provides a set of classes to display text in HTML format. These
+ class include a help system based on the HTML widget.
+
+ @li wxHtmlHelpController: HTML help controller class
+ @li wxHtmlWindow: HTML window class
+ @li wxHtmlEasyPrinting: Simple class for printing HTML
+ @li wxHtmlPrintout: Generic HTML wxPrintout class
+ @li wxHtmlParser: Generic HTML parser class
+ @li wxHtmlTagHandler: HTML tag handler, pluginable into wxHtmlParser
+ @li wxHtmlWinParser: HTML parser class for wxHtmlWindow
+ @li wxHtmlWinTagHandler: HTML tag handler, pluginable into wxHtmlWinParser
+
+
+ @section page_categories_rich Rich text classes
+
+ wxWidgets provides a set of generic classes to edit and print simple rich text with character
+ and paragraph formatting.
+
+ @li wxTextAttr: Attributes specifying text styling.
+ @li wxRichTextCtrl: A rich text control.
+ @li wxRichTextBuffer: The content of a rich text control.
+ @li wxRichTextCharacterStyleDefinition: Definition of character styling.
+ @li wxRichTextParagraphStyleDefinition: Definition of paragraph styling.
+ @li wxRichTextListStyleDefinition: Definition of list styling.
+ @li wxRichTextStyleSheet: A set of style definitions.
+ @li wxRichTextStyleComboCtrl: A drop-down control for applying styles.
+ @li wxRichTextStyleListBox: A listbox for applying styles.
+ @li wxRichTextStyleOrganiserDialog: A dialog that can be used for managing or browsing styles.
+ @li wxRichTextEvent: A rich text event.
+ @li wxRichTextRange: Specification for ranges in a rich text control or buffer.
+ @li wxRichTextFileHandler: File handler base class.
+ @li wxRichTextHTMLHandler: A handler for converting rich text to HTML.
+ @li wxRichTextXMLHandler: A handler for loading and saving rich text XML.
+ @li wxRichTextFormattingDialog: A dialog for rich text formatting.
+ @li wxRichTextPrinting: A class for easy printing of rich text buffers.
+ @li wxRichTextPrintout: A class used by wxRichTextPrinting.
+ @li wxRichTextHeaderFooterData: Header and footer data specification.
+
+
+ @section page_categories_stc Scintilla text editor classes
+
+ wxWidgets also provides a wrapper around the Scintilla text editor control, which is
+ a control for plain-text editing with support for highlighting, smart indentation, etc.
+
+ @li wxStyledTextCtrl: A wxWidgets implementation of the Scintilla source code editing component.
+
+
+ @section page_categories_vfs Virtual file system classes
+
+ wxWidgets provides a set of classes that implement an extensible virtual file system,
+ used internally by the HTML classes.
+
+ @li wxFSFile: Represents a file in the virtual file system
+ @li wxFileSystem: Main interface for the virtual file system
+ @li wxFileSystemHandler: Class used to announce file system type
+
+
+ @section page_categories_xml XML classes
+
+ @li wxXmlDocument: A class to parse XML files
+ @li wxXmlNode: A class which represents XML nodes
+ @li wxXmlAttribute: A class which represent an XML attribute
+
+
+ @section page_categories_xrc XML-based resource system classes
+
+ @ref xrc_overview
+
+ Resources allow your application to create controls and other user interface elements
+ from specifications stored in an XML format.
+
+ @li wxXmlResource: The main class for working with resources
+ @li wxXmlResourceHandler: The base class for XML resource handlers
+
+
+ @section page_categories_help Online help
+
+ @li wxHelpController: Family of classes for controlling help windows
+ @li wxHtmlHelpController: HTML help controller class
+ @li wxContextHelp: Class to put application into context-sensitive help mode
+ @li wxContextHelpButton: Button class for putting application into context-sensitive help mode
+ @li wxHelpProvider: Abstract class for context-sensitive help provision
+ @li wxSimpleHelpProvider: Class for simple context-sensitive help provision
+ @li wxHelpControllerHelpProvider: Class for context-sensitive help provision via a help controller
+ @li wxToolTip: Class implementing tooltips
+
+
+ @section page_categories_media Multimedia classes
+
+ @li wxMediaCtrl: Display multimedia contents.
+
+
+ @section page_categories_gl OpenGL classes
+
+ @li wxGLCanvas: Canvas that you can render OpenGL calls to.
+ @li wxGLContext: Class to ease sharing of OpenGL data resources.
+
+
+ @section page_categories_appmanagement Application and process-management classes
+
+ @li wxApp: Application class
+ @li wxCmdLineParser: Command line parser class
+ @li wxDllLoader: Class to work with shared libraries.
+ @li wxProcess: Process class
+
+
+ @section page_categories_misc Miscellaneous
+
+ @li wxCaret: A caret (cursor) object
+ @li wxConfigBase: Classes for reading/writing the configuration settings
+ @li wxTimer: Timer class
+ @li wxStopWatch: Stop watch class
+ @li wxMimeTypesManager: MIME-types manager class
+ @li wxSystemSettings: System settings class for obtaining various global parameters
+ @li wxSystemOptions: System options class for run-time configuration
+ @li wxAcceleratorTable: Accelerator table
+ @li wxAutomationObject: OLE automation class
+ @li wxFontMapper: Font mapping, finding suitable font for given encoding
+ @li wxEncodingConverter: Encoding conversions
+ @li wxCalendarDateAttr: Used with wxCalendarCtrl
+ @li wxQuantize: Class to perform quantization, or colour reduction
+ @li wxSingleInstanceChecker: Check that only single program instance is running
+
+*/
\ No newline at end of file
diff --git a/docs/doxygen/mainpages/const_cpp.h b/docs/doxygen/mainpages/const_cpp.h
new file mode 100644
index 0000000000..840a44aa29
--- /dev/null
+++ b/docs/doxygen/mainpages/const_cpp.h
@@ -0,0 +1,249 @@
+/////////////////////////////////////////////////////////////////////////////
+// Name: const_cpp.h
+// Purpose: Preprocessor symbols
+// Author: Vadim Zeitlin
+// RCS-ID: $Id$
+// Licence: wxWindows license
+/////////////////////////////////////////////////////////////////////////////
+
+
+/*!
+
+ @page page_cppconst Preprocessor symbols defined by wxWidgets
+
+ These are preprocessor symbols used in the wxWidgets source, grouped
+ by category (and sorted by alphabetical order inside each category).
+ All of these macros except for the @c wxUSE_XXX variety is defined if the
+ corresponding condition is @true and undefined if it isn't, so they should be
+ always tested using @ifdef and not @if.
+
+ TODO: what can we use here instead of \twocolitem to keep text readable??
+
+ @li @ref page_cppconst_guisystem
+ @li @ref page_cppconst_os
+ @li @ref page_cppconst_cpu
+ @li @ref page_cppconst_hardware
+ @li @ref page_cppconst_compiler
+ @li @ref page_cppconst_featuretests
+ @li @ref page_cppconst_miscellaneous
+
+
+
+
+ @section page_cppconst_guisystem GUI system
+
+ @beginDefList
+ @itemdef{__WINDOWS__, any Windows, you may also use __WXMSW__}
+ @itemdef{__WIN16__, Win16 API (not supported since wxWidgets 2.6)}
+ @itemdef{__WIN32__, Win32 API}
+ @itemdef{__WXBASE__, Only wxBase, no GUI features (same as @c wxUSE_GUI $== 0$)}
+ @itemdef{__WXCOCOA__, OS X using Cocoa API}
+ @itemdef{__WXDFB__, wxUniversal using DirectFB}
+ @itemdef{__WXWINCE__, Windows CE}
+ @itemdef{__WXGTK__, GTK+}
+ @itemdef{__WXGTK12__, GTK+ 1.2 or higher}
+ @itemdef{__WXGTK20__, GTK+ 2.0 or higher}
+ @itemdef{__WXGTK24__, GTK+ 2.4 or higher}
+ @itemdef{__WXGTK26__, GTK+ 2.6 or higher}
+ @itemdef{__WXGTK210__, GTK+ 2.10 or higher}
+ @itemdef{__WXMOTIF__, Motif}
+ @itemdef{__WXMOTIF20__, Motif 2.0 or higher}
+ @itemdef{__WXMAC__, Mac OS all targets}
+ @itemdef{__WXMAC_CLASSIC__, MacOS for Classic}
+ @itemdef{__WXMAC_CARBON__, MacOS for Carbon CFM (running under Classic or OSX)
+ or true OS X Mach-O Builds}
+ @itemdef{__WXMAC_OSX__, MacOS X Carbon Mach-O Builds}
+ @itemdef{__WXMGL__, SciTech Soft MGL (__WXUNIVERSAL__ will be also defined)}
+ @itemdef{__WXMSW__, Any Windows}
+ @itemdef{__WXOSX__, Any Mac OS X port (either Carbon or Cocoa)}
+ @itemdef{__WXPALMOS__, PalmOS}
+ @itemdef{__WXPM__, OS/2 native Presentation Manager}
+ @itemdef{__WXSTUBS__, Stubbed version ('template' wxWin implementation)}
+ @itemdef{__WXXT__, Xt; mutually exclusive with WX_MOTIF, not implemented in wxWidgets 2.x}
+ @itemdef{__WXX11__, wxX11 (__WXUNIVERSAL__ will be also defined)}
+ @itemdef{__WXWINE__, WINE (i.e. WIN32 on Unix)}
+ @itemdef{__WXUNIVERSAL__, wxUniversal port, always defined in addition
+ to one of the symbols above so this should be tested first.}
+ @itemdef{__X__, any X11-based GUI toolkit except GTK+}
+ @endDefList
+
+ There are two wxWidgets ports to Mac OS. One of them, wxMac, exists in two versions:
+ Classic and Carbon. The Classic version is the only one to work on Mac OS version 8.
+ The Carbon version may be built either as CFM or Mach-O (binary format, like ELF)
+ and the former may run under OS 9 while the latter only runs under OS X.
+ Finally, there is a new Cocoa port which can only be used under OS X. To
+ summarize:
+
+ @li If you want to test for all Mac platforms, classic and OS X, you
+ should test both @c __WXMAC__ and @c __WXCOCOA__.
+ @li If you want to test for any GUI Mac port under OS X, use
+ @c __WXOSX__.
+ @li If you want to test for any port under Mac OS X, including, for
+ example, wxGTK and also wxBase, use @c __DARWIN__ (see below).
+
+ The convention is to use the @c __WX prefix for these
+ symbols, although this has not always been followed.
+
+
+ @section page_cppconst_os Operating systems
+
+ @beginDefList
+ @itemdef{__APPLE__, any Mac OS version}
+ @itemdef{__AIX__, AIX}
+ @itemdef{__BSD__, Any *BSD system}
+ @itemdef{__CYGWIN__, Cygwin: Unix on Win32}
+ @itemdef{__DARWIN__, Mac OS X using the BSD Unix C library
+ (as opposed to using the Metrowerks MSL C/C++ library)}
+ @itemdef{__DATA_GENERAL__, DG-UX}
+ @itemdef{__DOS_GENERAL__, DOS (used with wxMGL only)}
+ @itemdef{__FREEBSD__, FreeBSD}
+ @itemdef{__HPUX__, HP-UX (Unix)}
+ @itemdef{__GNU__, GNU Hurd}
+ @itemdef{__LINUX__, Linux}
+ @itemdef{__MACH__, Mach-O Architecture (Mac OS X only builds)}
+ @itemdef{__OSF__, OSF/1}
+ @itemdef{__PALMOS__, PalmOS}
+ @itemdef{__SGI__, IRIX}
+ @itemdef{__SOLARIS__, Solaris}
+ @itemdef{__SUN__, Any Sun}
+ @itemdef{__SUNOS__, Sun OS}
+ @itemdef{__SVR4__, SystemV R4}
+ @itemdef{__SYSV__, SystemV generic}
+ @itemdef{__ULTRIX__, Ultrix}
+ @itemdef{__UNIX__, any Unix}
+ @itemdef{__UNIX_LIKE__, Unix, BeOS or VMS}
+ @itemdef{__VMS__, VMS}
+ @itemdef{__WINDOWS__, any Windows}
+ @itemdef{__WINE__, Wine}
+ @endDefList
+
+
+
+ @section page_cppconst_cpu Hardware architectures (CPU)
+
+ Note that not all of these symbols are always defined, it depends on the
+ compiler used.
+
+ @beginDefList
+ @itemdef{__ALPHA__, DEC Alpha architecture}
+ @itemdef{__INTEL__, Intel i386 or compatible}
+ @itemdef{__IA64__, Intel 64 bit architecture}
+ @itemdef{__POWERPC__, Motorola Power PC}
+ @endDefList
+
+
+
+ @section page_cppconst_hardware Hardware type
+
+ @beginDefList
+ @itemdef{__SMARTPHONE__, Generic mobile devices with phone buttons and a small display}
+ @itemdef{__PDA__, Personal digital assistant, usually with touch screen}
+ @itemdef{__HANDHELD__, Small but powerful computer, usually with a keyboard}
+ @itemdef{__POCKETPC__, Microsoft-powered PocketPC devices with touch-screen}
+ @itemdef{__WINCE_STANDARDSDK__, Microsoft-powered Windows CE devices, for generic Windows CE applications}
+ @itemdef{__WINCE_NET__, Microsoft-powered Windows CE .NET devices (_WIN32_WCE is 400 or greater)}
+ @itemdef{WIN32_PLATFORM_WFSP, Microsoft-powered smartphone}
+ @endDefList
+
+
+
+ @section page_cppconst_compiler Compilers
+
+ @beginDefList
+ @itemdef{__BORLANDC__, Borland C++. The value of the macro corresponds
+ to the compiler version: $500$ is $5.0$.}
+ @itemdef{__DJGPP__, DJGPP}
+ @itemdef{__DIGITALMARS__, Digital Mars}
+ @itemdef{__GNUG__, Gnu C++ on any platform, see also wxCHECK_GCC_VERSION}
+ @itemdef{__GNUWIN32__, Gnu-Win32 compiler, see also wxCHECK_W32API_VERSION}
+ @itemdef{__MINGW32__, MinGW}
+ @itemdef{__MWERKS__, CodeWarrior MetroWerks compiler}
+ @itemdef{__SUNCC__, Sun CC, see also wxCHECK_SUNCC_VERSION}
+ @itemdef{__SYMANTECC__, Symantec C++}
+ @itemdef{__VISAGECPP__, IBM Visual Age (OS/2)}
+ @itemdef{__VISUALC__, Microsoft Visual C++, see also wxCHECK_VISUALC_VERSION.
+ The value of this macro corresponds to the compiler version:
+ $1020$ for $4.2$ (the first supported version), $1100$ for
+ $5.0$, $1200$ for $6.0$ and so on. For convenience, the symbols
+ __VISUALCn__ are also defined for each major compiler version from
+ 5 to 9, i.e. you can use tests such @ifdef __VISUALC7__ to test
+ for compiler version being precisely 7.}
+ @itemdef{__XLC__, AIX compiler}
+ @itemdef{__WATCOMC__, Watcom C++. The value of this macro corresponds to
+ the compiler version, $1100$ is $11.0$ and $1200$ is OpenWatcom.}
+ @itemdef{_WIN32_WCE, Windows CE version}
+ @endDefList
+
+
+
+ @section page_cppconst_featuretests Feature tests
+
+ Some library features may not be always available even if they were selected
+ by the user. To make it possible to check if this is the case, the library
+ predefines the symbols in the form @c wxHAS_FEATURE. Unlike
+ @c wxUSE_FEATURE symbols which are defined by the library user (directly
+ in @c setup.h or by running configure script) and which must be always
+ defined as either $0$ or $1$, the @c wxHAS symbols are only defined if
+ the corresponding feature is available and not defined at all otherwise.
+
+ Currently the following symbols exist:
+
+ @beginDefList
+ @itemdef{wxHAS_LARGE_FILES, Defined if wxFile supports files more than 4GB in size.}
+ @itemdef{wxHAS_LARGE_FFILES, Defined if wxFFile supports files more than 4GB in size.}
+ @itemdef{wxHAS_POWER_EVENTS, Defined if wxPowerEvent are ever generated on the current platform.}
+ @itemdef{wxHAS_RADIO_MENU_ITEMS,
+ Defined if the current port supports radio menu items (see wxMenu::AppendRadioItem).}
+ @itemdef{wxHAS_RAW_KEY_CODES, Defined if raw key codes (see wxKeyEvent::GetRawKeyCode are supported.}
+ @itemdef{wxHAS_REGEX_ADVANCED, Defined if advanced syntax is available in wxRegEx.}
+ @itemdef{wxHAS_TASK_BAR_ICON, Defined if wxTaskBarIcon is available on the current platform.}
+ @endDefList
+
+
+
+ @section page_cppconst_miscellaneous Miscellaneous
+
+ @beginDefList
+ @itemdef{__WXWINDOWS__,
+ always defined in wxWidgets applications, see also wxCHECK_VERSION}
+ @itemdef{__WXDEBUG__, defined in debug mode, undefined in release mode}
+ @itemdef{wxUSE_XXX,
+ if defined as $1$, feature XXX is active, see the
+ @ref page_wxusedef (the symbols of this form are always defined,
+ use @if and not @ifdef to test for them)}
+ @itemdef{WX_PRECOMP,
+ is defined if precompiled headers (PCH) are in use. In
+ this case, @c wx/wxprec.h includes @c wx/wx.h which, in turn,
+ includes a number of wxWidgets headers thus making it unnecessary to include
+ them explicitly. However if this is not defined, you do need to include them
+ and so the usual idiom which allows to support both cases is to first include
+ @c wx/wxprec.h} and then, inside @ifndef WX_PRECOMP, individual
+ headers you need.}
+ @itemdef{_UNICODE and UNICODE, both are defined if wxUSE_UNICODE is set to $1$}
+ @itemdef{wxUSE_GUI,
+ this particular feature test macro is defined to $1$
+ when compiling or using the library with the GUI features activated,
+ if it is defined as $0$, only wxBase is available.}
+ @itemdef{wxUSE_BASE,
+ only used by wxWidgets internally (defined as $1$ when
+ building wxBase code, either as a standalone library or as part of the
+ monolithic wxWidgets library, defined as $0$ when building GUI library only)}
+ @itemdef{wxNO_RTTI, is defined if the compiler RTTI support has been switched off}
+ @itemdef{wxNO_EXCEPTIONS,
+ is defined if the compiler support for C++ exceptions has been switched off}
+ @itemdef{wxNO_THREADS,
+ if this macro is defined, the compilation options
+ don't include compiler flags needed for multithreaded code generation. This
+ implies that wxUSE_THREADS is $0$ and also that other (non-wx-based) threading
+ packages cannot be used neither.}
+ @itemdef{WXMAKINGDLL_XXX,
+ used internally and defined when building the
+ library @c XXX as a DLL; when a monolithic wxWidgets build is used only a
+ single @c WXMAKINGDLL symbol is defined}
+ @itemdef{WXUSINGDLL,
+ defined when compiling code which uses wxWidgets as a DLL/shared library}
+ @itemdef{WXBUILDING,
+ defined when building wxWidgets itself, whether as a static or shared library}
+ @endDefList
+
+*/
diff --git a/docs/doxygen/mainpages/const_keycode.h b/docs/doxygen/mainpages/const_keycode.h
new file mode 100644
index 0000000000..f456c6748f
--- /dev/null
+++ b/docs/doxygen/mainpages/const_keycode.h
@@ -0,0 +1,154 @@
+/////////////////////////////////////////////////////////////////////////////
+// Name: platdetails.h
+// Purpose: wxKeyCode values enumerated
+// Author: wxWidgets team
+// RCS-ID: $Id$
+// Licence: wxWindows license
+/////////////////////////////////////////////////////////////////////////////
+
+
+/*!
+
+ @page page_keycodes Keycodes
+
+ @header{wx/defs.h}
+
+ Keypresses are represented by an enumerated type, wxKeyCode. The possible
+ values are the ASCII character codes, plus the following:
+
+ @verbatim
+ WXK_BACK = 8
+ WXK_TAB = 9
+ WXK_RETURN = 13
+ WXK_ESCAPE = 27
+ WXK_SPACE = 32
+ WXK_DELETE = 127
+
+ // These are by design not compatible with unicode characters.
+ // If you want to get a unicode character from a key event use
+ // wxKeyEvent::GetUnicodeKey instead.
+ WXK_START = 300
+ WXK_LBUTTON
+ WXK_RBUTTON
+ WXK_CANCEL
+ WXK_MBUTTON
+ WXK_CLEAR
+ WXK_SHIFT
+ WXK_ALT
+ WXK_CONTROL
+ WXK_MENU
+ WXK_PAUSE
+ WXK_CAPITAL
+ WXK_END
+ WXK_HOME
+ WXK_LEFT
+ WXK_UP
+ WXK_RIGHT
+ WXK_DOWN
+ WXK_SELECT
+ WXK_PRINT
+ WXK_EXECUTE
+ WXK_SNAPSHOT
+ WXK_INSERT
+ WXK_HELP
+ WXK_NUMPAD0
+ WXK_NUMPAD1
+ WXK_NUMPAD2
+ WXK_NUMPAD3
+ WXK_NUMPAD4
+ WXK_NUMPAD5
+ WXK_NUMPAD6
+ WXK_NUMPAD7
+ WXK_NUMPAD8
+ WXK_NUMPAD9
+ WXK_MULTIPLY
+ WXK_ADD
+ WXK_SEPARATOR
+ WXK_SUBTRACT
+ WXK_DECIMAL
+ WXK_DIVIDE
+ WXK_F1
+ WXK_F2
+ WXK_F3
+ WXK_F4
+ WXK_F5
+ WXK_F6
+ WXK_F7
+ WXK_F8
+ WXK_F9
+ WXK_F10
+ WXK_F11
+ WXK_F12
+ WXK_F13
+ WXK_F14
+ WXK_F15
+ WXK_F16
+ WXK_F17
+ WXK_F18
+ WXK_F19
+ WXK_F20
+ WXK_F21
+ WXK_F22
+ WXK_F23
+ WXK_F24
+ WXK_NUMLOCK
+ WXK_SCROLL
+ WXK_PAGEUP,
+ WXK_PAGEDOWN,
+
+ WXK_NUMPAD_SPACE,
+ WXK_NUMPAD_TAB,
+ WXK_NUMPAD_ENTER,
+ WXK_NUMPAD_F1,
+ WXK_NUMPAD_F2,
+ WXK_NUMPAD_F3,
+ WXK_NUMPAD_F4,
+ WXK_NUMPAD_HOME,
+ WXK_NUMPAD_LEFT,
+ WXK_NUMPAD_UP,
+ WXK_NUMPAD_RIGHT,
+ WXK_NUMPAD_DOWN,
+ WXK_NUMPAD_PAGEUP,
+ WXK_NUMPAD_PAGEDOWN,
+ WXK_NUMPAD_END,
+ WXK_NUMPAD_BEGIN,
+ WXK_NUMPAD_INSERT,
+ WXK_NUMPAD_DELETE,
+ WXK_NUMPAD_EQUAL,
+ WXK_NUMPAD_MULTIPLY,
+ WXK_NUMPAD_ADD,
+ WXK_NUMPAD_SEPARATOR,
+ WXK_NUMPAD_SUBTRACT,
+ WXK_NUMPAD_DECIMAL,
+ WXK_NUMPAD_DIVIDE,
+
+ // the following key codes are only generated under Windows currently
+ WXK_WINDOWS_LEFT,
+ WXK_WINDOWS_RIGHT,
+ WXK_WINDOWS_MENU,
+ WXK_COMMAND,
+
+ // Hardware-specific buttons
+ WXK_SPECIAL1 = 193,
+ WXK_SPECIAL2,
+ WXK_SPECIAL3,
+ WXK_SPECIAL4,
+ WXK_SPECIAL5,
+ WXK_SPECIAL6,
+ WXK_SPECIAL7,
+ WXK_SPECIAL8,
+ WXK_SPECIAL9,
+ WXK_SPECIAL10,
+ WXK_SPECIAL11,
+ WXK_SPECIAL12,
+ WXK_SPECIAL13,
+ WXK_SPECIAL14,
+ WXK_SPECIAL15,
+ WXK_SPECIAL16,
+ WXK_SPECIAL17,
+ WXK_SPECIAL18,
+ WXK_SPECIAL19,
+ WXK_SPECIAL20
+ @endverbatim
+
+*/
diff --git a/docs/doxygen/mainpages/const_keymod.h b/docs/doxygen/mainpages/const_keymod.h
new file mode 100644
index 0000000000..769b668d69
--- /dev/null
+++ b/docs/doxygen/mainpages/const_keymod.h
@@ -0,0 +1,42 @@
+/////////////////////////////////////////////////////////////////////////////
+// Name: keymod.h
+// Purpose: key modifiers
+// Author: wxWidgets team
+// RCS-ID: $Id$
+// Licence: wxWindows license
+/////////////////////////////////////////////////////////////////////////////
+
+
+/*!
+
+ @page page_keymodifiers Key Modifiers
+
+ @header{wx/defs.h}
+
+ The following key modifier constants are defined:
+
+ @verbatim
+ enum wxKeyModifier
+ {
+ wxMOD_NONE = 0x0000,
+ wxMOD_ALT = 0x0001,
+ wxMOD_CONTROL = 0x0002,
+ wxMOD_ALTGR = wxMOD_ALT | wxMOD_CONTROL,
+ wxMOD_SHIFT = 0x0004,
+ wxMOD_META = 0x0008,
+ #if defined(__WXMAC__) || defined(__WXCOCOA__)
+ wxMOD_CMD = wxMOD_META,
+ #else
+ wxMOD_CMD = wxMOD_CONTROL,
+ #endif
+ wxMOD_ALL = 0xffff
+ };
+ @endverbatim
+
+ Notice that @c wxMOD_CMD should be used instead of @c wxMOD_CONTROL
+ in portable code to account for the fact that although
+ @c Control modifier exists under Mac OS, it is not used for the same
+ purpose as under Windows or Unix there while the special Mac-specific
+ @c Command modifier is used in exactly the same way.
+
+*/
diff --git a/docs/doxygen/mainpages/const_langcodes.h b/docs/doxygen/mainpages/const_langcodes.h
new file mode 100644
index 0000000000..930eeedf62
--- /dev/null
+++ b/docs/doxygen/mainpages/const_langcodes.h
@@ -0,0 +1,24 @@
+/////////////////////////////////////////////////////////////////////////////
+// Name: const_langcodes.h
+// Purpose: Language values enumerated
+// Author: wxWidgets team
+// RCS-ID: $Id$
+// Licence: wxWindows license
+/////////////////////////////////////////////////////////////////////////////
+
+
+/*!
+
+ @page page_languagecodes Language identifiers
+
+ The following wxLanguage constants may be used to specify the language
+ in wxLocale::Init and are returned by wxLocale::GetSystemLanguage:
+
+
+
+ This enum is generated by misc/languages/genlang.py
+ When making changes, please put them into misc/languages/langtabl.txt
+
+
+
+*/
diff --git a/docs/doxygen/mainpages/const_stdevtid.h b/docs/doxygen/mainpages/const_stdevtid.h
new file mode 100644
index 0000000000..9c053fb987
--- /dev/null
+++ b/docs/doxygen/mainpages/const_stdevtid.h
@@ -0,0 +1,150 @@
+/////////////////////////////////////////////////////////////////////////////
+// Name: const_stdevtid.h
+// Purpose: std event values enumerated
+// Author: wxWidgets team
+// RCS-ID: $Id$
+// Licence: wxWindows license
+/////////////////////////////////////////////////////////////////////////////
+
+
+/*!
+
+ @page page_stdevtid Standard event identifiers
+
+ wxWidgets defines a special identifier value @c wxID_ANY which is used in
+ the following two situations:
+
+ @li when creating a new window you may specify @c wxID_ANY to let
+ wxWidgets assign an unused identifier to it automatically
+ @li when installing an event handler using either the event table
+ macros or wxEvtHandler::Connect,
+ you may use it to indicate that you want to handle the events
+ coming from any control, regardless of its identifier
+
+ Another standard special identifier value is @c wxID_NONE: this is a value
+ which is not matched by any other id.
+
+ wxWidgets also defines a few standard command identifiers which may be used by
+ the user code and also are sometimes used by wxWidgets itself. These reserved
+ identifiers are all in the range between @c wxID_LOWEST and
+ @c wxID_HIGHEST and, accordingly, the user code should avoid defining its
+ own constants in this range.
+
+ @verbatim
+ wxID_LOWEST = 4999,
+
+ wxID_OPEN,
+ wxID_CLOSE,
+ wxID_NEW,
+ wxID_SAVE,
+ wxID_SAVEAS,
+ wxID_REVERT,
+ wxID_EXIT,
+ wxID_UNDO,
+ wxID_REDO,
+ wxID_HELP,
+ wxID_PRINT,
+ wxID_PRINT_SETUP,
+ wxID_PAGE_SETUP,
+ wxID_PREVIEW,
+ wxID_ABOUT,
+ wxID_HELP_CONTENTS,
+ wxID_HELP_INDEX,
+ wxID_HELP_SEARCH,
+ wxID_HELP_COMMANDS,
+ wxID_HELP_PROCEDURES,
+ wxID_HELP_CONTEXT,
+ wxID_CLOSE_ALL,
+
+ wxID_EDIT = 5030,
+ wxID_CUT,
+ wxID_COPY,
+ wxID_PASTE,
+ wxID_CLEAR,
+ wxID_FIND,
+ wxID_DUPLICATE,
+ wxID_SELECTALL,
+ wxID_DELETE,
+ wxID_REPLACE,
+ wxID_REPLACE_ALL,
+ wxID_PROPERTIES,
+
+ wxID_VIEW_DETAILS,
+ wxID_VIEW_LARGEICONS,
+ wxID_VIEW_SMALLICONS,
+ wxID_VIEW_LIST,
+ wxID_VIEW_SORTDATE,
+ wxID_VIEW_SORTNAME,
+ wxID_VIEW_SORTSIZE,
+ wxID_VIEW_SORTTYPE,
+
+ wxID_FILE = 5050,
+ wxID_FILE1,
+ wxID_FILE2,
+ wxID_FILE3,
+ wxID_FILE4,
+ wxID_FILE5,
+ wxID_FILE6,
+ wxID_FILE7,
+ wxID_FILE8,
+ wxID_FILE9,
+
+ // Standard button IDs
+ wxID_OK = 5100,
+ wxID_CANCEL,
+ wxID_APPLY,
+ wxID_YES,
+ wxID_NO,
+ wxID_STATIC,
+ wxID_FORWARD,
+ wxID_BACKWARD,
+ wxID_DEFAULT,
+ wxID_MORE,
+ wxID_SETUP,
+ wxID_RESET,
+ wxID_CONTEXT_HELP,
+ wxID_YESTOALL,
+ wxID_NOTOALL,
+ wxID_ABORT,
+ wxID_RETRY,
+ wxID_IGNORE,
+
+ wxID_UP,
+ wxID_DOWN,
+ wxID_HOME,
+ wxID_REFRESH,
+ wxID_STOP,
+ wxID_INDEX,
+
+ wxID_BOLD,
+ wxID_ITALIC,
+ wxID_JUSTIFY_CENTER,
+ wxID_JUSTIFY_FILL,
+ wxID_JUSTIFY_RIGHT,
+ wxID_JUSTIFY_LEFT,
+ wxID_UNDERLINE,
+ wxID_INDENT,
+ wxID_UNINDENT,
+ wxID_ZOOM_100,
+ wxID_ZOOM_FIT,
+ wxID_ZOOM_IN,
+ wxID_ZOOM_OUT,
+ wxID_UNDELETE,
+ wxID_REVERT_TO_SAVED,
+
+ // System menu IDs (used by wxUniv):
+ wxID_SYSTEM_MENU = 5200,
+ wxID_CLOSE_FRAME,
+ wxID_MOVE_FRAME,
+ wxID_RESIZE_FRAME,
+ wxID_MAXIMIZE_FRAME,
+ wxID_ICONIZE_FRAME,
+ wxID_RESTORE_FRAME,
+
+ // IDs used by generic file dialog (13 consecutive starting from this value)
+ wxID_FILEDLGG = 5900,
+
+ wxID_HIGHEST = 5999
+ @endverbatim
+
+*/
diff --git a/docs/doxygen/mainpages/const_stockitems.h b/docs/doxygen/mainpages/const_stockitems.h
new file mode 100644
index 0000000000..8770abe829
--- /dev/null
+++ b/docs/doxygen/mainpages/const_stockitems.h
@@ -0,0 +1,78 @@
+/////////////////////////////////////////////////////////////////////////////
+// Name: const_stockitems.h
+// Purpose: stock item values enumerated
+// Author: wxWidgets team
+// RCS-ID: $Id$
+// Licence: wxWindows license
+/////////////////////////////////////////////////////////////////////////////
+
+
+/*!
+
+ @page page_stockitems Stock items
+
+ Window IDs for which stock buttons and menu items are created
+ (see the wxButton constructor and the wxMenuItem constructor):
+
+ @beginDefList
+ @itemdef{Stock ID, Stock label}
+ @itemdef{wxID_ABOUT, "&About"}
+ @itemdef{wxID_ADD, "Add" and}
+ @itemdef{wxID_APPLY, "&Apply"}
+ @itemdef{wxID_BOLD, "&Bold"}
+ @itemdef{wxID_CANCEL, "&Cancel"}
+ @itemdef{wxID_CLEAR, "&Clear"}
+ @itemdef{wxID_CLOSE, "&Close"}
+ @itemdef{wxID_COPY, "&Copy"}
+ @itemdef{wxID_CUT, "Cu&t"}
+ @itemdef{wxID_DELETE, "&Delete"}
+ @itemdef{wxID_EDIT, "&Edit"}
+ @itemdef{wxID_FIND, "&Find"}
+ @itemdef{wxID_FILE, "&File"}
+ @itemdef{wxID_REPLACE, "Find and rep&lace"}
+ @itemdef{wxID_BACKWARD, "&Back"}
+ @itemdef{wxID_DOWN, "&Down"}
+ @itemdef{wxID_FORWARD, "&Forward"}
+ @itemdef{wxID_UP, "&Up"}
+ @itemdef{wxID_HELP, "&Help"}
+ @itemdef{wxID_HOME, "&Home"}
+ @itemdef{wxID_INDENT, "Indent"}
+ @itemdef{wxID_INDEX, "&Index"}
+ @itemdef{wxID_ITALIC, "&Italic"}
+ @itemdef{wxID_JUSTIFY_CENTER, "Centered"}
+ @itemdef{wxID_JUSTIFY_FILL, "Justified"}
+ @itemdef{wxID_JUSTIFY_LEFT, "Align Left"}
+ @itemdef{wxID_JUSTIFY_RIGHT, "Align Right"}
+ @itemdef{wxID_NEW, "&New"}
+ @itemdef{wxID_NO, "&No"}
+ @itemdef{wxID_OK, "&OK"}
+ @itemdef{wxID_OPEN, "&Open"}
+ @itemdef{wxID_PASTE, "&Paste"}
+ @itemdef{wxID_PREFERENCES, "&Preferences"}
+ @itemdef{wxID_PRINT, "&Print"}
+ @itemdef{wxID_PREVIEW, "Print previe&w"}
+ @itemdef{wxID_PROPERTIES, "&Properties"}
+ @itemdef{wxID_EXIT, "&Quit"}
+ @itemdef{wxID_REDO, "&Redo"}
+ @itemdef{wxID_REFRESH, "Refresh"}
+ @itemdef{wxID_REMOVE, "Remove"}
+ @itemdef{wxID_REVERT_TO_SAVED, "Revert to Saved"}
+ @itemdef{wxID_SAVE, "&Save"}
+ @itemdef{wxID_SAVEAS, "Save &As..."}
+ @itemdef{wxID_SELECTALL, "Select all"}
+ @itemdef{wxID_STOP, "&Stop"}
+ @itemdef{wxID_UNDELETE, "Undelete"}
+ @itemdef{wxID_UNDERLINE, "&Underline"}
+ @itemdef{wxID_UNDO, "&Undo"}
+ @itemdef{wxID_UNINDENT, "&Unindent"}
+ @itemdef{wxID_YES, "&Yes"}
+ @itemdef{wxID_ZOOM_100, "&Actual Size"}
+ @itemdef{wxID_ZOOM_FIT, "Zoom to &Fit"}
+ @itemdef{wxID_ZOOM_IN, "Zoom &In"}
+ @itemdef{wxID_ZOOM_OUT, "Zoom &Out"}
+ @endDefList
+
+ Note that some of the IDs listed above have also a stock accelerator
+ and an help string associated.
+
+*/
diff --git a/docs/doxygen/mainpages/const_wxusedef.h b/docs/doxygen/mainpages/const_wxusedef.h
new file mode 100644
index 0000000000..2e70b837dd
--- /dev/null
+++ b/docs/doxygen/mainpages/const_wxusedef.h
@@ -0,0 +1,359 @@
+/////////////////////////////////////////////////////////////////////////////
+// Name: const_wxusedef.h
+// Purpose: wxUSE preprocessor symbols
+// Author: Tim Stahlhut
+// RCS-ID: $Id$
+// Licence: wxWindows license
+/////////////////////////////////////////////////////////////////////////////
+
+
+/*!
+
+ @page page_wxusedef wxUSE preprocessor symbols defined by wxWidgets
+
+ This section documents the wxUSE preprocessor symbols used in the wxWidgets
+ source, grouped by category (and sorted by alphabetical order inside each
+ category). These symbols are always defined and whether the given feature is
+ active or not depends on their value: if defined as @c 1, feature is active,
+ otherwise it is disabled. Because of this these symbols should be always tested
+ using @if and not @ifdef.
+
+ @li @ref page_wxusedef_multi
+ @li @ref page_wxusedef_unix
+ @li @ref page_wxusedef_x11
+ @li @ref page_wxusedef_gtk
+ @li @ref page_wxusedef_mac
+ @li @ref page_wxusedef_motif
+ @li @ref page_wxusedef_cocoa
+ @li @ref page_wxusedef_os2
+ @li @ref page_wxusedef_msw
+ @li @ref page_wxusedef_univ
+
+
+
+
+
+
+ @section page_wxusedef_multi Generic wxUSE preprocessor symbols
+
+ @beginDefList
+ @itemdef{wxUSE_ABOUTDLG, Use wxAboutDialogInfo class.}
+ @itemdef{wxUSE_ACCEL, Use wxAcceleratorTable/Entry classes and support for them in wxMenu, wxMenuBar.}
+ @itemdef{wxUSE_AFM_FOR_POSTSCRIPT, In wxPostScriptDC class use AFM (adobe font metrics) file for character widths.}
+ @itemdef{wxUSE_ANIMATIONCTRL, Use wxAnimationCtrl class.}
+ @itemdef{wxUSE_APPLE_IEEE, IEEE Extended to/from double routines; see src/common/extended.c file.}
+ @itemdef{wxUSE_ARCHIVE_STREAMS, Enable streams for archive formats.}
+ @itemdef{wxUSE_AUI, Use AUI (dockable windows) library.}
+ @itemdef{wxUSE_BASE64, Enables Base64 support.}
+ @itemdef{wxUSE_BITMAPCOMBOBOX, Use wxBitmapComboBox class.}
+ @itemdef{wxUSE_BMPBUTTON, Use wxBitmapButton class.}
+ @itemdef{wxUSE_BUSYINFO, Use wxBusyInfo class.}
+ @itemdef{wxUSE_BUTTON, Use wxButton class.}
+ @itemdef{wxUSE_CALENDARCTRL, Use wxCalendarCtrl class.}
+ @itemdef{wxUSE_CARET, Use wxCaret class.}
+ @itemdef{wxUSE_CHECKBOX, Use wxCheckBox class.}
+ @itemdef{wxUSE_CHECKLISTBOX, Use wxCheckListBox class.}
+ @itemdef{wxUSE_CHOICE, Use wxChoice class.}
+ @itemdef{wxUSE_CHOICEBOOK, Use wxChoicebook class.}
+ @itemdef{wxUSE_CHOICEDLG, Use wxSingleChoiceDialog, or wxMultiChoiceDialog classes.}
+ @itemdef{wxUSE_CLIPBOARD, Use wxClipboard class.}
+ @itemdef{wxUSE_CMDLINE_PARSER, Use wxCmdLineParser class.}
+ @itemdef{wxUSE_COLLPANE, Use wxCollapsiblePane class.}
+ @itemdef{wxUSE_COLOURDLG, Use wxColourDialog class.}
+ @itemdef{wxUSE_COLOURPICKERCTRL, Use wxColourPickerCtrl class.}
+ @itemdef{wxUSE_COMBOBOX, Use wxComboBox class.}
+ @itemdef{wxUSE_COMBOCTRL, Use wxComboCtrl class.}
+ @itemdef{wxUSE_CONFIG, Use wxConfig and related classes.}
+ @itemdef{wxUSE_CONFIG_NATIVE, When enabled use native OS configuration instead of the wxFileConfig class.}
+ @itemdef{wxUSE_CONSOLE_EVENTLOOP, Enable event loop in console programs.}
+ @itemdef{wxUSE_CONSTRAINTS, Use wxLayoutConstraints}
+ @itemdef{wxUSE_CONTROLS, If set to $0$, no classes deriving from wxControl can be used.}
+ @itemdef{wxUSE_DATAOBJ, Use wxDataObject and related classes.}
+ @itemdef{wxUSE_DATAVIEWCTRL, Use wxDataViewCtrl class.}
+ @itemdef{wxUSE_DATEPICKCTRL, Use wxDatePickerCtrl class.}
+ @itemdef{wxUSE_DATETIME, Use wxDateTime and related classes.}
+ @itemdef{wxUSE_DBGHELP, Use wxDbgHelpDLL class.}
+ @itemdef{wxUSE_DEBUG_CONTEXT, Use wxDebugContext class.}
+ @itemdef{wxUSE_DEBUG_NEW_ALWAYS, See Debugging overview}
+ @itemdef{wxUSE_DEBUGREPORT, Use wxDebugReport class.}
+ @itemdef{wxUSE_DIALUP_MANAGER, Use wxDialUpManager and related classes.}
+ @itemdef{wxUSE_DIRDLG, Use wxDirDialog class.}
+ @itemdef{wxUSE_DIRPICKERCTRL, Use wxDirPickerCtrl class.}
+ @itemdef{wxUSE_DISPLAY, Use wxDisplay and related classes.}
+ @itemdef{wxUSE_DOC_VIEW_ARCHITECTURE, Use wxDocument and related classes.}
+ @itemdef{wxUSE_DRAG_AND_DROP, Use Drag and drop classes.}
+ @itemdef{wxUSE_DRAGIMAGE, Use wxDragImage class.}
+ @itemdef{wxUSE_DYNAMIC_LOADER, Use wxPluginManager and related classes. Requires wxDynamicLibrary}
+ @itemdef{wxUSE_DYNLIB_CLASS, Use wxDynamicLibrary}
+ @itemdef{wxUSE_EDITABLELISTBOX, Use wxEditableListBox class.}
+ @itemdef{wxUSE_EXCEPTIONS, Use exception handling.}
+ @itemdef{wxUSE_EXPAT, enable XML support using expat parser.}
+ @itemdef{wxUSE_EXTENDED_RTTI, Use extended RTTI, see also Runtime class information (RTTI)}
+ @itemdef{wxUSE_FFILE, Use wxFFile class.}
+ @itemdef{wxUSE_FILE, Use wxFile class.}
+ @itemdef{wxUSE_FILECONFIG, Use wxFileConfig class.}
+ @itemdef{wxUSE_FILECTRL, Use wxFileCtrl class.}
+ @itemdef{wxUSE_FILEDLG, Use wxFileDialog class.}
+ @itemdef{wxUSE_FILEPICKERCTRL, Use wxFilePickerCtrl class.}
+ @itemdef{wxUSE_FILESYSTEM, Use wxFileSystem and related classes.}
+ @itemdef{wxUSE_FINDREPLDLG, Use wxFindReplaceDialog class.}
+ @itemdef{wxUSE_FONTDLG, Use wxFontDialog class.}
+ @itemdef{wxUSE_FONTENUM, Use wxFontEnumerator class.}
+ @itemdef{wxUSE_FONTMAP, Use wxFontMapper class.}
+ @itemdef{wxUSE_FONTPICKERCTRL, Use wxFontPickerCtrl class.}
+ @itemdef{wxUSE_FS_ARCHIVE, Use virtual archive filesystems like wxArchiveFSHandler in wxFileSystem class.}
+ @itemdef{wxUSE_FS_INET, Use virtual HTTP/FTP filesystems like wxInternetFSHandler in wxFileSystem class.}
+ @itemdef{wxUSE_FS_ZIP, Please use wxUSE_FS_ARCHIVE instead.}
+ @itemdef{wxUSE_FSVOLUME, Use wxFSVolume class.}
+ @itemdef{wxUSE_GAUGE, Use wxGauge class.}
+ @itemdef{wxUSE_GENERIC_DRAGIMAGE, Used in wxDragImage sample.}
+ @itemdef{wxUSE_GENERIC_DRAWELLIPSE, See comment in wx/dc.h file.}
+ @itemdef{wxUSE_GEOMETRY, Use common geometry classes}
+ @itemdef{wxUSE_GIF, Use GIF wxImageHandler}
+ @itemdef{wxUSE_GLCANVAS, Enables OpenGL support.}
+ @itemdef{wxUSE_GLOBAL_MEMORY_OPERATORS, Override global operators @c new and @c delete to use wxWidgets memory leak detection}
+ @itemdef{wxUSE_GRAPHICS_CONTEXT, Use wxGraphicsContext and related classes.}
+ @itemdef{wxUSE_GRID, Use wxGrid and related classes.}
+ @itemdef{wxUSE_GUI, Use the GUI classes; if set to $0$ only non-GUI classes are available.}
+ @itemdef{wxUSE_HELP, Use wxHelpController and related classes.}
+ @itemdef{wxUSE_HTML, Use wxHtmlWindow and related classes.}
+ @itemdef{wxUSE_HYPERLINKCTRL, Use wxHyperlinkCtrl}
+ @itemdef{wxUSE_ICO_CUR, Support Windows ICO and CUR formats.}
+ @itemdef{wxUSE_IFF, Enables the wxImage handler for Amiga IFF images.}
+ @itemdef{wxUSE_IMAGE, Use wxImage and related classes.}
+ @itemdef{wxUSE_IMAGLIST, Use wxImageList class.}
+ @itemdef{wxUSE_INTL, Use wxLocale and related classes.}
+ @itemdef{wxUSE_IOSTREAMH, Use header "iostream.h" instead of "iostream".}
+ @itemdef{wxUSE_IPC, Use interprocess communication classes.}
+ @itemdef{wxUSE_IPV6, Use experimental wxIPV6address and related classes.}
+ @itemdef{wxUSE_JOYSTICK, Use wxJoystick class.}
+ @itemdef{wxUSE_LIBJPEG, Enables JPEG format support (requires libjpeg).}
+ @itemdef{wxUSE_LIBPNG, Enables PNG format support (requires libpng). Also requires wxUSE_ZLIB.}
+ @itemdef{wxUSE_LIBTIFF, Enables TIFF format support (requires libtiff).}
+ @itemdef{wxUSE_LISTBOOK, Use wxListbook class.}
+ @itemdef{wxUSE_LISTBOX, Use wxListBox class.}
+ @itemdef{wxUSE_LISTCTRL, Use wxListCtrl class.}
+ @itemdef{wxUSE_LOG, Use wxLog and related classes.}
+ @itemdef{wxUSE_LOG_DEBUG, Enabled when wxLog used with __WXDEBUG__ defined.}
+ @itemdef{wxUSE_LOG_DIALOG, Use wxLogDialog class.}
+ @itemdef{wxUSE_LOGGUI, Use wxLogGui class.}
+ @itemdef{wxUSE_LOGWINDOW, Use wxLogFrame class.}
+ @itemdef{wxUSE_LONGLONG, Use wxLongLong class.}
+ @itemdef{wxUSE_LONGLONG_NATIVE, Use native long long type in wxLongLong implementation.}
+ @itemdef{wxUSE_LONGLONG_WX, Use generic wxLongLong implementation.}
+ @itemdef{wxUSE_MDI, Use wxMDIParentFrame, and wxMDIChildFrame}
+ @itemdef{wxUSE_MDI_ARCHITECTURE, Use MDI-based document-view classes.}
+ @itemdef{wxUSE_MEDIACTRL, Use wxMediaCtrl.}
+ @itemdef{wxUSE_MEMORY_TRACING, Use wxWidgets memory leak detection, not recommended if using another memory debugging tool.}
+ @itemdef{wxUSE_MENUS, Use wxMenu and related classes.}
+ @itemdef{wxUSE_METAFILE, Use wxMetaFile and related classes.}
+ @itemdef{wxUSE_MIMETYPE, Use wxFileType class.}
+ @itemdef{wxUSE_MINIFRAME, Use wxMiniFrame class.}
+ @itemdef{wxUSE_MOUSEWHEEL, Support mouse wheel events.}
+ @itemdef{wxUSE_MSGDLG, Use wxMessageDialog class and wxMessageBox function.}
+ @itemdef{wxUSE_NATIVE_STATUSBAR, Use native wxStatusBar class.}
+ @itemdef{wxUSE_NOTEBOOK, Use wxNotebook and related classes.}
+ @itemdef{wxUSE_NUMBERDLG, Use wxNumberEntryDialog class.}
+ @itemdef{wxUSE_ODCOMBOBOX, Use wxOwnerDrawnComboBox class.}
+ @itemdef{wxUSE_ON_FATAL_EXCEPTION, Catch signals in wxApp::OnFatalException method.}
+ @itemdef{wxUSE_OPENGL, Please use wxUSE_GLCANVAS to test for enabled OpenGL support instead.}
+ @itemdef{wxUSE_OWNER_DRAWN, Use interface for owner-drawn GUI elements.}
+ @itemdef{wxUSE_PALETTE, Use wxPalette and related classes.}
+ @itemdef{wxUSE_PCX, Enables wxImage PCX handler.}
+ @itemdef{wxUSE_PNM, Enables wxImage PNM handler.}
+ @itemdef{wxUSE_POPUPWIN, Use wxPopupWindow class.}
+ @itemdef{wxUSE_POSTSCRIPT, Use wxPostScriptPrinter class.}
+ @itemdef{wxUSE_PRINTF_POS_PARAMS, Use wxVsnprintf which supports positional parameters.}
+ @itemdef{wxUSE_PRINTING_ARCHITECTURE, Enable printer classes.}
+ @itemdef{wxUSE_PROGRESSDLG, Enables progress dialog classes.}
+ @itemdef{wxUSE_PROTOCOL, Use wxProtocol and derived classes.}
+ @itemdef{wxUSE_PROTOCOL_FILE, Use wxFileProto class. (requires wxProtocol)}
+ @itemdef{wxUSE_PROTOCOL_FTP, Use wxFTP class. (requires wxProtocol)}
+ @itemdef{wxUSE_PROTOCOL_HTTP, Use wxHTTP class. (requireswxProtocol)}
+ @itemdef{wxUSE_RADIOBOX, Use wxRadioBox class.}
+ @itemdef{wxUSE_RADIOBTN, Use wxRadioButton class.}
+ @itemdef{wxUSE_REGEX, Use wxRegEx class.}
+ @itemdef{wxUSE_RICHTEXT, Use wxRichTextCtrl class.}
+ @itemdef{wxUSE_RICHTEXT_XML_HANDLER, See src/xrc/xh_richtext.cpp file.}
+ @itemdef{wxUSE_SASH, Use wxSashWindow class.}
+ @itemdef{wxUSE_SCROLLBAR, Use wxScrollBar class.}
+ @itemdef{wxUSE_SEARCHCTRL, Use wxSearchCtrl class.}
+ @itemdef{wxUSE_SELECT_DISPATCHER, Use wxSelectDispatcher class.}
+ @itemdef{wxUSE_SLIDER, Use wxSlider class.}
+ @itemdef{wxUSE_SNGLINST_CHECKER, Use wxSingleInstanceChecker class.}
+ @itemdef{wxUSE_SOCKETS, Enables Network address classes.}
+ @itemdef{wxUSE_SOUND, Use wxSound class.}
+ @itemdef{wxUSE_SPINBTN, Use wxSpinButton class.}
+ @itemdef{wxUSE_SPINCTRL, Use wxSpinCtrl class.}
+ @itemdef{wxUSE_SPLASH, Use wxSplashScreen class.}
+ @itemdef{wxUSE_SPLINES, Provide methods for spline drawing in wxDC.}
+ @itemdef{wxUSE_SPLITTER, Use wxSplitterWindow class.}
+ @itemdef{wxUSE_STACKWALKER, Enables wxStackWalker and related classes.}
+ @itemdef{wxUSE_STARTUP_TIPS, Use startup tips, wxTipProvider class.}
+ @itemdef{wxUSE_STATBMP, Use wxStaticBitmap class.}
+ @itemdef{wxUSE_STATBOX, Use wxStaticBox class.}
+ @itemdef{wxUSE_STATLINE, Use wxStaticLine class.}
+ @itemdef{wxUSE_STATTEXT, Use wxStaticText class.}
+ @itemdef{wxUSE_STATUSBAR, Use wxStatusBar class.}
+ @itemdef{wxUSE_STC, Use wxStyledTextCtrl.}
+ @itemdef{wxUSE_STD_IOSTREAM, Use standard C++ stream classes.}
+ @itemdef{wxUSE_STD_STRING, Use standard C++ string classes.}
+ @itemdef{wxUSE_STDPATHS, Use wxStandardPaths class.}
+ @itemdef{wxUSE_STL, Use Standard Template Library for the container classes and wxString implementation.}
+ @itemdef{wxUSE_STOPWATCH, Use wxStopWatch class.}
+ @itemdef{wxUSE_STREAMS, Enable stream classes.}
+ @itemdef{wxUSE_SVG, Use wxSVGFileDC class.}
+ @itemdef{wxUSE_SYSTEM_OPTIONS, Use wxSystemOptions class.}
+ @itemdef{wxUSE_TAB_DIALOG, Use the obsolete wxTabControl class.}
+ @itemdef{wxUSE_TARSTREAM, Enable Tar files support.}
+ @itemdef{wxUSE_TASKBARICON, Use wxTaskBarIcon class.}
+ @itemdef{wxUSE_TEXTBUFFER, Use wxTextBuffer class.}
+ @itemdef{wxUSE_TEXTCTRL, Use wxTextCtrl class.}
+ @itemdef{wxUSE_TEXTDLG, Use wxTextEntryDialog class.}
+ @itemdef{wxUSE_TEXTFILE, Use wxTextFile class.}
+ @itemdef{wxUSE_TGA, Enable wxImage TGA handler.}
+ @itemdef{wxUSE_THREADS, Use wxThread and related classes.}
+ @itemdef{wxUSE_TIMER, Use wxTimer class.}
+ @itemdef{wxUSE_TIPWINDOW, Use wxTipWindow class.}
+ @itemdef{wxUSE_TOGGLEBTN, Use wxToggleButton class.}
+ @itemdef{wxUSE_TOOLBAR, Use wxToolBar class.}
+ @itemdef{wxUSE_TOOLBAR_NATIVE, Use native wxToolBar class.}
+ @itemdef{wxUSE_TOOLBOOK, Use wxToolbook class.}
+ @itemdef{wxUSE_TOOLTIPS, Use wxToolTip class.}
+ @itemdef{wxUSE_TREEBOOK, Use wxTreebook class.}
+ @itemdef{wxUSE_TREECTRL, Use wxTreeCtrl class.}
+ @itemdef{wxUSE_TTM_WINDOWFROMPOINT, Obsolete, do not use.}
+ @itemdef{wxUSE_UNICODE, Compiled with Unicode support.}
+ @itemdef{wxUSE_UNICODE_UTF8, Compiled with UTF8 support.}
+ @itemdef{wxUSE_UNICODE_WCHAR, Compiled with Unicode support and using wchar_t type.}
+ @itemdef{wxUSE_URL, Use wxURL class.}
+ @itemdef{wxUSE_URL_NATIVE, Use native support for some operations with wxURL.}
+ @itemdef{wxUSE_UTF8_LOCALE_ONLY, Build wxWidgets to support running only under UTF-8 (and C) locale. This eliminates the code necessary for conversions from the other locales and reduces the library size; useful for embedded systems.}
+ @itemdef{wxUSE_VALIDATORS, Use wxValidator class.}
+ @itemdef{wxUSE_VARIANT, Use wxVariant class.}
+ @itemdef{wxUSE_WIZARDDLG, Use wxWizard class.}
+ @itemdef{wxUSE_WXHTML_HELP, Use wxHtmlHelpController and related classes.}
+ @itemdef{wxUSE_XML, Use XML parsing classes.}
+ @itemdef{wxUSE_XPM, Enable XPM reader for wxImage and wxBitmap classes.}
+ @itemdef{wxUSE_XRC, Use XRC XML-based resource system.}
+ @itemdef{wxUSE_ZIPSTREAM, Enable streams for Zip files.}
+ @itemdef{wxUSE_ZLIB, Use wxZlibInput and wxZlibOutputStream classes, required by wxUSE_LIBPNG.}
+ @endDefList
+
+
+ @section page_wxusedef_unix wxUSE preprocessor symbols used only under Unix platforms
+
+ @beginDefList
+ @itemdef{wxUSE_EPOLL_DISPATCHER, Use wxEpollDispatcher class. See also wxUSE_SELECT_DISPATCHER.}
+ @itemdef{wxUSE_GSTREAMER, Use GStreamer library in wxMediaCtrl.}
+ @itemdef{wxUSE_LIBMSPACK, Use libmspack library.}
+ @itemdef{wxUSE_LIBSDL, Use SDL for wxSound implementation.}
+ @itemdef{wxUSE_PLUGINS, See also wxUSE_LIBSDL.}
+ @itemdef{wxUSE_UNIX, Enabled on Unix Platform.}
+ @endDefList
+
+
+ @section page_wxusedef_x11 wxUSE preprocessor symbols used only in wxX11 Platform
+
+ @beginDefList
+ @itemdef{wxUSE_NANOX, Use NanoX.}
+ @itemdef{wxUSE_UNIV_TEXTCTRL, Use wxUniv's implementation of wxTextCtrl class.}
+ @endDefList
+
+
+ @section page_wxusedef_gtk wxUSE preprocessor symbols used only in wxGTK port
+
+ @beginDefList
+ @itemdef{wxUSE_DETECT_SM, Use code to detect X11 session manager.}
+ @itemdef{wxUSE_GTKPRINT, Use GTK+ printing support.}
+ @itemdef{wxUSE_LIBGNOMEPRINT, Use GNOME printing support.}
+ @itemdef{wxUSE_LIBGNOMEVFS, Use GNOME VFS support. Currently has no effect. }
+ @itemdef{wxUSE_LIBHILDON, Use Hildon framework for Nokia 770. Currently has no effect. }
+ @endDefList
+
+
+ @section page_wxusedef_mac wxUSE preprocessor symbols used only in wxMac port
+
+ @beginDefList
+ @itemdef{wxUSE_MAC_CRITICAL_REGION_MUTEX, See src/mac/carbon/thread.cpp file.}
+ @itemdef{wxUSE_MAC_PTHREADS_MUTEX, See src/mac/carbon/thread.cpp file.}
+ @itemdef{wxUSE_MAC_SEMAPHORE_MUTEX, See src/mac/carbon/thread.cpp file.}
+ @itemdef{wxUSE_WEBKIT, Use wxWebKitCtrl class.}
+ @endDefList
+
+
+ @section page_wxusedef_motif wxUSE preprocessor symbols used only in wxMotif port
+
+ @beginDefList
+ @itemdef{wxUSE_GADGETS, Use xmCascadeButtonGadgetClass, xmLabelGadgetClass, xmPushButtonGadgetClass and xmToggleButtonGadgetClass classes.}
+ @itemdef{wxUSE_INVISIBLE_RESIZE, See src/motif/dialog.cpp file.}
+ @endDefList
+
+
+ @section page_wxusedef_cocoa wxUSE preprocessor symbols used only in Cocoa port
+
+ @beginDefList
+ @itemdef{wxUSE_OBJC_UNIQUIFYING, Enable Objective-C class name uniquifying.}
+ @endDefList
+
+
+ @section page_wxusedef_os2 wxUSE preprocessor symbols used only in OS2 port
+
+ @beginDefList
+ @itemdef{wxUSE_CONSOLEDEBUG, See src/os2/app.cpp file.}
+ @itemdef{wxUSE_DDE, See src/os2/mimetype.cpp file.}
+ @itemdef{wxUSE_IMAGE_LOADING_IN_MSW, See src/os2/clipbrd.cpp file.}
+ @itemdef{wxUSE_IMAGE_LOADING_IN_OS2, See src/os2/gdiimage.cpp file.}
+ @itemdef{wxUSE_NET_API, Use NetBios32GetInfo API call.}
+ @itemdef{wxUSE_RESOURCE_LOADING_IN_OS2, See src/os2/gdiimage.cpp file.}
+ @endDefList
+
+
+ @section page_wxusedef_msw wxUSE preprocessor symbols used only in wxMSW port
+
+ @beginDefList
+ @itemdef{wxUSE_ACCESSIBILITY, Enable accessibility support}
+ @itemdef{wxUSE_ACTIVEX, Use wxActiveXContainer and related classes.}
+ @itemdef{wxUSE_COMBOCTRL_POPUP_ANIMATION, See wx/msw/combo.h file.}
+ @itemdef{wxUSE_COMCTL32_SAFELY, See src/msw/treectrl.cpp file.}
+ @itemdef{wxUSE_COMMON_DIALOGS, Enable use of windows common dialogs from header commdlg.h; example PRINTDLG.}
+ @itemdef{wxUSE_CRASHREPORT, Use wxCrashReport class.}
+ @itemdef{wxUSE_DATEPICKCTRL_GENERIC, Use generic wxDatePickerCtrl implementation in addition to the native one.}
+ @itemdef{wxUSE_DC_CACHEING, cache temporary wxDC objects.}
+ @itemdef{wxUSE_DIRECTDRAW, Enable use of the system include file ddraw.h.}
+ @itemdef{wxUSE_DDE_FOR_IPC, See wx/ipc.h file.}
+ @itemdef{wxUSE_ENH_METAFILE, Use wxEnhMetaFile.}
+ @itemdef{wxUSE_HOTKEY, Use wxWindow::RegisterHotKey() and wxWindow::UnregisterHotKey}
+ @itemdef{wxUSE_INKEDIT, Use InkEdit library. Related to Tablet PCs.}
+ @itemdef{wxUSE_MS_HTML_HELP, Use wxCHMHelpController class.}
+ @itemdef{wxUSE_NO_MANIFEST, Use to prevent the auto generation, under MSVC, of manifest file needed by windows XP and above.}
+ @itemdef{wxUSE_NORLANDER_HEADERS, Using headers whose author is Anders Norlander.}
+ @itemdef{wxUSE_OLE, Enables OLE helper routines.}
+ @itemdef{wxUSE_OLE_AUTOMATION, Enable OLE automation utilities.}
+ @itemdef{wxUSE_OLE_CLIPBOARD, Use OLE clipboard.}
+ @itemdef{wxUSE_PENWINDOWS, See src/msw/penwin.cpp file.}
+ @itemdef{wxUSE_POSTSCRIPT_ARCHITECTURE_IN_MSW, Use PS printing in wxMSW.}
+ @itemdef{wxUSE_PS_PRINTING, See src/msw/dcprint.cpp file.}
+ @itemdef{wxUSE_REGKEY, Use wxRegKey class.}
+ @itemdef{wxUSE_RICHEDIT, Enable use of riched32.dll in wxTextCtrl}
+ @itemdef{wxUSE_RICHEDIT2, Enable use of riched20.dll in wxTextCtrl}
+ @itemdef{wxUSE_VC_CRTDBG, See wx/msw/msvcrt.h file.}
+ @itemdef{wxUSE_UNICODE_MSLU, Use MSLU for Unicode support under Windows 9x systems.}
+ @itemdef{wxUSE_UXTHEME, Enable support for XP themes.}
+ @itemdef{wxUSE_WIN_METAFILES_ALWAYS, Use wxMetaFile even when wxUSE_ENH_METAFILE=$1$.}
+ @itemdef{wxUSE_WXDIB, Use wxDIB class.}
+ @itemdef{wxUSE_XPM_IN_MSW, See also wxUSE_XPM}
+ @endDefList
+
+
+ @section page_wxusedef_univ wxUSE preprocessor symbols used only in wxUniversal
+
+ @beginDefList
+ @itemdef{wxUSE_ALL_THEMES, Use all themes in wxUniversal; See wx/univ/theme.h file.}
+ @itemdef{wxUSE_THEME_GTK, Use GTK+ 1-like theme in wxUniversal}
+ @itemdef{wxUSE_THEME_METAL, Use GTK+ 2-like theme in wxUniversal}
+ @itemdef{wxUSE_THEME_MONO, Use simple monochrome theme in wxUniversal}
+ @itemdef{wxUSE_THEME_WIN32, Use Win32-like theme in wxUniversal}
+ @endDefList
+
+*/
\ No newline at end of file
diff --git a/docs/doxygen/mainpages/constants.h b/docs/doxygen/mainpages/constants.h
new file mode 100644
index 0000000000..71be73a820
--- /dev/null
+++ b/docs/doxygen/mainpages/constants.h
@@ -0,0 +1,24 @@
+/////////////////////////////////////////////////////////////////////////////
+// Name: constants.h
+// Purpose: Constants page of the Doxygen manual
+// Author: wxWidgets team
+// RCS-ID: $Id$
+// Licence: wxWindows license
+/////////////////////////////////////////////////////////////////////////////
+
+
+/*!
+
+ @page page_constants Constants
+
+ This chapter describes the constants defined by wxWidgets.
+
+ @li @subpage page_cppconst
+ @li @subpage page_keycodes
+ @li @subpage page_keymodifiers
+ @li @subpage page_languagecodes
+ @li @subpage page_stdevtid
+ @li @subpage page_stockitems
+ @li @subpage page_wxusedef
+
+*/
diff --git a/docs/doxygen/mainpages/copyright.h b/docs/doxygen/mainpages/copyright.h
new file mode 100644
index 0000000000..6c0bf8c2c0
--- /dev/null
+++ b/docs/doxygen/mainpages/copyright.h
@@ -0,0 +1,596 @@
+/////////////////////////////////////////////////////////////////////////////
+// Name: copyright.h
+// Purpose: Copyright page of the Doxygen manual
+// Author: wxWidgets team
+// RCS-ID: $Id$
+// Licence: wxWindows license
+/////////////////////////////////////////////////////////////////////////////
+
+
+/*!
+
+ @page page_copyright Copyright notice
+
+
+ Copyright (c) 1992-2008 Julian Smart, Robert Roebling, Vadim Zeitlin and other
+ members of the wxWidgets team
+
+ Portions (c) 1996 Artificial Intelligence Applications Institute
+
+
+ Please also see the wxWindows license files (preamble.txt, lgpl.txt, gpl.txt,
+ licence.txt, licendoc.txt) for conditions of software and documentation use.
+ Note that we use the old name wxWindows in the license, pending
+ recognition of the new name by OSI.
+
+ @li @subpage page_copyright_wxlicense
+ @li @subpage page_copyright_gnulicense
+
+*/
+
+
+/*!
+
+ @page page_copyright_wxlicense wxWindows Library License, Version 3.1
+
+
+
+ Copyright (c) 1998-2008 Julian Smart, Robert Roebling et al
+
+ Everyone is permitted to copy and distribute verbatim copies
+ of this licence document, but changing it is not allowed.
+
+
+ WXWINDOWS LIBRARY LICENCE
+
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+
+ This library is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public Licence as published by
+ the Free Software Foundation; either version 2 of the Licence, or (at
+ your option) any later version.
+
+ This library is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library
+ General Public Licence for more details.
+
+ You should have received a copy of the GNU Library General Public Licence
+ along with this software, usually in a file named COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
+ Boston, MA 02111-1307 USA.
+
+
+ EXCEPTION NOTICE
+
+ 1. As a special exception, the copyright holders of this library give
+ permission for additional uses of the text contained in this release of
+ the library as licenced under the wxWindows Library Licence, applying
+ either version 3.1 of the Licence, or (at your option) any later version of
+ the Licence as published by the copyright holders of version 3.1 of the
+ Licence document.
+
+ 2. The exception is that you may use, copy, link, modify and distribute
+ under your own terms, binary object code versions of works based
+ on the Library.
+
+ 3. If you copy code from files distributed under the terms of the GNU
+ General Public Licence or the GNU Library General Public Licence into a
+ copy of this library, as this licence permits, the exception does not
+ apply to the code that you add in this way. To avoid misleading anyone as
+ to the status of such modified files, you must delete this exception
+ notice from such code and/or adjust the licensing conditions notice
+ accordingly.
+
+ 4. If you write modifications of your own for this library, it is your
+ choice whether to permit this exception to apply to your modifications.
+ If you do not wish that, you must delete the exception notice from such
+ code and/or adjust the licensing conditions notice accordingly.
+
+*/
+
+
+/*!
+
+ @page page_copyright_gnulicense GNU Library General Public License, Version 2
+
+ Copyright (C) 1991 Free Software Foundation, Inc.
+ 675 Mass Ave, Cambridge, MA 02139, USA
+
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ [This is the first released version of the library GPL. It is
+ numbered 2 because it goes with version 2 of the ordinary GPL.]
+
+ @section page_copyright_gnulicense_preamble Preamble
+
+ The licenses for most software are designed to take away your
+ freedom to share and change it. By contrast, the GNU General Public
+ Licenses are intended to guarantee your freedom to share and change
+ free software -- to make sure the software is free for all its users.
+
+ This license, the Library General Public License, applies to some
+ specially designated Free Software Foundation software, and to any
+ other libraries whose authors decide to use it. You can use it for
+ your libraries, too.
+
+ When we speak of free software, we are referring to freedom, not
+ price. Our General Public Licenses are designed to make sure that you
+ have the freedom to distribute copies of free software (and charge for
+ this service if you wish), that you receive source code or can get it
+ if you want it, that you can change the software or use pieces of it
+ in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+ anyone to deny you these rights or to ask you to surrender the rights.
+ These restrictions translate to certain responsibilities for you if
+ you distribute copies of the library, or if you modify it.
+
+ For example, if you distribute copies of the library, whether gratis
+ or for a fee, you must give the recipients all the rights that we gave
+ you. You must make sure that they, too, receive or can get the source
+ code. If you link a program with the library, you must provide
+ complete object files to the recipients so that they can relink them
+ with the library, after making changes to the library and recompiling
+ it. And you must show them these terms so they know their rights.
+
+ Our method of protecting your rights has two steps: (1) copyright
+ the library, and (2) offer you this license which gives you legal
+ permission to copy, distribute and/or modify the library.
+
+ Also, for each distributor's protection, we want to make certain
+ that everyone understands that there is no warranty for this free
+ library. If the library is modified by someone else and passed on, we
+ want its recipients to know that what they have is not the original
+ version, so that any problems introduced by others will not reflect on
+ the original authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+ patents. We wish to avoid the danger that companies distributing free
+ software will individually obtain patent licenses, thus in effect
+ transforming the program into proprietary software. To prevent this,
+ we have made it clear that any patent must be licensed for everyone's
+ free use or not licensed at all.
+
+ Most GNU software, including some libraries, is covered by the ordinary
+ GNU General Public License, which was designed for utility programs. This
+ license, the GNU Library General Public License, applies to certain
+ designated libraries. This license is quite different from the ordinary
+ one; be sure to read it in full, and don't assume that anything in it is
+ the same as in the ordinary license.
+
+ The reason we have a separate public license for some libraries is that
+ they blur the distinction we usually make between modifying or adding to a
+ program and simply using it. Linking a program with a library, without
+ changing the library, is in some sense simply using the library, and is
+ analogous to running a utility program or application program. However, in
+ a textual and legal sense, the linked executable is a combined work, a
+ derivative of the original library, and the ordinary General Public License
+ treats it as such.
+
+ Because of this blurred distinction, using the ordinary General
+ Public License for libraries did not effectively promote software
+ sharing, because most developers did not use the libraries. We
+ concluded that weaker conditions might promote sharing better.
+
+ However, unrestricted linking of non-free programs would deprive the
+ users of those programs of all benefit from the free status of the
+ libraries themselves. This Library General Public License is intended to
+ permit developers of non-free programs to use free libraries, while
+ preserving your freedom as a user of such programs to change the free
+ libraries that are incorporated in them. (We have not seen how to achieve
+ this as regards changes in header files, but we have achieved it as regards
+ changes in the actual functions of the Library.) The hope is that this
+ will lead to faster development of free libraries.
+
+ The precise terms and conditions for copying, distribution and
+ modification follow. Pay close attention to the difference between a
+ "work based on the library" and a "work that uses the library". The
+ former contains code derived from the library, while the latter only
+ works together with the library.
+
+ Note that it is possible for a library to be covered by the ordinary
+ General Public License rather than by this special one.
+
+
+ GNU LIBRARY GENERAL PUBLIC LICENSE
+
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+
+ 0. This License Agreement applies to any software library which
+ contains a notice placed by the copyright holder or other authorized
+ party saying it may be distributed under the terms of this Library
+ General Public License (also called "this License"). Each licensee is
+ addressed as "you".
+
+ A "library" means a collection of software functions and/or data
+ prepared so as to be conveniently linked with application programs
+ (which use some of those functions and data) to form executables.
+
+ The "Library", below, refers to any such software library or work
+ which has been distributed under these terms. A "work based on the
+ Library" means either the Library or any derivative work under
+ copyright law: that is to say, a work containing the Library or a
+ portion of it, either verbatim or with modifications and/or translated
+ straightforwardly into another language. (Hereinafter, translation is
+ included without limitation in the term "modification".)
+
+ "Source code" for a work means the preferred form of the work for
+ making modifications to it. For a library, complete source code means
+ all the source code for all modules it contains, plus any associated
+ interface definition files, plus the scripts used to control compilation
+ and installation of the library.
+
+ Activities other than copying, distribution and modification are not
+ covered by this License; they are outside its scope. The act of
+ running a program using the Library is not restricted, and output from
+ such a program is covered only if its contents constitute a work based
+ on the Library (independent of the use of the Library in a tool for
+ writing it). Whether that is true depends on what the Library does
+ and what the program that uses the Library does.
+
+ 1. You may copy and distribute verbatim copies of the Library's
+ complete source code as you receive it, in any medium, provided that
+ you conspicuously and appropriately publish on each copy an
+ appropriate copyright notice and disclaimer of warranty; keep intact
+ all the notices that refer to this License and to the absence of any
+ warranty; and distribute a copy of this License along with the
+ Library.
+
+ You may charge a fee for the physical act of transferring a copy,
+ and you may at your option offer warranty protection in exchange for a
+ fee.
+
+ 2. You may modify your copy or copies of the Library or any portion
+ of it, thus forming a work based on the Library, and copy and
+ distribute such modifications or work under the terms of Section 1
+ above, provided that you also meet all of these conditions:
+
+ a) The modified work must itself be a software library.
+
+ b) You must cause the files modified to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ c) You must cause the whole of the work to be licensed at no
+ charge to all third parties under the terms of this License.
+
+ d) If a facility in the modified Library refers to a function or a
+ table of data to be supplied by an application program that uses
+ the facility, other than as an argument passed when the facility
+ is invoked, then you must make a good faith effort to ensure that,
+ in the event an application does not supply such function or
+ table, the facility still operates, and performs whatever part of
+ its purpose remains meaningful.
+
+ (For example, a function in a library to compute square roots has
+ a purpose that is entirely well-defined independent of the
+ application. Therefore, Subsection 2d requires that any
+ application-supplied function or table used by this function must
+ be optional: if the application does not supply it, the square
+ root function must still compute square roots.)
+
+ These requirements apply to the modified work as a whole. If
+ identifiable sections of that work are not derived from the Library,
+ and can be reasonably considered independent and separate works in
+ themselves, then this License, and its terms, do not apply to those
+ sections when you distribute them as separate works. But when you
+ distribute the same sections as part of a whole which is a work based
+ on the Library, the distribution of the whole must be on the terms of
+ this License, whose permissions for other licensees extend to the
+ entire whole, and thus to each and every part regardless of who wrote
+ it.
+
+ Thus, it is not the intent of this section to claim rights or contest
+ your rights to work written entirely by you; rather, the intent is to
+ exercise the right to control the distribution of derivative or
+ collective works based on the Library.
+
+ In addition, mere aggregation of another work not based on the Library
+ with the Library (or with a work based on the Library) on a volume of
+ a storage or distribution medium does not bring the other work under
+ the scope of this License.
+
+ 3. You may opt to apply the terms of the ordinary GNU General Public
+ License instead of this License to a given copy of the Library. To do
+ this, you must alter all the notices that refer to this License, so
+ that they refer to the ordinary GNU General Public License, version 2,
+ instead of to this License. (If a newer version than version 2 of the
+ ordinary GNU General Public License has appeared, then you can specify
+ that version instead if you wish.) Do not make any other change in
+ these notices.
+
+ Once this change is made in a given copy, it is irreversible for
+ that copy, so the ordinary GNU General Public License applies to all
+ subsequent copies and derivative works made from that copy.
+
+ This option is useful when you wish to copy part of the code of
+ the Library into a program that is not a library.
+
+ 4. You may copy and distribute the Library (or a portion or
+ derivative of it, under Section 2) in object code or executable form
+ under the terms of Sections 1 and 2 above provided that you accompany
+ it with the complete corresponding machine-readable source code, which
+ must be distributed under the terms of Sections 1 and 2 above on a
+ medium customarily used for software interchange.
+
+ If distribution of object code is made by offering access to copy
+ from a designated place, then offering equivalent access to copy the
+ source code from the same place satisfies the requirement to
+ distribute the source code, even though third parties are not
+ compelled to copy the source along with the object code.
+
+ 5. A program that contains no derivative of any portion of the
+ Library, but is designed to work with the Library by being compiled or
+ linked with it, is called a "work that uses the Library". Such a
+ work, in isolation, is not a derivative work of the Library, and
+ therefore falls outside the scope of this License.
+
+ However, linking a "work that uses the Library" with the Library
+ creates an executable that is a derivative of the Library (because it
+ contains portions of the Library), rather than a "work that uses the
+ library". The executable is therefore covered by this License.
+ Section 6 states terms for distribution of such executables.
+
+ When a "work that uses the Library" uses material from a header file
+ that is part of the Library, the object code for the work may be a
+ derivative work of the Library even though the source code is not.
+ Whether this is true is especially significant if the work can be
+ linked without the Library, or if the work is itself a library. The
+ threshold for this to be true is not precisely defined by law.
+
+ If such an object file uses only numerical parameters, data
+ structure layouts and accessors, and small macros and small inline
+ functions (ten lines or less in length), then the use of the object
+ file is unrestricted, regardless of whether it is legally a derivative
+ work. (Executables containing this object code plus portions of the
+ Library will still fall under Section 6.)
+
+ Otherwise, if the work is a derivative of the Library, you may
+ distribute the object code for the work under the terms of Section 6.
+ Any executables containing that work also fall under Section 6,
+ whether or not they are linked directly with the Library itself.
+
+ 6. As an exception to the Sections above, you may also compile or
+ link a "work that uses the Library" with the Library to produce a
+ work containing portions of the Library, and distribute that work
+ under terms of your choice, provided that the terms permit
+ modification of the work for the customer's own use and reverse
+ engineering for debugging such modifications.
+
+ You must give prominent notice with each copy of the work that the
+ Library is used in it and that the Library and its use are covered by
+ this License. You must supply a copy of this License. If the work
+ during execution displays copyright notices, you must include the
+ copyright notice for the Library among them, as well as a reference
+ directing the user to the copy of this License. Also, you must do one
+ of these things:
+
+ a) Accompany the work with the complete corresponding
+ machine-readable source code for the Library including whatever
+ changes were used in the work (which must be distributed under
+ Sections 1 and 2 above); and, if the work is an executable linked
+ with the Library, with the complete machine-readable "work that
+ uses the Library", as object code and/or source code, so that the
+ user can modify the Library and then relink to produce a modified
+ executable containing the modified Library. (It is understood
+ that the user who changes the contents of definitions files in the
+ Library will not necessarily be able to recompile the application
+ to use the modified definitions.)
+
+ b) Accompany the work with a written offer, valid for at
+ least three years, to give the same user the materials
+ specified in Subsection 6a, above, for a charge no more
+ than the cost of performing this distribution.
+
+ c) If distribution of the work is made by offering access to copy
+ from a designated place, offer equivalent access to copy the above
+ specified materials from the same place.
+
+ d) Verify that the user has already received a copy of these
+ materials or that you have already sent this user a copy.
+
+ For an executable, the required form of the "work that uses the
+ Library" must include any data and utility programs needed for
+ reproducing the executable from it. However, as a special exception,
+ the source code distributed need not include anything that is normally
+ distributed (in either source or binary form) with the major
+ components (compiler, kernel, and so on) of the operating system on
+ which the executable runs, unless that component itself accompanies
+ the executable.
+
+ It may happen that this requirement contradicts the license
+ restrictions of other proprietary libraries that do not normally
+ accompany the operating system. Such a contradiction means you cannot
+ use both them and the Library together in an executable that you
+ distribute.
+
+ 7. You may place library facilities that are a work based on the
+ Library side-by-side in a single library together with other library
+ facilities not covered by this License, and distribute such a combined
+ library, provided that the separate distribution of the work based on
+ the Library and of the other library facilities is otherwise
+ permitted, and provided that you do these two things:
+
+ a) Accompany the combined library with a copy of the same work
+ based on the Library, uncombined with any other library
+ facilities. This must be distributed under the terms of the
+ Sections above.
+
+ b) Give prominent notice with the combined library of the fact
+ that part of it is a work based on the Library, and explaining
+ where to find the accompanying uncombined form of the same work.
+
+ 8. You may not copy, modify, sublicense, link with, or distribute
+ the Library except as expressly provided under this License. Any
+ attempt otherwise to copy, modify, sublicense, link with, or
+ distribute the Library is void, and will automatically terminate your
+ rights under this License. However, parties who have received copies,
+ or rights, from you under this License will not have their licenses
+ terminated so long as such parties remain in full compliance.
+
+ 9. You are not required to accept this License, since you have not
+ signed it. However, nothing else grants you permission to modify or
+ distribute the Library or its derivative works. These actions are
+ prohibited by law if you do not accept this License. Therefore, by
+ modifying or distributing the Library (or any work based on the
+ Library), you indicate your acceptance of this License to do so, and
+ all its terms and conditions for copying, distributing or modifying
+ the Library or works based on it.
+
+ 10. Each time you redistribute the Library (or any work based on the
+ Library), the recipient automatically receives a license from the
+ original licensor to copy, distribute, link with or modify the Library
+ subject to these terms and conditions. You may not impose any further
+ restrictions on the recipients' exercise of the rights granted herein.
+ You are not responsible for enforcing compliance by third parties to
+ this License.
+
+ 11. If, as a consequence of a court judgment or allegation of patent
+ infringement or for any other reason (not limited to patent issues),
+ conditions are imposed on you (whether by court order, agreement or
+ otherwise) that contradict the conditions of this License, they do not
+ excuse you from the conditions of this License. If you cannot
+ distribute so as to satisfy simultaneously your obligations under this
+ License and any other pertinent obligations, then as a consequence you
+ may not distribute the Library at all. For example, if a patent
+ license would not permit royalty-free redistribution of the Library by
+ all those who receive copies directly or indirectly through you, then
+ the only way you could satisfy both it and this License would be to
+ refrain entirely from distribution of the Library.
+
+ If any portion of this section is held invalid or unenforceable under any
+ particular circumstance, the balance of the section is intended to apply,
+ and the section as a whole is intended to apply in other circumstances.
+
+ It is not the purpose of this section to induce you to infringe any
+ patents or other property right claims or to contest validity of any
+ such claims; this section has the sole purpose of protecting the
+ integrity of the free software distribution system which is
+ implemented by public license practices. Many people have made
+ generous contributions to the wide range of software distributed
+ through that system in reliance on consistent application of that
+ system; it is up to the author/donor to decide if he or she is willing
+ to distribute software through any other system and a licensee cannot
+ impose that choice.
+
+ This section is intended to make thoroughly clear what is believed to
+ be a consequence of the rest of this License.
+
+ 12. If the distribution and/or use of the Library is restricted in
+ certain countries either by patents or by copyrighted interfaces, the
+ original copyright holder who places the Library under this License may add
+ an explicit geographical distribution limitation excluding those countries,
+ so that distribution is permitted only in or among countries not thus
+ excluded. In such case, this License incorporates the limitation as if
+ written in the body of this License.
+
+ 13. The Free Software Foundation may publish revised and/or new
+ versions of the Library General Public License from time to time.
+ Such new versions will be similar in spirit to the present version,
+ but may differ in detail to address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the Library
+ specifies a version number of this License which applies to it and
+ "any later version", you have the option of following the terms and
+ conditions either of that version or of any later version published by
+ the Free Software Foundation. If the Library does not specify a
+ license version number, you may choose any version ever published by
+ the Free Software Foundation.
+
+ 14. If you wish to incorporate parts of the Library into other free
+ programs whose distribution conditions are incompatible with these,
+ write to the author to ask for permission. For software which is
+ copyrighted by the Free Software Foundation, write to the Free
+ Software Foundation; we sometimes make exceptions for this. Our
+ decision will be guided by the two goals of preserving the free status
+ of all derivatives of our free software and of promoting the sharing
+ and reuse of software generally.
+
+
+ NO WARRANTY
+
+
+ 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+ WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+ EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+ OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+ KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+ LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+ THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+ WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+ AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+ FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+ CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+ LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+ RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+ FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+ SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+ DAMAGES.
+
+
+
+ END OF TERMS AND CONDITIONS
+
+
+ @section page_copyright_gnulicense_appendix Appendix: How to Apply These Terms to Your New Libraries
+
+ If you develop a new library, and you want it to be of the greatest
+ possible use to the public, we recommend making it free software that
+ everyone can redistribute and change. You can do so by permitting
+ redistribution under these terms (or, alternatively, under the terms of the
+ ordinary General Public License).
+
+ To apply these terms, attach the following notices to the library. It is
+ safest to attach them to the start of each source file to most effectively
+ convey the exclusion of warranty; and each file should have at least the
+ "copyright" line and a pointer to where the full notice is found.
+
+ @verbatim
+
+ Copyright (C)
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License as published by the Free Software Foundation; either
+ version 2 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this library; if not, write to the Free
+ Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ @endverbatim
+
+
+ Also add information on how to contact you by electronic and paper mail.
+
+ You should also get your employer (if you work as a programmer) or your
+ school, if any, to sign a "copyright disclaimer" for the library, if
+ necessary. Here is a sample; alter the names:
+
+ @verbatim
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the
+ library `Frob' (a library for tweaking knobs) written by James Random Hacker.
+
+ , 1 April 1990
+ Ty Coon, President of Vice
+ @endverbatim
+
+
+ That's all there is to it!
+*/
diff --git a/docs/doxygen/mainpages/devtips.h b/docs/doxygen/mainpages/devtips.h
new file mode 100644
index 0000000000..a58bc33893
--- /dev/null
+++ b/docs/doxygen/mainpages/devtips.h
@@ -0,0 +1,311 @@
+/////////////////////////////////////////////////////////////////////////////
+// Name: devtips.h
+// Purpose: Cross-platform development page of the Doxygen manual
+// Author: wxWidgets team
+// RCS-ID: $Id$
+// Licence: wxWindows license
+/////////////////////////////////////////////////////////////////////////////
+
+
+/*!
+
+ @page page_multiplatform Multi-platform development with wxWidgets
+
+ This chapter describes the practical details of using wxWidgets. Please
+ see the file install.txt for up-to-date installation instructions, and
+ changes.txt for differences between versions.
+
+ @li @ref page_multiplatform_includefiles
+ @li @ref page_multiplatform_libraries
+ @li @ref page_multiplatform_configuration
+ @li @ref page_multiplatform_makefiles
+ @li @ref page_multiplatform_windowsfiles
+ @li @ref page_multiplatform_allocatingobjects
+ @li @ref page_multiplatform_architecturedependency
+ @li @ref page_multiplatform_conditionalcompilation
+ @li @ref page_multiplatform_cpp
+ @li @ref page_multiplatform_filehandling
+
+
+
+
+ @section page_multiplatform_includefiles Include files
+
+ The main include file is @c "wx/wx.h"; this includes the most commonly
+ used modules of wxWidgets.
+
+ To save on compilation time, include only those header files relevant to the
+ source file. If you are using precompiled headers, you should include
+ the following section before any other includes:
+
+ @verbatim
+ // For compilers that support precompilation, includes "wx.h".
+ #include
+
+ #ifdef __BORLANDC__
+ #pragma hdrstop
+ #endif
+
+ #ifndef WX_PRECOMP
+ // Include your minimal set of headers here, or wx.h
+ #include
+ #endif
+
+ ... now your other include files ...
+ @endverbatim
+
+ The file @c "wx/wxprec.h" includes @c "wx/wx.h". Although this incantation
+ may seem quirky, it is in fact the end result of a lot of experimentation,
+ and several Windows compilers to use precompilation which is largely automatic for
+ compilers with necessary support. Currently it is used for Visual C++ (including
+ embedded Visual C++), Borland C++, Open Watcom C++, Digital Mars C++
+ and newer versions of GCC.
+ Some compilers might need extra work from the application developer to set the
+ build environment up as necessary for the support.
+
+
+
+ @section page_multiplatform_libraries Libraries
+
+ Most ports of wxWidgets can create either a static library or a shared
+ library. wxWidgets can also be built in multilib and monolithic variants.
+ See the @ref libraries_page for more information on these.
+
+
+
+ @section page_multiplatform_configuration Configuration
+
+ When using project files and makefiles directly to build wxWidgets,
+ options are configurable in the file
+ @c "wx/XXX/setup.h" where XXX is the required platform (such as msw, motif, gtk, mac). Some
+ settings are a matter of taste, some help with platform-specific problems, and
+ others can be set to minimize the size of the library. Please see the setup.h file
+ and @c install.txt files for details on configuration.
+
+ When using the 'configure' script to configure wxWidgets (on Unix and other platforms where
+ configure is available), the corresponding setup.h files are generated automatically
+ along with suitable makefiles. When using the RPM packages
+ for installing wxWidgets on Linux, a correct setup.h is shipped in the package and
+ this must not be changed.
+
+
+
+ @section page_multiplatform_makefiles Makefiles
+
+ On Microsoft Windows, wxWidgets has a different set of makefiles for each
+ compiler, because each compiler's 'make' tool is slightly different.
+ Popular Windows compilers that we cater for, and the corresponding makefile
+ extensions, include: Microsoft Visual C++ (.vc), Borland C++ (.bcc),
+ OpenWatcom C++ (.wat) and MinGW/Cygwin (.gcc). Makefiles are provided
+ for the wxWidgets library itself, samples, demos, and utilities.
+
+ On Linux, Mac and OS/2, you use the 'configure' command to
+ generate the necessary makefiles. You should also use this method when
+ building with MinGW/Cygwin on Windows.
+
+ We also provide project files for some compilers, such as
+ Microsoft VC++. However, we recommend using makefiles
+ to build the wxWidgets library itself, because makefiles
+ can be more powerful and less manual intervention is required.
+
+ On Windows using a compiler other than MinGW/Cygwin, you would
+ build the wxWidgets library from the build/msw directory
+ which contains the relevant makefiles.
+
+ On Windows using MinGW/Cygwin, and on Unix, MacOS X and OS/2, you invoke
+ 'configure' (found in the top-level of the wxWidgets source hierarchy),
+ from within a suitable empty directory for containing makefiles, object files and
+ libraries.
+
+ For details on using makefiles, configure, and project files,
+ please see docs/xxx/install.txt in your distribution, where
+ xxx is the platform of interest, such as msw, gtk, x11, mac.
+
+
+
+ @section page_multiplatform_windowsfiles Windows-specific files
+
+ wxWidgets application compilation under MS Windows requires at least one
+ extra file: a resource file.
+
+ @subsection page_multiplatform_windowsfiles_resources Resource file
+
+ The least that must be defined in the Windows resource file (extension RC)
+ is the following statement:
+
+ @verbatim
+ #include "wx/msw/wx.rc"
+ @endverbatim
+
+ which includes essential internal wxWidgets definitions. The resource script
+ may also contain references to icons, cursors, etc., for example:
+
+ @verbatim
+ wxicon icon wx.ico
+ @endverbatim
+
+ The icon can then be referenced by name when creating a frame icon. See
+ the MS Windows SDK documentation.
+
+ @note include wx.rc @e after any ICON statements
+ so programs that search your executable for icons (such
+ as the Program Manager) find your application icon first.
+
+
+
+ @section page_multiplatform_allocatingobjects Allocating and deleting wxWidgets objects
+
+ In general, classes derived from wxWindow must dynamically allocated
+ with @e new and deleted with @e delete. If you delete a window,
+ all of its children and descendants will be automatically deleted,
+ so you don't need to delete these descendants explicitly.
+
+ When deleting a frame or dialog, use @b Destroy rather than @b delete so
+ that the wxWidgets delayed deletion can take effect. This waits until idle time
+ (when all messages have been processed) to actually delete the window, to avoid
+ problems associated with the GUI sending events to deleted windows.
+
+ Don't create a window on the stack, because this will interfere
+ with delayed deletion.
+
+ If you decide to allocate a C++ array of objects (such as wxBitmap) that may
+ be cleaned up by wxWidgets, make sure you delete the array explicitly
+ before wxWidgets has a chance to do so on exit, since calling @e delete on
+ array members will cause memory problems.
+
+ wxColour can be created statically: it is not automatically cleaned
+ up and is unlikely to be shared between other objects; it is lightweight
+ enough for copies to be made.
+
+ Beware of deleting objects such as a wxPen or wxBitmap if they are still in use.
+ Windows is particularly sensitive to this: so make sure you
+ make calls like wxDC::SetPen(wxNullPen) or wxDC::SelectObject(wxNullBitmap) before deleting
+ a drawing object that may be in use. Code that doesn't do this will probably work
+ fine on some platforms, and then fail under Windows.
+
+
+
+ @section page_multiplatform_architecturedependency Architecture dependency
+
+ A problem which sometimes arises from writing multi-platform programs is that
+ the basic C types are not defined the same on all platforms. This holds true
+ for both the length in bits of the standard types (such as int and long) as
+ well as their byte order, which might be little endian (typically
+ on Intel computers) or big endian (typically on some Unix workstations). wxWidgets
+ defines types and macros that make it easy to write architecture independent
+ code. The types are:
+
+ wxInt32, wxInt16, wxInt8, wxUint32, wxUint16 = wxWord, wxUint8 = wxByte
+
+ where wxInt32 stands for a 32-bit signed integer type etc. You can also check
+ which architecture the program is compiled on using the wxBYTE_ORDER define
+ which is either wxBIG_ENDIAN or wxLITTLE_ENDIAN (in the future maybe wxPDP_ENDIAN
+ as well).
+
+ The macros handling bit-swapping with respect to the applications endianness
+ are described in the @ref byteordermacros section.
+
+
+
+ @section page_multiplatform_conditionalcompilation Conditional compilation
+
+ One of the purposes of wxWidgets is to reduce the need for conditional
+ compilation in source code, which can be messy and confusing to follow.
+ However, sometimes it is necessary to incorporate platform-specific
+ features (such as metafile use under MS Windows). The @ref wxusedef
+ symbols listed in the file @c setup.h may be used for this purpose,
+ along with any user-supplied ones.
+
+
+
+ @section page_multiplatform_cpp C++ issues
+
+ The following documents some miscellaneous C++ issues.
+
+ @subsection page_multiplatform_cpp_templates Templates
+
+ wxWidgets does not use templates (except for some advanced features that
+ are switched off by default) since it is a notoriously unportable feature.
+
+ @subsection page_multiplatform_cpp_rtti RTTI
+
+ wxWidgets does not use C++ run-time type information since wxWidgets provides
+ its own run-time type information system, implemented using macros.
+
+ @subsection page_multiplatform_cpp_null Type of NULL
+
+ Some compilers (e.g. the native IRIX cc) define NULL to be 0L so that
+ no conversion to pointers is allowed. Because of that, all these
+ occurrences of NULL in the GTK+ port use an explicit conversion such
+ as
+
+ @code
+ wxWindow *my_window = (wxWindow*) NULL;
+ @endcode
+
+ It is recommended to adhere to this in all code using wxWidgets as
+ this make the code (a bit) more portable.
+
+ @subsection page_multiplatform_cpp_precompiledheaders Precompiled headers
+
+ Some compilers, such as Borland C++ and Microsoft C++, support
+ precompiled headers. This can save a great deal of compiling time. The
+ recommended approach is to precompile @c "wx.h", using this
+ precompiled header for compiling both wxWidgets itself and any
+ wxWidgets applications. For Windows compilers, two dummy source files
+ are provided (one for normal applications and one for creating DLLs)
+ to allow initial creation of the precompiled header.
+
+ However, there are several downsides to using precompiled headers. One
+ is that to take advantage of the facility, you often need to include
+ more header files than would normally be the case. This means that
+ changing a header file will cause more recompilations (in the case of
+ wxWidgets, everything needs to be recompiled since everything includes @c "wx.h" !)
+
+ A related problem is that for compilers that don't have precompiled
+ headers, including a lot of header files slows down compilation
+ considerably. For this reason, you will find (in the common
+ X and Windows parts of the library) conditional
+ compilation that under Unix, includes a minimal set of headers;
+ and when using Visual C++, includes @c wx.h. This should help provide
+ the optimal compilation for each compiler, although it is
+ biased towards the precompiled headers facility available
+ in Microsoft C++.
+
+
+
+ @section page_multiplatform_filehandling File handling
+
+ When building an application which may be used under different
+ environments, one difficulty is coping with documents which may be
+ moved to different directories on other machines. Saving a file which
+ has pointers to full pathnames is going to be inherently unportable.
+
+ One approach is to store filenames on their own, with no directory
+ information. The application then searches into a list of standard
+ paths (platform-specific) through the use of wxStandardPaths.
+
+ Eventually you may want to use also the wxPathList class.
+
+ Nowadays the limitations of DOS 8+3 filenames doesn't apply anymore.
+ Most modern operating systems allow at least 255 characters in the filename;
+ the exact maximum length, as well as the characters allowed in the filenames,
+ are OS-specific so you should try to avoid extremely long (> 255 chars) filenames
+ and/or filenames with non-ANSI characters.
+
+ Another thing you need to keep in mind is that all Windows operating systems
+ are case-insensitive, while Unix operating systems (Linux, Mac, etc) are
+ case-sensitive.
+
+ Also, for text files, different OSes use different End Of Lines (EOL).
+ Windows uses CR+LF convention, Linux uses LF only, Mac CR only.
+
+ The wxTextFile, wxTextInputStream, wxTextOutputStream classes help to abstract
+ from these differences.
+ Of course, there are also 3rd party utilities such as @c dos2unix and @c unix2dos
+ which do the EOL conversions.
+
+ See also the @ref filefunctions section of the reference
+ manual for the description of miscellaneous file handling functions.
+
+*/
diff --git a/docs/doxygen/mainpages/introduction.h b/docs/doxygen/mainpages/introduction.h
new file mode 100644
index 0000000000..0e997ca080
--- /dev/null
+++ b/docs/doxygen/mainpages/introduction.h
@@ -0,0 +1,234 @@
+/////////////////////////////////////////////////////////////////////////////
+// Name: introduction.h
+// Purpose: Introduction page of the Doxygen manual
+// Author: wxWidgets team
+// RCS-ID: $Id$
+// Licence: wxWindows license
+/////////////////////////////////////////////////////////////////////////////
+
+
+/*!
+
+ @page page_introduction Introduction
+
+ @li @ref page_introduction_whatis
+ @li @ref page_introduction_why
+ @li @ref page_introduction_requirements
+ @li @ref page_introduction_where
+ @li @ref page_introduction_acknowledgements
+
+
+
+
+
+ @section page_introduction_whatis What is wxWidgets?
+
+ wxWidgets is a C++ framework providing GUI (Graphical User
+ Interface) and other facilities on more than one platform. Version 2 and higher
+ currently support all desktop versions of MS Windows, Unix with GTK+ 1.x or 2.x,
+ Unix with Motif, Unix with just X11, Unix with DirectFB, Mac OS X, OS/2.
+
+ wxWidgets was originally developed at the Artificial Intelligence
+ Applications Institute, University of Edinburgh, for internal use,
+ and was first made publicly available in 1992.
+ Version 2 is a vastly improved version written and maintained by
+ Julian Smart, Robert Roebling, Vadim Zeitlin, Vaclav Slavik and many others.
+
+ This manual contains a class reference and topic overviews.
+ For a selection of wxWidgets tutorials, please see the documentation page
+ on the wxWidgets web site: http://www.wxwidgets.org.
+
+ Please note that in the following, ``MS Windows" often refers to all
+ platforms related to Microsoft Windows, including 32-bit and 64-bit
+ variants, unless otherwise stated. All trademarks are acknowledged.
+
+
+
+ @section page_introduction_why Why another cross-platform development tool?
+
+ wxWidgets was developed to provide a cheap and flexible way to maximize
+ investment in GUI application development. While a number of commercial
+ class libraries already existed for cross-platform development,
+ none met all of the following criteria:
+
+ @li low price;
+ @li source availability;
+ @li simplicity of programming;
+ @li support for a wide range of compilers.
+
+ Since wxWidgets was started, several other free or almost-free
+ GUI frameworks have emerged. However, none has the range of
+ features, flexibility, documentation and the well-established
+ development team that wxWidgets has.
+
+ As open source software, wxWidgets has benefited from comments,
+ ideas, bug fixes, enhancements and the sheer enthusiasm of
+ users. This gives wxWidgets a certain advantage over its
+ commercial competitors (and over free libraries without an
+ independent development team), plus a robustness against the
+ transience of one individual or company. This openness and
+ availability of source code is especially important when the
+ future of thousands of lines of application code may depend upon
+ the longevity of the underlying class library.
+
+ Version 2 goes much further than previous versions in terms of
+ generality and features, allowing applications to be produced
+ that are often indistinguishable from those produced using
+ single-platform toolkits such as Motif, GTK+ and MFC.
+
+ The importance of using a platform-independent class library
+ cannot be overstated, since GUI application development is very
+ time-consuming, and sustained popularity of particular GUIs
+ cannot be guaranteed. Code can very quickly become obsolete if
+ it addresses the wrong platform or audience. wxWidgets helps to
+ insulate the programmer from these winds of change. Although
+ wxWidgets may not be suitable for every application (such as an
+ OLE-intensive program), it provides access to most of the
+ functionality a GUI program normally requires, plus many extras
+ such as network programming, PostScript output, and HTML
+ rendering; and it can of course be extended as needs dictate.
+ As a bonus, it provides a far cleaner and easier programming
+ interface than the native APIs. Programmers may find it
+ worthwhile to use wxWidgets even if they are developing on only
+ one platform.
+
+ It is impossible to sum up the functionality of wxWidgets in a few paragraphs, but
+ here are some of the benefits:
+
+ @li Low cost (free, in fact!)
+ @li You get the source.
+ @li Available on a variety of popular platforms.
+ @li Works with almost all popular C++ compilers and Python.
+ @li Over 70 example programs.
+ @li Over 1000 pages of printable and on-line documentation.
+ @li Simple-to-use, object-oriented API.
+ @li Flexible event system.
+ @li Graphics calls include lines, rounded rectangles, splines, polylines, etc.
+ @li Constraint-based and sizer-based layouts.
+ @li Print/preview and document/view architectures.
+ @li Toolbar, notebook, tree control, advanced list control classes.
+ @li PostScript generation under Unix, normal MS Windows printing on the PC.
+ @li MDI (Multiple Document Interface) support.
+ @li Can be used to create DLLs under Windows, dynamic libraries on Unix.
+ @li Common dialogs for file browsing, printing, colour selection, etc.
+ @li Under MS Windows, support for creating metafiles and copying them to the clipboard.
+ @li An API for invoking help from applications.
+ @li Ready-to-use HTML window (supporting a subset of HTML).
+ @li Network support via a family of socket and protocol classes.
+ @li Support for platform independent image processing.
+ @li Built-in support for many file formats (BMP, PNG, JPEG, GIF, XPM, PNM, PCX).
+ @li Includes Tex2RTF, to allow you to produce your own documentation
+ in Windows Help, HTML and Word RTF formats.
+
+
+
+ @section page_introduction_requirements wxWidgets requirements
+
+ To make use of wxWidgets, you currently need one of the following setups.
+
+ (a) MS-Windows:
+
+ @li A 32-bit or 64-bit PC running MS Windows.
+ @li A Windows compiler: MS Visual C++ (embedded Visual C++ for wxWinCE
+ port), Borland C++, Watcom C++, Cygwin, MinGW, Metrowerks CodeWarrior,
+ Digital Mars C++. See @c install.txt for details about compiler
+ version supported.
+
+ (b) Unix:
+
+ @li Almost any C++ compiler, including GNU C++ and many Unix vendors
+ compilers such as Sun CC, HP-UX aCC or SGI mipsPro.
+ @li Almost any Unix workstation, and one of: GTK+ 2.4 or higher (GTK+ 1.2.10
+ may still be supported but wxGTK1 port is not maintained any longer and lacks
+ many features of wxGTK2), Motif 1.2 or higher or Lesstif. If using the wxX11
+ port, no such widget set is required.
+
+ (c) Mac OS/Mac OS X:
+
+ @li A PowerPC or Intel Mac running Mac OS X 10.3 or higher
+ @li The Apple Developer Tools (eg. GNU C++) or MetroWerks CodeWarrior (not
+ actively supported)
+
+ Under all platforms it's recommended to have large amounts of free hard disk
+ space. The exact amount needed depends on the port, compiler and build
+ configurations but to give an example, a debug build of the library may take up
+ to 500MB.
+
+
+
+ @section page_introduction_where Availability and location of wxWidgets
+
+ wxWidgets is available by anonymous FTP and World Wide Web
+ from ftp://biolpc22.york.ac.uk/pub and/or http://www.wxwidgets.org.
+
+ You can also buy a CD-ROM using the form on the Web site.
+
+
+
+ @section page_introduction_acknowledgements Acknowledgements
+
+ The following is the list of the core, active developers of wxWidgets which keep
+ it running and have provided an invaluable, extensive and high-quality amount of
+ changes over the many of years of wxWidgets' life:
+
+ @li Julian Smart
+ @li Vadim Zeitlin
+ @li Robert Roebling
+ @li Robin Dunn
+ @li Stefan Csomor
+ @li Vaclav Slavik
+ @li Paul Cornett
+ @li Wlodzimierz `ABX' Skiba
+ @li Chris Elliott
+ @li David Elliott
+ @li Kevin Hock
+ @li Stefan Neis
+ @li Michael Wetherell
+
+ We would particularly like to thank the following peoples for their contributions
+ to wxWidgets, and the many others who have been involved in the project over the years.
+ Apologies for any unintentional omissions from this alphabetic list:
+
+ Yiorgos Adamopoulos, Jamshid Afshar, Alejandro Aguilar-Sierra, AIAI,
+ Patrick Albert, Karsten Ballueder, Mattia Barbon, Michael Bedward,
+ Kai Bendorf, Yura Bidus, Keith Gary Boyce, Chris Breeze, Pete Britton,
+ Ian Brown, C. Buckley, Marco Cavallini, Dmitri Chubraev, Robin Corbet, Cecil Coupe,
+ Andrew Davison, Gilles Depeyrot, Neil Dudman, Hermann Dunkel, Jos van Eijndhoven,
+ Tom Felici, Thomas Fettig, Matthew Flatt, Pasquale Foggia, Josep Fortiana, Todd Fries,
+ Dominic Gallagher, Guillermo Rodriguez Garcia, Wolfram Gloger, Norbert Grotz,
+ Stefan Gunter, Bill Hale, Patrick Halke, Stefan Hammes, Guillaume Helle,
+ Harco de Hilster, Cord Hockemeyer, Markus Holzem, Olaf Klein, Leif Jensen,
+ Bart Jourquin, Guilhem Lavaux, Ron Lee, Jan Lessner, Nicholas Liebmann,
+ Torsten Liermann, Per Lindqvist, Francesco Montorsi, Thomas Runge, Tatu Männistö,
+ Scott Maxwell, Thomas Myers, Oliver Niedung, Ryan Norton, Hernan Otero,
+ Ian Perrigo, Timothy Peters, Giordano Pezzoli, Harri Pasanen, Thomaso Paoletti,
+ Garrett Potts, Marcel Rasche, Dino Scaringella, Jobst Schmalenbach, Arthur Seaton,
+ Paul Shirley, Stein Somers, Petr Smilauer, Neil Smith, Kari Systä, George Tasker,
+ Arthur Tetzlaff-Deas, Jonathan Tonberg, Jyrki Tuomi, Janos Vegh, Andrea Venturoli,
+ David Webster, Otto Wyss, Xiaokun Zhu, Edward Zimmermann.
+
+ Many thanks also to AIAI for being willing to release the original version of
+ wxWidgets into the public domain, and to our patient partners.
+
+ `Graphplace', the basis for the wxGraphLayout library, is copyright Dr. Jos
+ T.J. van Eijndhoven of Eindhoven University of Technology. The code has
+ been used in wxGraphLayout (not in wxWidgets anymore) with his permission.
+
+ We also acknowledge the author of XFIG, the excellent Unix drawing tool,
+ from the source of which we have borrowed some spline drawing code.
+ His copyright is included below.
+
+
+ XFig2.1 is copyright (c) 1985 by Supoj Sutanthavibul. Permission to
+ use, copy, modify, distribute, and sell this software and its
+ documentation for any purpose is hereby granted without fee, provided
+ that the above copyright notice appear in all copies and that both that
+ copyright notice and this permission notice appear in supporting
+ documentation, and that the name of M.I.T. not be used in advertising or
+ publicity pertaining to distribution of the software without specific,
+ written prior permission. M.I.T. makes no representations about the
+ suitability of this software for any purpose. It is provided ``as is''
+ without express or implied warranty.
+
+
+*/
diff --git a/docs/doxygen/mainpages/libs.h b/docs/doxygen/mainpages/libs.h
new file mode 100644
index 0000000000..396c7c234a
--- /dev/null
+++ b/docs/doxygen/mainpages/libs.h
@@ -0,0 +1,156 @@
+/////////////////////////////////////////////////////////////////////////////
+// Name: libs.h
+// Purpose: Libraries page of the Doxygen manual
+// Author: wxWidgets team
+// RCS-ID: $Id$
+// Licence: wxWindows license
+/////////////////////////////////////////////////////////////////////////////
+
+
+/*!
+
+ @page page_libraries Libraries list
+
+ wxWidgets can be built either as a single large
+ library (this is called the monolithic build) or as several smaller
+ libraries (multilib build}). Multilib build is the default.
+
+ wxWidgets library is divided into libraries briefly described below. This
+ diagram show dependencies between them:
+
+ @image html libs.gif
+
+ Please note that arrows indicate the "depends from" relation and that
+ all blue boxes depend from @ref wxbase library (i.e. they are non-GUI libraries),
+ and all green boxes depend from @ref wxcore library (i.e. they are GUI libraries).
+
+
+
+
+
+ @section page_libraries_wxbase wxBase
+
+ Every wxWidgets application must link against this library. It contains
+ mandatory classes that any wxWidgets code depends on (e.g. wxString) and
+ portability classes that abstract differences between platforms.
+ @ref wxbase can be used to develop console mode applications, it does not require
+ any GUI libraries or running X Window System on Unix.
+
+
+ @section page_libraries_wxcore wxCore
+
+ Basic GUI classes such as GDI classes or controls are in this library. All
+ wxWidgets GUI applications must link against this library, only console mode
+ applications don't.
+
+ Requires @ref wxbase.
+
+
+ @section wxaui wxAui
+
+ This contains the Advanced User Interface docking library.
+
+ Requires @ref wxadv, @ref wxhtml, @ref wxxml, @ref wxcore, @ref wxbase.
+
+
+ @section wxnet wxNet
+
+ Classes for network access:
+
+ @li wxSocket classes (wxSocketClient, wxSocketServer and related classes)
+ @li wxSocketOutputStream and wxSocketInputStream
+ @li sockets-based IPC classes (wxTCPServer, wxTCPClient and wxTCPConnection)
+ @li wxURL
+ @li wxInternetFSHandler (a wxFileSystem handler)
+
+ Requires @ref wxbase.
+
+
+ @section wxrichtext wxRichText
+
+ This contains generic rich text control functionality.
+
+ Requires @ref wxadv, @ref wxhtml, @ref wxxml, @ref wxcore, @ref wxbase.
+
+
+ @section wxxml wxXML
+
+ This library contains simple classes for parsing XML documents.
+
+ Requires @ref wxbase.
+
+
+ @section wxadv wxAdvanced
+
+ Advanced or rarely used GUI classes:
+
+ @li wxCalendarCtrl
+ @li wxGrid classes
+ @li wxJoystick
+ @li wxLayoutAlgorithm
+ @li wxSplashScreen
+ @li wxTaskBarIcon
+ @li wxSound
+ @li wxWizard
+ @li wxSashLayoutWindow
+ @li wxSashWindow
+ @li ...others
+
+ Requires @ref wxcore and @ref wxbase.
+
+
+ @section wxmedia wxMedia
+
+ Miscellaneous classes related to multimedia. Currently this library only
+ contains wxMediaCtrl but more classes will be added in
+ the future.
+
+ Requires @ref wxcore and @ref wxbase.
+
+
+ @section wxgl wxGL
+
+ This library contains wxGLCanvas class for integrating
+ OpenGL library with wxWidgets. Unlike all others, this library is {\em not}
+ part of the monolithic library, it is always built as separate library.
+
+ Requires @ref wxcore and @ref wxbase.
+
+
+ @section wxhtml wxHTML
+
+ Simple HTML renderer and other @ref html_overview are contained in this library,
+ as well as wxHtmlHelpController, wxBestHelpController and wxHtmlListBox.
+
+ Requires @ref wxcore and @ref wxbase.
+
+
+ @section wxqa wxQA
+
+ This is the library containing extra classes for quality assurance. Currently
+ it only contains wxDebugReport and related classes,
+ but more will be added to it in the future.
+
+ Requires @ref wxxml, @ref wxcore, @ref wxbase.
+
+
+ @section wxxrc wxXRC
+
+ This library contains wxXmlResource class that
+ provides access to XML resource files in XRC format.
+
+ Requires @ref wxadv, @ref wxhtml, @ref wxxml, @ref wxcore, @ref wxbase.
+
+
+ @section wxstc wxSTC
+
+ STC (Styled Text Control) is a wrapper around Scintilla, a syntax-highlighting text editor.
+ See http://www.scintilla.org for more info about Scintilla.
+
+ Requires @ref wxcore, @ref wxbase.
+
+*/
diff --git a/docs/doxygen/mainpages/manual.h b/docs/doxygen/mainpages/manual.h
new file mode 100644
index 0000000000..63a4f1e4c5
--- /dev/null
+++ b/docs/doxygen/mainpages/manual.h
@@ -0,0 +1,33 @@
+/////////////////////////////////////////////////////////////////////////////
+// Name: main.h
+// Purpose: Main page of the Doxygen manual
+// Author: wxWidgets team
+// RCS-ID: $Id$
+// Licence: wxWindows license
+/////////////////////////////////////////////////////////////////////////////
+
+
+/*!
+
+ @mainpage wxWidgets 2.9.0: A portable C++ and Python GUI toolkit
+ @author Julian Smart, Robert Roebling, Vadim Zeitlin, Robin Dunn, et al
+ @date February, 2008
+
+ @image html wx.png
+
+ @section Contents
+ @li @subpage page_copyright
+ @li @subpage page_introduction
+ @li @subpage page_multiplatform
+ @li @subpage page_utils
+ @li @subpage page_strategies
+ @li @subpage page_libraries
+ @li @subpage page_constants
+ @li @subpage page_categories
+ @li @subpage page_topics
+ @li @subpage page_platdetails
+
+
+
+*/
diff --git a/docs/doxygen/mainpages/platdetails.h b/docs/doxygen/mainpages/platdetails.h
new file mode 100644
index 0000000000..0f2bb7eb8f
--- /dev/null
+++ b/docs/doxygen/mainpages/platdetails.h
@@ -0,0 +1,593 @@
+/////////////////////////////////////////////////////////////////////////////
+// Name: platdetails.h
+// Purpose: Platform details page of the Doxygen manual
+// Author: wxWidgets team
+// RCS-ID: $Id$
+// Licence: wxWindows license
+/////////////////////////////////////////////////////////////////////////////
+
+
+/*!
+
+ @page page_platdetails Platform details
+
+ wxWidgets defines a common API across platforms, but uses the native graphical
+ user interface (GUI) on each platform, so your program will take on the native
+ look and feel that users are familiar with. Unfortunately native toolkits and
+ hardware do not always support the functionality that the wxWidgets API
+ requires. This chapter collects notes about differences among supported platforms
+ and ports.
+
+ @li @ref page_platdetails_wxgtkport
+ @li @ref page_platdetails_wxmacport
+ @li @ref page_platdetails_wxos2port
+ @li @ref page_platdetails_wxmglport
+ @li @ref page_platdetails_wxx11port
+ @li @ref page_platdetails_wxmswport
+ @li @ref page_platdetails_nativedocs
+
+
+
+
+
+
+ @section page_platdetails_wxgtkport wxGTK port
+
+ wxGTK is a port of wxWidgets using the GTK+ library.
+ It makes use of GTK+'s native widgets wherever possible and uses
+ wxWidgets' generic controls when needed. GTK+ itself has been
+ ported to a number of systems, but so far only the original X11
+ version is supported. Support for other GTK+ backends is planned,
+ such as the new DirectFB backend.
+
+ All work is being done on GTK+ version 2.0 and above. Support for
+ GTK+ 1.2 will be deprecated in a later release.
+
+ You will need GTK+ 2.0 or higher which is available from:
+
+ http://www.gtk.org
+
+ The newer version of GTK+ you use, the more native widgets and
+ features will be utilized. We have gone to a great extent to
+ allow compiling wxWidgets applications with a latest version of
+ GTK+, with the resulting binary working on systems even with a
+ much lower version of GTK+. You will have to ensure that the
+ application is launched with lazy symbol binding for that.
+
+ In order to configure wxWidgets to compile wxGTK you will
+ need use the @c --with-gtk argument to the @c configure script.
+ This is the default for many systems.
+
+ GTK+ 1.2 can still be used, albeit discouraged. For that you can
+ pass @c --with-gtk=1 to the @c configure script.
+
+ For further information, please see the files in docs/gtk
+ in the distribution.
+
+
+
+
+ @section page_platdetails_wxmacport wxMac port
+
+ wxMac is a port of wxWidgets for the Macintosh OS platform.
+ Currently MacOS 8.6 or higher, MacOS 9.0 or higher and
+ MacOS X 10.0 or higher are supported, although most development
+ effort goes into MacOS X support. wxMac can be compiled both
+ using Apple's developer tools and MetroWerks CodeWarrior in
+ different versions. Support for MacOS 8.X and MacOS 9.X is
+ only available through CodeWarrior. wxMac uses the Carbon
+ API (and optionally the Classic API under MacOS 8.X). You
+ will need wxWidgets version 2.3.3 or higher for a stable
+ version of wxMac.
+
+ For further information, please see the files in docs/mac
+ in the distribution.
+
+
+
+
+ @section page_platdetails_wxmglport wxMGL port
+
+ wxMGL is a port of wxWidgets using the MGL library available
+ from SciTech as the underlying graphics backend. wxMGL draws
+ its widgets using the wxUniversal widget set which is now
+ part of wxWidgets. MGL itself runs on a variety of platforms
+ including DOS, Linux hardware (similar to the Linux framebuffer)
+ and various graphics systems such as Win32, X11 and OS/2.
+ Note that currently MGL for Linux runs only on x86-based systems.
+
+ You will need wxWidgets 2.3.3 or higher and MGL 5.0 or higher.
+ The latter is available from
+
+ http://www.scitechsoft.com/products/product_download.html
+
+ In order to configure wxWidgets to compile wxMGL you will
+ need to type:
+
+ @verbatim configure --with-mgl --with-universal @endverbatim
+
+ Under DOS, wxMGL uses a dmake based make system.
+
+ For further information, please see the files in docs/mgl
+ in the distribution.
+
+
+
+ @section page_platdetails_wxos2port wxOS2 port
+
+ wxOS2 is a port of wxWidgets for the IBM OS/2 platform.
+ It is currently under construction.
+
+
+
+ @section page_platdetails_wxx11port wxX11 port
+
+ wxX11 is a port of wxWidgets using X11 (The X Window System)
+ as the underlying graphics backend. wxX11 draws its widgets
+ using the wxUniversal widget set which is now part of wxWidgets.
+ wxX11 is well-suited for a number of special applications such
+ as those running on systems with few resources (PDAs) or for
+ applications which need to use a special themed look. You will need
+ wxWidgets 2.3.2 or higher.
+
+ In order to configure wxWidgets to compile wxX11 you will
+ need to type:
+
+ @verbatim configure --with-x11 --with-universal @endverbatim
+
+ For further information, please see the files in docs/x11
+ in the distribution. There is also a page on the use of
+ wxWidgets for embedded applications on the wxWidgets web site.
+
+
+
+
+
+ @section page_platdetails_wxmswport wxMSW port
+
+ wxMSW is a port of wxWidgets for the Windows platforms
+ including Windows 95, 98, ME, 2000, NT, XP in ANSI and
+ Unicode mode (for Windows 95 through the MSLU extension
+ library). wxMSW ensures native look and feel for XP
+ as well when using wxWidgets version 2.3.3 or higher.
+ wxMSW can be compile with a great variety of compilers
+ including MS VC++, Borland 5.5, MinGW32, Cygwin and
+ Watcom as well as cross-compilation with a Linux hosted
+ MinGW32 tool chain.
+
+ For further information, please see the files in docs/msw
+ in the distribution.
+
+ @subsection page_platdetails_wxmswport_themedborders Themed borders on Windows
+
+ Starting with wxWidgets 2.8.5, you can specify the wxBORDER_THEME style to have wxWidgets
+ use a themed border. Using the default XP theme, this is a thin 1-pixel blue border,
+ with an extra 1-pixel border in the window client background colour (usually white) to
+ separate the client area's scrollbars from the border.
+
+ If you don't specify a border style for a wxTextCtrl in rich edit mode, wxWidgets now gives
+ the control themed borders automatically, where previously they would take the Windows 95-style
+ sunken border. Other native controls such as wxTextCtrl in non-rich edit mode, and wxComboBox,
+ already paint themed borders where appropriate. To use themed borders on other windows, such
+ as wxPanel, pass the wxBORDER_THEME style, or (apart from wxPanel) pass no border style.
+
+ In general, specifying wxBORDER_THEME will cause a border of some kind to be used, chosen by the platform
+ and control class. To leave the border decision entirely to wxWidgets, pass wxBORDER_DEFAULT.
+ This is not to be confused with specifying wxBORDER_NONE, which says that there should
+ definitely be @e no border.
+
+ @subsubsection page_platdetails_wxmswport_themedborders_details More detail on border implementation
+
+ The way that wxMSW decides whether to apply a themed border is as follows.
+ The theming code calls wxWindow::GetBorder() to obtain a border. If no border style has been
+ passed to the window constructor, GetBorder() calls GetDefaultBorder() for this window.
+ If wxBORDER_THEME was passed to the window constructor, GetBorder() calls GetDefaultBorderForControl().
+
+ The implementation of wxWindow::GetDefaultBorder() on wxMSW calls wxWindow::CanApplyThemeBorder()
+ which is a virtual function that tells wxWidgets whether a control can have a theme
+ applied explicitly (some native controls already paint a theme in which case we should not
+ apply it ourselves). Note that wxPanel is an exception to this rule because in many cases
+ we wish to create a window with no border (for example, notebook pages). So wxPanel
+ overrides GetDefaultBorder() in order to call the generic wxWindowBase::GetDefaultBorder(),
+ returning wxBORDER_NONE.
+
+ @subsection page_platdetails_wxmswport_wince wxWinCE
+
+ wxWinCE is the name given to wxMSW when compiled on Windows CE devices;
+ most of wxMSW is common to Win32 and Windows CE but there are
+ some simplifications, enhancements, and differences in
+ behaviour.
+
+ For building instructions, see docs/msw/wince in the
+ distribution, also the section about Visual Studio 2005 project
+ files below. The rest of this section documents issues you
+ need to be aware of when programming for Windows CE devices.
+
+ @subsubsection page_platdetails_wxmswport_wince_port General issues for wxWinCE programming
+
+ Mobile applications generally have fewer features and
+ simpler user interfaces. Simply omit whole sizers, static
+ lines and controls in your dialogs, and use comboboxes instead
+ of listboxes where appropriate. You also need to reduce
+ the amount of spacing used by sizers, for which you can
+ use a macro such as this:
+
+ @verbatim
+ #if defined(__WXWINCE__)
+ #define wxLARGESMALL(large,small) small
+ #else
+ #define wxLARGESMALL(large,small) large
+ #endif
+
+ // Usage
+ topsizer->Add( CreateTextSizer( message ), 0, wxALL, wxLARGESMALL(10,0) );
+ @endverbatim
+
+ There is only ever one instance of a Windows CE application running,
+ and wxWidgets will take care of showing the current instance and
+ shutting down the second instance if necessary.
+
+ You can test the return value of wxSystemSettings::GetScreenType()
+ for a qualitative assessment of what kind of display is available,
+ or use wxGetDisplaySize() if you need more information.
+
+ You can also use wxGetOsVersion to test for a version of Windows CE at
+ run-time (see the next section). However, because different builds
+ are currently required to target different kinds of device, these
+ values are hard-wired according to the build, and you cannot
+ dynamically adapt the same executable for different major Windows CE
+ platforms. This would require a different approach to the way
+ wxWidgets adapts its behaviour (such as for menubars) to suit the
+ style of device.
+
+ See the "Life!" example (demos/life) for an example of
+ an application that has been tailored for PocketPC and Smartphone use.
+
+ @note don't forget to have this line in your .rc file, as for
+ desktop Windows applications:
+
+ @verbatim #include "wx/msw/wx.rc" @endverbatim
+
+ @subsubsection page_platdetails_wxmswport_wince_sdk Testing for WinCE SDKs
+
+ Use these preprocessor symbols to test for the different types of device or SDK:
+
+ @li @b __SMARTPHONE__ Generic mobile devices with phone buttons and a small display
+ @li @b __PDA__ Generic mobile devices with no phone
+ @li @b __HANDHELDPC__ Generic mobile device with a keyboard
+ @li @b __WXWINCE__ Microsoft-powered Windows CE devices, whether PocketPC, Smartphone or Standard SDK
+ @li @b WIN32_PLATFORM_WFSP Microsoft-powered smartphone
+ @li @b __POCKETPC__ Microsoft-powered PocketPC devices with touch-screen
+ @li @b __WINCE_STANDARDSDK__ Microsoft-powered Windows CE devices, for generic Windows CE applications
+ @li @b __WINCE_NET__ Microsoft-powered Windows CE .NET devices (_WIN32_WCE is 400 or greater)
+
+ wxGetOsVersion will return these values:
+
+ @li @b wxWINDOWS_POCKETPC The application is running under PocketPC.
+ @li @b wxWINDOWS_SMARTPHONE The application is running under Smartphone.
+ @li @b wxWINDOWS_CE The application is running under Windows CE (built with the Standard SDK).
+
+
+ @subsubsection page_platdetails_wxmswport_wince_sizing Window sizing in wxWinCE
+
+ Top level windows (dialogs, frames) are created always full-screen. Fit() of sizers will not rescale top
+ level windows but instead will scale window content.
+
+ If the screen orientation changes, the windows will automatically be resized
+ so no further action needs to be taken (unless you want to change the layout
+ according to the orientation, which you could detect in idle time, for example).
+ When input panel (SIP) is shown, top level windows (frames and dialogs) resize
+ accordingly (see wxTopLevelWindow::HandleSettingChange).
+
+ @subsubsection page_platdetails_wxmswport_wince_toplevel Closing top-level windows in wxWinCE
+
+ You won't get a wxCloseEvent when the user clicks on the X in the titlebar
+ on Smartphone and PocketPC; the window is simply hidden instead. However the system may send the
+ event to force the application to close down.
+
+ @subsubsection page_platdetails_wxmswport_wince_hibernation Hibernation in wxWinCE
+
+ Smartphone and PocketPC will send a wxEVT_HIBERNATE to the application object in low
+ memory conditions. Your application should release memory and close dialogs,
+ and wake up again when the next wxEVT_ACTIVATE or wxEVT_ACTIVATE_APP message is received.
+ (wxEVT_ACTIVATE_APP is generated whenever a wxEVT_ACTIVATE event is received
+ in Smartphone and PocketPC, since these platforms do not support WM_ACTIVATEAPP.)
+
+ @subsubsection page_platdetails_wxmswport_wince_hwbutt Hardware buttons in wxWinCE
+
+ Special hardware buttons are sent to a window via the wxEVT_HOTKEY event
+ under Smartphone and PocketPC. You should first register each required button with
+ wxWindow::RegisterHotKey, and unregister the button when you're done with it. For example:
+
+ @verbatim
+ win->RegisterHotKey(0, wxMOD_WIN, WXK_SPECIAL1);
+ win->UnregisterHotKey(0);
+ @endverbatim
+
+ You may have to register the buttons in a wxEVT_ACTIVATE event handler
+ since other applications will grab the buttons.
+
+ There is currently no method of finding out the names of the special
+ buttons or how many there are.
+
+ @subsubsection page_platdetails_wxmswport_wince_dialogs Dialogs in wxWinCE
+
+ PocketPC dialogs have an OK button on the caption, and so you should generally
+ not repeat an OK button on the dialog. You can add a Cancel button if necessary, but some dialogs
+ simply don't offer you the choice (the guidelines recommend you offer an Undo facility
+ to make up for it). When the user clicks on the OK button, your dialog will receive
+ a wxID_OK event by default. If you wish to change this, call wxDialog::SetAffirmativeId
+ with the required identifier to be used. Or, override wxDialog::DoOK (return @false to
+ have wxWidgets simply call Close to dismiss the dialog).
+
+ Smartphone dialogs do @e not have an OK button on the caption, and are closed
+ using one of the two menu buttons. You need to assign these using wxTopLevelWindow::SetLeftMenu
+ and wxTopLevelWindow::SetRightMenu, for example:
+
+ @verbatim
+ #ifdef __SMARTPHONE__
+ SetLeftMenu(wxID_OK);
+ SetRightMenu(wxID_CANCEL, _("Cancel"));
+ #elif defined(__POCKETPC__)
+ // No OK/Cancel buttons on PocketPC, OK on caption will close
+ #else
+ topsizer->Add( CreateButtonSizer( wxOK|wxCANCEL ), 0, wxEXPAND | wxALL, 10 );
+ #endif
+ @endverbatim
+
+ For implementing property sheets (flat tabs), use a wxNotebook with wxNB_FLAT|wxNB_BOTTOM
+ and have the notebook left, top and right sides overlap the dialog by about 3 pixels
+ to eliminate spurious borders. You can do this by using a negative spacing in your
+ sizer Add() call. The cross-platform property sheet dialog wxPropertySheetDialog is
+ provided, to show settings in the correct style on PocketPC and on other platforms.
+
+ Notifications (bubble HTML text with optional buttons and links) will also be
+ implemented in the future for PocketPC.
+
+ Modeless dialogs probably don't make sense for PocketPC and Smartphone, since
+ frames and dialogs are normally full-screen, and a modeless dialog is normally
+ intended to co-exist with the main application frame.
+
+ @subsubsection page_platdetails_wxmswport_wince_ppc Menubars and toolbars in PocketPC
+
+ On PocketPC, a frame must always have a menubar, even if it's empty.
+ An empty menubar/toolbar is automatically provided for dialogs, to hide
+ any existing menubar for the duration of the dialog.
+
+ Menubars and toolbars are implemented using a combined control,
+ but you can use essentially the usual wxWidgets API; wxWidgets will combine the menubar
+ and toolbar. However, there are some restrictions:
+
+ @li You must create the frame's primary toolbar with wxFrame::CreateToolBar,
+ because this uses the special wxToolMenuBar class (derived from wxToolBar)
+ to implement the combined toolbar and menubar. Otherwise, you can create and manage toolbars
+ using the wxToolBar class as usual, for example to implement an optional
+ formatting toolbar above the menubar as Pocket Word does. But don't assign
+ a wxToolBar to a frame using SetToolBar - you should always use CreateToolBar
+ for the main frame toolbar.
+ @li Deleting and adding tools to wxToolMenuBar after Realize is called is not supported.
+ @li For speed, colours are not remapped to the system colours as they are
+ in wxMSW. Provide the tool bitmaps either with the correct system button background,
+ or with transparency (for example, using XPMs).
+ @li Adding controls to wxToolMenuBar is not supported. However, wxToolBar supports
+ controls.
+
+ Unlike in all other ports, a wxDialog has a wxToolBar, automatically created
+ for you. You may either leave it blank, or access it with wxDialog::GetToolBar
+ and add buttons, then calling wxToolBar::Realize. You cannot set or recreate
+ the toolbar.
+
+ @subsubsection page_platdetails_wxmswport_wince_smart Menubars and toolbars in Smartphone
+
+ On Smartphone, there are only two menu buttons, so a menubar is simulated
+ using a nested menu on the right menu button. Any toolbars are simply ignored on
+ Smartphone.
+
+ @subsubsection page_platdetails_wxmswport_wince_closing Closing windows in wxWinCE
+
+ The guidelines state that applications should not have a Quit menu item,
+ since the user should not have to know whether an application is in memory
+ or not. The close button on a window does not call the window's
+ close handler; it simply hides the window. However, the guidelines say that
+ the Ctrl+Q accelerator can be used to quit the application, so wxWidgets
+ defines this accelerator by default and if your application handles
+ wxID_EXIT, it will do the right thing.
+
+ @subsubsection page_platdetails_wxmswport_wince_ctx Context menus in wxWinCE
+
+ To enable context menus in PocketPC, you currently need to call wxWindow::EnableContextMenu,
+ a wxWinCE-only function. Otherwise the context menu event (wxContextMenuEvent) will
+ never be sent. This API is subject to change.
+
+ Context menus are not supported in Smartphone.
+
+ @subsubsection page_platdetails_wxmswport_wince_ctrl Control differences on wxWinCE
+
+ These controls and styles are specific to wxWinCE:
+
+ @li wxTextCtrl The wxTE_CAPITALIZE style causes a CAPEDIT control to
+ be created, which capitalizes the first letter.
+
+ These controls are missing from wxWinCE:
+
+ @li MDI classes MDI is not supported under Windows CE.
+ @li wxMiniFrame Not supported under Windows CE.
+
+ Tooltips are not currently supported for controls, since on PocketPC controls with
+ tooltips are distinct controls, and it will be hard to add dynamic
+ tooltip support.
+
+ Control borders on PocketPC and Smartphone should normally be specified with
+ wxBORDER_SIMPLE instead of wxBORDER_SUNKEN. Controls will usually adapt
+ appropriately by virtue of their GetDefaultBorder() function, but if you
+ wish to specify a style explicitly you can use wxDEFAULT_CONTROL_BORDER
+ which will give a simple border on PocketPC and Smartphone, and the sunken border on
+ other platforms.
+
+ @subsubsection page_platdetails_wxmswport_wince_help Online help in wxWinCE
+
+ You can use the help controller wxWinceHelpController which controls
+ simple @c .htm files, usually installed in the Windows directory.
+ See the Windows CE reference for how to format the HTML files.
+
+ @subsubsection page_platdetails_wxmswport_wince_install Installing your PocketPC and Smartphone applications
+
+ To install your application, you need to build a CAB file using
+ the parameters defined in a special .inf file. The CabWiz program
+ in your SDK will compile the CAB file from the .inf file and
+ files that it specifies.
+
+ For delivery, you can simply ask the user to copy the CAB file to the
+ device and execute the CAB file using File Explorer. Or, you can
+ write a program for the desktop PC that will find the ActiveSync
+ Application Manager and install the CAB file on the device,
+ which is obviously much easier for the user.
+
+ Here are some links that may help.
+
+ @li A setup builder that takes CABs and builds a setup program is at
+ http://www.eskimo.com/~scottlu/win/index.html.
+ @li Sample installation files can be found in
+ Windows CE Tools/wce420/POCKET PC 2003/Samples/Win32/AppInst.
+ @li An installer generator using wxPython can be found at
+ http://ppcquicksoft.iespana.es/ppcquicksoft/myinstall.html.
+ @li Miscellaneous Windows CE resources can be found at
+ http://www.orbworks.com/pcce/resources.html.
+ @li Installer creation instructions with a setup.exe for installing to PPC can be found at
+ http://www.pocketpcdn.com/articles/creatingsetup.html.
+ @li Microsoft instructions are at
+ http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnce30/html/appinstall30.asp?frame=true
+ @li Troubleshooting WinCE application installations:
+ http://support.microsoft.com/default.aspx?scid=KB;en-us;q181007
+
+ You may also check out demos/life/setup/wince which contains
+ scripts to create a PocketPC installation for ARM-based
+ devices. In particular, @c build.bat builds the distribution and
+ copies it to a directory called @c Deliver.
+
+ @subsubsection page_platdetails_wxmswport_wince_filedlg wxFileDialog in PocketPC
+
+ Allowing the user to access files on memory cards, or on arbitrary
+ parts of the filesystem, is a pain; the standard file dialog only
+ shows folders under My Documents or folders on memory cards
+ (not the system or card root directory, for example). This is
+ a known problem for PocketPC developers.
+
+ If you need a file dialog that allows access to all folders,
+ you can use wxGenericFileDialog instead. You will need to include
+ @c wx/generic/filedlgg.h.
+
+ @subsubsection page_platdetails_wxmswport_wince_evc Embedded Visual C++ Issues
+
+ Run-time type information
+
+ If you wish to use runtime type information (RTTI) with eVC++ 4, you need to download
+ an extra library, @c ccrtrtti.lib, and link with it. At the time of
+ writing you can get it from here:
+
+ @verbatim
+ http://support.microsoft.com/kb/830482/en-us
+ @endverbatim
+
+ Otherwise you will get linker errors similar to this:
+
+ @verbatim
+ wxwince26d.lib(control.obj) : error LNK2001: unresolved external symbol "const type_info::`vftable'" (??_7type_info@@6B@)
+ @endverbatim
+
+ Windows Mobile 5.0 emulator
+
+ Note that there is no separate emulator configuration for Windows Mobile 5.0: the
+ emulator runs the ARM code directly.
+
+ Visual Studio 2005 project files
+
+ Unfortunately, Visual Studio 2005, required to build Windows Mobile 5.0 applications,
+ doesn't do a perfect job of converting the project files from eVC++ format.
+
+ When you have converted the wxWidgets workspace, edit the configuration properties
+ for each configuration and in the Librarian, add a relative path ..\\..\\lib to
+ each library path. For example:
+ ..\\$(PlatformName)\\$(ConfigurationName)\\wx_mono.lib.
+
+ Then, for a sample you want to compile, edit the configuration properties
+ and make sure
+ ..\\..\\lib\\$(PlatformName)\\$(ConfigurationName)
+ is in the Linker/General/Additional Library Directories property.
+ Also change the Linker/Input/Additional Dependencies property to something like
+ coredll.lib wx_mono.lib wx_wxjpeg.lib wx_wxpng.lib wx_wxzlib.lib wx_wxexpat.lib
+ commctrl.lib winsock.lib wininet.lib
+ (since the library names in the wxWidgets workspace were changed by VS 2005).
+
+ Alternately, you could could edit all the names to be identical to the original eVC++
+ names, but this will probably be more fiddly.
+
+ @subsubsection page_platdetails_wxmswport_wince_issues Remaining issues
+
+ These are some of the remaining problems to be sorted out, and features
+ to be supported.
+
+ @li Windows Mobile 5 issues. It is not possible to get the HMENU for
+ the command bar on Mobile 5, so the menubar functions need to be rewritten
+ to get the individual menus without use of a menubar handle. Also the
+ new Mobile 5 convention of using only two menus (and no bitmap buttons) needs to be
+ considered.
+ @li Sizer speed. Particularly for dialogs containing notebooks,
+ layout seems slow. Some analysis is required.
+ @li Notification boxes. The balloon-like notification messages, and their
+ icons, should be implemented. This will be quite straightforward.
+ @li SIP size. We need to be able to get the area taken up by the SIP (input panel),
+ and the remaining area, by calling SHSipInfo. We also may need to be able to show and hide
+ the SIP programmatically, with SHSipPreference. See also the Input Dialogs topic in
+ the Programming Windows CE guide for more on this, and how to have dialogs
+ show the SIP automatically using the WC_SIPREF control.
+ @li wxStaticBitmap. The About box in the "Life!" demo shows a bitmap that is
+ the correct size on the emulator, but too small on a VGA Pocket Loox device.
+ @li wxStaticLine. Lines don't show up, and the documentation suggests that
+ missing styles are implemented with WM_PAINT.
+ @li HTML control. PocketPC has its own HTML control which can be used for showing
+ local pages or navigating the web. We should create a version of wxHtmlWindow that uses this
+ control, or have a separately-named control (wxHtmlCtrl), with a syntax as close as possible
+ to wxHtmlWindow.
+ @li Tooltip control. PocketPC uses special TTBUTTON and TTSTATIC controls for adding
+ tooltips, with the tooltip separated from the label with a double tilde. We need to support
+ this using SetToolTip.(Unfortunately it does not seem possible to dynamically remove the tooltip,
+ so an extra style may be required.)
+ @li Focus. In the wxPropertySheetDialog demo on Smartphone, it's not possible to navigate
+ between controls. The focus handling in wxWidgets needs investigation. See in particular
+ src/common/containr.cpp, and note that the default OnActivate handler in src/msw/toplevel.cpp
+ sets the focus to the first child of the dialog.
+ @li OK button. We should allow the OK button on a dialog to be optional, perhaps
+ by using wxCLOSE_BOX to indicate when the OK button should be displayed.
+ @li Dynamic adaptation. We should probably be using run-time tests more
+ than preprocessor tests, so that the same WinCE application can run on different
+ versions of the operating system.
+ @li Modeless dialogs. When a modeless dialog is hidden with the OK button, it doesn't restore the
+ frame's menubar. See for example the find dialog in the dialogs sample. However, the menubar is restored
+ if pressing Cancel (the window is closed). This reflects the fact that modeless dialogs are
+ not very useful on Windows CE; however, we could perhaps destroy/restore a modeless dialog's menubar
+ on deactivation and activation.
+ @li Home screen plugins. Figure out how to make home screen plugins for use with wxWidgets
+ applications (see http://www.codeproject.com/ce/CTodayWindow.asp for inspiration).
+ Although we can't use wxWidgets to create the plugin (too large), we could perhaps write
+ a generic plugin that takes registry information from a given application, with
+ options to display information in a particular way using icons and text from
+ a specified location.
+ @li Further abstraction. We should be able to abstract away more of the differences
+ between desktop and mobile applications, in particular for sizer layout.
+ @li Dialog captions. The blue, bold captions on dialogs - with optional help button -
+ should be catered for, either by hard-wiring the capability into all dialogs and panels,
+ or by providing a standard component and sizer.
+
+
+ @section page_platdetails_nativedocs Documentation for the native toolkits
+
+ It's sometimes useful to interface directly with the underlying toolkit
+ used by wxWidgets to e.g. use toolkit-specific features.
+ In such case (or when you want to e.g. write a port-specific patch) it can be
+ necessary to use the underlying toolkit API directly:
+
+ @li wxMSW port uses win32 API: see MSDN docs at http://msdn2.microsoft.com/en-us/library/ms649779.aspx
+ @li wxGTK port uses GTK+: see GTK+ 2.x docs at http://developer.gnome.org/doc/API/2.0/gtk/index.html
+
+*/
diff --git a/docs/doxygen/mainpages/strategies.h b/docs/doxygen/mainpages/strategies.h
new file mode 100644
index 0000000000..4ab1119dc0
--- /dev/null
+++ b/docs/doxygen/mainpages/strategies.h
@@ -0,0 +1,125 @@
+/////////////////////////////////////////////////////////////////////////////
+// Name: strategies.h
+// Purpose: Strategies page of the Doxygen manual
+// Author: wxWidgets team
+// RCS-ID: $Id$
+// Licence: wxWindows license
+/////////////////////////////////////////////////////////////////////////////
+
+
+/*!
+
+ @page page_strategies Programming strategies
+
+ This chapter is intended to list strategies that may be useful when
+ writing and debugging wxWidgets programs. If you have any good tips,
+ please submit them for inclusion here.
+
+ @li @ref page_strategies_reducingerr
+ @li @ref page_strategies_portability
+ @li @ref page_strategies_debug
+
+
+
+
+
+ @section page_strategies_reducingerr Strategies for reducing programming errors
+
+ @subsection page_strategies_reducingerr_useassert Use ASSERT
+
+ It is good practice to use ASSERT statements liberally, that check for conditions
+ that should or should not hold, and print out appropriate error messages.
+
+ These can be compiled out of a non-debugging version of wxWidgets
+ and your application. Using ASSERT is an example of `defensive programming':
+ it can alert you to problems later on.
+
+ See wxASSERT for more info.
+
+ @subsection page_strategies_reducingerr_usewxstring Use wxString in preference to character arrays
+
+ Using wxString can be much safer and more convenient than using wxChar *.
+
+ You can reduce the possibility of memory leaks substantially, and it is much more
+ convenient to use the overloaded operators than functions such as @c strcmp.
+ wxString won't add a significant overhead to your program; the overhead is compensated
+ for by easier manipulation (which means less code).
+
+ The same goes for other data types: use classes wherever possible.
+
+
+
+ @section page_strategies_portability Strategies for portability
+
+ @subsection page_strategies_portability_usesizers Use sizers
+
+ Don't use absolute panel item positioning if you can avoid it. Different GUIs have
+ very differently sized panel items. Consider using the @ref sizer_overview instead.
+
+ @subsection page_strategies_portability_useresources Use wxWidgets resource files
+
+ Use .xrc (wxWidgets resource files) where possible, because they can be easily changed
+ independently of source code. See the @ref xrc_overview for more info.
+
+
+
+ @section page_strategies_debug Strategies for debugging
+
+ @subsection page_strategies_debug_positivethinking Positive thinking
+
+ It is common to blow up the problem in one's imagination, so that it seems to threaten
+ weeks, months or even years of work. The problem you face may seem insurmountable:
+ but almost never is. Once you have been programming for some time, you will be able
+ to remember similar incidents that threw you into the depths of despair. But
+ remember, you always solved the problem, somehow!
+
+ Perseverance is often the key, even though a seemingly trivial problem
+ can take an apparently inordinate amount of time to solve. In the end,
+ you will probably wonder why you worried so much. That's not to say it
+ isn't painful at the time. Try not to worry -- there are many more important
+ things in life.
+
+ @subsection page_strategies_debug_simplifyproblem Simplify the problem
+
+ Reduce the code exhibiting the problem to the smallest program possible
+ that exhibits the problem. If it is not possible to reduce a large and
+ complex program to a very small program, then try to ensure your code
+ doesn't hide the problem (you may have attempted to minimize the problem
+ in some way: but now you want to expose it).
+
+ With luck, you can add a small amount of code that causes the program
+ to go from functioning to non-functioning state. This should give a clue
+ to the problem. In some cases though, such as memory leaks or wrong
+ deallocation, this can still give totally spurious results!
+
+ @subsection page_strategies_debug_usedebugger Use a debugger
+
+ This sounds like facetious advice, but it is surprising how often people
+ don't use a debugger. Often it is an overhead to install or learn how to
+ use a debugger, but it really is essential for anything but the most
+ trivial programs.
+
+ @subsection page_strategies_debug_uselogging Use logging functions
+
+ There is a variety of logging functions that you can use in your program:
+ see @ref logfunctions.
+
+ Using tracing statements may be more convenient than using the debugger
+ in some circumstances (such as when your debugger doesn't support a lot
+ of debugging code, or you wish to print a bunch of variables).
+
+ @subsection page_strategies_debug_usedebuggingfacilities Use the wxWidgets debugging facilities
+
+ You can use wxDebugContext to check for
+ memory leaks and corrupt memory: in fact in debugging mode, wxWidgets will
+ automatically check for memory leaks at the end of the program if wxWidgets is suitably
+ configured. Depending on the operating system and compiler, more or less
+ specific information about the problem will be logged.
+
+ You should also use @ref debugmacros as part of a `defensive programming' strategy,
+ scattering wxASSERTs liberally to test for problems in your code as early as possible.
+ Forward thinking will save a surprising amount of time in the long run.
+
+ See the @ref debugging_overview for further information.
+
+*/
diff --git a/docs/doxygen/mainpages/topics.h b/docs/doxygen/mainpages/topics.h
new file mode 100644
index 0000000000..4eff49649f
--- /dev/null
+++ b/docs/doxygen/mainpages/topics.h
@@ -0,0 +1,107 @@
+/////////////////////////////////////////////////////////////////////////////
+// Name: topics.h
+// Purpose: Topic overviews page of the Doxygen manual
+// Author: wxWidgets team
+// RCS-ID: $Id$
+// Licence: wxWindows license
+/////////////////////////////////////////////////////////////////////////////
+
+
+/*!
+
+ @page page_topics Topic overviews
+
+ This chapter contains a selection of topic overviews.
+ The following are a basic categorization of them:
+
+ @li @ref page_topics_starting
+ @li @ref page_topics_programming
+ @li @ref page_topics_nongui
+ @li @ref page_topics_drawing
+ @li @ref page_topics_gui
+ @li @ref page_topics_indivctrl
+
+
+
+
+
+ @section page_topics_starting Starting with wxWidgets
+
+ @li @subpage referencenotes_overview
+ @li @subpage roughguide_overview
+ @li @subpage helloworld_overview
+ @li @subpage samples_overview
+ @li @subpage python_overview
+
+ @section page_topics_programming Programming with wxWidgets
+
+ @li @subpage backwardcompatibility_overview
+ @li @subpage runtimeclass_overview
+ @li @subpage trefcount_overview
+ @li @subpage app_overview
+ @li @subpage unicode_overview
+ @li @subpage mbconvclasses_overview
+ @li @subpage internationalization_overview
+ @li @subpage nonenglish_overview
+ @li @subpage debugging_overview
+ @li @subpage log_overview
+ @li @subpage eventhandling_overview
+ @li @subpage exceptions_overview
+ @li @subpage windowstyles_overview
+ @li @subpage windowdeletion_overview
+ @li @subpage windowids_overview
+ @li @subpage envvars_overview
+
+ @section page_topics_nongui Overviews of non-GUI classes
+
+ @li @subpage string_overview
+ @li @subpage bufferclasses_overview
+ @li @subpage datetime_overview
+ @li @subpage container_overview
+ @li @subpage file_overview
+ @li @subpage stream_overview
+ @li @subpage thread_overview
+ @li @subpage config_overview
+ @li @subpage fs_overview
+ @li @subpage resyn_overview
+ @li @subpage arc_overview
+ @li @subpage ipc_overview
+
+ @section page_topics_drawing Drawing related classes
+
+ @li @subpage dc_overview
+ @li @subpage bitmap_overview
+ @li @subpage font_overview
+ @li @subpage fontencoding_overview
+ @li @subpage printing_overview
+ @li @subpage unixprinting_overview
+
+ @section page_topics_gui Overviews of GUI classes
+
+ @li @subpage sizer_overview
+ @li @subpage xrc_overview
+ @li @subpage windowsizing_overview
+ @li @subpage scrolling_overview
+ @li @subpage dialog_overview
+ @li @subpage validator_overview
+ @li @subpage dataobject_overview
+ @li @subpage dnd_overview
+ @li @subpage constraints_overview
+
+ @section page_topics_indivctrl Overviews of individual controls
+
+ @li @subpage html_overview
+ @li @subpage richtextctrl_overview
+ @li @subpage aui_overview
+ @li @subpage commondialogs_overview
+ @li @subpage toolbar_overview
+ @li @subpage grid_overview
+ @li @subpage treectrl_overview
+ @li @subpage listctrl_overview
+ @li @subpage splitterwindow_overview
+ @li @subpage imagelist_overview
+ @li @subpage bookctrl_overview
+ @li @subpage tips_overview
+ @li @subpage docview_overview
+
+*/
diff --git a/docs/doxygen/mainpages/utilities.h b/docs/doxygen/mainpages/utilities.h
new file mode 100644
index 0000000000..a0e2bbb5df
--- /dev/null
+++ b/docs/doxygen/mainpages/utilities.h
@@ -0,0 +1,610 @@
+/////////////////////////////////////////////////////////////////////////////
+// Name: utilities.h
+// Purpose: Utilities page of the Doxygen manual
+// Author: wxWidgets team
+// RCS-ID: $Id$
+// Licence: wxWindows license
+/////////////////////////////////////////////////////////////////////////////
+
+/*!
+
+ @page page_utils Utilities and samples supplied with wxWidgets
+
+ @li @ref page_utils_utils
+ @li @ref page_utils_samples
+
+
+
+
+
+ @section page_utils_utils Utilities
+
+ In addition to the @ref libraries_page, some
+ additional utilities are supplied in the @c utils hierarchy.
+
+ For other user-contributed packages, please see the Contributions page
+ on the wxWidgets Web site http://www.wxwidgets.org.
+
+
+ @subsection page_utils_utils_helpview Helpview
+
+ Helpview is a program for displaying wxWidgets HTML
+ Help files. In many cases, you may wish to use the wxWidgets HTML
+ Help classes from within your application, but this provides a
+ handy stand-alone viewer. See @ref html_overview for more details.
+ You can find it in @c samples/html/helpview.
+
+ @subsection page_utils_utils_tex2rtf Tex2RTF
+
+ Supplied with wxWidgets is a utility called Tex2RTF for
+ converting @e LaTeX manuals HTML, MS HTML Help, wxHTML Help, RTF, and Windows
+ Help RTF formats. Tex2RTF was used for the wxWidgets manuals and can be used
+ independently by authors wishing to create on-line and printed manuals from the
+ same @e LaTeX source. Please see the separate documentation for Tex2RTF.
+ You can find it under @c utils/tex2rtf.
+
+ @subsection page_utils_utils_helpgen Helpgen
+
+ Helpgen takes C++ header files and generates a Tex2RTF-compatible
+ documentation file for each class it finds, using comments as appropriate.
+ This is a good way to start a reference for a set of classes.
+ Helpgen can be found in @c utils/HelpGen.
+
+ @subsection page_utils_utils_emulator Emulator
+
+ Xnest-based display emulator for X11-based PDA applications.
+ On some systems, the Xnest window does not synchronise with the
+ 'skin' window. This program can be found in @c utils/emulator.
+
+
+
+
+ @section page_utils_samples Samples
+
+ Probably the best way to learn wxWidgets is by reading the source of some 50+
+ samples provided with it. Many aspects of wxWidgets programming can be learnt
+ from them, but sometimes it is not simple to just choose the right sample to
+ look at. This overview aims at describing what each sample does/demonstrates to
+ make it easier to find the relevant one if a simple grep through all sources
+ didn't help. They also provide some notes about using the samples and what
+ features of wxWidgets are they supposed to test.
+
+ There are currently more than 50 different samples as part of wxWidgets and
+ this list is not complete. You should start your tour of wxWidgets with the
+ minimal sample which is the wxWidgets version of
+ "Hello, world!". It shows the basic structure of wxWidgets program and is the
+ most commented sample of all - looking at its source code is recommended.
+
+ The next most useful samples are probably widgets
+ and controls which show many of wxWidgets native and
+ generic controls, such as buttons, listboxes, checkboxes, comboboxes etc.
+
+ Other, more complicated controls, have their own samples. In this category you
+ may find the following samples showing the corresponding controls:
+
+ @li wxCalendarCtrl: @ref page_utils_samples_calendar
+ @li wxListCtrl: @ref page_utils_samples_listctrl
+ @li wxTreeCtrl: @ref page_utils_samples_treectrl
+ @li wxGrid: @ref page_utils_samples_grid
+
+ Finally, it might be helpful to do a search in the entire sample directory if
+ you can't find the sample showing the control you are interested in by
+ name. Most classes contained in wxWidgets occur in at least one of the samples.
+
+
+ @subsection page_utils_samples_minimal Minimal sample
+
+ The minimal sample is what most people will know under the term Hello World,
+ i.e. a minimal program that doesn't demonstrate anything apart from what is
+ needed to write a program that will display a "hello" dialog. This is usually
+ a good starting point for learning how to use wxWidgets.
+
+
+ @subsection page_utils_samples_animate Animate sample
+
+ The @c animate sample shows how you can use wxAnimationCtrl
+ control and shows concept of a platform-dependent animation encapsulated
+ in wxAnimation.
+
+
+ @subsection page_utils_samples_artprovider Art provider sample
+
+ The @c artprov sample shows how you can customize the look of standard
+ wxWidgets dialogs by replacing default bitmaps/icons with your own versions.
+ It also shows how you can use wxArtProvider to
+ get stock bitmaps for use in your application.
+
+
+ @subsection page_utils_samples_calendar Calendar sample
+
+ This font shows the calendar control in action. It
+ shows how to configure the control (see the different options in the calendar
+ menu) and also how to process the notifications from it.
+
+
+ @subsection page_utils_samples_config Config sample
+
+ This sample demonstrates the wxConfig classes in a platform
+ independent way, i.e. it uses text based files to store a given configuration under
+ Unix and uses the Registry under Windows.
+
+ See wxConfig overview for the descriptions of all
+ features of this class.
+
+
+ @subsection page_utils_samples_controls Controls sample
+
+ The controls sample is the main test program for most simple controls used in
+ wxWidgets. The sample tests their basic functionality, events, placement,
+ modification in terms of colour and font as well as the possibility to change
+ the controls programmatically, such as adding an item to a list box etc. Apart
+ from that, the sample uses a wxNotebook and tests most
+ features of this special control (using bitmap in the tabs, using
+ wxSizer instances and wxLayoutConstraints within notebook pages, advancing pages
+ programmatically and vetoing a page change by intercepting the wxNotebookEvent.
+
+ The various controls tested are listed here:
+
+ @li wxButton
+ @li wxBitmapButton
+ @li wxCheckBox
+ @li wxChoice
+ @li wxComboBox
+ @li wxGauge
+ @li wxStaticBox
+ @li wxListBox
+ @li wxSpinCtrl
+ @li wxSpinButton
+ @li wxStaticText
+ @li wxStaticBitmap
+ @li wxRadioBox
+ @li wxRadioButton
+ @li wxSlider
+
+
+ @subsection page_utils_samples_debugrpt DebugRpt sample
+
+ This sample shows how to use wxDebugReport class to
+ generate a debug report in case of a program crash or otherwise. On start up,
+ it proposes to either crash itself (by dereferencing a NULL pointer) or
+ generate debug report without doing it. Next it initializes the debug report
+ with standard information adding a custom file to it (just a timestamp) and
+ allows to view the information gathered using
+ wxDebugReportPreview.
+
+ For the report processing part of the sample to work you should make available
+ a Web server accepting form uploads, otherwise
+ wxDebugReportUpload will report an error.
+
+
+ @subsection page_utils_samples_dialogs Dialogs sample
+
+ This sample shows how to use the common dialogs available from wxWidgets. These
+ dialogs are described in detail in the Common dialogs overview.
+
+
+ @subsection page_utils_samples_dialup Dialup sample
+
+ This sample shows the wxDialUpManager
+ class. In the status bar, it displays the information gathered through its
+ interface: in particular, the current connection status (online or offline) and
+ whether the connection is permanent (in which case a string `LAN' appears in
+ the third status bar field - but note that you may be on a LAN not
+ connected to the Internet, in which case you will not see this) or not.
+
+ Using the menu entries, you may also dial or hang up the line if you have a
+ modem attached and (this only makes sense for Windows) list the available
+ connections.
+
+
+ @subsection page_utils_samples_dnd DnD sample
+
+ This sample shows both clipboard and drag and drop in action. It is quite non
+ trivial and may be safely used as a basis for implementing the clipboard and
+ drag and drop operations in a real-life program.
+
+ When you run the sample, its screen is split in several parts. On the top,
+ there are two listboxes which show the standard derivations of
+ wxDropTarget:
+ wxTextDropTarget and
+ wxFileDropTarget.
+
+ The middle of the sample window is taken by the log window which shows what is
+ going on (of course, this only works in debug builds) and may be helpful to see
+ the sequence of steps of data transfer.
+
+ Finally, the last part is used for dragging text from it to either one of the
+ listboxes (only one will accept it) or another application. The last
+ functionality available from the main frame is to paste a bitmap from the
+ clipboard (or, in the case of the Windows version, also a metafile) - it will be
+ shown in a new frame.
+
+ So far, everything we mentioned was implemented with minimal amount of code
+ using standard wxWidgets classes. The more advanced features are demonstrated
+ if you create a shape frame from the main frame menu. A shape is a geometric
+ object which has a position, size and color. It models some
+ application-specific data in this sample. A shape object supports its own
+ private wxDataFormat which means that you may cut and
+ paste it or drag and drop (between one and the same or different shapes) from
+ one sample instance to another (or the same). However, chances are that no
+ other program supports this format and so shapes can also be rendered as
+ bitmaps which allows them to be pasted/dropped in many other applications
+ (and, under Windows, also as metafiles which are supported by most of Windows
+ programs as well - try Write/Wordpad, for example).
+
+ Take a look at DnDShapeDataObject class to see how you may use
+ wxDataObject to achieve this.
+
+
+ @subsection page_utils_samples_event Event sample
+
+ The event sample demonstrates various features of the wxWidgets events. It
+ shows using dynamic events and connecting/disconnecting the event handlers
+ during run time and also using
+ PushEventHandler() and
+ PopEventHandler().
+
+
+ @subsection page_utils_samples_except Except(ions) sample
+
+ This very simple sample shows how to use C++ exceptions in wxWidgets programs,
+ i.e. where to catch the exception which may be thrown by the program code. It
+ doesn't do anything very exciting by itself, you need to study its code to
+ understand what goes on.
+
+ You need to build the library with @c wxUSE_EXCEPTIONS being set to @c 1
+ and compile your code with C++ exceptions support to be able to build this
+ sample.
+
+
+ @subsection page_utils_samples_exec Exec sample
+
+ The exec sample demonstrates the wxExecute and
+ wxShell functions. Both of them are used to execute the
+ external programs and the sample shows how to do this synchronously (waiting
+ until the program terminates) or asynchronously (notification will come later).
+
+ It also shows how to capture the output of the child process in both
+ synchronous and asynchronous cases and how to kill the processes with
+ wxProcess::Kill and test for their existence with
+ wxProcess::Exists.
+
+
+ @subsection page_utils_samples_font Font sample
+
+ The font sample demonstrates wxFont,
+ wxFontEnumerator and
+ wxFontMapper classes. It allows you to see the fonts
+ available (to wxWidgets) on the computer and shows all characters of the
+ chosen font as well.
+
+
+ @subsection page_utils_samples_grid Grid sample
+
+ TODO.
+
+
+ @subsection page_utils_samples_html HTML samples
+
+ Eight HTML samples (you can find them in directory @c samples/html)
+ cover all features of the HTML sub-library.
+
+ @li @b Test demonstrates how to create wxHtmlWindow
+ and also shows most supported HTML tags.
+
+ @li @b Widget shows how you can embed ordinary controls or windows within an
+ HTML page. It also nicely explains how to write new tag handlers and extend
+ the library to work with unsupported tags.
+
+ @li @b About may give you an idea how to write good-looking About boxes.
+
+ @li @b Zip demonstrates use of virtual file systems in wxHTML. The zip archives
+ handler (ships with wxWidgets) allows you to access HTML pages stored
+ in a compressed archive as if they were ordinary files.
+
+ @li @b Virtual is yet another virtual file systems demo. This one generates pages at run-time.
+ You may find it useful if you need to display some reports in your application.
+
+ @li @b Printing explains use of wxHtmlEasyPrinting
+ class which serves as as-simple-as-possible interface for printing HTML
+ documents without much work. In fact, only few function calls are sufficient.
+
+ @li @b Help and @b Helpview are variations on displaying HTML help
+ (compatible with MS HTML Help Workshop). @e Help shows how to embed
+ wxHtmlHelpController in your application
+ while @e Helpview is a simple tool that only pops up the help window and
+ displays help books given at command line.
+
+
+ @subsection page_utils_samples_image Image sample
+
+ The image sample demonstrates use of the wxImage class
+ and shows how to download images in a variety of formats, currently PNG, GIF,
+ TIFF, JPEG, BMP, PNM and PCX. The top of the sample shows two rectangles, one
+ of which is drawn directly in the window, the other one is drawn into a
+ wxBitmap, converted to a wxImage, saved as a PNG image
+ and then reloaded from the PNG file again so that conversions between wxImage
+ and wxBitmap as well as loading and saving PNG files are tested.
+
+ At the bottom of the main frame there is a test for using a monochrome bitmap by
+ drawing into a wxMemoryDC. The bitmap is then drawn
+ specifying the foreground and background colours with
+ wxDC::SetTextForeground and
+ wxDC::SetTextBackground (on the left). The
+ bitmap is then converted to a wxImage and the foreground colour (black) is
+ replaced with red using wxImage::Replace.
+
+ This sample also contains the code for testing the image rotation and resizing
+ and using raw bitmap access, see the corresponding menu commands.
+
+
+ @subsection page_utils_samples_internat Internat(ionalization) sample
+
+ The not very clearly named internat sample demonstrates the wxWidgets
+ internationalization (i18n for short from now on) features. To be more
+ precise, it only shows localization support, i.e. support for translating the
+ program messages into another language while true i18n would also involve
+ changing the other aspects of the programs behaviour.
+
+ More information about this sample can be found in the @c readme.txt file in
+ its directory. Please see also i18n overview.
+
+
+ @subsection page_utils_samples_layout Layout sample
+
+ The layout sample demonstrates the two different layout systems offered
+ by wxWidgets. When starting the program, you will see a frame with some
+ controls and some graphics. The controls will change their size whenever
+ you resize the entire frame and the exact behaviour of the size changes
+ is determined using the wxLayoutConstraints
+ class. See also the overview and the
+ wxIndividualLayoutConstraint
+ class for further information.
+
+ The menu in this sample offers two more tests, one showing how to use
+ a wxBoxSizer in a simple dialog and the other one
+ showing how to use sizers in connection with a wxNotebook
+ class. See also wxSizer.
+
+
+ @subsection page_utils_samples_listctrl Listctrl sample
+
+ This sample shows the wxListCtrl control. Different modes
+ supported by the control (list, icons, small icons, report) may be chosen from
+ the menu.
+
+ The sample also provides some timings for adding/deleting/sorting a lot of
+ (several thousands) items into the control.
+
+
+ @subsection page_utils_samples_mediaplayer Mediaplayer sample
+
+ This sample demonstrates how to use all the features of
+ wxMediaCtrl and play various types of sound, video,
+ and other files.
+
+ It replaces the old dynamic sample.
+
+
+ @subsection page_utils_samples_notebook Notebook sample
+
+ This samples shows wxBookCtrl family of controls.
+ Although initially it was written to demonstrate wxNotebook
+ only, it can now be also used to see wxListbook,
+ wxChoicebook and wxTreebook in action.
+ Test each of the controls, their orientation, images and pages using
+ commands through menu.
+
+
+ @subsection page_utils_samples_render Render sample
+
+ This sample shows how to replace the default wxWidgets
+ renderer and also how to write a shared library
+ (DLL) implementing a renderer and load and unload it during the run-time.
+
+
+ @subsection page_utils_samples_scrollsub Scroll subwindow sample
+
+ This sample demonstrates use of the wxScrolledWindow
+ class including placing subwindows into it and drawing simple graphics. It uses the
+ SetTargetWindow method and thus the effect
+ of scrolling does not show in the scrolled window itself, but in one of its subwindows.
+
+ Additionally, this samples demonstrates how to optimize drawing operations in wxWidgets,
+ in particular using the wxWindow::IsExposed method with
+ the aim to prevent unnecessary drawing in the window and thus reducing or removing
+ flicker on screen.
+
+
+ @subsection page_utils_samples_sockets Sockets sample
+
+ The sockets sample demonstrates how to use the communication facilities
+ provided by wxSocket. There are two different
+ applications in this sample: a server, which is implemented using a
+ wxSocketServer object, and a client, which
+ is implemented as a wxSocketClient.
+
+ The server binds to the local address, using TCP port number 3000,
+ sets up an event handler to be notified of incoming connection requests
+ (@b wxSOCKET_CONNECTION events), and sits there, waiting for clients
+ (@e listening, in socket parlance). For each accepted connection,
+ a new wxSocketBase object is created. These
+ socket objects are independent from the server that created them, so
+ they set up their own event handler, and then request to be notified
+ of @b wxSOCKET_INPUT (incoming data) or @b wxSOCKET_LOST
+ (connection closed at the remote end) events. In the sample, the event
+ handler is the same for all connections; to find out which socket the
+ event is addressed to, the GetSocket function
+ is used.
+
+ Although it might take some time to get used to the event-oriented
+ system upon which wxSocket is built, the benefits are many. See, for
+ example, that the server application, while being single-threaded
+ (and of course without using fork() or ugly select() loops) can handle
+ an arbitrary number of connections.
+
+ The client starts up unconnected, so you can use the Connect... option
+ to specify the address of the server you are going to connect to (the
+ TCP port number is hard-coded as 3000). Once connected, a number of
+ tests are possible. Currently, three tests are implemented. They show
+ how to use the basic IO calls in wxSocketBase,
+ such as wxSocketBase::Read, wxSocketBase::Write,
+ wxSocketBase::ReadMsg and wxSocketBase::WriteMsg,
+ and how to set up the correct IO flags depending on what you are going to
+ do. See the comments in the code for more information. Note that because
+ both clients and connection objects in the server set up an event handler
+ to catch @b wxSOCKET_LOST events, each one is immediately notified
+ if the other end closes the connection.
+
+ There is also a URL test which shows how to use
+ the wxURL class to fetch data from a given URL.
+
+ The sockets sample is work in progress. Some things to do:
+
+ @li More tests for basic socket functionality.
+ @li More tests for protocol classes (wxProtocol and its descendants).
+ @li Tests for the recently added (and still in alpha stage) datagram sockets.
+ @li New samples which actually do something useful (suggestions accepted).
+
+
+ @subsection page_utils_samples_sound Sound sample
+
+ The @c sound sample shows how to use wxSound for simple
+ audio output (e.g. notifications).
+
+
+ @subsection page_utils_samples_statbar Statbar sample
+
+ This sample shows how to create and use wxStatusBar. Although most of the
+ samples have a statusbar, they usually only create a default one and only
+ do it once.
+
+ Here you can see how to recreate the statusbar (with possibly different number
+ of fields) and how to use it to show icons/bitmaps and/or put arbitrary
+ controls into it.
+
+
+ @subsection page_utils_samples_taborder Tab order sample
+
+ This sample allows to test keyboard navigation (mostly done using the
+ @c TAB key, hence the sample name) between different controls.
+ It shows the use of wxWindow::MoveBeforeInTabOrder() and
+ MoveAfterInTabOrder() methods to change
+ the default order of the windows in the navigation chain and of
+ wxWindow::Navigate() for moving focus along this
+ chain.
+
+
+ @subsection page_utils_samples_text Text sample
+
+ This sample demonstrates four features: firstly the use and many variants of
+ the wxTextCtrl class (single line, multi line, read only,
+ password, ignoring TAB, ignoring ENTER).
+
+ Secondly it shows how to intercept a wxKeyEvent in both
+ the raw form using the @c EVT_KEY_UP and @c EVT_KEY_DOWN macros and the
+ higher level from using the @c EVT_CHAR macro. All characters will be logged
+ in a log window at the bottom of the main window. By pressing some of the function
+ keys, you can test some actions in the text ctrl as well as get statistics on the
+ text ctrls, which is useful for testing if these statistics actually are correct.
+
+ Thirdly, on platforms which support it, the sample will offer to copy text to the
+ wxClipboard and to paste text from it. The GTK version will
+ use the so called PRIMARY SELECTION, which is the pseudo clipboard under X and
+ best known from pasting text to the XTerm program.
+
+ Last not least: some of the text controls have tooltips and the sample also shows
+ how tooltips can be centrally disabled and their latency controlled.
+
+
+ @subsection page_utils_samples_thread Thread sample
+
+ This sample demonstrates use of threads in connection with GUI programs.
+ There are two fundamentally different ways to use threads in GUI programs and
+ either way has to take care of the fact that the GUI library itself usually
+ is not multi-threading safe, i.e. that it might crash if two threads try to
+ access the GUI class simultaneously. One way to prevent that is have a normal
+ GUI program in the main thread and some worker threads which work in the
+ background. In order to make communication between the main thread and the
+ worker threads possible, wxWidgets offers the wxPostEvent
+ function and this sample makes use of this function.
+
+ The other way to use a so called Mutex (such as those offered in the wxMutex
+ class) that prevent threads from accessing the GUI classes as long as any other
+ thread accesses them. For this, wxWidgets has the wxMutexGuiEnter
+ and wxMutexGuiLeave functions, both of which are
+ used and tested in the sample as well.
+
+ See also @ref thread_overview and wxThread.
+
+
+ @subsection page_utils_samples_toolbar Toolbar sample
+
+ The toolbar sample shows the wxToolBar class in action.
+
+ The following things are demonstrated:
+
+ @li Creating the toolbar using wxToolBar::AddTool and wxToolBar::AddControl: see
+ MyApp::InitToolbar in the sample.
+ @li Using @c EVT_UPDATE_UI handler for automatically enabling/disabling
+ toolbar buttons without having to explicitly call EnableTool. This is done
+ in MyFrame::OnUpdateCopyAndCut.
+ @li Using wxToolBar::DeleteTool and wxToolBar::InsertTool to dynamically update the
+ toolbar.
+
+ Some buttons in the main toolbar are check buttons, i.e. they stay checked when
+ pressed. On the platforms which support it, the sample also adds a combobox
+ to the toolbar showing how you can use arbitrary controls and not only buttons
+ in it.
+
+ If you toggle another toolbar in the sample (using @c Ctrl-A) you will also
+ see the radio toolbar buttons in action: the first three buttons form a radio
+ group, i.e. checking any of them automatically unchecks the previously
+ checked one.
+
+
+ @subsection page_utils_samples_treectrl Treectrl sample
+
+ This sample demonstrates using the wxTreeCtrl class. Here
+ you may see how to process various notification messages sent by this control
+ and also when they occur (by looking at the messages in the text control in
+ the bottom part of the frame).
+
+ Adding, inserting and deleting items and branches from the tree as well as
+ sorting (in default alphabetical order as well as in custom one) is
+ demonstrated here as well - try the corresponding menu entries.
+
+
+ @subsection page_utils_samples_widgets Widgets sample
+
+ The widgets sample is the main presentation program for most simple and advanced
+ native controls and complex generic widgets provided by wxWidgets.
+ The sample tests their basic functionality, events, placement, modification
+ in terms of colour and font as well as the possibility to change
+ the controls programmatically, such as adding an item to a list box etc.
+ All widgets are categorized for easy browsing.
+
+
+ @subsection page_utils_samples_wizard Wizard sample
+
+ This sample shows the so-called wizard dialog (implemented using
+ wxWizard and related classes). It shows almost all
+ features supported:
+
+ @li Using bitmaps with the wizard and changing them depending on the page
+ shown (notice that wxValidationPage in the sample has a different image from
+ the other ones)
+ @li Using TransferDataFromWindow
+ to verify that the data entered is correct before passing to the next page
+ (done in wxValidationPage which forces the user to check a checkbox before
+ continuing).
+ @li Using more elaborated techniques to allow returning to the previous
+ page, but not continuing to the next one or vice versa (in wxRadioboxPage)
+ @li This (wxRadioboxPage) page also shows how the page may process the
+ @e Cancel button itself instead of relying on the wizard parent to do it.
+ @li Normally, the order of the pages in the wizard is known at compile-time,
+ but sometimes it depends on the user choices: wxCheckboxPage shows how to
+ dynamically decide which page to display next (see also
+ wxWizardPage)
+
+*/
diff --git a/docs/doxygen/regen.sh b/docs/doxygen/regen.sh
index bd5c34006d..4591f3eca8 100755
--- a/docs/doxygen/regen.sh
+++ b/docs/doxygen/regen.sh
@@ -16,4 +16,9 @@ cp wxwidgets.css out/html
currpath=`pwd`/
interfacepath=`cd ../../interface && pwd`/
cat doxygen.log | sed -e "s|$currpath||g" -e "s|$interfacepath||g" >temp
-mv temp doxygen.log
\ No newline at end of file
+mv temp doxygen.log
+
+# filter out the following warning which we don't care about
+cat doxygen.log | grep -v ".*supplied.*as.*the.*argument.*is.*not.*an.*input.*file.*" >temp
+mv temp doxygen.log
+