Doc updates.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@4651 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -79,27 +79,29 @@ here are some of the benefits:
|
|||||||
\item Low cost (free, in fact!)
|
\item Low cost (free, in fact!)
|
||||||
\item You get the source.
|
\item You get the source.
|
||||||
\item Available on a variety of popular platforms.
|
\item Available on a variety of popular platforms.
|
||||||
\item Works with almost all popular C++ compilers.
|
\item Works with almost all popular C++ compilers and Python.
|
||||||
\item Several example programs.
|
\item Over 40 example programs.
|
||||||
\item Over 900 pages of printable and on-line documentation.
|
\item Over 900 pages of printable and on-line documentation.
|
||||||
\item Includes Tex2RTF, to allow you to produce your own documentation
|
\item Includes Tex2RTF, to allow you to produce your own documentation
|
||||||
in Windows Help, HTML and Word RTF formats.
|
in Windows Help, HTML and Word RTF formats.
|
||||||
\item Simple-to-use, object-oriented API.
|
\item Simple-to-use, object-oriented API.
|
||||||
\item Flexible event system.
|
\item Flexible event system.
|
||||||
\item Graphics calls include lines, rounded rectangles, splines, polylines, etc.
|
\item Graphics calls include lines, rounded rectangles, splines, polylines, etc.
|
||||||
\item Constraint-based layout option.
|
\item Constraint-based and sizer-based layouting.
|
||||||
\item Print/preview and document/view architectures.
|
\item Print/preview and document/view architectures.
|
||||||
\item Toolbar, notebook, tree control, advanced list control classes.
|
\item Toolbar, notebook, tree control, advanced list control classes.
|
||||||
\item PostScript generation under Unix, normal MS Windows printing on the
|
\item PostScript generation under Unix, normal MS Windows printing on the PC.
|
||||||
PC.
|
|
||||||
\item MDI (Multiple Document Interface) support.
|
\item MDI (Multiple Document Interface) support.
|
||||||
\item Can be used to create DLLs under Windows, dynamic libraries on Unix.
|
\item Can be used to create DLLs under Windows, dynamic libraries on Unix.
|
||||||
\item Common dialogs for file browsing, printing, colour selection, etc.
|
\item Common dialogs for file browsing, printing, colour selection, etc.
|
||||||
\item Under MS Windows, support for creating metafiles and copying
|
\item Under MS Windows, support for creating metafiles and copying
|
||||||
them to the clipboard.
|
them to the clipboard.
|
||||||
\item An API for invoking help from applications.
|
\item An API for invoking help from applications.
|
||||||
|
\item Ready to use HTML window (supporting a subset of HTML).
|
||||||
\item Dialog Editor for building dialogs.
|
\item Dialog Editor for building dialogs.
|
||||||
\item Network support via a family of socket and protocol classes.
|
\item Network support via a family of socket and protocol classes.
|
||||||
|
\item Support for platform independent image procesing.
|
||||||
|
\item Built-in support for many file formats (BMP, PNG, JPEG, GIF, XPM, PNM, PCX).
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
\section{Changes from version 1.xx}\label{versionchanges}
|
\section{Changes from version 1.xx}\label{versionchanges}
|
||||||
@@ -165,6 +167,36 @@ borders;
|
|||||||
\item MDI classes brought out of wxFrame into separate classes, and made more flexible.
|
\item MDI classes brought out of wxFrame into separate classes, and made more flexible.
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
|
|
||||||
|
\section{Changes from version 2.0}\label{versionchanges20}
|
||||||
|
|
||||||
|
These are a few of the differences between versions 2.0 and 2.2.
|
||||||
|
|
||||||
|
Removals:
|
||||||
|
|
||||||
|
\begin{itemize}\itemsep=0pt
|
||||||
|
\item GTK 1.0 no longer supported.
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
|
Additions and changes:
|
||||||
|
|
||||||
|
\begin{itemize}\itemsep=0pt
|
||||||
|
\item Corrected many classes to conform better to documented behaviour.
|
||||||
|
\item Added handlers for more image formats (Now GIF, JPEG, PCX, BMP, XPM, PNG, PNM).
|
||||||
|
\item Improved support for socket and network functions.
|
||||||
|
\item Support for different national font encodings.
|
||||||
|
\item Sizer based layout system.
|
||||||
|
\item HTML widget and help system.
|
||||||
|
\item Added some controls (e.g. wxSpinCtrl) and supplemented many.
|
||||||
|
\item Many optical improvements to GTK port.
|
||||||
|
\item Support for menu accelerators in GTK port.
|
||||||
|
\item Enhanced and improved support for scrolling, including child windows.
|
||||||
|
\item Complete rewrite of clipboard and drag'n'drop classes.
|
||||||
|
\item Improved support for ODBC databases.
|
||||||
|
\item Improved tab traversal in dialogs.
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
|
|
||||||
\section{wxWindows requirements}\label{requirements}
|
\section{wxWindows requirements}\label{requirements}
|
||||||
|
|
||||||
To make use of wxWindows, you currently need one or both of the
|
To make use of wxWindows, you currently need one or both of the
|
||||||
@@ -184,7 +216,7 @@ Metrowerks CodeWarrior.
|
|||||||
|
|
||||||
\begin{enumerate}\itemsep=0pt
|
\begin{enumerate}\itemsep=0pt
|
||||||
\item Almost any C++ compiler, including GNU C++ (EGCS 1.1.1 or above).
|
\item Almost any C++ compiler, including GNU C++ (EGCS 1.1.1 or above).
|
||||||
\item Almost any Unix workstation, and one of: GTK+ 1.0, GTK+ 1.2, Motif 1.2 or higher, Lesstif.
|
\item Almost any Unix workstation, and one of: GTK+ 1.2, Motif 1.2 or higher, Lesstif.
|
||||||
\item At least 60 MB of disk space.
|
\item At least 60 MB of disk space.
|
||||||
\end{enumerate}
|
\end{enumerate}
|
||||||
|
|
||||||
@@ -287,31 +319,52 @@ multi-megabyte .pch files.
|
|||||||
|
|
||||||
\section{Libraries}
|
\section{Libraries}
|
||||||
|
|
||||||
Please the wxGTK or wxMotif documentation for use of the Unix version of wxWindows.
|
The GTK and Motif ports of wxWindow can create either a static library or a shared
|
||||||
|
library on most Unix or Unix-like systems. The static library is called libwx_gtk.a
|
||||||
|
and libwx_motif.a whereas the name of the shared library is dependent on the
|
||||||
|
system it is created on and the version you are using. The library name for the
|
||||||
|
GTK version of wxWindows 2.2 on Linux and Solaris will be libwx_gtk-2.2.so.0.0.0,
|
||||||
|
on HP-UX, it will be libwx_gtk-2.2.sl, on AIX just libwx_gtk.a etc.
|
||||||
|
|
||||||
Under Windows, use the library wx.lib for stand-alone Windows
|
Under Windows, use the library wx.lib for stand-alone Windows
|
||||||
applications, or wxdll.lib for creating DLLs.
|
applications, or wxdll.lib for creating DLLs.
|
||||||
|
|
||||||
\section{Configuration}
|
\section{Configuration}
|
||||||
|
|
||||||
Options are configurable in the file
|
Options are configurable in the file
|
||||||
\rtfsp{\tt "wx/XXX/setup.h"} where XXX is the required platform (such as msw, motif, gtk, mac). Some settings are a matter
|
\rtfsp{\tt "wx/XXX/setup.h"} where XXX is the required platform (such as msw, motif, gtk, mac). Some
|
||||||
of taste, some help with platform-specific problems, and
|
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
|
others can be set to minimize the size of the library. Please see the setup.h file
|
||||||
and {\tt install.txt} files for details on configuration.
|
and {\tt install.txt} files for details on configuration.
|
||||||
|
|
||||||
|
Under Unix (GTK and Motif) the corresponding setup.h files are generated automatically
|
||||||
|
when configuring the wxWindows using the "configure" script. When using the RPM packages
|
||||||
|
for installing wxWindows on Linux, a correct setup.h is shipped in the package and
|
||||||
|
this must not be changed.
|
||||||
|
|
||||||
\section{Makefiles}
|
\section{Makefiles}
|
||||||
|
|
||||||
At the moment there is no attempt to make Unix makefiles and
|
At the moment there is no attempt to make Unix makefiles and
|
||||||
PC makefiles compatible, i.e. one makefile is required for
|
PC makefiles compatible, i.e. one makefile is required for
|
||||||
each environment. wxGTK has its own configure system which can also
|
each environment. The Unix ports use a sophisticated system based
|
||||||
be used with wxMotif, although wxMotif has a simple makefile system of its own.
|
on the GNU autoconf tool and this system will create the
|
||||||
|
makefiles as required on the respective platform. Although the
|
||||||
|
makefiles are not identical in Windows, Mac and Unix, care has
|
||||||
|
been taken to make them relatively similar so that moving from
|
||||||
|
one platform to another will be painless.
|
||||||
|
|
||||||
Sample makefiles for Unix (suffix .UNX), MS C++ (suffix .DOS and .NT), Borland
|
Sample makefiles for Unix (suffix .unx), MS C++ (suffix .DOS and .NT), Borland
|
||||||
C++ (.BCC and .B32) and Symantec C++ (.SC) are included for the library, demos
|
C++ (.BCC and .B32) and Symantec C++ (.SC) are included for the library, demos
|
||||||
and utilities.
|
and utilities.
|
||||||
|
|
||||||
The controlling makefile for wxWindows is in the platform-specific
|
The controlling makefile for wxWindows is in the MS-Windows
|
||||||
directory, such as {\tt src/msw} or {\tt src/motif}.
|
directory {\tt src/msw} for the different Windows compiler and
|
||||||
|
in the build directory when using the Unix ports. The build
|
||||||
|
directory can be chosen by the user. It is the directory in
|
||||||
|
which the "configure" script is run. This can be the normal
|
||||||
|
base directory (by running {\tt ./configure} there) or any other
|
||||||
|
directory (e.g. {\tt ../configure} after creating a build-directory
|
||||||
|
in the directory level above the base directory).
|
||||||
|
|
||||||
Please see the platform-specific {\tt install.txt} file for further details.
|
Please see the platform-specific {\tt install.txt} file for further details.
|
||||||
|
|
||||||
|
@@ -47,16 +47,16 @@ method.
|
|||||||
\wxheading{Remarks}
|
\wxheading{Remarks}
|
||||||
|
|
||||||
Note that this requires that the event has a fully implemented Clone()
|
Note that this requires that the event has a fully implemented Clone()
|
||||||
methods so that the event can be duplicated and stored until later processing.
|
method so that the event can be duplicated and stored until it gets processed later.
|
||||||
Not all events in wxWindows currently have a fully implemented Clone() method,
|
Not all events in wxWindows currently have a fully implemented Clone() method,
|
||||||
you may have to look at the source to verify this.
|
so you may have to look at the source to verify this.
|
||||||
|
|
||||||
This methods automatically wakes up idle handling even if the underlying window
|
This methods automatically wakes up idle handling even if the underlying window
|
||||||
system is currently idle anyway and thus would not send any idle events. (Waking
|
system is currently idle anyway and thus would not send any idle events. (Waking
|
||||||
up the idle handling is done calling \helpref{::wxWakeUpIdle}{wxwakeupidle}.)
|
up the idle handling is done calling \helpref{::wxWakeUpIdle}{wxwakeupidle}.)
|
||||||
|
|
||||||
This is also the method to call for inter-thread communication. When using
|
This is also the method to call for inter-thread communication. In
|
||||||
a multi-threading program, you will often have to inform the main GUI thread
|
a multi-threaded program, you will often have to inform the main GUI thread
|
||||||
about the status of other working threads and this has to be done using this
|
about the status of other working threads and this has to be done using this
|
||||||
method - which also means that this method is thread safe by means of using
|
method - which also means that this method is thread safe by means of using
|
||||||
crtical sections where needed.
|
crtical sections where needed.
|
||||||
@@ -109,10 +109,10 @@ is an alternative to the use of static event tables. See the 'dynamic' sample fo
|
|||||||
\param{wxObject*}{ userData = NULL}}
|
\param{wxObject*}{ userData = NULL}}
|
||||||
|
|
||||||
Disconnects the given function dynamically from the event handler, using the specified
|
Disconnects the given function dynamically from the event handler, using the specified
|
||||||
parameters as search criteria and returning TRUE if a matching event handler has been
|
parameters as search criteria and returning TRUE if a matching function has been
|
||||||
found and removed. This method can only disconnect from functions which have been added
|
found and removed. This method can only disconnect functions which have been added
|
||||||
using the \helpref{wxEvtHandler::Connect}{wxevthandlerconnect} method. There is no way
|
using the \helpref{wxEvtHandler::Connect}{wxevthandlerconnect} method. There is no way
|
||||||
to disconnect from events used in the (static) event tables.
|
to disconnect functions connected using the (static) event tables.
|
||||||
|
|
||||||
\wxheading{Parameters}
|
\wxheading{Parameters}
|
||||||
|
|
||||||
@@ -124,19 +124,18 @@ to disconnect from events used in the (static) event tables.
|
|||||||
|
|
||||||
\docparam{function}{The event handler function.}
|
\docparam{function}{The event handler function.}
|
||||||
|
|
||||||
\docparam{userData}{Data to be associated with the event table entry.}
|
\docparam{userData}{Data associated with the event table entry.}
|
||||||
|
|
||||||
\membersection{wxEvtHandler::GetClientData}\label{wxevthandlergetclientdata}
|
\membersection{wxEvtHandler::GetClientData}\label{wxevthandlergetclientdata}
|
||||||
|
|
||||||
\func{char* }{GetClientData}{\void}
|
\func{void* }{GetClientData}{\void}
|
||||||
|
|
||||||
Gets user-supplied client data.
|
Gets user-supplied client data.
|
||||||
|
|
||||||
\wxheading{Remarks}
|
\wxheading{Remarks}
|
||||||
|
|
||||||
Normally, any extra data the programmer wishes to associate with the object
|
Normally, any extra data the programmer wishes to associate with the object
|
||||||
should be made available by deriving a new class
|
should be made available by deriving a new class with new data members.
|
||||||
with new data members.
|
|
||||||
|
|
||||||
\wxheading{See also}
|
\wxheading{See also}
|
||||||
|
|
||||||
@@ -270,7 +269,7 @@ fail, and searching will continue.
|
|||||||
|
|
||||||
\membersection{wxEvtHandler::SetClientData}\label{wxevthandlersetclientdata}
|
\membersection{wxEvtHandler::SetClientData}\label{wxevthandlersetclientdata}
|
||||||
|
|
||||||
\func{void}{SetClientData}{\param{char* }{data}}
|
\func{void}{SetClientData}{\param{void* }{data}}
|
||||||
|
|
||||||
Sets user-supplied client data.
|
Sets user-supplied client data.
|
||||||
|
|
||||||
@@ -280,10 +279,9 @@ Sets user-supplied client data.
|
|||||||
|
|
||||||
\wxheading{Remarks}
|
\wxheading{Remarks}
|
||||||
|
|
||||||
Normally, any extra data the programmer wishes
|
Normally, any extra data the programmer wishes to associate with
|
||||||
to associate with the object should be made available by deriving a new class
|
the object should be made available by deriving a new class
|
||||||
with new data members.
|
with new data members.
|
||||||
%TODO: make this void*, char* only in compatibility mode.
|
|
||||||
|
|
||||||
\wxheading{See also}
|
\wxheading{See also}
|
||||||
|
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
\section{File Systems}\label{fs}
|
\section{wxFileSystem}\label{fs}
|
||||||
|
|
||||||
The wxHTML library uses a {\bf virtual file systems} mechanism
|
The wxHTML library uses a {\bf virtual file systems} mechanism
|
||||||
similar to the one used in Midnight Commander, Dos Navigator,
|
similar to the one used in Midnight Commander, Dos Navigator,
|
||||||
|
166
docs/latex/wx/hworld.tex
Normal file
166
docs/latex/wx/hworld.tex
Normal file
@@ -0,0 +1,166 @@
|
|||||||
|
\section{wxWindows "Hello World"}\label{helloworld}
|
||||||
|
|
||||||
|
As many people have requested a mini-sample to be published here
|
||||||
|
so that some quick judgements concerning syntax
|
||||||
|
and basic principles can be made, you can now look at wxWindows'
|
||||||
|
"Hello World":
|
||||||
|
|
||||||
|
You have to include wxWindows's header files, of course. This can
|
||||||
|
be done on a file by file basis (such as #include "wx/window.h")
|
||||||
|
or using one global include (#include "wx/wx.h"). This is
|
||||||
|
also useful on platforms which support precompiled headers such
|
||||||
|
as all major compilers on the Windows platform.
|
||||||
|
|
||||||
|
\begin{verbatim}
|
||||||
|
//
|
||||||
|
// file name: hworld.cpp
|
||||||
|
//
|
||||||
|
// purpose: wxWindows "Hello world"
|
||||||
|
//
|
||||||
|
|
||||||
|
// For compilers that support precompilation, includes "wx/wx.h".
|
||||||
|
#include "wx/wxprec.h"
|
||||||
|
|
||||||
|
#ifdef __BORLANDC__
|
||||||
|
#pragma hdrstop
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef WX_PRECOMP
|
||||||
|
#include "wx/wx.h"
|
||||||
|
#endif
|
||||||
|
\end{verbatim}
|
||||||
|
|
||||||
|
Practically every app should define a new class derived from wxApp.
|
||||||
|
By overriding wxApp's OnInit() the program can be initialized,
|
||||||
|
e.g. by creating a new main window.
|
||||||
|
|
||||||
|
\begin{verbatim}
|
||||||
|
class MyApp: public wxApp
|
||||||
|
{
|
||||||
|
virtual bool OnInit();
|
||||||
|
};
|
||||||
|
\end{verbatim}
|
||||||
|
|
||||||
|
The main window is created by deriving a class from wxFrame and
|
||||||
|
giving it a menu and a status bar in its constructor. Also, any class
|
||||||
|
that wishes to respond to any "event" (such as mouse clicks or
|
||||||
|
messages from the menu or a button) must declare an event table
|
||||||
|
using the macro below. Finally, the way to react to such events
|
||||||
|
must be done in "handlers". In our sample, we react to two menu items,
|
||||||
|
one for "Quit" and one for displaying an "About" window. These
|
||||||
|
handlers should not be virtual.
|
||||||
|
|
||||||
|
\begin{verbatim}
|
||||||
|
class MyFrame: public wxFrame
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size);
|
||||||
|
|
||||||
|
void OnQuit(wxCommandEvent& event);
|
||||||
|
void OnAbout(wxCommandEvent& event);
|
||||||
|
|
||||||
|
private:
|
||||||
|
DECLARE_EVENT_TABLE()
|
||||||
|
};
|
||||||
|
\end{verbatim}
|
||||||
|
|
||||||
|
In order to be able to react to a menu command, it must be given a unique
|
||||||
|
identifier such as a const or an enum.
|
||||||
|
|
||||||
|
\begin{verbatim}
|
||||||
|
enum
|
||||||
|
{
|
||||||
|
ID_Quit = 1,
|
||||||
|
ID_About,
|
||||||
|
};
|
||||||
|
\end{verbatim}
|
||||||
|
|
||||||
|
We then procede to actually implement an event table in which the events
|
||||||
|
are routed to their respective handler functions in the class MyFrame.
|
||||||
|
There are predefined macros for routing all common events, ranging from
|
||||||
|
the selection of a list box entry to a resize event when a user resizes
|
||||||
|
a window on the screen. If -1 is given as the ID, the given handler will be
|
||||||
|
invoked for any event of the specified type, so that you could add just
|
||||||
|
one entry in the event table for all menu commands or all button commands etc.
|
||||||
|
The origin of the event can still be distinguished in the event handler as
|
||||||
|
the (only) parameter in an event handler is a reference to a wxEvent object,
|
||||||
|
which holds various information about the event (such as the ID of and a
|
||||||
|
pointer to the class, which emitted the event).
|
||||||
|
|
||||||
|
\begin{verbatim}
|
||||||
|
BEGIN_EVENT_TABLE(MyFrame, wxFrame)
|
||||||
|
EVT_MENU(ID_Quit, MyFrame::OnQuit)
|
||||||
|
EVT_MENU(ID_About, MyFrame::OnAbout)
|
||||||
|
END_EVENT_TABLE()
|
||||||
|
\end{verbatim}
|
||||||
|
|
||||||
|
As in all programs there must be a "main" function. Under wxWindows main is implemented
|
||||||
|
using this macro, which creates an application instance and starts the program.
|
||||||
|
|
||||||
|
\begin{verbatim}
|
||||||
|
IMPLEMENT_APP(MyApp)
|
||||||
|
\end{verbatim}
|
||||||
|
|
||||||
|
As mentionend above, wxApp::OnInit() is called upon startup and should be
|
||||||
|
used to initialize the program, maybe showing a "splash screen" and creating
|
||||||
|
the main window (or several). The frame should get a title bar text ("Hello World")
|
||||||
|
and a position and start-up size. One frame can also be declared to be the
|
||||||
|
top window. Returning TRUE indicates a successful intialization.
|
||||||
|
|
||||||
|
\begin{verbatim}
|
||||||
|
bool MyApp::OnInit()
|
||||||
|
{
|
||||||
|
MyFrame *frame = new MyFrame( "Hello World", wxPoint(50,50), wxSize(450,340) );
|
||||||
|
frame->Show( TRUE );
|
||||||
|
SetTopWindow( frame );
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
\end{verbatim}
|
||||||
|
|
||||||
|
In the constructor of the main window (or later on) we create a menu with two menu
|
||||||
|
items as well as a status bar to be shown at the bottom of the main window. Both have
|
||||||
|
to be "announced" to the frame with respective calls.
|
||||||
|
|
||||||
|
\begin{verbatim}
|
||||||
|
MyFrame::MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size)
|
||||||
|
: wxFrame((wxFrame *)NULL, -1, title, pos, size)
|
||||||
|
{
|
||||||
|
wxMenu *menuFile = new wxMenu;
|
||||||
|
|
||||||
|
menuFile->Append( ID_About, "&About..." );
|
||||||
|
menuFile->AppendSeparator();
|
||||||
|
menuFile->Append( ID_Quit, "E&xit" );
|
||||||
|
|
||||||
|
wxMenuBar *menuBar = new wxMenuBar;
|
||||||
|
menuBar->Append( menuFile, "&File" );
|
||||||
|
|
||||||
|
SetMenuBar( menuBar );
|
||||||
|
|
||||||
|
CreateStatusBar();
|
||||||
|
SetStatusText( "Welcome to wxWindows!" );
|
||||||
|
}
|
||||||
|
\end{verbatim}
|
||||||
|
|
||||||
|
Here are the actual event handlers. MyFrame::OnQuit() closes the main window
|
||||||
|
by calling Close(). The paramter TRUE indicates that other windows have no veto
|
||||||
|
power such as after asking "Do you really want to close?". If there is no other
|
||||||
|
main window left, the applicatin will quit.
|
||||||
|
|
||||||
|
\begin{verbatim}
|
||||||
|
void MyFrame::OnQuit(wxCommandEvent& WXUNUSED(event))
|
||||||
|
{
|
||||||
|
Close( TRUE );
|
||||||
|
}
|
||||||
|
\end{verbatim}
|
||||||
|
|
||||||
|
MyFrame::OnAbout() will display a small window with some text in it. In this
|
||||||
|
case a typical "About" window with information about the program.
|
||||||
|
|
||||||
|
\begin{verbatim}
|
||||||
|
void MyFrame::OnAbout(wxCommandEvent& WXUNUSED(event))
|
||||||
|
{
|
||||||
|
wxMessageBox( "This is a wxWindows's Hello world sample",
|
||||||
|
"About Hello World", wxOK | wxICON_INFORMATION );
|
||||||
|
}
|
||||||
|
\end{verbatim}
|
||||||
|
|
@@ -25,13 +25,13 @@
|
|||||||
%\special{!/@scaleunit 1 def}
|
%\special{!/@scaleunit 1 def}
|
||||||
\parskip=10pt
|
\parskip=10pt
|
||||||
\parindent=0pt
|
\parindent=0pt
|
||||||
\title{wxWindows 2.1: A portable C++ and Python GUI toolkit}
|
\title{wxWindows 2.2 (beta): A portable C++ and Python GUI toolkit}
|
||||||
\winhelponly{\author{by Julian Smart et al
|
\winhelponly{\author{by Julian Smart et al
|
||||||
%\winhelponly{\\$$\image{1cm;0cm}{wxwin.wmf}$$}
|
%\winhelponly{\\$$\image{1cm;0cm}{wxwin.wmf}$$}
|
||||||
}}
|
}}
|
||||||
\winhelpignore{\author{Julian Smart, Robert Roebling, Vadim Zeitlin,
|
\winhelpignore{\author{Julian Smart, Robert Roebling, Vadim Zeitlin,
|
||||||
Robin Dunn, et al}
|
Robin Dunn, et al}
|
||||||
\date{November 8th 1999}
|
\date{November 20th 1999}
|
||||||
}
|
}
|
||||||
\makeindex
|
\makeindex
|
||||||
\begin{document}
|
\begin{document}
|
||||||
@@ -91,9 +91,549 @@ members of the wxWindows team\\
|
|||||||
Portions (c) 1996 Artificial Intelligence Applications Institute\\
|
Portions (c) 1996 Artificial Intelligence Applications Institute\\
|
||||||
\end{center}
|
\end{center}
|
||||||
|
|
||||||
Please see the wxWindows licence files (preamble.txt, lgpl.txt, gpl.txt, licence.txt,
|
Please also see the wxWindows licence files (preamble.txt, lgpl.txt, gpl.txt, licence.txt,
|
||||||
licendoc.txt) for conditions of software and documentation use.
|
licendoc.txt) for conditions of software and documentation use.
|
||||||
|
|
||||||
|
\begin{verbatim}
|
||||||
|
wxWindows Library License, Version 3
|
||||||
|
====================================
|
||||||
|
|
||||||
|
Copyright (C) 1998 Julian Smart, Robert Roebling, Vadim Zeitlin et al.
|
||||||
|
|
||||||
|
Everyone is permitted to copy and distribute verbatim copies
|
||||||
|
of this license document, but changing it is not allowed.
|
||||||
|
|
||||||
|
WXWINDOWS LIBRARY LICENSE
|
||||||
|
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||||
|
|
||||||
|
This library is free software; you can redistribute it and/or modify it
|
||||||
|
under the terms of the GNU Library General Public 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 MERCHAN-
|
||||||
|
TABILITY 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 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 licensed under the wxWindows Library License, applying
|
||||||
|
either version 3 of the License, or (at your option) any later version of
|
||||||
|
the License as published by the copyright holders of version 3 of the
|
||||||
|
License document.
|
||||||
|
|
||||||
|
2. The exception is that you may create binary object code versions of any
|
||||||
|
works using this library or based on this library, and use, copy, modify,
|
||||||
|
link and distribute such binary object code files unrestricted under terms
|
||||||
|
of your choice.
|
||||||
|
|
||||||
|
3. If you copy code from files distributed under the terms of the GNU
|
||||||
|
General Public License or the GNU Library General Public License into a
|
||||||
|
copy of this library, as this license 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.
|
||||||
|
|
||||||
|
|
||||||
|
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.]
|
||||||
|
|
||||||
|
Preamble
|
||||||
|
|
||||||
|
The licenses for most software are designed to take away your
|
||||||
|
freedom to share and change it. By contrast, the GNU General Public
|
||||||
|
Licenses are intended to guarantee your freedom to share and change
|
||||||
|
free software--to make sure the software is free for all its users.
|
||||||
|
|
||||||
|
This license, the Library General Public License, applies to some
|
||||||
|
specially designated Free Software Foundation software, and to any
|
||||||
|
other libraries whose authors decide to use it. You can use it for
|
||||||
|
your libraries, too.
|
||||||
|
|
||||||
|
When we speak of free software, we are referring to freedom, not
|
||||||
|
price. Our General Public Licenses are designed to make sure that you
|
||||||
|
have the freedom to distribute copies of free software (and charge for
|
||||||
|
this service if you wish), that you receive source code or can get it
|
||||||
|
if you want it, that you can change the software or use pieces of it
|
||||||
|
in new free programs; and that you know you can do these things.
|
||||||
|
|
||||||
|
To protect your rights, we need to make restrictions that forbid
|
||||||
|
anyone to deny you these rights or to ask you to surrender the rights.
|
||||||
|
These restrictions translate to certain responsibilities for you if
|
||||||
|
you distribute copies of the library, or if you modify it.
|
||||||
|
|
||||||
|
For example, if you distribute copies of the library, whether gratis
|
||||||
|
or for a fee, you must give the recipients all the rights that we gave
|
||||||
|
you. You must make sure that they, too, receive or can get the source
|
||||||
|
code. If you link a program with the library, you must provide
|
||||||
|
complete object files to the recipients so that they can relink them
|
||||||
|
with the library, after making changes to the library and recompiling
|
||||||
|
it. And you must show them these terms so they know their rights.
|
||||||
|
|
||||||
|
Our method of protecting your rights has two steps: (1) copyright
|
||||||
|
the library, and (2) offer you this license which gives you legal
|
||||||
|
permission to copy, distribute and/or modify the library.
|
||||||
|
|
||||||
|
Also, for each distributor's protection, we want to make certain
|
||||||
|
that everyone understands that there is no warranty for this free
|
||||||
|
library. If the library is modified by someone else and passed on, we
|
||||||
|
want its recipients to know that what they have is not the original
|
||||||
|
version, so that any problems introduced by others will not reflect on
|
||||||
|
the original authors' reputations.
|
||||||
|
|
||||||
|
Finally, any free program is threatened constantly by software
|
||||||
|
patents. We wish to avoid the danger that companies distributing free
|
||||||
|
software will individually obtain patent licenses, thus in effect
|
||||||
|
transforming the program into proprietary software. To prevent this,
|
||||||
|
we have made it clear that any patent must be licensed for everyone's
|
||||||
|
free use or not licensed at all.
|
||||||
|
|
||||||
|
Most GNU software, including some libraries, is covered by the ordinary
|
||||||
|
GNU General Public License, which was designed for utility programs. This
|
||||||
|
license, the GNU Library General Public License, applies to certain
|
||||||
|
designated libraries. This license is quite different from the ordinary
|
||||||
|
one; be sure to read it in full, and don't assume that anything in it is
|
||||||
|
the same as in the ordinary license.
|
||||||
|
|
||||||
|
The reason we have a separate public license for some libraries is that
|
||||||
|
they blur the distinction we usually make between modifying or adding to a
|
||||||
|
program and simply using it. Linking a program with a library, without
|
||||||
|
changing the library, is in some sense simply using the library, and is
|
||||||
|
analogous to running a utility program or application program. However, in
|
||||||
|
a textual and legal sense, the linked executable is a combined work, a
|
||||||
|
derivative of the original library, and the ordinary General Public License
|
||||||
|
treats it as such.
|
||||||
|
|
||||||
|
Because of this blurred distinction, using the ordinary General
|
||||||
|
Public License for libraries did not effectively promote software
|
||||||
|
sharing, because most developers did not use the libraries. We
|
||||||
|
concluded that weaker conditions might promote sharing better.
|
||||||
|
|
||||||
|
However, unrestricted linking of non-free programs would deprive the
|
||||||
|
users of those programs of all benefit from the free status of the
|
||||||
|
libraries themselves. This Library General Public License is intended to
|
||||||
|
permit developers of non-free programs to use free libraries, while
|
||||||
|
preserving your freedom as a user of such programs to change the free
|
||||||
|
libraries that are incorporated in them. (We have not seen how to achieve
|
||||||
|
this as regards changes in header files, but we have achieved it as regards
|
||||||
|
changes in the actual functions of the Library.) The hope is that this
|
||||||
|
will lead to faster development of free libraries.
|
||||||
|
|
||||||
|
The precise terms and conditions for copying, distribution and
|
||||||
|
modification follow. Pay close attention to the difference between a
|
||||||
|
"work based on the library" and a "work that uses the library". The
|
||||||
|
former contains code derived from the library, while the latter only
|
||||||
|
works together with the library.
|
||||||
|
|
||||||
|
Note that it is possible for a library to be covered by the ordinary
|
||||||
|
General Public License rather than by this special one.
|
||||||
|
|
||||||
|
GNU LIBRARY GENERAL PUBLIC LICENSE
|
||||||
|
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||||
|
|
||||||
|
0. This License Agreement applies to any software library which
|
||||||
|
contains a notice placed by the copyright holder or other authorized
|
||||||
|
party saying it may be distributed under the terms of this Library
|
||||||
|
General Public License (also called "this License"). Each licensee is
|
||||||
|
addressed as "you".
|
||||||
|
|
||||||
|
A "library" means a collection of software functions and/or data
|
||||||
|
prepared so as to be conveniently linked with application programs
|
||||||
|
(which use some of those functions and data) to form executables.
|
||||||
|
|
||||||
|
The "Library", below, refers to any such software library or work
|
||||||
|
which has been distributed under these terms. A "work based on the
|
||||||
|
Library" means either the Library or any derivative work under
|
||||||
|
copyright law: that is to say, a work containing the Library or a
|
||||||
|
portion of it, either verbatim or with modifications and/or translated
|
||||||
|
straightforwardly into another language. (Hereinafter, translation is
|
||||||
|
included without limitation in the term "modification".)
|
||||||
|
|
||||||
|
"Source code" for a work means the preferred form of the work for
|
||||||
|
making modifications to it. For a library, complete source code means
|
||||||
|
all the source code for all modules it contains, plus any associated
|
||||||
|
interface definition files, plus the scripts used to control compilation
|
||||||
|
and installation of the library.
|
||||||
|
|
||||||
|
Activities other than copying, distribution and modification are not
|
||||||
|
covered by this License; they are outside its scope. The act of
|
||||||
|
running a program using the Library is not restricted, and output from
|
||||||
|
such a program is covered only if its contents constitute a work based
|
||||||
|
on the Library (independent of the use of the Library in a tool for
|
||||||
|
writing it). Whether that is true depends on what the Library does
|
||||||
|
and what the program that uses the Library does.
|
||||||
|
|
||||||
|
1. You may copy and distribute verbatim copies of the Library's
|
||||||
|
complete source code as you receive it, in any medium, provided that
|
||||||
|
you conspicuously and appropriately publish on each copy an
|
||||||
|
appropriate copyright notice and disclaimer of warranty; keep intact
|
||||||
|
all the notices that refer to this License and to the absence of any
|
||||||
|
warranty; and distribute a copy of this License along with the
|
||||||
|
Library.
|
||||||
|
|
||||||
|
You may charge a fee for the physical act of transferring a copy,
|
||||||
|
and you may at your option offer warranty protection in exchange for a
|
||||||
|
fee.
|
||||||
|
|
||||||
|
2. You may modify your copy or copies of the Library or any portion
|
||||||
|
of it, thus forming a work based on the Library, and copy and
|
||||||
|
distribute such modifications or work under the terms of Section 1
|
||||||
|
above, provided that you also meet all of these conditions:
|
||||||
|
|
||||||
|
a) The modified work must itself be a software library.
|
||||||
|
|
||||||
|
b) You must cause the files modified to carry prominent notices
|
||||||
|
stating that you changed the files and the date of any change.
|
||||||
|
|
||||||
|
c) You must cause the whole of the work to be licensed at no
|
||||||
|
charge to all third parties under the terms of this License.
|
||||||
|
|
||||||
|
d) If a facility in the modified Library refers to a function or a
|
||||||
|
table of data to be supplied by an application program that uses
|
||||||
|
the facility, other than as an argument passed when the facility
|
||||||
|
is invoked, then you must make a good faith effort to ensure that,
|
||||||
|
in the event an application does not supply such function or
|
||||||
|
table, the facility still operates, and performs whatever part of
|
||||||
|
its purpose remains meaningful.
|
||||||
|
|
||||||
|
(For example, a function in a library to compute square roots has
|
||||||
|
a purpose that is entirely well-defined independent of the
|
||||||
|
application. Therefore, Subsection 2d requires that any
|
||||||
|
application-supplied function or table used by this function must
|
||||||
|
be optional: if the application does not supply it, the square
|
||||||
|
root function must still compute square roots.)
|
||||||
|
|
||||||
|
These requirements apply to the modified work as a whole. If
|
||||||
|
identifiable sections of that work are not derived from the Library,
|
||||||
|
and can be reasonably considered independent and separate works in
|
||||||
|
themselves, then this License, and its terms, do not apply to those
|
||||||
|
sections when you distribute them as separate works. But when you
|
||||||
|
distribute the same sections as part of a whole which is a work based
|
||||||
|
on the Library, the distribution of the whole must be on the terms of
|
||||||
|
this License, whose permissions for other licensees extend to the
|
||||||
|
entire whole, and thus to each and every part regardless of who wrote
|
||||||
|
it.
|
||||||
|
|
||||||
|
Thus, it is not the intent of this section to claim rights or contest
|
||||||
|
your rights to work written entirely by you; rather, the intent is to
|
||||||
|
exercise the right to control the distribution of derivative or
|
||||||
|
collective works based on the Library.
|
||||||
|
|
||||||
|
In addition, mere aggregation of another work not based on the Library
|
||||||
|
with the Library (or with a work based on the Library) on a volume of
|
||||||
|
a storage or distribution medium does not bring the other work under
|
||||||
|
the scope of this License.
|
||||||
|
|
||||||
|
3. You may opt to apply the terms of the ordinary GNU General Public
|
||||||
|
License instead of this License to a given copy of the Library. To do
|
||||||
|
this, you must alter all the notices that refer to this License, so
|
||||||
|
that they refer to the ordinary GNU General Public License, version 2,
|
||||||
|
instead of to this License. (If a newer version than version 2 of the
|
||||||
|
ordinary GNU General Public License has appeared, then you can specify
|
||||||
|
that version instead if you wish.) Do not make any other change in
|
||||||
|
these notices.
|
||||||
|
|
||||||
|
Once this change is made in a given copy, it is irreversible for
|
||||||
|
that copy, so the ordinary GNU General Public License applies to all
|
||||||
|
subsequent copies and derivative works made from that copy.
|
||||||
|
|
||||||
|
This option is useful when you wish to copy part of the code of
|
||||||
|
the Library into a program that is not a library.
|
||||||
|
|
||||||
|
4. You may copy and distribute the Library (or a portion or
|
||||||
|
derivative of it, under Section 2) in object code or executable form
|
||||||
|
under the terms of Sections 1 and 2 above provided that you accompany
|
||||||
|
it with the complete corresponding machine-readable source code, which
|
||||||
|
must be distributed under the terms of Sections 1 and 2 above on a
|
||||||
|
medium customarily used for software interchange.
|
||||||
|
|
||||||
|
If distribution of object code is made by offering access to copy
|
||||||
|
from a designated place, then offering equivalent access to copy the
|
||||||
|
source code from the same place satisfies the requirement to
|
||||||
|
distribute the source code, even though third parties are not
|
||||||
|
compelled to copy the source along with the object code.
|
||||||
|
|
||||||
|
5. A program that contains no derivative of any portion of the
|
||||||
|
Library, but is designed to work with the Library by being compiled or
|
||||||
|
linked with it, is called a "work that uses the Library". Such a
|
||||||
|
work, in isolation, is not a derivative work of the Library, and
|
||||||
|
therefore falls outside the scope of this License.
|
||||||
|
|
||||||
|
However, linking a "work that uses the Library" with the Library
|
||||||
|
creates an executable that is a derivative of the Library (because it
|
||||||
|
contains portions of the Library), rather than a "work that uses the
|
||||||
|
library". The executable is therefore covered by this License.
|
||||||
|
Section 6 states terms for distribution of such executables.
|
||||||
|
|
||||||
|
When a "work that uses the Library" uses material from a header file
|
||||||
|
that is part of the Library, the object code for the work may be a
|
||||||
|
derivative work of the Library even though the source code is not.
|
||||||
|
Whether this is true is especially significant if the work can be
|
||||||
|
linked without the Library, or if the work is itself a library. The
|
||||||
|
threshold for this to be true is not precisely defined by law.
|
||||||
|
|
||||||
|
If such an object file uses only numerical parameters, data
|
||||||
|
structure layouts and accessors, and small macros and small inline
|
||||||
|
functions (ten lines or less in length), then the use of the object
|
||||||
|
file is unrestricted, regardless of whether it is legally a derivative
|
||||||
|
work. (Executables containing this object code plus portions of the
|
||||||
|
Library will still fall under Section 6.)
|
||||||
|
|
||||||
|
Otherwise, if the work is a derivative of the Library, you may
|
||||||
|
distribute the object code for the work under the terms of Section 6.
|
||||||
|
Any executables containing that work also fall under Section 6,
|
||||||
|
whether or not they are linked directly with the Library itself.
|
||||||
|
|
||||||
|
6. As an exception to the Sections above, you may also compile or
|
||||||
|
link a "work that uses the Library" with the Library to produce a
|
||||||
|
work containing portions of the Library, and distribute that work
|
||||||
|
under terms of your choice, provided that the terms permit
|
||||||
|
modification of the work for the customer's own use and reverse
|
||||||
|
engineering for debugging such modifications.
|
||||||
|
|
||||||
|
You must give prominent notice with each copy of the work that the
|
||||||
|
Library is used in it and that the Library and its use are covered by
|
||||||
|
this License. You must supply a copy of this License. If the work
|
||||||
|
during execution displays copyright notices, you must include the
|
||||||
|
copyright notice for the Library among them, as well as a reference
|
||||||
|
directing the user to the copy of this License. Also, you must do one
|
||||||
|
of these things:
|
||||||
|
|
||||||
|
a) Accompany the work with the complete corresponding
|
||||||
|
machine-readable source code for the Library including whatever
|
||||||
|
changes were used in the work (which must be distributed under
|
||||||
|
Sections 1 and 2 above); and, if the work is an executable linked
|
||||||
|
with the Library, with the complete machine-readable "work that
|
||||||
|
uses the Library", as object code and/or source code, so that the
|
||||||
|
user can modify the Library and then relink to produce a modified
|
||||||
|
executable containing the modified Library. (It is understood
|
||||||
|
that the user who changes the contents of definitions files in the
|
||||||
|
Library will not necessarily be able to recompile the application
|
||||||
|
to use the modified definitions.)
|
||||||
|
|
||||||
|
b) Accompany the work with a written offer, valid for at
|
||||||
|
least three years, to give the same user the materials
|
||||||
|
specified in Subsection 6a, above, for a charge no more
|
||||||
|
than the cost of performing this distribution.
|
||||||
|
|
||||||
|
c) If distribution of the work is made by offering access to copy
|
||||||
|
from a designated place, offer equivalent access to copy the above
|
||||||
|
specified materials from the same place.
|
||||||
|
|
||||||
|
d) Verify that the user has already received a copy of these
|
||||||
|
materials or that you have already sent this user a copy.
|
||||||
|
|
||||||
|
For an executable, the required form of the "work that uses the
|
||||||
|
Library" must include any data and utility programs needed for
|
||||||
|
reproducing the executable from it. However, as a special exception,
|
||||||
|
the source code distributed need not include anything that is normally
|
||||||
|
distributed (in either source or binary form) with the major
|
||||||
|
components (compiler, kernel, and so on) of the operating system on
|
||||||
|
which the executable runs, unless that component itself accompanies
|
||||||
|
the executable.
|
||||||
|
|
||||||
|
It may happen that this requirement contradicts the license
|
||||||
|
restrictions of other proprietary libraries that do not normally
|
||||||
|
accompany the operating system. Such a contradiction means you cannot
|
||||||
|
use both them and the Library together in an executable that you
|
||||||
|
distribute.
|
||||||
|
|
||||||
|
7. You may place library facilities that are a work based on the
|
||||||
|
Library side-by-side in a single library together with other library
|
||||||
|
facilities not covered by this License, and distribute such a combined
|
||||||
|
library, provided that the separate distribution of the work based on
|
||||||
|
the Library and of the other library facilities is otherwise
|
||||||
|
permitted, and provided that you do these two things:
|
||||||
|
|
||||||
|
a) Accompany the combined library with a copy of the same work
|
||||||
|
based on the Library, uncombined with any other library
|
||||||
|
facilities. This must be distributed under the terms of the
|
||||||
|
Sections above.
|
||||||
|
|
||||||
|
b) Give prominent notice with the combined library of the fact
|
||||||
|
that part of it is a work based on the Library, and explaining
|
||||||
|
where to find the accompanying uncombined form of the same work.
|
||||||
|
|
||||||
|
8. You may not copy, modify, sublicense, link with, or distribute
|
||||||
|
the Library except as expressly provided under this License. Any
|
||||||
|
attempt otherwise to copy, modify, sublicense, link with, or
|
||||||
|
distribute the Library is void, and will automatically terminate your
|
||||||
|
rights under this License. However, parties who have received copies,
|
||||||
|
or rights, from you under this License will not have their licenses
|
||||||
|
terminated so long as such parties remain in full compliance.
|
||||||
|
|
||||||
|
9. You are not required to accept this License, since you have not
|
||||||
|
signed it. However, nothing else grants you permission to modify or
|
||||||
|
distribute the Library or its derivative works. These actions are
|
||||||
|
prohibited by law if you do not accept this License. Therefore, by
|
||||||
|
modifying or distributing the Library (or any work based on the
|
||||||
|
Library), you indicate your acceptance of this License to do so, and
|
||||||
|
all its terms and conditions for copying, distributing or modifying
|
||||||
|
the Library or works based on it.
|
||||||
|
|
||||||
|
10. Each time you redistribute the Library (or any work based on the
|
||||||
|
Library), the recipient automatically receives a license from the
|
||||||
|
original licensor to copy, distribute, link with or modify the Library
|
||||||
|
subject to these terms and conditions. You may not impose any further
|
||||||
|
restrictions on the recipients' exercise of the rights granted herein.
|
||||||
|
You are not responsible for enforcing compliance by third parties to
|
||||||
|
this License.
|
||||||
|
|
||||||
|
11. If, as a consequence of a court judgment or allegation of patent
|
||||||
|
infringement or for any other reason (not limited to patent issues),
|
||||||
|
conditions are imposed on you (whether by court order, agreement or
|
||||||
|
otherwise) that contradict the conditions of this License, they do not
|
||||||
|
excuse you from the conditions of this License. If you cannot
|
||||||
|
distribute so as to satisfy simultaneously your obligations under this
|
||||||
|
License and any other pertinent obligations, then as a consequence you
|
||||||
|
may not distribute the Library at all. For example, if a patent
|
||||||
|
license would not permit royalty-free redistribution of the Library by
|
||||||
|
all those who receive copies directly or indirectly through you, then
|
||||||
|
the only way you could satisfy both it and this License would be to
|
||||||
|
refrain entirely from distribution of the Library.
|
||||||
|
|
||||||
|
If any portion of this section is held invalid or unenforceable under any
|
||||||
|
particular circumstance, the balance of the section is intended to apply,
|
||||||
|
and the section as a whole is intended to apply in other circumstances.
|
||||||
|
|
||||||
|
It is not the purpose of this section to induce you to infringe any
|
||||||
|
patents or other property right claims or to contest validity of any
|
||||||
|
such claims; this section has the sole purpose of protecting the
|
||||||
|
integrity of the free software distribution system which is
|
||||||
|
implemented by public license practices. Many people have made
|
||||||
|
generous contributions to the wide range of software distributed
|
||||||
|
through that system in reliance on consistent application of that
|
||||||
|
system; it is up to the author/donor to decide if he or she is willing
|
||||||
|
to distribute software through any other system and a licensee cannot
|
||||||
|
impose that choice.
|
||||||
|
|
||||||
|
This section is intended to make thoroughly clear what is believed to
|
||||||
|
be a consequence of the rest of this License.
|
||||||
|
|
||||||
|
12. If the distribution and/or use of the Library is restricted in
|
||||||
|
certain countries either by patents or by copyrighted interfaces, the
|
||||||
|
original copyright holder who places the Library under this License may add
|
||||||
|
an explicit geographical distribution limitation excluding those countries,
|
||||||
|
so that distribution is permitted only in or among countries not thus
|
||||||
|
excluded. In such case, this License incorporates the limitation as if
|
||||||
|
written in the body of this License.
|
||||||
|
|
||||||
|
13. The Free Software Foundation may publish revised and/or new
|
||||||
|
versions of the Library General Public License from time to time.
|
||||||
|
Such new versions will be similar in spirit to the present version,
|
||||||
|
but may differ in detail to address new problems or concerns.
|
||||||
|
|
||||||
|
Each version is given a distinguishing version number. If the Library
|
||||||
|
specifies a version number of this License which applies to it and
|
||||||
|
"any later version", you have the option of following the terms and
|
||||||
|
conditions either of that version or of any later version published by
|
||||||
|
the Free Software Foundation. If the Library does not specify a
|
||||||
|
license version number, you may choose any version ever published by
|
||||||
|
the Free Software Foundation.
|
||||||
|
|
||||||
|
14. If you wish to incorporate parts of the Library into other free
|
||||||
|
programs whose distribution conditions are incompatible with these,
|
||||||
|
write to the author to ask for permission. For software which is
|
||||||
|
copyrighted by the Free Software Foundation, write to the Free
|
||||||
|
Software Foundation; we sometimes make exceptions for this. Our
|
||||||
|
decision will be guided by the two goals of preserving the free status
|
||||||
|
of all derivatives of our free software and of promoting the sharing
|
||||||
|
and reuse of software generally.
|
||||||
|
|
||||||
|
NO WARRANTY
|
||||||
|
|
||||||
|
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
|
||||||
|
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
|
||||||
|
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
|
||||||
|
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
|
||||||
|
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||||
|
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
|
||||||
|
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
|
||||||
|
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||||
|
|
||||||
|
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
|
||||||
|
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
|
||||||
|
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
|
||||||
|
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
|
||||||
|
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
|
||||||
|
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
|
||||||
|
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
|
||||||
|
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
|
||||||
|
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
|
||||||
|
DAMAGES.
|
||||||
|
|
||||||
|
END OF TERMS AND CONDITIONS
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
<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.
|
||||||
|
|
||||||
|
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:
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
That's all there is to it!
|
||||||
|
|
||||||
|
\end{verbatim}
|
||||||
|
|
||||||
|
|
||||||
\input{body.tex}
|
\input{body.tex}
|
||||||
\helpinput{classes.tex}
|
\helpinput{classes.tex}
|
||||||
\helpinput{category.tex}
|
\helpinput{category.tex}
|
||||||
|
@@ -74,9 +74,14 @@ are more short and clear than versions with {\tt #ifdef}s.
|
|||||||
\subsection{Supported bitmap file formats}\label{supportedbitmapformats}
|
\subsection{Supported bitmap file formats}\label{supportedbitmapformats}
|
||||||
|
|
||||||
The following lists the formats handled on different platforms. Note
|
The following lists the formats handled on different platforms. Note
|
||||||
that missing or partially-implemented formats can be supplemented
|
that missing or partially-implemented formats are automatically supplemented
|
||||||
by using \helpref{wxImage}{wximage} to load the data, and then converting
|
by the \helpref{wxImage}{wximage} to load the data, and then converting
|
||||||
it to wxBitmap form.
|
it to wxBitmap form. Note that using wxImage is the preferred way to
|
||||||
|
load images in wxWindows, with the exception of resources (XPM-files or
|
||||||
|
native Windows resources). Writing an image format handler for wxImage
|
||||||
|
is also far easier than writing one for wxBitmap, because wxImage has
|
||||||
|
exactly one format on all platforms wheras wxBitmap can store pixel data
|
||||||
|
very differently, depending on colour depths and platform.
|
||||||
|
|
||||||
\wxheading{wxBitmap}
|
\wxheading{wxBitmap}
|
||||||
|
|
||||||
@@ -85,25 +90,23 @@ Under Windows, wxBitmap may load the following formats:
|
|||||||
\begin{itemize}\itemsep=0pt
|
\begin{itemize}\itemsep=0pt
|
||||||
\item Windows bitmap resource (wxBITMAP\_TYPE\_BMP\_RESOURCE)
|
\item Windows bitmap resource (wxBITMAP\_TYPE\_BMP\_RESOURCE)
|
||||||
\item Windows bitmap file (wxBITMAP\_TYPE\_BMP)
|
\item Windows bitmap file (wxBITMAP\_TYPE\_BMP)
|
||||||
\item PNG file (wxBITMAP\_TYPE\_PNG). Currently 4-bit (16-colour) PNG files do not load properly.
|
|
||||||
\item XPM data and file (wxBITMAP\_TYPE\_XPM)
|
\item XPM data and file (wxBITMAP\_TYPE\_XPM)
|
||||||
|
\item All formats that are supported by the \helpref{wxImage}{wximage} class.
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
Under wxGTK, wxBitmap may load the following formats:
|
Under wxGTK, wxBitmap may load the following formats:
|
||||||
|
|
||||||
\begin{itemize}\itemsep=0pt
|
\begin{itemize}\itemsep=0pt
|
||||||
\item Windows bitmap file (wxBITMAP\_TYPE\_BMP)
|
|
||||||
\item PNG (wxBITMAP\_TYPE\_PNG).
|
|
||||||
\item XPM data and file (wxBITMAP\_TYPE\_XPM)
|
\item XPM data and file (wxBITMAP\_TYPE\_XPM)
|
||||||
|
\item All formats that are supported by the \helpref{wxImage}{wximage} class.
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
Under wxMotif, wxBitmap may load the following formats:
|
Under wxMotif, wxBitmap may load the following formats:
|
||||||
|
|
||||||
\begin{itemize}\itemsep=0pt
|
\begin{itemize}\itemsep=0pt
|
||||||
%\item Windows bitmap file (wxBITMAP\_TYPE\_BMP)
|
|
||||||
%\item PNG (wxBITMAP\_TYPE\_PNG).
|
|
||||||
\item XBM data and file (wxBITMAP\_TYPE\_XBM)
|
\item XBM data and file (wxBITMAP\_TYPE\_XBM)
|
||||||
\item XPM data and file (wxBITMAP\_TYPE\_XPM)
|
\item XPM data and file (wxBITMAP\_TYPE\_XPM)
|
||||||
|
\item All formats that are supported by the \helpref{wxImage}{wximage} class.
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
\wxheading{wxIcon}
|
\wxheading{wxIcon}
|
||||||
@@ -119,17 +122,16 @@ Under Windows, wxIcon may load the following formats:
|
|||||||
Under wxGTK, wxIcon may load the following formats:
|
Under wxGTK, wxIcon may load the following formats:
|
||||||
|
|
||||||
\begin{itemize}\itemsep=0pt
|
\begin{itemize}\itemsep=0pt
|
||||||
\item PNG (wxBITMAP\_TYPE\_PNG).
|
|
||||||
\item XPM data and file (wxBITMAP\_TYPE\_XPM)
|
\item XPM data and file (wxBITMAP\_TYPE\_XPM)
|
||||||
|
\item All formats that are supported by the \helpref{wxImage}{wximage} class.
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
Under wxMotif, wxIcon may load the following formats:
|
Under wxMotif, wxIcon may load the following formats:
|
||||||
|
|
||||||
\begin{itemize}\itemsep=0pt
|
\begin{itemize}\itemsep=0pt
|
||||||
%\item Windows bitmap file (wxBITMAP\_TYPE\_BMP)
|
|
||||||
%\item PNG (wxBITMAP\_TYPE\_PNG).
|
|
||||||
\item XBM data and file (wxBITMAP\_TYPE\_XBM)
|
\item XBM data and file (wxBITMAP\_TYPE\_XBM)
|
||||||
\item XPM data and file (wxBITMAP\_TYPE\_XPM)
|
\item XPM data and file (wxBITMAP\_TYPE\_XPM)
|
||||||
|
\item All formats that are supported by the \helpref{wxImage}{wximage} class (?).
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
\wxheading{wxCursor}
|
\wxheading{wxCursor}
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
\section{Font overview}\label{wxfontoverview}
|
\section{wxFont overview}\label{wxfontoverview}
|
||||||
|
|
||||||
Class: \helpref{wxFont}{wxfont}
|
Class: \helpref{wxFont}{wxfont}
|
||||||
|
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
\section{Log classes overview}\label{wxlogoverview}
|
\section{wxLog classes overview}\label{wxlogoverview}
|
||||||
|
|
||||||
Classes: \helpref{wxLog}{wxlog}, wxLogStderr,
|
Classes: \helpref{wxLog}{wxlog}, wxLogStderr,
|
||||||
wxLogOstream, wxLogTextCtrl, wxLogWindow, wxLogGui, wxLogNull
|
wxLogOstream, wxLogTextCtrl, wxLogWindow, wxLogGui, wxLogNull
|
||||||
|
@@ -2,51 +2,70 @@
|
|||||||
\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}%
|
\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}%
|
||||||
\setfooter{\thepage}{}{}{}{}{\thepage}%
|
\setfooter{\thepage}{}{}{}{}{\thepage}%
|
||||||
|
|
||||||
This chapter contains a selection of topic overviews.
|
This chapter contains a selection of topic overviews, first things first:
|
||||||
|
|
||||||
|
\input tusage.tex
|
||||||
|
\input tguide.tex
|
||||||
|
\input hworld.tex
|
||||||
\input tsamples.tex
|
\input tsamples.tex
|
||||||
|
|
||||||
|
Every application need one wxApp class, so we start here:
|
||||||
|
|
||||||
\input tapp.tex
|
\input tapp.tex
|
||||||
|
|
||||||
|
Not everything in wxWindows is about GUI programming:
|
||||||
|
|
||||||
|
\input truntime.tex
|
||||||
\input tstring.tex
|
\input tstring.tex
|
||||||
\input tcontain.tex
|
|
||||||
\input tlog.tex
|
|
||||||
\input tconfig.tex
|
|
||||||
\input tunicode.tex
|
\input tunicode.tex
|
||||||
\input tclipbrd.tex
|
\input ti18n.tex
|
||||||
\input tbitmap.tex
|
\input tcontain.tex
|
||||||
|
\input tfile.tex
|
||||||
|
\input tstream.tex
|
||||||
|
\input tlog.tex
|
||||||
|
\input tdebug.tex
|
||||||
|
\input tconfig.tex
|
||||||
|
\input texpr.tex
|
||||||
|
\input fs.tex
|
||||||
|
|
||||||
|
General overviews concerning windows and events:
|
||||||
|
|
||||||
|
\input tevent.tex
|
||||||
|
\input tstyles.tex
|
||||||
|
\input tdelwin.tex
|
||||||
\input tdialog.tex
|
\input tdialog.tex
|
||||||
|
\input tvalidat.tex
|
||||||
|
\input tconstr.tex
|
||||||
|
\input tresourc.tex
|
||||||
|
\input tscroll.tex
|
||||||
|
|
||||||
|
Drawing and device context specific overviews:
|
||||||
|
|
||||||
|
\input tbitmap.tex
|
||||||
|
\input tdc.tex
|
||||||
\input tfont.tex
|
\input tfont.tex
|
||||||
|
\input tfontenc.tex
|
||||||
|
|
||||||
|
Special controls:
|
||||||
|
|
||||||
\input tsplittr.tex
|
\input tsplittr.tex
|
||||||
\input ttreectl.tex
|
\input ttreectl.tex
|
||||||
\input tlistctl.tex
|
\input tlistctl.tex
|
||||||
\input timaglst.tex
|
\input timaglst.tex
|
||||||
\input tcommdlg.tex
|
\input tcommdlg.tex
|
||||||
\input tconstr.tex
|
|
||||||
\input tdb.tex
|
|
||||||
\input tdc.tex
|
|
||||||
\input tdebug.tex
|
|
||||||
\input tdelwin.tex
|
|
||||||
\input tscroll.tex
|
|
||||||
\input tdocview.tex
|
\input tdocview.tex
|
||||||
\input tevent.tex
|
|
||||||
\input tguide.tex
|
|
||||||
\input tipc.tex
|
|
||||||
\input tprint.tex
|
|
||||||
\input tresourc.tex
|
|
||||||
\input truntime.tex
|
|
||||||
\input tstyles.tex
|
|
||||||
\input ttab.tex
|
\input ttab.tex
|
||||||
\input ttoolbar.tex
|
\input ttoolbar.tex
|
||||||
\input tvalidat.tex
|
|
||||||
\input texpr.tex
|
|
||||||
\input tgrid.tex
|
\input tgrid.tex
|
||||||
\input tthreads.tex
|
|
||||||
\input tfile.tex
|
|
||||||
\input ti18n.tex
|
|
||||||
\input tfontenc.tex
|
|
||||||
\input tstream.tex
|
|
||||||
\input tusage.tex
|
|
||||||
\input ttips.tex
|
\input ttips.tex
|
||||||
\input fs.tex
|
|
||||||
|
|
||||||
%\input tdnd.tex
|
Advanced topic overviews:
|
||||||
|
|
||||||
|
\input tprint.tex
|
||||||
|
\input tthreads.tex
|
||||||
|
\input tdnd.tex
|
||||||
|
\input tclipbrd.tex
|
||||||
|
\input tdb.tex
|
||||||
|
\input tipc.tex
|
||||||
|
|
||||||
|
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
\section{Tab classes overview}\label{wxtaboverview}
|
\section{wxTab classes overview}\label{wxtaboverview}
|
||||||
|
|
||||||
Classes: \helpref{wxTabView}{wxtabview}, \helpref{wxPanelTabView}{wxpaneltabview},
|
Classes: \helpref{wxTabView}{wxtabview}, \helpref{wxPanelTabView}{wxpaneltabview},
|
||||||
\helpref{wxTabbedPanel}{wxtabbedpanel}, \helpref{wxTabbedDialog}{wxtabbeddialog},
|
\helpref{wxTabbedPanel}{wxtabbedpanel}, \helpref{wxTabbedDialog}{wxtabbeddialog},
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
\section{Startup tips overview}\label{tipsoverview}
|
\section{wxTipProvider overview}\label{tipsoverview}
|
||||||
|
|
||||||
Many "modern" Windows programs have a feature (some would say annoyance) of
|
Many "modern" Windows programs have a feature (some would say annoyance) of
|
||||||
presenting the user tips at program startup. While this is probably useless to
|
presenting the user tips at program startup. While this is probably useless to
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
\section{Validator overview}\label{validatoroverview}
|
\section{wxValidator overview}\label{validatoroverview}
|
||||||
|
|
||||||
Classes: \helpref{wxValidator}{wxvalidator}, \helpref{wxTextValidator}{wxtextvalidator},
|
Classes: \helpref{wxValidator}{wxvalidator}, \helpref{wxTextValidator}{wxtextvalidator},
|
||||||
\helpref{wxGenericValidator}{wxgenericvalidator}
|
\helpref{wxGenericValidator}{wxgenericvalidator}
|
||||||
|
Reference in New Issue
Block a user