initial commit

Signed-off-by: Peter Siegmund <mars3142@noreply.mars3142.dev>
This commit is contained in:
2025-10-31 23:37:30 +01:00
commit 7228269764
9653 changed files with 4034514 additions and 0 deletions

View File

@@ -0,0 +1,831 @@
/////////////////////////////////////////////////////////////////////////////
// Name: cat_classes.h
// Purpose: Classes-by-category page of the Doxygen manual
// Author: wxWidgets team
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
/**
@page page_class_cat Overview of Available Classes
@tableofcontents
This page contains a summarized listing of classes, please see the
@ref group_class page for a full listing by category or the
<a href="classes.html">full list of classes</a> in alphabetical order.
For a more visual approach, see @ref page_screenshots "the screenshots" page.
@section page_class_cat_basicwnd Basic Windows
The following are the most important window classes
@li wxWindow: base class for all windows and controls
@li wxControl: base class (mostly) for native controls/widgets
@li wxPanel: window which can smartly manage child windows
@li ::wxScrolledWindow: Window with automatically managed scrollbars (see
wxScrolled)
@li wxTopLevelWindow: Any top level window, dialog or frame
@section page_class_cat_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.
Related Overviews: @ref overview_sizer
These are the classes relevant to sizer-based layout:
@li wxSizer: Abstract base class
@li wxBoxSizer: A sizer for laying out windows in a row or column
@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 wxStaticBoxSizer: Same as wxBoxSizer, but with a surrounding static box
@li wxWrapSizer: A sizer which wraps its child controls as size permits
Other layout classes:
@li wxLayoutAlgorithm: An alternative window layout facility
@section page_class_cat_managedwnd Managed Windows
There are several types of window that are directly controlled by the window
manager (such as MS Windows, or the X11 Window Manager). Frames and dialogs
are similar in wxWidgets, but only dialogs may be modal.
Related Overviews: @ref overview_cmndlg
@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 wxPopupWindow: A toplevel window without decorations, e.g. for a combobox pop-up
@li wxPropertySheetDialog: Property sheet dialog
@li wxSplashScreen: Splash screen class
@li wxTipWindow: Shows text in a small window
@li wxWizard: A wizard dialog
@section page_class_cat_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_class_cat_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 wxActivityIndicator: A small animated control indicating program activity
@li wxAnimationCtrl: A control to display an animation
@li wxControl: The base class for controls
@li wxBitmapButton: Push button control, displaying a bitmap
@li wxBitmapComboBox: A combobox with bitmaps next to text items
@li wxBitmapToggleButton: A toggle button with bitmaps.
@li wxButton: Push button control, displaying text
@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 display tabular or tree like data
@li wxDataViewTreeCtrl: A specialized wxDataViewCtrl with a wxTreeCtrl-like API
@li wxDataViewListCtrl: A specialized wxDataViewCtrl for displaying and editing simple tables.
@li wxEditableListBox: A listbox with editable items.
@li wxFileCtrl: A control for selecting a file. Useful for custom file dialogs.
@li wxGauge: A control to represent a varying quantity, such as time remaining
@li wxGenericDirCtrl: A control for displaying a directory tree
@li wxGrid: A control to display spread-sheet like data in tabular form
@li wxHeaderCtrl: a small control to display the top header of tabular data
@li wxHtmlListBox: An abstract class for creating listboxes showing HTML
content
@li wxHyperlinkCtrl: A static text which opens an URL when clicked
@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&ccedil;ade) for wxListCtrl in report
mode
@li wxNotebook: A notebook class
@li wxOwnerDrawnComboBox: A combobox with owner-drawn list items
@li wxPropertyGrid: A complex control to display hierarchical, editable information
@li wxRadioBox: A group of radio buttons
@li wxRadioButton: A round button to be used with others in a mutually
exclusive way
@li wxRearrangeCtrl: A control allowing the user to rearrange a list of items.
@li wxRichTextCtrl: Generic rich text editing control
@li wxSimpleHtmlListBox: A listbox showing HTML content
@li wxStaticBox: A static, or group box for visually grouping related controls
@li wxScrollBar: Scrollbar control
@li wxSearchCtrl: A text input control used to initiate a search
@li wxSpinButton: A spin or `up-down' control
@li wxSpinCtrl: A spin control - i.e. spin button and text control displaying
an integer
@li wxSpinCtrlDouble: A spin control - i.e. spin button and text control displaying
a real number
@li wxStaticText: One or more lines of non-editable text
@li wxTextCtrl: Single or multiline text editing control
@li wxToggleButton: A button which stays pressed when clicked by user.
@li wxTreeCtrl: Tree (hierarchy) control
@li wxTreeListCtrl: Multi-column tree control with simple interface
@li wxStaticBitmap: A control to display a bitmap
@li wxStyledTextCtrl: A wxWidgets implementation of the Scintilla source code
editing component for plain text editing.
@li wxSlider: A slider that can be dragged by the user
@li wxVListBox: A listbox supporting variable height rows
@section page_class_cat_validator Validators
These are the window validators, used for filtering and validating user input.
Related Overviews: @ref overview_validator
@li wxValidator: Base validator class
@li wxTextValidator: Text control validator class
@li wxGenericValidator: Generic control validator class
@li wxIntegerValidator: Text control validator class for integer numbers
@li wxFloatingPointValidator: Text control validator class for floating point numbers
@section page_class_cat_pickers Picker Controls
These controls provide the user with the possibility to choose something (file
or directory, font or colour, ...) directly from the window containing them.
@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_class_cat_miscwnd Miscellaneous Windows
The following are a variety of classes that are derived from wxWindow.
@li wxCollapsiblePane: A panel which can be shown/hidden by the user
@li wxPanel: A window whose colour changes according to current user settings
@li ::wxScrolledWindow: Window with automatically managed scrollbars (see
wxScrolled)
@li wxHScrolledWindow: As ::wxScrolledWindow but supports columns of variable
widths
@li wxVScrolledWindow: As ::wxScrolledWindow but supports rows of variable
heights
@li wxHVScrolledWindow: As ::wxScrolledWindow but supports scroll units of
variable sizes.
@li wxGrid: A grid (table) window
@li wxInfoBar: An information bar usually shown on top of the main window.
@li wxRichToolTip: A customizable tooltip.
@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 wxSimplebook: Another book control but one allowing only the program, not
the user, to change its current page.
@li wxWizardPage: A base class for the page in wizard dialog.
@li wxWizardPageSimple: A page in wizard dialog.
@li wxCustomBackgroundWindow: A window allowing to set a custom bitmap.
@section page_class_cat_aui Window Docking (wxAUI)
wxAUI is a set classes for writing a customizable application interface
with built-in docking, floatable panes and a flexible MDI-like interface.
Related Overviews: @ref overview_aui
@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_class_cat_cmndlg Common Dialogs
Common dialogs are ready-made dialog classes which are frequently used in an
application.
Related Overviews: @ref overview_cmndlg
@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 wxFontDialog: Font chooser dialog
@li wxMessageDialog: Simple message box dialog
@li wxMultiChoiceDialog: Dialog to get one or more selections from a list
@li wxPageSetupDialog: Standard page setup dialog
@li wxPasswordEntryDialog: Dialog to get a password from the user
@li wxPrintDialog: Standard print dialog
@li wxProgressDialog: Progress indication dialog
@li wxRearrangeDialog: Dialog allowing the user to rearrange a list of items.
@li wxRichTextFormattingDialog: A dialog for formatting the content of a
wxRichTextCtrl
@li wxRichMessageDialog: Nicer message box dialog
@li wxSingleChoiceDialog: Dialog to get a single selection from a list and
return the string
@li wxSymbolPickerDialog: Symbol selector dialog
@li wxTextEntryDialog: Dialog to get a single line of text from the user
@li wxWizard: A wizard dialog.
@section page_class_cat_html HTML
wxWidgets provides a set of classes to display text in HTML format. These
classes 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_class_cat_dc Device Contexts
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.
Related Overviews: @ref overview_dc
@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 (doesn't work on many modern systems, deprecated).
@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 (Windows-only,
deprecated).
@li wxScreenDC: A device context to access the entire screen (doesn't work on
many modern systems, deprecated).
@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_class_cat_gc Graphics Context classes
These classes are related to drawing using a new vector based drawing API and
are based on the modern drawing backend GDI+, CoreGraphics and Cairo.
@li wxGraphicsRenderer: Represents a drawing engine.
@li wxGraphicsContext: Represents a graphics context currently being drawn on.
@li wxGraphicsBrush: Brush for drawing into a wxGraphicsContext
@li wxGraphicsPen: Pen for drawing into a wxGraphicsContext
@li wxGraphicsFont: Font for drawing text on a wxGraphicsContext
@li wxGraphicsMatrix: Represents an affine matrix for drawing transformation
@li wxGraphicsPath: Represents a path for drawing
@section page_class_cat_gdi Graphics Device Interface
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 wxBrush: Used for filling areas on a device context
@li wxBrushList: The list of previously-created brushes
@li wxFont: Represents fonts
@li wxFontList: The list of previously-created fonts
@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_class_cat_image Image and bitmap classes
These classes represent images and bitmap in various formats and ways
to access and create them.
Related Overviews: @ref overview_bitmap
@li wxAnimation: Represents an animation
@li wxBitmap: Represents a platform dependent bitmap
@li wxBitmapHandler: Class for loading a saving a wxBitmap in a specific format
@li wxCursor: A small, transparent bitmap representing the cursor
@li wxIcon: A small, transparent bitmap for assigning to frames and drawing on
device contexts
@li wxIconBundle: Contains multiple copies of an icon in different sizes
@li wxImage: A platform-independent image class
@li wxImageHandler: Class for loading a saving a wxImage in a specific format
@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 wxMemoryDC: A device context for drawing into bitmaps
@li wxPixelData: Class template for direct access to wxBitmap's and wxImage's internal data
@section page_class_cat_events Events
An event object contains information about a specific event. Event handlers
(usually member functions) have a single, event argument.
Related Overviews: @ref overview_events
@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 wxKeyboardState: State of the keyboard modifiers.
@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 wxMouseState: State of the mouse
@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_class_cat_appmanagement Application and Process Management
@li wxApp: Application class
@li wxCmdLineParser: Command line parser class
@li wxDynamicLibrary: Class to work with shared libraries.
@li wxProcess: Process class
@section page_class_cat_printing Printing Framework
A printing and previewing framework is implemented to make it relatively
straightforward to provide document printing facilities.
Related Overviews: @ref overview_printing
@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_class_cat_dvf Document/View Framework
wxWidgets supports a document/view framework which provides housekeeping for a
document-centric application.
Related Overviews: @ref overview_docview
@li wxCommand: Base class for undo/redo actions
@li wxCommandProcessor: Maintains the undo/redo stack
@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
@li wxDocMDIChildFrame: An MDI child frame for showing a document view
@li wxDocMDIParentFrame: An MDI parent frame to contain views
@li wxFileHistory: Maintains a list of the most recently visited files
@section page_class_cat_dnd Clipboard and Drag & Drop
Related Overviews: @ref overview_dnd
@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_class_cat_vfs Virtual File System
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_class_cat_threading Threading
wxWidgets provides a set of classes to make use of the native thread
capabilities of the various platforms.
Related Overviews: @ref overview_thread
@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_class_cat_rtti Runtime Type Information (RTTI)
wxWidgets supports runtime manipulation of class information, and dynamic
creation of objects given class names.
Related Overviews: @ref overview_rtti
@see @ref group_funcmacro_rtti "RTTI Functions and Macros"
@li wxClassInfo: Holds runtime class information
@li wxObject: Root class for classes with runtime information
@section page_class_cat_debugging Debugging
wxWidgets supports some aspects of debugging an application through classes,
functions and macros.
Related Overviews: @ref overview_debugging
@see @ref group_funcmacro_debug "Debugging Functions and Macros"
@li wxDebugContext: Provides memory-checking facilities
@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_class_cat_logging Logging
wxWidgets provides several classes and functions for message logging.
Related overview: @ref overview_log
@see @ref group_funcmacro_log "Logging Functions and Macros"
@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
@section page_class_cat_data Data Structures
These are the data structure classes supported by wxWidgets.
@li wxAny: A class for storing arbitrary types that may change at run-time
@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_class_cat_conv Text Conversion
These classes define objects for performing conversions between different
multibyte and Unicode encodings and wide character strings.
@li wxMBConv: Base class for all converters, defines the API implemented by all
the other converter classes.
@li wxMBConvUTF7: Converter for UTF-7
@li wxMBConvUTF8: Converter for UTF-8
@li wxMBConvUTF16: Converter for UTF-16
@li wxMBConvUTF32: Converter for UTF-32
@li wxCSConv: Converter for any system-supported encoding which can be
specified by name.
Related Overviews: @ref overview_mbconv
@section page_class_cat_containers Containers
These are classes, templates and class macros are used by wxWidgets. Most of
these classes provide a subset or almost complete STL API.
Related Overviews: @ref overview_container
@li wxArray<T>: A legacy dynamic array, use std::vector or wxVector instead.
@li wxArrayString: An efficient container for storing wxString objects
@li wxHashMap<T>: A type-safe hash map implementation (macro based)
@li wxHashSet<T>: A type-safe hash set implementation(macro based)
@li wxHashTable: A simple hash table implementation (deprecated, use wxHashMap)
@li wxList<T>: A type-safe linked list implementation (macro based)
@li wxVector<T>: A template-based vector implementation identical to std::vector
@section page_class_cat_smartpointers Smart Pointers
wxWidgets provides a few smart pointer class templates.
@li wxObjectDataPtr<T>: A shared pointer (using intrusive reference counting)
@li wxScopedPtr<T>: A scoped pointer
@li wxSharedPtr<T>: A shared pointer (using non-intrusive reference counting)
@li wxWeakRef<T>: A weak reference
@section page_class_cat_file File Handling
wxWidgets has several small classes to work with disk files and directories.
Related overview: @ref overview_file
@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 wxTempFFile: Another 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
@li wxFileSystemWatcher: Class providing notifications of file system changes
@section page_class_cat_streams Streams
wxWidgets has its own set of stream classes as an alternative to the
standard stream libraries and to provide enhanced functionality.
Related overview: @ref overview_stream
@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 wxTempFFileOutputStream: Another stream to safely replace an existing file
@li wxStringInputStream: String input stream class
@li wxStringOutputStream: String output stream class
@li wxLZMAInputStream: LZMA decompression stream class
@li wxLZMAOutputStream: LZMA compression 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_class_cat_xml XML
@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_class_cat_archive Archive
@li wxArchiveInputStream
@li wxArchiveOutputStream
@li wxArchiveEntry
@section page_class_cat_xrc XML Based Resource System (XRC)
Resources allow your application to create controls and other user interface
elements from specifications stored in an XML format.
Related overview: @ref overview_xrc
@li wxXmlResource: The main class for working with resources
@li wxXmlResourceHandler: The base class for XML resource handlers
@section page_class_cat_net Networking
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_class_cat_ipc Interprocess Communication
wxWidgets provides simple interprocess communications facilities based on
Windows DDE, but available on most platforms using TCP.
Related overview: @ref overview_ipc
@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_class_cat_help 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_class_cat_media Multimedia
@li wxMediaCtrl: Display multimedia contents.
@section page_class_cat_gl OpenGL
@li wxGLCanvas: Canvas that you can render OpenGL calls to.
@li wxGLContext: Class to ease sharing of OpenGL data resources.
@section page_class_cat_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
*/

View File

