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