wxWindows is a C++ framework providing GUI (Graphical User
Interface) and other facilities on more than one platform. Version 2 currently
-supports MS Windows (16-bit, Windows 95 and Windows NT), Unix with GTK+, Unix with Motif,
-and Mac. An OS/2 port is in progress.
+supports all desktop versions of MS Windows, Unix with GTK+, Unix with Motif,
+and MacOS. An OS/2 port is in progress.
wxWindows was originally developed at the Artificial Intelligence
Applications Institute, University of Edinburgh, for internal use,
-and was first made publicly available in 1993.
+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 and many others.
+Julian Smart, Robert Roebling, Vadim Zeitlin, Vaclav Slavik and many others.
-This manual discusses wxWindows in the context of multi-platform
-development.\helpignore{For more detail on the wxWindows version 2.0 API
-(Application Programming Interface) please refer to the separate
-wxWindows reference manual.}
+This manual contains a class reference and topic overviews.
+For a selection of wxWindows tutorials, please see the documentation page on the \urlref{wxWindows web site}{http://www.wxwindows.org}.
Please note that in the following, ``MS Windows" often refers to all
platforms related to Microsoft Windows, including 16-bit and 32-bit
\item support for a wide range of compilers.
\end{enumerate}
-Since wxWindows 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 wxWindows has.
-
-As open source software, wxWindows has
-benefited from comments, ideas, bug fixes, enhancements and the sheer
-enthusiasm of users. This gives wxWindows 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. wxWindows helps to insulate the programmer from
-these winds of change. Although wxWindows 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 wxWindows even if they
-are developing on only one platform.
+Since wxWindows 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 wxWindows has.
+
+As open source software, wxWindows has benefited from comments,
+ideas, bug fixes, enhancements and the sheer enthusiasm of
+users. This gives wxWindows 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. wxWindows helps to
+insulate the programmer from these winds of change. Although
+wxWindows 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 wxWindows even if they are developing on only
+one platform.
It is impossible to sum up the functionality of wxWindows in a few paragraphs, but
here are some of the benefits:
See also the File Functions section of the reference manual for
descriptions of miscellaneous file handling functions.
-\begin{comment}
-\chapter{Utilities supplied with wxWindows}\label{utilities}
+\chapter{Utilities and libraries supplied with wxWindows}\label{utilities}
\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}%
\setfooter{\thepage}{}{}{}{}{\thepage}%
-A number of `extras' are supplied with wxWindows, to complement
-the GUI functionality in the main class library. These are found
-below the utils directory and usually have their own source, library
-and documentation directories. For other user-contributed packages,
-see the directory ftp://www.remstar.com/pub/wxwin/contrib, which is
-more easily accessed via the Contributions page on the Web site.
-
-\section{wxHelp}\label{wxhelp}
-
-wxHelp is a stand-alone program, written using wxWindows,
-for displaying hypertext help. It is necessary since not all target
-systems (notably X) supply an adequate
-standard for on-line help. wxHelp is modeled on the MS Windows help
-system, with contents, search and browse buttons, but does not reformat
-text to suit the size of window, as WinHelp does, and its input files
-are uncompressed ASCII with some embedded font commands and an .xlp
-extension. Most wxWindows documentation (user manuals and class
-references) is supplied in wxHelp format, and also in Windows Help
-format. The wxWindows 2.0 project will presently use an HTML widget
-in a new and improved wxHelp implementation, under X.
-
-Note that an application can be programmed to use Windows Help under
-MS Windows, and wxHelp under X. An alternative help viewer under X is
-Mosaic, a World Wide Web viewer that uses HTML as its native hypertext
-format. However, this is not currently integrated with wxWindows
-applications.
-
-wxHelp works in two modes---edit and end-user. In edit mode, an ASCII
-file may be marked up with different fonts and colours, and divided into
-sections. In end-user mode, no editing is possible, and the user browses
-principally by clicking on highlighted blocks.
-
-When an application invokes wxHelp, subsequent sections, blocks or
-files may be viewed using the same instance of wxHelp since the two
-programs are linked using wxWindows interprocess communication
-facilities. When the application exits, that application's instance of
-wxHelp may be made to exit also. See the {\bf wxHelpControllerBase} entry in the
-reference section for how an application controls wxHelp.
-
-\section{Tex2RTF}\label{textortf}
-
-Supplied with wxWindows is a utility called Tex2RTF for converting\rtfsp
-\LaTeX\ manuals to the following formats:
-
-\begin{description}
-\item[wxHelp]
-wxWindows help system format (XLP).
-\item[Linear RTF]
-Rich Text Format suitable for importing into a word processor.
-\item[Windows Help RTF]
-Rich Text Format suitable for compiling into a WinHelp HLP file with the
-help compiler.
-\item[HTML]
-HTML is the native format for Mosaic, the main hypertext viewer for
-the World Wide Web. Since it is freely available it is a good candidate
-for being the wxWindows help system under X, as an alternative to wxHelp.
-\end{description}
-
-Tex2RTF is used for the wxWindows manuals and can be used independently
-by authors wishing to create on-line and printed manuals from the same\rtfsp
-\LaTeX\ source. Please see the separate documentation for Tex2RTF.
-
-\section{wxTreeLayout}
-
-This is a simple class library for drawing trees in a reasonably pretty
-fashion. It provides only minimal default drawing capabilities, since
-the algorithm is meant to be used for implementing custom tree-based
-tools.
+In addition to the core wxWindows library, a number of further
+libraries and utilities are supplied with each distribution.
-Directed graphs may also be drawn using this library, if cycles are
-removed before the nodes and arcs are passed to the algorithm.
+Some are under the 'contrib' hierarchy which mirrors the
+structure of the main wxWindows hierarchy. See also the 'utils'
+hierarchy. The first place to look for documentation about
+these tools and libraries is under the wxWindows 'docs' hierarchy,
+for example \verb$docs/htmlhelp/fl.chm$.
-Tree displays are used in many applications: directory browsers,
-hypertext systems, class browsers, and decision trees are a few
-possibilities.
+For other user-contributed packages, please see the Contributions page
+on the \urlref{wxWindows Web site}{http://www.wxwindows.org}.
-See the separate manual and the directory utils/wxtree.
+\begin{description}\itemsep=0pt
+\item[Helpview]
+Helpview is a program for displaying wxWindows HTML
+Help files. In many cases, you may wish to use the wxWindows HTML
+Help classes from within your application, but this provides a
+handy stand-alone viewer. See \helpref{wxHTML Notes}{wxhtml} for more details.
+You can find it in \verb$samples/html/helpview$.
-\end{comment}
+\item[Tex2RTF]
+Supplied with wxWindows is a utility called Tex2RTF for converting\rtfsp
+\LaTeX\ manuals HTML, MS HTML Help, wxHTML Help, RTF, and Windows
+Help RTF formats. Tex2RTF is used for the wxWindows manuals and can be used independently
+by authors wishing to create on-line and printed manuals from the same\rtfsp
+\LaTeX\ source. Please see the separate documentation for Tex2RTF.
+You can find it under \verb$utils/tex2rtf$.
+
+\item[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.
+
+\item[Dialog Editor]
+Dialog Editor allows interactive construction of dialogs using
+absolute positioning, producing WXR output files. This tool is generally deprecated
+in favour of sizer-based tools. You can find Dialog Editor
+in \verb$utils/dialoged$.
+
+\item[XRC resource system]
+This is the sizer-aware replacement for the WXR resource system, and uses
+XML-based resource specifications that can be generated by tools
+such as \urlref{wxDesigner}{http://www.roebling.de} and XRC's own wxrcedit.
+You can find this in \verb$contrib/src/xrc$, \verb$contrib/include/wx/xrc$, \verb$contrib/samples/xrc$, and \verb$contrib/utils/wxrcedit$.
+For more information, see the \helpref{XML-based resource system overview}{xrcoverview}.
+
+\item[Object Graphics Library]
+OGL defines an API for applications that need to display objects connected by lines.
+The objects can be moved around and interacted with.
+You can find this in \verb$contrib/src/ogl$, \verb$contrib/include/wx/ogl$, and \verb$contrib/samples/ogl$.
+
+\item[Frame Layout library]
+FL provides sophisticated pane dragging and docking facilities.
+You can find this in \verb$contrib/src/fl$, \verb$contrib/include/wx/fl$, and \verb$contrib/samples/fl$.
+
+\item[Gizmos library]
+Gizmos is a collection of useful widgets and other classes. Classes include wxLEDNumberCtrl,
+wxEditableListBox, wxMultiCellCanvas.
+You can find this in \verb$contrib/src/fl$, \verb$contrib/include/wx/fl$, and \verb$contrib/samples/fl$.
+
+\item[Net library]
+Net is a collection of very simple mail and web related classes. Currently
+there is only wxEmail, which makes it easy to send email messages via MAPI on Windows or sendmail on Unix.
+You can find this in \verb$contrib/src/net$ and \verb$contrib/include/wx/net$.
+
+\item[Animate library]
+Animate allows you to load animated GIFs and play them on a window. The library can be extended
+to use other animation formats.
+You can find this in \verb$contrib/src/animate$, \verb$contrib/include/wx/animate$, and \verb$contrib/samples/animate$.
+
+\item[Canvas library]
+Canvas supports high-level, double-buffered drawing operations with transformations.
+You can find this in \verb$contrib/src/canvas$, \verb$contrib/include/wx/canvas$, and \verb$contrib/samples/canvas$.
+
+\item[MMedia library]
+Mmedia supports a variety of multimedia functionality. The status of this library is currently unclear.
+You can find this in \verb$contrib/src/mmedia$, \verb$contrib/include/wx/mmedia$, and \verb$contrib/samples/mmedia$.
+
+\item[Styled Text Control library]
+STC is a wrapper around Scintilla, a syntax-highlighting text editor.
+You can find this in \verb$contrib/src/stc$, \verb$contrib/include/wx/stc$, and \verb$contrib/samples/stc$.
+
+\item[Plot]
+Plot is a simple curve plotting library.
+You can find this in \verb$contrib/src/plot$, \verb$contrib/include/wx/plot$, and \verb$contrib/samples/plot$.
+\end{description}
\chapter{Programming strategies}\label{strategies}
\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}%
\twocolitem{\helpref{wxMDIParentFrame}{wxmdiparentframe}}{MDI parent frame}
\twocolitem{\helpref{wxMiniFrame}{wxminiframe}}{A frame with a small title bar}
\twocolitem{\helpref{wxSplashScreen}{wxsplashscreen}}{Splash screen class}
-\twocolitem{\helpref{wxTabbedDialog}{wxtabbeddialog}}{Tabbed dialog
-(deprecated, use wxNotebook instead)}
+%\twocolitem{\helpref{wxTabbedDialog}{wxtabbeddialog}}{Tabbed dialog
+%(deprecated, use wxNotebook instead)}
\twocolitem{\helpref{wxTipWindow}{wxtipwindow}}{Shows text in a small window}
\twocolitem{\helpref{wxWizard}{wxwizard}}{A wizard dialog}
\end{twocollist}
\input bbutton.tex
\input bmpdatob.tex
\input bmphand.tex
-\input propbfva.tex
-\input propblva.tex
+% Deprecated
+%\input propbfva.tex
+%\input propblva.tex
\input boxsizer.tex
\input brush.tex
\input strmbfrd.tex
\input fildrptg.tex
\input filehist.tex
\input filename.tex
-\input propflva.tex
+% Deprecated
+%\input propflva.tex
\input filesys.tex
\input filesysh.tex
\input filetype.tex
\input ilayout.tex
\input indlgevt.tex
\input inputstr.tex
-\input propifva.tex
-\input propilva.tex
+% Deprecated
+%\input propifva.tex
+%\input propilva.tex
\input ipvaddr.tex
\input joystick.tex
\input joyevent.tex
\input listbox.tex
\input listctrl.tex
\input listevt.tex
-\input proplosv.tex
+% Deprecated
+%\input proplosv.tex
\input locale.tex
\input log.tex
\input longlong.tex
\input process.tex
\input procevt.tex
\input progdlg.tex
-\input property.tex
-\input propford.tex
-\input propforf.tex
-\input propforp.tex
-\input propforv.tex
-\input propfovi.tex
-\input proplisd.tex
-\input proplisf.tex
-\input proplisp.tex
-\input propliva.tex
-\input proplstv.tex
-\input propsht.tex
-\input propvald.tex
-\input propregv.tex
-\input propval.tex
-\input propview.tex
+% Now deprecated
+%\input property.tex
+%\input propford.tex
+%\input propforf.tex
+%\input propforp.tex
+%\input propforv.tex
+%\input propfovi.tex
+%\input proplisd.tex
+%\input proplisf.tex
+%\input proplisp.tex
+%\input propliva.tex
+%\input proplstv.tex
+%\input propsht.tex
+%\input propvald.tex
+%\input propregv.tex
+%\input propval.tex
+%\input propview.tex
\input protocol.tex
\input quantize.tex
\input query.tex
\input qylayevt.tex
\input radiobox.tex
\input radiobut.tex
-\input proprfva.tex
-\input proprlva.tex
+% Deprecated
+%\input proprfva.tex
+%\input proprlva.tex
\input realpoin.tex
\input recrdset.tex
\input rect.tex
\input stream.tex
\input strtotxt.tex
\input wxstring.tex
-\input propstfv.tex
+% Deprecated
+%\input propstfv.tex
\input strlist.tex
-\input propslv.tex
+% Deprecated
+%\input propslv.tex
\input tokenizr.tex
\input sysclevt.tex
\input sysopt.tex
\input settings.tex
-\input tab.tex
+% Deprecated
+%\input tab.tex
\input tabctrl.tex
\input tabevent.tex
-\input tabview.tex
+% Deprecated
+%\input tabview.tex
\input taskbar.tex
\input tcpclint.tex
\input tcpconn.tex
-\section{Cells and Containers}\label{cells}
+\subsection{Cells and Containers}\label{cells}
This article describes mechanism used by
\helpref{wxHtmlWinParser}{wxhtmlwinparser} and
-\section{Input Filters}\label{filters}
+\subsection{Input Filters}\label{filters}
The wxHTML library provides a mechanism for reading and displaying
files of many different file formats.
-\section{Tag Handlers}\label{handlers}
+\subsection{Tag Handlers}\label{handlers}
The wxHTML library provides architecture of pluggable {\it tag handlers}.
Tag handler is class that understands particular HTML tag (or tags) and is
Ends definition of tag handler {\it name}.
-
\wxheading{Tags Modules}
You can use set of 3 macros TAGS\_MODULE\_BEGIN, TAGS\_MODULE\_ADD and
-\section{Help Files Format}\label{helpformat}
+\subsection{Help Files Format}\label{helpformat}
wxHTML library uses a reduced version of MS HTML Workshop format.
Tex2RTF can produce these files when generating HTML, if you set {\bf htmlWorkshopFiles} to {\bf true} in
-\section{HTML Printing}\label{printing}
+\subsection{HTML Printing}\label{printing}
The wxHTML library provides printing facilities with several levels of complexity.
-\section{wxHTML quick start}\label{wxhtmlquickstart}
+\subsection{wxHTML quick start}\label{wxhtmlquickstart}
\wxheading{Displaying HMTL}
-\section{Tags supported by wxHTML}\label{htmltagssupported}
+\subsection{Tags supported by wxHTML}\label{htmltagssupported}
wxHTML is not full implementation of HTML standard. Instead, it supports most common tags so that it
is possible to display {\it simple} HTML documents with it. (For example it works fine with pages created
either {\tt paramname="paramvalue"} or {\tt paramname=paramvalue} - these two are equivalent. Unless stated
otherwise, wxHTML is case-insensitive.
-
\wxheading{Table of common parameter values}
We will use these substitutions in tags descriptions:
\end{verbatim}
-
-\section{wxWindows "Hello World"}\label{helloworld}
+\section{wxWindows Hello World sample}\label{helloworld}
As many people have requested a mini-sample to be published here
so that some quick judgments concerning syntax
\input{classes.tex}
\input{category.tex}
\input{topics.tex}
-\input{wxhtml.tex}
-\input{proplist.tex}
-\input{wxPython.tex}
+% Deprecated classes
+%\input{proplist.tex}
\begin{comment}
\newpage
This class validates a string value for a form view, with an optional choice of possible values.
The associated panel item must be a wxText, wxListBox or wxChoice. For wxListBox and wxChoice items,
if the item is empty, the validator attempts to initialize the item from the strings in
-the validator. Note that this does not happen for XView wxChoice items since XView cannot reinitialize a wxChoice.
+the validator.
\wxheading{See also}
Classes: \helpref{wxLayoutConstraints}{wxlayoutconstraints}, \helpref{wxIndividualLayoutConstraint}{wxindividuallayoutconstraint}.
+{\bf Note:} constraints are now deprecated and you should use \helpref{wxSizers}{wxsizer} instead.
+
Objects of class wxLayoutConstraint can be associated with a window to define
the way it is laid out, with respect to its siblings or the parent.
\input timaglst.tex
\input tcommdlg.tex
\input tdocview.tex
-\input ttab.tex
+% Deprecated
+%\input ttab.tex
\input ttoolbar.tex
\input tgrid.tex
\input ttips.tex
\input tclipbrd.tex
\input tdb.tex
\input tipc.tex
+\input wxhtml.tex
+\input wxPython.tex
Classes: \helpref{wxXmlResource}{wxxmlresource}, \helpref{wxXmlResourceHandler}{wxxmlresourcehandler}
+{\bf IMPORTANT NOTE:} XRC is not yet a part of the core wxWindows library, so
+please see the next section for how to compile and link it. Otherwise if you
+try to use it, you will get link errors.
+
The XML-based resource system, known as XRC, allows user interface elements such as
dialogs, menu bars and toolbars, to be stored in text files and loaded into
the application at run-time. XRC files can also be compiled into binary XRS files or C++
-\chapter{wxPython Notes}\label{wxPython}
+\section{wxPython overview}\label{wxpython}
+%\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}%
+%\setfooter{\thepage}{}{}{}{}{\thepage}%
-\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}%
-\setfooter{\thepage}{}{}{}{}{\thepage}%
-
-This addendum is written by Robin Dunn, author of the wxPython wrapper
+This topic was written by Robin Dunn, author of the wxPython wrapper.
%----------------------------------------------------------------------
-\section{What is wxPython?}\label{wxpwhat}
+\subsection{What is wxPython?}\label{wxpwhat}
wxPython is a blending of the wxWindows GUI classes and the
\urlref{Python}{http://www.python.org/} programming language.
details about getting wxPython working for you.
%----------------------------------------------------------------------
-\section{Why use wxPython?}\label{wxpwhy}
+\subsection{Why use wxPython?}\label{wxpwhy}
So why would you want to use wxPython over just C++ and wxWindows?
Personally I prefer using Python for everything. I only use C++ when I
should be a straight forward task.
%----------------------------------------------------------------------
-\section{Other Python GUIs}\label{wxpother}
+\subsection{Other Python GUIs}\label{wxpother}
There are other GUI solutions out there for Python.
cross-platform compatible. See \urlref{this link}{http://www.python.org/download/Contributed.html\#Graphics}
for a listing of a few of them.
-
%----------------------------------------------------------------------
-\section{Using wxPython}\label{wxpusing}
+\subsection{Using wxPython}\label{wxpusing}
\wxheading{First things first...}
\end{enumerate}
%----------------------------------------------------------------------
-\section{wxWindows classes implemented in wxPython}\label{wxpclasses}
+\subsection{wxWindows classes implemented in wxPython}\label{wxpclasses}
The following classes are supported in wxPython. Most provide nearly
full implementations of the public interfaces specified in the C++
\end{itemize}
%----------------------------------------------------------------------
-\section{Where to go for help}\label{wxphelp}
+\subsection{Where to go for help}\label{wxphelp}
Since wxPython is a blending of multiple technologies, help comes from
multiple sources. See
wxpython-users@lists.wxwindows.org
-
-\chapter{wxHTML Notes}\label{wxhtml}
+\section{wxHTML overview}\label{wxhtml}
-\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}%
-\setfooter{\thepage}{}{}{}{}{\thepage}%
-
-This addendum is written by Vaclav Slavik, the author of the wxHTML library.
+This topic was written by Vaclav Slavik, the author of the wxHTML library.
The wxHTML library provides classes for parsing and displaying HTML.
-(It is not intended to be a high-end HTML browser. If you are looking for
-something like that try \urlref{http://www.mozilla.org}{http://www.mozilla.org})
+It is not intended to be a high-end HTML browser. If you are looking for
+something like that try \urlref{http://www.mozilla.org}{http://www.mozilla.org}.
wxHTML can be used as a generic rich text viewer - for example to display
a nice About Box (like those of GNOME apps) or to display the result of
wxHtmlWindow supports tag handlers. This means that you can easily
extend wxHtml library with new, unsupported tags. Not only that,
-you can even use your own application specific tags!
-See lib/mod\_*.cpp files for details.
+you can even use your own application-specific tags!
+See \verb$src/html/m_*.cpp$ files for details.
-There is a generic (i.e. independent on wxHtmlWindow) wxHtmlParser class.
+There is a generic wxHtmlParser class,
+independent of wxHtmlWindow.
\input htmlstrt.tex
\input htmlprn.tex
% xmlres.h at 22/Jan/02 23:08:28
%
-
\section{\class{wxXmlResource}}\label{wxxmlresource}
+This is the main class for interacting with the XML-based resource system.
+
+The class holds XML resources from one or more .xml files, binary files or zip archive files.
+
+See \helpref{XML-based resource system overview}{xrcoverview} for details.
-This class holds XML resources from one or more .xml files
-(or derived forms, either binary or zipped -- see manual for
-details).
+{\bf NOTE:} XRC is not yet a part of the core wxWindows library, so
+please see the overview for how to compile and link it. Otherwise if you
+try to use it, you will get link errors.
\wxheading{Derived from}
\wxheading{Include files}
-<xmlres.h>
+<wx/xrc/xmlres.h>
\wxheading{Data structures}
-\latexignore{\rtfignore{\wxheading{Members}}}
+\begin{enumerate}
+enum wxXmlResourceFlags
+{
+ wxXRC_USE_LOCALE = 1,
+ wxXRC_NO_SUBCLASSING = 2
+};
+\end{enumerate}
+\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxXmlResource::wxXmlResource}\label{wxxmlresourcewxxmlresource}
\func{}{wxXmlResource}{\param{const wxString\& }{filemask}, \param{int }{flags = wxXRC\_USE\_LOCALE}}
Constructor.
-Flags: wxXRC\_USE\_LOCALE
-translatable strings will be translated via \_()
-wxXRC\_NO\_SUBCLASSING
-subclass property of object nodes will be ignored
-(useful for previews in XRC editors)
+\docparam{filemask}{The XRC file, archive file, or wildcard specification that will be used to
+load all resource files inside a zip archive.}
+
+\docparam{flags}{wxXRC\_USE\_LOCALE: translatable strings will be translated via \_().
+wxXRC\_NO\_SUBCLASSING: subclass property of object nodes will be ignored
+(useful for previews in XRC editors).}
\func{}{wxXmlResource}{\param{int }{flags = wxXRC\_USE\_LOCALE}}
Constructor.
-Flags: wxXRC\_USE\_LOCALE
-translatable strings will be translated via \_()
-wxXRC\_NO\_SUBCLASSING
-subclass property of object nodes will be ignored
-(useful for previews in XRC editors)
+\docparam{flags}{wxXRC\_USE\_LOCALE: translatable strings will be translated via \_().
+wxXRC\_NO\_SUBCLASSING: subclass property of object nodes will be ignored
+(useful for previews in XRC editors).}
\membersection{wxXmlResource::\destruct{wxXmlResource}}\label{wxxmlresourcedtor}
Destructor.
-
\membersection{wxXmlResource::AddHandler}\label{wxxmlresourceaddhandler}
\func{void}{AddHandler}{\param{wxXmlResourceHandler* }{handler}}
-Initialize only a specific handler (or custom handler). Convention says
-that handler name is equal to the control's name plus 'XmlHandler', for example
+Initializes only a specific handler (or custom handler). Convention says
+that the handler name is equal to the control's name plus 'XmlHandler', for example
wxTextCtrlXmlHandler, wxHtmlWindowXmlHandler. The XML resource compiler
-(xmlres) can create include file that contains initialization code for
+(wxxrc) can create include file that contains initialization code for
all controls used within the resource.
-
\membersection{wxXmlResource::AttachUnknownControl}\label{wxxmlresourceattachunknowncontrol}
\func{bool}{AttachUnknownControl}{\param{const wxString\& }{name}, \param{wxWindow* }{control}, \param{wxWindow* }{parent = NULL}}
Attaches an unknown control to the given panel/window/dialog.
Unknown controls are used in conjunction with <object class="unknown">.
-
\membersection{wxXmlResource::ClearHandlers}\label{wxxmlresourceclearhandlers}
\func{void}{ClearHandlers}{\void}
-Removes all handlers
-
+Removes all handlers.
\membersection{wxXmlResource::CompareVersion}\label{wxxmlresourcecompareversion}
\constfunc{int}{CompareVersion}{\param{int }{major}, \param{int }{minor}, \param{int }{release}, \param{int }{revision}}
-Compares resources version to argument. Returns -1 if resources version
-is less than the argument, +1 if greater and 0 if they equal.
-
+Compares the XRC version to the argument. Returns -1 if the XRC version
+is less than the argument, +1 if greater, and 0 if they equal.
\membersection{wxXmlResource::CreateResFromNode}\label{wxxmlresourcecreateresfromnode}
Creates a resource from information in the given node.
-
\membersection{wxXmlResource::DoFindResource}\label{wxxmlresourcedofindresource}
\func{wxXmlNode*}{DoFindResource}{\param{wxXmlNode* }{parent}, \param{const wxString\& }{name}, \param{const wxString\& }{classname}, \param{bool }{recursive}}
Helper function: finds a resource (calls UpdateResources) and returns a node containing it.
-
\membersection{wxXmlResource::FindResource}\label{wxxmlresourcefindresource}
\func{wxXmlNode*}{FindResource}{\param{const wxString\& }{name}, \param{const wxString\& }{classname}, \param{bool }{recursive = FALSE}}
Finds a resource (calls UpdateResources) and returns a node containing it.
-
\membersection{wxXmlResource::Get}\label{wxxmlresourceget}
\func{wxXmlResource*}{Get}{\void}
-Singleton accessors.
Gets the global resources object or creates one if none exists.
-
\membersection{wxXmlResource::GetFlags}\label{wxxmlresourcegetflags}
\func{int}{GetFlags}{\void}
Returns flags, which may be a bitlist of wxXRC\_USE\_LOCALE and wxXRC\_NO\_SUBCLASSING.
-
\membersection{wxXmlResource::GetVersion}\label{wxxmlresourcegetversion}
\constfunc{long}{GetVersion}{\void}
Returns version information (a.b.c.d = d+ 256*c + 256\verb|^|2*b + 256\verb|^|3*a).
-
\membersection{wxXmlResource::GetXMLID}\label{wxxmlresourcegetxmlid}
\func{int}{GetXMLID}{\param{const wxChar* }{str\_id}}
-Returns a numeric ID that is equivalent to the string id used in an XML
+Returns a numeric ID that is equivalent to the string ID used in an XML
resource. To be used in event tables.
-Macro XMLID is provided for convenience
-
+The macro \verb$XMLID(name)$ is provided for convenience.
\membersection{wxXmlResource::InitAllHandlers}\label{wxxmlresourceinitallhandlers}
\func{void}{InitAllHandlers}{\void}
-Initialize handlers for all supported controls/windows. This will
+Initializes handlers for all supported controls/windows. This will
make the executable quite big because it forces linking against
most of the wxWindows library.
-
\membersection{wxXmlResource::Load}\label{wxxmlresourceload}
\func{bool}{Load}{\param{const wxString\& }{filemask}}
Loads resources from XML files that match given filemask.
This method understands VFS (see filesys.h).
-
\membersection{wxXmlResource::LoadBitmap}\label{wxxmlresourceloadbitmap}
\func{wxBitmap}{LoadBitmap}{\param{const wxString\& }{name}}
Loads a bitmap resource from a file.
-
\membersection{wxXmlResource::LoadDialog}\label{wxxmlresourceloaddialog}
\func{wxDialog*}{LoadDialog}{\param{wxWindow* }{parent}, \param{const wxString\& }{name}}
-Loads a dialog. dlg points to parent window (if any).
-
+Loads a dialog. {\it dlg} points to a parent window (if any).
\func{bool}{LoadDialog}{\param{wxDialog* }{dlg}, \param{wxWindow* }{parent}, \param{const wxString\& }{name}}
-Loads a dialog. dlg points to parent window (if any). This form
-is used to finish creation of already existing instance (main reason
-for this is that you may want to use derived class with new event table)
-Example (typical usage):
-MyDialog dlg;
-wxTheXmlResource->LoadDialog(\&dlg, mainFrame, "my\_dialog");
-dlg->ShowModal();
+Loads a dialog. {\it dlg} points to parent window (if any).
+
+This form is used to finish creation of an already existing instance (the main reason
+for this is that you may want to use derived class with a new event table).
+Example:
+
+\begin{verbatim}
+ MyDialog dlg;
+ wxTheXmlResource->LoadDialog(&dlg, mainFrame, "my_dialog");
+ dlg->ShowModal();
+\end{verbatim}
\membersection{wxXmlResource::LoadFrame}\label{wxxmlresourceloadframe}
Loads a frame.
-
\membersection{wxXmlResource::LoadIcon}\label{wxxmlresourceloadicon}
\func{wxIcon}{LoadIcon}{\param{const wxString\& }{name}}
Loads an icon resource from a file.
-
\membersection{wxXmlResource::LoadMenu}\label{wxxmlresourceloadmenu}
\func{wxMenu*}{LoadMenu}{\param{const wxString\& }{name}}
Loads menu from resource. Returns NULL on failure.
-
\membersection{wxXmlResource::LoadMenuBar}\label{wxxmlresourceloadmenubar}
\func{wxMenuBar*}{LoadMenuBar}{\param{wxWindow* }{parent}, \param{const wxString\& }{name}}
-Loads menubar from resource. Returns NULL on failure.
-
+Loads a menubar from resource. Returns NULL on failure.
\func{wxMenuBar*}{LoadMenuBar}{\param{const wxString\& }{name}}
-Loads menubar from resource. Returns NULL on failure.
-
+Loads a menubar from resource. Returns NULL on failure.
\membersection{wxXmlResource::LoadPanel}\label{wxxmlresourceloadpanel}
\func{wxPanel*}{LoadPanel}{\param{wxWindow* }{parent}, \param{const wxString\& }{name}}
-Loads a panel. panel points to parent window (if any).
-
+Loads a panel. {\it panel} points to parent window (if any).
\func{bool}{LoadPanel}{\param{wxPanel* }{panel}, \param{wxWindow* }{parent}, \param{const wxString\& }{name}}
-Loads a panel. panel points to parent window (if any). This form
-is used to finish creation of already existing instance.
-
+Loads a panel. {\it panel} points to parent window (if any). This form
+is used to finish creation of an already existing instance.
\membersection{wxXmlResource::LoadToolBar}\label{wxxmlresourceloadtoolbar}
Loads a toolbar.
-
\membersection{wxXmlResource::Set}\label{wxxmlresourceset}
\func{wxXmlResource*}{Set}{\param{wxXmlResource* }{res}}
Sets the global resources object and returns a pointer to the previous one (may be NULL).
-
\membersection{wxXmlResource::UpdateResources}\label{wxxmlresourceupdateresources}
\func{void}{UpdateResources}{\void}
Scans the resources list for unloaded files and loads them. Also reloads
-files that have been modified since last loading.
+files that have been modified since the last load.
wxXmlResourceHandler is an abstract base class for resource handlers
capable of creating a control from an XML node.
+See \helpref{XML-based resource system overview}{xrcoverview} for details.
+
+{\bf NOTE:} XRC is not yet a part of the core wxWindows library, so
+please see the overview for how to compile and link it. Otherwise if you
+try to use it, you will get link errors.
+
\wxheading{Derived from}
\helpref{wxObject}{wxobject}
<wx/xrc/xmlres.h>
-\wxheading{Data structures}
-
\latexignore{\rtfignore{\wxheading{Members}}}
-
\membersection{wxXmlResourceHandler::wxXmlResourceHandler}\label{wxxmlresourcehandlerwxxmlresourcehandler}
\func{}{wxXmlResourceHandler}{\void}
-Constructor.
-
+Default constructor.
\membersection{wxXmlResourceHandler::\destruct{wxXmlResourceHandler}}\label{wxxmlresourcehandlerdtor}
Destructor.
-
\membersection{wxXmlResourceHandler::AddStyle}\label{wxxmlresourcehandleraddstyle}
\func{void}{AddStyle}{\param{const wxString\& }{name}, \param{int }{value}}
Add a style flag (e.g. wxMB\_DOCKABLE) to the list of flags
understood by this handler.
-
\membersection{wxXmlResourceHandler::AddWindowStyles}\label{wxxmlresourcehandleraddwindowstyles}
\func{void}{AddWindowStyles}{\void}
Add styles common to all wxWindow-derived classes.
-
\membersection{wxXmlResourceHandler::CanHandle}\label{wxxmlresourcehandlercanhandle}
\func{bool}{CanHandle}{\param{wxXmlNode* }{node}}
Returns TRUE if it understands this node and can create
a resource from it, FALSE otherwise.
-
\membersection{wxXmlResourceHandler::CreateChildren}\label{wxxmlresourcehandlercreatechildren}
\func{void}{CreateChildren}{\param{wxObject* }{parent}, \param{bool }{this\_hnd\_only = FALSE}}
Creates children.
-
\membersection{wxXmlResourceHandler::CreateChildrenPrivately}\label{wxxmlresourcehandlercreatechildrenprivately}
\func{void}{CreateChildrenPrivately}{\param{wxObject* }{parent}, \param{wxXmlNode* }{rootnode = NULL}}
Helper function.
-
\membersection{wxXmlResourceHandler::CreateResFromNode}\label{wxxmlresourcehandlercreateresfromnode}
\func{wxObject*}{CreateResFromNode}{\param{wxXmlNode* }{node}, \param{wxObject* }{parent}, \param{wxObject* }{instance = NULL}}
Creates a resource from a node.
-
\membersection{wxXmlResourceHandler::CreateResource}\label{wxxmlresourcehandlercreateresource}
\func{wxObject*}{CreateResource}{\param{wxXmlNode* }{node}, \param{wxObject* }{parent}, \param{wxObject* }{instance}}
Creates an object (menu, dialog, control, ...) from an XML node.
-Should check for validity.
-parent is a higher-level object (usually window, dialog or panel)
+Should check for validity. {\it parent} is a higher-level object (usually window, dialog or panel)
that is often neccessary to create the resource.
-If instance is non-NULL it should not create a new instance via 'new' but
+If {\bf instance} is non-NULL it should not create a new instance via 'new' but
should rather use this one, and call its Create method.
-
\membersection{wxXmlResourceHandler::DoCreateResource}\label{wxxmlresourcehandlerdocreateresource}
\func{wxObject*}{DoCreateResource}{\void}
-This one is called from CreateResource after variables
+Called from CreateResource after variables
were filled.
-
\membersection{wxXmlResourceHandler::GetBitmap}\label{wxxmlresourcehandlergetbitmap}
\func{wxBitmap}{GetBitmap}{\param{const wxString\& }{param = wxT("bitmap")}, \param{wxSize }{size = wxDefaultSize}}
Gets a bitmap.
-
\membersection{wxXmlResourceHandler::GetBool}\label{wxxmlresourcehandlergetbool}
\func{bool}{GetBool}{\param{const wxString\& }{param}, \param{bool }{defaultv = FALSE}}
Gets a bool flag (1, t, yes, on, true are TRUE, everything else is FALSE).
-
\membersection{wxXmlResourceHandler::GetColour}\label{wxxmlresourcehandlergetcolour}
\func{wxColour}{GetColour}{\param{const wxString\& }{param}}
Gets colour in HTML syntax (\#RRGGBB).
-
\membersection{wxXmlResourceHandler::GetCurFileSystem}\label{wxxmlresourcehandlergetcurfilesystem}
\func{wxFileSystem\&}{GetCurFileSystem}{\void}
+Returns the current file system.
\membersection{wxXmlResourceHandler::GetDimension}\label{wxxmlresourcehandlergetdimension}
Gets a dimension (may be in dialog units).
-
\membersection{wxXmlResourceHandler::GetFont}\label{wxxmlresourcehandlergetfont}
\func{wxFont}{GetFont}{\param{const wxString\& }{param = wxT("font")}}
Gets a font.
-
\membersection{wxXmlResourceHandler::GetID}\label{wxxmlresourcehandlergetid}
\func{int}{GetID}{\void}
Returns the XMLID.
-
\membersection{wxXmlResourceHandler::GetIcon}\label{wxxmlresourcehandlergeticon}
\func{wxIcon}{GetIcon}{\param{const wxString\& }{param = wxT("icon")}, \param{wxSize }{size = wxDefaultSize}}
-Gets an icon.
-
+Returns an icon.
\membersection{wxXmlResourceHandler::GetLong}\label{wxxmlresourcehandlergetlong}
Gets the integer value from the parameter.
-
\membersection{wxXmlResourceHandler::GetName}\label{wxxmlresourcehandlergetname}
\func{wxString}{GetName}{\void}
Returns the resource name.
-
\membersection{wxXmlResourceHandler::GetNodeContent}\label{wxxmlresourcehandlergetnodecontent}
\func{wxString}{GetNodeContent}{\param{wxXmlNode* }{node}}
-Gets node content from wxXML\_ENTITY\_NODE
-The problem is, <tag>content<tag> is represented as
-wxXML\_ENTITY\_NODE name="tag", content=""
-|-- wxXML\_TEXT\_NODE or
-wxXML\_CDATA\_SECTION\_NODE name="" content="content"
-
+Gets node content from wxXML\_ENTITY\_NODE.
\membersection{wxXmlResourceHandler::GetParamNode}\label{wxxmlresourcehandlergetparamnode}
Finds the node or returns NULL.
-
\membersection{wxXmlResourceHandler::GetParamValue}\label{wxxmlresourcehandlergetparamvalue}
\func{wxString}{GetParamValue}{\param{const wxString\& }{param}}
Finds the parameter value or returns the empty string.
-
\membersection{wxXmlResourceHandler::GetPosition}\label{wxxmlresourcehandlergetposition}
\func{wxPoint}{GetPosition}{\param{const wxString\& }{param = wxT("pos")}}
Gets the position (may be in dialog units).
-
\membersection{wxXmlResourceHandler::GetSize}\label{wxxmlresourcehandlergetsize}
\func{wxSize}{GetSize}{\param{const wxString\& }{param = wxT("size")}}
Gets the size (may be in dialog units).
-
\membersection{wxXmlResourceHandler::GetStyle}\label{wxxmlresourcehandlergetstyle}
\func{int}{GetStyle}{\param{const wxString\& }{param = wxT("style")}, \param{int }{defaults = 0}}
Gets style flags from text in form "flag | flag2| flag3 |..."
-Only understads flags added with AddStyle
-
+Only understands flags added with AddStyle.
\membersection{wxXmlResourceHandler::GetText}\label{wxxmlresourcehandlergettext}
Check to see if a parameter exists.
-
\membersection{wxXmlResourceHandler::IsOfClass}\label{wxxmlresourcehandlerisofclass}
\func{bool}{IsOfClass}{\param{wxXmlNode* }{node}, \param{const wxString\& }{classname}}
Convenience function. Returns true if the node has a property class equal to classname,
e.g. <object class="wxDialog">.
-
\membersection{wxXmlResourceHandler::SetParentResource}\label{wxxmlresourcehandlersetparentresource}
\func{void}{SetParentResource}{\param{wxXmlResource* }{res}}
Sets the parent resource.
-
\membersection{wxXmlResourceHandler::SetupWindow}\label{wxxmlresourcehandlersetupwindow}
\func{void}{SetupWindow}{\param{wxWindow* }{wnd}}