@@ -0,0 +1,441 @@
/////////////////////////////////////////////////////////////////////////////
// Name: const_cpp.h
// Purpose: Preprocessor symbols
// Author: Vadim Zeitlin
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
/**
@page page_cppconst Preprocessor Symbols
@tableofcontents
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_.
@section page_cppconst_guisystem GUI system
@beginDefList
@itemdef{\__WXBASE__, Only wxBase, no GUI features (same as @c wxUSE_GUI == 0)}
@itemdef{\__WXDFB__, wxUniversal using DirectFB}
@itemdef{\__WXGTK__, GTK+}
@itemdef{\__WXGTK127__, GTK+ 1.2.7 or higher (not used any longer)}
@itemdef{\__WXGTK20__, GTK+ 2.0 (2.6) or higher}
@itemdef{\__WXGTK210__, GTK+ 2.10 or higher}
@itemdef{\__WXGTK218__, GTK+ 2.18 or higher}
@itemdef{\__WXGTK220__, GTK+ 2.20 or higher}
@itemdef{\__WXGTK3__, GTK+ 3.0 or higher}
@itemdef{\__WXMAC__, old define, same as <tt>\__WXOSX__</tt>}
@itemdef{\__WXMOTIF__, Motif (not used any longer).}
@itemdef{\__WXMOTIF20__, Motif 2.0 or higher (not used any longer).}
@itemdef{\__WXMSW__, GUI using <a href="http://en.wikipedia.org/wiki/Windows_User">Windows Controls</a>.
Notice that for compatibility reasons, this symbol is defined for console
applications under Windows as well, but it should only be used in the GUI code
while <tt>\__WINDOWS__</tt> should be used for the platform tests.}
@itemdef{\__WXOSX__, OS X GUI using any Apple widget framework (AppKit or UIKit)}
@itemdef{\__WXOSX_IPHONE__, iPhone (UIKit)}
@itemdef{\__WXOSX_COCOA__, macOS using Cocoa (AppKit)}
@itemdef{\__WXOSX_MAC__, macOS (Cocoa)}
@itemdef{\__WXPM__, OS/2 native Presentation Manager (not used any longer).}
@itemdef{\__WXXT__, Xt; mutually exclusive with WX_MOTIF, not implemented in wxWidgets 2.x}
@itemdef{\__WXX11__, wxX11 (<tt>\__WXUNIVERSAL__</tt> 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
wxOSX is the successor of the venerable wxMac, it currently exists in two
versions: Cocoa for the desktop and a very early iPhone port. To summarize:
@li If you want to test for wxOSX on the desktop, use
<tt>\__WXOSX_MAC__</tt>.
@li If you want to test for wxOSX on the iPhone, use
<tt>\__WXOSX_IPHONE__</tt>.
@li If you want to test for any port under macOS, including, for
example, wxGTK and also wxBase, use <tt>\__DARWIN__</tt> (see below).
The convention is to use the <tt>__WX</tt> 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__, OS X (with BSD C library), using any port (see also <tt>\__WXOSX__</tt>)}
@itemdef{\__DATA_GENERAL__, DG-UX}
@itemdef{\__FREEBSD__, FreeBSD}
@itemdef{\__HPUX__, HP-UX (Unix)}
@itemdef{\__GNU__, GNU Hurd}
@itemdef{\__LINUX__, Linux}
@itemdef{\__MACH__, Mach-O Architecture (OS X only builds)}
@itemdef{\__OSF__, OSF/1}
@itemdef{\__QNX__, QNX Neutrino RTOS}
@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 platform, using any port (see also <tt>\__WXMSW__</tt>)}
@itemdef{\__WIN16__, Win16 API (not supported since wxWidgets 2.6)}
@itemdef{\__WIN32__, Win32 API}
@itemdef{\__WIN64__, Win64 (mostly same as Win32 but data type sizes are different)}
@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 (not supported any longer)}
@itemdef{\__INTEL__, Intel i386 or compatible}
@itemdef{\__IA64__, Intel 64 bit architecture}
@itemdef{\__POWERPC__, Motorola Power PC (not supported any longer)}
@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 (not used any more).}
@itemdef{\__DIGITALMARS__, Digital Mars (not used any more).}
@itemdef{\__GNUG__, Gnu C++ on any platform, see also wxCHECK_GCC_VERSION}
@itemdef{\__GNUWIN32__, Gnu-Win32 compiler, see also wxCHECK_W32API_VERSION}
@itemdef{\__INTELC__, Intel C++ compiler}
@itemdef{\__MINGW32__, Either MinGW32 or MinGW-w64 in either 32 or 64 bits}
@itemdef{__MINGW32_TOOLCHAIN, MinGW32 only (32 bits only right now)}
@itemdef{\__MINGW64__, MinGW-w64 in 64 bit builds}
@itemdef{\__MINGW64_TOOLCHAIN__, MinGW-w64 in either 32 or 64 bit builds}
@itemdef{\__SUNCC__, Sun CC, see also wxCHECK_SUNCC_VERSION}
@itemdef{\__SYMANTECC__, Symantec C++ (not used any more).}
@itemdef{\__VISAGECPP__, IBM Visual Age (OS/2) (not used any more).}
@itemdef{\__VISUALC__, Microsoft Visual C++, see also ::wxCHECK_VISUALC_VERSION.
The value of this macro corresponds to the compiler version:
@c 1020 for @c 4.2 (the first supported version), @c 1100 for
@c 5.0, @c 1200 for @c 6.0 and so on. For convenience, the symbols
\__VISUALCn__ are also defined for each major compiler version from
5 to 12, i.e. you can use tests such as <tt>\#ifdef \_\_VISUALC7\_\_</tt>
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, @c 1100 is @c 11.0 and @c 1200 is OpenWatcom
(not used any more).}
@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_3STATE_CHECKBOX, Defined if wxCheckBox supports wxCHK_3STATE
flag, i.e. is capable of showing three states and not only the usual two.
Currently defined for almost all ports.}
@itemdef{wxHAS_ATOMIC_OPS, Defined if wxAtomicInc() and wxAtomicDec() functions
have an efficient (CPU-specific) implementation. Notice that the functions
themselves are always available but can be prohibitively slow to use when
implemented in a generic way, using a critical section.}
@itemdef{wxHAS_BITMAPTOGGLEBUTTON, Defined in @c wx/tglbtn.h if
wxBitmapToggleButton class is available in addition to wxToggleButton.}
@itemdef{wxHAS_CONFIG_AS_FILECONFIG, Defined if wxConfig is defined as
wxFileConfig. This constant is available since wxWidgets 3.3.0.}
@itemdef{wxHAS_CONFIG_AS_REGCONFIG, Defined if wxConfig is defined as
wxRegConfig. This constant is available since wxWidgets 3.3.0.}
@itemdef{wxHAS_CONFIG_TEMPLATE_RW, Defined if the currently used compiler
supports template Read() and Write() methods in wxConfig.}
@itemdef{wxHAS_DEPRECATED_ATTR, Defined if C++14 @c [[deprecated]] attribute is
supported (this symbol only exists in wxWidgets 3.1.6 or later).}
@itemdef{wxHAS_DPI_INDEPENDENT_PIXELS, Defined if pixel coordinates on the
current platform scale with DPI, i.e. if the given length in pixels has the
same apparent size on the display independently of the DPI (this symbol
only exists in wxWidgets 3.1.6 or later). Note that it should rarely, if
ever, be necessary to use this symbol directly, functions such as
wxWindow::FromDIP() and wxBitmap::GetLogicalSize() exist to hide the
differences between the platforms with and without DPI-independent pixels.}
@itemdef{wxHAS_IMAGE_RESOURCES, Defined if wxICON() and wxBITMAP() macros use
images from (Windows) resources. Otherwise, these macros use XPMs.}
@itemdef{wxHAS_MEMBER_DEFAULT, Defined if the currently used compiler supports
C++11 @c =default.}
@itemdef{wxHAS_LARGE_FILES, Defined if wxFile supports files more than 4GB in
size (notice that you must include @c wx/filefn.h before testing for this
symbol).}
@itemdef{wxHAS_LARGE_FFILES, Defined if wxFFile supports files more than 4GB in
size (notice that you must include @c wx/filefn.h before testing for this
symbol).}
@itemdef{wxHAS_LONG_LONG_T_DIFFERENT_FROM_LONG, Defined if the <code>long
long</code> and <code>long</code> types are different. This can be useful
to decide whether some function should be overloaded for both types or not.}
@itemdef{wxHAS_MULTIPLE_FILEDLG_FILTERS, Defined if wxFileDialog supports multiple ('|'-separated) filters.}
@itemdef{wxHAS_NATIVE_ANIMATIONCTRL, Defined if native wxAnimationCtrl class is being used (this symbol only exists in wxWidgets 3.1.4 and later).}
@itemdef{wxHAS_NATIVE_DATAVIEWCTRL, Defined if native wxDataViewCtrl class is being used (this symbol only exists in wxWidgets 3.1.4 and later).}
@itemdef{wxHAS_NATIVE_WINDOW, Defined if wxNativeWindow class is available.}
@itemdef{wxHAS_NOEXCEPT, This symbol exists only for compatibility and is always defined now.}
@itemdef{wxHAS_NULLPTR_T, This symbol exists only for compatibility and is always defined now.}
@itemdef{wxHAS_IMAGE_RESOURCES, Defined if images can be embedded into the
program as resources, i.e. without being defined in the program text
itself. This is currently the case for MSW and Mac platforms. This constant
is available since wxWidgets 3.1.6.}
@itemdef{wxHAS_IMAGES_IN_RESOURCES, Defined if <a href="http://en.wikipedia.org/wiki/Resource_(Windows)">
Windows resource files</a> resource files are available on the current platform.
Usually wxHAS_IMAGE_RESOURCES should be used instead.}
@itemdef{wxHAS_POWER_EVENTS, Defined if wxPowerEvent are ever generated on the current platform.}
@itemdef{wxHAS_PREMULTIPLIED_ALPHA, Defined if wxBitmap stores raw pixel color
values premultiplied (scaled) by alpha. This is generally used to switch
whether to premultiply before storing pixels via wxAlphaPixelData converted
from a straight alpha source.}
@itemdef{wxHAS_RADIO_MENU_ITEMS,
Defined if the current port supports radio menu items (see wxMenu::AppendRadioItem).}
@itemdef{wxHAS_RAW_BITMAP, Defined if direct access to bitmap data using the classes in @c wx/rawbmp.h is supported.}
@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. This is always the case in wxWidgets 3.1.6 and later, so this
symbol doesn't need to be tested any more.}
@itemdef{wxHAS_SVG, Defined if SVG support (currently only via wxBitmapBundle::FromSVG()) is available.}
@itemdef{wxHAS_TASK_BAR_ICON, Defined if wxTaskBarIcon is available on the current platform.}
@itemdef{wxHAS_TEXTCTRL_RTF, Defined if wxTextCtrl::SetRTFValue() and
wxTextCtrl::GetRTFValue() can be used. This constant, as well as RTF
support itself, is available since wxWidgets 3.3.0.}
@itemdef{wxHAS_WINDOW_LABEL_IN_STATIC_BOX, Defined if wxStaticBox::Create()
overload taking @c wxWindow* instead of the text label is available on the current platform.}
@itemdef{wxHAS_MODE_T, Defined when wxWidgets defines @c mode_t typedef for the
compilers not providing it. If another library used in a wxWidgets
application, such as ACE (http://www.cs.wustl.edu/~schmidt/ACE.html), also
defines @c mode_t, this symbol can be predefined after including the other
library header, such as @c "ace/os_include/sys/os_types.h" in ACE case,
but before including any wxWidgets headers, to prevent a definition
conflict.}
@endDefList
@section page_cppconst_msvc_setup_h MSVC-specific Symbols
Microsoft Visual C++ users may use the special @c wx/setup.h file for this
compiler in @c include/msvc subdirectory. This file implicitly links in all the
wxWidgets libraries using MSVC-specific pragmas which usually is much more
convenient than manually specifying the libraries list in all of the project
configurations.
By default, the pragmas used in this file to actually link with wxWidgets
libraries suppose that the libraries are located in @c vc_lib or @c vc_dll
directory which is used by default. However when using multiple MSVC versions,
or when using the @ref plat_msw_binaries "official binaries", the libraries are
in a directory containing the compiler version number, e.g. @c vc140_dll. To
make linking work in this case, you must predefine @c wxMSVC_VERSION as @c
vc140 <em>before</em> include @c wx/setup.h file, i.e. typically in the MSVS
project options. Alternatively, you can predefine @c wxMSVC_VERSION_AUTO symbol
(without any value), which means that the appropriate compiler version should
be used automatically, e.g. "vc140" for MSVC 14.0 (MSVS 2015), "vc141" for MSVC
14.1 (MSVS 2017), "vc142" for MSVC 14.2 (MSVS 2019) and "vc143" for MSVC 14.3
(MSVS 2022).
Finally, there is also @c wxMSVC_VERSION_ABI_COMPAT symbol which can be
predefined to use the "vc14x" prefix ("x" is the literal letter "x" here and
not just a placeholder). This allows building the libraries with any of MSVC
14.x versions, that are ABI-compatible with each other, and using them when
using any later version.
If the makefiles have been used to build the libraries from source and the @c CFG
variable has been set to specify a different output path for that particular
configuration of build then the @c wxCFG preprocessor symbol should be set in
the project that uses wxWidgets to the same value as the @c CFG variable in
order for the correct @c wx/setup.h file to automatically be included for that
configuration.
@subsection page_cppconst_msvc_setup_h_no_libs Library Selection for MSVC
As explained above, MSVC users don't need to explicitly specify wxWidgets
libraries to link with, as this is done by @c wx/setup.h. However sometimes
linking with all the libraries, as is done by default, is not desirable, for
example because some of them were not built and this is where the symbols in
this section can be helpful: defining them allows to not link with the
corresponding library. The following symbols are honoured:
- wxNO_AUI_LIB
- wxNO_HTML_LIB
- wxNO_MEDIA_LIB
- wxNO_NET_LIB
- wxNO_PROPGRID_LIB
- wxNO_QA_LIB
- wxNO_RICHTEXT_LIB
- wxNO_WEBVIEW_LIB
- wxNO_XML_LIB
- wxNO_REGEX_LIB
- wxNO_EXPAT_LIB
- wxNO_JPEG_LIB
- wxNO_PNG_LIB
- wxNO_TIFF_LIB
- wxNO_WEBP_LIB
- wxNO_ZLIB_LIB
Notice that the base library is always included and the core is always included
for the GUI applications (i.e. those which don't define @c wxUSE_GUI as 0).
@section page_cppconst_compatibility Compatibility Macros
wxWidgets always tries to preserve source backwards compatibility, however
sometimes existing symbols may need to be removed. Except in exceedingly rare
cases, this happens in several steps: first, the symbol is marked as
deprecated, so that using it results in a warning when using the supported
compilers in some wxWidgets release @c x.y. It can still be used, however
the warnings indicate all the places in your code which will need to be updated
in the future. If your code doesn't use any deprecated symbols or you have already
fixed all their occurrences, you may change @c WXWIN_COMPATIBILITY_x_y to 0
to ensure they can't be used -- however its default value is still 1 at this time.
At some point in the future, the next stable wxWidgets release @c x.y+2 changes
the default @c WXWIN_COMPATIBILITY_x_y value to 0, meaning that now the symbol
becomes unavailable by default and if you still want to be able to compile the
code using it, you need to explicitly change @c WXWIN_COMPATIBILITY_x_y to 1
when building the library.
And, finally, the symbol is completely removed from the library in the next
stable version after this, i.e. @c x.y+4. @c WXWIN_COMPATIBILITY_x_y itself is
removed as well at this time, as it is not useful any longer.
According to this general rule, currently, i.e. in wxWidgets 3.4, the following
two symbols are defined: @c WXWIN_COMPATIBILITY_3_0, as 0, and @c
WXWIN_COMPATIBILITY_3_2, as 1. Please see @ref overview_backwardcompat for even
more details.
@beginDefList
@itemdef{WXWIN_COMPATIBILITY_3_0,
defined as 0 by default meaning that symbols existing in wxWidgets 3.0
but deprecated in 3.2 release are not available by default. It can be
changed to 1 to make them available, but it is strongly recommended to
update the code using them instead.}
@itemdef{WXWIN_COMPATIBILITY_3_2,
defined as 1 by default meaning that symbols existing in wxWidgets 3.2
but deprecated since then are still available. It can be changed to 0
to ensure that no deprecated symbols are used accidentally.}
@itemdef{wxDIALOG_UNIT_COMPATIBILITY,
wxMSW-specific setting which can be set to 1 to make
wxWindow::GetCharWidth() and wxWindow::GetCharHeight() more compatible
with old wxWidgets versions. Changing it is not recommended.}
@itemdef{wxUSE_UNSAFE_WXSTRING_CONV,
this option determines if unsafe implicit conversions of wxString to
@c char* or @c std::string (depending on whether
@c wxUSE_STD_STRING_CONV_IN_WXSTRING is 0 or 1) are defined.
It is set to 1 by default for compatibility reasons, but you may set
@c wxNO_UNSAFE_WXSTRING_CONV described below to disable these unsafe
unsafe conversions without rebuilding the library.}
@endDefList
@section page_cppconst_miscellaneous Miscellaneous
@beginDefList
@itemdef{\__WXWINDOWS__,
always defined in wxWidgets applications, see also wxCHECK_VERSION}
@itemdef{wxDEBUG_LEVEL, defined as 1 by default, may be pre-defined as 0 before
including wxWidgets headers to disable generation of any code at all
for the assertion macros, see @ref overview_debugging}
@itemdef{\__WXDEBUG__, defined if wxDEBUG_LEVEL is 1 or more, undefined otherwise}
@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 <tt>\#ifndef WX_PRECOMP</tt>, individual
headers you need.}
@itemdef{_UNICODE and UNICODE, are both always defined in current wxWidgets
versions.}
@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 @c 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 either.}
@itemdef{wxNO_UNSAFE_WXSTRING_CONV,
this symbol is not defined by wxWidgets itself, but can be defined by
the applications using the library to disable unsafe implicit
conversions in wxString class. This is especially useful when using
standard build of the library, e.g. installed by the system package
manager under Unix, which is compiled with @c wxUSE_UNSAFE_WXSTRING_CONV
set to 1 for compatibility reasons as @c -DwxNO_UNSAFE_WXSTRING_CONV
can be used only compiling the application code, without rebuilding the
library. Support for this option appeared in wxWidgets 3.1.1.}
@itemdef{wxNO_IMPLICIT_WXSTRING_ENCODING,
this symbol is not defined by wxWidgets itself, but can be defined by
the applications using the library to disable implicit
conversions from and to <tt>const char*</tt> without specifying its
encoding in wxString class. Note that this option is incompatible with
@c wxUSE_UTF8_LOCALE_ONLY, as all strings are implicitly assumed to use
UTF-8 then. Support for this option appeared in wxWidgets 3.1.4.}
@itemdef{wxNO_REQUIRE_LITERAL_MSGIDS,
this symbol is not defined by wxWidgets itself, but can be defined by
the applications using the library to allow variables as string arguments to
translation macros such as _() and wxPLURAL. The default since wxWidgets
3.3.0 is to allow only string literals.
Note that passing string variables as arguments to translation macros is
likely to be a bug, and does not produce the expected results. If you
feel you need to define this macro, you should first consider whether
your code is doing the right thing.}
@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}
@itemdef{wxICON_IS_BITMAP,
defined in the ports where wxIcon inherits from wxBitmap (all but
wxMSW currently)}
@itemdef{wxENABLE_EXTRA_WARNINGS,
this symbol can be predefined before including wxWidgets headers to
enable extra compilers warnings. This is mostly useful for wxWidgets
developers, but can also be used by the applications if they want to
opt in into getting more help from compiler. Support for this symbol
appeared in wxWidgets 3.3.0.}
@endDefList
*/

View File

@@ -0,0 +1,36 @@
/////////////////////////////////////////////////////////////////////////////
// Name: const_stdevtid.h
// Purpose: std event values enumerated
// Author: wxWidgets team
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
/**
@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 wxEvtHandler::Bind,
wxEvtHandler::Connect or the event table macros,
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 (e.g. by using @c wxID_ANY and retrieving the
control's id after it was created).
Refer to @ref page_stockitems "the list of stock items" for the subset of standard IDs
which are stock IDs as well.
*/

View File

@@ -0,0 +1,100 @@
/////////////////////////////////////////////////////////////////////////////
// Name: const_stockitems.h
// Purpose: stock item values enumerated
// Author: wxWidgets team
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
/**
@page page_stockitems Stock Items
The following is the list of the window IDs for which stock buttons and menu
items are created.
See the wxButton constructor and the wxMenuItem constructor for classes which
automatically add stock bitmaps when using stock IDs.
Also note that you can retrieve stock bitmaps using wxArtProvider.
@beginDefList
@row3col{<b>Stock ID</b>, <b>Stock label</b>, <b>GTK icon</b>}
@stock{wxID_ABOUT,&About,about}
@stock{wxID_ADD,Add,add}
@stock{wxID_APPLY,&Apply,apply}
@stock{wxID_BACKWARD,&Back,go-back-ltr}
@stock{wxID_BOLD,&Bold,bold}
@stock{wxID_BOTTOM,&Bottom,goto-bottom}
@stock{wxID_CANCEL,&Cancel,cancel}
@stock{wxID_CDROM,&CD-ROM,cdrom}
@stock{wxID_CLEAR,&Clear,clear}
@stock{wxID_CLOSE,&Close,close}
@stock{wxID_CONVERT,&Convert,convert}
@stock{wxID_COPY,&Copy,copy}
@stock{wxID_CUT,Cu&t,cut}
@stock{wxID_DELETE,&Delete,delete}
@stock{wxID_DOWN,&Down,go-down}
@stock{wxID_EDIT,&Edit,edit}
@stock{wxID_EXECUTE,&Execute,execute}
@stock{wxID_EXIT,&Quit,quit}
@stock{wxID_FILE,&File,file}
@stock{wxID_FIND,&Find...,find}
@stock{wxID_FIRST,&First,goto-first-ltr}
@stock{wxID_FLOPPY,&Floppy,floppy}
@stock{wxID_FORWARD,&Forward,go-forward-ltr}
@stock{wxID_HARDDISK,&Harddisk,harddisk}
@stock{wxID_HELP,&Help,help}
@stock{wxID_HOME,&Home,home}
@stock{wxID_INDENT,Indent,indent-ltr}
@stock{wxID_INDEX,&Index,index}
@stock{wxID_INFO,&Info,info}
@stock{wxID_ITALIC,&Italic,italic}
@stock{wxID_JUMP_TO,&Jump to,jump-to-ltr}
@stock{wxID_JUSTIFY_CENTER,Centered,justify-center}
@stock{wxID_JUSTIFY_FILL,Justified,justify-fill}
@stock{wxID_JUSTIFY_LEFT,Align Left,justify-left}
@stock{wxID_JUSTIFY_RIGHT,Align Right,justify-right}
@stock{wxID_LAST,&Last,goto-last-ltr}
@stock{wxID_NETWORK,&Network,network}
@stock{wxID_NEW,&New,new}
@stock{wxID_NO,&No,no}
@stock{wxID_OK,&OK,ok}
@stock{wxID_OPEN,&Open...,open}
@stock{wxID_PASTE,&Paste,paste}
@stock{wxID_PREFERENCES,&Preferences,preferences}
@stock{wxID_PREVIEW,Print previe&w,print-preview}
@stock{wxID_PRINT,&Print...,print}
@stock{wxID_PROPERTIES,&Properties,properties}
@stock{wxID_REDO,&Redo,redo-ltr}
@stock{wxID_REFRESH,Refresh,refresh}
@stock{wxID_REMOVE,Remove,remove}
@stock{wxID_REPLACE,Rep&lace...,find-and-replace}
@stock{wxID_REVERT_TO_SAVED,Revert to Saved,revert-to-saved-ltr}
@stock{wxID_SAVE,&Save,save}
@stock{wxID_SAVEAS,Save &As...,save-as}
@stock{wxID_SELECTALL,Select &All,select-all}
@stock{wxID_SELECT_COLOR,&Color,select-color}
@stock{wxID_SELECT_FONT,&Font,select-font}
@stock{wxID_SORT_ASCENDING,&Ascending,sort-ascending}
@stock{wxID_SORT_DESCENDING,&Descending,sort-descending}
@stock{wxID_SPELL_CHECK,&Spell Check,spell-check}
@stock{wxID_STOP,&Stop,stop}
@stock{wxID_STRIKETHROUGH,&Strikethrough,strikethrough}
@stock{wxID_TOP,&Top,goto-top}
@stock{wxID_UNDELETE,Undelete,undelete-ltr}
@stock{wxID_UNDERLINE,&Underline,underline}
@stock{wxID_UNDO,&Undo,undo-ltr}
@stock{wxID_UNINDENT,&Unindent,unindent-ltr}
@stock{wxID_UP,&Up,go-up}
@stock{wxID_YES,&Yes,yes}
@stock{wxID_ZOOM_100,&Actual Size,zoom-100}
@stock{wxID_ZOOM_FIT,Zoom to &Fit,zoom-fit}
@stock{wxID_ZOOM_IN,Zoom &In,zoom-in}
@stock{wxID_ZOOM_OUT,Zoom &Out,zoom-out}
@endDefList
Note that some of the IDs listed above also have a stock accelerator and an
associated help string.
*/

View File

@@ -0,0 +1,351 @@
/////////////////////////////////////////////////////////////////////////////
// Name: const_wxusedef.h
// Purpose: wxUSE preprocessor symbols
// Author: Tim Stahlhut
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
/**
@page page_wxusedef wxUSE Preprocessor Symbols
@tableofcontents
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 always be tested
using @if_ and not @ifdef_.
@section page_wxusedef_important Most Important Symbols
This table summarizes some of the global build features affecting the entire
library:
@beginDefList
@itemdef{wxUSE_STD_CONTAINERS, Container classes are implemented using
standard classes (while still providing some compatibility with legacy
wxWidgets container classes).}
@itemdef{wxUSE_UNICODE, Always defined as 1 in wxWidgets 3.3 and later, only
exists for compatibility.}
@itemdef{wxUSE_UNICODE_WCHAR, wxString uses wchar_t buffer for internal storage
(default).}
@itemdef{wxUSE_UNICODE_UTF8, wxString uses UTF-8 for internal storage (mostly
useful for wxGTK where UTF-8 is used by the underlying toolkit).}
@itemdef{wxUSE_UTF8_LOCALE_ONLY, Library supports 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_GUI, Use the GUI classes; if set to 0 only non-GUI classes are
available.}
@itemdef{wxUSE_UNSAFE_WXSTRING_CONV, Defined as 1 by default for compatibility,
but can be set to 0 to globally disable unsafe implicit conversions in
wxString class. See @ref string_conv for more details.}
@endDefList
@section page_wxusedef_multi Generic 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_ACTIVITYINDICATOR, Use wxActivityIndicator class.}
@itemdef{wxUSE_ANIMATIONCTRL, Use wxAnimationCtrl class.}
@itemdef{wxUSE_ARTPROVIDER_STD, Use standard low quality icons in wxArtProvider.}
@itemdef{wxUSE_ARTPROVIDER_TANGO, Use Tango icons in wxArtProvider.}
@itemdef{wxUSE_ANY, Use wxAny class.}
@itemdef{wxUSE_APPLE_IEEE, IEEE Extended to/from double routines, see wxDataOutputStream.}
@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_CREDENTIALDLG, If set to 0, disabled wxCredentialEntryDialog used by wxWebRequest.}
@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, Predefine as 0 to avoid using wxDbgHelpDLL and related classes.}
@itemdef{wxUSE_DC_TRANSFORM_MATRIX, Use wxDC::SetTransformMatrix() and related methods.}
@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_GENERIC_MDI_AS_NATIVE, This is not a user-settable symbol, it is only used internally in wx/generic/mdig.h.}
@itemdef{wxUSE_GEOMETRY, Use common geometry classes}
@itemdef{wxUSE_GIF, Use GIF wxImageHandler}
@itemdef{wxUSE_GLCANVAS, Enables OpenGL support.}
@itemdef{wxUSE_GRAPHICS_CONTEXT, Use wxGraphicsContext and related classes.}
@itemdef{wxUSE_GRID, Use wxGrid and related classes.}
@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_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_LIBLZMA, Enables LZMA compression support (see @ref page_build_liblzma).}
@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_MARKUP, Provide wxControl::SetLabelMarkup() method.}
@itemdef{wxUSE_MDI, Use wxMDIParentFrame, and wxMDIChildFrame}
@itemdef{wxUSE_MDI_ARCHITECTURE, Use MDI-based document-view classes.}
@itemdef{wxUSE_MEDIACTRL, Use wxMediaCtrl.}
@itemdef{wxUSE_MENUS, Use wxMenu and wxMenuItem.}
@itemdef{wxUSE_MENUBAR, Use wxMenubar.}
@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_NANOSVG, Use NanoSVG for rasterizing SVG (this option is new since wxWidgets 3.1.7).}
@itemdef{wxUSE_NANOSVG_EXTERNAL, Use an external NanoSVG library when wxUSE_NANOSVG is enabled.}
@itemdef{wxUSE_NANOSVG_EXTERNAL_ENABLE_IMPL, When the external NanoSVG library is header only, define this to enable its implementation.}
@itemdef{wxUSE_NATIVE_DATAVIEWCTRL, Use native wxDataViewCtrl class (this option is new since wxWidgets 3.1.4).}
@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_PRIVATE_FONTS, Implement wxFont::AddPrivateFont() method.}
@itemdef{wxUSE_PROGRESSDLG, Enables progress dialog classes.}
@itemdef{wxUSE_PROPGRID, Use wxPropertyGrid library.}
@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_REPRODUCIBLE_BUILD, Make library builds reproducible.}
@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_STDPATHS, Use wxStandardPaths class.}
@itemdef{wxUSE_STD_IOSTREAM, Use standard stream classes in addition to or, in wxDocument, instead of, wx streams.}
@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_TREELISTCTRL, Use wxTreeListCtrl class.}
@itemdef{wxUSE_TTM_WINDOWFROMPOINT, Obsolete, do not use.}
@itemdef{wxUSE_URL, Use wxURL class.}
@itemdef{wxUSE_URL_NATIVE, Use native support for some operations with wxURL.}
@itemdef{wxUSE_VALIDATORS, Use wxValidator class.}
@itemdef{wxUSE_VARIANT, Use wxVariant class.}
@itemdef{wxUSE_WEBREQUEST, Use wxWebRequest class.}
@itemdef{wxUSE_WEBVIEW, Use wxWebView 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 Unix Platform Symbols
@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.}
@itemdef{wxUSE_XTEST, Use XTest extension.}
@endDefList
@section page_wxusedef_x11 wxX11 Symbols
@beginDefList
@itemdef{wxUSE_NANOX, Use NanoX.}
@itemdef{wxUSE_UNIV_TEXTCTRL, Use wxUniv's implementation of wxTextCtrl class.}
@endDefList
@section page_wxusedef_gtk wxGTK Symbols
@beginDefList
@itemdef{wxUSE_DETECT_SM, Use code to detect X11 session manager.}
@itemdef{wxUSE_GTKPRINT, Use GTK+ printing support.}
@itemdef{wxUSE_LIBGNOMEVFS, Use GNOME VFS support. Currently has no effect. }
@endDefList
@section page_wxusedef_mac wxMac Symbols
@beginDefList
@itemdef{wxUSE_MAC_CRITICAL_REGION_MUTEX, See src/osx/carbon/thread.cpp file.}
@itemdef{wxUSE_MAC_PTHREADS_MUTEX, See src/osx/carbon/thread.cpp file.}
@itemdef{wxUSE_MAC_SEMAPHORE_MUTEX, See src/osx/carbon/thread.cpp file.}
@itemdef{wxUSE_WEBKIT, Use wxWebKitCtrl class.}
@endDefList
@section page_wxusedef_msw wxMSW Symbols
@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_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_DDE_FOR_IPC, See wx/ipc.h file.}
@itemdef{wxUSE_DPI_AWARE_MANIFEST, Set the DPI awareness of the application
(0=none, 1=system, 2=per-monitor). Used by CMake and when wxUSE_RC_MANIFEST is enabled.}
@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, Can be predefined to disable inclusion of the
manifest from wxWidgets RC file. See also wxUSE_RC_MANIFEST.}
@itemdef{wxUSE_OLE, Enables OLE helper routines.}
@itemdef{wxUSE_OLE_AUTOMATION, Enable OLE automation utilities.}
@itemdef{wxUSE_POSTSCRIPT_ARCHITECTURE_IN_MSW, Use PS printing in wxMSW.}
@itemdef{wxUSE_PS_PRINTING, See src/msw/dcprint.cpp file.}
@itemdef{wxUSE_RC_MANIFEST, Include manifest for common controls library v6
from wxWidgets RC file. This is disabled by default for MSVC but enabled for
the other compilers. See also wxUSE_NO_MANIFEST.}
@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_UXTHEME, Enable support for XP themes.}
@itemdef{wxUSE_WIN_METAFILES_ALWAYS, Use wxMetaFile even when wxUSE_ENH_METAFILE=1.}
@itemdef{wxUSE_WINRT, Enable WinRT support.}
@itemdef{wxUSE_WXDIB, Use wxDIB class.}
@itemdef{wxUSE_WINSOCK2, Include @c <winsock2.h> instead of @c <winsock.h>.
Turned on automatically if wxUSE_IPV6 is on (this option is new since
wxWidgets 3.1.3).}
@endDefList
@section page_wxusedef_univ wxUniversal Symbols
@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
*/

View File

@@ -0,0 +1,20 @@
/////////////////////////////////////////////////////////////////////////////
// Name: constants.h
// Purpose: Constants page of the Doxygen manual
// Author: wxWidgets team
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
/**
@page page_constants Constants
This chapter describes the constants defined by wxWidgets.
@li @subpage page_stdevtid
@li @subpage page_stockitems
@li @subpage page_cppconst
@li @subpage page_wxusedef
*/

View File

@@ -0,0 +1,210 @@
/////////////////////////////////////////////////////////////////////////////
// Name: copyright.h
// Purpose: Copyright and license page of the Doxygen manual
// Author: wxWidgets team
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
/**
@page page_copyright Copyrights and Licenses
@section section_copyright wxWidgets Copyrights and Licenses
Copyright (c) 1992-2025 Julian Smart, Vadim Zeitlin, Stefan Csomor, Robert
Roebling, and other members of the wxWidgets team, please see the
acknowledgements section below.
Portions (c) 1996 Artificial Intelligence Applications Institute
Please also see the wxWindows licence 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 licence, pending
recognition of the new name by OSI.
@li @subpage page_copyright_wxlicense
@li @subpage page_copyright_gnulicense
@li @subpage page_copyright_xserver
@section section_acknowledgements Acknowledgements
The following is the list of the current core, active developers of wxWidgets:
@li Vadim Zeitlin
@li Stefan Csomor
@li Paul Cornett
@li Maarten Bent
@li Artur Wieczorek
@li Robin Dunn
@li Vaclav Slavik
@li Tobias Taschner
@li Bryan Petty
We would also like to thank the following people for multiple significant
contributions to wxWidgets 3.2.0 release:
@li Cătălin Răceanu
@li Dimitri Schoolwerth
@li Ulrich Telle
@li Lauri Nurmi
@li PB
@li Scott Talbert
@li New Pagodi
@li AliKet
@li Ian McInerney
And, finally, here is the list, in alphabetical order, of all contributors to
wxWidgets 3.2.0 -- thank you for making this project possible!
Adolfo Jayme Barrientos, Adrian DC, Adrian Lopez, adrian5, Adrien Tétar,
Alexander Bisono, Alexander Koshelev, Alexander Kovalenko, Alexey Rassikhin,
Ali Asady, alilie, Andrea Zanellato, Andreas Falkenhahn, Andrew Radke, Andrius
Balsevičius, Andriy Byelikov, Andy Robinson, Anil Kumar, Anton Triest, Antti
Nietosvaara, approach, ARATA Mizuki, Armel Asselin, ArnaudD-FR, Arrigo
Marchiori, Arthur Norman, Artur Sochirca, ashishmore, atbara46, atobi,
bakcsizs, Bartek Warzocha, basos, Be, Ben Bronk, Benjamin Drung, Besnik Bleta,
Bill Forster, Bill Su, Biswapriyo Nath, Blake Eryx, Blake Madden, Blake-Madden,
Bogdan Iordanescu, brawer, Brian Clark, Bronek Kozicki, Bryan Petty, Burak
Koray, Carl Godkin, Carlos Azevedo, Catalin Raceanu, Chaobin, Zhang, Chilau He,
Chris Lemin, chris2oph, Christian, cnbatch, Corey Daley, cosminp, CPUBug,
Damien Ruscoe, Dan Gudmundsson, Dan Korn, Dan-Korn, Danail Stoychev, Daniel
Collins, Daniel Kulp, Danny Scott, dasimx, David Connet, David Costanzo, David
Hart, David Howland, David Roberts, David Vanderson, Deamhan, dghart, Dietmar
Schwertberger, DINAKAR T.D, Dominic Letz, Dominique Martinet, donovan6000, dsr,
Dummy, dvertx, Dévai Tamás, Eduard Ereza Martínez, Eran Ifrah, Eric Jensen,
Eric Raijmakers, Erik Sperling Johansen, Evileye, ExplorerLog, exprosic, Fabian
Cenedese, Felipe, ffa-benarmstrong, flederwiesel, followait, frederick-vs-ja,
Frode Roxrud Gill, Frédéric Bron, Fulvio Senore, fuscated, fx, gafatoa, Gary
Allen, Gavin Kinsey, Gavs64, georgp24, Ger Hobbelt, Gerhard Gruber, GH Cao,
Gian-Carlo Pascutto, Gideon van Melle, Gilbert Pelletier, Glen Fletcher, Graham
Dawes, Gunter Königsmann, Gustavo Grieco, Gérard Durand, Hallgeir Holien, Hans
Mackowiak, Hartwig Wiesmann, Hashir Ahmad, Hertatijanto Hartono, Him Prasad
Gautam, Hiroshi Takey F. (hiro2233), Hubert Talbot, Hugo Elias, hwiesmann, Ian
Langworth, Igor Ivanov, Igor Korot, IhateTrains, ikamakj, Ilya Bizyaev, Ilya
Ivanov, Ilya Sinitsin, Ilya Sinitsyn, imReker, Iwbnwif Yiw, JackBoosY, Jake
Nelson, James Pan, Jan Knepper, Jan Niklas Hasse, Jan van Dijk, Jay Nabonne,
jbbbms, Jeff Bland, Jeff Davidson, Jeff Hostetler, Jeinzi, Jens Göpfert,
jensgoe, Jevgenijs Protopopovs, jgehw, Jiawei Huang, Joao Matos, Johannes
Maibaum, John Gehrig, John Roberts, JohnKnow, jolz, Jonathan Dagresta, Jonathan
Li, jonkraber, Joonas Kuusela, Joost Nieuwenhuijse, Jorge Moraleda, Jose
Lorenzo, Josue Andrade Gomes, Jouk Jansen, jozef m, jtbattle, Juha Sointusalo,
jwiesemann, Karl Waclawek, Kasper, kathoum, Kaya Zeren, Kelvin Lee, Kenneth
Porter, Kevin B. McCarty, Kevin Ollivier, Kinaou Hervé, kkocdko, kkrev, Knut
Petter Lehre, Kolya Kosenko, Konstantin S. Matveyev, KT, Kumazuma, Kvaz1r,
laptabrok, Laurent Poujoulat, Leland Lucius, Liam Treacy, lucian-rotariu, Lynn
C. Rees, Manuel Garcia, Manuel Martin, Marc Jessome, Marc-Philip, Marco
DeFreitas, Marcos, Marek Roszko, Marek Temnyak, Mariano Reingart, marius,
Markus Juergens, Markus Pingel, Mart Raudsepp, Martin Ettl, Martin Koegler,
Martin Srebotnjak, Mathew Maidment, Matthew Griffin, Matthew Heinsen Egan, Max
Maisel, Mehmet Soyturk, mehmets, Metallicow, mgimenez, Micha Ahrweiler,
michael, Mick Phillips, Mick Waites, Miguel Gimenez, Mike Capone, mikek, Mikko
P, mill-j, milotype, mimi89999, mirh, Mitrik Sicilian, mj_smoker, mrX,
NancyLi1013, Naser Buhamad, Nathan Ridge, naveen, Nick Matthews, nick863,
nicolas-f, NikitaFeodonit, Nineis K, nns52k, novak, nowhere, Nusi,
oleksii.vorobiov, Oliver Kiddle, Oliver Smith, Olly Betts, ousnius, Owen
Wengerd, pan93412, Pascal Cuoq, Patriccollu, Paul Kulchenko, Pavel Kalugin,
Pavel Maryanov, Pavel O., Pavel Pimenov, Pavel Tyunin, Pedro Vicente, Pete
Bannister, Pete Stieber, Peter Most, Peter Tissen, PeterO, phallobst, Phil
Rosenberg, phowstan, Pierluigi Passaro, pk, PKEuS, Prashant Kumar Nirmal, Priit
Laes, Prince David, QuentinC, R.J.V. Bertin, Rafael Kitover, Randalphwa, Raul
Tambre, Razvan Macovei, Rebel_X, redtide, René J.V. Bertin, René Kijewski,
Richard Broker, Richard Fath, Richard Gibson, Richard Powell, Richard Reznicek,
Richard Smith, Rick Nelson, Rick S, rk, rlbxku1r, Rob Krakora, Rob McKay,
Roberto Boriotti, Roberto Perpuly, Roger Sanders, rom, Ronny Krüger, Rutger van
Eerd, Ryan Norton, Samuel Dunn, samurajj, Satya Das, sbesombes, scootergrisen,
Scott Furry, Scott Mansell, Sean D'Epagnier, Sebastian Dröge, Sebastian
Pipping, Sebastian Walderich, Serghei Amelian, Silent, Simon Richter, Simon
Rozman, Simon Stone, skruse, Stefan Brüns, Stefan Neis, Stefan Ziegler, Stefano
D. Mtangoo, Steffen Olszewski, Stepan Hrbek, Stephen Smith, Steve Browne,
Steven Lamerton, Suzumizaki-Kimitaka, Takeshi Abe, taler21, tamasmeszaros,
tellowkrinkle, Teodor Petrov, Thierry Bultel, Thomas Khyn, Thomas Klausner,
Thomas Krebs, Thomas Pointhuber, Tijs Vermeulen, Tim Kosse, Tim Roberts, Tim
Stahlhut, tm, TMTisFree, Tobias Fleischer, Tobias Hammer, Tobias Schlager,
Tomas Rapkauskas, Tomasz Słodkowicz, Tomay, tommash, Tristan, trivia21, Troels
Knakkergaard, Trylz, Umberto Carletti, utelle, Uwe Runtemund, Vitaly
Stakhovsky, Vojtech Kral, Vsevolod V Gromov, Wacek Gocki, Walter Cheuk,
wangpengli.qwerty, wangqr, wanup, wiz, Wolfgang Stöggl, wxBen, Xaviou, Xiaofeng
Wang, Xlord2, yenwu, Yuri Chornoivan, Yuri D'Elia, YuSanka, Zane U. Ji, zhivko,
zonkx, İsmail Dönmez.
Please contact us if your name was accidentally omitted from this list and
sorry in advance in this case.
@subsection subsection_acknowledgements_past Historic Contributors
The following people have kept the project going and provided an invaluable,
extensive and high-quality amount of changes over the many of years of
wxWidgets' life but are not actively involved in wxWidgets development any
longer:
@li Julian Smart
@li Robert Roebling
@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&auml;nnist&ouml;,
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&auml;, 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.
<em>
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.
</em>
@page page_copyright_wxlicense wxWindows Library Licence
@verbinclude "licence.txt"
@page page_copyright_gnulicense GNU Library General Public License
@verbinclude "lgpl.txt"
@page page_copyright_xserver The Open Group and DEC License
@verbinclude "xserver.txt"
*/

View File

@@ -0,0 +1,413 @@
/////////////////////////////////////////////////////////////////////////////
// Name: devtips.h
// Purpose: Cross-platform development page of the Doxygen manual
// Author: wxWidgets team
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
/**
@page page_multiplatform Cross-Platform Development Tips
@tableofcontents
This chapter describes some general tips related to cross-platform development.
@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 @b precompiled headers, you should include the
following section before any other includes:
@verbatim
// For compilers that support precompilation, includes "wx.h".
#include <wx/wxprec.h>
#ifndef WX_PRECOMP
// Include your minimal set of headers here, or wx.h
# include <wx/wx.h>
#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++) 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
All ports of wxWidgets can create either a @b static library or a @b shared
library.
When a program is linked against a @e static library, the machine code from the
object files for any external functions used by the program is copied from the
library into the final executable.
@e Shared libraries are handled with a more advanced form of linking, which
makes the executable file smaller. They use the extension @c ".so" (Shared
Object) under Linux and @c ".dll" (Dynamic Link Library) under Windows.
An executable file linked against a shared library contains only a small table
of the functions it requires, instead of the complete machine code from the
object files for the external functions. Before the executable file starts
running, the machine code for the external functions is copied into memory from
the shared library file on disk by the operating system - a process referred to
as @e dynamic linking.
Dynamic linking makes executable files smaller and saves disk space, because
one copy of a library can be shared between multiple programs. Most operating
systems also provide a virtual memory mechanism which allows one copy of a
shared library in physical memory to be used by all running programs, saving
memory as well as disk space.
Furthermore, shared libraries make it possible to update a library without
recompiling the programs which use it (provided the interface to the library
does not change).
wxWidgets can also be built in @b multilib and @b monolithic variants. See the
@ref page_libs 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 @c msw, @c gtk, @c 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
@c "setup.h" file and @c "install.txt" files for details on configuration.
When using the @c "configure" script to configure wxWidgets (on Unix and other
platforms where configure is available), the corresponding @c "setup.h" files
are generated automatically along with suitable makefiles.
When using the RPM packages (or DEB or other forms of @e binaries) for
installing wxWidgets on Linux, a correct @c "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 @c 'make' tool is slightly different. Popular
Windows compilers that we cater for, and the corresponding makefile extensions,
include: Microsoft Visual C++ (.vc) and MinGW/Cygwin (.gcc). Makefiles are
provided for the wxWidgets library itself, samples, demos, and utilities.
On Linux and macOS, you use the @c '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 @c "build/msw" directory which contains the relevant
makefiles.
On Windows using MinGW/Cygwin, and on Unix and macOS, 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
@c "docs/xxx/install.txt" in your distribution, where @c "xxx" is the platform
of interest, such as @c msw, @c gtk, @c x11, @c mac.
All wxWidgets makefiles are generated using Bakefile <https://www.bakefile.org/>.
wxWidgets also provides (in the @c "build/bakefiles/wxpresets" folder) the
wxWidgets bakefile presets. These files allow you to create bakefiles for your
own wxWidgets-based applications very easily.
@section page_multiplatform_winresources Windows Resource Files
wxWidgets application compilation under MS Windows requires at least one extra
file: a 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
Microsoft 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.
In general wxWindow-derived objects should always be allocated on the heap
as wxWidgets will destroy them itself. The only, but important, exception to
this rule are the modal dialogs, i.e. wxDialog objects which are shown using
wxDialog::ShowModal() method. They may be allocated on the stack and, indeed,
usually are local variables to ensure that they are destroyed on scope exit as
wxWidgets does not destroy them unlike with all the other windows. So while it
is still possible to allocate modal dialogs on the heap, you should still
destroy or delete them explicitly in this case instead of relying on wxWidgets
doing it.
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 group_funcmacro_byteorder 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 page_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 Runtime Type Information (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_precompiledheaders Precompiled Headers
Some compilers, such as 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 group_funcmacro_file section of the reference manual for the
description of miscellaneous file handling functions.
@section page_multiplatform_reducingerr Reducing Programming Errors
@subsection page_multiplatform_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_multiplatform_reducingerr_usewxstring Use wxString in Preference to Character Arrays
Using wxString can be much safer and more convenient than using @c 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_multiplatform_gui GUI Design
@li <b>Use Sizers:</b> Don't use absolute panel item positioning if you can
avoid it. Every platform's native controls have very different sizes.
Consider using the @ref overview_sizer instead.
@li <b>Use wxWidgets Resource Files:</b> Use @c XRC (wxWidgets resource files)
where possible, because they can be easily changed independently of source
code. See the @ref overview_xrc for more info.
@section page_multiplatform_debug Debugging
@subsection page_multiplatform_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_multiplatform_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_multiplatform_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_multiplatform_debug_uselogging Use Logging Functions
There is a variety of logging functions that you can use in your program: see
@ref group_funcmacro_log.
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_multiplatform_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 group_funcmacro_debug as part of a "defensive
programming" strategy, scattering wxASSERT()s 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 overview_debugging for further information.
*/

View File

@@ -0,0 +1,129 @@
/////////////////////////////////////////////////////////////////////////////
// Name: introduction.h
// Purpose: Introduction page of the Doxygen manual
// Author: wxWidgets team
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
/**
@page page_introduction Introduction
@tableofcontents
@section page_introduction_whatis What is wxWidgets?
wxWidgets is an open source C++ framework allowing to write cross-platform
GUI applications with native look and feel in C++ and other languages.
wxWidgets was originally developed by Julian Smart at the Artificial
Intelligence Applications Institute, University of Edinburgh, for internal use,
and was first made publicly available in 1992, with a vastly improved version 2
released in 1999. The last major version of the library is 3 and was released
in 2013. Currently wxWidgets is developed and maintained by Julian Smart, Vadim
Zeitlin, Stefan Csomor, Robert Roebling, Vaclav Slavik and many others.
More information about wxWidgets is available on its web site at
https://www.wxwidgets.org.
@section page_introduction_why Why choose wxWidgets?
Compared to the other similar libraries, wxWidgets is:
1. The only C++ GUI library built by wrapping native GUI widgets which results
in the best user experience on each platform.
2. Written using only the standard C++ and doesn't rely on any custom
extensions or preprocessing.
3. Open source and free for use in both open source and commercial projects.
wxWidgets provides a simple, easy to learn, yet very rich API, while also
proposing a simple way to define application UI in the external XML files.
It is also mature and stable, and the applications written using wxWidgets 2.0
pre-releases almost 20 years ago can still be built today with wxWidgets 3
almost unchanged. wxWidgets has a large, active and friendly community of
people, including both the users and developers of the library. It is also
available now for more than a dozen other languages, including Python, Perl,
Ruby, Lua, Haskell, D, Erlang, PHP, in addition to C++.
It is impossible to sum up everything included in wxWidgets in a few
paragraphs, but here are some of the benefits:
@li Available on all major desktop platforms.
@li Free for any use.
@li Source is available and easy to read and modify if necessary.
@li Over 100 example programs.
@li Extensive documentation (almost 200,000 lines of it).
@li Straightforward API.
@li Simple but powerful layout system.
@li Run-time loadable or compile-time embeddable resources for UI definition.
@li Flexible event system.
@li All the usual and quite a few of more rare GUI controls.
@li And also all the standard dialogs.
@li 2D path-based drawing API with full support for transparency.
@li Built-in support for many file formats (BMP, PNG, JPEG, GIF, XPM, PNM, PCX, TGA, ...).
@li Printing, help, clipboard, drag-and-drop, document/view, ... support.
@li Integration with the native platform HTML rendering engine.
@li Dockable windows framework.
@li Word processor-like widget.
@li Powerful text editing widget with syntax highlighting.
@li And much, much more...
@section page_introduction_requirements wxWidgets Requirements
wxWidgets first-tier "ports", ie implementations of wxWidgets API, are:
@li wxMSW: This is the native port for Microsoft Windows systems (from Windows
7 up to Windows 11), either 32 or 64 bits. The primarily supported compilers
are Microsoft Visual C++ (versions 2015 up to 2022 are supported) and GNU g++
(either MinGW-w64 or TDM-GCC).
@li wxGTK: wxGTK2 and wxGTK3 are the ports using GTK+ library version 2.x and
3.x respectively. They are very similar, with wxGTK2 being, however, more
mature. Both ports work on almost any Unix system (Linux, FreeBSD, OpenBSD,
NetBSD, Solaris, AIX, ...) and require GTK+ 2.6 or later or GTK+ 3.x. The
primary supported compiler is GNU g++.
@li wxOSX/Cocoa: This is the native port for Apple computers. wxOSX/Cocoa
supports 32 or 64 bit Intel Macs running macOS 10.10 or later. The port can
currently be only built using Apple clang.
Other platforms (e.g. iOS - with a minimum requirement of iOS 13), compilers
(Sun CC, HP-UX aCC, IBM xlC or SGI mipsPro under Unix) and ports (wxQT, wxGTK1,
wxX11, wxDFB...) are also supported but to a lesser extent.
Please see the @subpage page_port "platform details page" for more information.
There are no CPU speed requirements but the faster (and more) CPU(s) you have,
the faster the library will compile. You do need to have enough RAM, especially
under Windows platforms, to avoid running out of memory during link phase.
Depending on the compiler used, you may need at least 4GB to be able to link.
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 at least 1GB and possibly more is required.
@section page_introduction_where Where to get wxWidgets and support for it
The download links can be found at https://www.wxwidgets.org/downloads/.
Additionally, the latest version can always be retrieved from our version
control system using Git (https://github.com/wxWidgets/wxWidgets).
The latest version of wxWidgets documentation that you are reading is available
online at https://docs.wxwidgets.org/trunk/ and please also see
https://wiki.wxwidgets.org/ for user-contributed contents.
And if you have any questions, you can join wxWidgets community using
- Web-based <a href="https://forums.wxwidgets.org/">wxForum</a>
- <a href="https://www.wxwidgets.org/support/mailing-lists/">Mailing lists</a>
- <a href="https://www.wxwidgets.org/support/irc/">IRC Channel</a>
- Or asking questions with @c wxwidgets tag on Stack Overflow:
https://stackoverflow.com/questions/tagged/wxwidgets
*/

View File

@@ -0,0 +1,146 @@
/////////////////////////////////////////////////////////////////////////////
// Name: liblzma.h
// Purpose: Documentation of the use of liblzma with wxWidgets
// Author: Vadim Zeitlin <vadim@wxwidgets.org>
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
/**
@page page_build_liblzma Using LZMA compression with liblzma
To use wxLZMAInputStream and wxLZMAOutputStream classes, a public domain
liblzma library is required when building wxWidgets. This guide explains how to
make liblzma available and let wxWidgets build system use it. The exact steps
depend on the operating system and compiler used, please refer to the
section appropriate for your environment below.
@section page_build_liblzma_unix Unix-like operating system (including Cygwin)
Under many Unix or Unix-like (including Cygwin) systems, liblzma is available
as a system package and the simplest thing to do is to just install it using
the system-specific tool (apt, yum, ...). Just note that you need to install
the liblzma-dev or liblzma-devel package in order to obtain the library headers
and not just the library itself.
If your system doesn't provide such package or you need to use a newer version
than is available in the system repositories, it is also simple to build
liblzma from sources: basically, just download the library sources from
https://tukaani.org/xz/ or clone its repository and perform the usual
@code
$ ./configure
$ make
$ make install
@endcode
commands sequence.
@subsection page_build_liblzma_configure Use liblzma with configure
Pass @c --with-liblzma option to configure to enable liblzma and check the end
of configure output to confirm that it was found. If this is not the case
because the library was installed in some non-default location, you need to
provide @c CPPFLAGS and @c LDFLAGS on configure command line, e.g.:
@code
$ ../configure --with-liblzma CPPFLAGS=-I/opt/liblzma/include LDFLAGS=-L/opt/liblzma/lib
@endcode
@subsection page_build_liblzma_cmake Use liblzma with CMake
When using CMake, add @c -DwxUSE_LIBLZMA=ON to CMake command line to enable
using liblzma.
@section page_build_liblzma_msw MSW not using configure
When not using configure, you must edit @c wx/msw/setup.h file and change the
value of @c wxUSE_LIBLZMA option to @c 1 manually in order to enable LZMA
support, which is disabled by default.
Next, you need to actually ensure that the library is available to be able to
build wxWidgets:
@subsection page_build_liblzma_msw_vcpkg MSW using MSVS 2015 with Vcpkg
If you build wxWidgets with Microsoft Visual Studio 2015.3 or later, you can
use Microsoft vcpkg tool (see https://github.com/Microsoft/vcpkg) to install
liblzma as any other library and integrate it with Microsoft Visual Studio
automatically. Please see vcpkg documentation for details, but, basically, it's
as simple as executing the following commands:
@code
> git clone https://github.com/Microsoft/vcpkg.git
> cd vcpkg
> .\bootstrap-vcpkg.bat
> .\vcpkg integrate install
> .\vcpkg install liblzma
> .\vcpkg install liblzma:x64-windows
@endcode
Afterwards, liblzma headers and libraries (in DLL form) will be available to
all C++ Visual Studio projects, including wxWidgets, so you just need to build
it as usual, i.e. by opening @c build/msw/wx_vcXX.sln file and building it.
@section page_build_liblzma_msw_manual MSW manual setup
First of all, you need to either build or download liblzma binaries. Building
the library from source with gcc requires configure, and as you don't use an
environment capable of running it (if you're, you're reading the wrong section
of this guide, please go to the first one instead), it might be simpler to just
download the binaries from https://tukaani.org/xz/
However these binaries don't provide import libraries for MSVC, so you may
prefer building from source when using this compiler, provided it is at least
2013.2 or later (otherwise, you must use the binaries and create the import
library from the DLL). To do it, simply open the MSVS solution provided under
@c windows directory of the source archive corresponding to your compiler
version and build all the relevant configurations. Notice that you may build it
as either a static or a dynamic library, but if you choose the former, you must
also predefine @c LZMA_API_STATIC when building wxWidgets.
Second, you need to let wxWidgets build system know about the liblzma headers
and libraries location. When using makefiles, with either gcc or MSVC compiler,
this can be done simply by specifying @c CPPFLAGS and @c LDFLAGS on make
command line, e.g.
@code
> make -f makefile.gcc CPPFLAGS=-Ic:/dev/include LDFLAGS=-Lc:/dev/lib
@endcode
If you built liblzma as a static library, change @c CPPFLAGS to also include @c
-DLZMA_API_STATIC.
When building wxWidgets with MSVC project files, you must update them to use
liblzma. For this, start by copying build\\msw\\wx_setup.props file to
build\\msw\\wx_local.props, if you don't have the latter file yet. Then open
this file in your favourite editor and locate the @c Link tag inside an @c
ItemDefinitionGroup tag and add a new @c AdditionalIncludeDirectories line
inside the @c ClCompile tag as well as add @c liblzma.lib to the @c
AdditionalDependencies tag under @c Link itself. The result should look like
the following, assuming liblzma sources are in c:\\src\\liblzma:
@code{.unparsed}
<ItemDefinitionGroup>
<ClCompile>
... any existing lines here ...
<AdditionalIncludeDirectories>c:\src\liblzma\src\liblzma\api;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<!--
Uncomment this line if, and only if, you link with liblzma statically.
<PreprocessorDefinitions>LZMA_API_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-->
</ClCompile>
<Link>
<AdditionalDependencies>... all the previously listed libraries;c:\src\liblzma\windows\vs2017\$(Configuration)\$(Platform)\liblzma_dll\liblzma.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
@endcode
Afterwards, build wxWidgets as usual and don't forget to provide @c liblzma.dll
when distributing your application unless you have decided to link it
statically.
*/

View File

@@ -0,0 +1,198 @@
/////////////////////////////////////////////////////////////////////////////
// Name: libs.h
// Purpose: Libraries page of the Doxygen manual
// Author: wxWidgets team
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
/**
@page page_libs Library List
@tableofcontents
wxWidgets can be built either as a single large library (this is called a
<em>monolithic build</em>) or as several smaller libraries
(<em>multilib build</em>). Multilib build is the default.
wxWidgets library is divided into libraries briefly described below. This
diagram shows the dependencies between them:
@dot
digraph Dependencies
{
node [shape = ellipse, fontname = "Courier", fontsize = 10, style = filled];
wxBase [URL = "\ref page_libs_wxbase"];
wxCore [fillcolor = deepskyblue, URL = "\ref page_libs_wxcore"];
wxNet [fillcolor = deepskyblue, URL = "\ref page_libs_wxnet"];
wxXML [fillcolor = deepskyblue, URL = "\ref page_libs_wxxml"];
wxAUI [fillcolor = green, URL = "\ref page_libs_wxaui"];
wxGL [fillcolor = green, URL = "\ref page_libs_wxgl"];
wxHTML [fillcolor = green, URL = "\ref page_libs_wxhtml"];
wxMedia [fillcolor = green, URL = "\ref page_libs_wxmedia"];
wxPropertyGrid [fillcolor = green, URL = "\ref page_libs_wxpropgrid"];
wxQA [fillcolor = green, URL = "\ref page_libs_wxqa"];
wxRibbon [fillcolor = green, URL = "\ref page_libs_wxribbon"];
wxRichText [fillcolor = green, URL = "\ref page_libs_wxrichtext"];
wxSTC [fillcolor = green, URL = "\ref page_libs_wxstc"];
wxXRC [fillcolor = green, URL = "\ref page_libs_wxxrc"];
wxWebView [fillcolor = green, URL = "\ref page_libs_wxwebview"];
wxCore -> wxBase;
wxNet -> wxBase;
wxXML -> wxBase;
wxAUI -> wxCore;
wxGL -> wxCore;
wxHTML -> wxCore;
wxMedia -> wxCore;
wxPropertyGrid -> wxCore;
wxQA -> wxCore; wxQA -> wxXML;
wxRibbon -> wxCore;
wxRichText -> wxCore; wxRichText -> wxHTML; wxRichText -> wxXML;
wxSTC -> wxCore;
wxXRC -> wxCore; wxXRC -> wxHTML; wxXRC -> wxXML;
wxWebView -> wxCore;
}
@enddot
Please note that arrows indicate the "depends from" relation and that all blue
libraries depend on the @ref page_libs_wxbase library (i.e. they are non-GUI
libraries), and all green libraries depend on the @ref page_libs_wxcore library
(i.e. they are GUI libraries).
@note Until wxWidgets 3.1.2 some core GUI classes were in a separate wxAdvanced
library, but this library was merged into wxCore and, while it's still
preserved as an empty library for compatibility, should be never used any
longer and will disappear completely in the future.
@section page_libs_wxaui wxAui
This contains the Advanced User Interface docking library.
Requires @ref page_libs_wxcore, @ref page_libs_wxbase.
@section page_libs_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. 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_libs_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 page_libs_wxbase.
@section page_libs_wxgl wxGL
This library contains wxGLCanvas class for integrating OpenGL library with
wxWidgets. Unlike all others, this library is @b not part of the monolithic
library, it is always built as separate library.
Requires @ref page_libs_wxcore and @ref page_libs_wxbase.
@section page_libs_wxhtml wxHTML
Simple HTML renderer and other @ref overview_html are contained in this
library, as well as wxHtmlHelpController, wxBestHelpController and
wxHtmlListBox.
Requires @ref page_libs_wxcore and @ref page_libs_wxbase.
@section page_libs_wxmedia wxMedia
Miscellaneous classes related to multimedia. Currently this library only
contains wxMediaCtrl but more classes will be added in the future.
Requires @ref page_libs_wxcore and @ref page_libs_wxbase.
@section page_libs_wxnet wxNet
Classes for network access:
@li wxWebRequest
@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 page_libs_wxbase.
@section page_libs_wxpropgrid wxPropertyGrid
This contains the wxPropertyGrid control.
Requires @ref page_libs_wxcore, @ref page_libs_wxbase.
@section page_libs_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 page_libs_wxxml, @ref page_libs_wxcore, @ref page_libs_wxbase.
@section page_libs_wxribbon wxRibbon
This contains the Ribbon User Interface components library.
Requires @ref page_libs_wxcore, @ref page_libs_wxbase.
@section page_libs_wxrichtext wxRichText
This contains generic rich text control functionality.
Requires @ref page_libs_wxhtml, @ref page_libs_wxxml,
@ref page_libs_wxcore, @ref page_libs_wxbase.
@section page_libs_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 page_libs_wxcore, @ref page_libs_wxbase.
@section page_libs_wxwebview wxWebView
The wxWebView library contains the wxWebView control and its associated classes.
Requires @ref page_libs_wxcore, @ref page_libs_wxbase.
@section page_libs_wxxml wxXML
This library contains simple classes for parsing XML documents.
Requires @ref page_libs_wxbase.
@section page_libs_wxxrc wxXRC
This library contains wxXmlResource class that provides access to XML resource
files in XRC format.
Requires @ref page_libs_wxhtml, @ref page_libs_wxxml,
@ref page_libs_wxcore, @ref page_libs_wxbase.
*/

View File

@@ -0,0 +1,68 @@
/////////////////////////////////////////////////////////////////////////////
// Name: libwebp.h
// Purpose: Documentation of the use of libwebp with wxWidgets
// Author: Hermann Höhne <hoehermann@gmx.de>
// Created: 2024-03-08
// Copyright: (c) Hermann Höhne
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
/**
@page page_build_libwebp wxImage support for the WebP image format with libwebp
To make use of the wxWEBPHandler, libwebp library is required when building wxWidgets.
libwebp is available under a BSD license.
This guide explains how to obtain libwebp and let wxWidgets build system use it.
The exact steps depend on the operating system and compiler used, please refer to the
section appropriate for your environment below.
@section page_build_libwebp_unix Unix-like operating system
Under many Unix or Unix-like systems, libwebp is available as a system package
and the simplest thing to do is to just install it using the system-specific tool
(apt, pacman, ...). Just note that you may need to install the libwebp-dev
package in order to obtain the library headers and not just the library itself.
Building libwebp from source is not part of this guide.
@subsection page_build_libwebp_configure Use libwebp with configure
Provided, @c pkg-config is available and the appropriate files are in the default
locations, @c ./configure will automatically detect the availability of libwebp.
@subsection page_build_libwebp_cmake Use libwebp with CMake
When using CMake, the built-in libwebp is enabled by default. To use the system version,
add @c -DwxUSE_LIBWEBP=sys to the commandline or change it in the GUI.
Use @c -DwxUSE_LIBWEBP=OFF to disable libwebp.
Note: At time of writing, the @c WebPConfig.cmake file supplied by libwebp
is affected by a <a href="https://chromium-review.googlesource.com/c/webm/libwebp/+/4868215">bug</a>.
You may need to add the line <tt>set(WebP_INCLUDE_DIRS ${WebP_INCLUDE_DIR})</tt>
locally.
@subsection page_build_libwebp_msw_vcpkg_msvc MSW with vcpkg and MSVC
You can use Microsoft vcpkg tool (see https://github.com/Microsoft/vcpkg) to
build and install libwebp:
@code
> git clone https://github.com/Microsoft/vcpkg.git
> .\vcpkg\bootstrap-vcpkg.bat
> .\vcpkg\vcpkg.exe install libwebp:x64-windows-static
@endcode
You can then proceed to configure wxWidgets with CMake for building with MSVC,
see @ref page_build_libwebp_cmake.
Dynamic builds have not been tested. x86 builds have not been tested.
@subsection page_build_libwebp_msw_vcpkg_clang MSW with vcpkg and clang
Refer to @ref page_build_libwebp_msw_vcpkg_msvc, but select @c x64-mingw-static
instead of @c x64-windows-static . Then proceed as documented in
@ref page_build_libwebp_cmake or @ref page_build_libwebp_configure . CMake can work
as well as configure since vcpkg provides libwebp with support for both systems.
*/

View File

@@ -0,0 +1,56 @@
/////////////////////////////////////////////////////////////////////////////
// Name: main.h
// Purpose: Main page of the Doxygen manual
// Author: wxWidgets team
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
/**
@mainpage Documentation
@image html main_wxlogo.png
@author Julian Smart, Vadim Zeitlin, Robin Dunn, Stefan Csomor,
Bryan Petty, Francesco Montorsi, Robert Roebling et al
@date July 21, 2025
Welcome to wxWidgets, a stable and powerful open source framework for
developing native cross-platform GUI applications in C++!
If you are new to wxWidgets, please start with the @ref page_introduction
and follow with the @ref page_topics, with maybe a look at @ref page_samples as
you go. Installation instructions for various platforms are available from the
@ref page_port page.
If you are already familiar with wxWidgets and are upgrading from an older
release, please read about @ref overview_changes_since28 "the changes" in the
latest version compared to 2.8 series. And you can also follow the links in the
reference section or jump directly to the
<a href="classes.html">alphabetical list of classes</a> to find out more about
the topic you are interested in.
@section manual_user User Manual
@li @subpage page_introduction
@li @subpage page_topics
@li @subpage page_libs
@li @subpage page_class_cat
@li @subpage overview_changes_since28
@section manual_reference Reference
@li @subpage group_class
@li @subpage group_funcmacro
@li @subpage page_constants
@section manual_misc Other Information
@li @subpage page_samples
@li @subpage page_utils
@li @subpage page_translations
@li @subpage page_multiplatform
@li @subpage page_copyright
*/

View File

@@ -0,0 +1,138 @@
/////////////////////////////////////////////////////////////////////////////
// Name: platdetails.h
// Purpose: Platform details page of the Doxygen manual
// Author: wxWidgets team
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
/**
@page page_port Platform Details
@tableofcontents
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.
@section page_port_wxgtk wxGTK
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.
You will need GTK 2.6 or higher which is available from:
https://www.gtk.org
The newer version of GTK you use, the more native widgets and features will be
utilized. We have gone to great lengths to allow compiling wxWidgets
applications with the latest version of GTK, with the resulting binary working
on systems even with a much earlier 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 to use the
@c \--with-gtk argument to the @c configure script. This is the default for many
systems.
GTK 3 is the default starting with wxWidgets 3.1.4.
Use @c configure option @c \--with-gtk=2 to use GTK 2.
@subpage plat_gtk_install "Build and Install Instructions"
@section page_port_wxosx wxOSX/Cocoa
wxOSX/Cocoa is the port of wxWidgets for the macOS platform. It requires
a minimum SDK 10.11, Xcode 7.2.1 or greater (runs under 10.10.5 and higher),
and supports x86_64 (but not i386) and ARM builds and deploying under 10.10.
Note that Apple clang must be used to build wxOSX, due to the use of
Apple-specific extensions ("blocks") in the macOS SDK headers, and hence the
applications using it must be built using clang as well.
@subpage plat_osx_install "Build and Install Instructions"
@section page_port_wxx11 wxX11
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.
In order to configure wxWidgets to compile wxX11 you will need to type:
@verbatim configure --with-x11 --with-universal @endverbatim
@subpage plat_x11_install "Build Instructions"
@section page_port_wxmsw wxMSW
wxMSW is a port of wxWidgets for the Windows platforms (current version
requires Windows 7 or later). wxMSW provides native look and feel for each Windows version.
This port can be compiled with several compilers including Microsoft
VC++ 2015 or later, MinGW, Cygwin as well as cross-compilation with a
Linux-hosted MinGW tool chain.
@subpage plat_msw_install "Build and Install Instructions"
@subpage plat_msw_binaries "Using pre-built binaries"
@subsection page_port_wxmsw_resources Resources and Application Icon
All applications using wxMSW should have a Windows resource file (@c .rc
extension) and this file should include @c include/wx/msw/wx.rc file which
defines resources used by wxWidgets itself.
Among other things, @c wx.rc defines some standard icons, all of which have
names starting with the "wx" prefix. This normally ensures that any icons
defined in the application's own resource file come before them in alphabetical
order which is important because Explorer (Windows shell) selects the first
icon in alphabetical order to use as the application icon which is displayed
when viewing its file in the file manager. So if all the icons defined in your
application start with "x", "y" or "z", they won't be used by Explorer. To
avoid this, ensure that the icon which is meant to be used as the main
application icon has a name preceding "wxICON" in alphabetical order.
@section page_port_wxQt wxQt
wxQt is a port of wxWidgets using Qt libraries. It requires Qt 5 or later.
@subpage plat_qt_install "Build Instructions"
@subpage plat_qt_architecture "Architecture Overview"
@section page_port_wxiOS wxiOS
wxiOS is a port of wxWidgets using Cocoa touch libraries for iOS. It is very
basic in it current form, but is included for further improvements and very
simple applications. It requires iOS 9 or later and fully supports 64 bit builds.
@subpage plat_ios_install "Build Instructions"
@section page_port_nativedocs Native Toolkit Documentation
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:
- wxMSW port uses Win32 API: see MSDN docs at https://docs.microsoft.com/en-us/windows/win32/controls/window-controls
- wxGTK port uses GTK and other lower-level libraries; see https://docs.gtk.org/
- wxOSX port uses the Cocoa API: see Cocoa docs at https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/CocoaFundamentals/WhatIsCocoa/WhatIsCocoa.html
*/

View File

@@ -0,0 +1,997 @@
/////////////////////////////////////////////////////////////////////////////
// Name: samples.h
// Purpose: Samples page of the Doxygen manual
// Author: wxWidgets team
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
/**
@page page_samples Samples Overview
@tableofcontents
Arguably the best way to learn wxWidgets is by reading the sources of many samples,
or examples, provided with it. Many aspects of wxWidgets programming can be learned
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.
Notice that all wxWidgets samples mentioned here can be found in @c samples
subdirectory of the library distribution. When a @c foobar sample is mentioned
below, its sources can be found in @c samples/foobar directory of your
wxWidgets tree. If you installed wxWidgets from a binary package, you might not
have this directory. In this case, you may view the samples online at
https://github.com/wxWidgets/wxWidgets/tree/master/samples/ but you need to
download the source distribution in order to be able to build them (highly
recommended).
@section page_samples_building Building and running the samples
Although reading the samples code can be very useful, it may not be sufficient
and often it is even more useful to experiment by making a small change to a
sample and checking how it works when running the sample.
Before being able to run them, you need to be able build the sample you're
interested in. The way to do it depends on the way you built wxWidgets itself
(see @ref overview_install for more details):
- Under Microsoft Windows (MSW):
- If you're using Microsoft Visual C++ compiler (MSVC), open the provided
`samples/samples_vc17.sln` project (which uses MSVS 2022, solution files
for MSVS 2019, 2017 and 2015 are also available in the same directory) and
build the sample you are interested in using the context menu in the
Solution Explorer.
- If you're using MinGW, use @c makefile.gcc in the sample directory in a
similar way. Note that if you use MSYS2 or another Unix-like environment
for building, you should use the Unix instructions below instead.
- Under Unix systems (including macOS):
- If you installed wxWidgets from your distribution binaries, you can use
@c makefile.unx in the sample directory to build it using the version of
wxWidgets already installed on your system. Use <code>make -f
makefile.unx</code> in the sample directory to build it.
- If you built wxWidgets from source using configure, you may use @c
Makefile in the directory with the same name as the sample directory, but
under the @em build directory, i.e. the one where you ran configure, and
@em not under the source directory. Just run @c make to build the sample in
the build directory subdirectory, e.g. @c ~/build/wx/samples/minimal. You
can also build all the samples at once by doing <code>make samples</code>,
but be warned that this might take some time on older and slower machines.
@section page_samples_overview Overview of the available samples
There are currently almost 100 different samples as part of wxWidgets: the
list in this page is not complete! You should start your tour of wxWidgets with
the @ref page_samples_minimal 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 sample is @ref page_samples_widgets which shows many of
wxWidgets controls, such as buttons, text entry zones, list boxes, check boxes,
combo boxes etc. It is organized in many different source files, one per each
control, which makes it easier to study it, and also allows to change various
control styles and call its methods interactively.
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_samples_calendar
@li wxListCtrl: @ref page_samples_listctrl
@li wxTreeCtrl: @ref page_samples_treectrl
@li wxGrid: @ref page_samples_grid
@li wxDataViewCtrl: @ref page_samples_dataview
@li wxWebView: @ref page_samples_webview
Final advice is to do a search in the entire samples 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.
@section page_samples_access Accessibility Sample
This sample shows how you can use the wxAccessible classes in a
simple GUI program.
@buildwith{wxUSE_ACCESSIBILITY}
@sampledir{access}
@section page_samples_animate Animation Sample
This sample shows how you can use wxAnimationCtrl
control and shows concept of a platform-dependent animation encapsulated
in wxAnimation.
@sampledir{animate}
@section page_samples_archive Archive Sample
This sample shows how you can use wxArchiveClassFactory, wxArchiveOutputStream
and wxArchiveInputStream. This shows how to process ZIP and TAR archives using
wxZipOutputStream and wxTarOutputStream
@sampledir{archive}
@section page_samples_artprov Art Provider Sample
This 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.
@sampledir{artprov}
@section page_samples_aui Advanced User Interface Sample
This sample shows how to use wxAuiManager and other
@ref overview_aui "AUI classes", such as wxAuiToolBar and wxAuiNotebook. It
allows to change wxAuiNotebook styles and save and reload the layout of either
the entire wxAuiManager or just the notebook part.
@sampledir{aui}
@section page_samples_calendar Calendar Sample
This sample 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.
@sampledir{calendar}
@section page_samples_caret Caret Sample
@sampleabout{wxCaret}
@sampledir{caret}
@section page_samples_collpane Collapsible Pane Sample
@sampleabout{wxCollapsiblePane}
@sampledir{collpane}
@section page_samples_combo Combo Sample
@sampleabout{wxComboBox\, wxComboCtrl and wxOwnerDrawnComboBox etc}
@sampledir{combo}
@section page_samples_config Configuration 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 @ref overview_config for the descriptions of all features of this class.
@sampledir{config}
@section page_samples_console Console Program Sample
@sampleabout{a console program}
@sampledir{console}
@section page_samples_dataview wxDataViewCtrl Sample
@sampleabout{wxDataViewCtrl}
@sampledir{dataview}
@section page_samples_debugrpt Debug Reporter 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) 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.
@buildwith{wxUSE_DEBUGREPORT, wxUSE_ON_FATAL_EXCEPTION}
@sampledir{debugrpt}
@section page_samples_dialogs Dialogs Sample
This sample shows how to use the common dialogs available from wxWidgets. These
dialogs are described in detail in the @ref overview_cmndlg.
In addition to the dialogs accessible from the sample menus, you can also run
it with a <code>\--progress=style</code> command line option to show a
wxProgressDialog with the given style (try 0 for the default style) on program
startup, before the main window is shown.
@sampledir{dialogs}
@section page_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.
@sampledir{dialup}
@section page_samples_display Display Sample
@sampleabout{wxDisplay}
@sampledir{display}
@section page_samples_dnd Drag & Drop 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.
@sampledir{dnd}
@section page_samples_docview Document/View Sample
@sampleabout{@ref overview_docview}
@sampledir{docview}
@see @sample{mdi}
@section page_samples_dragimag Drag Image Sample
@sampleabout{wxDragImage}
@sampledir{dragimag}
@section page_samples_drawing Drawing Sample
@sampleabout{the drawing ability of wxDC}
@sampledir{drawing}
@section page_samples_erase Erase Event Sample
@sampleabout{wxEraseEvent}
@sampledir{erase}
@section page_samples_event Event Sample
This sample demonstrates various features of the wxWidgets events. It
shows how to dynamic events and connecting/disconnecting the event handlers
during run time by using wxEvtHandler::Bind() and wxEvtHandler::Unbind(),
and also how to use wxWindow::PushEventHandler() and wxWindow::PopEventHandler().
@sampledir{event}
@section page_samples_except Exception 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.
<b>Build Note:</b>
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.
@sampledir{except}
@section page_samples_exec External Program Execution 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().
@sampledir{exec}
@section page_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.
@sampledir{font}
@section page_samples_grid Grid Sample
@sampleabout{wxGrid}
@sampledir{grid}
@section page_samples_help Help Sample
@sampleabout{wxHelpController}
@sampledir{help}
@section page_samples_html HTML Sample
Eight HTML samples 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.
@sampledir{html}
@section page_samples_htlbox HTML List Box Sample
@sampleabout{wxHtmlListBox}
@sampledir{htlbox}
@section page_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.
@sampledir{image}
@section page_samples_internat Internationalization 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 program's behaviour.
More information about this sample can be found in the @c readme.txt file in
its directory. Please also see the @ref overview_i18n overview.
@sampledir{internat}
@section page_samples_ipc Connection Sample
@sampleabout{wxConnection}
@sampledir{ipc}
@section page_samples_joytest Joystick Sample
@sampleabout{wxJoystick}
@sampledir{joytest}
@section page_samples_keyboard Key Event Sample
@sampleabout{wxKeyEvent}
This sample can be used to interactively test the events produced by pressing
various keyboard keys. It also shows the interaction between accelerators and
the normal keyboard events (which are overridden by any defined accelerators)
and finally allows to test that not skipping an event in EVT_KEY_DOWN handler
suppresses the subsequent EVT_CHAR event.
@sampledir{keyboard}
@section page_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.
@sampledir{layout}
@section page_samples_listctrl List Control 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.
@sampledir{listctrl}
@section page_samples_mdi MDI Sample
@sampleabout{MDI}
@see @sample{docview}
@sampledir{mdi}
@section page_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 @c dynamic sample.
@sampledir{mediaplayer}
@section page_samples_menu Menu Sample
@sampleabout{wxMenu classes}
@sampledir{menu}
@section page_samples_mfc MFC Sample
@sampleabout{how to mix MFC and wxWidgets code}
It pops up an initial wxWidgets frame, with a menu item
that allows a new MFC window to be created.
For build instructions please read IMPORTANT NOTES in @c mfctest.cpp.
@onlyfor{wxmsw}
@sampledir{mfc}
@section page_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.
@sampledir{minimal}
@section page_samples_nativdlg Native Windows Dialog Sample
@sampleabout{native windows dialog}
@onlyfor{wxmsw}
@sampledir{nativdlg}
@section page_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, wxTreebook and wxToolbook in action.
Test each of the controls, their orientation, images and pages using
commands through the menu.
@sampledir{notebook}
@section page_samples_oleauto OLE Automation Sample
@sampleabout{OLE automation using wxAutomationObject}
@onlyfor{wxmsw}
@sampledir{oleauto}
@section page_samples_opengl OpenGL Sample
@sampleabout{wxGLCanvas}
@li @b cube Draws a cube to demonstrate how to write a basic wxWidgets OpenGL program.
Arrow keys rotate the cube. Space bar toggles spinning.
@li @b isosurf Draws a surface by reading coordinates from a DAT file.
@li @b penguin Draws a rotatable penguin by reading data from a DXF file.
@li @b pyramid Draws a rotatable tetrahedron and some strings.
It uses OpenGL 3.2 Core Profile context.
@sampledir{opengl}
@section page_samples_ownerdrw Owner-drawn Sample
@sampleabout{owner-drawn wxMenuItem\, wxCheckList and wxListBox}
<!--It's weird that it doesn't need <wx/ownerdrw.h> and class wxOwnerDrawn!-->
@sampledir{ownerdrw}
@section page_samples_popup Popup Transient Window Sample
@sampleabout{wxPopupTransientWindow}
@sampledir{popup}
@section page_samples_power Power Management Sample
@sampleabout{wxWidgets power management}
@see wxPowerEvent
@sampledir{power}
@section page_samples_printing Printing Sample
@sampleabout{printing}
@see @ref overview_printing, @ref overview_unixprinting
@buildwith{wxUSE_PRINTING_ARCHITECTURE}
@sampledir{printing}
@section page_samples_propgrid wxPropertyGrid Sample
Sample application has following additional examples of custom properties:
- wxFontDataProperty ( edits wxFontData )
- wxPointProperty ( edits wxPoint )
- wxSizeProperty ( edits wxSize )
- wxAdvImageFileProperty ( like wxImageFileProperty, but also has a drop-down
for recent image selection )
- wxDirsProperty ( edits a wxArrayString consisting of directory strings)
- wxArrayDoubleProperty ( edits wxArrayDouble )
@sampleabout{wxPropertyGrid}
@sampledir{propgrid}
@section page_samples_regtest Registry Sample
@sampleabout{wxRegKey}
<!--Its directory name doesn't seem to be proper.-->
@onlyfor{wxmsw}
@sampledir{regtest}
@section page_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.
@sampledir{render}
@section page_samples_richtext wxRichTextCtrl Sample
@sampleabout{wxRichTextCtrl}
@sampledir{richtext}
@section page_samples_sashtest Sash Sample
@sampleabout{wxSashWindow classes}
@sampledir{sashtest}
@section page_samples_scroll Scroll Window Sample
@sampleabout{wxScrolledWindow}
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.
@sampledir{scroll}
@section page_samples_secretstore Secret Store Sample
@sampleabout{wxSecretStore}
This console-mode sample shows the use of wxSecretStore class for remembering
the user-entered passwords. It should be run from the command line with the
first argument of @c save, @c load or @c delete, followed by the "service" and
"user" arguments as used by wxSecretStore methods. After storing some password,
you can check that it can be retrieved later and also that it can be seen in
the OS-provided password manager (e.g. credential manager under MSW or keychain
utility under macOS).
@sampledir{secretstore}
@section page_samples_shaped Shaped Window Sample
@sampleabout{Showing unusual, e.g. shaped or semi-transparent windows}
This sample shows windows with non-rectangular shapes and non-opaque windows as
well as how the windows can be shown with a special effect.
@see wxTopLevelWindow::SetShape(), wxTopLevelWindow::SetTransparent(),
wxWindow::ShowWithEffect(), wxWindow::HideWithEffect(),
wxWindow::SetBackgroundStyle()
@sampledir{shaped}
@section page_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).
@sampledir{sockets}
@section page_samples_sound Sound Sample
The @c sound sample shows how to use wxSound for simple
audio output (e.g. notifications).
@sampledir{sound}
@section page_samples_splash Splash Screen Sample
@sampleabout{wxSplashScreen}
@sampledir{splash}
@section page_samples_splitter Splitter Window Sample
@sampleabout{wxSplitterWindow}
@sampledir{splitter}
@section page_samples_statbar Status Bar 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.
@sampledir{statbar}
@section page_samples_stc wxStyledTextCtrl Sample
@sampleabout{wxStyledTextCtrl}
@sampledir{stc}
@section page_samples_svg SVG Sample
@sampleabout{wxSVGFileDC}
@sampledir{svg}
@section page_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.
@sampledir{taborder}
@section page_samples_taskbar Task Bar Icon Sample
@sampleabout{wxTaskBarIcon}
@sampledir{taskbar}
@section page_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 but not least: some of the text controls have tooltips and the sample also
shows how tooltips can be centrally disabled and their latency controlled.
@sampledir{text}
@section page_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 ::wxQueueEvent
function and this sample demonstrates its usage.
The other way is to use a ::wxMutexGuiEnter and ::wxMutexGuiLeave functions, but
this is not currently shown in the sample.
See also @ref overview_thread and wxThread.
@sampledir{thread}
@section page_samples_toolbar Tool Bar 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.
@sampledir{toolbar}
@section page_samples_treectrl wxTreeCtrl 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.
@sampledir{treectrl}
@section page_samples_typetest Types Sample
@sampleabout{wxWidgets types}
@todo This sample isn't very didactive; it's more than a set of tests rather
than a sample and thus should be rewritten with CppUnit and moved under "tests"
@sampledir{typetest}
@section page_samples_uiaction wxUIActionSimulator Sample
@sampleabout{wxUIActionSimulator}
This sample shows some features of wxUIActionSimulator class. When a simulation
is run using its menu items, you can see that the button is pressed
programmatically and the characters generated by the program appear in the text
control.
@sampledir{uiaction}
@section page_samples_validate Validator Sample
@sampleabout{wxValidator}
@sampledir{validate}
@section page_samples_vscroll VScrolled Window Sample
@sampleabout{wxVScrolledWindow}
@sampledir{vscroll}
@section page_samples_webview wxWebView Sample
The wxWebView sample demonstrates the various capabilities of the wxWebView
control. It is set up as a simple single window web browser, but with support
for many of the more complex wxWebView features, including browsing through
archives.
@sampledir{webview}
@section page_samples_webrequest Web Request Sample
This sample demonstrates the various capabilities of the
wxWebRequest class. It shows how to handle simple text HTTP and HTTPS requests,
downloading files, showing download progress and processing downloaded
data while it's being downloaded.
@sampledir{webrequest}
@section page_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.
@sampledir{widgets}
@section page_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)
@sampledir{wizard}
@section page_samples_wrapsizer wxWrapSizer Sample
@sampleabout{wxWrapSizer}
@sampledir{wrapsizer}
@section page_samples_xrc XRC Sample
This sample shows how to use the various features of the @ref overview_xrc to
create the gui of your program. It starts by loading and showing a frame and
other resources. From its menu or toolbar you can then run the following dialogs:
@li A non-derived wxDialog
@li A derived dialog
@li A dialog containing a large number of controls
@li An uncentred dialog
@li A dialog demonstrating the use of object references and ID ranges
@li A dialog that contains a custom class
@li A dialog with platform-specific features
@li A dialog demonstrating wxArtProvider
@li A dialog saying "VARIABLE EXPANSION ISN'T IMPLEMENTED CURRENTLY" :/
@sampledir{xrc}
*/

View File

@@ -0,0 +1,88 @@
/////////////////////////////////////////////////////////////////////////////
// Name: screenshots.h
// Purpose: Screenshots of all controls at a glance
// Author: Vadim Zeitlin <vadim@wxwidgets.org>
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
/**
@page page_screenshots Screenshots of Different Controls
This page contains the screenshots of various controls under the three major
platforms: wxMSW in the first column, wxGTK in the second one and wxOSX in the
third one.
@section page_screenshots_standard Standard Controls
Some common controls:
@appearance_brief{wxButton,button}
@appearance_brief{wxBitmapButton,bitmapbutton}
@appearance_brief{wxCheckBox,checkbox}
@appearance_brief{wxChoice,choice}
@appearance_brief{wxCheckListBox,checklistbox}
@appearance_brief{wxComboBox,combobox}
@appearance_brief{wxGauge,gauge}
@appearance_brief{wxListBox,listbox}
@appearance_brief{wxRadioBox,radiobox}
@appearance_brief{wxRadioButton,radiobutton}
@appearance_brief{wxScrollBar,scrollbar}
@appearance_brief{wxSlider,slider}
@appearance_brief{wxSpinButton,spinbutton}
@appearance_brief{wxSpinCtrl,spinctrl}
@appearance_brief{wxSpinCtrlDouble,spinctrldouble}
@section page_screenshots_picker Picker Controls
These controls provide the user with the possibility to choose something (file
or directory, font or colour, ...) directly from the window containing them:
@appearance_brief{wxColourPickerCtrl,colourpickerctrl}
@appearance_brief{wxDatePickerCtrl,datepickerctrl}
@appearance_brief{wxFilePickerCtrl,filepickerctrl}
@appearance_brief{wxDirPickerCtrl,dirpickerctrl}
@appearance_brief{wxFontPickerCtrl,fontpickerctrl}
@section page_screenshots_book Book Controls
Book controls contain several pages (also called tabs in wxNotebook case) and
allow the user to switch between them:
@appearance_brief{wxChoicebook,choicebook}
@appearance_brief{wxListbook,listbook}
@appearance_brief{wxNotebook,notebook}
@section page_screenshots_treelist Tree and List Controls
Several controls can be used to display items organized in a tree or (multi
column) list:
@appearance_brief{wxDataViewCtrl,dataviewctrl}
@appearance_brief{wxDataViewTreeCtrl,dataviewtreectrl}
@appearance_brief{wxListCtrl,listctrl}
@appearance_brief{wxPropertyGrid,propertygrid}
@genericAppearance_brief{wxSimpleHtmlListBox,simplehtmllistbox}
@section page_screenshots_misc Miscellaneous Other Controls
@appearance_brief{wxActivityIndicator,activityindicator}
@appearance_brief{wxAnimationCtrl,animationctrl}
@genericAppearance_brief{wxBannerWindow,bannerwindow}
@appearance_brief{wxBitmapComboBox,bitmapcombobox}
@appearance_brief{wxCalendarCtrl,calendarctrl}
@appearance_brief{wxCollapsiblePane,collapsiblepane}
@appearance_brief{wxComboCtrl,comboctrl}
@appearance_brief{wxCommandLinkButton,commandlinkbutton}
@appearance_brief{wxDirCtrl,genericdirctrl}
@appearance_brief{wxFileCtrl,filectrl}
@appearance_brief{wxHyperlinkCtrl,hyperlinkctrl}
@appearance_brief{wxOwnerDrawnComboBox,ownerdrawncombobox}
@appearance_brief{wxRichTextCtrl,richtextctrl}
@appearance_brief{wxRichToolTip,richtooltip}
*/

View File

@@ -0,0 +1,104 @@
/////////////////////////////////////////////////////////////////////////////
// Name: topics.h
// Purpose: Topic overviews page of the Doxygen manual
// Author: wxWidgets team
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
/**
@page page_topics Programming Guides
@tableofcontents
The guides here cover all high level details of a full range of development
topics related to building applications with wxWidgets.
@section page_topics_starting Starting with wxWidgets
@li @subpage overview_install
@li @subpage overview_helloworld
@li @subpage overview_roughguide
@li @subpage overview_referencenotes
@section page_topics_programming Conceptual Overviews
@li @subpage overview_app
@li @subpage overview_events
@li @subpage overview_windowsizing
@li @subpage overview_windowids
@li @subpage overview_log
@li @subpage overview_unicode
@li @subpage overview_i18n
@section page_topics_nongui Non-GUI Classes
@li @subpage overview_string
@li @subpage overview_bufferclasses
@li @subpage overview_datetime
@li @subpage overview_container
@li @subpage overview_file
@li @subpage overview_stream
@li @subpage overview_thread
@li @subpage overview_config
@li @subpage overview_persistence
@li @subpage overview_fs
@li @subpage overview_resyntax
@li @subpage overview_archive
@li @subpage overview_ipc
@section page_topics_drawing Drawing Related Classes
@li @subpage overview_dc
@li @subpage overview_bitmap
@li @subpage overview_font
@li @subpage overview_fontencoding
@li @subpage overview_printing
@li @subpage overview_unixprinting
@section page_topics_gui GUI Classes
@li @subpage overview_sizer
@li @subpage overview_xrc
@li @subpage overview_xrcformat
@li @subpage overview_scrolling
@li @subpage overview_dialog
@li @subpage overview_validator
@li @subpage overview_dataobject
@li @subpage overview_dnd
@section page_topics_indivctrl Individual Controls
@li @subpage overview_html
@li @subpage overview_richtextctrl
@li @subpage overview_aui
@li @subpage overview_propgrid
@li @subpage overview_cmndlg
@li @subpage overview_toolbar
@li @subpage overview_grid
@li @subpage overview_treectrl
@li @subpage overview_listctrl
@li @subpage overview_splitterwindow
@li @subpage overview_bookctrl
@li @subpage overview_tips
@li @subpage overview_docview
@section page_topics_other Other wxWidgets Programming Overviews
@li @subpage overview_backwardcompat
@li @subpage overview_exceptions
@li @subpage overview_rtti
@li @subpage overview_cpp_rtti_disabled
@li @subpage overview_refcount
@li @subpage overview_mbconv
@li @subpage overview_nonenglish
@li @subpage overview_debugging
@li @subpage overview_windowstyles
@li @subpage overview_windowdeletion
@li @subpage overview_envvars
@li @subpage overview_customwidgets
@li @subpage overview_high_dpi
*/

View File

@@ -0,0 +1,478 @@
/////////////////////////////////////////////////////////////////////////////
// Name: translations.h
// Purpose: List of wxWidgets available translations
// Author: wxWidgets team
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
/**
@page page_translations Translations to Other Languages
@tableofcontents
wxWidgets uses a certain number of user-readable strings such as
<tt>"help"</tt> or <tt>"Load file"</tt> which should be translated to the users
language if it is different from English. wxWidgets has built in support for
internationalization (@e i18n from now on) which allows for this to happen
automatically if the translations to the current language are available.
You may find here the list of all existing translations with the addresses of
the official translators whom you should contact if you would like to submit
any corrections to the translations for your language.
Also, please see @ref page_translations_howtohelp if you would like to
translate wxWidgets to your language if it is not mentioned here (or to help
with one which already is - it is quite helpful to have several translators for
one language at least for proof reading).
@section page_translations_avail Available Translations
Below is the table containing the list of languages supported by wxWidgets.
The columns of this table have the obvious meaning: in each row you will see
the language, the official translator (if any) for it and the status of the
translations.
Please note that email addresses in the table below are intentionally invalid
to foil spam robots, remove one <tt>\@</tt> from them.
<table>
<tr>
<th>Language</th>
<th>Status</th>
<th>Translator(s)</th>
</tr>
<tr>
<td>Afrikaans</td>
<td class="orange">68%</td>
<td>
<a href="mailto:rkwjpj@@puk.ac.za">Petri Jooste</a>
</td>
</tr>
<tr>
<td>Albanian</td>
<td class="orange">75%</td>
<td>
<a href="mailto:besnik@@programeshqip.org">Besnik Bleta</a>
</td>
</tr>
<tr>
<td>Arabic</td>
<td class="red">45%</td>
<td>
<a href="mailto:abouzekry@@gmail.com">Abdullah Abouzekry</a>
</td>
</tr>
<tr>
<td>Basque</td>
<td class="green">100%</td>
<td>
<a href="mailto:3arrano@@euskalerria.org">3ARRANO Euskalgintza Taldea</a>,
<a href="mailto:azpidatziak@@gmail.com">Xabier Aramendi</a>
</td>
</tr>
<tr>
<td>Catalan</td>
<td class="orange">65%</td>
<td>
<a href="mailto:paubcrespo@@hotmail.com">Pau Bosch i Crespo</a>,
<a href="mailto:rmh@@aybabtu.com">Robert Millan</a>
</td>
</tr>
<tr>
<td>Chinese (simplified)</td>
<td class="green">100%</td>
<td>
<a href="mailto:mrfx@@fm365.com">mrfx</a>,
<a href="mailto:liouxiao@@hotmail.com">Liu XiaoXi</a>,
<a href="mailto:hjiawei@@gmail.com">Huang Jiawei</a>,
<a href="mailto:williamroot777@@qq.com">William Jiang</a>
</td>
</tr>
<tr>
<td>Chinese (traditional)</td>
<td class="green">100%</td>
<td>
<a href="mailto:pal.tw@@yahoo.com.tw">pal.tw</a>
</td>
</tr>
<tr>
<td>Czech</td>
<td class="green">100%</td>
<td>
<a href="mailto:v.slavik@@volny.cz">Vaclav Slavik</a>,
<a href="mailto:deirdre_skye@@web.de">Herbert Breunung</a>,
<a href="mailto:zbynek.schwarz@@gmail.com">Zbyněk Schwarz</a>
</td>
</tr>
<tr>
<td>Danish</td>
<td class="orange">74%</td>
<td>
<a href="mailto:leif@@danmos.dk">Leif Jensen</a>,
<a href="mailto:Henrik@@fangorn.dk">Henrik Ræder Clausen</a>,
<a href="mailto:mulrich15@@yahoo.dk">Morten Råbjerg Ulrich</a>
</td>
</tr>
<tr>
<td>Dutch</td>
<td class="green">100%</td>
<td>
<a href="mailto:phubers@@solve-i-t.com">Patrick Hubers</a>,
<a href="mailto:gvmelle@@gmail.com">Gideon van Melle</a>,
<a href="mailto:thomasderocker@@hotmail.com">Thomas De Rocker</a>
</td>
</tr>
<tr>
<td>English (UK)</td>
<td class="green">100%</td>
<td>N/A</td>
</tr>
<tr>
<td>Finnish</td>
<td class="green">91%</td>
<td>
<a href="mailto:kgb@@compart.fi">Kaj G Backas</a>,
<a href="mailto:lanurmi@@iki.fi">Lauri Nurmi</a>,
<a href="mailto:jmsalli79@@hotmail.com">Jaakko Salli</a>,
<a href="mailto:elias.julkunen@gmail.com">Elias Julkunen</a>,
<a href="mailto:jani.kinnunen@@wippies.fi">Jani Kinnunen</a>
</td>
</tr>
<tr>
<td>French (standard)</td>
<td class="green">96%</td>
<td>
<a href="mailto:Stephane.Junique@@optics.kth.se">Stephane Junique</a>,
<a href="mailto:lionel.allorge@@lunerouge.com">Lionel Allorge</a>,
<a href="mailto:Gilles.Guyot@@Krypton.be">Gilles Guyot</a>
</td>
</tr>
<tr>
<td>Galician</td>
<td class="orange">76%</td>
<td>
<a href="mailto:leandro.regueiro@@gmail.com">Leandro Regueiro</a>,
<a href="mailto:correoadrian82@@hotmail.com">Adrián González Alba</a>
</td>
</tr>
<tr>
<td>German</td>
<td class="green">100%</td>
<td>
<a href="mailto:DanR@@gmx.de">Daniel Reith</a>,
<a href="mailto:sparhawk@@aon.at">Gerhard Gruber</a>,
<a href="mailto:stefan@@hedemann.de">Stefan Hedemann</a>,
<a href="mailto:D.Reymann@@geisenheim.mnd.fh-wiesbaden.de">Dr. Detlev Reymann</a>,
Mark Johnson,
<a href="mailto:martinnost@@users.sf.net">Martin Jost</a>,
<a href="mailto:deirdre_skye@@web.de">Herbert Breunung</a>,
<a href="mailto:chbuck@@gmail.com">Ch. Buck</a>,
<a href="mailto:webmaster@@coderonline.de">Max Christian Pohle</a>,
<a href="mailto:Thomas.Krebs@@mecadtron.de">Thomas Krebs</a>
</td>
</tr>
<tr>
<td>Greek</td>
<td class="orange">73%</td>
<td>
<a href="mailto:tsolako1@@otenet.gr">Tsolakos Stavros</a>,
<a href="mailto:nassosy@@compulink.gr">Nassos Yiannopoulos</a>
</td>
</tr>
<tr>
<td>Hindi</td>
<td class="green">83%</td>
<td>
<a href="mailto:dysxhi@@yahoo.co.in">Dhananjaya Sharma</a>,
<a href="mailto:priyank.bolia@@gmail.com">Priyank Bolia</a>
</td>
</tr>
<tr>
<td>Hungarian</td>
<td class="orange">76%</td>
<td>
<a href="mailto:Janos_Vegh@@users.sourceforge.net">Végh János Dr.</a>
</td>
</tr>
<tr>
<td>Indonesian</td>
<td class="green">100%</td>
<td>
<a href="mailto:bambang@@3wsi.com">Bambang Purnomosidi D. P.</a>,
<a href="mailto:doplank@@gmx.com">Rahmat Bambang</a>
</td>
</tr>
<tr>
<td>Italian</td>
<td class="green">100%</td>
<td>
<a href="mailto:mbarbon@@cpan.org">Mattia Barbon</a>,
<a href="mailto:m.cavallini@@koansoftware.com">Marco Cavallini</a>,
(<a href="http://www.koansoftware.com">Koan Software</a>),
<a href="mailto:l.stickell@@yahoo.it">Stefano</a>
</td>
</tr>
<tr>
<td>Japanese</td>
<td class="green">97%</td>
<td>
<a href="mailto:james.bishop1@@tiscali.co.uk">James Bishop</a>,
<a href="mailto:saito@@inetrt.skcapi.co.jp">Hiroshi Saito</a>,
<a href="mailto:suzumizaki@@free.japandesign.ne.jp">Suzumizaki-Kimitaka</a>,
<a href="mailto:kaba@@shall-systemservice.co.jp">Y. KABA.</a>
</td>
</tr>
<tr>
<td>Korean</td>
<td class="green">85%</td>
<td>
<a href="mailto:dragoneyes.org@@gmail.com">Sungkee Jung</a>
</td>
</tr>
<tr>
<td>Latvian</td>
<td class="green">90%</td>
<td>
<a href="mailto:lauris@@nix.lv">Lauris Bukshis</a>
</td>
</tr>
<tr>
<td>Lithuanian</td>
<td class="red">15%</td>
<td>
<a href="mailto:pieter.clarysse@@bricsys.com">Pieter</a>
</td>
</tr>
<tr>
<td>Malay</td>
<td class="green">89%</td>
<td>
<a href="mailto:mahrazi@@gmail.com">Mahrazi Mohd Kamal</a>
</td>
</tr>
<tr>
<td>Nepali</td>
<td class="green">100%</td>
<td>
<a href="mailto:drishtibachak@@gmail.com">Him Prasad Gautam</a>
</td>
</tr>
<tr>
<td>Norwegian Bokmal</td>
<td class="orange">74%</td>
<td>
<a href="mailto:hans@@nordhaug.priv.no">Hans F. Nordhaug</a>
</td>
</tr>
<tr>
<td>Polish</td>
<td class="green">94%</td>
<td>
<a href="mailto:matiso@@hoga.pl">Piotr Mackowiak</a>,
<a href="mailto:jpiw@@go2.pl">Janusz Piwowarski</a>,
<a href="mailto:abx@@abx.art.pl">ABX</a>,
<a href="mailto:hippie_1968@@hotmail.com">Michał Trzebiatowski</a>,
<a href="mailto:grzezlo@@wp.pl">Grzegorz Zlotowicz</a>
</td>
</tr>
<tr>
<td>Portuguese (pt)</td>
<td class="green">89%</td>
<td>
<a href="mailto:bernardosw@@terra.com.br">Bernardo Santos Wernesback</a>,
<a href="mailto:marionrpereira76@@hotmail.com">Mario Pereira</a>,
<a href="mailto:digiplan.pt@@gmail.com">Antonio Cardoso Martins</a>,
<a href="mailto:mail@@cgoncalves.info">Carlos Gonçalves</a>
</td>
</tr>
<tr>
<td>Portuguese (pt_BR)</td>
<td class="green">100%</td>
<td>
<a href="mailto:e.a.tacao@@terra.com.br">E.A. Tacao</a>,
<a href="mailto:jecdiniz@@yahoo.com.br">José Eduardo de Carvalho Diniz</a>,
<a href="mailto:adiel@@inf.ufsc.br">Adiel Mittmann</a>,
<a href="mailto:allanjos@@gmail.com">Allann Jones</a>,
<a href="mailto:felipefpl@@ig.com.br">Felipe</a>
</td>
</tr>
<tr>
<td>Romanian</td>
<td class="green">100%</td>
<td>
<a href="mailto:cata_sr@yahoo.com">Cătălin Răceanu</a>,
<a href="mailto:adrian.haisan@gmail.com">Adrian Hăisan</a>,
<a href="mailto:manuelrciosici@gmail.com">Manuel Ciosici</a>
</td>
</tr>
<tr>
<td>Russian</td>
<td class="orange">74%</td>
<td>
<a href="mailto:wolfsoft@@mail.ru">Dennis Prochko</a>,
<a href="mailto:rolinsky@@mema.ucl.ac.be">Roman Rolinsky</a>,
<a href="mailto:vadim@@wxwidgets.org">Vadim Zeitlin</a>,
<a href="mailto:kai@@cmail.ru">Andrew V. Samoilov</a>
</td>
</tr>
<tr>
<td>Slovak</td>
<td class="orange">74%</td>
<td>
<a href="mailto:helix84@@centrum.sk">Ivan Masar</a>
</td>
</tr>
<tr>
<td>Slovenian</td>
<td class="green">97%</td>
<td>
<a href="mailto:roman.plevel@@iskratr.si">Roman Plevel</a>,
<a href="mailto:miles@@filmsi.net">Martin Srebotnjak</a>
</td>
</tr>
<tr>
<td>Spanish</td>
<td class="green">89%</td>
<td>
<a href="mailto:guille@@iies.es">Guillermo Rodriguez Garcia</a>,
<a href="mailto:jsj666@@hotmail.com">JSJ</a>,
<a href="mailto:francisco.vila@@hispalinux.es">Francisco Vila</a>,
<a href="mailto:correoadrian82@@hotmail.com">Adrián González Alba</a>
</td>
</tr>
<tr>
<td>Swedish</td>
<td class="green">98%</td>
<td>
<a href="mailto:jor@@mindless.com">Jonas Rydberg</a>,
<a href="mailto:kgb@@compart.fi">Kaj G Backas</a>
</td>
</tr>
<tr>
<td>Tamil</td>
<td class="green">100%</td>
<td>
<a href="mailto:td.dinkar@@gmail.com">DINAKAR T.D.</a>
</td>
</tr>
<tr>
<td>Turkish</td>
<td class="green">100%</td>
<td>
<a href="mailto:dogusanh@@dynaset.org">Hakki Dogusan</a>,
<a href="mailto:kayazeren@@gmail.com">Kaya Zeren</a>
</td>
</tr>
<tr>
<td>Ukrainian</td>
<td class="green">100%</td>
<td>
<a href="mailto:manko@@salingshot.co.nz">Eugene Manko</a>,
<a href="mailto:yurchor@@ukr.net">Yuri Chornoivan</a>,
<a href="mailto:k_ilya@@ukr.net">Ylia K</a>
</td>
</tr>
<tr>
<td>Valencian (ca\@valencia)</td>
<td class="orange">65%</td>
<td>
<a href="mailto:rmh@@aybabtu.com">Robert Millan</a>
</td>
</tr>
<tr>
<td>Vietnamese</td>
<td class="green">100%</td>
<td>
<a href="mailto:vnwildman@gmail.com">Tran Ngoc Quan</a>
</td>
</tr>
</table>
<br>
@section page_translations_howtohelp How to Help
wxWidgets uses the standard <a href="http://www.gnu.org/software/gettext/">GNU
gettext</a> tools for i18n so if you are already familiar with them you
shouldn't have any problems with working on wxWidgets translations.
Here are the steps you should follow:
-# Get the latest version of the file <tt>locale/wxstd.pot</tt> from the
wxWidgets source tree: if you're using
<a href="https://www.wxwidgets.org/develop/code-repository/">git</a>
you should already have it. Otherwise you can always retrieve it directly
from the git repository:
<a href="https://raw.githubusercontent.com/wxWidgets/wxWidgets/master/locale/wxstd.pot">locale/wxstd.pot</a>.
-# Initialize an <tt>XY.po</tt> file for your language by using the command
<tt>msginit -l XY</tt> in the same folder where you placed <tt>wxstd.pot</tt>.
The <tt>"XY"</tt> is the 2 letter
<a href="http://www.loc.gov/standards/iso639-2/php/English_list.php">ISO 639-2 language code</a>
for your language. Initialization can be also done using e.g. Poedit (see next item).
-# Translate the strings in this file using either your favourite text
editor or a specialized tool such as Vaclav Slavik's excellent
<a href="http://www.poedit.net/">poEdit</a> utility.
-# Verify that your translations can at least be compiled (even if they
are yet incomplete) by running <tt>msgfmt -vc XY.po</tt> command:
please note that you <i>must</i> use the <tt>-c</tt> option. In
particular, please fill the header fields because @c msgfmt doesn't
accept the default values for them.
-# Send the finished translation to <a href="mailto:vadim@wxwidgets.org">Vadim Zeitlin</a>
and it will be added to the next wxWidgets release or snapshot.
In addition, please consider subscribing to the very low volume
<a href="https://www.wxwidgets.org/support/mailing-lists/">
wxWidgets translators mailing list</a> on which the news especially important
for the translators are announced.
Thank you in advance for your help!
*/

View File

@@ -0,0 +1,90 @@
/////////////////////////////////////////////////////////////////////////////
// Name: utilities.h
// Purpose: Utilities page of the Doxygen manual
// Author: wxWidgets team
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
/**
@page page_utils Utilities Overview
@tableofcontents
In addition to the wxWidgets libraries (see @ref page_libs), some utilities
are available to the users in the @c utils hierarchy (even if some of them are
explicitly conceived for wxWidgets maintenance and will probably be of
little use to others).
Please note that these utilities only represent the utilities developed and
maintained by the wxWidgets team. There are lots of other user-contributed and
user-maintained packages such as:
@li http://wxcode.sourceforge.net
@li https://forums.wxwidgets.org/viewforum.php?f=20
@section page_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 ISN'T THE PLACE FOR THIS STATEMENT I THINK -->
This program can be found in @c utils/emulator.
@section page_utils_helpview Help Viewer
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 overview_html for more details.
You can find Helpview in @c utils/helpview.
@section page_utils_hhp2cached HHP2Cached
This utility creates a "cached" version of a @c .hhp file; using cached @c .hhp
files in wxHtmlHelpController can dramatically improve the performance
of the help viewer. See wxHtmlHelpController for more details.
You can find HHP2Cached in @c utils/hhp2cached.
@section page_utils_ifacecheck Interface Checker
This utility compares the wxWidgets real interface contained in the @c include
hierarchy with the wxWidgets interface used for documentation purposes and
kept in the @c interface hierarchy.
Ifacecheck warns about incoherences (mainly wrong prototype signatures) and
can even correct them automatically. It uses the XML outputs of the gccxml utility
(see http://www.gccxml.org) and of the Doxygen utility (see http://www.doxygen.org)
to do the comparisons.
It's explicitly designed for wxWidgets documentation needs and is probably of little
use for anything else than wxWidgets docs reviewing.
You can find it in @c utils/ifacecheck.
@section page_utils_screenshotgen Screenshot Generator
This utility automates the process of taking screenshots of various GUI
components for use in the HTML documentation of wxWidgets.
You can find it in @c utils/screenshotgen.
@section page_utils_wxrc wxWidgets XML Resource Compiler
This utility allows the user to compile @e binary versions of their XRC files,
which are compressed and can be loaded faster than plain XRC files.
See @ref overview_xrc for more info.
You can find it under @c utils/wxrc.
*/