Compare commits

...

1 Commits

Author SHA1 Message Date
Bryan Petty
062162483a This commit was manufactured by cvs2svn to create tag
'OLD_MAKEFILES'.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/tags/OLD_MAKEFILES@2601 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1999-05-31 14:54:04 +00:00
4134 changed files with 0 additions and 920750 deletions

View File

@@ -1,23 +0,0 @@
system.list
bin
.gdb_history
Test
config.cache
config.status
system.list
linux.system.cache
wx-config
config.log
linux-gnu.system.cache
*.dsp
*.dsw
*.plg
*.opt
*.aps
*.ncb
*.pro
*.opt
Release
Debug
ReleaseDLL
DebugDLL

View File

@@ -1,310 +0,0 @@
wxPython README
---------------
Introduction
------------
The code in this subtree is a Python Extension Module that enables the
use of wxWindows from the Python language. So what is Python? Go to
http://www.python.org to learn more but in a nutshell, it's an
extremly cool object oriented language. It's easier than Perl and
nearly as powerful. It runs on more platforms than Java, and by some
reports, is even faster than Java with a JIT compiler!
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 absolutly have to eek more performance out of an algorithm, and even
then I ususally code it as an extension module and leave the majority
of the program in Python. Another good thing to use wxPython for is
quick prototyping of your wxWindows apps. With C++ you have to
continuously go though the edit-compile-link-run cycle, which can be
quite time comsuming. With Python it is only an edit-run cycle. You
can easily build an application in a few hours with Python that would
normally take a few days with C++. Converting a wxPython app to a
C++/wxWindows app should be a straight forward task.
This extension module attempts to mirror the class heiarchy of
wxWindows as closely as possble. This means that there is a wxFrame
class in wxPython that looks, smells, tastes and acts almost the same
as the wxFrame class in the C++ version. Unfortunatly, I wasn't able
to match things exactly because of differences in the languages, but
the differences should be easy to absorb because they are natural to
Python. For example, some methods that return mutliple values via
argument pointers in C++ will return a tuple of values in Python.
These differences have not been documented yet so if something isn't
working the same as described in the wxWindows documents the best
thing to do is to scan through the wxPython sources, especially the .i
files, as that is where the interfaces for wxPython are defined.
I have reports of successfully embedding wxPython within a wxWindows
C++ app on GTK. It hasn't yet been attempted on MSW (to my knowledge)
so I don't know how successful such an attempt would be. However it
is certainly possible.
Getting Help
------------
Since wxPython is a blending of multiple technologies, help comes from
multiple sources. See the http://alldunn.com/wxPython for details on
various sources of help, but probably the best source is the
wxPython-users mail list. You can view the archive or subscribe by
going to
http://starship.python.net/mailman/listinfo/wxpython-users
Or you can send mail directly to the list using this address:
wxpython-users@starship.python.net
What's new in 2.0b9
-------------------
Bug fix for ListCtrl in test4.py (Was a missing file... DSM!)
Bug fix for occassional GPF on Win32 systems upon termination of a
wxPython application.
Added wxListBox.GetSelections returning selections as a Tuple.
Added a wxTreeItemData that is able to hold any Python object and be
associated with items in a wxTreeCtrl. Added test pytree.py to show
this feature off.
Added wxSafeYield function.
OpenGL Canvas can be optionally compiled in to wxPython.
Awesome new Demo Framework for showing off wxPython and for learning
how it all works.
The pre-built Win32 version is no longer distributing the wxWindows
DLL. It is statically linked with the wxWindows library instead.
Added a couple missing items from the docs.
Added wxImage, wxImageHandler, wxPNGHandler, wxJPEGHandler,
wxGIFHandler and wxBMPHandler.
Added new methods to wxTextCtrl.
What's new in 2.0b8
-------------------
Support for using Python threads in wxPython apps.
Several missing methods from various classes.
Various bug fixes.
What's new in 2.0b7
-------------------
Added DLG_PNT and DLG_SZE convienience methods to wxWindow class.
Added missing constructor and other methods for wxMenuItem.
What's new in 2.0b6
-------------------
Just a quickie update to fix the self-installer to be compatible with
Python 1.5.2b2's Registry settings.
What's new in 2.0b5
-------------------
Well obviously the numbering scheme has changed. I did this to
reflect the fact that this truly is the second major revision of
wxPython, (well the third actually if you count the one I did for
wxWindows 1.68 and then threw away...) and also that it is associated
with the 2.0 version of wxWindows.
I have finally started documenting wxPython. There are several pages
in the wxWindows documentation tree specifically about wxPython, and I
have added notes within the class references about where wxPython
diverges from wxWindows.
Added wxWindow_FromHWND(hWnd) for wxMSW to construct a wxWindow from a
window handle. If you can get the window handle into the python code,
it should just work... More news on this later.
Added wxImageList, wxToolTip.
Re-enabled wxConfig.DeleteAll() since it is reportedly fixed for the
wxRegConfig class.
As usual, some bug fixes, tweaks, etc.
What's new in 0.5.3
-------------------
Added wxSashWindow, wxSashEvent, wxLayoutAlgorithm, etc.
Various cleanup, tweaks, minor additions, etc. to maintain
compatibility with the current wxWindows.
What's new in 0.5.0
-------------------
Changed the import semantics from "from wxPython import *" to "from
wxPython.wx import *" This is for people who are worried about
namespace pollution, they can use "from wxPython import wx" and then
prefix all the wxPython identifiers with "wx."
Added wxTaskbarIcon for wxMSW.
Made the events work for wxGrid.
Added wxConfig.
Added wxMiniFrame for wxGTK.
Changed many of the args and return values that were pointers to gdi
objects to references to reflect changes in the wxWindows API.
Other assorted fixes and additions.
What's new in 0.4.2
-------------------
wxPython on wxGTK works!!! Both dynamic and static on Linux and
static on Solaris have been tested. Many thanks go to Harm
<H.v.d.Heijden@phys.tue.nl> for his astute detective work on tracking
down a nasty DECREF bug. Okay so I have to confess that it was just a
DSM (Dumb Stupid Mistake) on my part but it was nasty none the less
because the behavior was so different on different platforms.
The dynamicly loaded module on Solaris is still segfaulting, so it
must have been a different issue all along...
What's New in 0.4
-----------------
1. Worked on wxGTK compatibility. It is partially working. On a
Solaris/Sparc box wxPython is working but only when it is statically
linked with the Python interpreter. When built as a dyamically loaded
extension module, things start acting weirdly and it soon seg-faults.
And on Linux both the statically linked and the dynamically linked
version segfault shortly after starting up.
2. Added Toolbar, StatusBar and SplitterWindow classes.
3. Varioius bug fixes, enhancements, etc.
Build Instructions
------------------
I used SWIG (http://www.swig.org) to create the source code for the
extension module. This enabled me to only have to deal with a small
amount of code and only have to bother with the exceptional issues.
SWIG takes care of the rest and generates all the repetative code for
me. You don't need SWIG to build the extension module as all the
generated C++ code is included under the src directory.
I added a few minor features to SWIG to control some of the code
generation. If you want to playaround with this the patches are in
wxPython/SWIG.patches and they should be applied to the 1.1p5 version
of SWIG. These new patches are documented at
http://starship.skyport.net/crew/robind/python/#swig, and they should
also end up in the 1.2 version of SWIG.
wxPython is organized as a Python package. This means that the
directory containing the results of the build process should be a
subdirectory of a directory on the PYTHONPATH. (And preferably should
be named wxPython.) You can control where the build process will dump
wxPython by setting the TARGETDIR makefile variable. The default is
$(WXWIN)/utils/wxPython, where this README.txt is located. If you
leave it here then you should add $(WXWIN)/utils to your PYTHONPATH.
However, you may prefer to use something that is already on your
PYTHONPATH, such as the site-packages directory on Unix systems.
Win32
-----
1. Build wxWindows with wxUSE_RESOURCE_LOADING_IN_MSW set to 1 in
include/wx/msw/setup.h so icons can be loaded dynamically. While
there, make sure wxUSE_OWNER_DRAWN is also set to 1.
2. Change into the $(WXWIN)/utils/wxPython/src directory.
3. Edit makefile.vc and specify where your python installation is at.
You may also want to fiddle with the TARGETDIR variable as described
above.
4. Run nmake -f makefile.vc
5. If it builds successfully, congratulations! Move on to the next
step. If not then you can try mailing me for help. Also, I will
always have a pre-built win32 version of this extension module at
http://starship.skyport.net/crew/robind/python.
6. Change to the $(WXWIN)/utils/wxPython/tests directory.
7. Try executing the test programs. Note that some of these print
diagnositc or test info to standard output, so they will require the
console version of python. For example:
python test1.py
To run them without requiring a console, you can use the pythonw.exe
version of Python either from the command line or from a shortcut.
Unix
----
1. Change into the $(WXWIN)/utils/wxPython/src directory.
2. Edit Setup.in and ensure that the flags, directories, and toolkit
options are correct. See the above commentary about TARGETDIR. There
are a few sample Setup.in.[platform] files provided.
[I've written a Setup which should work in almost all Unix systems,
so that the steps 1 and 2 don't have to be done. Robert Roebling. ]
3. Run this command to generate a makefile:
make -f Makefile.pre.in boot
4. Run these commands to build and then install the wxPython extension
module:
make
4b. Log in as root. [Robert Roebling]
make install
4c. Log out from root. [Robert Roebling]
5. Change to the $(WXWIN)/utils/wxPython/tests directory.
6. Try executing the test programs. For example:
python test1.py
------------------------
10/20/1998
Robin Dunn
robin@alldunn.com

View File

@@ -1,47 +0,0 @@
# This file gives the details of what is needed to build this extension
# module so the Makefile can be created.
###
### This file should be created by configure. Currently it is tweaked by hand.
###
*shared*
CCC=g++
WXWIN=~/wxWindows
GENCODEDIR=gtk
srcdir=$(GENCODEDIR)
WX_CONFIG_CFLAGS=`wx-config --cflags` `gtk-config --cflags`
WX_CONFIG_LIBS=`wx-config --libs`
# Depending on how your Python was built, you may have to set this
# value to use the C++ driver to link with instead of the default
# C driver. For example:
MY_LDSHARED=$(CCC) -shared $(WX_CONFIG_LIBS)
# Same as above, but for statically linking Python and wxPython together,
# in other words, if you comment out the *shared* above. If this is the
# case then you should ensure that the main() function is Python's, not
# wxWindows'. You can rebuild $(WXWIN)/src/gtk/app.cpp with NOMAIN defined
# to force this...
MY_LINKCC=$(CCC)
## Pick one of these, or set your own. This is where the
## wxPython module should be installed. It should be a
## subdirectory named wxPython.
#TARGETDIR=..
#TARGETDIR=$(BINLIBDEST)/site-packages/wxPython
TARGETDIR=$(BINLIBDEST)/wxPython
wxc wx.cpp helpers.cpp windows.cpp events.cpp misc.cpp gdi.cpp \
mdi.cpp controls.cpp controls2.cpp windows2.cpp cmndlgs.cpp \
frames.cpp stattool.cpp windows3.cpp image.cpp \
utils.cpp \
## comment out the next line to disable wxGLCanvas
##_glcanvas.cpp glcanvas.cpp -DWITH_GLCANVAS -lGL -lGLU \
-I. $(WX_CONFIG_CFLAGS) -I/usr/local/lib/glib/include \
-DSWIG_GLOBAL -DWXP_WITH_THREAD $(SEPARATE) -Xlinker $(WX_CONFIG_LIBS)

View File

@@ -1,764 +0,0 @@
#! /bin/sh
#
# This script is creates a dir tree in ~/wxgtk_dist which
# can then be packed into an archive
echo --------
echo This script will copy the wxGTK release files into ~/wxgtk_dist
echo --------
echo
mkdir ~/wxgtk_dist
mkdir ~/wxgtk_dist/wxGTK
echo Base dir..
cd ../..
cp wxGTK.spec ~/wxgtk_dist/wxGTK
cp Makefile ~/wxgtk_dist/wxGTK
cp configure ~/wxgtk_dist/wxGTK
cp configure.in ~/wxgtk_dist/wxGTK
cp config.sub ~/wxgtk_dist/wxGTK
cp config.guess ~/wxgtk_dist/wxGTK
cp install-sh ~/wxgtk_dist/wxGTK
cp mkinstalldirs ~/wxgtk_dist/wxGTK
cp template.mak ~/wxgtk_dist/wxGTK
cp wx-config.in ~/wxgtk_dist/wxGTK
echo Docs..
cd docs/gtk
cp COPYING.LIB ~/wxgtk_dist/wxGTK
cp install.txt ~/wxgtk_dist/wxGTK/INSTALL.txt
cp licence.txt ~/wxgtk_dist/wxGTK/LICENCE.txt
cp readme.txt ~/wxgtk_dist/wxGTK/README.txt
cp todo.txt ~/wxgtk_dist/wxGTK/TODO.txt
cd ..
cp symbols.txt ~/wxgtk_dist/wxGTK/SYMBOLS.txt
cd ..
echo Include dir..
mkdir ~/wxgtk_dist/wxGTK/include
cd include
cp install-sh ~/wxgtk_dist/wxGTK/include
mkdir ~/wxgtk_dist/wxGTK/include/wx
cd wx
cp install-sh ~/wxgtk_dist/wxGTK/include/wx
cp *.h ~/wxgtk_dist/wxGTK/include/wx
cp *.cpp ~/wxgtk_dist/wxGTK/include/wx
mkdir ~/wxgtk_dist/wxGTK/include/wx/generic
cd generic
cp *.h ~/wxgtk_dist/wxGTK/include/wx/generic
cd ..
mkdir ~/wxgtk_dist/wxGTK/include/wx/unix
cd unix
cp *.h ~/wxgtk_dist/wxGTK/include/wx/unix
cd ..
mkdir ~/wxgtk_dist/wxGTK/include/wx/gtk
cd gtk
cp *.h ~/wxgtk_dist/wxGTK/include/wx/gtk
rm ~/wxgtk_dist/wxGTK/include/wx/gtk/setup.h
cd ..
mkdir ~/wxgtk_dist/wxGTK/include/wx/protocol
cd protocol
cp *.h ~/wxgtk_dist/wxGTK/include/wx/protocol
cd ..
cd ..
cd ..
echo Base lib..
mkdir ~/wxgtk_dist/wxGTK/lib
cp ./lib/dummy ~/wxgtk_dist/wxGTK/lib
echo Misc dir..
mkdir ~/wxgtk_dist/wxGTK/misc
mkdir ~/wxgtk_dist/wxGTK/misc/afm
mkdir ~/wxgtk_dist/wxGTK/misc/gs_afm
cp ./misc/afm/*.afm ~/wxgtk_dist/wxGTK/misc/afm
cp ./misc/gs_afm/*.afm ~/wxgtk_dist/wxGTK/misc/gs_afm
echo Setup dir..
cd setup
mkdir ~/wxgtk_dist/wxGTK/setup
cp maketmpl.in ~/wxgtk_dist/wxGTK/setup
cp setup.hin ~/wxgtk_dist/wxGTK/setup
cp substit.in ~/wxgtk_dist/wxGTK/setup
cd general
mkdir ~/wxgtk_dist/wxGTK/setup/general
cp createall ~/wxgtk_dist/wxGTK/setup/general
cp jointar ~/wxgtk_dist/wxGTK/setup/general
cp makeapp ~/wxgtk_dist/wxGTK/setup/general
cp makedirs ~/wxgtk_dist/wxGTK/setup/general
cp makedoc ~/wxgtk_dist/wxGTK/setup/general
cp mygrep ~/wxgtk_dist/wxGTK/setup/general
cp needed ~/wxgtk_dist/wxGTK/setup/general
cd ..
cd rules
mkdir ~/wxgtk_dist/wxGTK/setup/rules
cp * ~/wxgtk_dist/wxGTK/setup/rules
cd generic
mkdir ~/wxgtk_dist/wxGTK/setup/rules/generic
cp * ~/wxgtk_dist/wxGTK/setup/rules/generic
cd ..
cd ..
cd shared
mkdir ~/wxgtk_dist/wxGTK/setup/shared
cp * ~/wxgtk_dist/wxGTK/setup/shared
cd ..
cd ..
echo User dir..
cd src
mkdir ~/wxgtk_dist/wxGTK/user
cp Makefile ~/wxgtk_dist/wxGTK/user
cd ..
echo Src dir..
cd src
mkdir ~/wxgtk_dist/wxGTK/src
cp Makefile ~/wxgtk_dist/wxGTK/src
cp Makefile.in ~/wxgtk_dist/wxGTK/src
cp gtk.inc ~/wxgtk_dist/wxGTK/src
cd common
mkdir ~/wxgtk_dist/wxGTK/src/common
cp glob.inc ~/wxgtk_dist/wxGTK/src/common
cp lexer.l ~/wxgtk_dist/wxGTK/src/common
cp parser.y ~/wxgtk_dist/wxGTK/src/common
cp y_tab.c ~/wxgtk_dist/wxGTK/src/common
cp extended.c ~/wxgtk_dist/wxGTK/src/common
cp *.cpp ~/wxgtk_dist/wxGTK/src/common
cd ..
cd gtk
mkdir ~/wxgtk_dist/wxGTK/src/gtk
cp *.xbm ~/wxgtk_dist/wxGTK/src/gtk
cp *.c ~/wxgtk_dist/wxGTK/src/gtk
cp *.inc ~/wxgtk_dist/wxGTK/src/gtk
cp *.cpp ~/wxgtk_dist/wxGTK/src/gtk
cd ..
cd unix
mkdir ~/wxgtk_dist/wxGTK/src/unix
cp *.cpp ~/wxgtk_dist/wxGTK/src/unix
cd ..
cd generic
mkdir ~/wxgtk_dist/wxGTK/src/generic
cp *.cpp ~/wxgtk_dist/wxGTK/src/generic
cd ..
cd iodbc
mkdir ~/wxgtk_dist/wxGTK/src/iodbc
cp * ~/wxgtk_dist/wxGTK/src/iodbc
cd ..
cd zlib
mkdir ~/wxgtk_dist/wxGTK/src/zlib
cp * ~/wxgtk_dist/wxGTK/src/zlib
cd ..
cd png
mkdir ~/wxgtk_dist/wxGTK/src/png
cp * ~/wxgtk_dist/wxGTK/src/png
cd ..
cd jpeg
mkdir ~/wxgtk_dist/wxGTK/src/jpeg
cp * ~/wxgtk_dist/wxGTK/src/jpeg
cd ..
cd ..
echo Utils dir..
cd utils
mkdir ~/wxgtk_dist/wxGTK/utils
cp Makefile ~/wxgtk_dist/wxGTK/utils
echo wxGLCanvas..
cd glcanvas
mkdir ~/wxgtk_dist/wxGTK/utils/glcanvas
cp ./docs/notes.txt ~/wxgtk_dist/wxGTK/utils/glcanvas/NOTES.txt
mkdir ~/wxgtk_dist/wxGTK/utils/glcanvas/gtk
cp ./gtk/glcanvas.cpp ~/wxgtk_dist/wxGTK/utils/glcanvas/gtk
cp ./gtk/glcanvas.h ~/wxgtk_dist/wxGTK/utils/glcanvas/gtk
mkdir ~/wxgtk_dist/wxGTK/utils/glcanvas/samples
mkdir ~/wxgtk_dist/wxGTK/utils/glcanvas/samples/cube
mkdir ~/wxgtk_dist/wxGTK/utils/glcanvas/samples/isosurf
mkdir ~/wxgtk_dist/wxGTK/utils/glcanvas/samples/penguin
cd samples/cube
cp Makefile ~/wxgtk_dist/wxGTK/utils/glcanvas/samples/cube
cp cube.h ~/wxgtk_dist/wxGTK/utils/glcanvas/samples/cube
cp cube.cpp ~/wxgtk_dist/wxGTK/utils/glcanvas/samples/cube
cd ..
cd isosurf
cp Makefile ~/wxgtk_dist/wxGTK/utils/glcanvas/samples/isosurf
cp isosurf.h ~/wxgtk_dist/wxGTK/utils/glcanvas/samples/isosurf
cp isosurf.cpp ~/wxgtk_dist/wxGTK/utils/glcanvas/samples/isosurf
cp isosurf.dat.gz ~/wxgtk_dist/wxGTK/utils/glcanvas/samples/isosurf
cd ..
cd penguin
cp Makefile ~/wxgtk_dist/wxGTK/utils/glcanvas/samples/penguin
cp penguin.h ~/wxgtk_dist/wxGTK/utils/glcanvas/samples/penguin
cp penguin.cpp ~/wxgtk_dist/wxGTK/utils/glcanvas/samples/penguin
cp trackball.h ~/wxgtk_dist/wxGTK/utils/glcanvas/samples/penguin
cp trackball.c ~/wxgtk_dist/wxGTK/utils/glcanvas/samples/penguin
cp lw.h ~/wxgtk_dist/wxGTK/utils/glcanvas/samples/penguin
cp lw.cpp ~/wxgtk_dist/wxGTK/utils/glcanvas/samples/penguin
cp penguin.lwo ~/wxgtk_dist/wxGTK/utils/glcanvas/samples/penguin
cd ../../..
echo DialogEd..
cd dialoged/src
mkdir ~/wxgtk_dist/wxGTK/utils/dialoged
cp Makefile ~/wxgtk_dist/wxGTK/utils/dialoged
cp dialoged.cpp ~/wxgtk_dist/wxGTK/utils/dialoged
cp dlghndlr.cpp ~/wxgtk_dist/wxGTK/utils/dialoged
cp edlist.cpp ~/wxgtk_dist/wxGTK/utils/dialoged
cp edtree.cpp ~/wxgtk_dist/wxGTK/utils/dialoged
cp reseditr.cpp ~/wxgtk_dist/wxGTK/utils/dialoged
cp reswrite.cpp ~/wxgtk_dist/wxGTK/utils/dialoged
cp symbtabl.cpp ~/wxgtk_dist/wxGTK/utils/dialoged
cp winprop.cpp ~/wxgtk_dist/wxGTK/utils/dialoged
cp winstyle.cpp ~/wxgtk_dist/wxGTK/utils/dialoged
cp dialoged.h ~/wxgtk_dist/wxGTK/utils/dialoged
cp dlghndlr.h ~/wxgtk_dist/wxGTK/utils/dialoged
cp edlist.h ~/wxgtk_dist/wxGTK/utils/dialoged
cp edtree.h ~/wxgtk_dist/wxGTK/utils/dialoged
cp reseditr.h ~/wxgtk_dist/wxGTK/utils/dialoged
cp symbtabl.h ~/wxgtk_dist/wxGTK/utils/dialoged
cp winprop.h ~/wxgtk_dist/wxGTK/utils/dialoged
cp winstyle.h ~/wxgtk_dist/wxGTK/utils/dialoged
cd bitmaps
mkdir ~/wxgtk_dist/wxGTK/utils/dialoged/bitmaps
cp *.xpm ~/wxgtk_dist/wxGTK/utils/dialoged/bitmaps
cd ../../..
echo wxPython..
cd wxPython
mkdir ~/wxgtk_dist/wxGTK/utils/wxPython
cp README.txt ~/wxgtk_dist/wxGTK/utils/wxPython
mkdir ~/wxgtk_dist/wxGTK/utils/wxPython/src
cp ./src/* ~/wxgtk_dist/wxGTK/utils/wxPython/src
mkdir ~/wxgtk_dist/wxGTK/utils/wxPython/src/gtk
cp ./src/gtk/* ~/wxgtk_dist/wxGTK/utils/wxPython/src/gtk
mkdir ~/wxgtk_dist/wxGTK/utils/wxPython/lib
cp ./lib/*.py ~/wxgtk_dist/wxGTK/utils/wxPython/lib
mkdir ~/wxgtk_dist/wxGTK/utils/wxPython/tests
cp ./tests/README.txt ~/wxgtk_dist/wxGTK/utils/wxPython/tests
cp ./tests/*.py ~/wxgtk_dist/wxGTK/utils/wxPython/tests
mkdir ~/wxgtk_dist/wxGTK/utils/wxPython/demo
cp ./demo/README.txt ~/wxgtk_dist/wxGTK/utils/wxPython/demo
cp ./demo/*.py ~/wxgtk_dist/wxGTK/utils/wxPython/demo
cp ./demo/*.pyc ~/wxgtk_dist/wxGTK/utils/wxPython/demo
mkdir ~/wxgtk_dist/wxGTK/utils/wxPython/demo/bitmaps
cp ./demo/bitmaps/* ~/wxgtk_dist/wxGTK/utils/wxPython/demo/bitmaps
mkdir ~/wxgtk_dist/wxGTK/utils/wxPython/tests/bitmaps
cp ./tests/bitmaps/* ~/wxgtk_dist/wxGTK/utils/wxPython/tests/bitmaps
cd ..
echo wxOLE..
cd wxOLE
mkdir ~/wxgtk_dist/wxGTK/utils/wxOLE
mkdir ~/wxgtk_dist/wxGTK/utils/wxOLE/gtk
cp ./gtk/wxole.* ~/wxgtk_dist/wxGTK/utils/wxOLE/gtk
mkdir ~/wxgtk_dist/wxGTK/utils/wxOLE/samples
mkdir ~/wxgtk_dist/wxGTK/utils/wxOLE/samples/servlet
cp ./samples/servlet/Makefile ~/wxgtk_dist/wxGTK/utils/wxOLE/samples/servlet
cp ./samples/servlet/*.xpm ~/wxgtk_dist/wxGTK/utils/wxOLE/samples/servlet
cp ./samples/servlet/*.cpp ~/wxgtk_dist/wxGTK/utils/wxOLE/samples/servlet
cp ./samples/servlet/*.gnorba ~/wxgtk_dist/wxGTK/utils/wxOLE/samples/servlet
cd ../..
echo Samples dir..
cd samples
mkdir ~/wxgtk_dist/wxGTK/samples
cp Makefile ~/wxgtk_dist/wxGTK/samples
echo Minimal sample..
cd minimal
mkdir ~/wxgtk_dist/wxGTK/samples/minimal
cp Makefile ~/wxgtk_dist/wxGTK/samples/minimal
cp Makefile.in ~/wxgtk_dist/wxGTK/samples/minimal
cp minimal.cpp ~/wxgtk_dist/wxGTK/samples/minimal
cp mondrian.xpm ~/wxgtk_dist/wxGTK/samples/minimal
cd ..
echo Bombs sample..
cd bombs
mkdir ~/wxgtk_dist/wxGTK/samples/bombs
cp Makefile ~/wxgtk_dist/wxGTK/samples/bombs
cp Makefile.in ~/wxgtk_dist/wxGTK/samples/bombs
cp *.cpp ~/wxgtk_dist/wxGTK/samples/bombs
cp *.h ~/wxgtk_dist/wxGTK/samples/bombs
cp *.xpm ~/wxgtk_dist/wxGTK/samples/bombs
cd ..
echo Checklst sample..
cd checklst
mkdir ~/wxgtk_dist/wxGTK/samples/checklst
cp Makefile ~/wxgtk_dist/wxGTK/samples/checklst
cp Makefile.in ~/wxgtk_dist/wxGTK/samples/checklst
cp *.cpp ~/wxgtk_dist/wxGTK/samples/checklst
cp *.xpm ~/wxgtk_dist/wxGTK/samples/checklst
cd ..
echo Config sample..
cd config
mkdir ~/wxgtk_dist/wxGTK/samples/config
cp Makefile ~/wxgtk_dist/wxGTK/samples/config
cp Makefile.in ~/wxgtk_dist/wxGTK/samples/config
cp *.cpp ~/wxgtk_dist/wxGTK/samples/config
cd ..
echo Controls sample..
cd controls
mkdir ~/wxgtk_dist/wxGTK/samples/controls
cp Makefile ~/wxgtk_dist/wxGTK/samples/controls
cp Makefile.in ~/wxgtk_dist/wxGTK/samples/controls
cp *.cpp ~/wxgtk_dist/wxGTK/samples/controls
cp *.xpm ~/wxgtk_dist/wxGTK/samples/controls
cd icons
mkdir ~/wxgtk_dist/wxGTK/samples/controls/icons
cp *.xpm ~/wxgtk_dist/wxGTK/samples/controls/icons
cd ../..
echo Db sample..
cd db
mkdir ~/wxgtk_dist/wxGTK/samples/db
cp Makefile ~/wxgtk_dist/wxGTK/samples/db
cp Makefile.in ~/wxgtk_dist/wxGTK/samples/db
cp *.cpp ~/wxgtk_dist/wxGTK/samples/db
cp *.h ~/wxgtk_dist/wxGTK/samples/db
cp *.xpm ~/wxgtk_dist/wxGTK/samples/db
cd ..
echo DDE sample..
cd dde
mkdir ~/wxgtk_dist/wxGTK/samples/dde
cp Makefile ~/wxgtk_dist/wxGTK/samples/dde
cp Makefile.in ~/wxgtk_dist/wxGTK/samples/dde
cp *.cpp ~/wxgtk_dist/wxGTK/samples/dde
cp *.h ~/wxgtk_dist/wxGTK/samples/dde
cp *.xpm ~/wxgtk_dist/wxGTK/samples/dde
cd ..
echo Dialogs sample..
cd dialogs
mkdir ~/wxgtk_dist/wxGTK/samples/dialogs
cp Makefile ~/wxgtk_dist/wxGTK/samples/dialogs
cp Makefile.in ~/wxgtk_dist/wxGTK/samples/dialogs
cp *.cpp ~/wxgtk_dist/wxGTK/samples/dialogs
cp *.h ~/wxgtk_dist/wxGTK/samples/dialogs
cd ..
echo DnD sample..
cd dnd
mkdir ~/wxgtk_dist/wxGTK/samples/dnd
cp Makefile ~/wxgtk_dist/wxGTK/samples/dnd
cp Makefile.in ~/wxgtk_dist/wxGTK/samples/dnd
cp *.cpp ~/wxgtk_dist/wxGTK/samples/dnd
cp *.xpm ~/wxgtk_dist/wxGTK/samples/dnd
cd ..
echo Docview sample..
cd docview
mkdir ~/wxgtk_dist/wxGTK/samples/docview
cp Makefile ~/wxgtk_dist/wxGTK/samples/docview
cp Makefile.in ~/wxgtk_dist/wxGTK/samples/docview
cp *.cpp ~/wxgtk_dist/wxGTK/samples/docview
cp *.h ~/wxgtk_dist/wxGTK/samples/docview
cp *.xpm ~/wxgtk_dist/wxGTK/samples/docview
cd ..
echo DocvwMDI sample..
cd docvwmdi
mkdir ~/wxgtk_dist/wxGTK/samples/docvwmdi
cp Makefile ~/wxgtk_dist/wxGTK/samples/docvwmdi
cp Makefile.in ~/wxgtk_dist/wxGTK/samples/docvwmdi
cp *.cpp ~/wxgtk_dist/wxGTK/samples/docvwmdi
cp *.h ~/wxgtk_dist/wxGTK/samples/docvwmdi
cd ..
echo Dynamic sample..
cd dynamic
mkdir ~/wxgtk_dist/wxGTK/samples/dynamic
cp Makefile ~/wxgtk_dist/wxGTK/samples/dynamic
cp Makefile.in ~/wxgtk_dist/wxGTK/samples/dynamic
cp *.cpp ~/wxgtk_dist/wxGTK/samples/dynamic
cp *.xpm ~/wxgtk_dist/wxGTK/samples/dynamic
cd ..
echo Drawing sample..
cd drawing
mkdir ~/wxgtk_dist/wxGTK/samples/drawing
cp Makefile ~/wxgtk_dist/wxGTK/samples/drawing
cp Makefile.in ~/wxgtk_dist/wxGTK/samples/drawing
cp *.cpp ~/wxgtk_dist/wxGTK/samples/drawing
cp *.xpm ~/wxgtk_dist/wxGTK/samples/drawing
cd ..
echo Forty sample..
cd forty
mkdir ~/wxgtk_dist/wxGTK/samples/forty
cp Makefile ~/wxgtk_dist/wxGTK/samples/forty
cp Makefile.in ~/wxgtk_dist/wxGTK/samples/forty
cp *.cpp ~/wxgtk_dist/wxGTK/samples/forty
cp *.h ~/wxgtk_dist/wxGTK/samples/forty
cp *.xpm ~/wxgtk_dist/wxGTK/samples/forty
cp *.xbm ~/wxgtk_dist/wxGTK/samples/forty
cd ..
echo Fractal sample..
cd fractal
mkdir ~/wxgtk_dist/wxGTK/samples/fractal
cp Makefile ~/wxgtk_dist/wxGTK/samples/fractal
cp Makefile.in ~/wxgtk_dist/wxGTK/samples/fractal
cp *.cpp ~/wxgtk_dist/wxGTK/samples/fractal
cd ..
echo Grid sample..
cd grid
mkdir ~/wxgtk_dist/wxGTK/samples/grid
cp Makefile ~/wxgtk_dist/wxGTK/samples/grid
cp Makefile.in ~/wxgtk_dist/wxGTK/samples/grid
cp *.cpp ~/wxgtk_dist/wxGTK/samples/grid
cd ..
echo Help sample..
cd help
mkdir ~/wxgtk_dist/wxGTK/samples/help
cp Makefile ~/wxgtk_dist/wxGTK/samples/help
cp Makefile.in ~/wxgtk_dist/wxGTK/samples/help
cp *.cpp ~/wxgtk_dist/wxGTK/samples/help
cp *.xpm ~/wxgtk_dist/wxGTK/samples/help
cd doc
mkdir ~/wxgtk_dist/wxGTK/samples/help/doc
cp * ~/wxgtk_dist/wxGTK/samples/help/doc
cd ../..
echo Image sample..
cd image
mkdir ~/wxgtk_dist/wxGTK/samples/image
cp Makefile ~/wxgtk_dist/wxGTK/samples/image
cp Makefile.in ~/wxgtk_dist/wxGTK/samples/image
cp *.cpp ~/wxgtk_dist/wxGTK/samples/image
cp horse.png ~/wxgtk_dist/wxGTK/samples/image
cp horse.gif ~/wxgtk_dist/wxGTK/samples/image
cp horse.jpg ~/wxgtk_dist/wxGTK/samples/image
cd ..
echo Internat sample..
cd internat
mkdir ~/wxgtk_dist/wxGTK/samples/internat
cp Makefile ~/wxgtk_dist/wxGTK/samples/internat
cp Makefile.in ~/wxgtk_dist/wxGTK/samples/internat
cp *.cpp ~/wxgtk_dist/wxGTK/samples/internat
cp *.xpm ~/wxgtk_dist/wxGTK/samples/internat
cp readme.txt ~/wxgtk_dist/wxGTK/samples/internat
cp wxstd.po ~/wxgtk_dist/wxGTK/samples/internat
cd fr
mkdir ~/wxgtk_dist/wxGTK/samples/internat/fr
cp *.?o ~/wxgtk_dist/wxGTK/samples/internat/fr
cd ../..
echo Layout sample..
cd layout
mkdir ~/wxgtk_dist/wxGTK/samples/layout
cp Makefile ~/wxgtk_dist/wxGTK/samples/layout
cp Makefile.in ~/wxgtk_dist/wxGTK/samples/layout
cp *.cpp ~/wxgtk_dist/wxGTK/samples/layout
cp *.h ~/wxgtk_dist/wxGTK/samples/layout
cd ..
echo Listctrl sample..
cd listctrl
mkdir ~/wxgtk_dist/wxGTK/samples/listctrl
cp Makefile ~/wxgtk_dist/wxGTK/samples/listctrl
cp Makefile.in ~/wxgtk_dist/wxGTK/samples/listctrl
cp *.cpp ~/wxgtk_dist/wxGTK/samples/listctrl
cp *.h ~/wxgtk_dist/wxGTK/samples/listctrl
cp *.xpm ~/wxgtk_dist/wxGTK/samples/listctrl
cd bitmaps
mkdir ~/wxgtk_dist/wxGTK/samples/listctrl/bitmaps
cp *.xpm ~/wxgtk_dist/wxGTK/samples/listctrl/bitmaps
cd ../..
echo MDI sample..
cd mdi
mkdir ~/wxgtk_dist/wxGTK/samples/mdi
cp Makefile ~/wxgtk_dist/wxGTK/samples/mdi
cp Makefile.in ~/wxgtk_dist/wxGTK/samples/mdi
cp *.cpp ~/wxgtk_dist/wxGTK/samples/mdi
cp *.h ~/wxgtk_dist/wxGTK/samples/mdi
cp *.xpm ~/wxgtk_dist/wxGTK/samples/mdi
cd bitmaps
mkdir ~/wxgtk_dist/wxGTK/samples/mdi/bitmaps
cp *.xpm ~/wxgtk_dist/wxGTK/samples/mdi/bitmaps
cd ../..
echo Memcheck sample..
cd memcheck
mkdir ~/wxgtk_dist/wxGTK/samples/memcheck
cp Makefile ~/wxgtk_dist/wxGTK/samples/memcheck
cp Makefile.in ~/wxgtk_dist/wxGTK/samples/memcheck
cp *.cpp ~/wxgtk_dist/wxGTK/samples/memcheck
cp *.xpm ~/wxgtk_dist/wxGTK/samples/memcheck
cd ..
echo Minifram sample..
cd minifram
mkdir ~/wxgtk_dist/wxGTK/samples/minifram
cp Makefile ~/wxgtk_dist/wxGTK/samples/minifram
cp Makefile.in ~/wxgtk_dist/wxGTK/samples/minifram
cp *.cpp ~/wxgtk_dist/wxGTK/samples/minifram
cp *.h ~/wxgtk_dist/wxGTK/samples/minifram
cp *.xpm ~/wxgtk_dist/wxGTK/samples/minifram
cd bitmaps
mkdir ~/wxgtk_dist/wxGTK/samples/minifram/bitmaps
cp *.xpm ~/wxgtk_dist/wxGTK/samples/minifram/bitmaps
cd ../..
echo Notebook sample..
cd notebook
mkdir ~/wxgtk_dist/wxGTK/samples/notebook
cp Makefile ~/wxgtk_dist/wxGTK/samples/notebook
cp Makefile.in ~/wxgtk_dist/wxGTK/samples/notebook
cp *.cpp ~/wxgtk_dist/wxGTK/samples/notebook
cp *.h ~/wxgtk_dist/wxGTK/samples/notebook
cd ..
echo PNG sample..
cd png
mkdir ~/wxgtk_dist/wxGTK/samples/png
cp Makefile ~/wxgtk_dist/wxGTK/samples/png
cp Makefile.in ~/wxgtk_dist/wxGTK/samples/png
cp *.cpp ~/wxgtk_dist/wxGTK/samples/png
cp *.h ~/wxgtk_dist/wxGTK/samples/png
cp *.png ~/wxgtk_dist/wxGTK/samples/png
cd ..
echo Printing sample..
cd printing
mkdir ~/wxgtk_dist/wxGTK/samples/printing
cp Makefile ~/wxgtk_dist/wxGTK/samples/printing
cp Makefile.in ~/wxgtk_dist/wxGTK/samples/printing
cp *.cpp ~/wxgtk_dist/wxGTK/samples/printing
cp *.h ~/wxgtk_dist/wxGTK/samples/printing
cp *.xpm ~/wxgtk_dist/wxGTK/samples/printing
cd ..
echo Proplist sample..
cd proplist
mkdir ~/wxgtk_dist/wxGTK/samples/proplist
cp Makefile ~/wxgtk_dist/wxGTK/samples/proplist
cp Makefile.in ~/wxgtk_dist/wxGTK/samples/proplist
cp *.cpp ~/wxgtk_dist/wxGTK/samples/proplist
cp *.h ~/wxgtk_dist/wxGTK/samples/proplist
cd ..
echo Resource sample..
cd resource
mkdir ~/wxgtk_dist/wxGTK/samples/resource
cp Makefile ~/wxgtk_dist/wxGTK/samples/resource
cp Makefile.in ~/wxgtk_dist/wxGTK/samples/resource
cp *.cpp ~/wxgtk_dist/wxGTK/samples/resource
cp *.h ~/wxgtk_dist/wxGTK/samples/resource
cp *.wxr ~/wxgtk_dist/wxGTK/samples/resource
cd ..
echo Sashtest sample..
cd sashtest
mkdir ~/wxgtk_dist/wxGTK/samples/sashtest
cp Makefile ~/wxgtk_dist/wxGTK/samples/sashtest
cp Makefile.in ~/wxgtk_dist/wxGTK/samples/sashtest
cp *.cpp ~/wxgtk_dist/wxGTK/samples/sashtest
cp *.h ~/wxgtk_dist/wxGTK/samples/sashtest
cd ..
echo Scroll sample..
cd sashtest
mkdir ~/wxgtk_dist/wxGTK/samples/scroll
cp Makefile ~/wxgtk_dist/wxGTK/samples/scroll
cp Makefile.in ~/wxgtk_dist/wxGTK/samples/scroll
cp *.cpp ~/wxgtk_dist/wxGTK/samples/scroll
cp *.h ~/wxgtk_dist/wxGTK/samples/scroll
cd ..
echo Splitter sample..
cd splitter
mkdir ~/wxgtk_dist/wxGTK/samples/splitter
cp Makefile ~/wxgtk_dist/wxGTK/samples/splitter
cp Makefile.in ~/wxgtk_dist/wxGTK/samples/splitter
cp *.cpp ~/wxgtk_dist/wxGTK/samples/splitter
cd ..
echo Tab sample..
cd tab
mkdir ~/wxgtk_dist/wxGTK/samples/tab
cp Makefile ~/wxgtk_dist/wxGTK/samples/tab
cp Makefile.in ~/wxgtk_dist/wxGTK/samples/tab
cp *.cpp ~/wxgtk_dist/wxGTK/samples/tab
cp *.h ~/wxgtk_dist/wxGTK/samples/tab
cd ..
echo Thread sample..
cd thread
mkdir ~/wxgtk_dist/wxGTK/samples/thread
cp Makefile ~/wxgtk_dist/wxGTK/samples/thread
cp Makefile.in ~/wxgtk_dist/wxGTK/samples/thread
cp *.cpp ~/wxgtk_dist/wxGTK/samples/thread
cd ..
echo Toolbar sample..
cd toolbar
mkdir ~/wxgtk_dist/wxGTK/samples/toolbar
cp Makefile ~/wxgtk_dist/wxGTK/samples/toolbar
cp Makefile.in ~/wxgtk_dist/wxGTK/samples/toolbar
cp *.cpp ~/wxgtk_dist/wxGTK/samples/toolbar
cp *.h ~/wxgtk_dist/wxGTK/samples/toolbar
cp *.xpm ~/wxgtk_dist/wxGTK/samples/toolbar
cd bitmaps
mkdir ~/wxgtk_dist/wxGTK/samples/toolbar/bitmaps
cp *.xpm ~/wxgtk_dist/wxGTK/samples/toolbar/bitmaps
cd ../..
echo TreeCtrl sample..
cd treectrl
mkdir ~/wxgtk_dist/wxGTK/samples/treectrl
cp Makefile ~/wxgtk_dist/wxGTK/samples/treectrl
cp Makefile.in ~/wxgtk_dist/wxGTK/samples/treectrl
cp *.cpp ~/wxgtk_dist/wxGTK/samples/treectrl
cp *.h ~/wxgtk_dist/wxGTK/samples/treectrl
cp *.xpm ~/wxgtk_dist/wxGTK/samples/treectrl
cd ..
echo typetest sample..
cd typetest
mkdir ~/wxgtk_dist/wxGTK/samples/typetest
cp Makefile ~/wxgtk_dist/wxGTK/samples/typetest
cp Makefile.in ~/wxgtk_dist/wxGTK/samples/typetest
cp *.cpp ~/wxgtk_dist/wxGTK/samples/typetest
cp *.h ~/wxgtk_dist/wxGTK/samples/typetest
cp *.xpm ~/wxgtk_dist/wxGTK/samples/typetest
cd ..
echo Validate sample..
cd validate
mkdir ~/wxgtk_dist/wxGTK/samples/validate
cp Makefile ~/wxgtk_dist/wxGTK/samples/validate
cp Makefile.in ~/wxgtk_dist/wxGTK/samples/validate
cp *.cpp ~/wxgtk_dist/wxGTK/samples/validate
cp *.h ~/wxgtk_dist/wxGTK/samples/validate
cp *.xpm ~/wxgtk_dist/wxGTK/samples/validate
cd ..
echo wxPoem sample..
cd wxpoem
mkdir ~/wxgtk_dist/wxGTK/samples/wxpoem
cp Makefile ~/wxgtk_dist/wxGTK/samples/wxpoem
cp Makefile.in ~/wxgtk_dist/wxGTK/samples/wxpoem
cp *.cpp ~/wxgtk_dist/wxGTK/samples/wxpoem
cp *.h ~/wxgtk_dist/wxGTK/samples/wxpoem
cp *.xpm ~/wxgtk_dist/wxGTK/samples/wxpoem
cp wxpoem.dat ~/wxgtk_dist/wxGTK/samples/wxpoem
cp wxpoem.txt ~/wxgtk_dist/wxGTK/samples/wxpoem
cp wxpoem.idx ~/wxgtk_dist/wxGTK/samples/wxpoem
cd ..
echo wxSocket sample..
cd wxsocket
mkdir ~/wxgtk_dist/wxGTK/samples/wxsocket
cp Makefile ~/wxgtk_dist/wxGTK/samples/wxsocket
cp Makefile.in ~/wxgtk_dist/wxGTK/samples/wxsocket
cp *.cpp ~/wxgtk_dist/wxGTK/samples/wxsocket
cp *.xpm ~/wxgtk_dist/wxGTK/samples/wxsocket
cd ../..
echo LOCAL CORRECTCIONS
cd distrib/gtk
cp README.txt ~/wxgtk_dist/wxGTK/utils/wxPython
cp Setup ~/wxgtk_dist/wxGTK/utils/wxPython/src

View File

@@ -1,3 +0,0 @@
src/bc32.ide
src/bc32d.ide
samples/bc32.ide

View File

@@ -1,109 +0,0 @@
src/make_cw.mcp
src/common/cwy_tab.c
src/common/cwlex_yy.c
include/wx_cw.pch
include/wx_cw.pch++
include/wx_cw_d.pch
include/wx_cw_d.pch++
samples/bombs/make_cw.mcp
samples/checklst/make_cw.mcp
samples/config/make_cw.mcp
samples/controls/make_cw.mcp
samples/db/make_cw.mcp
samples/dialogs/make_cw.mcp
samples/dnd/make_cw.mcp
samples/docview/make_cw.mcp
samples/docvwmdi/make_cw.mcp
samples/dynamic/make_cw.mcp
samples/forty/make_cw.mcp
samples/fractal/make_cw.mcp
samples/grid/make_cw.mcp
samples/help/make_cw.mcp
samples/image/make_cw.mcp
samples/internat/make_cw.mcp
samples/joytest/make_cw.mcp
samples/layout/make_cw.mcp
samples/listctrl/make_cw.mcp
samples/mdi/make_cw.mcp
samples/memcheck/make_cw.mcp
samples/mfc/make_cw.mcp
samples/minimal/make_cw.mcp
samples/minifram/make_cw.mcp
samples/nativdlg/make_cw.mcp
samples/notebook/make_cw.mcp
samples/ownerdrw/make_cw.mcp
samples/png/make_cw.mcp
samples/printing/make_cw.mcp
samples/proplist/make_cw.mcp
samples/Regtest/make_cw.mcp
samples/resource/make_cw.mcp
samples/sashtest/make_cw.mcp
samples/splitter/make_cw.mcp
samples/tab/make_cw.mcp
samples/taskbar/make_cw.mcp
samples/thread/make_cw.mcp
samples/toolbar/make_cw.mcp
samples/treectrl/make_cw.mcp
samples/typetest/make_cw.mcp
samples/validate/make_cw.mcp
samples/wxsocket/make_cw.mcp
samples/wxpoem/make_cw.mcp
utils/wxprop/src/make_cw.mcp
utils/wxprop/src/make_sample.mcp
utils/dialoged/src/make_cw.mcp
utils/glcanvas/win/make_cw.mcp
utils/glcanvas/samples/cube/make_cw.mcp
utils/glcanvas/samples/isosurf/make_cw.mcp
utils/ogl/src/make_cw.mcp
utils/ogl/samples/ogledit/make_cw.mcp
utils/wxtree/src/make_cw.mcp
utils/wxtree/src/make_cw.mcp

View File

@@ -1,97 +0,0 @@
docs/latex/wx/*.tex
docs/latex/wx/*.sty
docs/latex/wx/*.bib
docs/latex/wx/*.hpj
docs/latex/wx/*.ini
docs/latex/wx/*.txt
docs/latex/wx/*.cnt
docs/latex/wx/*.eps
docs/latex/wx/*.bmp
docs/latex/wx/*.gif
docs/latex/wx/*.wmf
docs/latex/proplist/*.tex
docs/latex/proplist/*.sty
docs/latex/proplist/*.bib
docs/latex/proplist/*.hpj
docs/latex/proplist/*.ini
docs/latex/proplist/*.txt
docs/latex/proplist/*.cnt
docs/latex/proplist/*.eps
docs/latex/proplist/*.bmp
docs/latex/proplist/*.gif
docs/latex/proplist/*.wmf
docs/latex/porting/*.tex
docs/latex/porting/*.sty
docs/latex/porting/*.bib
docs/latex/porting/*.hpj
docs/latex/porting/*.ini
docs/latex/porting/*.txt
docs/latex/porting/*.cnt
docs/latex/porting/*.eps
docs/latex/porting/*.gif
docs/latex/porting/*.bmp
utils/wxhelp/docs/*.tex
utils/wxhelp/docs/*.txt
utils/wxhelp/docs/*.hpj
utils/wxhelp/docs/*.ini
utils/wxhelp/docs/*.bmp
utils/wxhelp/docs/*.wmf
utils/wxhelp/docs/*.gif
utils/tex2rtf/docs/*.tex
utils/tex2rtf/docs/*.txt
utils/tex2rtf/docs/*.hpj
utils/tex2rtf/docs/*.bib
utils/tex2rtf/docs/*.ini
utils/tex2rtf/docs/*.sty
utils/tex2rtf/docs/*.bmp
utils/tex2rtf/docs/*.shg
utils/tex2rtf/docs/*.wmf
utils/tex2rtf/docs/*.gif
utils/wxtree/docs/*.tex
utils/wxtree/docs/*.ini
utils/wxtree/docs/*.bib
utils/wxtree/docs/*.txt
utils/wxtree/docs/*.hpj
utils/wxtree/docs/*.bmp
utils/wxtree/docs/*.wmf
utils/wxtree/docs/*.gif
utils/wxgraph/docs/*.tex
utils/wxgraph/docs/*.ini
utils/wxgraph/docs/*.bib
utils/wxgraph/docs/*.txt
utils/wxgraph/docs/*.hpj
utils/wxgraph/docs/*.bmp
utils/wxgraph/docs/*.wmf
utils/wxgraph/docs/*.gif
utils/mfutils/docs/*.tex
utils/mfutils/docs/*.txt
utils/mfutils/docs/*.hpj
utils/mfutils/docs/*.wmf
utils/mfutils/docs/*.bmp
utils/wxprop/docs/*.txt
utils/wxprop/docs/*.hpj
utils/wxprop/docs/*.tex
utils/wxprop/docs/*.ini
utils/wxprop/docs/*.eps
utils/wxprop/docs/*.bmp
utils/wxprop/docs/*.wmf
utils/wxprop/docs/*.gif
utils/dialoged/docs/*.txt
utils/dialoged/docs/*.hpj
utils/dialoged/docs/*.tex
utils/dialoged/docs/*.ini
utils/dialoged/docs/*.eps
utils/dialoged/docs/*.bmp
utils/dialoged/docs/*.wmf
utils/dialoged/docs/*.gif

View File

@@ -1,727 +0,0 @@
distrib/msw/*.rsp
distrib/msw/*.bat
distrib/msw/tardist
distrib/gtk/*
locale/*.po
locale/*.mo
docs/readme.txt
docs/install.txt
docs/release.txt
docs/changes.txt
docs/upgrade.txt
docs/todo.txt
docs/licence.txt
docs/symbols.txt
docs/bugs.txt
docs/*.htm
docs/html/*.htm
docs/html/*.gif
src/*.inc
src/mkdir
src/common/*.cpp
src/common/dosyacc.c
src/common/doslex.c
src/common/vmsyacc.c
src/common/vmslex.c
src/common/extended.c
src/common/*.l
src/common/*.y
src/common/*.inc
src/generic/*.cpp
src/generic/*.c
src/generic/*.inc
src/unix/*.cpp
src/png/*.c
src/png/*.h
src/png/makefile*
src/png/INSTALL
src/png/CHANGES
src/png/README
src/png/TODO
src/png/*.1
src/png/*.3
src/png/*.5
src/png/scripts/*
src/zlib/*.c
src/zlib/*.h
src/zlib/INDEX
src/zlib/README
src/zlib/ChangeLog
src/zlib/configure
src/zlib/*.txt
src/zlib/makefile*
src/zlib/*.com
src/zlib/*.3
src/zlib/*.mms
include/wx/*.h
include/wx/*.cpp
include/wx/protocol/*.h
include/wx/wx_setup.vms
include/wx/common/*.h
include/wx/generic/*.h
include/wx/unix/*.h
lib/dummy
bin/*.*
tools/gettext/*.*
bitmaps/xpm/16x16/*.*
bitmaps/xpm/32x32/*.*
bitmaps/xpm/64x64/*.*
bitmaps/xpm/misc/*.*
bitmaps/*.*
bitmaps/bmp/16x15/*.*
bitmaps/bmp/10x8/*.*
bitmaps/ico/32x32/*.*
afm/*.*
utils/*.txt
utils/make*
utils/xpmshow/src/makefile*
utils/xpmshow/src/*.cpp
utils/xpmshow/src/*.h
utils/xpmshow/src/*.def
utils/xpmshow/src/*.rc
utils/xpmshow/src/*.xpm
utils/xpmshow/src/*.bmp
utils/xpmshow/src/*.ico
utils/wxhelp/src/*.cpp
utils/wxhelp/src/*.h
utils/wxhelp/src/makefile*
utils/wxhelp/src/*.xbm
utils/wxhelp/src/*.xpm
utils/wxhelp/src/*.txt
utils/wxhelp/src/*.ico
utils/wxhelp/src/*.def
utils/wxhelp/src/*.rc
utils/wxgraph/src/*.cpp
utils/wxgraph/src/*.c
utils/wxgraph/src/*.h
utils/wxgraph/src/makefile*
utils/wxgraph/src/*.xbm
utils/wxgraph/src/*.xpm
utils/wxgraph/lib/dummy
utils/wxgraph/src/*.ico
utils/wxgraph/src/*.def
utils/wxgraph/src/*.rc
utils/rcparser/src/*.cpp
utils/rcparser/src/*.c
utils/rcparser/src/*.h
utils/rcparser/src/makefile*
utils/rcparser/src/*.xbm
utils/rcparser/src/*.xpm
utils/rcparser/lib/dummy
utils/rcparser/src/*.ico
utils/rcparser/src/*.def
utils/rcparser/src/*.rc
utils/rcparser/src/*.rh
utils/colours/*.h
utils/colours/*.cpp
utils/colours/*.def
utils/colours/*.rc
utils/colours/makefile*
utils/colours/*.xbm
utils/colours/*.xpm
utils/colours/*.txt
utils/serialize/*.h
utils/serialize/*.cpp
utils/serialize/*.def
utils/serialize/*.rc
utils/serialize/makefile*
utils/serialize/*.xbm
utils/serialize/*.xpm
utils/serialize/*.txt
utils/dialoged/Makefile
utils/dialoged/src/bitmaps/*.xbm
utils/dialoged/src/bitmaps/*.xpm
utils/dialoged/src/*.h
utils/dialoged/src/*.cpp
utils/dialoged/src/*.def
utils/dialoged/src/*.rc
utils/dialoged/src/makefile*
utils/dialoged/src/*.xbm
utils/dialoged/src/*.xpm
utils/dialoged/src/*.txt
utils/dialoged/src/*.inf
utils/dialoged/test/*.h
utils/dialoged/src/*.ico
utils/dialoged/src/*.prj
utils/dialoged/src/*.bmp
utils/dialoged/src/bitmaps/*.bmp
utils/dialoged/src/bitmaps/*.ico
utils/dialoged/test/*.cpp
utils/dialoged/test/*.def
utils/dialoged/test/*.rc
utils/dialoged/test/makefile*
utils/dialoged/lib/dummy
utils/dialoged/test/*.ico
utils/dialoged/test/*.prj
utils/dialoged/test/*.bmp
samples/*.txt
samples/makefile*
samples/config/*.cpp
samples/config/*.h
samples/config/*.def
samples/config/makefile*
samples/config/*.xbm
samples/config/*.xpm
samples/config/*.txt
samples/config/*.ico
samples/config/*.bmp
samples/config/*.rc
samples/config/*.wav
samples/dynamic/*.cpp
samples/dynamic/*.h
samples/dynamic/*.def
samples/dynamic/makefile*
samples/dynamic/*.xbm
samples/dynamic/*.xpm
samples/dynamic/*.txt
samples/dynamic/*.ico
samples/dynamic/*.bmp
samples/dynamic/*.rc
samples/dynamic/*.wav
samples/wxsocket/*.cpp
samples/wxsocket/*.h
samples/wxsocket/*.def
samples/wxsocket/makefile*
samples/wxsocket/client.wat
samples/wxsocket/server.wat
samples/wxsocket/client.vc
samples/wxsocket/server.vc
samples/wxsocket/client.dos
samples/wxsocket/server.dos
samples/wxsocket/client.b32
samples/wxsocket/server.b32
samples/wxsocket/client.bcc
samples/wxsocket/server.bcc
samples/wxsocket/*.xbm
samples/wxsocket/*.xpm
samples/wxsocket/*.ico
samples/wxsocket/*.rc
samples/help/*.cpp
samples/help/*.h
samples/help/*.def
samples/help/makefile*
samples/help/*.xbm
samples/help/*.xpm
samples/help/*.ico
samples/help/*.rc
samples/help/doc/*.html
samples/help/doc/*.htm
samples/help/doc/*.class
samples/help/doc/*.db
samples/help/doc/*.tex
samples/help/doc/*.gif
samples/help/doc/*.map
samples/bombs/*.cpp
samples/bombs/*.h
samples/bombs/*.def
samples/bombs/makefile*
samples/bombs/*.xbm
samples/bombs/*.xpm
samples/bombs/*.txt
samples/bombs/*.ico
samples/bombs/*.bmp
samples/bombs/*.rc
samples/ipc/*.cpp
samples/ipc/*.h
samples/ipc/*.def
samples/ipc/makefile*
samples/ipc/*.xbm
samples/ipc/*.xpm
samples/ipc/*.ico
samples/ipc/*.rc
samples/typetest/*.cpp
samples/typetest/*.h
samples/typetest/*.def
samples/typetest/*.rc
samples/typetest/*.txt
samples/typetest/makefile*
samples/typetest/*.xbm
samples/typetest/*.xpm
samples/typetest/*.ico
samples/sashtest/*.cpp
samples/sashtest/*.h
samples/sashtest/*.def
samples/sashtest/*.rc
samples/sashtest/*.txt
samples/sashtest/makefile*
samples/sashtest/*.xbm
samples/sashtest/*.xpm
samples/sashtest/*.ico
samples/resource/*.cpp
samples/resource/*.h
samples/resource/*.def
samples/resource/*.rc
samples/resource/*.txt
samples/resource/*.wxr
samples/resource/makefile*
samples/resource/*.xbm
samples/resource/*.xpm
samples/resource/*.ico
samples/animate/*.cpp
samples/animate/*.h
samples/animate/*.def
samples/animate/makefile*
samples/animate/*.xbm
samples/animate/*.xpm
samples/animate/*.ico
samples/animate/*.rc
samples/mdi/*.cpp
samples/mdi/*.h
samples/mdi/*.def
samples/mdi/makefile*
samples/mdi/*.xbm
samples/mdi/*.xpm
samples/mdi/*.ico
samples/mdi/*.rc
samples/mdi/bitmaps/*.bmp
samples/mdi/bitmaps/*.ico
samples/mdi/bitmaps/*.xpm
samples/mdi/bitmaps/*.xbm
samples/minimal/*.cpp
samples/minimal/*.h
samples/minimal/*.def
samples/minimal/makefile*
samples/minimal/*.xbm
samples/minimal/*.xpm
samples/minimal/*.ico
samples/minimal/*.rc
samples/controls/*.cpp
samples/controls/*.h
samples/controls/*.def
samples/controls/makefile*
samples/controls/*.xbm
samples/controls/*.xpm
samples/controls/*.ico
samples/controls/*.bmp
samples/controls/*.rc
samples/controls/icons/*.bmp
samples/controls/icons/*.ico
samples/controls/icons/*.xpm
samples/fractal/*.cpp
samples/fractal/*.h
samples/fractal/*.def
samples/fractal/makefile*
samples/fractal/*.xbm
samples/fractal/*.xpm
samples/fractal/*.ico
samples/fractal/*.rc
samples/proplist/*.cpp
samples/proplist/*.h
samples/proplist/*.def
samples/proplist/makefile*
samples/proplist/*.xbm
samples/proplist/*.xpm
samples/proplist/*.ico
samples/proplist/*.bmp
samples/proplist/*.rc
samples/layout/*.cpp
samples/layout/*.h
samples/layout/*.def
samples/layout/makefile*
samples/layout/*.xbm
samples/layout/*.xpm
samples/layout/*.ico
samples/layout/*.rc
samples/layout/*.bmp
samples/printing/*.cpp
samples/printing/*.h
samples/printing/*.def
samples/printing/makefile*
samples/printing/*.xbm
samples/printing/*.xpm
samples/printing/*.txt
samples/printing/*.ico
samples/printing/*.bmp
samples/printing/*.rc
samples/printing/*.afm
samples/toolbar/*.cpp
samples/toolbar/*.h
samples/toolbar/*.def
samples/toolbar/makefile*
samples/toolbar/*.txt
samples/toolbar/*.xbm
samples/toolbar/*.xpm
samples/toolbar/bitmaps/*.xbm
samples/toolbar/bitmaps/*.xpm
samples/toolbar/*.ico
samples/toolbar/*.bmp
samples/toolbar/*.rc
samples/toolbar/bitmaps/*.bmp
samples/docview/*.h
samples/docview/*.cpp
samples/docview/*.def
samples/docview/*.rc
samples/docview/makefile*
samples/docview/*.xbm
samples/docview/*.xpm
samples/docview/*.txt
samples/docview/*.ico
samples/docview/*.bmp
samples/docvwmdi/*.h
samples/docvwmdi/*.cpp
samples/docvwmdi/*.def
samples/docvwmdi/*.rc
samples/docvwmdi/makefile*
samples/docvwmdi/*.xbm
samples/docvwmdi/*.xpm
samples/docvwmdi/*.txt
samples/docvwmdi/*.ico
samples/docvwmdi/*.bmp
samples/minifram/*.h
samples/minifram/*.cpp
samples/minifram/*.def
samples/minifram/*.rc
samples/minifram/makefile*
samples/minifram/*.xbm
samples/minifram/*.xpm
samples/minifram/*.txt
samples/minifram/*.ico
samples/minifram/*.bmp
samples/minifram/bitmaps/*.bmp
samples/minifram/bitmaps/*.xpm
samples/memcheck/*.h
samples/memcheck/*.cpp
samples/memcheck/*.def
samples/memcheck/*.rc
samples/memcheck/makefile*
samples/memcheck/*.xbm
samples/memcheck/*.xpm
samples/memcheck/*.txt
samples/memcheck/*.ico
samples/memcheck/*.bmp
samples/odbc/*.h
samples/odbc/*.cpp
samples/odbc/*.def
samples/odbc/*.rc
samples/odbc/makefile*
samples/odbc/*.inf
samples/odbc/*.xbm
samples/odbc/*.xpm
samples/odbc/*.ico
samples/odbc/*.bmp
samples/odbc/*.dbf
samples/odbc/*.cdx
samples/dialogs/*.h
samples/dialogs/*.cpp
samples/dialogs/*.def
samples/dialogs/*.rc
samples/dialogs/makefile*
samples/dialogs/*.xbm
samples/dialogs/*.xpm
samples/dialogs/*.txt
samples/dialogs/*.bmp
samples/dialogs/*.ico
samples/wxpoem/*.cpp
samples/wxpoem/*.h
samples/wxpoem/*.def
samples/wxpoem/*.rc
samples/wxpoem/*.inf
samples/wxpoem/*.txt
samples/wxpoem/makefile*
samples/wxpoem/*.xbm
samples/wxpoem/*.xpm
samples/wxpoem/*.ico
samples/wxpoem/*.bmp
samples/wxpoem/*.dat
samples/pressup/*.cpp
samples/pressup/*.c
samples/pressup/*.h
samples/pressup/*.def
samples/pressup/*.rc
samples/pressup/*.inf
samples/pressup/*.txt
samples/pressup/makefile*
samples/pressup/*.xbm
samples/pressup/*.xpm
samples/pressup/*.ico
samples/pressup/*.bmp
samples/validate/*.cpp
samples/validate/*.h
samples/validate/*.def
samples/validate/*.rc
samples/validate/*.inf
samples/validate/*.txt
samples/validate/makefile*
samples/validate/*.xbm
samples/validate/*.xpm
samples/validate/*.ico
samples/validate/*.bmp
samples/events/*.cpp
samples/events/*.h
samples/events/*.def
samples/events/*.rc
samples/events/*.inf
samples/events/*.txt
samples/events/makefile*
samples/events/*.xbm
samples/events/*.xpm
samples/events/*.ico
samples/events/*.bmp
samples/treectrl/*.cpp
samples/treectrl/*.h
samples/treectrl/*.def
samples/treectrl/*.rc
samples/treectrl/*.txt
samples/treectrl/makefile*
samples/treectrl/*.xbm
samples/treectrl/*.xpm
samples/treectrl/bitmaps/*.xbm
samples/treectrl/bitmaps/*.xpm
samples/treectrl/*.ico
samples/treectrl/*.bmp
samples/treectrl/bitmaps/*.bmp
samples/treectrl/bitmaps/*.ico
samples/listctrl/*.cpp
samples/listctrl/*.h
samples/listctrl/*.def
samples/listctrl/*.rc
samples/listctrl/*.txt
samples/listctrl/makefile*
samples/listctrl/*.xbm
samples/listctrl/*.xpm
samples/listctrl/bitmaps/*.xbm
samples/listctrl/bitmaps/*.xpm
samples/listctrl/*.ico
samples/listctrl/*.bmp
samples/listctrl/bitmaps/*.bmp
samples/listctrl/bitmaps/*.ico
samples/splitter/*.cpp
samples/splitter/*.h
samples/splitter/*.def
samples/splitter/*.rc
samples/splitter/*.txt
samples/splitter/makefile*
samples/splitter/*.xbm
samples/splitter/*.xpm
samples/splitter/*.ico
samples/splitter/*.bmp
samples/grid/*.cpp
samples/grid/*.h
samples/grid/*.def
samples/grid/*.rc
samples/grid/*.txt
samples/grid/makefile*
samples/grid/*.xbm
samples/grid/*.xpm
samples/grid/*.ico
samples/grid/*.bmp
samples/internat/*.cpp
samples/internat/*.h
samples/internat/*.def
samples/internat/*.rc
samples/internat/*.txt
samples/internat/makefile*
samples/internat/*.xbm
samples/internat/*.xpm
samples/internat/*.po
samples/internat/*.ico
samples/internat/*.bmp
samples/internat/*.mo
samples/internat/fr/*.mo
samples/internat/fr/*.po
samples/checklst/*.cpp
samples/checklst/*.h
samples/checklst/*.def
samples/checklst/*.rc
samples/checklst/*.txt
samples/checklst/makefile*
samples/checklst/*.xbm
samples/checklst/*.xpm
samples/checklst/*.ico
samples/checklst/*.bmp
samples/dnd/*.cpp
samples/dnd/*.h
samples/dnd/makefile*
samples/dnd/*.rc
samples/dnd/*.def
samples/dnd/*.bmp
samples/dnd/*.xbm
samples/dnd/*.xpm
samples/dnd/*.ico
samples/dnd/*.txt
samples/tab/*.cpp
samples/tab/*.h
samples/tab/makefile*
samples/tab/*.rc
samples/tab/*.def
samples/tab/*.bmp
samples/tab/*.xbm
samples/tab/*.xpm
samples/tab/*.ico
samples/tab/*.txt
samples/notebook/*.cpp
samples/notebook/*.h
samples/notebook/makefile*
samples/notebook/*.rc
samples/notebook/*.def
samples/notebook/*.bmp
samples/notebook/*.xbm
samples/notebook/*.xpm
samples/notebook/*.ico
samples/notebook/*.txt
samples/png/*.cpp
samples/png/*.h
samples/png/makefile*
samples/png/*.rc
samples/png/*.def
samples/png/*.bmp
samples/png/*.xpm
samples/png/*.xbm
samples/png/*.ico
samples/png/*.txt
samples/png/*.png
samples/image/*.cpp
samples/image/*.h
samples/image/makefile*
samples/image/*.rc
samples/image/*.def
samples/image/*.bmp
samples/image/*.xpm
samples/image/*.xbm
samples/image/*.png
samples/image/*.ico
samples/image/*.txt
samples/thread/*.cpp
samples/thread/*.h
samples/thread/makefile*
samples/thread/*.rc
samples/thread/*.def
samples/thread/*.bmp
samples/thread/*.xpm
samples/thread/*.xbm
samples/thread/*.png
samples/thread/*.ico
samples/thread/*.txt
samples/forty/*.cpp
samples/forty/*.h
samples/forty/makefile*
samples/forty/*.rc
samples/forty/*.def
samples/forty/*.bmp
samples/forty/*.xpm
samples/forty/*.xbm
samples/forty/*.png
samples/forty/*.ico
samples/forty/*.txt
samples/dde/*.cpp
samples/dde/*.h
samples/dde/makefile*
samples/dde/client.vc
samples/dde/server.vc
samples/dde/client.wat
samples/dde/server.wat
samples/dde/client.b32
samples/dde/server.b32
samples/dde/client.bcc
samples/dde/server.bcc
samples/dde/client.dos
samples/dde/server.dos
samples/dde/*.rc
samples/dde/*.def
samples/dde/*.bmp
samples/dde/*.xpm
samples/dde/*.xbm
samples/dde/*.png
samples/dde/*.ico
samples/dde/*.txt
samples/scroll/*.cpp
samples/scroll/*.h
samples/scroll/makefile*
samples/scroll/*.rc
samples/scroll/*.def
samples/scroll/*.bmp
samples/scroll/*.xpm
samples/scroll/*.xbm
samples/scroll/*.png
samples/scroll/*.ico
samples/scroll/*.txt
samples/caret/*.cpp
samples/caret/*.h
samples/caret/makefile*
samples/caret/*.rc
samples/caret/*.def
samples/caret/*.bmp
samples/caret/*.xpm
samples/caret/*.xbm
samples/caret/*.png
samples/caret/*.ico
samples/caret/*.txt
samples/drawing/*.cpp
samples/drawing/*.h
samples/drawing/makefile*
samples/drawing/*.rc
samples/drawing/*.def
samples/drawing/*.bmp
samples/drawing/*.xpm
samples/drawing/*.xbm
samples/drawing/*.png
samples/drawing/*.ico
samples/drawing/*.txt

View File

@@ -1,43 +0,0 @@
utils/glcanvas/docs/*.*
utils/glcanvas/win/*.cpp
utils/glcanvas/win/*.h
utils/glcanvas/win/make*.*
utils/glcanvas/gtk/*.cpp
utils/glcanvas/gtk/*.h
utils/glcanvas/gtk/make*.*
utils/glcanvas/gtk/Makefile
utils/glcanvas/motif/*.cpp
utils/glcanvas/motif/*.h
utils/glcanvas/motif/make*.*
utils/glcanvas/motif/*.txt
utils/glcanvas/motif/Makefile
utils/glcanvas/samples/cube/*.cpp
utils/glcanvas/samples/cube/*.h
utils/glcanvas/samples/cube/*.rc
utils/glcanvas/samples/cube/*.ico
utils/glcanvas/samples/cube/*.xbm
utils/glcanvas/samples/cube/make*.*
utils/glcanvas/samples/cube/Makefile
utils/glcanvas/samples/isosurf/*.cpp
utils/glcanvas/samples/isosurf/*.h
utils/glcanvas/samples/isosurf/*.rc
utils/glcanvas/samples/isosurf/*.ico
utils/glcanvas/samples/isosurf/*.xbm
utils/glcanvas/samples/isosurf/*.dat.gz
utils/glcanvas/samples/isosurf/make*.*
utils/glcanvas/samples/isosurf/Makefile
utils/glcanvas/samples/penguin/*.cpp
utils/glcanvas/samples/penguin/*.c
utils/glcanvas/samples/penguin/*.h
utils/glcanvas/samples/penguin/*.rc
utils/glcanvas/samples/penguin/*.ico
utils/glcanvas/samples/penguin/*.xbm
utils/glcanvas/samples/penguin/*.xpm
utils/glcanvas/samples/penguin/make*.*
utils/glcanvas/samples/penguin/Makefile
utils/glcanvas/samples/penguin/penguin.lwo

View File

@@ -1,97 +0,0 @@
install-sh
Makefile
template.mak
configure
configure.in
config.guess
config.sub
wx-config.in
mkinstalldirs
wxGTK.spec
distrib/gtk/copy_src
distrib/gtk/README.txt
distrib/gtk/Setup
docs/gtk/*.html
docs/gtk/*.txt
docs/gtk/makewxgtk
include/wx/gtk/*.h
include/install-sh
include/wx/install-sh
src/Makefile
src/Makefile.in
src/gtk.inc
src/make.env
src/makelib.env
src/makeprog.env
src/gtk/*.cpp
src/gtk/*.c
src/gtk/*.inc
src/gtk/*.xbm
src/iodbc/*.c
src/iodbc/*.ci
src/iodbc/*.h
src/iodbc/IAFA-PACKAGE
src/iodbc/README
src/iodbc/*.exp
src/iodbc/*.mk
src/iodbc/autoconfig
src/iodbc/build
src/iodbc/Changes.log
src/iodbc/postgres/*.h
setup/*.in
setup/*.hin
setup/general/createall
setup/general/jointar
setup/general/makeapp
setup/general/makedirs
setup/general/makedoc
setup/general/mygrep
setup/general/needed
setup/rules/bin
setup/rules/bin2
setup/rules/doc
setup/rules/gbin
setup/rules/gbin2
setup/rules/glib
setup/rules/glibbin
setup/rules/glibgbin
setup/rules/gslib
setup/rules/lib
setup/rules/libbin
setup/rules/libgbin
setup/rules/generic/bin1
setup/rules/generic/bin1gen
setup/rules/generic/bin2
setup/rules/generic/bin2gen
setup/rules/generic/depend
setup/rules/generic/globals
setup/rules/generic/lib
setup/rules/generic/needed
setup/rules/generic/obj
setup/rules/generic/slib
setup/rules/generic/sobj
setup/shared/sharedAIX
setup/shared/sharedBsd
setup/shared/sharedDgux
setup/shared/sharedHpux
setup/shared/sharedIrix
setup/shared/sharedLinux
setup/shared/sharedOSF
setup/shared/sharedSolaris2
setup/shared/sharedSunos4
setup/shared/sharedSysV
misc/afm/*.afm
misc/gs_afm/*.afm

View File

@@ -1,91 +0,0 @@
samples/bombs/Makefile.in
samples/bombs/Makefile
samples/checklst/Makefile.in
samples/checklst/Makefile
samples/config/Makefile.in
samples/config/Makefile
samples/controls/Makefile.in
samples/controls/Makefile
samples/db/Makefile.in
samples/db/Makefile
samples/dde/Makefile.in
samples/dde/Makefile
samples/dialogs/Makefile.in
samples/dialogs/Makefile
samples/dnd/Makefile.in
samples/dnd/Makefile
samples/docview/Makefile.in
samples/docview/Makefile
samples/docvwmdi/Makefile.in
samples/docvwmdi/Makefile
samples/dynamic/Makefile.in
samples/dynamic/Makefile
samples/forty/Makefile.in
samples/forty/Makefile
samples/fractal/Makefile.in
samples/fractal/Makefile
samples/grid/Makefile.in
samples/grid/Makefile
samples/help/Makefile.in
samples/help/Makefile
samples/image/Makefile.in
samples/image/Makefile
samples/internat/Makefile.in
samples/internat/Makefile
samples/layout/Makefile.in
samples/layout/Makefile
samples/listctrl/Makefile.in
samples/listctrl/Makefile
samples/mdi/Makefile.in
samples/mdi/Makefile
samples/memcheck/Makefile.in
samples/memcheck/Makefile
samples/minifram/Makefile.in
samples/minifram/Makefile
samples/minimal/Makefile.in
samples/minimal/Makefile
samples/notebook/Makefile.in
samples/notebook/Makefile
samples/png/Makefile.in
samples/png/Makefile
samples/printing/Makefile.in
samples/printing/Makefile
samples/proplist/Makefile.in
samples/proplist/Makefile
samples/resource/Makefile.in
samples/resource/Makefile
samples/sashtest/Makefile.in
samples/sashtest/Makefile
samples/splitter/Makefile.in
samples/splitter/Makefile
samples/tab/Makefile.in
samples/tab/Makefile
samples/thread/Makefile.in
samples/thread/Makefile
samples/toolbar/Makefile.in
samples/toolbar/Makefile
samples/treectrl/Makefile.in
samples/treectrl/Makefile
samples/typetest/Makefile.in
samples/typetest/Makefile
samples/validate/Makefile.in
samples/validate/Makefile
samples/wxpoem/Makefile.in
samples/wxpoem/Makefile
samples/wxsocket/Makefile.in
samples/wxsocket/Makefile
samples/scroll/Makefile.in
samples/scroll/Makefile
samples/caret/Makefile.in
samples/caret/Makefile
samples/drawing/Makefile.in
samples/drawing/Makefile
src/Makefile.in
src/Makefile
utils/ogl/samples/ogledit/Makefile.in
utils/ogl/samples/ogledit/Makefile
utils/ogl/samples/studio/Makefile.in
utils/ogl/samples/studio/Makefile
utils/ogl/src/Makefile.in
utils/ogl/src/Makefile

View File

@@ -1,104 +0,0 @@
install-sh
Makefile
template.mak
configure
configure.in
config.guess
config.sub
wx-config.in
mkinstalldirs
wxinstall
src/makeenvs/*.env
src/make.env
src/makeprog.env
src/makelib.env
src/Makefile
src/Makefile.in
src/motif.inc
src/motif/*.cpp
src/motif/*.c
src/motif/*.h
src/motif/makefile*
src/motif/*.inc
src/motif/*.xbm
src/motif/xmcombo/*.c
src/motif/xmcombo/*.h
src/motif/xmcombo/*.doc
src/motif/xmcombo/*.man
src/motif/xmcombo/*.txt
src/iodbc/*.c
src/iodbc/*.ci
src/iodbc/*.h
src/iodbc/IAFA-PACKAGE
src/iodbc/README
src/iodbc/*.exp
src/iodbc/*.mk
src/iodbc/autoconfig
src/iodbc/build
src/iodbc/Changes.log
src/iodbc/postgres/*.h
include/wx/motif/*.h
include/install-sh
include/wx/install-sh
docs/motif/*.txt
docs/motif/makewxmotif
lib/dummy
misc/afm/*.afm
misc/gs_afm/*.afm
setup/*.in
setup/*.hin
setup/general/createall
setup/general/jointar
setup/general/makeapp
setup/general/makedirs
setup/general/makedoc
setup/general/mygrep
setup/general/needed
setup/rules/bin
setup/rules/bin2
setup/rules/doc
setup/rules/gbin
setup/rules/gbin2
setup/rules/glib
setup/rules/glibbin
setup/rules/glibgbin
setup/rules/gslib
setup/rules/lib
setup/rules/libbin
setup/rules/libgbin
setup/rules/generic/bin1
setup/rules/generic/bin1gen
setup/rules/generic/bin2
setup/rules/generic/bin2gen
setup/rules/generic/depend
setup/rules/generic/globals
setup/rules/generic/lib
setup/rules/generic/needed
setup/rules/generic/obj
setup/rules/generic/slib
setup/rules/generic/sobj
setup/shared/sharedAIX
setup/shared/sharedBsd
setup/shared/sharedDgux
setup/shared/sharedHpux
setup/shared/sharedIrix
setup/shared/sharedLinux
setup/shared/sharedOSF
setup/shared/sharedSolaris2
setup/shared/sharedSunos4
setup/shared/sharedSysV

View File

@@ -1,173 +0,0 @@
docs/msw/*.txt
docs/licence.txt
distrib/msw/*.rsp
distrib/msw/*.bat
tools/gettext/xgettext.exe
tools/gettext/msgfmt.exe
tools/gettext/msgunfmt.exe
src/makeb32.env
src/makeprog.b32
src/makelib.b32
src/makebcc.env
src/makeprog.bcc
src/makelib.bcc
src/makemsc.env
src/makeprog.msc
src/makelib.msc
src/makewat.env
src/makeprog.wat
src/makelib.wat
src/makesc.env
src/makevc.env
src/makeprog.vc
src/makelib.vc
src/makeg95.env
src/makeprog.g95
src/makelib.g95
src/makesl.env
src/makeprog.sl
src/makelib.sl
src/salford.lnk
src/maketwin.env
src/makeprog.twn
src/makelib.twn
src/makefile.bcc
src/makefile.dos
src/makefile.vc
src/*.bat
src/common/dosyacc.c
src/common/doslex.c
src/msw/*.cpp
src/msw/*.h
src/msw/makefile.*
src/msw/*.lst
src/msw/*.def
src/msw/*.inc
src/msw/ctl3d/*.*
src/msw/ctl3d/msvc/*.*
src/msw/ctl3d/wat32/*.*
src/msw/ctl3d/wat386/*.*
src/msw/ctl3d/borland/*.*
src/msw/ole/*.cpp
src/msw/*.prj
src/xpm/*.c
src/xpm/*.h
src/xpm/makefile*
src/xpm/changes
src/xpm/readme
src/xpm/readme.msw
src/xpm/copyrigh.t
src/xpm/files
include/wx/msw/*.h
include/wx/msw/*.rc
include/wx/msw/ctl3d/*.h
include/wx/msw/gnuwin32/*.h
include/wx/msw/ole/*.h
include/wx/msw/*.cur
include/wx/msw/*.ico
include/wx/msw/*.bmp
lib/dummy
samples/ownerdrw/*.cpp
samples/ownerdrw/*.h
samples/ownerdrw/makefile.*
samples/ownerdrw/*.rc
samples/ownerdrw/*.def
samples/ownerdrw/*.bmp
samples/ownerdrw/*.ico
samples/ownerdrw/*.txt
samples/taskbar/*.cpp
samples/taskbar/*.h
samples/taskbar/makefile.*
samples/taskbar/*.rc
samples/taskbar/*.def
samples/taskbar/*.bmp
samples/taskbar/*.ico
samples/taskbar/*.txt
samples/regtest/*.cpp
samples/regtest/*.h
samples/regtest/makefile.*
samples/regtest/*.rc
samples/regtest/*.def
samples/regtest/*.bmp
samples/regtest/*.ico
samples/regtest/*.txt
samples/nativdlg/*.cpp
samples/nativdlg/*.h
samples/nativdlg/*.def
samples/nativdlg/*.rc
samples/nativdlg/*.txt
samples/nativdlg/makefile.*
samples/nativdlg/*.xbm
samples/nativdlg/*.ico
samples/nativdlg/*.bmp
samples/mfc/*.h
samples/mfc/*.cpp
samples/mfc/*.def
samples/mfc/*.rc
samples/mfc/makefile.*
samples/mfc/*.txt
samples/mfc/*.bmp
samples/mfc/*.ico
samples/joytest/*.h
samples/joytest/*.cpp
samples/joytest/*.def
samples/joytest/*.rc
samples/joytest/makefile.*
samples/joytest/*.txt
samples/joytest/*.bmp
samples/joytest/*.wav
samples/joytest/*.ico
samples/oleauto/*.h
samples/oleauto/*.cpp
samples/oleauto/*.def
samples/oleauto/*.rc
samples/oleauto/makefile.*
samples/oleauto/*.txt
samples/oleauto/*.bmp
samples/oleauto/*.ico
utils/nplugin/make*.*
utils/nplugin/src/*.cpp
utils/nplugin/src/*.h
utils/nplugin/src/*.rc
utils/nplugin/src/*.def
utils/nplugin/src/makefile.*
utils/nplugin/src/*.txt
utils/nplugin/samples/simple/*.cpp
utils/nplugin/samples/simple/*.h
utils/nplugin/samples/simple/*.rc
utils/nplugin/samples/simple/*.def
utils/nplugin/samples/simple/makefile.*
utils/nplugin/samples/simple/*.txt
utils/nplugin/samples/gui/*.cpp
utils/nplugin/samples/gui/*.h
utils/nplugin/samples/gui/*.rc
utils/nplugin/samples/gui/*.def
utils/nplugin/samples/gui/makefile.*
utils/nplugin/samples/gui/*.txt
utils/nplugin/docs/*.tex
utils/nplugin/docs/*.txt
utils/nplugin/docs/*.hpj
utils/nplugin/docs/*.eps
utils/nplugin/docs/*.ps
utils/nplugin/docs/*.ini
utils/nplugin/docs/*.cnt
utils/nplugin/docs/*.hlp
utils/nplugin/lib/dummy

View File

@@ -1,72 +0,0 @@
utils/ogl/Makefile
utils/ogl/src/*.cpp
utils/ogl/src/*.h
utils/ogl/src/*.rc
utils/ogl/src/*.def
utils/ogl/src/*.xbm
utils/ogl/src/*.xpm
utils/ogl/src/make*.*
utils/ogl/src/Makefile
utils/ogl/src/*.txt
utils/ogl/src/*.ico
utils/ogl/src/*.bmp
utils/ogl/samples/ogledit/*.cpp
utils/ogl/samples/ogledit/*.h
utils/ogl/samples/ogledit/*.rc
utils/ogl/samples/ogledit/*.def
utils/ogl/samples/ogledit/*.xbm
utils/ogl/samples/ogledit/make*.*
utils/ogl/samples/ogledit/Makefile
utils/ogl/samples/ogledit/*.txt
utils/ogl/samples/ogledit/*.ico
utils/ogl/samples/ogledit/*.bmp
utils/ogl/samples/ogledit/*.xpm
utils/ogl/samples/ogledit/bitmaps/*.bmp
utils/ogl/samples/ogledit/bitmaps/*.gif
utils/ogl/samples/ogledit/bitmaps/*.xbm
utils/ogl/samples/ogledit/bitmaps/*.xpm
utils/ogl/samples/studio/*.cpp
utils/ogl/samples/studio/*.h
utils/ogl/samples/studio/*.rc
utils/ogl/samples/studio/*.def
utils/ogl/samples/studio/*.xbm
utils/ogl/samples/studio/make*.*
utils/ogl/samples/studio/Makefile
utils/ogl/samples/studio/*.txt
utils/ogl/samples/studio/*.ico
utils/ogl/samples/studio/*.bmp
utils/ogl/samples/studio/*.xpm
utils/ogl/samples/studio/*.wxr
utils/ogl/samples/studio/bitmaps/*.bmp
utils/ogl/samples/studio/bitmaps/*.gif
utils/ogl/samples/studio/bitmaps/*.xbm
utils/ogl/samples/studio/bitmaps/*.xpm
utils/ogl/samples/studio/manual/*.tex
utils/ogl/samples/studio/manual/*.ini
utils/ogl/samples/studio/manual/*.gif
utils/ogl/samples/studio/manual/*.bmp
utils/ogl/samples/studio/manual/*.htm
utils/ogl/samples/studio/manual/*.hlp
utils/ogl/samples/studio/manual/*.cnt
utils/ogl/samples/studio/manual/Makefile
utils/ogl/distrib/*.rsp
utils/ogl/distrib/*.bat
utils/ogl/docs/*.txt
utils/ogl/docs/*.tex
utils/ogl/docs/*.ini
utils/ogl/docs/*.hpj
utils/ogl/docs/*.ps
utils/ogl/docs/*.eps
utils/ogl/docs/*.bmp
utils/ogl/docs/*.gif
docs/html/ogl/*.*
docs/winhelp/ogl.hlp
docs/winhelp/ogl.cnt
docs/pdf/ogl.pdf

View File

@@ -1,15 +0,0 @@
src/stubs/*.cpp
src/stubs/*.h
src/stubs/makefile*
src/stubs/*.inc
src/make.env
src/makeprog.env
src/makelib.env
include/wx/stubs/*.h
include/wx/stubs/*.rc
lib/dummy

View File

@@ -1,108 +0,0 @@
#!/bin/sh
# tardist: make up a tar.gz distribution of wxWindows 2
# Supply a source (e.g. ~/wx2) and destination (e.g. ~/wx2/deliver)
init=""
if [ $1 = "" ]
then
exit
fi
if [ $2 = "" ]
then
exit
fi
echo About to archive wxWindows:
echo From $1
echo To $2
echo CTRL-C if this is not correct.
read dummy
cd $1
echo Removing backup files...
rm *~ */*~ */*/*~ */*/*/*~ */*/*/*/*~
rm -f $2/wx200*.tgz
rm -f $2/tex2rtf2.tgz
rm -f $2/ogl3.tgz
rm -f $2/treedraw.tar.gz
rm -f $2/glcanvas.tar.gz
rm -f $2/jpeg.tgz
echo Tarring...
### Generic
ls `cat $1/distrib/msw/generic.rsp $1/distrib/msw/makefile.rsp` > /tmp/wxgen.txt
tar cvf $2/wx200gen.tar -T /tmp/wxgen.txt
gzip $2/wx200gen.tar
mv $2/wx200gen.tar.gz $2/wx200gen.tgz
### wxGTK
ls `cat $1/distrib/msw/generic.rsp $1/distrib/msw/gtk.rsp $1/distrib/msw/makefile.rsp` > /tmp/wxgtk.txt
tar cvf $2/wx200gtk.tar -T /tmp/wxgtk.txt
gzip $2/wx200gtk.tar
mv $2/wx200gtk.tar.gz $2/wx200gtk.tgz
### wxMotif
ls `cat $1/distrib/msw/generic.rsp $1/distrib/msw/motif.rsp $1/distrib/msw/makefile.rsp` > /tmp/wxmotif.txt
tar cvf $2/wx200mot.tar -T /tmp/wxmotif.txt
gzip $2/wx200mot.tar
mv $2/wx200mot.tar.gz $2/wx200mot.tgz
### Doc sources
ls `cat $1/distrib/msw/docsrc.rsp` > /tmp/docsrc.txt
tar cvf $2/wx200doc.tar -T /tmp/docsrc.txt
gzip $2/wx200doc.tar
mv $2/wx200doc.tar.gz $2/wx200doc.tgz
### HTML docs
ls `cat $1/distrib/msw/wx_html.rsp` > /tmp/html.txt
tar cvf $2/wx200htm.tar -T /tmp/html.txt
gzip $2/wx200htm.tar
mv $2/wx200htm.tar.gz $2/wx200htm.tgz
### PDF docs
ls `cat $1/distrib/msw/wx_pdf.rsp` > /tmp/pdf.txt
tar cvf $2/wx200pdf.tar -T /tmp/pdf.txt
gzip $2/wx200pdf.tar
mv $2/wx200pdf.tar.gz $2/wx200pdf.tgz
### Stubs files
ls `cat $1/distrib/msw/stubs.rsp` > /tmp/stubs.txt
tar cvf $2/wx200stubs.tar -T /tmp/stubs.txt
gzip $2/wx200stubs.tar
mv $2/wx200stubs.tar.gz $2/wx200stubs.tgz
### Tex2RTF
ls `cat $1/distrib/msw/tex2rtf.rsp` > /tmp/tex2rtf.txt
tar cvf $2/tex2rtf2.tar -T /tmp/tex2rtf.txt
gzip $2/tex2rtf2.tar
mv $2/tex2rtf2.tar.gz $2/tex2rtf2.tgz
### OGL
ls `cat $1/distrib/msw/ogl.rsp` > /tmp/ogl.txt
tar cvf $2/ogl3.tar -T /tmp/ogl.txt
gzip $2/ogl3.tar
mv $2/ogl3.tar.gz $2/ogl3.tgz
### wxGLCanvas
ls `cat $1/distrib/msw/glcanvas.rsp` > /tmp/glcanvas.txt
tar cvf $2/glcanvas.tar -T /tmp/glcanvas.txt
gzip $2/glcanvas.tar
mv $2/glcanvas.tar.gz $2/glcanvas.tgz
### wxTreeLayout
ls `cat $1/distrib/msw/wxtree.rsp` > /tmp/wxtree.txt
tar cvf $2/treedraw.tar -T /tmp/wxtree.txt
gzip $2/treedraw.tar
mv $2/treedraw.tar.gz $2/treedraw.tgz
### JPEG
ls `cat $1/distrib/msw/jpeg.rsp` > /tmp/jpeg.txt
tar cvf $2/jpeg.tar -T /tmp/jpeg.txt
gzip $2/jpeg.tar
mv $2/jpeg.tar.gz $2/jpeg.tgz
echo Done!

View File

@@ -1,117 +0,0 @@
@echo off
rem Tar up an external distribution of wxWindows 2.0: but
rem putting in separate ASCII and binary files
rem This seems to be the one that works, using
rem separate tar programs for conversion/non-conversion
rem of ASCII/binary files.
if "%1" == "" goto usage
if "%2" == "" goto usage
echo About to archive an external wxWindows 2.0 distribution:
echo From %1
echo To %2\wx200_1.tgz, %2\wx200_2.tgz, %2\wx200hlp.tgz, %2\wx200ps.tgz, %2\wx200htm.tgz
echo CTRL-C if this is not correct.
inkey /W4 `Press any key to continue...` %%input
erase %2\*.tgz
cd %1
rem First, expand the wildcards in the rsp files
rem Create empty list file
erase %1\distrib\*.lis
c:\bin\touch %1\distrib\wx200asc.lis
c:\bin\touch %1\distrib\wx200bin.lis
c:\bin\touch %1\distrib\wx200hlp.lis
c:\bin\touch %1\distrib\wx200ps.lis
c:\bin\touch %1\distrib\wx200xlp.lis
rem Create a .rsp file with backslashes instead
rem of forward slashes
rem No need if using ls2 (from UNIX95 distribution)
rem sed -e "s/\//\\/g" %1\distrib\wx_asc.rsp > %1\distrib\wx_asc.rs2
call %1\distrib\expdwild.bat %1\distrib\wx_asc.rsp %1\distrib\wx200asc.lis
call %1\distrib\expdwild.bat %1\distrib\util_asc.rsp %1\distrib\wx200asc.lis
call %1\distrib\expdwild.bat %1\distrib\smpl_asc.rsp %1\distrib\wx200asc.lis
rem call %1\distrib\expdwild.bat %1\distrib\wxim1asc.rsp %1\distrib\wx200asc.lis
rem call %1\distrib\expdwild.bat %1\distrib\wxim2asc.rsp %1\distrib\wx200asc.lis
call %1\distrib\expdwild.bat %1\distrib\wx_bin.rsp %1\distrib\wx200bin.lis
call %1\distrib\expdwild.bat %1\distrib\util_bin.rsp %1\distrib\wx200bin.lis
call %1\distrib\expdwild.bat %1\distrib\smpl_bin.rsp %1\distrib\wx200bin.lis
rem call %1\distrib\expdwild.bat %1\distrib\wxim1bin.rsp %1\distrib\wx200bin.lis
rem Docs
call %1\distrib\expdwild.bat %1\distrib\wx_hlp.rsp %1\distrib\wx200hlp.lis
call %1\distrib\expdwild.bat %1\distrib\wx_ps.rsp %1\distrib\wx200ps.lis
call %1\distrib\expdwild.bat %1\distrib\wx_html.rsp %1\distrib\wx200htm.lis
call %1\distrib\expdwild.bat %1\distrib\wx_pdf.rsp %1\distrib\wx200pdf.lis
rem Do some further massaging of the .lis files
sed -e "s/\\/\//g" %1\distrib\wx200asc.lis > c:\temp\temp.tmp
sed -e "s/D:\/wx\///g" c:\temp\temp.tmp > %1\distrib\wx200asc.lis
sed -e "s/\\/\//g" %1\distrib\wx200bin.lis > c:\temp\temp.tmp
sed -e "s/D:\/wx\///g" c:\temp\temp.tmp > %1\distrib\wx200bin.lis
sed -e "s/\\/\//g" %1\distrib\wx200hlp.lis > c:\temp\temp.tmp
sed -e "s/D:\/wx\///g" c:\temp\temp.tmp > %1\distrib\wx200hlp.lis
sed -e "s/\\/\//g" %1\distrib\wx200ps.lis > c:\temp\temp.tmp
sed -e "s/D:\/wx\///g" c:\temp\temp.tmp > %1\distrib\wx200ps.lis
sed -e "s/\\/\//g" %1\distrib\wx200htm.lis > c:\temp\temp.tmp
sed -e "s/D:\/wx\///g" c:\temp\temp.tmp > %1\distrib\wx200htm.lis
sed -e "s/\\/\//g" %1\distrib\wx200pdf.lis > c:\temp\temp.tmp
sed -e "s/D:\/wx\///g" c:\temp\temp.tmp > %1\distrib\wx200pdf.lis
rem 'tar' converts linefeeds.
tar -c -T %1\distrib\wx200asc.lis -f %2\wx200.tar
rem pause Press a key to continue.
rem This converts to lower case
ren %2\wx200.tar %2\wx200_1.tar
gzip32 %2\wx200_1.tar
ren %2\wx200_1.tar.gz %2\wx200_1.tgz
rem No linefeed conversion wanted
rem Note: GNU tar seems to crash with a full destination path, so
rem pander to it.
targnu -c -T %1\distrib\wx200bin.lis -f wx200_2.tar
move wx200_2.tar %2
gzip32 %2\wx200_2.tar
ren %2\wx200_2.tar.gz %2\wx200_2.tgz
targnu -c -T %1\distrib\wx200hlp.lis -f wx200_hlp.tar
move wx200_hlp.tar %2
gzip32 %2\wx200_hlp.tar
ren %2\wx200_hlp.tar.gz %2\wx200hlp.tgz
tar -c -T %1\distrib\wx200ps.lis -f %2\wx200ps.tar
gzip32 %2\wx200ps.tar
ren %2\wx200ps.tar.gz %2\wx200ps.tgz
targnu -c -T %1\distrib\wx200htm.lis -f wx200htm.tar
move wx200htm.tar %2
gzip32 %2\wx200htm.tar
ren %2\wx200htm.tar.gz %2\wx200htm.tgz
targnu -c -T %1\distrib\wx200pdf.lis -f wx200pdf.tar
move wx200pdf.tar %2
gzip32 %2\wx200pdf.tar
ren %2\wx200pdf.tar.gz %2\wx200pdf.tgz
cd %2
echo wxWindows archived.
goto end
:usage
echo Tar/gzip wxWindows distribution under DOS, making an ASCII and binary file
echo Usage: tardist source destination
echo e.g. tardist d:\wx d:\wx\deliver
:end

View File

@@ -1,27 +0,0 @@
utils/tex2rtf/src/*.cpp
utils/tex2rtf/src/*.h
utils/tex2rtf/src/make*.*
utils/tex2rtf/src/Makefile
utils/tex2rtf/src/*.xbm
utils/tex2rtf/src/*.xpm
utils/tex2rtf/src/*.sty
utils/tex2rtf/src/*.ini
utils/tex2rtf/lib/dummy
utils/tex2rtf/src/*.bmp
utils/tex2rtf/src/*.ico
utils/tex2rtf/src/*.def
utils/tex2rtf/src/*.rc
utils/tex2rtf/docs/*.tex
utils/tex2rtf/docs/*.sty
utils/tex2rtf/docs/*.bib
utils/tex2rtf/docs/*.hpj
utils/tex2rtf/docs/*.ini
utils/tex2rtf/docs/*.txt
utils/tex2rtf/docs/*.cnt
utils/tex2rtf/docs/*.eps
utils/tex2rtf/docs/*.bmp
utils/tex2rtf/docs/*.gif
utils/tex2rtf/docs/*.wmf
utils/tex2rtf/docs/*.shg

View File

@@ -1,27 +0,0 @@
user/Makefile
user/wxConvert/*.cpp
user/wxConvert/*.h
user/wxConvert/Makefile
user/wxConvert/Makefile.in
user/wxFile/*.cpp
user/wxFile/*.h
user/wxFile/Makefile
user/wxFile/Makefile.in
user/wxFile/*.xpm
user/wxTest/*.cpp
user/wxTest/*.h
user/wxTest/Makefile
user/wxTest/Makefile.in
user/wxTest/*.xpm
user/wxTest/*.png
user/wxLayout/*.cpp
user/wxLayout/*.h
user/wxLayout/Makefile
user/wxLayout/Makefile.in
user/wxLayout/*.xpm
user/wxLayout/*.png

View File

@@ -1,159 +0,0 @@
src/wxvc.dsp
src/wxvc.dsw
src/wxvc6.dsp
src/wxvc6.dsw
src/wxvc_dll.dsp
src/wxvc_dll.dsw
samples/checklst/ChecklstVC.dsp
samples/checklst/ChecklstVC.dsw
samples/config/ConfigVC.dsp
samples/config/ConfigVC.dsw
samples/controls/ControlsVC.dsp
samples/controls/ControlsVC.dsw
samples/db/DbVC.dsp
samples/db/DbVC.dsw
samples/dialogs/DialogsVC.dsp
samples/dialogs/DialogsVC.dsw
samples/dnd/DndVC.dsp
samples/dnd/DndVC.dsw
samples/docview/DocviewVC.dsp
samples/docview/DocviewVC.dsw
samples/docvwmdi/DocViewVC.dsp
samples/docvwmdi/DocViewVC.dsw
samples/dynamic/DynamicVC.dsp
samples/dynamic/DynamicVC.dsw
samples/forty/FortyVC.dsp
samples/forty/FortyVC.dsw
samples/grid/GridVC.dsp
samples/grid/GridVC.dsw
samples/help/HelpVC.dsp
samples/help/HelpVC.dsw
samples/image/ImageVC.dsp
samples/image/ImageVC.dsw
samples/internat/InternatVC.dsp
samples/internat/InternatVC.dsw
samples/joytest/JoytestVC.dsp
samples/joytest/JoytestVC.dsw
samples/layout/LayoutVC.dsp
samples/layout/LayoutVC.dsw
samples/listctrl/ListCtrlVC.dsp
samples/listctrl/ListCtrlVC.dsw
samples/mdi/MdiVC.dsp
samples/mdi/MdiVC.dsw
samples/memcheck/MemcheckVC.dsp
samples/memcheck/MemcheckVC.dsw
samples/mfc/MfcVC.dsp
samples/mfc/MfcVC.dsw
samples/minimal/MinimalVC.dsp
samples/minimal/MinimalVC.dsw
samples/minifram/MiniframVC.dsp
samples/minifram/MiniframVC.dsw
samples/nativdlg/NativdlgVC.dsp
samples/nativdlg/NativdlgVC.dsw
samples/notebook/NotebookVC.dsp
samples/notebook/NotebookVC.dsw
samples/ownerdrw/OwnerDrwVC.dsp
samples/ownerdrw/OwnerDrwVC.dsw
samples/png/PngVC.dsp
samples/png/PngVC.dsw
samples/printing/PrintingVC.dsp
samples/printing/PrintingVC.dsw
samples/Regtest/RegtestVC.dsp
samples/Regtest/RegtestVC.dsw
samples/resource/ResourceVC.dsp
samples/resource/ResourceVC.dsw
samples/sashtest/SashtestVC.dsp
samples/sashtest/SashtestVC.dsw
samples/splitter/SplitterVC.dsp
samples/splitter/SplitterVC.dsw
samples/tab/TabVC.dsp
samples/tab/TabVC.dsw
samples/taskbar/TaskbarVC.dsp
samples/taskbar/TaskbarVC.dsw
samples/thread/ThreadVC.dsp
samples/thread/ThreadVC.dsw
samples/toolbar/ToolbarVC.dsp
samples/toolbar/ToolbarVC.dsw
samples/treectrl/TreectrlVC.dsp
samples/treectrl/TreeCtrlVC.dsw
samples/typetest/TypetestVC.dsp
samples/typetest/TypetestVC.dsw
samples/validate/ValidateVC.dsp
samples/validate/ValidateVC.dsw
samples/wxsocket/ClientVC.dsp
samples/wxsocket/ServerVC.dsw
samples/wxpoem/PoemVC.dsp
samples/wxpoem/PoemVC.dsw
utils/wxprop/src/PropVC.dsp
utils/wxprop/src/PropVC.dsw
utils/wxprop/src/PropSampleVC.dsp
utils/wxprop/src/PropSampleVC.dsw
utils/dialoged/src/DialogEdVC.dsp
utils/dialoged/src/DialogEdVC.dsw
utils/tex2rtf/src/Tex2RTFVC.dsp
utils/tex2rtf/src/Tex2RTFVC.dsw
utils/glcanvas/win/GlcanvasVC.dsp
utils/glcanvas/win/GlcanvasVC.dsw
utils/glcanvas/samples/cube/CubeVC.dsp
utils/glcanvas/samples/cube/CubeVC.dsw
utils/glcanvas/samples/isosurf/IsosurfVC.dsp
utils/glcanvas/samples/isosurf/IsosurfVC.dsw
utils/glcanvas/samples/penguin/PenguinVC.dsp
utils/glcanvas/samples/penguin/PenguinVC.dsw
utils/ogl/src/OglVC.dsp
utils/ogl/src/OglVC.dsw
utils/ogl/samples/ogledit/OgleditVC.dsp
utils/ogl/samples/ogledit/OgleditVC.dsw
utils/ogl/samples/studio/StudioVC.dsp
utils/ogl/samples/studio/StudioVC.dsw
utils/wxtree/src/TreeVC.dsp
utils/wxtree/src/TreeVC.dsw
utils/wxtree/src/TreeSampleVC.dsp
utils/wxtree/src/TreeSampleVC.dsw

View File

@@ -1,2 +0,0 @@
docs/winhelp/*.hlp
docs/winhelp/*.cnt

View File

@@ -1,37 +0,0 @@
docs/html/*.htm
docs/html/*.gif
docs/html/wx/*.htm
docs/html/wx/*.gif
docs/html/porting/*.htm
docs/html/porting/*.gif
docs/html/faq/*.htm
docs/html/faq/*.gif
docs/html/techref/*.htm
docs/html/techref/*.gif
docs/html/dialoged/*.htm
docs/html/dialoged/*.gif
docs/html/wxtree/*.htm
docs/html/wxtree/*.gif
docs/html/wxgraph/*.htm
docs/html/wxgraph/*.gif
docs/html/wxhelp/*.htm
docs/html/wxhelp/*.gif
docs/html/proplist/*.htm
docs/html/proplist/*.gif
docs/html/winstall/*.htm
docs/html/winstall/*.gif
docs/html/tex2rtf/*.htm
docs/html/tex2rtf/*.gif
docs/html/odbc/*.htm
docs/html/gettext/*.htm

View File

@@ -1 +0,0 @@
docs/pdf/*.pdf

View File

@@ -1,2 +0,0 @@
docs/word/odbc.doc

View File

@@ -1,10 +0,0 @@
utils/wxtree/src/*.cpp
utils/wxtree/src/*.h
utils/wxtree/src/makefile*
utils/wxtree/src/*.xbm
utils/wxtree/src/*.xpm
utils/wxtree/lib/dummy
utils/wxtree/src/*.ico
utils/wxtree/src/*.def
utils/wxtree/src/*.rc

View File

@@ -1,77 +0,0 @@
@echo off
rem Zip up an external, generic + Windows distribution of wxWindows 2.0
set src=%wxwin
set dest=%src\deliver
if "%src" == "" goto usage
if "%dest" == "" goto usage
echo About to archive an external wxWindows distribution:
echo From %src
echo To %dest
echo CTRL-C if this is not correct.
pause
erase %dest\wx200*.zip
erase %dest\glcanvas.zip
erase %dest\ogl3.zip
erase %dest\tex2rtf2.zip
erase %dest\jpeg.zip
cd %src
echo Zipping...
zip32 -@ %dest\wx200gen.zip < %src\distrib\msw\generic.rsp
zip32 -@ %dest\wx200msw.zip < %src\distrib\msw\msw.rsp
zip32 -@ %dest\wx200gtk.zip < %src\distrib\msw\gtk.rsp
zip32 -@ %dest\wx200stubs.zip < %src\distrib\msw\stubs.rsp
zip32 -@ %dest\wx200mot.zip < %src\distrib\msw\motif.rsp
zip32 -@ %dest\wx200user.zip < %src\distrib\msw\user.rsp
zip32 -@ %dest\wx200doc.zip < %src\distrib\msw\docsrc.rsp
zip32 -@ %dest\wx200hlp.zip < %src\distrib\msw\wx_hlp.rsp
zip32 -@ %dest\wx200htm.zip < %src\distrib\msw\wx_html.rsp
zip32 -@ %dest\wx200pdf.zip < %src\distrib\msw\wx_pdf.rsp
zip32 -@ %dest\wx200wrd.zip < %src\distrib\msw\wx_word.rsp
rem VC++ project files
zip32 -@ %dest\wx200vc.zip < %src\distrib\msw\vc.rsp
rem BC++ project files
zip32 -@ %dest\wx200bc.zip < %src\distrib\msw\bc.rsp
rem CodeWarrior project files
zip32 -@ %dest\wx200cw.zip < %src\distrib\msw\cw.rsp
rem OGL 3
zip32 -@ %dest\ogl3.zip < %src\distrib\msw\ogl.rsp
rem GLCanvas
zip32 -@ %dest\glcanvas.zip < %src\distrib\msw\glcanvas.rsp
rem Tex2RTF
zip32 -@ %dest\tex2rtf2.zip < %src\distrib\msw\tex2rtf.rsp
rem wxTreeLayout
zip32 -@ %dest\treedraw.zip < %src\distrib\msw\wxtree.rsp
rem JPEG source
zip32 -@ %dest\jpeg.zip < %src\distrib\msw\jpeg.rsp
copy %src\docs\changes.txt %dest
copy %src\docs\msw\install.txt %dest\install_msw.txt
copy %src\docs\motif\install.txt %dest\install_motif.txt
copy %src\docs\gtk\install.txt %dest\install_gtk.txt
copy %src\docs\readme.txt %dest
copy %src\docs\motif\makewxmotif %dest
copy %src\docs\gtk\makewxgtk %dest
cd %dest
echo wxWindows archived.
goto end
:usage
echo DOS wxWindows distribution.
echo Usage: zipdist source destination
echo e.g. zipdist d:\wx2\wxWindows d:\wx2\wxWindows\deliver
:end

View File

@@ -1,54 +0,0 @@
wxWindows Buglist
-----------------
wxGTK:
------
- It is impossible to reposition a window before showing it
on screen. Suspected GTK bug.
- DnD does only moderately work.
wxMSW:
------
- TODO
wxMotif:
--------
- If a popup wxMenu is destroyed after its parent window has been
destroyed, we get the message "Object XXX does not have windowed
ancestor".
Workaround: delete the menu before deleting the window on which it
was popped up.
Possible fix: call menu->DestroyMenu() before deleting the window,
if the window knows about the menu that was last popped up (hard
to know this with confidence).
- In wxGrid, cell highlight is not drawn/erased properly.
- Setting the size of a hidden window may show that window.
- wxRadioBox sometimes doesn't show (e.g. in controls sample).
- Can't set the colours for the buttons in the file selector, for
some reason.
- On SGI IRIX 6.4, XtDestroyWidget in ~wxWindow causes a crash in
some cicumstances. This is being looked into. Meanwhile, a
possible workaround is to remove the final XtDestroyWidget line in ~wxWindow
(window.cpp). This will mean that child windows will only get
destroyed when frames and dialogs are destroyed, so dynamic subwindow
deletion may not work properly.
- There are reports that scrolling can cause crashes under Lesstif.
This is probably a Lesstif bug.
General:
--------
- Dialog Editor could be more user-friendly. Controls are hard to
size and position accurately. No way of changing tab order
except by editing .wxr file.

View File

@@ -1,729 +0,0 @@
wxWindows 2 Change Log
----------------------
2.1.0, b4, May 9th 1999
-----------------------
wxGTK:
- JPEG support added.
- Many fixes and changes not thought worth mentioning in this file :-)
wxMSW:
- wxNotebook changes: can add image only; wxNB_FIXEDWIDTH added;
SetTabSize added.
- JPEG support added.
- Fixes for Cygwin compilation.
- Added wxGA_SMOOTH and wxFRAME_FLOAT_ON_PARENT styles.
- Many fixes people didn't tell this file about.
wxMotif:
General:
- Some changes for Unicode support, including wxchar.h/cpp.
2.0.1 (release), March 1st 1999
-------------------------------
wxGTK:
- wxGLCanvas fixes.
- Slider/spinbutton fixes.
wxMSW:
- Fixed problems with <return> in dialogs/panels.
- Fixed window cursor setting.
- Fixed toolbar sizing and edge-clipping problems.
- Some makefile fixes.
wxMotif:
- None.
General:
- Added wxUSE_SOCKETS.
- More topic overviews.
- Put wxPrintPaperType, wxPrintPaperDatabase into
prntbase.h/cpp for use in non-PostScript situations
(e.g. Win16 wxPageSetupDialog).
Beta 5, February 18th 1999
--------------------------
wxGTK:
- wxExecute improved.
wxMSW:
- Fixed wxWindow::IsShown (::IsWindowVisible doesn't behave as
expected).
- Changed VC++ makefiles (.vc) so that it's possible to have
debug/release/DLL versions of the library available simultaneously,
with names wx.lib, wx_d.lib, wx200.lib(dll), wx200_d.lib(dll).
- Added BC++ 5 IDE files and instructions.
- Fixed wxChoice, wxComboBox constructor bugs (m_noStrings initialisation).
- Fixed focus-related crash.
wxMotif:
- Cured asynchronous wxExecute crash.
- Added repaint event handlers to wxFrame, wxMDIChildFrame.
General:
- wxLocale documented.
- Added include filenames to class reference.
- wxHelpController API changed: SetBrowser becomes SetViewer,
DisplaySection works for WinHelp, help sample compiles under Windows
(though doesn't display help yet).
Beta 4, February 12th 1999
--------------------------
wxGTK:
- Miscellaneous fixes.
wxMSW:
- Makefiles for more compilers and samples; Cygwin makefiles
rationalised.
- Added VC++ project file for compiling wxWindows as DLL.
wxMotif:
- Added OnEraseBackground invocation.
- Added wxRETAINED implementation for wxScrolledWindow.
- Cured scrolling display problem by adding XmUpdateDisplay.
- Tried to make lex-ing in the makefile more generic (command line
syntax should apply to both lex and flex).
- Changed file selector colours for consistency (except for buttons:
crashes for some reason).
- Fixed wxMotif version of wxImage::ConvertToBitmap (used new instead
of malloc, which causes memory problems).
General:
- Further doc improvements.
- wxGenericValidator added.
- Added wxImageModule to image.cpp, so adds/cleans up standard handlers
automatically.
Beta 3, January 31st 1999
-------------------------
wxGTK:
- wxClipboard/DnD API changes (still in progress).
- wxToolTip class added.
- Miscellaneous fixes.
wxMSW:
- wxRegConfig DeleteAll bug fixed.
- Makefiles for more compilers.
- TWIN32 support added.
- Renamed VC++ makefiles from .nt to .vc, and
factored out program/library settings.
- Fixed wxIniConfig bug.
wxMotif:
- A few more colour fixes.
- wxGLCanvas and OpenGL samples working.
- Some compiler warnings fixed.
- wxChoice crash fix.
- Dialog Editor starting to work on Motif.
General:
- wxBusyCursor class added.
- Added samples/dde.
- More doc improvements, incl. expanding docs/html/index.htm.
Beta 2, January 1999
--------------------
wxGTK:
wxMSW:
- 16-bit BC++ compilation/linking works albeit without the resource system.
wxMotif:
- Cured wxScreenDC origin problem so e.g. sash window sash is drawn at
the right place.
- Cured some widget table clashes.
- Added thread support (Robert).
- wxPoem sample now works.
General:
- Rearranged documentation a bit.
- Sash window uses area of first frame/dialog to paint over when drawing
the dragged sash, not just the sash window itself (it clipped to the right
or below).
- Made resource sample use the correct Cancel button id.
- Moved wxProp to main library (generic directory), created proplist
sample.
- Added bombs and fractal samples.
Beta 1, December 24th 1998
--------------------------
wxGTK:
- Various
wxMSW, wxMotif: not in sync with this release.
Alpha 18, December 29th 1998
----------------------------
wxMSW:
- Win16 support working again (VC++ 1.5)
- Win16 now uses generic wxNotebook, wxListCtrl,
wxTreeCtrl -- more or less working now, although
a little work on wxNotebook is still needed.
Under 16-bit Windows, get assertion when you click
on a tab.
- Wrote 16-bit BC++ makefiles: samples don't yet link.
- Added CodeWarrior support to distribution courtesy
of Stefan Csomor.
wxMotif:
- Cured scrolling problem: scrollbars now show/hide themselves
without (permanently) resizing the window.
- Removed some commented-out lines in wxScrolledWindow::AdjustScrollbars
that disabled scrollbar paging.
- Set background colour of drawing area in wxWindow, so e.g. wxListCtrl
colours correctly.
- Removed major bug whereby dialogs were unmanaged automatically
when any button was pressed.
- Fixed colours of wxWindow scrollbars, made list and text controls
have a white background.
- Fixed dialog colour setting.
- Added settable fonts and colours for wxMenu/wxMenuBar. Now
they have sensible colours by default.
- Fixed a bug in wxStaticBox.
- Cured wxTreeCtrl bug: now works pretty well!
- Debugged DrawEllipticArc (a ! in the wrong place).
- Added SetClippingRegion( const wxRegion& region ).
- Added wxPoint, wxSize, wxRect versions of SetSize etc.
Alpha 17, November 22nd 1998
----------------------------
wxMSW:
- More documentation updates, especially for
wxLayoutWindow classes and debugging facilities.
- Changed wxDebugContext to use wxDebugLog instead
of wxTrace.
- Now supports VC++ 6.0, and hopefully BC++ 5.0.
However, DLL support may be broken for BC++ since
VC++ 6 required changing of WXDLLEXPORT keyword
position.
- Numerous miscellaneous changes.
wxMotif:
- Reimplemented MDI using wxNotebook instead of the MDI widgets, which
were too buggy (probably not design for dynamic addition/removal of
child frames).
- Some improvements to the wxNotebook implementation.
- wxToolBar now uses a bulletin board instead of a form, in an attempt
to make it possible to add ordinary wxControls to a toolbar.
- Cured problem with not being able to use global memory operators,
by defining two more global operators, so that the delete will match
the debugging implementation.
- Added wxUSE_DEBUG_NEW_ALWAYS so we can distinguish between using
global memory operators (usually OK) and #defining new to be
WXDEBUG_NEW (sometimes it might not be OK).
- Added time.cpp to makefile; set wxUSE_DATETIME to 1.
- Added a parent-existance check to popup menu code to make it not crash.
- Added some optimization in wxWindow::SetSize to produce less flicker.
It remains to be seen whether this produces any resize bugs.
It's a long time since I updated this file. Previously done:
- wxFrame, wxDialog done.
- wxScrolledWindow done (but backing pixmap not used at present).
- wxBitmap done though could be tidied it up at some point.
- Most basic controls are there, if not rigorously tested.
- Some MDI support (menus appear on child frames at present).
- wxNotebook almost done.
- wxToolBar done (horizontal only, which would be easy to extend
to vertical toolbars).
More recently:
- Colour and font changing done (question mark over what happens
to scrollbars).
- Accelerators done (for menu items and buttons). Also event loop
tidied up in wxApp so that events are filtered through ProcessXEvent.
- wxWindow::GetUpdateRegion should now work.
Alpha 16, September 8th 1998
----------------------------
wxMSW:
- Added wxSashWindow, wxSashLayoutWindow classes, and sashtest
sample.
- Guilhem's socket classes added, plus wxsocket sample.
- A few more makefiles added.
- GnuWin32/BC++ compatibility mods.
- Further doc updates.
- wxProp updates for correct working with wxGTK.
wxMotif:
- First start at Motif port.
- Made makefiles for wxMotif source directory and minimal sample.
- First go at wxApp, wxWindow, wxDialog, wxPen, wxBrush, wxFont,
wxColour, wxButton, wxCheckBox, wxTextCtrl, wxStaticText,
wxMenu, wxMenuItem, wxMenuBar
Alpha 15, August 31st 1998
--------------------------
wxMSW:
- wxBitmap debugged.
- wxDC::GetDepth added.
- Contribution added whereby wxBitmap will be
converted to DC depth if they don't match.
- wxConfig API improved, documentation updated.
- Printing classes name conventions cleaned up.
- wxUpdateUIEvent now derives from wxCommandEvent
so event can travel up the window hierachy.
Alpha 14, July 31st 1998
------------------------
wxMSW:
- Toolbar API has been simplified, and now
wxFrame::GetClientArea returns the available client
area when toolbar, status bar etc. have been accounted for.
wxFrame::CreateToolBar added in line with CreateStatusBar.
- Documentation updates, incl. for wxToolBar.
- New wxAcceleratorTable class plus wxFrame::SetAcceleratorTable.
- Various additions from other folk, e.g. streams, wxConfig
changes, wxNotebook.
- Added wxDocMDIParentFrame, wxDocMDIChildFrame for doc/view.
Alpha 13, July 8th 1998
-----------------------
wxMSW:
- Implemented wxPoint as identical to POINT on Windows, and
altered wxDC wxPoint functions to use wxPoint directly in
Windows functions, for efficiency.
- Cured wxASSERT bug in wxStatusBar95.
- #ifdefed out some bits in oleutils.cpp for compilers that
don't support it.
- Added some operators to wxPoint, wxSize.
- Added inline wxDC functions using wxPoint, wxSize, wxRect.
Alpha 12, July 7th 1998
-----------------------
wxMSW:
- Added wxApp::GetComCtl32Version, and wxTB_FLAT style, so can
have flat toolbars on Win98 or Win95 with IE >= 3 installed.
Alpha 11, July 3rd 1998
-----------------------
wxMSW:
- Added thread.h, thread.cpp.
- Changed Enabled, Checked to IsEnabled, IsChecked in wxMenu,
wxMenuBar.
- Changed wxMenuItem::SetBackColor to SetBackgroundColour,
SetTextColor to SetTextColour, and added or made public several
wxMenuItem accessors.
- Added two overloads to wxRegion::Contains. Added
wxRegion::IsEmpty for a more consistent naming convention.
- Added Vadim's wxDataObject and wxDropSource.
- ENTER/LEAVE events now work.
- Cured wxMemoryDC bug where the DC wasn't being deleted.
- Cured wxGauge SetSize major bugginess.
- Cured problem where if a GDI object was created on the stack,
then went out of scope, then another object was selected into
the DC, GDI objects would leak. This is because the assignment
to e.g. wxDC::m_pen would delete the GDI object without it first
being selected out of the DC. Cured by selecting the old DC object
first, then doing the assignment.
- Split up wxGaugeMSW, wxGauge95, wxSliderMSW, wxSlider95
- Various other bug fixes and additions.
Generic:
- Major work on Dialog Editor (still plenty to go).
- Expanded documentation a bit more.
Alpha 10, May 7th 1998
----------------------
wxMSW:
- Added desiredWidth, desiredHeight parameters to wxBitmapHandler
and wxIcon functions so that you can specify what size of
icon should be loaded. Probably will remain a Windows-specific thing.
- wxStatusBar95 now works for MDI frames.
- Toolbars in MDI frames now behave normally. They still
require application-supplied positioning code though.
- Changed installation instructions, makefiles and batch files
for compiling with Gnu-Win32/Mingw32/EGCS. Also timercmn.cpp
change to support Mingw32/EGCS. Bison now used by default.
Alpha 9, April 27th 1998
------------------------
wxMSW:
- Cured bug in wxStatusBar95 that caused a crash if multiple
fields were used.
- Added Gnu-Win32 b19/Mingw32 support by changing resource
compilation and pragmas.
- Cured wxMenu bug introduced in alpha 8 - didn't respond to
commands because VZ changed the id setting in wxMenu::MSWCommand.
Generic:
- Corrected some bugs, such as the wxModule compilation problem.
- Added Gnu-Win32 b19/Mingw32 support by changing resource
compilation and pragmas.
- Changed SIZEOF to WXSIZEOF.
Alpha 8, April 17th 1998
------------------------
wxMSW:
- Added IsNull to wxGDIObject to check if the ref data is present or not.
- Added PNG handler and sample - doesn't work for 16-bit PNGs for
some reason :-(
- Added wxJoystick class and event handling, and simple demo.
- Added simple wxWave class. Needs Stop() function.
- Added wxModule (module.h/module.cpp) to allow definition
of modules to be initialized and cleaned up on wxWindows
startup/exit.
- Start of Mingw32 compatibility (see minimal and dialogs samples
makefile.m95 files, and install.txt).
- Note: Windows printing has stopped working... will investigate.
VADIM'S CHANGES:
- Updated wxString: bug fixes, added wxArrayString, some
compatibility functions.
- Updated log.h/cpp, added wxApp::CreateLogTarget.
- file.h: new wxTempFile class.
- defs.h: added wxSB_SIZE_GRIP for wxStatusBar95
- statbr95: wxStatusBar95 control.
- registry.h/cpp: wxRegKey class for Win95 registry.
- listbox.cpp: corrected some bugs with owner-drawn listboxes.
- wxConfig and wxFileConfig classes.
Generic:
- Added src/other/png, src/other/zlib directories.
- Added samples/png.
- IMPORTANT: Changed 'no id' number from 0 to -1, in wxEVT_ macros.
Porters, please check particularly your wxTreeCtrl and wxListCtrl
header files.
- Added modules.h/cpp, config.cpp, fileconf.cpp, textfile.cpp/h.
Alpha 7, March 30th 1998
------------------------
wxMSW:
- Added tab classes, tab sample.
- Now can return FALSE from OnInit and windows will be
cleaned up properly before exit.
- Improved border handling so panels don't get borders
automatically.
- Debugged MDI activation from Window menu.
- Changes to memory debug handling, including checking for
memory leaks on application exit - but see issues.txt for
unresolved issues.
- Added wxTaskBarIcon (taskbar.cpp/h, plus samples/taskbar)
to allow maintenance of an icon in the Windows 95 taskbar
tray area.
- Got MFC sample working (MFC and wxWindows in the same
application), partly by tweaking ntwxwin.mak settings.
- Got DLL compilation working again (VC++).
- Changed wxProp/Dialog Editor filenames.
Generic:
- Added tab classes, tab sample.
- Revised memory.cpp, memory.h slightly; memory.h now #defines
new to WXDEBUG_NEW in DEBUG mode. Windows implementation app.cpp
now checks for leaks on exit. Added memcheck sample.
See src/msw/issues.txt for more details.
- resource.h, resource.cpp changed to make wxDefaultResourceTable
a pointer. Now initialize resource system with
wxInitializeResourceSystem and wxCleanUpResourceSystem, to
allow better control of memory.
- wxString now derives from wxObject, to enable memory leak
checking.
- Added some #include fixes in various files, plus changed
float to long in wxToolBar files.
Alpha 6, March 10th 1998
------------------------
wxMSW:
- Found stack error bug - stopped unwanted OnIdle recursion.
- Removed bug in wxTreeCtrl::InsertItem I added in alpha 5.
- Changed exit behaviour in wxApp/wxFrame/wxDialog. Now will
check if the number of top-level windows is zero before
exiting. Also, wxApp::GetTopWindow will return either
m_topWindow or the first member of wxTopLevelWindows, so you
don't have to call wxApp::SetTopWindow.
- Added dynarray.h/dynarray.cpp (from Vadim).
- Added first cut at OLE drag and drop (from Vadim). dnd sample
added. Drop target only at this stage. See src/msw/ole/*.cpp,
wx/include/msw/ole/*.h. WIN32 only because of UUID usage.
Doesn't work with GnuWin32 - no appropriate headers e.g. for
IUnknown.
Doesn't work with BC++ either - crashes on program startup.
- Added Vadim's owner-draw modifications - will probably remain
Windows-only. This enhances wxMenu, wxListBox. See ownerdrw sample.
- Added wxLB_OWNERDRAW for owner-draw listboxes.
- Vadim's wxCheckListBox derives from wxListBox. See checklst sample.
Doesn't entirely work for WIN16.
- Vadim has added wxMenuItem as a separate file menuitem.cpp. It
can also be used as an argument to wxMenu::Append, not just for
internal implementation.
- Some #ifdefs done for MINGW32 compilation (just alter OPTIONS
in makeg95.env, together with mingw32.bat). However, resource
binding is not working yet so most apps with dialogs crash.
Generic:
- Added Vadim's dynarray.h, dynarray.cpp.
- Added Vadim's menuitem.cpp.
- Added Windows-specific wxCheckListBox,
owner-draw wxListBox, and drag-and-drop
(see docs/msw/changes.txt).
Alpha 5, 14th February 1998
--------------------------
wxMSW:
- GENERIC AND MSW-SPECIFIC CODE NOW TREATED AS TWO SEPARATE
DISTRIBUTIONS. This change log will therefore now refer to
the Windows-specific code only. See docs/changes.txt for generic
changes.
- Removed Windows-specific reference counting system (GDI
resources were cleaned up in idle time) - minimal
advantages now we have a wxWin reference counting system.
- Added missing WXDLLEXPORT keywords so DLL compilation works
again.
- Removed most warnings for GnuWin32 compilation.
- Added wxRegion/wxRegionIterator, but haven't yet used it in
e.g. wxDC.
Generic:
- GENERIC AND MSW-SPECIFIC CODE NOW TREATED AS TWO SEPARATE
DISTRIBUTIONS. This change log will therefore now refer to
the generic code only. See docs/msw/changes.txt for Windows-specific
changes.
- Readmes, change logs and installation files now go in
platform-specific directories under docs, e.g. docs/msw,
docs/gtk.
- Added DECLARE_APP and IMPLEMENT_APP macros so wxApp object gets
created dynamically, not as a global object.
- Put wxColour into wx/msw/colour.h, src/msw/colour.cpp.
- Changed names of some include/wx/generic headers to be
consistent and to conform to gcc pragma conventions. Also
changed choicesg.cpp to choicdgg.cpp.
- Added gcc pragmas.
- Added gtk inclusion in include/wx headers.
- Added consistent file headings to source and headers.
- Removed lang.cpp, lang.h and references to wxSTR_... variables;
added a few references to wxTransString.
- Added operator to wxTransString that converts automatically
to wxString, so we can say e.g. wxMessageBox(wxTransString("Hello"), ...).
- samples/internat now works (minimally).
- Added wxMouseEvent::GetPosition and
wxMouseEvent::GetLogicalPosition, both returning wxPoints.
- Made wxSize and wxRect contain longs not ints.
- Cured some lemory leaks (thanks Vadim).
- Tidied up OnIdle and introduced RequestMore/MoreRequested so
will only keep processing OnIdle if it returns TRUE from
MoreRequested.
Alpha 4, 31st January 1998
--------------------------
All:
- Changed wxDC functions to take longs instead of floats. GetSize now takes
integer pointers, plus a version that returns a wxSize.
- const keyword added to various wxDC functions.
- Under Windows, wxDC no longer has any knowledge of whether
an associated window is scrolled or not. Instead, the device
origin is set by wxScrolledWindow in wxScrolledWindow::PrepareDC.
- wxScrolledWindow applications can optionally override the virtual OnDraw
function instead of using the OnPaint event handler. The wxDC passed to
OnDraw will be translated by PrepareDC to reflect scrolling.
When drawing outside of OnDraw, must call PrepareDC explicitly.
- wxToolBarBase/wxToolBarSimple similarly changed to allow for
scrolling toolbars.
- Integrated wxPostScriptDC patches for 1.xx by Chris Breeze,
to help printing with multiple pages.
- IPC classes given base classes (wxConnectionBase etc.) which
define the API used by different implementations. DDE
implementation updated to use these base classes.
- wxHelpInstance now separated into wxHelpControllerBase (base
for all implementations), wxWinHelpController (uses standard
WinHelp), wxXLPHelPController (talks to wxHelp by DDE or
TCP/IP). There will be others eventually, such as
wxHTMLHelpController for Microsoft (and Netscape?) HTML Help.
- Added Vadim Zeitlin's wxString class plus
internationalization code (gettext simulation, wxLocale, etc.).
New files from Vadim:
include\wx\string.h
include\wx\debug.h
include\wx\file.h
include\wx\log.h
include\wx\intl.h
src\common\string.cpp
src\common\log.cpp
src\common\intl.cpp
src\common\file.cpp
No longer use GNU wxString files.
- Split off file-related functions into include\wx\filefn.h and
src\common\filefn.cpp.
- Borland C++ support (WIN32) for main library and
samples, using makefile.b32 files.
- Preparation done for allowing BC++ to compile wxWin as a DLL,
including changes to defs.h.
- wxIntPoint removed, wxPoint is now int, and wxRealPoint
introduced.
- Added wxShowEvent (generated when window is being shown or
hidden).
- Got minimal, docview, mdi samples working for 16-bit VC++ and
cured 16-bit problem with wxTextCtrl (removed global memory
trick).
- Updated GnuWin32 makefiles, checked minimal, mdi, docview samples.
Alpha 3, September 1997
-----------------------
All:
- wxListCtrl, wxTreeCtrl, wxImageList classes done.
- Instigated new file hierarchy, split files and classes up more logically.
- PrologIO and some other utils now put into core library.
- Revamped print/preview classes, added wxPageSetupDialog.
- Started documentation.
Alpha 2, 30th April 1997
------------------------
All:
- EVT_... macros now have at least one argument, for conformance
with MetroWerks compiler.
- Added ids to .wxr file format.
- Got Dialog Editor compiled and running again but need
to extend functionality to be in line with new controls.
Added dialoged\test app to allow dynamic loading of .wxr files
for testing purposes.
- Rewrote wxBitmap to allow installable file type
handlers.
- Rewrote wxBitmapButton, wxStaticBitmap to not use Fafa.
- Wrote most of wxTreeCtrl and sample (need wxImageList to implement it
fully).
- Added back wxRadioBox.
- Tidied up wx_main.cpp, wxApp class, putting PenWin code in
a separate file.
Alpha 1, 5th April 1997
-----------------------
Generic:
At this point, the following has been achieved:
- A lot, but not all, of the code has been revamped for better
naming conventions, protection of data members, and use of
wxString instead of char *.
- Obsolete functionality deleted (e.g. default wxPanel layout,
old system event system) and code size reduced.
- Class hierarchy changed (see design doc) - base classes such
as wxbWindow now removed.
- No longer includes windows.h in wxWin headers, by using stand-in
Windows types where needed e.g. WXHWND.
- PrologIO revised.
- wxScrolledWindow, wxStatusBar and new MDI classes added.
MDI is now achived using separate classes, not window styles.
- wxSystemSettings added, and made use of to reflect standard
Windows settings.
- SetButtonFont/SetLabelFont replaced by SetFont; font and colour
settings mucho rationalised.
- All windows are now subclassed with the same window proc to make
event handling far more consistent. Old internal wxWnd and derived
classes removed.
- API for controls revised, in particular addition of
wxValidator parameters and removal of labels for some controls.
- 1 validator written: see examples/validate.
- Event table system introduced (see most samples and
wx_event.cpp/ProcessEvent, wx_event.h). wxEvtHandler
made more flexible, with Push/PopEventHandler allowing a chain
of event handlers.
- wxRadioBox removed - will be added back soon.
- Toolbar class hierarchy revised:
wxToolBarBase
wxToolBarSimple (= old wxToolBar)
wxToolBar95 (= old wxButtonBar under Win95
wxToolBarMSW (= old wxButtonBar under WIN16/WIN32)
- Constraint system debugged somewhat (sizers now work properly).
- wxFileDialog, wxDirDialog added; other common dialogs now
have class equivalents. Generic colour and font dialogs
rewritten to not need obsolete panel layout.
- .wxr resource system partially reinstated, though needs
an integer ID for controls. Hopefully the resource system
will be replaced by something better and more efficient
in the future.
- Device contexts no longer stored with window and accessed
with GetDC - use wxClientDC, wxPaintDC, wxWindowDC stack
variables instead.
- wxSlider uses trackbar class under Win95, and wxSL_LABELS flag
determines whether labels are shown. Other Win95-specific flags
introduced, e.g. for showing ticks.
- Styles introduced for dealing with 3D effects per window, for
any window: all Win95 3D effects supported, plus transparent windows.
- Major change to allow 3D effect support without CTL3D, under
Win95.
- Bitmap versions of button and checkbox separated out into new
classes, but unimplemented as yet because I intend to remove
the need for Fafa - it apparently causes GPFs in Win95 OSR 2.
- utils/wxprop classes working (except maybe wxPropertyFormView)
in preparation for use in Dialog Editor.
- GNU-WIN32 compilation verified (a month or so ago).

View File

@@ -1,339 +0,0 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 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.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) You can apply it to
your programs, 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 software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, 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 redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
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 give any other recipients of the Program a copy of this License
along with the Program.
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 Program or any portion
of it, thus forming a work based on the Program, 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) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
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 Program, 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 Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) 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; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, 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 executable. 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.
If distribution of executable or 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 counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program 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.
5. 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 Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program 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.
7. 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 Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program 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 Program.
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.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program 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.
9. The Free Software Foundation may publish revised and/or new versions
of the 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 Program
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 Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, 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
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "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 PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. 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 PROGRAM 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 PROGRAM (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 PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), 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 Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. 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 program's name and a brief idea of what it does.>
Copyright (C) 19yy <name of author>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program 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 General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; 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.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) 19yy name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Library General
Public License instead of this License.

View File

@@ -1,481 +0,0 @@
GNU LIBRARY GENERAL PUBLIC LICENSE
Version 2, June 1991
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!

View File

@@ -1,484 +0,0 @@
* The most simple case
-----------------------
If you compile wxWindows on Unix for the first time and don't
like to read install instructions just do (in the base dir):
./configure
make
su <type root password>
make install
ldconfig
exit
* The most simple errors
------------------------
configure reports, that you don't have GTK 1.X installed
although you are certainly sure you have. Well, you have
installed it, but you also have another version of the
GTK installed, which you may need to removed including
other versions of glib (and its headers).
You get errors during compilation. The reason is that you
probably have a broken compiler, which includes almost
everything that is called gcc. If there is just any way
for you to use egcs, use egcs. We are sorry, but we cannot
fix gcc.
* The most simple program
-------------------------
Now create your super-application myfoo.app and compile anywhere
with
g++ myfoo.cpp `wx-config --libs` `wx-config --cflags` -o myfoo
* General
-----------------------
The Unix variants of wxWindows use GNU configure. If you have
problems with your make use GNU make instead.
If you have general problems with installation, read my
homepage at
http://wesley.informatik.uni-freiburg.de/~wxxt
for newest information. If you still don't have any success,
please send a bug report to one of our mailing lists (see
my homepage) INCLUDING A DESCRIPTION OF YOUR SYSTEM AND
YOUR PROBLEM, SUCH AS YOUR VERSION OF GTK, WXGTK, WHAT
DISTRIBUTION YOU USE AND WHAT ERROR WAS REPORTED. I know
this has no effect, but I tried...
* GUI libraries
-----------------------
wxWindows/GTK requires the GTK+ library to be installed on your system.
It has to be a stable version, preferebly version 1.2.3. You can use
GTK 1.0.X in connection with wxWindows, but we don't support Drag'n'Drop
for GTK 1.0.X so you have to "configure --without-dnd". wxWindows does
NOT work with the 1.1.X versions of the GTK+ library.
You can get the newest version of the GTK+ from the GTK homepage
at
http://www.gtk.org
We also mirror GTK+ 1.2.1 at my ftp site soon. You'll find information
about downloading at my homepage.
* Additional libraries
-----------------------
wxWindows/Gtk requires a thread library and X libraries
known to work with threads. This is the case on all
commercial Unix-Variants and all Linux-Versions that
are based on glibc 2 except RedHat 5.0 which is broken
in many aspects. As of writing this, these Linux
distributions have correct glibc 2 support:
- RedHat 5.1
- Debian 2.0
- Stampede
- DLD 6.0
- SuSE 6.0
You can enable thread support by running
./configure "--with-threads"
make clean
make
su <type root password>
make install
ldconfig
exit
NB: DO NOT COMPILE WXGTK WITH GCC AND THREADS, SINCE
ALL PROGRAMS WILL CRASH UPON START-UP! Just always
use egcs and be happy.
* Create your configuration
-----------------------------
Usage:
./configure options
If you want to use system's C and C++ compiler,
set environment variables CC and CCC as
% setenv CC cc
% setenv CCC CC
% ./configure options
Using the SGI native compilers, it is recommended that you
also set CFLAGS and CXXFLAGS before running configure. These
should be set to :
CFLAGS="-mips3 -n32"
CXXFLAGS="-mips3 -n32"
This is essential if you want to use the resultant binaries
on any other machine than the one it was compiled on. If you
have a 64bit machine (Octane) you should also do this to ensure
you don't accidently build the libraries as 64bit (which is
untested).
The SGI native compiler support has only been tested on Irix 6.5.
to see all the options please use:
./configure --help
The basic philosophy is that if you want to use different
configurations, like a debug and a release version,
or use the same source tree on different systems,
you have only to change the environment variable OSTYPE.
(Sadly this variable is not set by default on some systems
in some shells - on SGI's for example). So you will have to
set it there. This variable HAS to be set before starting
configure, so that it knows which system it tries to
configure for.
Configure will complain if the system variable OSTYPE has
not been defined. And Make in some circumstances as well...
* General options
-------------------
Normally, you won't have to choose a toolkit, because when
you download wxGTK, it will default to --with-gtk etc. But
if you use all of our CVS repository you have to choose a
toolkit. You must do this by running configure with either of:
--with-gtk Use the GIMP ToolKit (GTK)
--with-motif Use either Motif or Lesstif
Configure will look for both.
The following options handle the kind of library you want to build.
--with-threads Compile with thread support. Threads
support is also required for the
socket code to work.
--without-shared Do not create shared libraries.
--without-optimise Do not optimise the code. Can
sometimes be useful for debugging
and is required on some architectures
such as Sun with gcc 2.8.X which
would otherwise produce segvs.
--with-profile Add profiling info to the object
files. Currently broken, I think.
--with-mem_tracing Add built-in memory tracing.
--with-dmalloc Use the dmalloc memory debugger.
Read more at www.letters.com/dmalloc/
--with-debug_info Add debug info to object files and
executables for use with debuggers
such as gdb (or its many frontends).
--with-debug_flag Define __DEBUG__ and __WXDEBUG__ when
compiling. This enable wxWindows' very
useful internal debugging tricks (such
as automatically reporting illegal calls)
to work. Note that program and library
must be compiled with the same debug
options.
* Feature Options
-------------------
When producing an executable that is linked statically with wxGTK
you'll be surprised at its immense size. This can sometimes be
drastically reduced by removing features from wxWindows that
are not used in your program. The most relevant such features
are
--without-libpng Disables PNG image format code.
--without-libjpeg Disables JPEG image format code.
--without-odbc Disables ODBC code.
--without-wxresources Disables the use of *.wxr type
resources.
--without-threads Disables threads. Will also
disable sockets.
--without-sockets Disables sockets.
--without-dnd Disables Drag'n'Drop.
--without-clipboard Disables Clipboard.
--without-serial Disables object instance serialiasation.
--without-streams Disables the wxStream classes.
Apart from disabling certain features you can very often "strip"
the program of its debugging information resulting in a significant
reduction in size.
* Compiling
-------------
The following must be done in the base directory (e.g. ~/wxGTK
or ~/wxWin or whatever)
Now the makefiles are created (by configure) and you can compile
the library by typing:
make
make yourself some coffee, as it will take some time. On an old
386SX possibly week. During compilation, you'll get a few
warning messages depending in your compiler.
if you want to be more selective:
make will build only the base libraries
make samples will build the samples
make user will build everything in user
Then you may install the library and it's header files under
/usr/local/include/wx and /usr/local/lib respectively. You
have to log in as root (i.e. run "su" and enter the root
password) and type
make install
Depending on the configuration of some files, the libraries
and binaries will be placed in different directories.
The "global" binaries and libraries will be placed in:
bin/$(OSTYPE) and
lib/$(OSTYPE) respectively
"local" binaries and libraries will be placed in:
(basedir of that application)/$(OSTYPE).
This is also the place where all the object-files will go.
(Currently there arent any global binaries).
If you want to save disk space by removing unnecessary
object-files:
make clean
in the various directories will do the work for you.
* Creating a new Project
--------------------------
There are two ways to create your own project:
1) The first way uses the installed libraries and header files
automatically using wx-config
g++ myfoo.cpp `wx-config --libs` `wx-config --cflags` -o myfoo
Using this way, a make file for the minimal sample would look
like this
CC = g++
minimal: minimal.o
$(CC) -o minimal minimal.o `wx-config --libs`
minimal.o: minimal.cpp mondrian.xpm
$(CC) `wx-config --cflags` -c minimal.cpp -o minimal.o
clean:
rm -f *.o minimal
This is certain to become the standard way unless we decide
to sitch to tmake.
2) The other way creates a project within the source code
directories of wxWindows: In this case I propose to put
all contributed programs in the directory "/user", with a
directory of its own.
This directory then should include the following files:
Makefile (You can copy this one from any application in samples
probably you will not need to edit this one. There is
only one case where you might be interested in changing
this file, but about that see later.)
Makefile.in (This is the base application-Makefile template, from
which the actual Makefile for each system is created.
More about this later)
put ALL your source code along with all the other stuff you need for
your application in this directory (subdirectories are welcome).
** Something about Makefiles
------------------------------
On general principle it should only contain ONE line, which is as follows:
include ../../setup/general/makeapp
this will include all the necessary definitions for creating the applications
the only case where you might want to add another line is the following:
this version of configure also supports creation of source archives of the
application for easy distribution and updates to newer version of wxWindows.
For this purpose all files in the application-directory will be put into
a gziped tar-file in the full notation user/<your application>/*
if you want to include some other files that you want "more visible", like
a README.<yourApp> or a shell script for easy
compilation/installation/distribution, then you have to add a variable
DISTRIBUTE_ADDITIONAL=<your files>
to the Makefile.
So it would look like this:
DISTRIBUTE_ADDITIONAL=README.TheApp
include ../../setup/general/makeapp
As we have already talked about distribution the command to create a
distribution is:
make distrib
NOTE: If you are in the base directory of wxWindows it will create
distribution packages for wxWindows as well as for all packages in the
user directory.
So if you want to create only packages for the files in user,
then go to the directory other and type:
make distrib
or if you only want one application to be created then
enter the specific directory and type there:
make distrib
All the distribution files will be put in the directory
distrib at the base of the wxWindows-tree (where also configure
and template.mak can be found).
** Something about Makefile.in
--------------------------------
As you have already seen with Makefile, configure makes a lot of use
if the include statement in make to keep the Makefiles as simple as
possible.
So basically there are only variables to define and then a include command.
Exception to this rule is if you have special rules for some stuff...
These rules should go AFTER the include statement!!!
so the general header looks like this:
# wxWindows base directory
WXBASEDIR=@WXBASEDIR@
# set the OS type for compilation
OS=@OS@
# compile a library only
RULE=bin
and the general footer will look like this:
# include the definitions now
include ../../../template.mak
the key variable is RULE, which defines what make should create
in this directory.
here are some examples:
RULE description
===========================================================================
bin creates a local binary (for a global binary prefix bin with g)
additional variables needed:
BIN_TARGET this gives the name of your application
BIN_OBJ this gives the object files needed to
link the application
optional variables are:
BIN_SRC this gives the list of c/c++ files for
which dependencies will be checked.
(This can be achieved with: make depend)
BIN_LINK this gives commands for additional
libraries needed to link the application
---------------------------------------------------------------------------
bin2 creates two local binaries (for global binaries prefix bin2 with g)
in addition to the variables specified above you MUST also
provide the same variables with BIN2_ instead of BIN_
---------------------------------------------------------------------------
lib creates a local library (for a global binary prefix bin with g)
additional variables needed:
LIB_TARGET this gives the name of your library
LIB_OBJ this gives the object files needed for
the library to be build.
optional variables are:
LIB_SRC this gives the list of c/c++ files for
which dependencies will be checked.
libbin and libgbin are also possible and will need in addition
the variables from bin
---------------------------------------------------------------------------
gslib is similar to lib, but it creates a shared library if the system
supports it.
additional variables needed:
LIB_MAJOR major number of the shared library
LIB_MINOR minor number of the shared library
---------------------------------------------------------------------------
other additional variables:
ADD_COMPILE define additional includes/defines that
are needed to compile the object files
(if you need to reference some directory
utils - like wxGrid -, then please
reference them with the variables defined
in template.mak - e.g.: $(SRCDIR),$(UTILS),
$(SAMPLES),$(OTHERS))
NEEDED_DEFINES lists all the defines that HAVE to be set in
/include/wx/setup.h to compile correctly.
SRC_DIR lists all directories that are needed to
compile. (i.e: lists all the directories,
where there are source-files.) But it is
also needed to clean an object and for
machines, for which make does not support
VPATH
currently there are the following compiling rules provided:
object files are created for the following file extensions:
.c .cc .cpp
Please have a closer look at the Makefiles in this distribution.
* Platforms configure is working with
---------------------------------------
Please report build succes on any machine. Especially non-
Linux operating systems (which I don't have).
Original author of the autoconf system for wxxt-1.66 and for this INSTALL
file:
Martin Sperl sperl@dsn.ast.univie.ac.at
Ported to wxGTK 0.1:
Wolfram Gloger wmglo@dent.med.uni-muenchen.de
Thanks alot to both of them.
In the hope that it will be useful,
Robert Roebling roebling@sun2.ruf.uni-freiburg.de

View File

@@ -1,56 +0,0 @@
wxWindows Library License, Version 3
====================================
Copyright (C) 1998 Julian Smart, Robert Roebling 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.

View File

@@ -1,11 +0,0 @@
# makewxgtk
# Sets permissions (in case we extracted wxGTK from zip files)
# and makes wxGTK.
# Call from top-level wxWindows directory.
# Note that this uses standard (but commonly-used) configure options;
# if you're feeling brave, you may wish to compile with threads.
# -- Julian Smart
chmod a+x configure config.sub config.guess setup/general/* setup/shared/*
./configure --with-shared --with-gtk --with-debug_flag --with-debug_info --without-threads
make makefiles
make

View File

@@ -1,68 +0,0 @@
Welcome to wxWindows/Gtk 2.1 snapshot 5,
you have downloaded version 2.1 of the GTK+ 1.2 port of
the wxWindows GUI library. This is a developers release
and is it not suited for production development. Beware
that major changes can happen before a final release -
Particularly the makefile system will change entirly.
More information is available from my homepage at:
http://wesley.informatik.uni-freiburg.de/~wxxt
and about the wxWindows project as a whole (and the
Windows and Motif ports in particular) can be found
at Julian Smart's homepage at:
http://web.ukonline.co.uk/julian.smart/wxwin
Information on how to install can be found in the file
INSTALL.txt, but if you cannot wait, this should work on
many systems (when using GTK 1.0 read the INSTALL.txt):
./configure
make
su <type root password>
make install
ldconfig
exit
Type the following to make the samples
make samples
To start the samples, change into the directory that
corresponds to the sample and your system, e.g on a
linux-gnu machine the minimal sample would get started
from the wxWindows base dir with
./samples/minimal/linux-gnu/minimal
When you run into problems, please read the INSTALL.txt and
follow those instructions. If you still don't have any success,
please send a bug report to one of our mailing lists (see
my homepage) INCLUDING A DESCRIPTION OF YOUR SYSTEM AND
YOUR PROBLEM, SUCH AS YOUR VERSION OF GTK, WXGTK, WHAT
DISTRIBUTION YOU USE AND WHAT ERROR WAS REPORTED. I know
this has no effect, but I tried...
The library produced by the install process will be called
libwx_gtk2.a (static) and libwx_gtk2.so.1.0 (shared) so that
once a binary incompatible version of wxWindows/Gtk comes out
we'll augment the library version number to avoid linking problems.
Please send problems concerning installation, feature requests,
bug reports or comments to the wxWindows users Information on
how to subscribe is available from my homepage.
wxWindows/Gtk doesn't come with any guarantee whatsoever. It might
crash your harddisk or destroy your monitor. It doesn't claim to be
suitable for any special or general purpose.
Regards,
Robert Roebling

Binary file not shown.

View File

@@ -1,43 +0,0 @@
<HTML>
<HEAD>
<TITLE>wxWindows 2 FAQ</TITLE>
</HEAD>
<BODY BGCOLOR=#FFFFFF TEXT=#000000 LINK=#FF0000 VLINK=#000000>
<font face="Arial, Lucida Sans, Helvetica">
<table width=100% border=4 cellpadding=5 cellspacing=0>
<tr>
<td bgcolor="#660000">
<font size=+1 face="Arial, Lucida Sans, Helvetica" color="#FFFFFF">
wxWindows 2 FAQ
</font>
</td>
</tr>
</table>
<P>
Welcome to the wxWindows FAQ. Please select a category:<P>
<ul>
<li><a href="faqgen.htm">General questions</a>
<li><a href="faqgtk.htm">wxWindows 2 for GTK</a>
<li><a href="faqmsw.htm">wxWindows 2 for Windows</a>
<li><a href="faqmot.htm">wxWindows 2 for Motif</a>
<li><a href="faqmac.htm">wxWindows 2 for Mac</a>
</ul>
<P>
For further information, please see the <a href="http://www.wxwindows.org" target=_top>wxWindows Web site</a>,
plus install.txt (per port), todo.txt (per port), and bugs.txt (all ports).
<P>
</font>
</BODY>
</HTML>

View File

@@ -1,232 +0,0 @@
<HTML>
<HEAD>
<TITLE>wxWindows 2 FAQ: General</TITLE>
</HEAD>
<BODY BGCOLOR=#FFFFFF TEXT=#000000 LINK=#FF0000 VLINK=#000000>
<font face="Arial, Lucida Sans, Helvetica">
<table width=100% border=4 cellpadding=5 cellspacing=0>
<tr>
<td bgcolor="#660000">
<font size=+1 face="Arial, Lucida Sans, Helvetica" color="#FFFFFF">
wxWindows 2 FAQ: General
</font>
</td>
</tr>
</table>
<P>
See also <a href="faq.htm">top-level FAQ page</a>.
<hr>
<H3><a name="whatis">What is wxWindows?</a></H3>
wxWindows is a class library that allows you to compile graphical C++ programs on a range of
different platforms. wxWindows defines a common API across platforms, but uses the native graphical user interface (GUI) on each platform,
so your program will take on the native 'look and feel' that users are familiar with.<P>
Although GUI applications are mostly built programmatically, there is a dialog editor to help
build attractive dialogs and panels.<P>
You don't have to use C++ to use wxWindows: wxWindows 1 has been interfaced to several interpreted languages,
such as CLIPS, Python, Scheme, XLisp and Perl, and there is a Python interface for wxWindows 2.
<P>
<h3>Can I use wxWindows 2 for both proprietary (commercial) projects, and GPL'ed projects?</h3>
Yes. Please see the <a href="newlicen.htm">licence</a> for details, but basically
you can distribute proprietary binaries without distributing any source code, and neither will wxWindows
conflict with GPL code you may be using or developing with it.
<P>
The conditions for using wxWindows 2 are the same whether you are a personal, academic
or commercial developer.
<P>
<h3>Is there support?</h3>
No official support, but the mailing list is very helpful and some people say that
wxWindows support is better than for much commercial software. The developers are
keen to fix bugs as soon as possible, though obviously there are no guarantees.
<P>
<H3><a name="users">Who uses wxWindows?</a></H3>
Many organisations - commercial, government, and academic - across the
world. It's impossible to estimate the true number of users, since
wxWindows is obtained by many different means, and we cannot monitor
distribution. The mailing list contains around 300-400 entries which is
quite large for a list of this type.<P>
<H3>I am about to start a wxWindows 1.xx project. Should I use 2 instead?</H3>
wxWindows 2 is still in beta but it's actually pretty useable (Windows, GTK, Motif).<P>
Porting to wxWindows 2 from 1.xx will not be too painful; see the next question
for ways in which you can make it easier.<P>
<H3>Why would I want to use wxWindows 2 in preference to wxWindows 1.xx?</H3>
Some reasons:
<ul>
<li>In 2 there is far more flexibility, for example in the way windows can be
nested, and the way events are intercepted.
<li>There is more functionality for producing sophisticated applications,
for example using the wxTreeCtrl and wxListCtrl classes.
<li>There is better C++-conformance (such as usage of wxString and const) which
will make your applications more reliable and easier to maintain.
<li>wxWindows 2 will be better supported than 1.xx.
<li>The GTK version is attractive for people interested in writing Linux and GNOME
applications.
<li>The Mac version will be one of the best frameworks available on that platform.
</ul>
<H3>How can I prepare for wxWindows 2?</H3>
To make porting to wxWindows 2 easier in the future, take a look at some
<a href="http://web.ukonline.co.uk/julian.smart/wxwin/prepare.htm">tips</a> for writing existing code in a 2-compatible way.<P>
<H3>How much has the API changed since 1.xx?</H3>
It's difficult to summarize, but some aspects haven't changed very much. For example, if you have some
complex drawing code, you will mostly need to make sure it's parameterised with a device
context (instead of obtaining one from a window or storing it). You won't have
to completely rewrite the drawing code.<P>
The way that events are handled has changed, so for example, where you overrode
OnSize before, you now have a non-virtual OnSize with a single event class argument.
To make this function known to wxWindows, you add an entry in an 'event table' using macros. Addition of these macros
will eventually be made easier by a tool which will allow selection from a list
and copy-and-paste into your editor. This is extended to button presses, listbox selection
etc. so callbacks have gone (they may be added back for limited backward compatibility).<P>
The class hierarchy has changed to allow greater flexibility but it probably won't affect your
existing application. One exception to this is MDI applications which now use separate MDI classes instead of style
flags. As a result, it won't be possible to switch between MDI and SDI operation at run-time
without further coding, but a benefit is less interdependence between areas of code,
and therefore smaller executable size.<P>
Panel items (now called controls) no longer have labels associated with most of them,
and default panel layout has been removed. The idea is that you make greater use
of dialog resources, for better-looking dialogs.<P>
<H3>What classes have disappeared?</H3>
wxForm, wxTextWindow (subsumed into wxTextCtrl).
<H3>Does wxWindows 2 mean that wxWindows 1.xx is dead?</H3>
While wxWindows 2 is being developed, there will be further patches to wxWindows 1.xx.
Obviously we are investing most of our energy into the new code, but we're also trying
to fix bugs in the current version.<P>
<H3>What platforms will be supported by wxWindows 2?</H3>
<ul>
<li>Windows 3.1, Windows 95/98, Windows NT;
<li>Linux and other Unix platforms with GTK+;
<li>Unix with Motif or the free Motif clone Lesstif;
<li>Mac (coming later in 1999);
<li>A BeOS port is being investigated.
<li>A Windows CE port is being investigated.
<li>There are no plans to support OS/2 or XView. However,
you may be able to compile the GTK and Motif versions under OS/2 with X and GTK
installed, or the Windows version with IBM's Open32 extensions.
</ul>
<P>
<H3>How does wxWindows 2 support platform-specific features?</H3>
This is a hotly-debated topic amongst the developers. My own philosophy
is to make wxWindows as platform-independent as possible, but allow in a
few classes (functions, window styles) that are platform-specific.
For example, Windows metafiles and Windows 95 taskbar icons have
their own classes on Windows, but nowhere else. Because these classes
are provided and are wxWindows-compatible, it doesn't take much
coding effort for an application programmer to add support for
some functionality that the user on a particular platform might otherwise
miss. Also, some classes that started off as platform-specific, such
as the MDI classes, have been emulated on other platforms. I can imagine
that even wxTaskBarIcon may be implemented for Unix desktops one day.
<P>
In other words, wxWindows is not a 'lowest common denominator' approach,
but it will still be possible to write portable programs using the
core API. Forbidding some platform-specific classes would be a stupid
approach that would alienate many potential users, and encourage
the perception that toolkits such as wxWindows are not up to the demands
of today's sophisticated applications.<P>
Currently resources such as bitmaps and icons are handled in a platform-specific
way, but it is hoped to reduce this dependence in due course.<P>
Another reason why wxWindows 2 is not a 'lowest common denominator' toolkit is that
some functionality missing on some platform has been provided using generic,
platform-independent code, such as the wxTreeCtrl and wxListCtrl classes.<P>
<H3>Does wxWindows use STL? or the standard string class?</H3>
No. This is a much-discussed topic that has (many times) ended with the conclusion that it is in
wxWindows' best interests to avoid use of templates. Not all compilers can handle
templates adequately so it would dramatically reduce the number of compilers
and platforms that could be supported. It would also be undersirable to make
wxWindows dependent on another large library that may have to be downloaded and installed.
In addition, use of templates can lead to executable bloat, which is something
wxWindows 2 is strenously trying to avoid.<P>
The standard C++ string class is not used, again because it is not available to all compilers,
and it is not necessarily a very efficient implementation. Also, we retain more flexibility
by being able to modify our own string class. Some compatibility with the string class
has been built into wxString.<P>
There is nothing to stop an application using templates or the string class for its own
purposes.<P>
<H3>How is wxWindows 2 being developed?</H3>
We are using the <a href="cvs.htm">CVS</a> system to develop and maintain wxWindows. This allows
us to make alterations and upload them instantly to the server in Edinburgh, from
which others can update their source.<P>
<H3>How is wxWindows 2 distributed?</H3>
By ftp, and via the <a href="cdrom2.htm">wxWindows CD-ROM</a>.<P>
<H3>What are the plans for the future?</H3>
Currently we're working too hard on getting wxWindows 2 finished (are GUI toolkits ever
finished?) to think very far ahead. However, we know we want to make wxWindows as robust
and well-publicised as possible. We also want to aim for better platform-independence of
resources such as icons and bitmaps, standardising on the PNG for all platforms.<P>
Other possibilities include: DCOM/CORBA compatibility; a wxWindows book; an
<a href="http://web.ukonline.co.uk/julian.smart/wxwin/wxide.htm">IDE</a>;
other platforms; other interface abilities such as speech output.<P>
We will investigate the possibility of compiler or operating system vendors bundling wxWindows with
their product.<P>
The high-level goal of wxWindows is to be thought of as the number one C++ framework,
for virtually any platform. Move over, MFC!<P>
<H3>What about Java?</H3>
The Java honeymoon period is over :-) and people are realising that it cannot
meet all their cross-platform development needs. We don't anticipate a major threat
from Java, and the level of interest in wxWindows is as high as ever.<P>
<H3>How can I help the project?</H3>
Please check out the <a href="http://web.ukonline.co.uk/julian.smart/wxwin/develop.htm" target=main>Backroom</a> pages,
in particular the <a href="http://web.ukonline.co.uk/julian.smart/wxwin/projects.htm">suggested projects</a>, and
mail <a href="mailto:julian.smart@ukonline.co.uk">Julian Smart</a> or the developers' mailing list with your own suggestions.<P>
</font>
</BODY>
</HTML>

View File

@@ -1,47 +0,0 @@
<HTML>
<HEAD>
<TITLE>wxWindows 2 for GTK FAQ</TITLE>
</HEAD>
<BODY BGCOLOR=#FFFFFF TEXT=#000000 LINK=#FF0000 VLINK=#000000>
<font face="Arial, Lucida Sans, Helvetica">
<table width=100% border=4 cellpadding=5 cellspacing=0>
<tr>
<td bgcolor="#660000">
<font size=+1 face="Arial, Lucida Sans, Helvetica" color="#FFFFFF">
wxWindows 2 for GTK FAQ
</font>
</td>
</tr>
</table>
<P>
See also <a href="faq.htm">top-level FAQ page</a>.
<hr>
<h3>What is wxWindows 2 for GTK?</h3>
wxWindows 2 for GTK is a port of wxWindows to the <a href="http://www.gimp.org/gtk" target=_top>GTK+ toolkit</a>,
which is freely available for most flavours of Unix with X. wxWindows 2 for GTK is
often abbreviated to wxGTK. wxGTK has a separate home page <a href="http://www.freiburg.linux.de/~wxxt" target=_top>here</a>.
<P>
<h3>Does wxGTK have GNOME support?</h3>
Currently wxGTK does not have any features that would involve dependence on any desktop
environment's libraries, so it can work on GNOME, KDE and with other window managers
without installation hassles. Some GNOME and KDE integration features are file based, and
so may be added without dependence on libraries. Other features may be supported in the
future, probably as a separate library.
<P>
</font>
</BODY>
</HTML>

View File

@@ -1,37 +0,0 @@
<HTML>
<HEAD>
<TITLE>wxWindows 2 for Mac FAQ</TITLE>
</HEAD>
<BODY BGCOLOR=#FFFFFF TEXT=#000000 LINK=#FF0000 VLINK=#000000>
<font face="Arial, Lucida Sans, Helvetica">
<table width=100% border=4 cellpadding=5 cellspacing=0>
<tr>
<td bgcolor="#660000">
<font size=+1 face="Arial, Lucida Sans, Helvetica" color="#FFFFFF">
wxWindows 2 for Mac FAQ
</font>
</td>
</tr>
</table>
<P>
See also <a href="faq.htm">top-level FAQ page</a>.
<hr>
<h3>When is wxMac 2 due to be released?</h3>
There is a <a href="http://web.ukonline.co.uk/julian.smart/wxwin/dl_mac2.htm">preview</a> available.
A beta release can be expected by early Q2 1999. The author of this port
is Stefan Csomor (csomor@advancedconcepts.ch).
<P>
</font>
</BODY>
</HTML>

View File

@@ -1,90 +0,0 @@
<HTML>
<HEAD>
<TITLE>wxWindows 2 for Motif FAQ</TITLE>
</HEAD>
<BODY BGCOLOR=#FFFFFF TEXT=#000000 LINK=#FF0000 VLINK=#000000>
<font face="Arial, Lucida Sans, Helvetica">
<table width=100% border=4 cellpadding=5 cellspacing=0>
<tr>
<td bgcolor="#660000">
<font size=+1 face="Arial, Lucida Sans, Helvetica" color="#FFFFFF">
wxWindows 2 for Motif FAQ
</font>
</td>
</tr>
</table>
<P>
See also <a href="faq.htm">top-level FAQ page</a>.
<hr>
<h3>What version of Motif do I need?</h3>
You will need version 1.2 or above. Version 2 should also be fine. Some people
have had a positive experience with <a href="www.lesstif.org" target=_top>Lesstif</a>,
a free Motif clone. (Note from Julian Smart - I use the Linux version of MetroLink Motif 1.2.4).
<P>
<h3>What features are missing or partially implemented?</h3>
The following classes are not yet implemented: wxSpinButton, wxCheckListBox, wxJoyStick,
wxGLCanvas.<P>
The following classes are not likely to be implemented because there is no sensible
equivalent on Motif: wxMiniFrame, wxTaskBar.<P>
These features are not yet implemented:<P>
<ul>
<li>Clipboard and drag and drop support are currently under development.
<li>Support for selection of specific visuals.
<li>Wide character support (but when Unicode is supported under Windows, this support will
be relatively easy to add).
<li>Configurable colour/font settings (they are currently hard-wired in wxSystemSettings).
<li>A help system (please use wxHelpController and Netscape instead). An HTML widget and help
system is in preparation.
</ul>
<p>
<h3>Does Dialog Editor work with wxWindows for Motif?</h3>
Suport for Dialog Editor is almost there, but there are some wrinkles to iron
out. You may find it's useful though: compile it and see.
<P>
<h3>How do I switch between debugging and release compilation modes?</h3>
Unfortunately the makefile system doesn't currently allow you to compile
for both simultaneously: you need
to recompile wxWindows and your application having adjusted make.env. However,
you could rename the binary and release library archives, and adjust your makefiles
to use the appropriate one (or change a symbolic link).
<P>
<h3>Why are windows are not refreshed properly until I resize them?</h3>
Very occasionally you can experience this glitch, probably because sometimes the
window tries to resize and repaint itself before the final size is known. The workaround
is to add code like this after window creation and initialization:<P>
<PRE>
#ifdef __WXMOTIF__
wxNoOptimize noOptimize;
window->SetSize(-1, -1, w, h);
#endif
</PRE>
<P>
</font>
</BODY>
</HTML>

View File

@@ -1,174 +0,0 @@
<HTML>
<HEAD>
<TITLE>wxWindows 2 for Windows FAQ</TITLE>
</HEAD>
<BODY BGCOLOR=#FFFFFF TEXT=#000000 LINK=#FF0000 VLINK=#000000>
<font face="Arial, Lucida Sans, Helvetica">
<table width=100% border=4 cellpadding=5 cellspacing=0>
<tr>
<td bgcolor="#660000">
<font size=+1 face="Arial, Lucida Sans, Helvetica" color="#FFFFFF">
wxWindows 2 for Windows FAQ
</font>
</td>
</tr>
</table>
<P>
See also <a href="faq.htm">top-level FAQ page</a>.
<hr>
<h3>Which Windows platforms are supported?</h3>
wxWindows 2 can be used to develop and deliver applications on Windows 3.1, Win32s,
Windows 95, Windows 98, and Windows NT. A Windows CE version is being looked into (see below).<P>
wxWindows 2 is designed to make use of WIN32 features and controls. However, unlike Microsoft,
we have not forgotten users of 16-bit Windows. Most features
work under Windows 3.1, including wxTreeCtrl and wxListCtrl using the generic implementation.
However, don't expect very Windows-95-specific classes to work, such as wxTaskBarIcon. The wxRegConfig
class doesn't work either because the Windows 3.1 registry is very simplistic. Check out the 16-bit
makefiles to see what other files have been left out.
<P>
16-bit compilation is supported under Visual C++ 1.5, and Borland BC++ 4 to 5.
<P>
wxWindows 2 for Windows will also compile on Unix with gcc using TWIN32 from <a href="http://www.willows.com" target=_top>Willows</a>,
although TWIN32 is still in a preliminary state. The resulting executables are
Unix binaries that work with the TWIN32 Windows API emulator.<P>
You can also compile wxWindows 2 for Windows on Unix with Cygwin or Mingw32, resulting
in executables that will run on Windows. So in theory you could write your applications
using wxGTK or wxMotif, then check/debug your wxWindows for Windows
programs with TWIN32, and finally produce an ix86 Windows executable using Cygwin/Mingw32,
without ever needing a copy of Microsoft Windows. See the Technical Note on the Web site detailing cross-compilation.<P>
<h3>What about Windows CE?</h3>
This is under consideration, though we need to get wxWindows Unicode-aware first.
There are other interesting issues, such as how to combine the menubar and toolbar APIs
as Windows CE requires. But there's no doubt that it will be possible, albeit
by mostly cutting down wxWindows 2 API functionality, and adding a few classes here
and there. Since wxWindows for 2 produces small binaries (less than 300K for
the statically-linked 'minimal' sample), shoehorning wxWindows 2 into a Windows CE device's limited
storage should not be a problem.<P>
<h3>What compilers are supported?</h3>
Please see the wxWindows 2 for Windows install.txt file for up-to-date information, but
currently the following are known to work:<P>
<ul>
<li>Visual C++ 1.5, 4.0, 5.0, 6.0
<li>Borland C++ 4.5, 5.0
<li>Borland C++Builder 1.0, 3.0
<li>Watcom C++ 10.6 (WIN32)
<li>Cygwin b20
<li>Mingw32
<li>MetroWerks CodeWarrior 4
</ul>
<P>
There is a linking problem with Symantec C++ which I hope someone can help solve.
<P>
<h3>Which is the best compiler to use with wxWindows 2?</h3>
It's partly a matter of taste, but I (JACS) prefer Visual C++ since the debugger is very
good, it's very stable, the documentation is extensive, and it generates small executables.
Since project files are plain text, it's easy for me to generate appropriate project files
for wxWindows samples.<P>
Borland C++ is fine - and very fast - but it's hard (impossible?) to use the debugger without using project files, and
the debugger is nowhere near up to VC++'s quality. The IDE isn't great.<P>
C++Builder's power isn't really used with wxWindows since it needs integration with its
own class library (VCL). For wxWindows, I've only used it with makefiles, in which case
it's almost identical to BC++ 5.0 (the same makefiles can be used).<P>
You can't beat Cygwin's price (free), and you can debug adequately using gdb. However, it's
quite slow to compile since it does not use precompiled headers.<P>
CodeWarrior is cross-platform - you can debug and generate Windows executables from a Mac, but not
the other way around I think - but the IDE is, to my mind, a bit primitive.<P>
Watcom C++ is a little slow and the debugger is not really up to today's standards.<P>
<h3>Is Unicode supported?</h3>
Not yet, although there are other internationalisation features.<P>
However, the issues surrounding Unicode support have been looked into so we know
what we need to do, and have some header files ready to use containing appropriate
type definitions. Just about every file in wxWindows will need changes, due to the
pervasive nature of characters and character arrays. Unicode support is needed
for the port to Windows CE (see above), and will probably be added in time for version 2.1.<P>
<h3>Can you compile wxWindows 2 as a DLL?</h3>
Yes (using the Visual C++ or Borland C++ makefile), but be aware that distributing DLLs is a thorny issue
and you may be better off compiling statically-linked applications, unless you're
delivering a suite of separate programs, or you're compiling a lot of wxWindows applications
and have limited hard disk space.<P>
With a DLL approach, and with different versions and configurations of wxWindows
needing to be catered for, the end user may end up with a host of large DLLs in his or her Windows system directory,
negating the point of using DLLs. Of course, this is not a problem just associated with
wxWindows!
<P>
<H3>How can I reduce executable size?</H3>
You can compile wxWindows as a DLL (see above, VC++/BC++ only at present). You should also
compile your programs for release using non-debugging and space-optimisation options, but
take with VC++ 5/6 space optimisation: it can sometimes cause problems.<P>
Statically-linked wxWindows 2 programs are smaller than wxWindows 1.xx programs, because of the way
wxWindows 2 has been designed to reduce dependencies between classes, and other
techniques. The linker will not include code from the library that is not (directly or
indirectly) referenced
by your application. So for example, the 'minimal' sample is less than 300KB using VC++ 6.<P>
If you want to distribute really small executables, you can
use <a href="http://www.icl.ndirect.co.uk/petite/" target=_top>Petite</a>
by Ian Luck. This nifty utility compresses Windows executables by around 50%, so your 500KB executable
will shrink to a mere 250KB. With this sort of size, there is reduced incentive to
use DLLs.<P>
<H3>Is wxWindows compatible with MFC?</H3>
There is a sample which demonstrates MFC and wxWindows code co-existing in the same
application. However, don't expect to be able to enable wxWindows windows with OLE-2
functionality using MFC.<P>
<H3>Why do I sometimes get bizarre crash problems using VC++ 5/6?</H3>
Some crash problems can be due to inconsistent compiler
options (and of course this isn't limited to wxWindows).
If strange/weird/impossible things start to happen please
check (dumping IDE project file as makefile and doing text comparison
if necessary) that the project settings, especially the list of defined
symbols, struct packing, etc. are exactly the same for all items in
the project. After this, delete everything (including PCH) and recompile.<P>
VC++ 5's optimization code seems to be broken and can
cause problems: this can be seen when deleting an object Dialog
Editor, in Release mode with optimizations on. If in doubt,
switch off optimisations, although this will result in much
larger executables. It seems possible that the library can be created with
strong optimization, so long as the application is not strongly
optimized. For example, in wxWindows project, set to 'Minimum
Size'. In Dialog Editor project, set to 'Customize: Favor Small
Code' (and no others). This will then work.<P>
</font>
</BODY>
</HTML>

File diff suppressed because it is too large Load Diff

View File

@@ -1,222 +0,0 @@
<!-- manual page source format generated by PolyglotMan v3.0.3a12, -->
<!-- available via anonymous ftp from ftp.cs.berkeley.edu:/ucb/people/phelps/tcltk/rman.tar.Z -->
<HTML>
<HEAD>
<TITLE>msgfmt(1) manual page</TITLE>
</HEAD>
<BODY>
<A HREF="#toc">Table of Contents</A><P>
<H2><A NAME="sect0" HREF="#toc0">NAME </A></H2>
msgfmt - create a message object from a message file
<H2><A NAME="sect1" HREF="#toc1">SYNOPSIS
</A></H2>
<B>msgfmt</B> [ <B>-v</B> ] [ <B>-o</B><I> output-file</I> ] ...
<H2><A NAME="sect2" HREF="#toc2">DESCRIPTION </A></H2>
<P>
<B>msgfmt</B> creates message
object files from portable object files (<I>filename<B>.po </B></I>), without changing
the portable object files. <P>
The <B>.po </B> file contains messages displayed to
users by system commands or by application programs. <B>.po</B> files can be edited,
and the messages in them can be rewritten in any language supported by
the system. <P>
The <B><A HREF="http://hoth.stsci.edu/man/man1/xgettext.html">xgettext</B>(1)</A>
command can be used to create <B>.po</B> files from
script or programs. <P>
<B>msgfmt</B> interprets data as characters according to the
current setting of the <FONT SIZE=-1><B>LC_CTYPE </B></FONT>
locale category.
<H3><A NAME="sect3" HREF="#toc3">Portable Object Files
</A></H3>
<P>
Formats for all <B>.po</B> files are the same. Each <B>.po</B> file contains one or
more lines, with each line containing either a comment or a statement.
Comments start the line with a hash mark (#) and end with the newline
character. All comments are ignored. The format of a statement is:
<DL>
<DT><I>directive</I>
value </DT>
<DD></DD>
</DL>
<P>
Each directive starts at the beginning of the line and is separated
from <I>value</I> by white space (such as one or more space or tab characters).
<I>value</I> consists of one or more quoted strings separated by white space.
Use any of the following types of directives: <P>
<blockquote><B>domain</B> <I>domainname</I> <BR>
<B>msgid</B>
<I>message_identifier</I> <BR>
<B>msgstr</B> <I>message_string</I> </blockquote>
<P>
The behavior of the <B>domain</B>
directive is affected by the options used. See <FONT SIZE=-1>OPTIONS</FONT>
for the behavior
when the <B>-o</B> option is specified. If the <B>-o</B> option is not specified, the
behavior of the <B>domain</B> directive is as follows: <blockquote>
<UL>
&#183;<LI>All <I>msgids</I> from the beginning
of each <B>.po</B> file to the first domain directive are put into a default
message object file, <B>messages.mo</B>. </LI>&#183;<LI>When <B>msgfmt</B> encounters a <B>domain</B><I> domainname</I>
directive in the <B>.po</B> file, all following <I>msgids</I> until the next <B>domain</B> directive
are put into the message object file </LI>&#183;<LI>Duplicate <I>msgids</I> are defined in
the scope of each domain. That is, a <I>msgid</I> is considered a duplicate only
if the identical <I>msgid</I> exists in the same domain. </LI>&#183;<LI>All duplicate <I>msgids</I>
are ignored. </LI>
</UL>
</blockquote>
<P>
The <B>msgid</B> directive specifies the value of a message identifier
associated with the directive that follows it. The <I>message_identifier</I> string
identifies a target string to be used at retrieval time. Each statement
containing a <B>msgid</B> directive must be followed by a statement containing
a <B>msgstr</B> directive. <P>
The <B>msgstr</B> directive specifies the target string associated
with the <I>message_identifier</I> string declared in the immediately preceding
<B>msgid</B> directive. <P>
Message strings can contain the escape sequences <B>\n</B> for
newline, <B>\t</B> for tab, <B>\v</B> for vertical tab, <B>\b</B> for backspace, <B>\r</B> for carriage
return, <B>\f</B> for formfeed, <B>\\</B> for backslash, \" for double quote, <B>\ddd</B> for octal
bit pattern, and <B>\xDD</B> for hexadecimal bit pattern.
<H2><A NAME="sect4" HREF="#toc4">OPTIONS </A></H2>
<DL>
<DT><B>-v</B> </DT>
<DD>Verbose.
List duplicate message identifiers. Message strings are not redefined.
</DD>
<DT><B>-o</B><I> output-file</I> </DT>
<DD>Specify output file name as <I>output-file</I>. All <B>domain</B> directives
and duplicate <I>msgids</I> in the <B>.po</B> file are ignored. </DD>
</DL>
<H2><A NAME="sect5" HREF="#toc5">EXAMPLES </A></H2>
In this example
<B>module1.po</B> and <B>module2.po</B> are portable message objects files. <P>
<blockquote> example%
cat module1.po <BR>
# default domain "messages.mo" <BR>
msgid "msg 1" <BR>
msgstr "msg
1 translation" <BR>
# <BR>
domain "help_domain" <BR>
msgid "help 2" <BR>
msgstr "help
2 translation" <BR>
# <BR>
domain "error_domain" <BR>
msgid "error 3" <BR>
msgstr "error
3 translation" <BR>
<P>
example% cat module2.po <BR>
# default domain "messages.mo"
<BR>
msgid "mesg 4" <BR>
msgstr "mesg 4 translation" <BR>
# <BR>
domain "error_domain"
<BR>
msgid "error 5" <BR>
msgstr "error 5 translation" <BR>
# <BR>
domain "window_domain"
<BR>
msgid "window 6" <BR>
msgstr "window 6 translation" <BR>
</blockquote>
<P>
The following command
will produce the output files, <B>messages.mo</B>, <B>help_domain.mo</B>, and <B>error_domain.mo</B>.
<DL>
<DT><B>example% msgfmt module1.po</B> </DT>
<DD></DD>
</DL>
<P>
The following command will produce the output
files, <B>messages.mo</B>, <B>help_domain.mo</B>, <B>error_domain.mo</B>, and <B>window_domain.mo</B>.
<DL>
<DT><B>example% msgfmt module1.po module2.po</B> </DT>
<DD></DD>
</DL>
<P>
The following example will produce
the output file <B>hello.mo</B>.
<DL>
<DT><B>example% msgfmt -o hello.mo module1.po module2.po</B>
</DT>
<DD></DD>
</DL>
<P>
Install message object files in <B>/usr/lib/locale/</B><I>locale</I><B><FONT SIZE=-1>/LC_MESSAGES/</FONT>
</B><I>domain</I><B>.mo</B>
where <I>locale</I> is the message locale as set by <B><A HREF="http://hoth.stsci.edu/man/man3C/setlocale.html">setlocale</B>(3C)</A>
, and <I>domain</I>
is text domain as set by <B>textdomain()</B>. The <B>/usr/lib/locale</B> portion can
optionally be changed by calling <B>bindtextdomain()</B>. See <B><A HREF="http://hoth.stsci.edu/man/man3C/gettext.html">gettext</B>(3C)</A>
.
<H2><A NAME="sect6" HREF="#toc6">ENVIRONMENT
</A></H2>
See <B><A HREF="http://hoth.stsci.edu/man/man5/environ.html">environ</B>(5)</A>
for descriptions of the following environmental variables
that affect the execution of <B>msgfmt</B>: <FONT SIZE=-1><B>LC_CTYPE</FONT>
</B>, <FONT SIZE=-1><B>LC_MESSAGES</FONT>
</B>, <FONT SIZE=-1><B>NLSPATH</FONT>
</B>.
<H2><A NAME="sect7" HREF="#toc7">ATTRIBUTES </A></H2>
See <B><A HREF="http://hoth.stsci.edu/man/man5/attributes.html">attributes</B>(5)</A>
for descriptions of the following attributes:
<P>
<TABLE BORDER=0>
<TR> <TD ALIGN=CENTER><B>ATTRIBUTE TYPE</B> </TD> <TD ALIGN=CENTER><B>ATTRIBUTE VALUE</B> </TD> </TR>
<TR> <TR> <TD ALIGN=LEFT>Availability </TD> <TD ALIGN=LEFT>SUNWloc </TD> </TR>
<TR> <TD ALIGN=LEFT>CSI
</TD> <TD ALIGN=LEFT>Enabled </TD> </TR>
</TABLE>
<H2><A NAME="sect8" HREF="#toc8">SEE ALSO </A></H2>
<B><A HREF="http://hoth.stsci.edu/man/man1/xgettext.html">xgettext</B>(1)</A>
, <B><A HREF="http://hoth.stsci.edu/man/man3C/gettext.html">gettext</B>(3C)</A>
, <B><A HREF="http://hoth.stsci.edu/man/man3C/setlocale.html">setlocale</B>(3C)</A>
, <B><A HREF="http://hoth.stsci.edu/man/man5/attributes.html">attributes</B>(5)</A>
,
<B><A HREF="http://hoth.stsci.edu/man/man5/environ.html">environ</B>(5)</A>
<H2><A NAME="sect9" HREF="#toc9">NOTES </A></H2>
<P>
Neither <B>msgfmt</B> nor any <B>gettext()</B> routine imposes a limit
on the total length of a message. However, each line in the <B>*.po</B> file is
limited to <FONT SIZE=-1><B>MAX_INPUT </B></FONT>
(512) bytes. <P>
Installing message catalogs under the
C locale is pointless, since they are ignored for the sake of efficiency.
<P>
<HR><P>
<A NAME="toc"><B>Table of Contents</B></A><P>
<UL>
<LI><A NAME="toc0" HREF="#sect0">NAME</A></LI>
<LI><A NAME="toc1" HREF="#sect1">SYNOPSIS</A></LI>
<LI><A NAME="toc2" HREF="#sect2">DESCRIPTION</A></LI>
<UL>
<LI><A NAME="toc3" HREF="#sect3">Portable Object Files</A></LI>
</UL>
<LI><A NAME="toc4" HREF="#sect4">OPTIONS</A></LI>
<LI><A NAME="toc5" HREF="#sect5">EXAMPLES</A></LI>
<LI><A NAME="toc6" HREF="#sect6">ENVIRONMENT</A></LI>
<LI><A NAME="toc7" HREF="#sect7">ATTRIBUTES</A></LI>
<LI><A NAME="toc8" HREF="#sect8">SEE ALSO</A></LI>
<LI><A NAME="toc9" HREF="#sect9">NOTES</A></LI>
</UL>
</BODY></HTML>

View File

@@ -1,144 +0,0 @@
<!-- manual page source format generated by PolyglotMan v3.0.3a12, -->
<!-- available via anonymous ftp from ftp.cs.berkeley.edu:/ucb/people/phelps/tcltk/rman.tar.Z -->
<HTML>
<HEAD>
<TITLE>xgettext(1) manual page</TITLE>
</HEAD>
<BODY>
<A HREF="#toc">Table of Contents</A><P>
<H2><A NAME="sect0" HREF="#toc0">NAME </A></H2>
xgettext - extract gettext call strings from C programs
<H2><A NAME="sect1" HREF="#toc1">SYNOPSIS
</A></H2>
<B>xgettext</B> [ <B>-ns</B> ] [ <B>-a</B> [ <B>-x</B><I> exclude-file</I> ] ] [ <B>-c</B><I> comment-tag</I> ] [ <B>-d</B><I> default-domain</I>
] [ <B>-j</B> ] [ <B>-m</B><I> prefix</I> ] [ <B>-M</B><I> suffix</I> ] [ <B>-p</B><I> pathname</I> ] <B>-</B>| <I>filename</I> ... <BR>
<B>xgettext</B>
<B>-h</B>
<H2><A NAME="sect2" HREF="#toc2">DESCRIPTION </A></H2>
<P>
<B>xgettext</B> is used to automate the creation of portable
message files (<B>.po</B>). A <B>.po</B> file contains copies of `C' strings that are found
in ANSI C source code in <I>filename</I> or the standard input if `<B>-</B>' is specified
on the command line. The <B>.po</B> file can be used as input to the <B><A HREF="http://hoth.stsci.edu/man/man1/msgfmt.html">msgfmt</B>(1)</A>
utility, which produces a binary form of the message file that can be
used by application during run-time. <P>
<B>xgettext</B> writes <I>msgid</I> strings from
<B><A HREF="http://hoth.stsci.edu/man/man3C/gettext.html">gettext</B>(3C)</A>
calls in <I>filename</I> to the default output file <B>messages.po</B>. The
default output file name can be changed by <B>-d</B> option. <I>msgid</I> strings in
<B>dgettext()</B> calls are written to the output file where <I>domainname</I> is the
first parameter to the <B>dgettext()</B> call. <P>
By default, <B>xgettext</B> creates a
<B>.po</B> file in the current working directory, and each entry is in the same
order the strings are extracted from <I>filenames</I>. When the <B>-p</B> option is specified,
the <B>.po</B> file is created in the <I>pathname</I> directory. An existing <B>.po</B> file
is overwritten. <P>
Duplicate <I>msgid</I>s are written to the <B>.po</B> file as comment
lines. When the <B>-s </B> option is specified, the <B>.po</B> is sorted by the <I>msgid</I>
string, and all duplicated <I>msgid</I>s are removed. All <I>msgstr</I> directives in
the <B>.po</B> file are empty unless the <B>-m </B> option is used.
<H2><A NAME="sect3" HREF="#toc3">OPTIONS </A></H2>
<DL>
<DT><B>-n</B> </DT>
<DD>Add comment
lines to the output file indicating file name and line number in the source
file where each extracted string is encountered. These lines appear before
each <I>msgid</I> in the following format: <blockquote><B>#</B> <B># File: </B><I>filename</I><B>, line: </DD>
</DL>
</B><I>line-number</I>
</blockquote>
<DL>
<DT><B>-s</B> </DT>
<DD>Generate output sorted by <I>msgid</I>s with all duplicate <I>msgid</I>s removed.
</DD>
<DT><B>-a</B> </DT>
<DD>Extract all strings, not just those found in <B><A HREF="http://hoth.stsci.edu/man/man3C/gettext.html">gettext</B>(3C)</A>
, and <B>dgettext
()</B> calls. Only one <B>.po</B> file is created. </DD>
<DT><B>-c</B><I> comment-tag</I> </DT>
<DD>The comment block
beginning with <I>comment-tag</I> as the first token of the comment block is
added to the output <B>.po</B> file as <I>#</I> delimited comments. For multiple domains,
<B>xgettext</B> directs comments and messages to the prevailing text domain. </DD>
<DT><B>-d</B><I>
default-domain</I> </DT>
<DD>Rename default output file from <B>messages.po</B> to <I>default-domain</I>
<B>.po</B>. </DD>
<DT><B>-j</B> </DT>
<DD>Join messages with existing message files. If a <B>.po</B> file does not
exist, it is created. If a <B>.po</B> file does exist, new messages are appended.
Any duplicate <B>msgid</B>s are commented out in the resulting <B>.po</B> file. Domain
directives in the existing <B>.po</B> file are ignored. Results not guaranteed
if the existing message file has been edited. </DD>
<DT><B>-m</B><I> prefix</I> </DT>
<DD>Fill in the <I>msgstr</I>
with <I>prefix</I>. This is useful for debugging purposes. To make <I>msgstr</I> identical
to <I>msgid</I>, use an empty string (<B>"" </B>) for <I>prefix</I>. </DD>
<DT><B>-M</B><I> suffix</I> </DT>
<DD>Fill in the
<I>msgstr</I> with <I>suffix</I>. This is useful for debugging purposes. </DD>
<DT><B>-p</B><I> pathname</I>
</DT>
<DD>Specify the directory where the output files will be placed. This option
overrides the current working directory. <BR>
</DD>
<DT><B>-x</B><I> exclude-file</I> </DT>
<DD>Specify a <B>.po</B>
file that contains a list of <I>msgid</I>s that are not to be extracted from
the input files. The format of <I>exclude-file</I> is identical to the <B>.po</B> file.
However, only the <I>msgid</I> directive line in <I>exclude-file</I> is used. All other
lines are simply ignored. The <B>-x</B> option can only be used with the <B>-a</B> option.
</DD>
<DT><B>-h</B> </DT>
<DD>Print a help message on the standard output. </DD>
</DL>
<H2><A NAME="sect4" HREF="#toc4">ATTRIBUTES </A></H2>
See <B><A HREF="http://hoth.stsci.edu/man/man5/attributes.html">attributes</B>(5)</A>
for descriptions of the following attributes: <P>
<TABLE BORDER=0>
<TR> <TD ALIGN=CENTER><B>ATTRIBUTE TYPE</B> </TD> <TD ALIGN=CENTER><B>ATTRIBUTE
VALUE</B> </TD> </TR>
<TR> <TR> <TD ALIGN=LEFT>Availability </TD> <TD ALIGN=LEFT>SUNWloc </TD> </TR>
</TABLE>
<H2><A NAME="sect5" HREF="#toc5">SEE ALSO </A></H2>
<B><A HREF="http://hoth.stsci.edu/man/man1/msgfmt.html">msgfmt</B>(1)</A>
, <B><A HREF="http://hoth.stsci.edu/man/man3C/gettext.html">gettext</B>(3C)</A>
, <B><A HREF="http://hoth.stsci.edu/man/man5/attributes.html">attributes</B>(5)</A>
<H2><A NAME="sect6" HREF="#toc6">NOTES </A></H2>
<B>xgettext</B> is not able to extract cast strings, for example ANSI
C casts of literal strings to <B>(const char *)</B>. This is unnecessary anyway,
since the prototypes in <B>&lt;libintl.h&gt;</B> already specify this type. <P>
<HR><P>
<A NAME="toc"><B>Table of Contents</B></A><P>
<UL>
<LI><A NAME="toc0" HREF="#sect0">NAME</A></LI>
<LI><A NAME="toc1" HREF="#sect1">SYNOPSIS</A></LI>
<LI><A NAME="toc2" HREF="#sect2">DESCRIPTION</A></LI>
<LI><A NAME="toc3" HREF="#sect3">OPTIONS</A></LI>
<LI><A NAME="toc4" HREF="#sect4">ATTRIBUTES</A></LI>
<LI><A NAME="toc5" HREF="#sect5">SEE ALSO</A></LI>
<LI><A NAME="toc6" HREF="#sect6">NOTES</A></LI>
</UL>
</BODY></HTML>

View File

@@ -1,267 +0,0 @@
<HTML>
<HEAD>
<TITLE>wxWindows Documentation</TITLE>
</HEAD>
<!BODY BGCOLOR="#FFFFFF" TEXT=#000000 LINK=#FF0000 VLINK=#000000>
<BODY BGCOLOR="#CCDDDFF" TEXT=#000000 LINK=#FF0000 VLINK=#000000>
<font face="Arial, Lucida Sans, Helvetica">
<a name="top"></a>
<table width=100% border=4 cellpadding=5 cellspacing=0>
<tr>
<td bgcolor="#660000">
<font size=+1 face="Arial, Lucida Sans, Helvetica" color="#FFFFFF">
<IMG src="logo.gif" align=right>
<!-- wxWindows Documentation -->
</font>
</td>
</tr>
</table>
<P>
Welcome to wxWindows 2, the premi&egrave;re cross-platform GUI C++ framework. This is an index of
the plain text, HTML, Windows Help and Acrobat documentation: availability depends on what you've
downloaded from the <a href="http://www.wxwindows.org">wxWindows Web site</a>.<P>
<CENTER>
<FONT size=-1>
[<a href="#install">Install</a>]
[<a href="#manuals">Manuals</a>]
[<a href="#thirdparty">3rd party tools</a>]
[<a href="#samples">Samples</a>]
</FONT>
</CENTER>
<h3 align=center><a name="install"><hr>Installation and release notes<hr></a></h3>
<ul>
<li>ReadMe: <a href="../readme.txt"><b>General ReadMe</b></a>,
<a href="../gtk/readme.txt">wxGTK</a>,
<a href="../motif/readme.txt">wxMotif</a>,
<a href="../msw/readme.txt">wxMSW</a>
<li>Installation: <a href="../gtk/install.txt">wxGTK</a>,
<a href="../motif/install.txt">wxMotif</a>,
<a href="../msw/install.txt">wxMSW</a>
<li><a href="../changes.txt"><b>Change log</b></a>
<li><a href="../bugs.txt"><b>Buglist</b></a>
<li>Licence: <a href="../preamble.txt">Preamble</a>,
<a href="../licence.txt">Licence</a>,
<a href="../licendoc.txt">Documentation Licence</a>,
<a href="../lgpl.txt">L-GPL</a>,
<a href="../gpl.txt">GPL</a>
<li><a href="faq.htm"><B>FAQ</B></a>:
<ul>
<li><a href="faqgen.htm">General questions</a>
<li><a href="faqgtk.htm">wxWindows 2 for GTK</a>
<li><a href="faqmsw.htm">wxWindows 2 for Windows</a>
<li><a href="faqmot.htm">wxWindows 2 for Motif</a>
<li><a href="faqmac.htm">wxWindows 2 for Mac</a>
</ul>
<li>ToDo: <a href="../todo.txt"><b>General ToDo</b></a>,
<a href="../gtk/todo.txt">wxGTK</a>,
<a href="../motif/todo.txt">wxMotif</a>,
<a href="../msw/todo.txt">wxMSW</a>
<li>List of <a href="../symbols.txt">preprocessor symbols</a> used in wxWindows
</ul>
<h3 align=center><a name="manuals"><hr>wxWindows manuals<hr></a></h3>
<table border=1 align=center>
<tr>
<td align=center bgcolor="#FFFF00">
<B>HTML</B>
</td>
<td align=center bgcolor="#FFFF00">
<B>WinHelp</B>
</td>
<td align=center bgcolor="#FFFF00">
<B>PDF</B>
</td>
</tr>
<tr>
<td align=center>
<a href="wx/wx.htm">Reference Manual</a>
</td>
<td align=center>
<a href="../winhelp/wx.hlp">Reference Manual</a>
</td>
<td align=center>
<a href="../pdf/wx.pdf">Reference Manual</a>
</td>
</tr>
<tr>
<td align=center>
<a href="porting/port.htm">Porting Guide</a>
</td>
<td align=center>
<a href="../winhelp/porting.hlp">Porting Guide</a>
</td>
<td align=center>
<a href="../pdf/porting.pdf">Porting Guide</a>
</td>
</tr>
<tr>
<td align=center>
<a href="dialoged/dlged.htm">Dialog Editor Manual</a>
</td>
<td align=center>
<a href="../winhelp/dialoged.hlp">Dialog Editor Manual</a>
</td>
<td align=center>
<a href="../pdf/dialoged.pdf">Dialog Editor Manual</a>
</td>
</tr>
<tr>
<td align=center>
<a href="proplist/prop.htm">Property List Classes</a>
</td>
<td align=center>
<a href="../winhelp/proplist.hlp">Propert List Classes</a>
</td>
<td align=center>
<a href="../pdf/proplist.pdf">Property List Classes</a>
</td>
</tr>
<tr>
<td align=center>
<a href="wxtree/tree.htm">wxTreeLayout Class</a>
</td>
<td align=center>
<a href="../winhelp/wxtree.hlp">wxTreeLayout Class</a>
</td>
<td align=center>
<a href="../pdf/wxtree.pdf">wxTreeLayout Class</a>
</td>
</tr>
<tr>
<td align=center>
<a href="odbc/odbc.htm">Remstar ODBC Classes</a>
</td>
<td align=center>
<BR><BR>
</td>
<td align=center>
<a href="../pdf/odbc.pdf">Remstar ODBC Classes</a>
</td>
</tr>
</table>
<h3 align=center><a name="thirdparty"><hr>Third-party tools<hr></a></h3>
<ul>
<li><a href="gettext/gettext.htm">gettext Manual</a>
<li><a href="gettext/xgettext.htm">xgettext Manual</a>
<li><a href="gettext/msgfmt.htm">msgfmt Manual</a>
</ul>
<h3 align=center><a name="samples"><hr>Samples<hr></a></h3>
<ul>
<li><a href="../../samples/bombs">bombs</a>: minesweeper-like game.
<li><a href="../../samples/checklst">checklst</a>: demonstrates wxCheckListBox on
supported platforms (currently Windows and GTK only).
<li><a href="../../samples/config">config</a>: demonstrates use of wxConfig, which
defaults to wxRegConfig on WIN32, wxIniConfig on WIN16, and wxFileConfig on other platforms.
<li><a href="../../samples/controls">controls</a>: sample showing a variety of controls, including
wxNotebook.
<li><a href="../../samples/db">db</a>: wxDB ODBC sample.
<li><a href="../../samples/dde">dde</a>: shows the DDE protocol in action, both using real
DDE on Windows, and TCP/IP on all platforms. Edit <a href="../../samples/dde/ddesetup.h">ddesetup.h</a>
to switch between compilation modes. Currently the TCP/IP mode needs a bit of work.
<li><a href="../../samples/dialogs">dialogs</a>: shows some of the common dialogs available -- wxFontDialog,
wxColourDialog, wxFileDialog, wxDirDialog, wxMessageBox, wxTextEntryDialog, wxSingleChoiceDialog.
For printing-related dialogs, see the printing sample.
<li><a href="../../samples/dnd">dnd</a>: demonstrates drag and drop on supported platforms.
<li><a href="../../samples/docview">docview</a>: demonstrates use of the document view classes,
using wxFrame.
<li><a href="../../samples/docvwmdi">docvwmdi</a>: : demonstrates use of the document view classes,
using wxMDIParentFrame, wxMDIChildFrame.
<li><a href="../../samples/dynamic">dynamic</a>: shows how to connect events to member functions
dynamically.
<li><a href="../../samples/forty">forty</a>: a great little card game by Chris Breeze. A
fully-fledged application!
<li><a href="../../samples/fractal">fractal</a>: fractal mountains by Andrew Davison.
<li><a href="../../samples/grid">grid</a>: demonstrates the wxGrid class.
<li><a href="../../samples/help">help</a>: shows how to use wxHelpController.
<li><a href="../../samples/image">image</a>: shows off the cross-platform wxImage class.
<li><a href="../../samples/internat">internat</a>: use of wxWindows' internationalization support.
<li><a href="../../samples/joytest">joytest</a>: tests the wxJoystick class (currently Windows and GTK only).
<li><a href="../../samples/layout">layout</a>: shows the constraint layout system in action.
<li><a href="../../samples/listctrl">listctrl</a>: demonstrates the wxListCtrl (implemented natively on
WIN32, and using a generic version on other platforms).
<li><a href="../../samples/mdi">mdi</a>: shows off the MDI (Multiple Document Interface) classes. On Windows, the regular MDI
scheme is used whereby child windows have full sizing and moving rights within the main
window. On other platforms, tabbed windows are used, where the children are always maximized.
<li><a href="../../samples/memcheck">memcheck</a>: demonstrates the memory checking/debugging facilities.
<li><a href="../../samples/mfc">mfc</a>: shows how to use MFC and wxWindows code in the same application (Windows only).
To compile this, you must edit include/wx/wxprec.h, comment out the windows.h inclusion, and recompile wxWindows.
<li><a href="../../samples/minifram">minifram</a>: demonstrates a frame with a small title bar. On
platforms that don't support it, a normal-sized title bar is displayed.
<li><a href="../../samples/minimal">minimal</a>: just shows a frame, a menubar, and a statusbar. About as
small a wxWindows application as you can get.
<li><a href="../../samples/nativdlg">nativdlg</a>: shows how wxWindows can load a standard Windows
dialog resource, translating the controls into wxWindows controls (Windows only).
<li><a href="../../samples/notebook">notebook</a>: shows the wxNotebook (tabbed window) control.
<li><a href="../../samples/oleauto">oleauto</a>: a little OLE automation controller (Windows only; requires
Excel to be present).
<li><a href="../../samples/ownerdrw">ownerdrw</a>: demonstrates owner-draw menus and controls (Windows only).
<li><a href="../../samples/png">png</a>: demonstrates PNG loading.
<li><a href="../../samples/printing">printing</a>: shows printing and previewing.
<li><a href="../../samples/proplist">proplist</a>: demonstrates the property list classes (a VB-style property editor).
<li><a href="../../samples/regtest">regtest</a>: tests the low-level Windows registry functions (Windows only).
<li><a href="../../samples/resource">resource</a>: shows how to use wxWindows resources (.wxr files).
<li><a href="../../samples/sashtest">sashtest</a>: demonstrates use of the wxSashWindow class to allow
the user to resize subwindows.
<li><a href="../../samples/splitter">splitter</a>: demonstrates the wxSplitterWindow class.
<li><a href="../../samples/tab">tab</a>: demonstrates the generic tab window class. You should
normally use wxNotebook instead, but the generic code is sometimes useful, for example for
implementing wxNotebook on platforms with no native support.
<li><a href="../../samples/taskbar">taskbar</a>: demonstrates the wxTaskBarIcon class, for
adding icons to the system tray. Windows only, but may eventually be implemented for other desktop
environments that use this metaphor.
<li><a href="../../samples/thread">thread</a>: tests the family of classes for doing thread
programming.
<li><a href="../../samples/toolbar">toolbar</a>: demonstrates wxToolBar.
<li><a href="../../samples/treectrl">treectrl</a>: demonstrates wxTreeCtrl.
<li><a href="../../samples/typetest">typetest</a>: tests various data type classes, including
wxTime, wxDate and wxVariant.
<li><a href="../../samples/validate">validate</a>: shows simple use of validation.
<li><a href="../../samples/wxpoem">wxpoem</a>: a little poetry display program.
<li><a href="../../samples/wxsocket">wxsocket</a>: demonstrates the TCP/IP family of classes.
</ul>
<hr>
</font>
</BODY>
</HTML>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 KiB

View File

@@ -1,37 +0,0 @@
<HTML>
<HEAD>
<TITLE>Welcome to wxWindows 2</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT=#000000 LINK=#FF0000 VLINK=#000000>
<font face="Arial, Lucida Sans, Helvetica">
<a name="top"></a>
<table width=100% border=4 cellpadding=5 cellspacing=0>
<tr>
<td bgcolor="#660000">
<font size=+1 face="Arial, Lucida Sans, Helvetica" color="#FFFFFF">
Welcome to wxWindows 2
</font>
</td>
</tr>
</table>
<P>
Welcome to wxWindows 2, the premiere cross-platform GUI C++ framework.<P>
Please click on <a href="html/index.htm">docs/html/index.htm</a> to view the main document index.<P>
Have fun!<P>
</font>
</BODY>
</HTML>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 225 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 242 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 198 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 231 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 109 B

View File

@@ -1,16 +0,0 @@
[OPTIONS]
TITLE=wxWindows Porting Guide
CONTENTS=Contents
COMPRESS=HIGH
[FILES]
porting.rtf
[CONFIG]
CreateButton("Up", "&Up", "JumpId(`porting.hlp', `Contents')")
BrowseButtons()
[MAP]
[BITMAPS]

View File

@@ -1,498 +0,0 @@
\documentstyle[a4,makeidx,verbatim,texhelp,fancyhea,mysober,mytitle]{report}
\newcommand{\indexit}[1]{#1\index{#1}}%
\newcommand{\pipe}[0]{$\|$\ }%
\definecolour{black}{0}{0}{0}%
\definecolour{cyan}{0}{255}{255}%
\definecolour{green}{0}{255}{0}%
\definecolour{magenta}{255}{0}{255}%
\definecolour{red}{255}{0}{0}%
\definecolour{blue}{0}{0}{200}%
\definecolour{yellow}{255}{255}{0}%
\definecolour{white}{255}{255}{255}%
\input psbox.tex
\parskip=10pt
\parindent=0pt
\title{Guide to porting applications from wxWindows 1.xx to 2.0}
\author{Julian Smart}
\date{March 1999}
\makeindex
\begin{document}
\maketitle
\pagestyle{fancyplain}
\bibliographystyle{plain}
\setheader{{\it CONTENTS}}{}{}{}{}{{\it CONTENTS}}
\setfooter{\thepage}{}{}{}{}{\thepage}%
\pagenumbering{roman}
\tableofcontents
%
\chapter{About this document}\label{about}
\pagenumbering{arabic}%
\setheader{{\it Porting guide}}{}{}{}{}{{\it Porting guide}}%
\setfooter{\thepage}{}{}{}{}{\thepage}%
This document gives guidelines and tips for porting applications from
version 1.xx of wxWindows to version 2.0.
The first section offers tips for writing 1.xx applications in a way to
minimize porting time. The following sections detail the changes and
how you can modify your application to be 2.0-compliant.
You may be worrying that porting to 2.0 will be a lot of work,
particularly if you have only recently started using 1.xx. In fact,
the wxWindows 2.0 API has far more in common with 1.xx than it has differences.
The main challenges are using the new event system, doing without the default
panel item layout, and the lack of automatic labels in some controls.
Please don't be freaked out by the jump to 2.0! For one thing, 1.xx is still available
and will be supported by the user community for some time. And when you have
changed to 2.0, we hope that you will appreciate the benefits in terms
of greater flexibility, better user interface aesthetics, improved C++ conformance,
improved compilation speed, and many other enhancements. The revised architecture
of 2.0 will ensure that wxWindows can continue to evolve for the forseeable
future.
{\it Please note that this document is a work in progress.}
\chapter{Preparing for version 2.0}\label{preparing}
Even before compiling with version 2.0, there's also a lot you can do right now to make porting
relatively simple. Here are a few tips.
\begin{itemize}
\item {\bf Use constraints or .wxr resources} for layout, rather than the default layout scheme.
Constraints should be the same in 2.0, and resources will be translated.
\item {\bf Use separate wxMessage items} instead of labels for wxText, wxMultiText,
wxChoice, wxComboBox. These labels will disappear in 2.0. Use separate
wxMessages whether you're creating controls programmatically or using
the dialog editor. The future dialog editor will be able to translate
from old to new more accurately if labels are separated out.
\item {\bf Parameterise functions that use wxDC} or derivatives, i.e. make the wxDC
an argument to all functions that do drawing. Minimise the use of
wxWindow::GetDC and definitely don't store wxDCs long-term
because in 2.0, you can't use GetDC() and wxDCs are not persistent.
You will use wxClientDC, wxPaintDC stack objects instead. Minimising
the use of GetDC() will ensure that there are very few places you
have to change drawing code for 2.0.
\item {\bf Don't set GDI objects} (wxPen, wxBrush etc.) in windows or wxCanvasDCs before they're
needed (e.g. in constructors) - do so within your drawing routine instead. In
2.0, these settings will only take effect between the construction and destruction
of temporary wxClient/PaintDC objects.
\item {\bf Don't rely} on arguments to wxDC functions being floating point - they will
be 32-bit integers in 2.0.
\item {\bf Don't use the wxCanvas member functions} that duplicate wxDC functions, such as SetPen and DrawLine, since
they are going.
\item {\bf Using member callbacks} called from global callback functions will make the transition
easier - see the FAQ
for some notes on using member functions for callbacks. wxWindows 2.0 will banish global
callback functions (and OnMenuCommand), and nearly all event handling will be done by functions taking a single event argument.
So in future you will have code like:
{\small\begin{verbatim}
void MyFrame::OnOK(wxCommandEvent& event)
{
...
}
\end{verbatim}
}%
You may find that writing the extra code to call a member function isn't worth it at this stage,
but the option is there.
\item {\bf Use wxString wherever possible.} 2.0 replaces char * with wxString
in most cases, and if you use wxString to receive strings returned from
wxWindows functions (except when you need to save the pointer if deallocation is required), there should
be no conversion problems later on.
\item Be aware that under Windows, {\bf font sizes will change} to match standard Windows
font sizes (for example, a 12-point font will appear bigger than before). Write your application
to be flexible where fonts are concerned.
Don't rely on fonts being similarly-sized across platforms, as they were (by chance) between
Windows and X under wxWindows 1.66. Yes, this is not easy... but I think it's better to conform to the
standards of each platform, and currently the size difference makes it difficult to
conform to Windows UI standards. You may eventually wish to build in a global 'fudge-factor' to compensate
for size differences. The old font sizing will still be available via wx\_setup.h, so do not panic...
\item {\bf Consider dropping wxForm usage}:
wxPropertyFormView can be used in a wxForm-like way, except that you specify a pre-constructed panel
or dialog; or you can use a wxPropertyListView to show attributes in a scrolling list - you don't even need
to lay panel items out.
Because wxForm uses a number of features to be dropped in wxWindows 2.0, it cannot be
supported in the future, at least in its present state.
\item {\bf When creating a wxListBox}, put the wxLB\_SINGLE, wxLB\_MULTIPLE, wxLB\_EXTENDED styles in the window style parameter, and put
zero in the {\it multiple} parameter. The {\it multiple} parameter will be removed in 2.0.
\item {\bf For MDI applications}, don't reply on MDI being run-time-switchable in the way that the
MDI sample is. In wxWindows 2.0, MDI functionality is separated into distinct classes.
\end{itemize}
\chapter{The new event system}\label{eventsystem}
The way that events are handled has been radically changed in wxWindows 2.0. Please
read the topic `Event handling overview' in the wxWindows 2.0 manual for background
on this.
\section{Callbacks}
Instead of callbacks for panel items, menu command events, control commands and other events are directed to
the originating window, or an ancestor, or an event handler that has been plugged into the window
or its ancestor. Event handlers always have one argument, a derivative of wxEvent.
For menubar commands, the {\bf OnMenuCommand} member function will be replaced by a series of separate member functions,
each of which responds to a particular command. You need to add these (non-virtual) functions to your
frame class, add a DECLARE\_EVENT\_TABLE entry to the class, and then add an event table to
your implementation file, as a BEGIN\_EVENT\_TABLE and END\_EVENT\_TABLE block. The
individual event mapping macros will be of the form:
\begin{verbatim}
BEGIN_EVENT_TABLE(MyFrame, wxFrame)
EVT_MENU(MYAPP_NEW, MyFrame::OnNew)
EVT_MENU(wxID_EXIT, MyFrame::OnExit)
END_EVENT_TABLE()
\end{verbatim}
Control commands, such as button commands, can be routed to a derived button class,
the parent window, or even the frame. Here, you use a function of the form EVT\_BUTTON(id, func).
Similar macros exist for other control commands.
\section{Other events}
To intercept other events, you used to override virtual functions, such as OnSize. Now, while you can use
the OnSize name for such event handlers (or any other name of your choice), it has only a single argument
(wxSizeEvent) and must again be `mapped' using the EVT\_SIZE macro. The same goes for all other events,
including OnClose (although in fact you can still use the old, virtual form of OnClose for the time being).
\chapter{Class hierarchy}\label{classhierarchy}
The class hierarchy has changed somewhat. wxToolBar and wxButtonBar
classes have been split into several classes, and are derived from wxControl (which was
called wxItem). wxPanel derives from wxWindow instead of from wxCanvas, which has
disappeared in favour of wxScrolledWindow (since all windows are now effectively canvases
which can be drawn into). The status bar has become a class in its own right, wxStatusBar.
There are new MDI classes so that wxFrame does not have to be overloaded with this
functionality.
There are new device context classes, with wxPanelDC and wxCanvasDC disappearing.
See \helpref{Device contexts and painting}{dc}.
\chapter{GDI objects}\label{gdiobjects}
These objects - instances of classes such as wxPen, wxBrush, wxBitmap (but not wxColour) -
are now implemented with reference-counting. This makes assignment a very cheap operation,
and also means that management of the resource is largely automatic. You now pass {\it references} to
objects to functions such as wxDC::SetPen, not pointers, so you will need to derefence your pointers.
The device context does not store a copy of the pen
itself, but takes a copy of it (via reference counting), and the object's data gets freed up
when the reference count goes to zero. The application does not have to worry so much about
who the object belongs to: it can pass the reference, then destroy the object without
leaving a dangling pointer inside the device context.
For the purposes of code migration, you can use the old style of object management - maintaining
pointers to GDI objects, and using the FindOrCreate... functions. However, it is preferable to
keep this explicit management to a minimum, instead creating objects on the fly as needed, on the stack,
unless this causes too much of an overhead in your application.
At a minimum, you will have to make sure that calls to SetPen, SetBrush etc. work. Also, where you pass NULL to these
functions, you will need to use an identifier such as wxNullPen or wxNullBrush.
\chapter{Dialogs and controls}\label{dialogscontrols}
\wxheading{Labels}
Most controls no longer have labels and values as they used to in 1.xx. Instead, labels
should be created separately using wxStaticText (the new name for wxMessage). This will
need some reworking of dialogs, unfortunately; programmatic dialog creation that doesn't
use constraints will be especially hard-hit. Perhaps take this opportunity to make more
use of dialog resources or constraints. Or consider using the wxPropertyListView class
which can do away with dialog layout issues altogether by presenting a list of editable
properties.
\wxheading{Constructors}
All window constructors have two main changes, apart from the label issue mentioned above.
Windows now have integer identifiers; and position and size are now passed as wxPoint and
wxSize objects. In addition, some windows have a wxValidator argument.
\wxheading{Show versus ShowModal}
If you have used or overridden the {\bf wxDialog::Show} function in the past, you may find
that modal dialogs no longer work as expected. This is because the function for modal showing
is now {\bf wxDialog:ShowModal}. This is part of a more fundamental change in which a
control may tell the dialog that it caused the dismissal of a dialog, by
calling {\bf wxDialog::EndModal} or {\bf wxWindow::SetReturnCode}. Using this
information, {\bf ShowModal} now returns the id of the control that caused dismissal,
giving greater feedback to the application than just TRUE or FALSE.
If you overrode or called {\bf wxDialog::Show}, use {\bf ShowModal} and test for a returned identifier,
commonly wxID\_OK or wxID\_CANCEL.
\wxheading{wxItem}
This is renamed wxControl.
\wxheading{wxText, wxMultiText and wxTextWindow}
These classes no longer exist and are replaced by the single class wxTextCtrl.
Multi-line text items are created using the wxTE\_MULTILINE style.
\wxheading{wxButton}
Bitmap buttons are now a separate class, instead of being part of wxBitmap.
\wxheading{wxMessage}
Bitmap messages are now a separate class, wxStaticBitmap, and wxMessage
is renamed wxStaticText.
\wxheading{wxGroupBox}
wxGroupBox is renamed wxStaticBox.
\wxheading{wxForm}
Note that wxForm is no longer supported in wxWindows 2.0. Consider using the wxPropertyFormView class
instead, which takes standard dialogs and panels and associates controls with property objects.
You may also find that the new validation method, combined with dialog resources, is easier
and more flexible than using wxForm.
\chapter{Device contexts and painting}\label{dc}
In wxWindows 2.0, device contexts are used for drawing into, as per 1.xx, but the way
they are accessed and constructed is a bit different.
You no longer use {\bf GetDC} to access device contexts for panels, dialogs and canvases.
Instead, you create a temporary device context, which means that any window or control can be drawn
into. The sort of device context you create depends on where your code is called from. If
painting within an {\bf OnPaint} handler, you create a wxPaintDC. If not within an {\bf OnPaint} handler,
you use a wxClientDC or wxWindowDC. You can still parameterise your drawing code so that it
doesn't have to worry about what sort of device context to create - it uses the DC it is passed
from other parts of the program.
You {\bf must } create a wxPaintDC if you define an OnPaint handler, even if you do not
actually use this device context, or painting will not work correctly under Windows.
If you used device context functions with wxPoint or wxIntPoint before, please note
that wxPoint now contains integer members, and there is a new class wxRealPoint. wxIntPoint
no longer exists.
wxMetaFile and wxMetaFileDC have been renamed to wxMetafile and wxMetafileDC.
\chapter{Miscellaneous}
\section{Strings}
wxString has replaced char* in the majority of cases. For passing strings into functions,
this should not normally require you to change your code if the syntax is otherwise the
same. This is because C++ will automatically convert a char* or const char* to a wxString by virtue
of appropriate wxString constructors.
However, when a wxString is returned from a function in wxWindows 2.0 where a char* was
returned in wxWindows 1.xx, your application will need to be changed. Usually you can
simplify your application's allocation and deallocation of memory for the returned string,
and simply assign the result to a wxString object. For example, replace this:
{\small\begin{verbatim}
char* s = wxFunctionThatReturnsString();
s = copystring(s); // Take a copy in case it's temporary
.... // Do something with it
delete[] s;
\end{verbatim}
}
with this:
{\small\begin{verbatim}
wxString s = wxFunctionThatReturnsString();
.... // Do something with it
\end{verbatim}
}
To indicate an empty return value or a problem, a function may return either the
empty string (``") or a null string. You can check for a null string with wxString::IsNull().
\section{Use of const}
The {\bf const} keyword is now used to denote constant functions that do not affect the
object, and for function arguments to denote that the object passed cannot be changed.
This should not affect your application except for where you are overriding virtual functions
which now have a different signature. If functions are not being called which were previously,
check whether there is a parameter mismatch (or function type mismatch) involving consts.
Try to use the {\bf const} keyword in your own code where possible.
\chapter{Backward compatibility}\label{compat}
Some wxWindows 1.xx functionality has been left to ease the transition to 2.0. This functionality
(usually) only works if you compile with WXWIN\_COMPATIBILITY set to 1 in setup.h.
Mostly this defines old names to be the new names (e.g. wxRectangle is defined to be wxRect).
\chapter{Quick reference}\label{quickreference}
This section allows you to quickly find features that
need to be converted.
\section{Include files}
Use the form:
\begin{verbatim}
#include <wx/wx.h>
#include <wx/button.h>
\end{verbatim}
For precompiled header support, use this form:
\begin{verbatim}
// For compilers that support precompilation, includes "wx.h".
#include <wx/wxprec.h>
#ifdef __BORLANDC__
#pragma hdrstop
#endif
// Any files you want to include if not precompiling by including
// the whole of <wx/wx.h>
#ifndef WX_PRECOMP
#include <stdio.h>
#include <wx/setup.h>
#include <wx/bitmap.h>
#include <wx/brush.h>
#endif
// Any files you want to include regardless of precompiled headers
#include <wx/toolbar.h>
\end{verbatim}
\section{IPC classes}
These are now separated out into wxDDEServer/Client/Connection (Windows only) and wxTCPServer/Client/Connection
(Windows and Unix). Take care to use wxString for your overridden function arguments, instead of char*, as per
the documentation.
\section{MDI style frames}
MDI is now implemented as a family of separate classes, so you can't switch to MDI just by
using a different frame style. Please see the documentation for the MDI frame classes, and the MDI
sample may be helpful too.
\section{OnActivate}
Replace the arguments with one wxActivateEvent\& argument, make sure the function isn't virtual,
and add an EVT\_ACTIVATE event table entry.
\section{OnChar}
This is now a non-virtual function, with the same wxKeyEvent\& argument as before.
Add an EVT\_CHAR macro to the event table
for your window, and the implementation of your function will need very few changes.
\section{OnClose}
The old virtual function OnClose is now obsolete.
Add an OnCloseWindow event handler using an EVT\_CLOSE event table entry. For details
about window destruction, see the Windows Deletion Overview in the manual. This is a subtle
topic so please read it very carefully. Basically, OnCloseWindow is now responsible for
destroying a window with Destroy(), but the default implementation (for example for wxDialog) may not
destroy the window, so to be sure, always provide this event handler so it's obvious what's going on.
\section{OnEvent}
This is now a non-virtual function, with the same wxMouseEvent\& argument as before. However
you may wish to rename it OnMouseEvent. Add an EVT\_MOUSE\_EVENTS macro to the event table
for your window, and the implementation of your function will need very few changes.
However, if you wish to intercept different events using different functions, you can
specify specific events in your event table, such as EVT\_LEFT\_DOWN.
Your OnEvent function is likely to have references to GetDC(), so make sure you create
a wxClientDC instead. See \helpref{Device contexts}{dc}.
If you are using a wxScrolledWindow (formerly wxCanvas), you should call
PrepareDC(dc) to set the correct translation for the current scroll position.
\section{OnMenuCommand}
You need to replace this virtual function with a series of non-virtual functions, one for
each case of your old switch statement. Each function takes a wxCommandEvent\& argument.
Create an event table for your frame
containing EVT\_MENU macros, and insert DECLARE\_EVENT\_TABLE() in your frame class, as
per the samples.
\section{OnPaint}
This is now a non-virtual function, with a wxPaintEvent\& argument.
Add an EVT\_PAINT macro to the event table
for your window.
Your function {\it must} create a wxPaintDC object, instead of using GetDC to
obtain the device context.
If you are using a wxScrolledWindow (formerly wxCanvas), you should call
PrepareDC(dc) to set the correct translation for the current scroll position.
\section{OnSize}
Replace the arguments with one wxSizeEvent\& argument, make it non-virtual, and add to your
event table using EVT\_SIZE.
\section{wxApp definition}
The definition of OnInit has changed. Return a bool value, not a wxFrame.
Also, do {\it not} declare a global application object. Instead, use the macros
DECLARE\_APP and IMPLEMENT\_APP as per the samples. Remove any occurrences of IMPLEMENT\_WXWIN\_MAIN:
this is subsumed in IMPLEMENT\_APP.
\section{wxButton}
For bitmap buttons, use wxBitmapButton.
\section{wxCanvas}
Change the name to wxScrolledWindow.
\section{wxDialogBox}
Change the name to wxDialog, and for modal dialogs, use ShowModal instead of Show.
\section{wxDialog::Show}
If you used {\bf Show} to show a modal dialog or to override the standard
modal dialog {\bf Show}, use {\bf ShowModal} instead.
\wxheading{See also}
\helpref{Dialogs and controls}{dialogscontrols}
\section{wxForm}
Sorry, this class is no longer available. Try using the wxPropertyListView or wxPropertyFormView class
instead, or use .wxr files and validators.
\section{wxPoint}
The old wxPoint is called wxRealPoint, and wxPoint now uses integers.
\section{wxRectangle}
This is now called wxRect.
\section{wxScrollBar}
The function names have changed for this class: please refer to the documentation for wxScrollBar. Instead
of setting properties individually, you will call SetScrollbar with several parameters.
\section{wxText, wxMultiText, wxTextWindow}
Change all these to wxTextCtrl. Add the window style wxTE\_MULTILINE if you
wish to have a multi-line text control.
\section{wxToolBar}
This name is an alias for the most popular form of toolbar for your platform. There is now a family
of toolbar classes, with for example wxToolBar95, wxToolBarMSW and wxToolBarSimple classes existing
under Windows 95.
Toolbar management is supported by frames, so calling wxFrame::CreateToolBar and adding tools is usually
enough, and the SDI or MDI frame will manage the positioning for you. The client area of the frame is the space
left over when the menu bar, toolbar and status bar have been taken into account.
\end{document}

View File

@@ -1,28 +0,0 @@
;;; Tex2RTF initialisation file for 16-bit Winhelp
runTwice = yes
titleFontSize = 12
authorFontSize = 10
authorFontSize = 10
chapterFontSize = 12
sectionFontSize = 12
subsectionFontSize = 12
contentsDepth = 2
headerRule = yes
footerRule = yes
useHeadingStyles = yes
listItemIndent=40
generateHPJ = no
htmlBrowseButtons = bitmap
winHelpContents = yes
winHelpVersion = 3 ; 3 for Windows 3.x, 4 for Windows 95
winHelpTitle = "wxWindows Porting Guide"
truncateFilenames = yes
combineSubSections = yes
\overview [2] {\rtfonly{See also }\settransparency{on}\sethotspotcolour{off}\sethotspotunderline{on}\winhelponly{\image{}{books.bmp}\settransparency{off}}
\htmlonly{\image{}{books.gif}}\helpref{#1}{#2}
\sethotspotcolour{on}\sethotspotunderline{on}}
\docparam [2]{\parskip{0}{\it #1}\par\parskip{10}\indented{1cm}{#2}}
\wxheading [1]{{\bf \fcol{blue}{#1}}}
\const [0] {{\bf const}}
\constfunc [3] {{\bf #1} {\bf #2}(#3) {\bf const}\index{#2}}

View File

@@ -1,289 +0,0 @@
% LaTeX style file
% Name: texhelp.sty
% Author: Julian Smart
%
% Purpose
% -------
% Style file to enable the simultaneous preparation of printed LaTeX and on-line
% hypertext manuals.
% Use in conjunction with Tex2RTF (see Tex2RTF documentation).
%
% Note that if a non-ASCII character starts a newline and there should be a space
% between the last word on the previous line and the first word on this line,
% you need to use \rtfsp to generate a space in Windows Help. \rtfsp is ignored
% in all other formats.
%
% Julian Smart
% Artificial Intelligence Applications Institute
%
%
% ============== C++/CLIPS Documentation Facilities ==============
%
% Each class definition should be typeset with e.g.
%
% \section{\class{Name}: Parent}
%
% followed by a description of the class.
% Each member should follow:
%
% \membersection{wxName::Member}
%
% with a description of what this member does.
% Then, one (or more if overloaded) member (function) in detail:
%
% \func{return type}{name}{args}
% or
% \member{type}{name}
%
% where args is a list of \param{type}{name}, ...
% Function, e.g.
% e.g. to typeset
%
% void DoIt(char *string);
%
% write:
%
% \func{void}{DoIt}{\param{char *}{string}}
%
\newcommand{\func}[3]{\hangafter=1\noindent\hangindent=10mm
{{\it #1} {\bf #2}\index{#2}}(#3)}
% For function/type definition where the name is a pointer,
% e.g. to typeset
%
% typedef void (*wxFunction)(wxObject&)
%
% write:
%
% \pfunc{typedef void}{wxFunction}{param{wxObject&}}
\newcommand{\pfunc}[3]{\hangafter=1\noindent\hangindent=10mm
{{\it #1} ({\bf *#2})\index{#2}}(#3)}
% Use an ordinary \section command for class name definitions.
% This is used for a member, such as wxBitmap: GetDepth
\newcommand{\membersection}[1]{\subsection*{#1}\index{#1}}
% CLIPS function
\newcommand{\clipsfunc}[3]{\hangafter=1\noindent\hangindent=10mm
{{\bf #1} ({\bf #2}\index{#2}}#3)}
\newcommand{\clipssection}[1]{\chapter{#1}}
% This is used for a CLIPS function name
\newcommand{\functionsection}[1]{\subsection*{#1}}
% Member: a type and a name
\newcommand{\member}[2]{{\bf #1 \it #2}}
% C++ Parameter: a type and a name (no intervening space)
\newcommand{\param}[2]{{\it #1}{\bf #2}}
% CLIPS Parameter: a type and a name (one intervening space)
\newcommand{\cparam}[2]{{\bf #1} {\it #2}}
% Class: puts in index
\newcommand{\class}[1]{#1\index{#1}}
% Void type
\newcommand{\void}{{\it void}}
% Typeset destructor
\newcommand{\destruct}[1]{{$\sim$}#1}
% Typeset insert/extract operators
\newcommand{\cinsert}{$<<$}
\newcommand{\cextract}{$>>$}
% =================== Hypertext facilities ===================
%
% To insert hyperlinks (or references, in Latex), \label the sections
% or membersections \label{ref-label} immediately after the section, on the same line,
% and use \helpref{text-to-show}{ref-label} to make a reference.
%
% Type text with section reference
\newcommand{\helpref}[2]{{\it #1} (p.\ \pageref{#2}) }
% Type text with URL in verbatim mode
\newcommand{\urlref}[2]{#1 (\verb$#2$)}
% Don't typeset section number in LaTeX
\newcommand{\helprefn}[2]{{\it #1}}
% Like helpref, but popup text in WinHelp instead of hyperlinked
\newcommand{\popref}[2]{{\it #1}}
% Like footnote, but popup text.
\newcommand{\footnotepopup}[2]{{\it #1}\footnote{#2}}
% =================== On-line help specific macros ===================
%
% Global document font size/family, help only.
\newcommand{\helpfontsize}[1]{}
\newcommand{\helpfontfamily}[1]{}
% Ignore in all on-line help
\newcommand{\helpignore}[1]{#1}
% Only print in all on-line help
\newcommand{\helponly}[1]{}
% Ignore in LaTeX
\newcommand{\latexignore}[1]{}
% Only print in LaTeX
\newcommand{\latexonly}[1]{#1}
% Ignore in linear RTF
\newcommand{\rtfignore}[1]{#1}
% Only print in linear RTF
\newcommand{\rtfonly}[1]{}
% Ignore in WinHelp RTF
\newcommand{\winhelpignore}[1]{#1}
% Only print in WinHelp RTF
\newcommand{\winhelponly}[1]{}
% Ignore in wxHelp
\newcommand{\xlpignore}[1]{#1}
% Only print in wxHelp
\newcommand{\xlponly}[1]{}
% Ignore in HTML
\newcommand{\htmlignore}[1]{#1}
% Only print in HTML
\newcommand{\htmlonly}[1]{}
% Input a file only for help system (binder thickness is not a limitation
% in help systems!)
\newcommand{\helpinput}[1]{}
\newcommand{\rtfsp}{ } % Force a space in RTF, ignore in Latex
% =================== Miscellaneous macros ===================
%
% Headings consistent with generated ones
\newcommand{\myheading}[1]{\vspace*{25pt}
\begin{flushleft}
{\LARGE \bf #1}
\end{flushleft}
\vskip 20pt
}
% Heading with entry in contents page.
\newcommand{\chapterheading}[1]{\myheading{#1}
\addcontentsline{toc}{chapter}{#1}}
\newcommand{\sectionheading}[1]{\myheading{#1}
\addcontentsline{toc}{section}{#1}}
% Glossary environment
\newenvironment{helpglossary}{\newpage\chapterheading{Glossary}\begin{description}}{\end{description}}
% Glossary entry
\newcommand{\gloss}[1]{\item[#1]\index{#1}}
% Image: EPS in Latex, BMP or MF (whatever's available) in RTF. Requires psbox.
\newcommand{\image}[2]{\psboxto(#1){#2}}
% Image, left aligned (HTML)
\newcommand{\imager}[2]{\psboxto(#1){#2}}
% Image, right aligned (HTML)
\newcommand{\imagel}[2]{\psboxto(#1){#2}}
% Imagemap: principally for HTML only. In Latex,
% acts like \image.
\newcommand{\imagemap}[3]{\psboxto(#1){#2}}
% Headers and footers
% \setheader{EvenPageLeft}{EvenPageCentre}{EvenPageRight}
% {OddPageLeft}{OddPageCentre}{OddPageRight}
\newcommand{\setheader}[6]{
\lhead[\fancyplain{}{#1}]{\fancyplain{}{#4}}
\chead[\fancyplain{}{#2}]{\fancyplain{}{#5}}
\rhead[\fancyplain{}{#3}]{\fancyplain{}{#6}}
}
% \setfooter{EvenPageLeft}{EvenPageCentre}{EvenPageRight}
% {OddPageLeft}{OddPageCentre}{OddPageRight}
\newcommand{\setfooter}[6]{
\lfoot[\fancyplain{#1}{#1}]{\fancyplain{#4}{#4}}
\cfoot[\fancyplain{#2}{#2}]{\fancyplain{#5}{#5}}
\rfoot[\fancyplain{#3}{#3}]{\fancyplain{#6}{#6}}
}
% Needed for telling RTF where margin paragraph should go
% in mirrored margins mode.
\newcommand{\marginpareven}[1]{\hspace*{0pt}\marginpar{#1}}
\newcommand{\marginparodd}[1]{\hspace*{0pt}\marginpar{#1}}
% Environment for two-column table popular in WinHelp and manuals.
\newcommand{\twocolwidtha}[1]{\def\twocolwidthaval{#1}}
\newcommand{\twocolwidthb}[1]{\def\twocolwidthbval{#1}}
\newcommand{\twocolspacing}[1]{\def\twocolspacingval{#1}}
\twocolwidtha{3cm}
\twocolwidthb{8.5cm}
\twocolspacing{2}
\newcommand{\twocolitem}[2]{#1 & #2\\}
\newcommand{\twocolitemruled}[2]{#1 & #2\\\hline}
\newenvironment{twocollist}{\renewcommand{\arraystretch}{\twocolspacingval}\begin{tabular}{lp{\twocolwidthbval}}}%
{\end{tabular}\renewcommand{\arraystretch}{1}}
% Specifying table rows for RTF compatibility
\newcommand{\row}[1]{#1\\}
% Use for the last ruled row for correct RTF generation.
\newcommand{\ruledrow}[1]{#1\\\hline}
% Indentation environment. Arg1 is left margin size
\newenvironment{indented}[1]{\begin{list}{}{\leftmargin=#1}\item[]}%
{\end{list}}
% Framed box of text, normal formatting.
\newcommand{\normalbox}[1]{\fbox{\vbox{#1}}}
% Double-framed box of text.
\newcommand{\normalboxd}[1]{\fbox{\fbox{\vbox{#1}}}}
% WITHDRAWN -- can't do in RTF, easily.
% Framed box of text, horizontally centred. Ragged right within box.
% \newcommand{\centeredbox}[2]{\begin{center}\fbox{\parbox{#1}{\raggedright#2}}\end{center}}
% Double-framed box of text, horizontally centred. Ragged right within box.
% \newcommand{\centeredboxd}[2]{\begin{center}\fbox{\fbox{\parbox{#1}{\raggedright#2}}}\end{center}}
% toocomplex environment: simply prints the argument in LaTeX,
% comes out verbatim in all generated formats.
\newenvironment{toocomplex}{}{}
% Colour: dummy commands since LaTeX doesn't support colour.
% \definecolour{name}{red}{blue}{green}
% \fcol{name}{text} ; Foreground
% \bcol{name}{text} ; Background
\newcommand{\definecolour}[4]{}
\newcommand{\definecolor}[4]{}
\newcommand{\fcol}[2]{#2}
\newcommand{\bcol}[2]{#2}
\newcommand{\sethotspotcolour}[1]{}
\newcommand{\sethotspotunderline}[1]{}
\newcommand{\settransparency}[1]{}
\newcommand{\backslashraw}[0]{}
\newcommand{\lbraceraw}[0]{}
\newcommand{\rbraceraw}[0]{}
\newcommand{\registered}[0]{(r)}
\newcommand{\background}[1]{}
\newcommand{\textcolour}[1]{}
\newcommand{\overview}[2]{See \helpref{#1}{#2}.}
\newcommand{\docparam}[2]{{\it #1}\begin{list}{}{\leftmargin=1cm}\item[]
#2%
\end{list}}
\newcommand{\wxheading}[1]{{\bf #1}}
\newcommand{\const}[0]{{\bf const}}
\newcommand{\constfunc}[3]{{\bf #1} {\bf #2}(#3) {\bf const}\index{#2}}

View File

@@ -1 +0,0 @@
GIF87a

Before

Width:  |  Height:  |  Size: 6 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 226 B

View File

@@ -1,106 +0,0 @@
\chapter{Introduction}\label{introduction}
\pagenumbering{arabic}%
\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}%
\setfooter{\thepage}{}{}{}{}{\thepage}%
The Property Sheet Classes help the programmer to specify complex dialogs and
their relationship with their associated data. By specifying data as a
wxPropertySheet containing wxProperty objects, the programmer can use
a range of available or custom wxPropertyView classes to allow the user to
edit this data. Classes derived from wxPropertyView act as mediators between the
wxPropertySheet and the actual window (and associated panel items).
For example, the wxPropertyListView is a kind of wxPropertyView which displays
data in a Visual Basic-style property list (see \helpref{the next section}{appearance} for
screen shots). This is a listbox containing names and values, with
an edit control and other optional controls via which the user edits the selected
data item.
wxPropertyFormView is another kind of wxPropertyView which mediates between
the data and a panel or dialog box which has already been created. This makes it a contender for
the replacement of wxForm, since programmer-controlled layout is going to be much more
satisfactory. If automatic layout is desired, then wxPropertyListView could be used instead.
The main intention of this class library was to provide property {\it list} behaviour, but
it has been generalised as much as possible so that the concept of a property sheet and its viewers
can reduce programming effort in a range of user interface tasks.
For further details on the classes and how they are used, please see \helpref{Property classes overview}{propertyoverview}.
\section{The appearance and behaviour of a property list view}\label{appearance}
The property list, as seen in an increasing number of development tools
such as Visual Basic and Delphi, is a convenient and compact method for
displaying and editing a number of items without the need for one
control per item, and without the need for designing a special form. The
controls are as follows:
\begin{itemize}\itemsep=0pt
\item A listbox showing the properties and their current values, which has double-click
properties dependent on the nature of the current property;
\item a text editing area at the top of the display, allowing the user to edit
the currently selected property if appropriate;
\item `confirm' and `cancel' buttons to confirm or cancel an edit (for the property, not the
whole sheet);
\item an optional list that appears when the user can make a choice from several known possible values;
\item a small Edit button to invoke `detailed editing' (perhaps showing or hiding the above value list, or
maybe invoking a common dialog);
\item optional OK/Close, Cancel and Help buttons for the whole dialog.
\end{itemize}
The concept of `detailed editing' versus quick editing gives the user a choice
of editing mode, so novice and expert behaviour can be catered for, or the user can just
use what he feels comfortable with.
Behaviour alters depending on the kind of property being edited. For example, a boolean value has
the following behaviour:
\begin{itemize}\itemsep=0pt
\item Double-clicking on the item toggles between TRUE and FALSE.
\item Showing the value list enables the user to select TRUE or FALSE.
\item The user may be able to type in the word TRUE or FALSE, or the edit control
may be read-only to disallow this since it is error-prone.
\end{itemize}
A list of strings may pop up a dialog for editing them, a simple string just allows text editing,
double-clicking a colour property may show a colour selector, double-clicking on a filename property may
show a file selector (in addition to being able to type in the name in the edit control), etc.
Note that the `type' of property, such as string or integer, does not
necessarily determine the behaviour of the property. The programmer has
to be able to specify different behaviours for the same type, depending
on the meaning of the property. For example, a colour and a filename may
both be strings, but their editing behaviour should be different. This
is why objects of type wxPropertyValidator need to be used, to define
behaviour for a given class of properties or even specific property
name. Objects of class wxPropertyView contain a list of property
registries, which enable reuse of bunches of these validators in
different circumstances. Or a wxProperty can be explicitly set to use a
particular validator object.
The following screen shot of the property classes test program shows the
user editing a string, which is constrained to be one of three possible
values.
$$\image{8cm;0cm}{prop1.eps}$$\\
The second picture shows the user having entered a integer that
was outside the range specified to the validator. Note that in this picture,
the value list is hidden because it is not used when editing an integer.
$$\image{8cm;0cm}{prop2.eps}$$
\chapter{Files}\label{files}
\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}%
\setfooter{\thepage}{}{}{}{}{\thepage}%
The property class library comprises the following files:
\begin{itemize}\itemsep=0pt
\item prop.h: base property class header
\item proplist.h: wxPropertyListView and associated classes
\item propform.h: wxPropertyListView and associated classes
\item prop.cpp: base property class implementation
\item proplist.cpp: wxPropertyListView and associated class implementions
\item propform.cpp: wxPropertyFormView and associated class implementions
\end{itemize}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 243 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 138 B

View File

@@ -1,27 +0,0 @@
\chapter{Change log}\label{changes}
\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}%
\setfooter{\thepage}{}{}{}{}{\thepage}%
January - December 1998, Version 2.0
\begin{itemize}\itemsep=0pt
\item Conversion to wxWindows 2.0.
\end{itemize}
November 26th 1995, Version 1.1
\begin{itemize}\itemsep=0pt
\item Added wxListOfStringsListValidator - allows adding, deleting, editing
strings.
\item Added wxPropertyValue::ClearList, wxPropertyValue::Delete,
wxPropertyValue::wxPropertyValue(wxStringList *).
\item Added wxPropertyValue::Set/GetModified, wxPropertySheet::SetAllModified.
\item Added wxPropertyView::OnPropertyChanged support, for immediate feedback.
\end{itemize}
October 1995, Version 1.0
\begin{itemize}\itemsep=0pt
\item First release.
\end{itemize}

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 231 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 164 B

View File

@@ -1,47 +0,0 @@
\documentstyle[a4,makeidx,verbatim,texhelp,fancyhea,mysober,mytitle]{report}
\input psbox.tex
% Remove this for processing with dvi2ps instead of dvips
%\special{!/@scaleunit 1 def}
\parskip=10pt
\parindent=0pt
\title{User Manual for wxWindows Property Sheet Classes Version 2.0}
\winhelponly{\author{by Julian Smart, Anthemion Software\\$$\image{}{prop1}$$}}
\winhelpignore{\author{Julian Smart, Anthemion Software}
\date{December 1998}
}
\makeindex
\begin{document}
\maketitle
\pagestyle{fancyplain}
\bibliographystyle{plain}
\setheader{{\it CONTENTS}}{}{}{}{}{{\it CONTENTS}}
\setfooter{\thepage}{}{}{}{}{\thepage}%
\pagenumbering{roman}
\tableofcontents
\chapter*{Copyright notice}
\setheader{{\it COPYRIGHT}}{}{}{}{}{{\it COPYRIGHT}}%
\setfooter{\thepage}{}{}{}{}{\thepage}%
\begin{center}
Copyright (c) 1998 Julian Smart, Anthemion Software
\end{center}
Please see the wxWindows licence for conditions of use.
\input{body.tex}
\input{classes.tex}
\input{changes.tex}
%\newpage
%
% Note: In RTF, the \printindex must come before the
% change of header/footer, since the \printindex inserts
% the RTF \sect command which divides one chapter from
% the next.
\rtfonly{\printindex
\addcontentsline{toc}{chapter}{Index}
\setheader{{\it INDEX}}{}{}{}{}{{\it INDEX}}%
\setfooter{\thepage}{}{}{}{}{\thepage}%
}
\end{document}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

View File

@@ -1,539 +0,0 @@
%!PS-Adobe-2.0 EPSF-2.0
%%Title: prop1.eps
%%Creator: XV Version 2.20 Rev: 4/24/92 - by John Bradley
%%BoundingBox: 167 292 445 500
%%Pages: 1
%%DocumentFonts:
%%EndComments
%%EndProlog
%%Page: 1 1
% remember original state
/origstate save def
% build a temporary dictionary
20 dict begin
% lower left corner
167 292 translate
% size of image (on paper, in 1/72inch coords)
278 208 scale
% define 'colorimage' if it isn't defined
% ('colortogray' and 'mergeprocs' come from xwd2ps
% via xgrab)
/colorimage where % do we know about 'colorimage'?
{ pop } % yes: pop off the 'dict' returned
{ % no: define one
/colortogray { % define an RGB->I function
/rgbdata exch store % call input 'rgbdata'
rgbdata length 3 idiv
/npixls exch store
/rgbindx 0 store
/grays npixls string store % str to hold the result
0 1 npixls 1 sub {
grays exch
rgbdata rgbindx get 20 mul % Red
rgbdata rgbindx 1 add get 32 mul % Green
rgbdata rgbindx 2 add get 12 mul % Blue
add add 64 idiv % I = .5G + .31R + .18B
put
/rgbindx rgbindx 3 add store
} for
grays
} bind def
% Utility procedure for colorimage operator.
% This procedure takes two procedures off the
% stack and merges them into a single procedure.
/mergeprocs { % def
dup length
3 -1 roll
dup
length
dup
5 1 roll
3 -1 roll
add
array cvx
dup
3 -1 roll
0 exch
putinterval
dup
4 2 roll
putinterval
} bind def
/colorimage { % def
pop pop % remove 'false 3' operands
{colortogray} mergeprocs
image
} bind def
} ifelse % end of 'false' case
% define the colormap
/cmap 42 string def
% load up the colormap
currentfile cmap readhexstring
000000 bf0000 00bf00 bfbf00 0000bf 00bfbf c0c0c0 808080 ff0000 00ff00
ffff00 0000ff 00ffff ffffff
pop pop % lose return values from readhexstring
% rlecmapimage expects to have 'w h bits matrix' on stack
/rlecmapimage {
/buffer 1 string def
/rgbval 3 string def
/block 384 string def
% proc to read a block from file, and return RGB data
{ currentfile buffer readhexstring pop
/bcount exch 0 get store
bcount 128 ge
{ % it's a non-run block
0 1 bcount 128 sub
{ currentfile buffer readhexstring pop pop
% look up value in color map
/rgbval cmap buffer 0 get 3 mul 3 getinterval store
% and put it in position i*3 in block
block exch 3 mul rgbval putinterval
} for
block 0 bcount 127 sub 3 mul getinterval
}
{ % else it's a run block
currentfile buffer readhexstring pop pop
% look up value in colormap
/rgbval cmap buffer 0 get 3 mul 3 getinterval store
0 1 bcount { block exch 3 mul rgbval putinterval } for
block 0 bcount 1 add 3 mul getinterval
} ifelse
} % end of proc
false 3 colorimage
} bind def
278 208 8 % dimensions of data
[278 0 0 -208 0 208] % mapping matrix
rlecmapimage
7f067f0614060000
81060d7f0d7f0d110d810700
82060d067f067f061006810700
82060d067f067f061006810700
82060d068106047f047f040c040106810700
82060d068106048204060d820d060783070d0702010203098102047f047a040106810700
82060d068106048704060b060001020781070283020702098109028102047f0446040e0d
81000d0d0d81000481040d0d0d81000481040682060700
82060d0681060482040806810600820002078507020902070201028109047f044604810d
060b068307000d060b068207000482040d060b068207000481040682060700
82060d0681060481040685060800040307820702098409020702098109040104050d2d04
030d0204010d1a04050d6604810d060b068307000d06810600070001068207000482040d
060b068207000481040682060700
82060d068106048704060b0604000a0789070209020702070209040104010d0204010d1d
04010d0b04010d0104010d0104010d1204010d0704010d1004010d5504810d060b068307
000d06810600070001068207000482040d06010601000306010001068207000481040682
060700
82060d068106048204070681060001000107010286070209020702040104010d0204010d
1d04010d0b04010d0504010d1204010d0704010d1004010d5504810d060b068307000d06
820600060506810006830607000482040d06020601000106010002068207000481040682
060700
82060d0681060485040d0607060d010d8407020002090109820200040104010d0204010d
81040d010d0104030d0104040d0204030d0104020d81040d010d81040d820d040d810d04
0304010d0504040d0204030d0204030d0104020d0604010d0404030d0204020d0104020d
5404810d060b068307000d06820600060506810006830607000482040d06030603000306
8207000481040682060700
82060d068106048104070507010006020204050d0104010d0104010d0104010d81040d81
0d0481040d820d040d810d0481040d820d040d810d0481040d810d0481040d820d040d81
0d040404030d0204020d81040d820d040d810d0481040d820d040d810d0481040d820d04
0d810d040604010d0304010d0104010d81040d820d040d820d040d810d045404810d060b
068307000d06820600060506810006830607000482040d06040601000406820700048104
0682060700
82060d068106048104050505010006030204010d0504010d0104010d0104010d81040d81
0d0481040d820d040d040d81040d810d0481040d810d0481040d820d040d810d04070401
0d0104010d0104010d81040d040d81040d040d81040d810d040604010d0304050d010401
0d0204010d5504810d060b068307000d06820600060506810006830607000482040d0603
06030003068207000481040682060700
82060d0681060481040c010c8205080c830c05030a020a81030a810a040104010d050401
0d0104010d0104010d81040d810d0481040d820d040d810d040304010d0104010d010401
0d81040d810d040704010d0104010d0104010d81040d810d040304010d0404010d070401
0d0304010d0604010d0104010d5504810d060b068307000d068206000605068100068306
07000482040d06020601000106010002068207000481040682060700
82060d068106048c040c05070507050c05030a030a840a03000a040104010d0504010d01
04010d0104010d81040d810d0481040d820d040d810d0481040d820d040d810d0481040d
810d040104020d0504010d0104010d0104010d0104010d81040d810d0481040d820d040d
810d0481040d820d040d810d040604010d0304010d0104010d81040d820d040d820d040d
810d045404810d060106050003068307000d06820600060506810006830607000482040d
06010601000306010001068207000481040682060700
82060d0681060482040c08020886070c05030a030a010a82030a040104010d0504010d02
04030d0104040d0204030d0104010d0204010d0104010d0704030d0204010d0104010d01
04030d0204030d0204010d0604010d0404030d0204020d0204010d5404810d0601060500
03068307000d06810600070001068207000482040d060b068207000481040682060700
82060d0681060482040c080208010c8205030a810a0384030a030a041404010d1404010d
7f041804810d060b068307000d060b068207000482040d060b0682070004810406820607
00
82060d0681060482040c080308850c05030a030a010a82000a041404010d1204020d7f04
1904810d070c0782000d070c0781000482040d070c0781000481040682060700
82060d0681060483040c05080208850c05030a030a810a0382030a047f0446041f000104
0f0001040106810700
82060d0681060481040c050c8205030a050a7f047b040106810700
82060d068106047f047f040c040106810700
82060d067f067f061006810700
82060d067f067f061006810700
82060d0637067f073907810d061c06810700
82060d06030616000306160001068107007f00360082060d0681060015000406810700
82060d06020681000d140d820700068206000d140d8507000607000d7f0d350d84060d06
000d140d820700060206810700
82060d06020682000d06120601078100068306000d061206010784000607000d7f0d350d
84060d06000d130d01078100060206810700
82060d06020682000d06120601078100068306000d061206010784000607000d7f0d350d
84060d06000d810d06110601078100060206810700
82060d06020682000d06120601078100068306000d061206010784000607000d7f0d350d
84060d06000d810d06110601078100060206810700
82060d06020682000d0603068100060606810006030601078100068306000d0612060107
84000607000d820d000d7f0d320d84060d06000d810d06110601078100060206810700
82060d06020682000d06030683000600060306810006040601078100068306000d061206
010785000607000d0081000d7f0d320d84060d06000d810d061106010781000602068107
00
82060d06020682000d06040683000600060106810006050601078100068306000d060b06
8100060406010785000607000d000100810d0081000d820d000d810d0081000d810d0002
007f0d220d84060d06000d810d06110601078100060206810700
82060d06020682000d06050685000600060006060601078100068306000d060a06830006
00060306010785000607000d0081000d810d0082000d000100810d0082000d0081000d81
0d0081000d7f0d200d84060d06000d810d06110601078100060206810700
82060d06020682000d0606068300060006070601078100068306000d0609068300060006
0406010785000607000d0081000d810d0082000d000100810d0082000d0081000d810d00
81000d7f0d200d84060d06000d810d06110601078100060206810700
82060d06020682000d0607068300060006060601078100068306000d0604068100060106
83000600060506010785000607000d0081000d010d0200810d000100010d0100010d0100
7f0d210d84060d06000d810d06110601078100060206810700
82060d06020682000d06060685000600060006050601078100068306000d060306870006
0006000600060606010785000607000d0081000d010d0200810d000100010d0100010d01
007f0d210d84060d06000d810d06110601078100060206810700
82060d06020682000d06050681000601068300060006040601078100068306000d060406
850006000600060706010784000607000d810d0081000d810d0081000d010d0100020d03
007f0d220d84060d06000d810d0603060100810600820006008100060406010781000602
06810700
82060d06020682000d06040681000603068300060006030601078100068306000d060506
83000600060806010784000607000d7f0d350d84060d06000d810d060306010081060082
000600810006040601078100060206810700
82060d06020682000d060306010005060100040601078100068306000d06060681000609
06010784000607000d7f0d350d84060d06000d810d06110601078100060206810700
82060d06020682000d06120601078100068306000d061206010784000607000d7f0d350d
84060d06000d810d06110601078100060206810700
82060d06020682000d06120601078100068306000d061206010784000607000d7f0d350d
84060d06000d810d06110601078100060206810700
82060d06020682000d0714078100068306000d07140784000607000d7f0d350d85060d06
000d0714078100060206810700
82060d06020682000d0714078100068306000d07140784000607000d7f0d350d84060d06
000715078100060206810700
82060d06030616000306160001068207000d7f0d350d82060d0681060015000406810700
82060d0637068107067f063706810d061c06810700
82060d0637067f0d3a0d1d06810700
82060d0601067f077f070a07810d060106810700
82060d0601068107007f007f00070082060d060106810700
82060d0601068207000d7f0d7f0d060d82060d060106810700
82060d0601068207000d7f0d7f0d060d82060d060106810700
82060d0601068207000d7f0d7f0d060d82060d060106810700
82060d0601068207000d7f0d7f0d060d82060d060106810700
82060d0601068207000d7f0d7f0d060d82060d060106810700
82060d0601068207000d010d0300010d0400020d03007f0d720d82060d060106810700
82060d0601068207000d810d0081000d810d0082000d0081000d810d0082000d0081000d
810d0081000d7f0d700d82060d060106810700
82060d0601068207000d810d0081000d810d0082000d0081000d810d0082000d0004007f
0d710d82060d060106810700
82060d0601068207000d810d0081000d810d0082000d0081000d810d0082000d0081000d
7f0d740d82060d060106810700
82060d0601068207000d810d0081000d810d0082000d0081000d810d0082000d0081000d
810d0081000d7f0d700d82060d060106810700
82060d0601068207000d010d0300010d0100010d0100010d03007f0d720d82060d060106
810700
82060d0601068207000d7f0d7f0d060d82060d060106810700
82060d0601068207000d7f0d7f0d060d82060d060106810700
82060d0601068207000d7f0d7f0d060d82060d060106810700
82060d060106ff0700040a040a040a040a040a040a040a040a040a040a040a040a040a04
0a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a04
0a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a04
0a040a040a040a040a040a040a040a040a040a040a040a040a040aff040a040a040a040a
040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a
040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a
040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a
040a040a040a040a040a040a8c040a040a040a040a040a060d060106810700
82060d0601068307000a047f047f04050482060d060106810700
82060d060106820700047f047f040504830a060d060106810700
82060d0601068307000a0482040d047f047f04020482060d060106810700
82060d0601068207000481040d810d047f047f040104830a060d060106810700
82060d0601068307000a0d020d81040d810d0482040d0481040d810d0481040d020d7f04
720482060d060106810700
82060d0601068207000481040d810d0481040d820d040d010d81040d820d040d810d0481
040d810d047f046f04830a060d060106810700
82060d0601068407000a040d810d0481040d820d040d010d81040d820d040d810d048104
0d810d047f04700482060d060106810700
82060d0601068207000481040d810d040104020d81040d010d0104010d0104010d7f0470
04830a060d060106810700
82060d0601068407000a040d810d040104020d81040d010d0104010d0104010d7f047104
82060d060106810700
82060d060106820700040104010d0104010d0204010d0204030d7f047104830a060d0601
06810700
82060d0601068307000a047f047f04050482060d060106810700
82060d060106820700047f047f040504830a060d060106810700
82060d060106ff07000a040a040a040a040a040a040a040a040a040a040a040a040a040a
040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a
040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a
040a040a040a040a040a040a040a040a040a040a040a040a040a04ff0a040a040a040a04
0a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a04
0a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a04
0a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a04
0a040a040a040a040a040a048c0a040a040a040a040a04060d060106810700
82060d0601068207000d7f0d7f0d060d82060d060106810700
82060d0601068207000d7f0d7f0d060d82060d060106810700
82060d0601068207000d7f0d7f0d060d82060d060106810700
82060d0601068207000d010d81000d810d0081000d7f0d7e0d82060d060106810700
82060d0601068207000d810d0081000d810d0081000d7f0d7e0d82060d060106810700
82060d0601068307000d000200810d000300010d0300010d0300020d03007f0d690d8206
0d060106810700
82060d0601068207000d810d0081000d810d0081000d810d0082000d0081000d010d0100
010d0100810d0081000d810d0081000d7f0d670d82060d060106810700
82060d0601068207000d810d0081000d810d0081000d810d0082000d0081000d010d0500
810d0004007f0d680d82060d060106810700
82060d0601068207000d810d0081000d810d0081000d810d0082000d0081000d010d0100
040d01007f0d6c0d82060d060106810700
82060d0601068207000d810d0081000d810d0081000d810d0082000d0081000d010d0100
010d0100810d0081000d810d0081000d7f0d670d82060d060106810700
82060d0601068207000d010d0100810d0081000d810d0082000d0081000d020d0300020d
03007f0d690d82060d060106810700
82060d0601068207000d7f0d7f0d060d82060d060106810700
82060d0601068207000d7f0d7f0d060d82060d060106810700
82060d0601068207000d7f0d7f0d060d82060d060106810700
82060d0601068207000d7f0d7f0d060d82060d060106810700
82060d0601068207000d7f0d7f0d060d82060d060106810700
82060d0601068207000d7f0d7f0d060d82060d060106810700
82060d0601068207000d7f0d7f0d060d82060d060106810700
82060d0601068207000d7f0d7f0d060d82060d060106810700
82060d0601068207000d7f0d7f0d060d82060d060106810700
82060d0601068207000d7f0d7f0d060d82060d060106810700
82060d0601068207000d7f0d7f0d060d82060d060106810700
82060d0601068207000d7f0d7f0d060d82060d060106810700
82060d0601068207000d7f0d7f0d060d82060d060106810700
82060d0601068207000d7f0d7f0d060d82060d060106810700
82060d0601068207000d7f0d7f0d060d82060d060106810700
82060d0601068207000d7f0d7f0d060d82060d060106810700
82060d0601068207000d7f0d7f0d060d82060d060106810700
82060d0601068107067f067f060806810d060106810700
82060d0601067f0d7f0d0b0d0206810700
82060d067f067f061006810700
82060d067f067f061006810700
82060d0601067f077f070b070206810700
82060d0601068107007f007f000800810d060106810700
82060d0601068207000d7f0d760d0e060100810d060106810700
82060d0601068207000d7f0d760d81060d0b0d81070082000d060106810700
82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700
82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700
82060d0601068207000d1c0d0100120d01000e0d81000d6b0d0400400d82060d060a0681
070082000d060106810700
82060d0601068207000d010d81000d190d81000d120d81000d7b0d85000d000d000d3f0d
82060d060a0681070082000d060106810700
82060d0601068207000d810d000300030d0200010d0100010d0100020d0100810d008400
0d000d0081000d090d0300010d82000d0081000d020d0200020d0200040d0300020d0200
5f0d81000d020d0100810d0082000d0081000d810d0081000d010d02002c0d82060d0603
06810006040681070082000d060106810700
82060d0601068207000d010d81000d040d81000d010d81000d820d000d010d81000d820d
000d810d0081000d810d0081000d820d000d070d81000d010d81000d810d0081000d820d
000d820d000d010d81000d020d81000d020d81000d010d81000d820d000d010d81000d5d
0d81000d030d0100030d81000d010d81000d820d000d010d81000d2a0d82060d06020602
00040681070082000d060106810700
82060d0601068207000d010d81000d040d81000d010d81000d820d000d010d81000d820d
000d010d81000d820d000d010d81000d070d81000d040d81000d010d81000d820d000d01
0d81000d020d81000d020d81000d040d04005e0d81000d030d81000d030d81000d010d81
000d810d0003002b0d82060d0601060400030681070082000d060106810700
82060d0601068207000d010d81000d010d81000d820d000d010d81000d820d000d810d00
81000d820d000d010d81000d820d000d010d81000d070d81000d040d81000d010d81000d
820d000d010d81000d020d81000d020d81000d040d81000d610d81000d030d81000d030d
81000d810d0081000d820d000d2e0d82060d068106000500020681070082000d06010681
0700
82060d0601068207000d020d0200030d0200030d0100810d0081000d810d000200810d00
0100810d000100080d0300810d000100810d000100010d0200020d0400020d0300020d03
005d0d0200020d0300030d0100810d0081000d810d0002002b0d82060d060a0681070082
000d060106810700
82060d0601068207000d1a0d81000d7f0d590d82060d060a0681070082000d0601068107
00
82060d0601068207000d170d02007f0d5b0d82060d060a0681070082000d060106810700
82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700
82060d0601068207000d7f0d760d8106070c070100810d060106810700
82060d0601068207000d7f0d760d1000810d060106810700
82060d0601068207000d7f0d760d92060d060d060d060d060d060d060d060d000d060106
810700
82060d0601068207000d7f0d770d91060d060d060d060d060d060d060d06000d06010681
0700
82060d0601068207000d030d81000d7f0d2d0d81000d020d0300390d92060d060d060d06
0d060d060d060d060d000d060106810700
82060d0601068207000d7f0d320d0100030d81000d3c0d91060d060d060d060d060d060d
060d06000d060106810700
82060d0601068207000d010d0200040d0200010d0100810d0081000d7f0d1c0d83000d00
0d020d81000d3b0d92060d060d060d060d060d060d060d060d000d060106810700
82060d0601068207000d030d81000d020d81000d010d81000d810d0081000d820d000d7f
0d1a0d81000d820d000d020d02003b0d91060d060d060d060d060d060d060d06000d0601
06810700
82060d0601068207000d030d81000d030d0300010d81000d010d81000d7f0d1a0d040005
0d81000d380d92060d060d060d060d060d060d060d060d000d060106810700
82060d0601068207000d030d81000d020d81000d010d81000d820d000d010d81000d7f0d
1d0d81000d010d81000d010d81000d380d0e060100810d060106810700
82060d0601068207000d010d0400010d0800810d0001007f0d1c0d0200020d02003a0d81
060d0b0d81070082000d060106810700
82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700
82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700
82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700
82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700
82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700
82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700
82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700
82060d0601068207000d810d0081000d060d81000d030d0100040d01007f0d170d020003
0d0300390d82060d060a0681070082000d060106810700
82060d0601068207000d010d81000d0d0d81000d040d81000d7f0d150d81000d010d8100
0d010d81000d3b0d82060d060a0681070082000d060106810700
82060d0601068207000d010d82000d0081000d010d0200050d81000d040d81000d7f0d18
0d81000d020d81000d3b0d82060d060a0681070082000d060106810700
82060d0601068207000d010d0100010d81000d020d81000d040d81000d040d81000d7f0d
170d81000d030d02003a0d82060d060a0681070082000d060106810700
82060d0601068207000d010d81000d010d81000d020d81000d040d81000d040d81000d7f
0d160d81000d070d81000d380d82060d060a0681070082000d060106810700
82060d0601068207000d010d81000d010d81000d020d81000d040d81000d040d81000d7f
0d150d81000d040d81000d010d81000d380d82060d060a0681070082000d060106810700
82060d0601068207000d810d000300020d0400010d0400010d04007f0d140d0400020d02
003a0d82060d060a0681070082000d060106810700
82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700
82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700
82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700
82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700
82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700
82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700
82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700
82060d0601068207000d030d81000d0a0d0100050d81000d7f0d5b0d82060d060a068107
0082000d060106810700
82060d0601068207000d110d81000d7f0d620d82060d060a0681070082000d0601068107
00
82060d0601068207000d010d0300010d0100010d0100030d81000d020d0200040d020001
0d0100810d0081000d7f0d070d0200010d0100810d0081000d020d0200330d82060d060a
0681070082000d060106810700
82060d0601068207000d040d81000d010d81000d010d81000d020d81000d040d81000d02
0d81000d010d81000d810d0081000d820d000d7f0d050d81000d010d81000d810d008100
0d820d000d820d000d010d81000d310d82060d060a0681070082000d060106810700
82060d0601068207000d040d81000d010d81000d010d81000d020d81000d040d81000d03
0d0300010d81000d010d81000d7f0d050d81000d010d81000d820d000d010d81000d810d
000300320d82060d060a0681070082000d060106810700
82060d0601068207000d040d81000d010d81000d810d0081000d020d81000d040d81000d
020d81000d010d81000d820d000d010d81000d7f0d050d81000d010d81000d820d000d01
0d81000d820d000d350d82060d060a0681070082000d060106810700
82060d0601068207000d040d81000d020d0100810d0082000d000300010d0400010d0800
810d0001007f0d060d0200010d0200810d000100010d0300320d82060d060a0681070082
000d060106810700
82060d0601068207000d040d81000d7f0d6f0d82060d060a0681070082000d0601068107
00
82060d0601068207000d010d02007f0d710d82060d060a0681070082000d060106810700
82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700
82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700
82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700
82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700
82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700
82060d0601068207000d810d0081000d060d81000d7f0d690d82060d060a068107008200
0d060106810700
82060d0601068207000d010d81000d0b0d81000d7f0d640d82060d060a0681070082000d
060106810700
82060d0601068207000d010d82000d0081000d010d0200020d0400010d0200820d000d02
0d0200010d0100810d0081000d7f0d050d0100810d0081000d020d0200010d0100810d00
81000d020d02002c0d82060d060a0681070082000d060106810700
82060d0601068207000d010d0100010d81000d020d81000d020d81000d040d85000d000d
000d820d000d010d81000d810d0081000d820d000d7f0d050d0100010d81000d820d000d
010d81000d810d0081000d820d000d820d000d010d81000d2a0d82060d060a0681070082
000d060106810700
82060d0601068207000d010d81000d010d81000d020d81000d020d81000d040d85000d00
0d000d010d0300010d81000d010d81000d7f0d050d81000d010d81000d820d000d010d81
000d820d000d010d81000d810d0003002b0d82060d060a0681070082000d060106810700
82060d0601068207000d010d81000d010d81000d020d81000d020d81000d010d81000d86
0d000d000d000d820d000d010d81000d820d000d010d81000d7f0d050d81000d010d8100
0d820d000d010d81000d820d000d010d81000d820d000d2e0d82060d060a068107008200
0d060106810700
82060d0601068207000d810d000300020d0400020d0200010d0600810d000400810d0002
007f0d060d0200810d000100010d0200010d0200810d000100010d03002b0d8106070c07
0100810d060106810700
82060d0601068207000d240d81000d7f0d4f0d1000810d060106810700
82060d0601068207000d230d02007f0d4f0d0e060100810d060106810700
82060d0601068207000d7f0d760d81060d0b0d81070082000d060106810700
82060d060106820700047f04760482060d060a0681070082000d060106810700
82060d060106820700047f04760482060d060a0681070082000d060106810700
82060d060106820700047f04760482060d060a0681070082000d060106810700
82060d060106820700047f04760482060d060a0681070082000d060106810700
82060d060106820700043404810d041304010d7f04290482060d06810600050002068107
0082000d060106810700
82060d060106820700041d04810d042b04810d046204810d04430482060d060106040003
0681070082000d060106810700
82060d060106820700040204030d0204020d0104010d81040d810d040204030d81040d03
0d0204010d81040d810d040104020d0204020d0204010d81040d810d040204020d030401
0d82040d046104040d0104020d81040d010d0104020d330482060d060206020004068107
0082000d060106810700
82060d060106820700040104810d040104810d0482040d040104810d0481040d810d0482
040d0482040d040404810d040504010d0304810d040104810d040204810d040204010d01
04810d0482040d040104810d0482040d0481040d810d046204810d040404810d04010481
0d0482040d040104810d04310482060d060306810006040681070082000d060106810700
82060d060106820700040104810d040404810d040104810d0482040d040104810d040104
020d0204810d040504810d040404030d0304810d040204810d040104810d0481040d030d
0104810d040104810d046204810d040404850d040d040d0482040d040104810d04310482
060d060a0681070082000d060106810700
82060d060106820700040104810d040404810d040104810d0482040d040104810d040404
810d0482040d040104810d040104810d040304810d040104810d040204810d040204810d
040104810d0482040d040404810d040104810d046204810d040104810d0486040d040d04
0d0482040d040104810d04310482060d060a0681070082000d060106810700
82060d060106820700040204030d0204020d0104020d81040d010d81040d020d0304020d
0204030d0204050d81040d030d81040d010d81040d010d0104030d0204040d6304020d03
04830d040d040204020d330482060d060a0681070082000d060106810700
82060d060106820700047f04760482060d060a0681070082000d060106810700
82060d060106820700047f0476048106070c070100810d060106810700
82060d060106820700047f0476041000810d060106810700
82060d0601068107067f0677061000810d060106810700
82060d0601067f0d7f0d0b0d0206810700
82060d067f067f061006810700
82060d067f067f061006810700
82060d067f067f061006810700
82060d067f067f061006810700
82060d067f067f061006810700
82060d067f067f061006810700
82060d067f067f061006810700
82060d067f067f061006810700
82060d067f067f061006810700
8106077f077f0712070000
7f007f001500
%
% Compression made this file 6.27% of the uncompressed size.
%
showpage
% stop using temporary dictionary
end
% restore original state
origstate restore
%%Trailer

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

View File

@@ -1,664 +0,0 @@
%!PS-Adobe-2.0 EPSF-2.0
%%Title: prop2.eps
%%Creator: XV Version 2.20 Rev: 4/24/92 - by John Bradley
%%BoundingBox: 167 221 466 500
%%Pages: 1
%%DocumentFonts:
%%EndComments
%%EndProlog
%%Page: 1 1
% remember original state
/origstate save def
% build a temporary dictionary
20 dict begin
% lower left corner
167 221 translate
% size of image (on paper, in 1/72inch coords)
299 279 scale
% define 'colorimage' if it isn't defined
% ('colortogray' and 'mergeprocs' come from xwd2ps
% via xgrab)
/colorimage where % do we know about 'colorimage'?
{ pop } % yes: pop off the 'dict' returned
{ % no: define one
/colortogray { % define an RGB->I function
/rgbdata exch store % call input 'rgbdata'
rgbdata length 3 idiv
/npixls exch store
/rgbindx 0 store
/grays npixls string store % str to hold the result
0 1 npixls 1 sub {
grays exch
rgbdata rgbindx get 20 mul % Red
rgbdata rgbindx 1 add get 32 mul % Green
rgbdata rgbindx 2 add get 12 mul % Blue
add add 64 idiv % I = .5G + .31R + .18B
put
/rgbindx rgbindx 3 add store
} for
grays
} bind def
% Utility procedure for colorimage operator.
% This procedure takes two procedures off the
% stack and merges them into a single procedure.
/mergeprocs { % def
dup length
3 -1 roll
dup
length
dup
5 1 roll
3 -1 roll
add
array cvx
dup
3 -1 roll
0 exch
putinterval
dup
4 2 roll
putinterval
} bind def
/colorimage { % def
pop pop % remove 'false 3' operands
{colortogray} mergeprocs
image
} bind def
} ifelse % end of 'false' case
% define the colormap
/cmap 42 string def
% load up the colormap
currentfile cmap readhexstring
000000 bf0000 00bf00 bfbf00 0000bf 00bfbf c0c0c0 808080 ff0000 00ff00
ffff00 0000ff 00ffff ffffff
pop pop % lose return values from readhexstring
% rlecmapimage expects to have 'w h bits matrix' on stack
/rlecmapimage {
/buffer 1 string def
/rgbval 3 string def
/block 384 string def
% proc to read a block from file, and return RGB data
{ currentfile buffer readhexstring pop
/bcount exch 0 get store
bcount 128 ge
{ % it's a non-run block
0 1 bcount 128 sub
{ currentfile buffer readhexstring pop pop
% look up value in color map
/rgbval cmap buffer 0 get 3 mul 3 getinterval store
% and put it in position i*3 in block
block exch 3 mul rgbval putinterval
} for
block 0 bcount 127 sub 3 mul getinterval
}
{ % else it's a run block
currentfile buffer readhexstring pop pop
% look up value in colormap
/rgbval cmap buffer 0 get 3 mul 3 getinterval store
0 1 bcount { block exch 3 mul rgbval putinterval } for
block 0 bcount 1 add 3 mul getinterval
} ifelse
} % end of proc
false 3 colorimage
} bind def
299 279 8 % dimensions of data
[299 0 0 -279 0 279] % mapping matrix
rlecmapimage
7f0003007f072607
07077f067f0618068100070707
070781060d7f0d7f0d150d820700070707
070782060d067f067f061406820700070707
070782060d067f067f061406820700070707
070782060d068106077f077f0710070106820700070707
070782060d068106078207060d820d060783070d0702010203098102077f077e07010682
0700070707
070782060d068106078707060b060001020781070283020702098109028102077f074a07
0e0d81000d0d0d81000781070d0d0d81000781070683060700070707
070782060d0681060782070806810600820002078507020902070201028109077f074a07
810d060b068307000d060b068207000782070d060b068207000781070683060700070707
070782060d06810607810706850608000403078207020984090207020981090701070506
2d070306020701061a0705066a07810d060b068307000d06810600070001068207000782
070d060b068207000781070683060700070707
070782060d068106078707060b0604000a07890702090207020702090701070106020701
061d0701060b07010601070106010701061207010607070106100701065907810d060b06
8307000d06810600070001068207000782070d0601060100030601000106820700078107
0683060700070707
070782060d0681060701070106020001070102860702090207020701070106020701061d
0701060b070106050701061207010607070106100701065907810d060b068307000d0682
0600060506810006830607000782070d0602060100010601000206820700078107068306
0700070707
070782060d0681060785070d0607060d010d840702000209010982020007010701060207
010681070601060107030601070406020703060107020681070601068107068206070681
060703070106050704060207030602070306010702060607010604070306020702060107
02065807810d060b068307000d06820600060506810006830607000782070d0603060300
03068207000781070683060700070707
070782060d06810607070701000602020705060107010601070106010701068107068106
078107068206070681060781070682060706810607810706810607810706820607068106
070407030602070206810706820607068106078107068206070681060781070682060706
81060706070106030701060107010681070682060706820607068106075807810d060b06
8307000d06820600060506810006830607000782070d0604060100040682070007810706
83060700070707
070782060d06810607810705050501000603020701060507010601070106010701068107
068106078107068206070604068107068106078107068106078107068206070681060707
070106010701060107010681070604068107060406810706810607060701060307050601
070106020701065907810d060b068307000d06820600060506810006830607000782070d
060306030003068207000781070683060700070707
070782060d0681060781070c010c8205080c830c05030a020a81030a810a070107010605
070106010701060107010681070681060781070682060706810607030701060107010601
070106810706810607070701060107010601070106810706810607030701060407010607
0701060307010606070106010701065907810d060b068307000d06820600060506810006
830607000782070d06020601000106010002068207000781070683060700070707
070782060d068106078c070c05070507050c05030a030a840a03000a0701070106050701
060107010601070106810706810607810706820607068106078107068206070681060781
070681060701070206050701060107010601070106010701068107068106078107068206
070681060781070682060706810607060701060307010601070106810706820607068206
07068106075807810d060106050003068307000d06820600060506810006830607000782
070d06010601000306010001068207000781070683060700070707
070782060d0681060782070c08020886070c05030a030a010a82030a0701070106050701
060207030601070406020703060107010602070106010701060707030602070106010701
06010703060207030602070106060701060407030602070206020701065807810d060106
050003068307000d06810600070001068207000782070d060b0682070007810706830607
00070707
070782060d0681060782070c080208010c8205030a810a0384030a030a07140701061407
01067f071c07810d060b068307000d060b068207000782070d060b068207000781070683
060700070707
070782060d0681060782070c080308850c05030a030a010a82000a071407010612070206
7f071d07810d070c0782000d070c0781000782070d070c07810007810706830607000707
07
070782060d0681060783070c05080208850c05030a030a810a0382030a077f074a071f00
01070f0001070106820700070707
070782060d0681060781070c050c8205030a050a7f077f070106820700070707
070782060d068106077f077f0710070106820700070707
070782060d067f067f061406820700070707
070782060d067f067f061406820700070707
070782060d0637067f073d07810d061c06820700070707
070782060d06030616000306160001068107007f003a0082060d06810600150004068207
00070707
070782060d06020681000d140d820700068206000d140d8507000607000d7f0d390d8406
0d06000d140d820700060206820700070707
070782060d06020682000d06120601078100068306000d061206010784000607000d7f0d
390d84060d06000d130d01078100060206820700070707
070782060d06020682000d06120601078100068306000d061206010784000607000d7f0d
390d84060d06000d810d06110601078100060206820700070707
070782060d06020682000d06120601078100068306000d061206010784000607000d7f0d
390d84060d06000d810d06110601078100060206820700070707
070782060d06020682000d0603068100060606810006030601078100068306000d061206
010784000607000d010d0100020d0200020d0200020d02007f0d230d84060d06000d810d
06110601078100060206820700070707
070782060d06020682000d060306020003060200040601078100068306000d060b068100
060406010784000607000d810d000100010d0100810d0082000d0082000d0082000d0082
000d0081000d7f0d210d84060d06000d810d06110601078100060206820700070707
070782060d06020682000d060406020001060200050601078100068306000d060a060200
0406010785000607000d000200010d0100810d0082000d0082000d0082000d0082000d00
81000d7f0d210d84060d06000d810d06110601078100060206820700070707
070782060d06020682000d0605060500060601078100068306000d060906030004060107
87000607000d000d0081000d810d0082000d0082000d0082000d0082000d0082000d0081
000d7f0d210d84060d06000d810d06110601078100060206820700070707
070782060d06020682000d0606060300070601078100068306000d060806030005060107
84000607000d010d0100010d0100810d0082000d0082000d0082000d0082000d0081000d
7f0d210d84060d06000d810d06110601078100060206820700070707
070782060d06020682000d0606060300070601078100068306000d060306010001060300
0606010784000607000d010d0100010d0100810d0082000d0082000d0082000d0082000d
0081000d7f0d210d84060d06000d810d06110601078100060206820700070707
070782060d06020682000d0605060500060601078100068306000d060306060007060107
84000607000d010d0100010d0100810d0082000d0082000d0082000d0082000d0081000d
7f0d210d84060d06000d810d06110601078100060206820700070707
070782060d06020682000d060406020001060200050601078100068306000d0604060400
0806010784000607000d010d0100020d0200020d0200020d02007f0d230d84060d06000d
810d060306010781060782070607810706040601078100060206820700070707
070782060d06020682000d060306020003060200040601078100068306000d0605060200
0906010784000607000d7f0d390d84060d06000d810d0603060107810607820706078107
06040601078100060206820700070707
070782060d06020682000d060306010005060100040601078100068306000d0606068100
060906010784000607000d7f0d390d84060d06000d810d06110601078100060206820700
070707
070782060d06020682000d06120601078100068306000d061206010784000607000d7f0d
390d84060d06000d810d06110601078100060206820700070707
070782060d06020682000d06120601078100068306000d061206010784000607000d7f0d
390d84060d06000d810d06110601078100060206820700070707
070782060d06020682000d0714078100068306000d07140784000607000d7f0d390d8506
0d06000d0714078100060206820700070707
070782060d06020682000d0714078100068306000d07140784000607000d7f0d390d8406
0d06000715078100060206820700070707
070782060d06030616000306160001068207000d7f0d390d82060d068106001500040682
0700070707
070782060d0637068107067f063b06810d061c06820700070707
070782060d0637067f0d3e0d1d06820700070707
070782060d0601067f077f070e07810d060106820700070707
070782060d0601068107007f007f000b0082060d060106820700070707
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
070782060d0601068207000d040d0100120d01007f0d150d0200550d82060d0601068207
00070707
070782060d0601068207000d030d81000d140d81000d7f0d130d81000d010d81000d530d
82060d060106820700070707
070782060d0601068207000d020d0300010d0100810d0081000d010d0200030d0100820d
000d7f0d130d81000d010d81000d530d82060d060106820700070707
070782060d0601068207000d030d81000d030d0100030d81000d010d81000d820d000d81
0d0081000d7f0d130d81000d010d81000d530d82060d060106820700070707
070782060d0601068207000d030d81000d030d81000d030d0400010d81000d010d81000d
7f0d130d81000d010d81000d530d82060d060106820700070707
070782060d0601068207000d030d81000d030d81000d030d81000d040d81000d010d8100
0d7f0d130d81000d010d81000d530d82060d060106820700070707
070782060d0601068207000d020d0300010d0300030d0300020d04007f0d140d0200550d
82060d060106820700070707
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
070782060d0601068207000d1c0d0100120d01000e0d81000d6b0d0400090d0100480d82
060d060106820700070707
070782060d0601068207000d010d81000d190d81000d120d81000d7c0d81000d820d000d
090d81000d470d82060d060106820700070707
070782060d0601068207000d810d000300030d0200010d0100010d0100020d0100810d00
84000d000d0081000d090d0300010d82000d0081000d020d0200020d0200040d0300020d
02005e0d83000d000d020d0200040d81000d030d0300020d0200390d82060d0601068207
00070707
070782060d0601068207000d010d81000d040d81000d010d81000d820d000d010d81000d
820d000d810d0081000d810d0081000d820d000d070d81000d010d81000d810d0081000d
820d000d820d000d010d81000d020d81000d020d81000d010d81000d820d000d010d8100
0d5c0d0200020d81000d010d81000d020d81000d020d81000d040d81000d010d81000d37
0d82060d060106820700070707
070782060d0601068207000d010d81000d040d81000d010d81000d820d000d010d81000d
820d000d010d81000d820d000d010d81000d070d81000d040d81000d010d81000d820d00
0d010d81000d020d81000d020d81000d040d04005d0d83000d000d020d0300030d81000d
030d0200020d0400380d82060d060106820700070707
070782060d0601068207000d010d81000d010d81000d820d000d010d81000d820d000d81
0d0081000d820d000d010d81000d820d000d010d81000d070d81000d040d81000d010d81
000d820d000d010d81000d020d81000d020d81000d040d81000d600d81000d030d81000d
010d81000d020d81000d060d81000d820d000d3b0d82060d060106820700070707
070782060d0601068207000d020d0200030d0200030d0100810d0081000d810d00020081
0d000100810d000100080d0300810d000100810d000100010d0200020d0400020d030002
0d03005c0d0200030d0500810d000300010d0300030d0300380d82060d06010682070007
0707
070782060d0601068207000d1a0d81000d7f0d6d0d82060d060106820700070707
070782060d0601068207000d170d02007f0d6f0d82060d060106820700070707
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
070782060d060106820700047f047f040a0482060d060106820700070707
070782060d060106820700047f047f040a0482060d060106820700070707
070782060d060106820700047f047f040a0482060d060106820700070707
070782060d060106820700047f047f040a0482060d060106820700070707
070782060d060106820700040304810d047f043204010d4f0482060d0601068207000707
07
070782060d060106820700047f043904810d044e0482060d060106820700070707
070782060d060106820700040104020d0404020d0104010d81040d810d047f042404810d
044e0482060d060106820700070707
070782060d060106820700040304810d040204810d040104810d0481040d810d0482040d
047f041a04040d0304810d044e0482060d060106820700070707
070782060d060106820700040304810d040304030d0104810d040104810d047f04230481
0d044e0482060d060106820700070707
070782060d060106820700040304810d040204810d040104810d0482040d040104810d04
7f042304810d044e0482060d060106820700070707
070782060d060106820700040104040d0104080d81040d010d7f042104040d4d0482060d
060106820700070707
070782060d060106820700047f047f040a0482060d060106820700070707
070782060d060106820700047f047f040a0482060d060106820700070707
070782060d060106820700047f047f040a0482060d060106820700070707
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
070782060d0601068207000d810d0081000d060d81000d030d0100040d01007f0d170d02
00030d03004d0d82060d060106820700070707
070782060d0601068207000d010d81000d0d0d81000d040d81000d7f0d150d81000d010d
81000d010d81000d4f0d82060d060106820700070707
070782060d0601068207000d010d82000d0081000d010d0200050d81000d040d81000d7f
0d180d81000d020d81000d4f0d82060d060106820700070707
070782060d0601068207000d010d0100010d81000d020d81000d040d81000d040d81000d
7f0d170d81000d030d02004e0d82060d060106820700070707
070782060d0601068207000d010d81000d010d81000d020d81000d040d81000d040d8100
0d7f0d160d81000d070d81000d4c0d82060d060106820700070707
070782060d0601068207000d010d81000d010d81000d020d81000d040d81000d040d8100
0d7f0d150d81000d040d81000d010d81000d4c0d82060d060106820700070707
070782060d0601068207000d810d000300020d0400010d0400010d04007f0d140d040002
0d02004e0d82060d060106820700070707
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
070782060d0601068207000d030d81000d0a0d0100050d81000d7f0d6f0d82060d060106
820700070707
070782060d0601068207000d110d81000d7f0d760d82060d060106820700070707
070782060d0601068207000d010d0300010d0100010d0100030d81000d020d0200040d02
00010d0100810d0081000d7f0d070d0200010d0100810d0081000d020d0200470d82060d
060106820700070707
070782060d0601068207000d040d81000d010d81000d010d81000d020d81000d040d8100
0d020d81000d010d81000d810d0081000d820d000d7f0d050d81000d010d81000d810d00
81000d820d000d820d000d010d81000d450d82060d060106820700070707
070782060d0601068207000d040d81000d010d81000d010d81000d020d81000d040d8100
0d030d0300010d81000d010d81000d7f0d050d81000d010d81000d820d000d010d81000d
810d000300460d82060d060106820700070707
070782060d0601068207000d040d81000d010d81000d810d0081000d020d81000d040d81
000d020d81000d010d81000d820d000d010d81000d7f0d050d81000d010d81000d820d00
0d010d81000d820d000d490d82060d060106820700070707
070782060d0601068207000d040d81000d020d0100810d0082000d000300010d0400010d
0800810d0001007f0d060d0200010d0200810d000100010d0300460d82060d0601068207
00070707
070782060d0601068207000d040d81000d7f0d7f0d030d82060d060106820700070707
070782060d0601068207000d010d02007f0d7f0d050d82060d060106820700070707
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
070782060d0601068207000d810d0081000d060d81000d7f0d7d0d82060d060106820700
070707
070782060d0601068207000d010d81000d0b0d81000d7f0d780d82060d06010682070007
0707
070782060d0601068207000d010d82000d0081000d010d0200020d0400010d0200820d00
0d020d0200010d0100810d0081000d7f0d050d0100810d0081000d020d0200010d010081
0d0081000d020d0200400d82060d060106820700070707
070782060d0601068207000d010d0100010d81000d020d81000d020d81000d040d85000d
000d000d820d000d010d81000d810d0081000d820d000d7f0d050d0100010d81000d820d
000d010d81000d810d0081000d820d000d820d000d010d81000d3e0d82060d0601068207
00070707
070782060d0601068207000d010d81000d010d81000d020d81000d020d81000d040d8500
0d000d000d010d0300010d81000d010d81000d7f0d050d81000d010d81000d820d000d01
0d81000d820d000d010d81000d810d0003003f0d82060d060106820700070707
070782060d0601068207000d010d81000d010d81000d020d81000d020d81000d010d8100
0d860d000d000d000d820d000d010d81000d820d000d010d81000d7f0d050d81000d010d
81000d820d000d010d81000d820d000d010d81000d820d000d420d82060d060106820700
070707
070782060d0601068207000d810d000300020d0400020d0200010d0600810d000400810d
0002007f0d060d0200810d000100010d0200010d0200810d000100010d03003f0d82060d
060106820700070707
070782060d0601068207000d240d81000d7f0d630d82060d060106820700070707
070782060d0601068207000d230d02007f0d630d82060d060106820700070707
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
070782060d0601068207000d340d81000d130d01007f0d3d0d82060d0601068207000707
07
070782060d0601068207000d1d0d81000d2b0d81000d620d81000d570d82060d06010682
0700070707
070782060d0601068207000d020d0300020d0200010d0100810d0081000d020d0300810d
000300020d0100810d0081000d010d0200020d0200020d0100810d0081000d020d020003
0d0100820d000d610d0400010d0200810d000100010d0200470d82060d06010682070007
0707
070782060d0601068207000d010d81000d010d81000d820d000d010d81000d810d008100
0d820d000d820d000d040d81000d050d0100030d81000d010d81000d020d81000d020d01
00010d81000d820d000d010d81000d820d000d810d0081000d620d81000d040d81000d01
0d81000d820d000d010d81000d450d82060d060106820700070707
070782060d0601068207000d010d81000d040d81000d010d81000d820d000d010d81000d
010d0200020d81000d050d81000d040d0300030d81000d020d81000d010d81000d810d00
0300010d81000d010d81000d620d81000d040d85000d000d000d820d000d010d81000d45
0d82060d060106820700070707
070782060d0601068207000d010d81000d040d81000d010d81000d820d000d010d81000d
040d81000d820d000d010d81000d010d81000d030d81000d010d81000d020d81000d020d
81000d010d81000d820d000d040d81000d010d81000d620d81000d010d81000d860d000d
000d000d820d000d010d81000d450d82060d060106820700070707
070782060d0601068207000d020d0300020d0200010d0200810d000100810d000200030d
0200020d0300020d0500810d000300810d000100810d000100010d0300020d0400630d02
00030d83000d000d020d0200470d82060d060106820700070707
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
7f077f0726078100070107
03077f0d7f0d210d820700070107
0307820d06077f077f071c07840d060700070107
0307830d0607047f047f041c0483060700070107
0307830d0607047f047f041c0483060700070107
0307830d0607047f047f040a040e0d8100048404060700070107
0307830d0607047f047f040a04810d060b06820700048404060700070107
0307830d06070481040d040d3a04010d7f044604810d060b068207000484040607000701
07
0307830d06070481040d810d040104010d1d04010d1904010d7f044604810d0601060107
030601070106820700048404060700070107
0307830d06070481040d810d040104010d1d04010d1904010d7f044604810d0602060107
01060107010d83060700048404060700070107
0307830d06070481040d810d040104010d81040d010d0104030d0104040d0204030d0104
020d81040d010d81040d820d040d810d040304010d0104010d0104030d0104010d81040d
810d0481040d810d0481040d020d0604030d0104020d81040d010d0104030d0104020d7f
041a04810d0603060307010d0106820700048404060700070107
0307830d06070481040d040d0104010d0104010d0104010d81040d810d0481040d820d04
0d810d0481040d820d040d810d0481040d810d0481040d820d040d810d040304010d0104
010d0404010d81040d820d040d810d0481040d820d040d810d0481040d810d040304010d
0104010d81040d810d0481040d810d0481040d810d0481040d820d040d810d047f041a04
810d0604060107010d0206820700048404060700070107
0307830d06070481040d810d040404010d0104010d0104010d81040d810d0481040d820d
040d040d81040d810d0481040d810d0481040d820d040d810d040404030d0204040d8104
0d820d040d810d0481040d820d040d040d0404050d81040d810d0481040d810d0481040d
810d0481040d820d040d810d047f041a04810d0603060307030682070004840406070007
0107
0307830d06070481040d810d040404010d0104010d0104010d81040d810d0481040d820d
040d810d040304010d0104010d0104010d81040d810d040404030d0104010d0104010d81
040d820d040d810d0481040d820d040d810d040704010d0404010d0104010d0104010d01
04010d81040d810d047f041a04810d0602060107010d0107020682070004840406070007
0107
0307830d06070481040d810d040404010d0104010d0104010d81040d810d0481040d820d
040d810d0481040d820d040d810d0481040d810d040104020d0704010d0204010d010401
0d81040d820d040d820d040d010d81040d810d0481040d810d040304010d0104010d8104
0d810d0481040d810d0481040d810d0481040d820d040d810d047f041a04810d06010601
07010d010601070106820700048404060700070107
0307830d06070481040d810d040404010d0204030d0104040d0204030d0104010d020401
0d0104010d0804010d0304040d81040d810d0481040d030d0104030d0604030d0104010d
0104010d0204030d0104010d7f041b04810d060206010d0306010d830607000484040607
00070107
0307830d0607041304010d1404010d7f045d04810d060b06820700048404060700070107
0307830d0607041304010d1204020d7f045e04810d070c078100048404060700070107
0307830d0607047f047f040a040f00010483060700070107
0307830d0607047f047f041c0483060700070107
0307830d0607047f047f041c0483060700070107
0307810d067f067f061f06820700070107
0307810d067f067f061f06820700070107
0307810d067f067f061f06820700070107
0307810d067f067f061f06820700070107
0307810d067f067f061f06820700070107
0307810d067f067f061f06820700070107
0307810d067f067f061f06820700070107
0307810d067f067f061f06820700070107
0307810d067f067f061f06820700070107
0307810d067f067f061f06820700070107
0307810d067f067f061f06820700070107
0307810d067f067f061f06820700070107
0307810d06170602037f067f060406820700070107
0307810d06160681030a830a0600067f067f060206820700070107
0307810d06150681030a020a83060007067f067f0683060700070107
0307810d06150681030a030a8100078107067f067f06820700070107
0307810d06140681030a040a820600078107067f067e06820700070107
0307810d06140681030a050a8100078107067f067e06820700070107
0307810d06130681030a060a820600078107067f067d06820700070107
0307810d06130681030a070a8100078107067f067d06820700070107
0307810d06120681030a080a820600078107067f067c06820700070107
0307810d06120681030a010a810600010081060a010a8100078107067f067c0682070007
0107
0307810d06110681030a020a0400020a820600078107067f067b06820700070107
0307810d06110681030a020a0400030a8100078107061606810006030681000605068100
0627068100061b0681000620068100062c06040001060200140681000602060400010602
0001068100060a06820700070107
0307810d06100681030a030a0400030a8206000781070615068100060306810006050681
000621068100060306810006230681000618068100060906810006200681000603068100
060106810006120681000602068100060306810006010683000600060a06820700070107
0307810d06100681030a030a0400040a8100078107061606810006010681000606068100
062106810006030681000623068100061806810006090681000620068100060306810006
0106810006120681000602068100060306810006010683000600060a06820700070107
0307810d060f0681030a040a0400040a8206000781070615068100060106810006010602
000106830006000601068100068106000100040602008106008100068206000601068100
068106008100068106008100060206030002060200050602000106820006008100060306
840006000600810006810600810006810600010002060300010602000106010003060300
020602000106010082060006820600068206000681060001000206020001068200060081
000606060300010681000601068100060306020001068200060081000601060300030603
000106810006010683000600060a06820700070107
0307810d060f0681030a040a810300010081030a040a8100078107061506810006010681
000604068500060006000601068300060006010681000602068100068206000684060006
000601068300060006840600060006030681000601068300060006010681000606068200
060081000682060006020682000600810006840600060006820600060106830006000601
068300060006010683000600060306810006010683000600060106830006000682060006
820600068406000600060106830006000601068200060081000682060006050681000601
068300060006010681000606068200060081000684060006000601068100060206810006
01068300060006010683000600060a06820700070107
0307810d060e0681030a050a810600010081060a040a8206000781070615068300060006
020603008406000600060106820006000300030681000682060006840600060006010681
000682060006010681000603068100060106820006000300040603008206000601068100
060206830006000601068300060006810600030082060006010682000600030082060006
030681000601068200060003008206000689060006000600060006000300810600030082
060006010681000602060100040683000600060106810006030603008206000601068300
060006010681000606068300060006010683000600060a06820700070107
0307810d060e0681030a060a0200070a8100078107061506830006000601068100060106
850006000600060106830006000606068100068206000684060006000601068100060106
810006820600060306810006010683000600060606810006010683000600060106810006
020683000600060106830006000682060006030681000601068300060006030681000603
068100060106830006000603068100068a06000600060006000600060306810006030681
000601068100060906830006000601068100060206810006010683000600060106830006
0006010681000606068300060006010683000600060a06820700070107
0307810d060d0681030a070a830300030a060a8206000781070615068100060206810006
010685000600060006810600830006000601068100060206810006820600068406000600
068106008300060006840600060006030681000601068300060006010681000602068100
060106830006000601068100060206830006000601068300060006820600060106830006
000601068300060006010683000600060306810006010683000600060106830006000601
068100060106810006820600060106830006000601068300060006010681000605068100
060106830006000601068100060206810006010683000600060106830006000601068100
0602068100060106830006000601068100060c06820700070107
0307810d060d0681030a070a830600060a070a8100078107061506810006030603008206
000681060083000600068106000100040681000682060006820600068106008300060006
810600810006010681000602060300020602000506030082060006010681000602068300
060006010681000682060006810600010002060300010602000106810006030603000206
020002068100068206000601068100060106020002060200010681000601068100060606
020002060200050603008206000601068100068106000200040602000206020001068100
060a06820700070107
0307810d060c0681030a090a81000a080a820600078107067c0681000677068207000701
07
0307810d060c0681030a150a810007810706780603007906820700070107
0307810d060b0681030a090a8106008200060a070a820600078107067f06750682070007
0107
0307810d060b0681030a090a0300090a8100078107067f067506820700070107
0307810d060a0681030a0a0a0300090a820600078107067f067406820700070107
0307810d060a0681030a0a0a8106008200060a090a8100078107067f0674068207000701
07
0307810d060a0681030a190a81000701077f067406820700070107
0307810d060a0681030a180a8206000701077f067406820700070107
0307810d060b0681030a160a8206000702077f067406820700070107
0307810d060c06810300160004077f067406820700070107
0307810d060e061a077f067506820700070107
0307810d060f0618077f067606820700070107
0307810d067f067f061f06820700070107
0307810d067f067f061f06820700070107
0307810d067f067f061f06820700070107
0307810d067f067f061f06820700070107
0307810d067f067f061f06820700070107
0307810d067f067f061f06820700070107
0307810d067f067f061f06820700070107
0307810d067f067f061f06820700070107
0307810d067f067f061f06820700070107
0307810d067f067f061f06820700070107
0307810d067f067f061f06820700070107
0307810d067f067f061f06820700070107
0307810d067f067f061f06820700070107
0307810d067f067f061f06820700070107
0307810d067f067f061f06820700070107
0307810d067f067f061f06820700070107
0307810d067f067f061f06820700070107
0307810d066b0648006a06820700070107
0307810d066a064a006906820700070107
0307810d066a060100450d8107008100066806820700070107
0307810d066a060100440d010701006906820700070107
0307810d066a060100010d18069100060006000600060006000600060006000617060107
01006906820700070107
0307810d066a060100010d4206010701006906820700070107
0307810d066a060100010d18068100060d068100061706010701006906820700070107
0307810d066a060100010d1b060300020681000601068100061906010701006906820700
070107
0307810d066a060100010d18068300060006020681000682060006820600068206000617
06010701006906820700070107
0307810d066a060100010d1a0681000602068100068406000600061b0601070100690682
0700070107
0307810d066a060100010d18068300060006020681000681060081000602068100061706
010701006906820700070107
0307810d066a060100010d1a0681000602068100068106008100061c0601070100690682
0700070107
0307810d066a060100010d18068300060006020681000684060006000601068100061706
010701006906820700070107
0307810d066a060100010d1a06810006020681000682060006820600061a060107010069
06820700070107
0307810d066a060100010d18068300060006020681000682060006010683000600061706
010701006906820700070107
0307810d066a060100010d1b060300020681000602068100061806010701006906820700
070107
0307810d066a060100010d18068100060d068100061706010701006906820700070107
0307810d066a060100010d4206010701006906820700070107
0307810d066a060100010d18069100060006000600060006000600060006000617060107
01006906820700070107
0307810d066a060100810d07440701006906820700070107
0307810d066a060100460701006906820700070107
0307810d066a064a006906820700070107
0307810d066b0648006a06820700070107
0307810d067f067f061f06820700070107
0307810d067f067f061f06820700070107
0307810d067f067f061f06820700070107
0307810d067f067f061f06820700070107
0307810d067f067f061f06820700070107
0307810d067f067f061f06820700070107
0307810d067f067f061f06820700070107
0307810d067f067f061f06820700070107
0307810d067f067f061f06820700070107
0307810d067f067f061f06820700070107
0307810d067f067f061f06820700070107
0307810d067f067f061f06820700070107
7f077f0726078100070107
02077f007f0024000207
7f077f072a07
7f077f072a07
7f077f072a07
7f077f072a07
7f077f072a07
7f077f072a07
%
% Compression made this file 5.68% of the uncompressed size.
%
showpage
% stop using temporary dictionary
end
% restore original state
origstate restore
%%Trailer

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

View File

@@ -1,39 +0,0 @@
Prototype dialog editor and property sheet classes
--------------------------------------------------
Julian Smart, October 4th 1995
------------------------------
Here's what I've done so far on a lightweight dialog editor. The 16-bit
Windows binaries in the bin directory are dialoged.exe (the dialog
editor) and test.exe (a small property sheet demo).
Main points:
- You can create a new dialog box and add items to it.
- You can move items around, and right-click
to edit a few properties (very incomplete).
- Can't write out .wxr files yet. Loading code is in
wxWindows, but writing code is absent: should be put
into wxWindows.
- No attempt at resources other than dialogs yet.
Should have menu editor too.
- Should *somehow* have a protocol to allow
existing resources e.g. in wxCLIPS/wxPython
to be edited in situ.
This should be made simpler by the existance of
the plug-in event handler mechanism, which means you
can temporarily handle all the events yourself.
- See dialoged.cc: the main program is tiny because
it's meant to be embeddable.
- The wxPropertySheet (set of) classes are very
general and should be put into wxWin and documented.
Comments, chivvying and help all appreciated. Maybe if
I documented what I had, it would be easier for others
to do some work on it.
Regards,
Julian

View File

@@ -1,21 +0,0 @@
runTwice = yes
titleFontSize = 12
authorFontSize = 10
chapterFontSize = 12
sectionFontSize = 12
subsectionFontSize = 12
headerRule = yes
footerRule = yes
useHeadingStyles = yes
contentsDepth = 2
listItemIndent=40
generateHPJ = yes
htmlBrowseButtons = bitmap
winHelpVersion = 3
winHelpContents = yes
winHelpTitle = "Property Classes Manual"
truncateFilenames = yes
\overview [2] {\rtfonly{See also }\sethotspotcolour{off}\sethotspotunderline{on}\winhelponly{\image{}{books.bmp}}
\htmlonly{\image{}{books.gif}}\helpref{#1}{#2}
\sethotspotcolour{on}\sethotspotunderline{on}}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 137 B

View File

@@ -1,17 +0,0 @@
[OPTIONS]
BMROOT=d:\wx2\wxWind~1\utils\wxprop\docs ; Assume that bitmaps are where the source is
TITLE=Property Classes Manual
CONTENTS=Contents
COMPRESS=HIGH
[FILES]
wxprop.rtf
[CONFIG]
CreateButton("Up", "&Up", "JumpId(`wxprop.hlp', `Contents')")
BrowseButtons()
[MAP]
[BITMAPS]

View File

@@ -1,13 +0,0 @@
WX.GID
WX.HLP
wx.ref
wx.cnt
Wx.rtf
Wx.con
minimald.hpj
minimald.ref
minimald.con
MINIMALD.HLP
minimald.GID
minimald.cnt
minimald.rtf

View File

@@ -1,198 +0,0 @@
\section{\class{wxAcceleratorEntry}}\label{wxacceleratorentry}
An object used by an application wishing to create an \helpref{accelerator table}{wxacceleratortable}.
\wxheading{Derived from}
None
\wxheading{Include files}
<wx/accel.h>
\wxheading{See also}
\helpref{wxAcceleratorTable}{wxacceleratortable}, \helpref{wxWindow::SetAcceleratorTable}{wxwindowsetacceleratortable}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxAcceleratorEntry::wxAcceleratorEntry}\label{wxacceleratorentryconstr}
\func{}{wxAcceleratorEntry}{\void}
Default constructor.
\func{}{wxAcceleratorEntry}{\param{int}{ flags}, \param{int}{ keyCode}, \param{int}{ cmd}}
Constructor.
\wxheading{Parameters}
\docparam{flags}{One of wxACCEL\_SHIFT, wxACCEL\_CTRL and wxACCEL\_NORMAL. Indicates
which modifier key is held down.}
\docparam{keyCode}{The keycode to be detected. See \helpref{Keycodes}{keycodes} for a full list of keycodes.}
\docparam{cmd}{The menu or control command identifier.}
\membersection{wxAcceleratorEntry::GetCommand}\label{wxacceleratorentrygetcommand}
\constfunc{int}{GetCommand}{\void}
Returns the command identifier for the accelerator table entry.
\membersection{wxAcceleratorEntry::GetFlags}\label{wxacceleratorentrygetflags}
\constfunc{int}{GetFlags}{\void}
Returns the flags for the accelerator table entry.
\membersection{wxAcceleratorEntry::GetKeyCode}\label{wxacceleratorentrygetkeycode}
\constfunc{int}{GetKeyCode}{\void}
Returns the keycode for the accelerator table entry.
\membersection{wxAcceleratorEntry::Set}\label{wxacceleratorentryset}
\func{void}{Set}{\param{int}{ flags}, \param{int}{ keyCode}, \param{int}{ cmd}}
Sets the accelerator entry parameters.
\wxheading{Parameters}
\docparam{flags}{One of wxACCEL\_SHIFT, wxACCEL\_CTRL and wxACCEL\_NORMAL. Indicates
which modifier key is held down.}
\docparam{keyCode}{The keycode to be detected. See \helpref{Keycodes}{keycodes} for a full list of keycodes.}
\docparam{cmd}{The menu or control command identifier.}
\section{\class{wxAcceleratorTable}}\label{wxacceleratortable}
An accelerator table allows the application to specify a table of keyboard shortcuts for
menus or other commands. On Windows, menu or button commands are supported; on GTK,
only menu commands are supported.
The object {\bf wxNullAcceleratorTable} is defined to be a table with no data, and is the
initial accelerator table for a window.
\wxheading{Derived from}
\helpref{wxObject}{wxobject}
\wxheading{Include files}
<wx/accel.h>
\wxheading{Example}
{\small%
\begin{verbatim}
wxAcceleratorEntry entries[4];
entries[0].Set(wxACCEL_CTRL, (int) 'N', ID_NEW_WINDOW);
entries[1].Set(wxACCEL_CTRL, (int) 'X', wxID_EXIT);
entries[2].Set(wxACCEL_SHIFT, (int) 'A', ID_ABOUT);
entries[3].Set(wxACCEL_NONE, WXK_DELETE, wxID_CUT);
wxAcceleratorTable accel(4, entries);
frame->SetAcceleratorTable(accel);
\end{verbatim}
}
\wxheading{Remarks}
An accelerator takes precedence over normal processing and can be a convenient way to program some event handling.
For example, you can use an accelerator table to enable a dialog with a multi-line text control to
accept CTRL-Enter as meaning 'OK' (but not in GTK at present).
\wxheading{See also}
\helpref{wxAcceleratorEntry}{wxacceleratorentry}, \helpref{wxWindow::SetAcceleratorTable}{wxwindowsetacceleratortable}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxAcceleratorTable::wxAcceleratorTable}\label{wxacceleratortableconstr}
\func{}{wxAcceleratorTable}{\void}
Default constructor.
\func{}{wxAcceleratorTable}{\param{const wxAcceleratorTable\& }{bitmap}}
Copy constructor.
\func{}{wxAcceleratorTable}{\param{int}{ n}, \param{wxAcceleratorEntry}{ entries[]}}
Creates from an array of \helpref{wxAcceleratorEntry}{wxacceleratorentry} objects.
\func{}{wxAcceleratorTable}{\param{const wxString\&}{ resource}}
Loads the accelerator table from a Windows resource (Windows only).
\wxheading{Parameters}
\docparam{n}{Number of accelerator entries.}
\docparam{entries}{The array of entries.}
\docparam{resource}{Name of a Windows accelerator.}
\membersection{wxAcceleratorTable::\destruct{wxAcceleratorTable}}
\func{}{\destruct{wxAcceleratorTable}}{\void}
Destroys the wxAcceleratorTable object.
\membersection{wxAcceleratorTable::Ok}\label{wxacceleratortableok}
\constfunc{bool}{Ok}{\void}
Returns TRUE if the accelerator table is valid.
\membersection{wxAcceleratorTable::operator $=$}
\func{wxAcceleratorTable\& }{operator $=$}{\param{const wxAcceleratorTable\& }{accel}}
Assignment operator. This operator does not copy any data, but instead
passes a pointer to the data in {\it accel} and increments a reference
counter. It is a fast operation.
\wxheading{Parameters}
\docparam{accel}{Accelerator table to assign.}
\wxheading{Return value}
Returns 'this' object.
\membersection{wxAcceleratorTable::operator $==$}
\func{bool}{operator $==$}{\param{const wxAcceleratorTable\& }{accel}}
Equality operator. This operator tests whether the internal data pointers are
equal (a fast test).
\wxheading{Parameters}
\docparam{accel}{Accelerator table to compare with 'this'}
\wxheading{Return value}
Returns TRUE if the accelerator tables were effectively equal, FALSE otherwise.
\membersection{wxAcceleratorTable::operator $!=$}
\func{bool}{operator $!=$}{\param{const wxAcceleratorTable\& }{accel}}
Inequality operator. This operator tests whether the internal data pointers are
unequal (a fast test).
\wxheading{Parameters}
\docparam{accel}{Accelerator table to compare with 'this'}
\wxheading{Return value}
Returns TRUE if the accelerator tables were unequal, FALSE otherwise.

View File

@@ -1,60 +0,0 @@
\section{\class{wxActivateEvent}}\label{wxactivateevent}
An activate event is sent when a window or application is being activated
or deactivated.
\wxheading{Derived from}
\helpref{wxEvent}{wxevent}\\
\helpref{wxObject}{wxobject}
\wxheading{Include files}
<wx/event.h>
\wxheading{Event table macros}
To process an activate event, use these event handler macros to direct input to a member
function that takes a wxActivateEvent argument.
\twocolwidtha{7cm}
\begin{twocollist}\itemsep=0pt
\twocolitem{{\bf EVT\_ACTIVATE(func)}}{Process a wxEVT\_ACTIVATE event.}
\twocolitem{{\bf EVT\_ACTIVATE\_APP(func)}}{Process a wxEVT\_ACTIVATE\_APP event.}
\end{twocollist}%
\wxheading{Remarks}
A top-level window (a dialog or frame) receives an activate event when is
being activated or deactivated. This is indicated visually by the title
bar changing colour, and a subwindow gaining the keyboard focus.
An application is activated or deactivated when one of its frames becomes activated,
or a frame becomes inactivate resulting in all application frames being inactive. (Windows only)
\wxheading{See also}
\helpref{wxWindow::OnActivate}{wxwindowonactivate},\rtfsp
\helpref{wxApp::OnActivate}{wxapponactivate},\rtfsp
\helpref{Event handling overview}{eventhandlingoverview}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxActivateEvent::wxActivateEvent}
\func{}{wxActivateEvent}{\param{WXTYPE }{eventType = 0}, \param{bool}{ active = TRUE}, \param{int }{id = 0}}
Constructor.
\membersection{wxActivateEvent::m\_active}
\member{bool}{m\_active}
TRUE if the window or application was activated.
\membersection{wxActivateEvent::GetActive}\label{wxactivateeventgetactive}
\constfunc{bool}{GetActive}{\void}
Returns TRUE if the application or window is being activated, FALSE otherwise.

View File

@@ -1,443 +0,0 @@
\section{\class{wxApp}}\label{wxapp}
The {\bf wxApp} class represents the application itself. It is used
to:
\begin{itemize}\itemsep=0pt
\item set and get application-wide properties;
\item implement the windowing system message or event loop;
\item initiate application processing via \helpref{wxApp::OnInit}{wxapponinit};
\item allow default processing of events not handled by other
objects in the application.
\end{itemize}
You should use the macro IMPLEMENT\_APP(appClass) in your application implementation
file to tell wxWindows how to create an instance of your application class.
Use DECLARE\_APP(appClass) in a header file if you want the wxGetApp function (which returns
a reference to your application object) to be visible to other files.
\wxheading{Derived from}
\helpref{wxEvtHandler}{wxevthandler}\\
\helpref{wxObject}{wxobject}
\wxheading{Include files}
<wx/app.h>
\wxheading{See also}
\helpref{wxApp overview}{wxappoverview}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxApp::wxApp}
\func{void}{wxApp}{\void}
Constructor. Called implicitly with a definition of a wxApp object.
The argument is a language identifier; this is an experimental
feature and will be expanded and documented in future versions.
\membersection{wxApp::\destruct{wxApp}}
\func{void}{\destruct{wxApp}}{\void}
Destructor. Will be called implicitly on program exit if the wxApp
object is created on the stack.
\membersection{wxApp::argc}\label{wxappargc}
\member{int}{argc}
Number of command line arguments (after environment-specific processing).
\membersection{wxApp::argv}\label{wxappargv}
\member{char **}{argv}
Command line arguments (after environment-specific processing).
\membersection{wxApp::CreateLogTarget}\label{wxappcreatelogtarget}
\func{virtual wxLog*}{CreateLogTarget}{\void}
Creates a wxLog class for the application to use for logging errors. The default
implementation returns a new wxLogGui class.
\wxheading{See also}
\helpref{wxLog}{wxlog}
\membersection{wxApp::Dispatch}\label{wxappdispatch}
\func{void}{Dispatch}{\void}
Dispatches the next event in the windowing system event queue.
This can be used for programming event loops, e.g.
\begin{verbatim}
while (app.Pending())
Dispatch();
\end{verbatim}
\wxheading{See also}
\helpref{wxApp::Pending}{wxapppending}
\membersection{wxApp::GetAppName}\label{wxappgetappname}
\constfunc{wxString}{GetAppName}{\void}
Returns the application name.
\wxheading{Remarks}
wxWindows sets this to a reasonable default before
calling \helpref{wxApp::OnInit}{wxapponinit}, but the application can reset it at will.
\membersection{wxApp::GetAuto3D}\label{wxappgetauto3d}
\constfunc{bool}{GetAuto3D}{\void}
Returns TRUE if 3D control mode is on, FALSE otherwise.
\wxheading{See also}
\helpref{wxApp::SetAuto3D}{wxappsetauto3d}
\membersection{wxApp::GetClassName}\label{wxappgetclassname}
\constfunc{wxString}{GetClassName}{\void}
Gets the class name of the application. The class name may be used in a platform specific
manner to refer to the application.
\wxheading{See also}
\helpref{wxApp::SetClassName}{wxappsetclassname}
\membersection{wxApp::GetExitOnDelete}\label{wxappgetexitondelete}
\constfunc{bool}{GetExitOnDelete}{\void}
Returns TRUE if the application will exit when the top-level window is deleted, FALSE
otherwise.
\wxheading{See also}
\helpref{wxApp::SetExitOnDelete}{wxappsetexitondelete}
\membersection{wxApp::GetTopWindow}\label{wxappgettopwindow}
\constfunc{wxWindow *}{GetTopWindow}{\void}
Returns a pointer to the top window.
\wxheading{Remarks}
If the top window hasn't been set using \helpref{wxApp::SetTopWindow}{wxappsettopwindow}, this
function will find the first top-level window (frame or dialog) and return that.
\wxheading{See also}
\helpref{wxApp::SetTopWindow}{wxappsettopwindow}
\membersection{wxApp::ExitMainLoop}\label{wxappexitmainloop}
\func{void}{ExitMainLoop}{\void}
Call this to explicitly exit the main message (event) loop.
You should normally exit the main loop (and the application) by deleting
the top window.
\membersection{wxApp::Initialized}\label{wxappinitialized}
\func{bool}{Initialized}{\void}
Returns TRUE if the application has been initialized (i.e. if\rtfsp
\helpref{wxApp::OnInit}{wxapponinit} has returned successfully). This can be useful for error
message routines to determine which method of output is best for the
current state of the program (some windowing systems may not like
dialogs to pop up before the main loop has been entered).
\membersection{wxApp::MainLoop}\label{wxappmainloop}
\func{int}{MainLoop}{\void}
Called by wxWindows on creation of the application. Override this if you wish
to provide your own (environment-dependent) main loop.
\wxheading{Return value}
Returns 0 under X, and the wParam of the WM\_QUIT message under Windows.
\membersection{wxApp::OnActivate}\label{wxapponactivate}
\func{void}{OnActivate}{\param{wxActivateEvent\& }{event}}
Provide this member function to know whether the application is being
activated or deactivated (Windows only).
\wxheading{See also}
\helpref{wxWindow::OnActivate}{wxwindowonactivate}, \helpref{wxActivateEvent}{wxactivateevent}
\membersection{wxApp::OnExit}\label{wxapponexit}
\func{int}{OnExit}{\void}
Provide this member function for any processing which needs to be done as
the application is about to exit.
\membersection{wxApp::OnCharHook}\label{wxapponcharhook}
\func{void}{OnCharHook}{\param{wxKeyEvent\&}{ event}}
This event handler function is called (under Windows only) to allow the window to intercept keyboard events
before they are processed by child windows.
\wxheading{Parameters}
\docparam{event}{The keypress event.}
\wxheading{Remarks}
Use the wxEVT\_CHAR\_HOOK macro in your event table.
If you use this member, you can selectively consume keypress events by calling\rtfsp
\helpref{wxEvent::Skip}{wxeventskip} for characters the application is not interested in.
\wxheading{See also}
\helpref{wxKeyEvent}{wxkeyevent}, \helpref{wxWindow::OnChar}{wxwindowonchar},\rtfsp
\helpref{wxWindow::OnCharHook}{wxwindowoncharhook}, \helpref{wxDialog::OnCharHook}{wxdialogoncharhook}
\membersection{wxApp::OnIdle}\label{wxapponidle}
\func{void}{OnIdle}{\param{wxIdleEvent\& }{event}}
Override this member function for any processing which needs to be done
when the application is idle. You should call wxApp::OnIdle from your own function,
since this forwards OnIdle events to windows and also performs garbage collection for
windows whose destruction has been delayed.
wxWindows' strategy for OnIdle processing is as follows. After pending user interface events for an
application have all been processed, wxWindows sends an OnIdle event to the application object. wxApp::OnIdle itself
sends an OnIdle event to each application window, allowing windows to do idle processing such as updating
their appearance. If either wxApp::OnIdle or a window OnIdle function requested more time, by
caling \helpref{wxIdleEvent::ReqestMore}{wxidleeventrequestmore}, wxWindows will send another OnIdle
event to the application object. This will occur in a loop until either a user event is found to be
pending, or OnIdle requests no more time. Then all pending user events are processed until the system
goes idle again, when OnIdle is called, and so on.
\wxheading{See also}
\helpref{wxWindow::OnIdle}{wxwindowonidle}, \helpref{wxIdleEvent}{wxidleevent},\rtfsp
\helpref{wxWindow::SendIdleEvents}{wxappsendidleevents}
\membersection{wxApp::OnEndSession}\label{wxapponendsession}
\func{void}{OnEndSession}{\param{wxCloseEvent\& }{event}}
This is an event handler function called when the operating system or GUI session is
about to close down. The application has a chance to silently save information,
and can optionally close itself.
Use the EVT\_END\_SESSION event table macro to handle query end session events.
The default handler calls \helpref{wxWindow::Close}{wxwindowclose} with a TRUE argument
(forcing the application to close itself silently).
\wxheading{Remarks}
Under X, OnEndSession is called in response to the 'die' event.
Under Windows, OnEndSession is called in response to the WM\_ENDSESSION message.
\wxheading{See also}
\helpref{wxWindow::Close}{wxwindowclose},\rtfsp
\helpref{wxWindow::OnCloseWindow}{wxwindowonclosewindow},\rtfsp
\helpref{wxCloseEvent}{wxcloseevent},\rtfsp
\helpref{wxApp::OnQueryEndSession}{wxapponqueryendsession}
\membersection{wxApp::OnInit}\label{wxapponinit}
\func{bool}{OnInit}{\void}
This must be provided by the application, and will usually create the
application's main window, optionally calling \helpref{wxApp::SetTopWindow}{wxappsettopwindow}.
Return TRUE to continue processing, FALSE to exit the application.
\membersection{wxApp::OnQueryEndSession}\label{wxapponqueryendsession}
\func{void}{OnQueryEndSession}{\param{wxCloseEvent\& }{event}}
This is an event handler function called when the operating system or GUI session is
about to close down. Typically, an application will try to save unsaved documents
at this point.
If \helpref{wxCloseEvent::CanVeto}{wxcloseeventcanveto} returns TRUE, the application
is allowed to veto the shutdown by calling \helpref{wxCloseEvent::Veto}{wxcloseeventveto}.
The application might veto the shutdown after prompting for documents to be saved, and the
user has cancelled the save.
Use the EVT\_QUERY\_END\_SESSION event table macro to handle query end session events.
You should check whether the application is forcing the deletion of the window
using \helpref{wxCloseEvent::GetForce}{wxcloseeventgetforce}. If this is TRUE,
destroy the window using \helpref{wxWindow::Destroy}{wxwindowdestroy}.
If not, it is up to you whether you respond by destroying the window.
The default handler calls \helpref{wxWindow::Close}{wxwindowclose} on the top-level window,
and vetoes the shutdown if Close returns FALSE. This will be sufficient for many applications.
\wxheading{Remarks}
Under X, OnQueryEndSession is called in response to the 'save session' event.
Under Windows, OnQueryEndSession is called in response to the WM\_QUERYENDSESSION message.
\wxheading{See also}
\helpref{wxWindow::Close}{wxwindowclose},\rtfsp
\helpref{wxWindow::OnCloseWindow}{wxwindowonclosewindow},\rtfsp
\helpref{wxCloseEvent}{wxcloseevent},\rtfsp
\helpref{wxApp::OnEndSession}{wxapponendsession}
\membersection{wxApp::ProcessMessage}\label{wxappprocessmessage}
\func{bool}{ProcessMessage}{\param{MSG *}{msg}}
Windows-only function for processing a message. This function
is called from the main message loop, checking for windows that
may wish to process it. The function returns TRUE if the message
was processed, FALSE otherwise. If you use wxWindows with another class
library with its own message loop, you should make sure that this
function is called to allow wxWindows to receive messages. For example,
to allow co-existance with the Microsoft Foundation Classes, override
the PreTranslateMessage function:
\begin{verbatim}
// Provide wxWindows message loop compatibility
BOOL CTheApp::PreTranslateMessage(MSG *msg)
{
if (wxTheApp && wxTheApp->ProcessMessage(msg))
return TRUE;
else
return CWinApp::PreTranslateMessage(msg);
}
\end{verbatim}
\membersection{wxApp::Pending}\label{wxapppending}
\func{bool}{Pending}{\void}
Returns TRUE if unprocessed events are in the window system event queue
(MS Windows and Motif).
\wxheading{See also}
\helpref{wxApp::Dispatch}{wxappdispatch}
\membersection{wxApp::SendIdleEvents}\label{wxappsendidleevents}
\func{bool}{SendIdleEvents}{\void}
Sends idle events to all top-level windows.
\func{bool}{SendIdleEvents}{\param{wxWindow*}{ win}}
Sends idle events to a window and its children.
\wxheading{Remarks}
These functions poll the top-level windows, and their children, for idle event processing.
If TRUE is returned, more OnIdle processing is requested by one or more window.
\wxheading{See also}
\helpref{wxApp::OnIdle}{wxapponidle}, \helpref{wxWindow::OnIdle}{wxwindowonidle}, \helpref{wxIdleEvent}{wxidleevent}
\membersection{wxApp::SetAppName}\label{wxappsetappname}
\func{void}{SetAppName}{\param{const wxString\& }{name}}
Sets the name of the application. The name may be used in dialogs
(for example by the document/view framework). A default name is set by
wxWindows.
\wxheading{See also}
\helpref{wxApp::GetAppName}{wxappgetappname}
\membersection{wxApp::SetAuto3D}\label{wxappsetauto3d}
\func{void}{SetAuto3D}{\param{const bool}{ auto3D}}
Switches automatic 3D controls on or off.
\wxheading{Parameters}
\docparam{auto3D}{If TRUE, all controls will be created with 3D appearances unless
overridden for a control or dialog. The default is TRUE}
\wxheading{Remarks}
This has an effect on Windows only.
\wxheading{See also}
\helpref{wxApp::GetAuto3D}{wxappgetauto3d}
\membersection{wxApp::SetClassName}\label{wxappsetclassname}
\func{void}{SetClassName}{\param{const wxString\& }{name}}
Sets the class name of the application. This may be used in a platform specific
manner to refer to the application.
\wxheading{See also}
\helpref{wxApp::GetClassName}{wxappgetclassname}
\membersection{wxApp::SetExitOnDelete}\label{wxappsetexitondelete}
\func{void}{SetExitOnDelete}{\param{bool}{ flag}}
Allows the programmer to specify whether the application will exit when the
top-level frame is deleted.
\wxheading{Parameters}
\docparam{flag}{If TRUE (the default), the application will exit when the top-level frame is
deleted. If FALSE, the application will continue to run.}
\wxheading{Remarks}
Currently, setting this to FALSE only has an effect under Windows.
\membersection{wxApp::SetTopWindow}\label{wxappsettopwindow}
\func{void}{SetTopWindow}{\param{wxWindow* }{window}}
Sets the `top' window. You can call this from within \helpref{wxApp::OnInit}{wxapponinit} to
let wxWindows know which is the main window. You don't have to set the top window;
it's only a convenience so that (for example) certain dialogs without parents can use a
specific window as the top window. If no top window is specified by the application,
wxWindows just uses the first frame or dialog in its top-level window list, when it
needs to use the top window.
\wxheading{Parameters}
\docparam{window}{The new top window.}
\wxheading{See also}
\helpref{wxApp::GetTopWindow}{wxappgettopwindow}, \helpref{wxApp::OnInit}{wxapponinit}

View File

@@ -1,540 +0,0 @@
\section{\class{wxArray}}\label{wxarray}
This section describes the so called {\it dynamic arrays}. This is a C
array-like data structure i.e. the member access time is constant (and not
linear according to the number of container elements as for linked lists). However, these
arrays are dynamic in the sense that they will automatically allocate more
memory if there is not enough of it for adding a new element. They also perform
range checking on the index values but in debug mode only, so please be sure to
compile your application in debug mode to use it (see \helpref{debugging overview}{debuggingoverview} for
details). So, unlike the arrays in some other
languages, attempt to access an element beyond the arrays bound doesn't
automatically expand the array but provokes an assertion failure instead in
debug build and does nothing (except possibly crashing your program) in the
release build.
The array classes were designed to be reasonably efficient, both in terms of
run-time speed and memory consumption and the executable size. The speed of
array item access is, of course, constant (independent of the number of elements)
making them much more efficient than linked lists (\helpref{wxList}{wxlist}).
Adding items to the arrays is also implemented in more or less constant time -
but the price is preallocating the memory in advance. In the \helpref{memory management}{wxarraymemorymanagement} section
you may find some useful hints about optimizing wxArray memory usage. As for executable size, all
wxArray functions are inline, so they do not take {\it any space at all}.
wxWindows has three different kinds of array. All of them derive from
wxBaseArray class which works with untyped data and can not be used directly.
The standard macros WX\_DEFINE\_ARRAY(), WX\_DEFINE\_SORTED\_ARRAY() and
WX\_DEFINE\_OBJARRAY() are used to define a new class deriving from it. The
classes declared will be called in this documentation wxArray, wxSortedArray and
wxObjArray but you should keep in mind that no classes with such names actually
exist, each time you use one of WX\_DEFINE\_XXXARRAY macro you define a class
with a new name. In fact, these names are "template" names and each usage of one
of the macros mentioned above creates a template specialization for the given
element type.
wxArray is suitable for storing integer types and pointers which it does not
treat as objects in any way, i.e. the element pointed to by the pointer is not
deleted when the element is removed from the array. It should be noted that
all of wxArray's functions are inline, so it costs strictly nothing to define as
many array types as you want (either in terms of the executable size or the
speed) as long as at least one of them is defined and this is always the case
because wxArrays are used by wxWindows internally. This class has one serious
limitation: it can only be used for storing integral types (bool, char, short,
int, long and their unsigned variants) or pointers (of any kind). An attempt
to use with objects of sizeof() greater than sizeof(long) will provoke a
runtime assertion failure, however declaring a wxArray of floats will not (on
the machines where sizeof(float) <= sizeof(long)), yet it will {\bf not} work,
please use wxObjArray for storing floats and doubles (NB: a more efficient
wxArrayDouble class is scheduled for the next release of wxWindows).
wxSortedArray is a wxArray variant which should be used when searching in the
array is a frequently used operation. It requires you to define an additional
function for comparing two elements of the array element type and always stores
its items in the sorted order (according to this function). Thus, it's
\helpref{Index()}{wxarrayindex} function execution time is $O(log(N))$ instead of
$O(N)$ for the usual arrays but the \helpref{Add()}{wxarrayadd} method is
slower: it is $O(log(N))$ instead of constant time (neglecting time spent in
memory allocation routine). However, in a usual situation elements are added to
an array much less often than searched inside it, so wxSortedArray may lead to
huge performance improvements compared to wxArray. Finally, it should be
noticed that, as wxArray, wxSortedArray can be only used for storing integral
types or pointers.
wxObjArray class treats its elements like "objects". It may delete them when
they are removed from the array (invoking the correct destructor) and copies
them using the objects copy constructor. In order to implement this behaviour
the definition of the wxObjArray arrays is split in two parts: first, you should
declare the new wxObjArray class using WX\_DECLARE\_OBJARRAY() macro and then
you must include the file defining the implementation of template type:
<wx/arrimpl.cpp> and define the array class with WX\_DEFINE\_OBJARRAY() macro
from a point where the full (as opposed to `forward') declaration of the array
elements class is in scope. As it probably sounds very complicated here is an
example:
\begin{verbatim}
#include <wx/dynarray.h>
// we must forward declare the array because it's used inside the class
// declaration
class MyDirectory;
class MyFile;
// this defines two new types: ArrayOfDirectories and ArrayOfFiles which can be
// now used as shown below
WX_DECLARE_OBJARRAY(MyDirectory, ArrayOfDirectories);
WX_DECLARE_OBJARRAY(MyFile, ArrayOfFiles);
class MyDirectory
{
...
ArrayOfDirectories m_subdirectories; // all subdirectories
ArrayOfFiles m_files; // all files in this directory
};
...
// now that we have MyDirectory declaration in scope we may finish the
// definition of ArrayOfDirectories
#include <wx/arrimpl.cpp> // this is a magic incantation which must be done!
WX_DEFINE_OBJARRAY(ArrayOfDirectories);
// that's all!
\end{verbatim}
It is not as elegant as writing
\begin{verbatim}
typedef std::vector<MyDirectory> ArrayOfDirectories;
\end{verbatim}
but is not that complicated and allows the code to be compiled with any, however
dumb, C++ compiler in the world.
Things are much simpler for wxArray and wxSortedArray however: it is enough
just to write
\begin{verbatim}
WX_DEFINE_ARRAY(MyDirectory *, ArrayOfDirectories);
WX_DEFINE_SORTED_ARRAY(MyFile *, ArrayOfFiles);
\end{verbatim}
\wxheading{See also:}
\helpref{Container classes overview}{wxcontaineroverview}, \helpref{wxList}{wxlist}
\wxheading{Required headers:}
<wx/dynarray.h> for wxArray and wxSortedArray and additionally <wx/arrimpl.cpp>
for wxObjArray.
\latexignore{\rtfignore{\wxheading{Function groups}}}
\membersection{Macros for template array definition}
To use an array you must first define the array class. This is done with the
help of the macros in this section. The class of array elements must be (at
least) forward declared for WX\_DEFINE\_ARRAY, WX\_DEFINE\_SORTED\_ARRAY and
WX\_DECLARE\_OBJARRAY macros and must be fully declared before you use
WX\_DEFINE\_OBJARRAY macro.
\helpref{WX\_DEFINE\_ARRAY}{wxdefinearray}\\
\helpref{WX\_DEFINE\_SORTED\_ARRAY}{wxdefinesortedarray}\\
\helpref{WX\_DECLARE\_OBJARRAY}{wxdeclareobjarray}\\
\helpref{WX\_DEFINE\_OBJARRAY}{wxdefineobjarray}
\membersection{Constructors and destructors}
Array classes are 100\% C++ objects and as such they have the appropriate copy
constructors and assignment operators. Copying wxArray just copies the elements
but copying wxObjArray copies the arrays items. However, for memory-efficiency
sake, neither of these classes has virtual destructor. It is not very important
for wxArray which has trivial destructor anyhow, but it does mean that you
should avoid deleting wxObjArray through a wxBaseArray pointer (as you would
never use wxBaseArray anyhow it shouldn't be a problem) and that you should not
derive your own classes from the array classes.
\helpref{wxArray default constructor}{wxarrayctordef}\\
\helpref{wxArray copy constructors and assignment operators}{wxarrayctorcopy}\\
\helpref{\destruct{wxArray}}{wxarraydtor}
\membersection{Memory management}\label{wxarraymemorymanagement}
Automatic array memory management is quite trivial: the array starts by
preallocating some minimal amount of memory (defined by
WX\_ARRAY\_DEFAULT\_INITIAL\_SIZE) and when further new items exhaust already
allocated memory it reallocates it adding 50\% of the currently allocated
amount, but no more than some maximal number which is defined by
ARRAY\_MAXSIZE\_INCREMENT constant. Of course, this may lead to some memory
being wasted (ARRAY\_MAXSIZE\_INCREMENT in the worst case, i.e. 4Kb in the
current implementation), so the \helpref{Shrink()}{wxarrayshrink} function is
provided to unallocate the extra memory. The \helpref{Alloc()}{wxarrayalloc}
function can also be quite useful if you know in advance how many items you are
going to put in the array and will prevent the array code from reallocating the
memory more times than needed.
\helpref{Alloc}{wxarrayalloc}\\
\helpref{Shrink}{wxarrayshrink}
\membersection{Number of elements and simple item access}
Functions in this section return the total number of array elements and allow to
retrieve them - possibly using just the C array indexing $[]$ operator which
does exactly the same as \helpref{Item()}{wxarrayitem} method.
\helpref{Count}{wxarraycount}\\
\helpref{GetCount}{wxarraygetcount}\\
\helpref{IsEmpty}{wxarrayisempty}\\
\helpref{Item}{wxarrayitem}\\
\helpref{Last}{wxarraylast}
\membersection{Adding items}
\helpref{Add}{wxarrayadd}\\
\helpref{Insert}{wxarrayinsert}
\membersection{Removing items}
\helpref{WX\_CLEAR\_ARRAY}{wxcleararray}\\
\helpref{Empty}{wxarrayempty}\\
\helpref{Clear}{wxarrayclear}\\
\helpref{Remove}{wxarrayremove}
\membersection{Searching and sorting}
\helpref{Index}{wxarrayindex}\\
\helpref{Sort}{wxarraysort}
%%%%% MEMBERS HERE %%%%%
\helponly{\insertatlevel{2}{
\wxheading{Members}
}}
\membersection{WX\_DEFINE\_ARRAY}\label{wxdefinearray}
\func{}{WX\_DEFINE\_ARRAY}{\param{}{T}, \param{}{name}}
This macro defines a new array class named {\it name} and containing the
elements of type {\it T}. Example:
\begin{verbatim}
WX_DEFINE_ARRAY(int, wxArrayInt);
class MyClass;
WX_DEFINE_ARRAY(MyClass *, wxArrayOfMyClass);
\end{verbatim}
Note that wxWindows predefines the following standard array classes: wxArrayInt,
wxArrayLong and wxArrayPtrVoid.
\membersection{WX\_DEFINE\_SORTED\_ARRAY}\label{wxdefinesortedarray}
\func{}{WX\_DEFINE\_SORTED\_ARRAY}{\param{}{T}, \param{}{name}}
This macro defines a new sorted array class named {\it name} and containing
the elements of type {\it T}. Example:
\begin{verbatim}
WX_DEFINE_SORTED_ARRAY(int, wxArrayInt);
class MyClass;
WX_DEFINE_SORTED_ARRAY(MyClass *, wxArrayOfMyClass);
\end{verbatim}
You will have to initialize the objects of this class by passing a comparaison
function to the array object constructor like this:
\begin{verbatim}
int CompareInts(int n1, int n2)
{
return n1 - n2;
}
wxArrayInt sorted(CompareInts);
int CompareMyClassObjects(MyClass *item1, MyClass *item2)
{
// sort the items by their address...
return Stricmp(item1->GetAddress(), item2->GetAddress());
}
wxArrayOfMyClass another(CompareMyClassObjects);
\end{verbatim}
\membersection{WX\_DECLARE\_OBJARRAY}\label{wxdeclareobjarray}
\func{}{WX\_DECLARE\_OBJARRAY}{\param{}{T}, \param{}{name}}
This macro declares a new object array class named {\it name} and containing
the elements of type {\it T}. Example:
\begin{verbatim}
class MyClass;
WX_DEFINE_OBJARRAY(MyClass, wxArrayOfMyClass); // note: not "MyClass *"!
\end{verbatim}
You must use \helpref{WX\_DEFINE\_OBJARRAY()}{wxdefineobjarray} macro to define
the array class - otherwise you would get link errors.
\membersection{WX\_DEFINE\_OBJARRAY}\label{wxdefineobjarray}
\func{}{WX\_DEFINE\_OBJARRAY}{\param{}{name}}
This macro defines the methods of the array class {\it name} not defined by the
\helpref{WX\_DECLARE\_OBJARRAY()}{wxdeclareobjarray} macro. You must include the
file <wx/arrimpl.cpp> before using this macro and you must have the full
declaration of the class of array elements in scope! If you forget to do the
first, the error will be caught by the compiler, but, unfortunately, many
compilers will not give any warnings if you forget to do the second - but the
objects of the class will not be copied correctly and their real destructor will
not be called.
Example of usage:
\begin{verbatim}
// first declare the class!
class MyClass
{
public:
MyClass(const MyClass&);
...
virtual ~MyClass();
};
#include <wx/arrimpl.cpp>
WX_DEFINE_OBJARRAY(wxArrayOfMyClass);
\end{verbatim}
\membersection{WX\_CLEAR\_ARRAY}\label{wxcleararray}
\func{void}{WX\_CLEAR\_ARRAY}{\param{wxArray\& }{array}}
This macro may be used to delete all elements of the array before emptying it.
It can not be used with wxObjArrays - but they will delete their elements anyhow
when you call Empty().
\membersection{Default constructors}\label{wxarrayctordef}
\func{}{wxArray}{\void}
\func{}{wxObjArray}{\void}
Default constructor initializes an empty array object.
\func{}{wxSortedArray}{\param{int (*)(T first, T second)}{compareFunction}}
There is no default constructor for wxSortedArray classes - you must initialize it
with a function to use for item comparaison. It is a function which is passed
two arguments of type {\it T} where {\it T} is the array element type and which
should return a negative, zero or positive value according to whether the first
element passed to it is less than, equal to or greater than the second one.
\membersection{wxArray copy constructor and assignment operator}\label{wxarrayctorcopy}
\func{}{wxArray}{\param{const wxArray\& }{array}}
\func{}{wxSortedArray}{\param{const wxSortedArray\& }{array}}
\func{}{wxObjArray}{\param{const wxObjArray\& }{array}}
\func{wxArray\&}{operator$=$}{\param{const wxArray\& }{array}}
\func{wxSortedArray\&}{operator$=$}{\param{const wxSortedArray\& }{array}}
\func{wxObjArray\&}{operator$=$}{\param{const wxObjArray\& }{array}}
The copy constructors and assignment operators perform a shallow array copy
(i.e. they don't copy the objects pointed to even if the source array contains
the items of pointer type) for wxArray and wxSortedArray and a deep copy (i.e.
the array element are copied too) for wxObjArray.
\membersection{wxArray::\destruct{wxArray}}\label{wxarraydtor}
\func{}{\destruct{wxArray}}{\void}
\func{}{\destruct{wxSortedArray}}{\void}
\func{}{\destruct{wxObjArray}}{\void}
The wxObjArray destructor deletes all the items owned by the array. This is not
done by wxArray and wxSortedArray versions - you may use
\helpref{WX\_CLEAR\_ARRAY}{wxcleararray} macro for this.
\membersection{wxArray::Add}\label{wxarrayadd}
\func{void}{Add}{\param{T }{item}}
\func{void}{Add}{\param{T *}{item}}
\func{void}{Add}{\param{T \&}{item}}
Appends a new element to the array (where {\it T} is the type of the array
elements.)
The first version is used with wxArray and wxSortedArray. The second and the
third are used with wxObjArray. There is an important difference between
them: if you give a pointer to the array, it will take ownership of it, i.e.
will delete it when the item is deleted from the array. If you give a reference
to the array, however, the array will make a copy of the item and will not take
ownership of the original item. Once again, it only makes sense for wxObjArrays
because the other array types never take ownership of their elements.
\membersection{wxArray::Alloc}\label{wxarrayalloc}
\func{void}{Alloc}{\param{size\_t }{count}}
Preallocates memory for a given number of array elements. It is worth calling
when the number of items which are going to be added to the array is known in
advance because it will save unneeded memory reallocation. If the array already
has enough memory for the given number of items, nothing happens.
\membersection{wxArray::Clear}\label{wxarrayclear}
\func{void}{Clear}{\void}
This function does the same as \helpref{Empty()}{wxarrayempty} and additionally
frees the memory allocated to the array.
\membersection{wxArray::Count}\label{wxarraycount}
\constfunc{size\_t}{Count}{\void}
Same as \helpref{GetCount()}{wxarraygetcount}. This function is deprecated -
it exists only for compatibility.
\membersection{wxObjArray::Detach}\label{wxobjarraydetach}
\func{T *}{Detach}{\param{size\_t }{index}}
Removes the element from the array, but, unlike,
\helpref{Remove()}{wxarrayremove} doesn't delete it. The function returns the
pointer to the removed element.
\membersection{wxArray::Empty}\label{wxarrayempty}
\func{void}{Empty}{\void}
Empties the array. For wxObjArray classes, this destroys all of the array
elements. For wxArray and wxSortedArray this does nothing except marking the
array of being empty - this function does not free the allocated memory, use
\helpref{Clear()}{wxarrayclear} for this.
\membersection{wxArray::GetCount}\label{wxarraygetcount}
\constfunc{size\_t}{GetCount}{\void}
Return the number of items in the array.
\membersection{wxArray::Index}\label{wxarrayindex}
\func{int}{Index}{\param{T\& }{item}, \param{bool }{searchFromEnd = FALSE}}
\func{int}{Index}{\param{T\& }{item}}
The first version of the function is for wxArray and wxObjArray, the second is
for wxSortedArray only.
Searches the element in the array, starting from either beginning or the end
depending on the value of {\it searchFromEnd} parameter. wxNOT\_FOUND is
returned if the element is not found, otherwise the index of the element is
returned.
Linear search is used for the wxArray and wxObjArray classes but binary search
in the sorted array is used for wxSortedArray (this is why searchFromEnd
parameter doesn't make sense for it).
\membersection{wxArray::Insert}\label{wxarrayinsert}
\func{void}{Insert}{\param{T }{item}, \param{size\_t }{n}}
\func{void}{Insert}{\param{T *}{item}, \param{size\_t }{n}}
\func{void}{Insert}{\param{T \&}{item}, \param{size\_t }{n}}
Insert a new item into the array before the item {\it n} - thus, {\it Insert(something, 0u)} will
insert an item in such way that it will become the
first array element.
Please see \helpref{Add()}{wxarrayadd} for explanation of the differences
between the overloaded versions of this function.
\membersection{wxArray::IsEmpty}\label{wxarrayisempty}
\constfunc{bool}{IsEmpty}{\void}
Returns TRUE if the array is empty, FALSE otherwise.
\membersection{wxArray::Item}\label{wxarrayitem}
\constfunc{T\&}{Item}{\param{size\_t }{index}}
Returns the item at the given position in the array. If {\it index} is out of
bounds, an assert failure is raised in the debug builds but nothing special is
done in the release build.
The returned value is of type "reference to the array element type" for all of
the array classes.
\membersection{wxArray::Last}\label{wxarraylast}
\constfunc{T\&}{Last}{\void}
Returns the last element in the array, i.e. is the same as Item(GetCount() - 1).
An assert failure is raised in the debug mode if the array is empty.
The returned value is of type "reference to the array element type" for all of
the array classes.
\membersection{wxArray::Remove}\label{wxarrayremove}
\func{\void}{Remove}{\param{size\_t }{index}}
\func{\void}{Remove}{\param{T }{item}}
Removes the element from the array either by index or by value. When an element
is removed from wxObjArray it is deleted by the array - use
\helpref{Detach()}{wxobjarraydetach} if you don't want this to happen. On the
other hand, when an object is removed from a wxArray nothing happens - you
should delete the it manually if required:
\begin{verbatim}
T *item = array[n];
delete item;
array.Remove(n)
\end{verbatim}
See also \helpref{WX\_CLEAR\_ARRAY}{wxcleararray} macro which deletes all
elements of a wxArray (supposed to contain pointers).
\membersection{wxArray::Shrink}\label{wxarrayshrink}
\func{void}{Shrink}{\void}
Frees all memory unused by the array. If the program knows that no new items
will be added to the array it may call Shrink() to reduce its memory usage.
However, if a new item is added to the array, some extra memory will be
allocated again.
\membersection{wxArray::Sort}\label{wxarraysort}
\func{void}{Sort}{\param{CMPFUNC<T> }{compareFunction}}
The notation CMPFUNC<T> should be read as if we had the following declaration:
\begin{verbatim}
template int CMPFUNC(T *first, T *second);
\end{verbatim}
where {\it T} is the type of the array elements. I.e. it is a function returning
{\it int} which is passed two arguments of type {\it T *}.
Sorts the array using the specified compare function: this function should
return a negative, zero or positive value according to whether the first element
passed to it is less than, equal to or greater than the second one.
wxSortedArray doesn't have this function because it is always sorted.

View File

@@ -1,249 +0,0 @@
\section{\class{wxArrayString}}\label{wxarraystring}
wxArrayString is an efficient container for storing
\helpref{wxString}{wxstring} objects. It has the same features as all
\helpref{wxArray}{wxarray} classes, i.e. it dynamically expands when new items
are added to it (so it is as easy to use as a linked list), but the access
time to the elements is constant, instead of being linear in number of
elements as in the case of linked lists. It is also very size efficient and
doesn't take more space than a C array {\it wxString[]} type. wxArrayString
uses its knowledge of internals of wxString class to achieve this.
This class is used in the same way as other dynamic \helpref{arrays}{wxarray},
except that no {\it WX\_DEFINE\_ARRAY} declaration is needed for it. When a
string is added or inserted in the array, a copy of the string is created, so
the original string may be safely deleted (e.g. if it was a {\it char *}
pointer the memory it was using can be freed immediately after this). In
general, there is no need to worry about string memory deallocation when using
this class - it will always free the memory it uses itself.
The references returned by \helpref{Item}{wxarraystringitem},
\helpref{Last}{wxarraystringlast} or
\helpref{operator[]}{wxarraystringoperatorindex} are not constant, so the
array elements may be modified in place like this
\begin{verbatim}
array.Last().MakeUpper();
\end{verbatim}
Finally, none of the methods of this class is virtual including its
destructor, so this class should not be derived from.
\wxheading{Derived from}
Although this is not true strictly speaking, this class may be considered as a
specialization of \helpref{wxArray}{wxarray} class for the wxString member
data: it is not implemented like this, but it does have all of the wxArray
functions.
\wxheading{Include files}
<wx/string.h>
\wxheading{See also}
\helpref{wxArray}{wxarray}, \helpref{wxString}{wxstring}, \helpref{wxString overview}{wxstringoverview}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxArrayString::wxArrayString}\label{wxarraystringctor}
\func{}{wxArrayString}{\void}
\func{}{wxArrayString}{\param{const wxArrayString\&}{ array}}
Default and copy constructors.
\membersection{wxArrayString::\destruct{wxArrayString}}\label{wxarraystringdtor}
\func{}{\destruct{wxArrayString}}{}
Destructor frees memory occupied by the array strings. For the performance
reasons it is not virtual, so this class should not be derived from.
\membersection{wxArrayString::operator=}\label{wxarraystringoperatorassign}
\func{wxArrayString \&}{operator $=$}{\param{const wxArrayString\&}{ array}}
Assignment operator.
\membersection{wxArrayString::operator[]}\label{wxarraystringoperatorindex}
\func{wxString\&}{operatorp[]}{\param{size\_t }{nIndex}}
Return the array element at position {\it nIndex}. An assert failure will
result from an attempt to access an element beyond the end of array in debug
mode, but no check is done in release mode.
This is the operator version of \helpref{Item}{wxarraystringitem} method.
\membersection{wxArrayString::Add}\label{wxarraystringadd}
\func{void}{Add}{\param{const wxString\& }{str}}
Appends a new item to the array.
See also: \helpref{Insert}{wxarraystringinsert}
\membersection{wxArrayString::Alloc}\label{wxarraystringalloc}
\func{void}{Alloc}{\param{size\_t }{nCount}}
Preallocates enough memory to store {\it nCount} items. This function may be
used to improve array class performance before adding a known number of items
consecutively.
See also: \helpref{Dynamic array memory management}{wxarraymemorymanagement}
\membersection{wxArrayString::Clear}\label{wxarraystringclear}
\func{void}{Clear}{\void}
Clears the array contents and frees memory.
See also: \helpref{Empty}{wxarraystringempty}
\membersection{wxArrayString::Count}\label{wxarraystringcount}
\constfunc{size\_t}{Count}{\void}
Returns the number of items in the array. This function is deprecated and is
for backwards compatibility only, please use
\helpref{GetCount}{wxarraystringgetcount} instead.
\membersection{wxArrayString::Empty}\label{wxarraystringempty}
\func{void}{Empty}{\void}
Empties the array: after a call to this function
\helpref{GetCount}{wxarraystringgetcount} will return $0$. However, this
function does not free the memory used by the array and so should be used when
the array is going to be reused for storing other strings. Otherwise, you
should use \helpref{Clear}{wxarraystringclear} to empty the array and free
memory.
\membersection{wxArrayString::GetCount}\label{wxarraystringgetcount}
\constfunc{size\_t}{GetCount}{\void}
Returns the number of items in the array.
\membersection{wxArrayString::Index}\label{wxarraystringindex}
\func{int}{Index}{\param{const char *}{ sz}, \param{bool}{ bCase = TRUE}, \param{bool}{ bFromEnd = FALSE}}
Search the element in the array, starting from the beginning if
{\it bFromEnd} is FALSE or from end otherwise. If {\it bCase}, comparison is
case sensitive (default), otherwise the case is ignored.
Returns index of the first item matched or wxNOT\_FOUND if there is no match.
\membersection{wxArrayString::Insert}\label{wxarraystringinsert}
\func{void}{Insert}{\param{const wxString\& }{str}, \param{size\_t}{ nIndex}}
Insert a new element in the array before the position {\it nIndex}. Thus, for
example, to insert the string in the beginning of the array you would write
\begin{verbatim}
Insert("foo", 0);
\end{verbatim}
If {\it nIndex} is equal to {\it GetCount() + 1} this function behaves as
\helpref{Add}{wxarraystringadd}.
\membersection{wxArrayString::IsEmpty}\label{wxarraystringisempty}
\func{}{IsEmpty}{}
Returns TRUE if the array is empty, FALSE otherwise. This function returns the
same result as {\it GetCount() == 0} but is probably easier to read.
\membersection{wxArrayString::Item}\label{wxarraystringitem}
\constfunc{wxString\&}{Item}{\param{size\_t }{nIndex}}
Return the array element at position {\it nIndex}. An assert failure will
result from an attempt to access an element beyond the end of array in debug
mode, but no check is done in release mode.
See also \helpref{operator[]}{wxarraystringoperatorindex} for the operator
version.
\membersection{wxArrayString::Last}\label{wxarraystringlast}
\func{}{Last}{}
Returns the last element of the array. Attempt to access the last element of
an empty array will result in assert failure in debug build, however no checks
are done in release mode.
\membersection{wxArrayString::Remove (by value)}\label{wxarraystringremoveval}
\func{void}{Remove}{\param{const char *}{ sz}}
Removes the first item matching this value. An assert failure is provoked by
an attempt to remove an element which does not exist in debug build.
See also: \helpref{Index}{wxarraystringindex}, \helpref{Remove}{wxarraystringremove}
\membersection{wxArrayString::Remove (by index)}\label{wxarraystringremove}
\func{void}{Remove}{\param{size\_t }{nIndex}}
Removes the item at given position.
See also: \helpref{Remove}{wxarraystringremoveval}
\membersection{wxArrayString::Shrink}\label{wxarraystringshrink}
\func{void}{Shrink}{\void}
Releases the extra memory allocated by the array. This function is useful to
minimize the array memory consumption.
See also: \helpref{Alloc}{wxarraystringalloc}, \helpref{Dynamic array memory management}{wxarraymemorymanagement}
\membersection{wxArrayString::Sort (alphabetically)}\label{wxarraystringsort}
\func{void}{Sort}{\param{bool}{ reverseOrder = FALSE}}
Sorts the array in alphabetical order or in reverse alphabetical order if
{\it reverseOrder} is TRUE.
See also: \helpref{Sort}{wxarraystringsortcallback}
\membersection{wxArrayString::Sort (user defined)}\label{wxarraystringsortcallback}
\func{void}{Sort}{\param{CompareFunction }{compareFunction}}
Sorts the array using the specified {\it compareFunction} for item comparison.
{\it CompareFunction} is defined as a function taking two {\it const
wxString\&} parameters and returning {\it int} value less than, equal to or
greater than 0 if the first string is less than, equal to or greater than the
second one.
\wxheading{Example}
The following example sorts strings by their length.
\begin{verbatim}
static int CompareStringLen(const wxString& first, const wxString& second)
{
return first.length() - second.length();
}
...
wxArrayString array;
array.Add("one");
array.Add("two");
array.Add("three");
array.Add("four");
array.Sort(CompareStringLen);
\end{verbatim}
See also: \helpref{Sort}{wxarraystringsort}

View File

@@ -1,201 +0,0 @@
\section{\class{wxAutomationObject}}\label{wxautomationobject}
The {\bf wxAutomationObject} class represents an OLE automation object containing a single data member,
an IDispatch pointer. It contains a number of functions that make it easy to perform
automation operations, and set and get properties. The class makes heavy use of the \helpref{wxVariant}{wxvariant} class.
The usage of these classes is quite close to OLE automation usage in Visual Basic. The API is
high-level, and the application can specify multiple properties in a single string. The following example
gets the current Excel instance, and if it exists, makes the active cell bold.
{\small
\begin{verbatim}
wxAutomationObject excelObject;
if (excelObject.GetInstance("Excel.Application"))
excelObject.PutProperty("ActiveCell.Font.Bold", TRUE);
\end{verbatim}
}
Note that this class works under Windows only, and currently only for Visual C++.
\wxheading{Derived from}
\helpref{wxObject}{wxobject}
\wxheading{Include files}
<wx/msw/ole/automtn.h>
\wxheading{See also}
\helpref{wxVariant}{wxvariant}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxAutomationObject::wxAutomationObject}\label{wxautomationobjectctor}
\func{}{wxAutomationObject}{\param{WXIDISPATCH*}{ dispatchPtr = NULL}}
Constructor, taking an optional IDispatch pointer which will be released when the
object is deleted.
\membersection{wxAutomationObject::\destruct{wxAutomationObject}}\label{wxautomationobjectdtor}
\func{}{\destruct{wxAutomationObject}}{\void}
Destructor. If the internal IDispatch pointer is non-null, it will be released.
\membersection{wxAutomationObject::CallMethod}\label{wxautomationobjectcallmethod}
\constfunc{wxVariant}{CallMethod}{\param{const wxString\&}{ method}, \param{int}{ noArgs},
\param{wxVariant }{args[]}}
\constfunc{wxVariant}{CallMethod}{\param{const wxString\&}{ method}, \param{...}{}}
Calls an automation method for this object. The first form takes a method name, number of
arguments, and an array of variants. The second form takes a method name and zero to six
constant references to variants. Since the variant class has constructors for the basic
data types, and C++ provides temporary objects automatically, both of the following lines
are syntactically valid:
{\small
\begin{verbatim}
wxVariant res = obj.CallMethod("Sum", wxVariant(1.2), wxVariant(3.4));
wxVariant res = obj.CallMethod("Sum", 1.2, 3.4);
\end{verbatim}
}
Note that {\it method} can contain dot-separated property names, to save the application
needing to call GetProperty several times using several temporary objects. For example:
{\small
\begin{verbatim}
object.CallMethod("ActiveCell.Font.ShowDialog", "My caption");
\end{verbatim}
}
\membersection{wxAutomationObject::CreateInstance}\label{wxautomationobjectcreateinstance}
\constfunc{bool}{CreateInstance}{\param{const wxString\&}{ classId}}
Creates a new object based on the class id, returning TRUE if the object was successfully created,
or FALSE if not.
\membersection{wxAutomationObject::GetDispatchPtr}\label{wxautomationobjectgetdispatchptr}
\constfunc{IDispatch*}{GetDispatchPtr}{\void}
Gets the IDispatch pointer.
\membersection{wxAutomationObject::GetInstance}\label{wxautomationobjectgetinstance}
\constfunc{bool}{GetInstance}{\param{const wxString\&}{ classId}}
Retrieves the current object associated with a class id, and attaches the IDispatch pointer
to this object. Returns TRUE if a pointer was succesfully retrieved, FALSE otherwise.
Note that this cannot cope with two instances of a given OLE object being active simultaneously,
such as two copies of Excel running. Which object is referenced cannot currently be specified.
\membersection{wxAutomationObject::GetObject}\label{wxautomationobjectgetobject}
\constfunc{bool}{GetObject}{\param{wxAutomationObject\&}{obj} \param{const wxString\&}{ property},
\param{int}{ noArgs = 0}, \param{wxVariant }{args[] = NULL}}
Retrieves a property from this object, assumed to be a dispatch pointer, and initialises {\it obj} with it.
To avoid having to deal with IDispatch pointers directly, use this function in preference
to \helpref{wxAutomationObject::GetProperty}{wxautomationobjectgetproperty} when retrieving objects
from other objects.
Note that an IDispatch pointer is stored as a void* pointer in wxVariant objects.
\wxheading{See also}
\helpref{wxAutomationObject::GetProperty}{wxautomationobjectgetproperty}
\membersection{wxAutomationObject::GetProperty}\label{wxautomationobjectgetproperty}
\constfunc{wxVariant}{GetProperty}{\param{const wxString\&}{ property}, \param{int}{ noArgs},
\param{wxVariant }{args[]}}
\constfunc{wxVariant}{GetProperty}{\param{const wxString\&}{ property}, \param{...}{}}
Gets a property value from this object. The first form takes a property name, number of
arguments, and an array of variants. The second form takes a property name and zero to six
constant references to variants. Since the variant class has constructors for the basic
data types, and C++ provides temporary objects automatically, both of the following lines
are syntactically valid:
{\small
\begin{verbatim}
wxVariant res = obj.GetProperty("Range", wxVariant("A1"));
wxVariant res = obj.GetProperty("Range", "A1");
\end{verbatim}
}
Note that {\it property} can contain dot-separated property names, to save the application
needing to call GetProperty several times using several temporary objects.
\membersection{wxAutomationObject::Invoke}\label{wxautomationobjectinvoke}
\constfunc{bool}{Invoke}{\param{const wxString\&}{ member}, \param{int}{ action},
\param{wxVariant\& }{retValue}, \param{int}{ noArgs}, \param{wxVariant}{ args[]},
\param{const wxVariant*}{ ptrArgs[] = 0}}
This function is a low-level implementation that allows access to the IDispatch Invoke function.
It is not meant to be called directly by the application, but is used by other convenience functions.
\wxheading{Parameters}
\docparam{member}{The member function or property name.}
\docparam{action}{Bitlist: may contain DISPATCH\_PROPERTYPUT, DISPATCH\_PROPERTYPUTREF,
DISPATCH\_METHOD.}
\docparam{retValue}{Return value (ignored if there is no return value)}.
\docparam{noArgs}{Number of arguments in {\it args} or {\it ptrArgs}.}
\docparam{args}{If non-null, contains an array of variants.}
\docparam{ptrArgs}{If non-null, contains an array of constant pointers to variants.}
\wxheading{Return value}
TRUE if the operation was successful, FALSE otherwise.
\wxheading{Remarks}
Two types of argument array are provided, so that when possible pointers are used for efficiency.
\membersection{wxAutomationObject::PutProperty}\label{wxautomationobjectputproperty}
\constfunc{bool}{PutProperty}{\param{const wxString\&}{ property}, \param{int}{ noArgs},
\param{wxVariant }{args[]}}
\func{bool}{PutProperty}{\param{const wxString\&}{ property}, \param{...}{}}
Puts a property value into this object. The first form takes a property name, number of
arguments, and an array of variants. The second form takes a property name and zero to six
constant references to variants. Since the variant class has constructors for the basic
data types, and C++ provides temporary objects automatically, both of the following lines
are syntactically valid:
{\small
\begin{verbatim}
obj.PutProperty("Value", wxVariant(23));
obj.PutProperty("Value", 23);
\end{verbatim}
}
Note that {\it property} can contain dot-separated property names, to save the application
needing to call GetProperty several times using several temporary objects.
\membersection{wxAutomationObject::SetDispatchPtr}\label{wxautomationobjectsetdispatchptr}
\func{void}{SetDispatchPtr}{\param{WXIDISPATCH*}{ dispatchPtr}}
Sets the IDispatch pointer. This function does not check if there is already an IDispatch pointer.
You may need to cast from IDispatch* to WXIDISPATCH* when calling this function.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 225 B

View File

@@ -1,235 +0,0 @@
\section{\class{wxBitmapButton}}\label{wxbitmapbutton}
A bitmap button is a control that contains a bitmap.
It may be placed on a \helpref{dialog box}{wxdialog} or \helpref{panel}{wxpanel}, or indeed
almost any other window.
\wxheading{Derived from}
\helpref{wxButton}{wxbutton}\\
\helpref{wxControl}{wxcontrol}\\
\helpref{wxWindow}{wxwindow}\\
\helpref{wxEvtHandler}{wxevthandler}\\
\helpref{wxObject}{wxobject}
\wxheading{Include files}
<wx/bmpbuttn.h>
\wxheading{Remarks}
A bitmap button can be supplied with a single bitmap, and wxWindows will draw
all button states using this bitmap. If the application needs more control, additional bitmaps for
the selected state, unpressed focussed state, and greyed-out state may be supplied.
\wxheading{Window styles}
\twocolwidtha{5cm}
\begin{twocollist}\itemsep=0pt
\twocolitem{\windowstyle{wxBU\_AUTODRAW}}{If
this is specified, the button will be drawn automatically using the label bitmap only, providing
a 3D-look border. If this style is not specified, the button will be drawn without borders and using all
provided bitmaps.}
\end{twocollist}
See also \helpref{window styles overview}{windowstyles}.
\wxheading{Event handling}
\twocolwidtha{7cm}
\begin{twocollist}\itemsep=0pt
\twocolitem{{\bf EVT\_BUTTON(id, func)}}{Process a wxEVT\_COMMAND\_BUTTON\_CLICKED event,
when the button is clicked.}
\end{twocollist}
\wxheading{See also}
\helpref{wxButton}{wxbutton}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxBitmapButton::wxBitmapButton}\label{wxbitmapbuttonconstr}
\func{}{wxBitmapButton}{\void}
Default constructor.
\func{}{wxBitmapButton}{\param{wxWindow* }{parent}, \param{wxWindowID}{ id}, \param{const wxBitmap\& }{bitmap},\rtfsp
\param{const wxPoint\& }{pos}, \param{const wxSize\& }{size = wxDefaultSize},\rtfsp
\param{long}{ style = wxBU\_AUTODRAW}, \param{const wxValidator\& }{validator}, \param{const wxString\& }{name = ``button"}}
Constructor, creating and showing a button.
\wxheading{Parameters}
\docparam{parent}{Parent window. Must not be NULL.}
\docparam{id}{Button identifier. A value of -1 indicates a default value.}
\docparam{bitmap}{Bitmap to be displayed.}
\docparam{pos}{Button position.}
\docparam{size}{Button size. If the default size (-1, -1) is specified then the button is sized
appropriately for the bitmap.}
\docparam{style}{Window style. See \helpref{wxBitmapButton}{wxbitmapbutton}.}
\docparam{validator}{Window validator.}
\docparam{name}{Window name.}
\wxheading{Remarks}
The {\it bitmap} parameter is normally the only bitmap you need to provide, and wxWindows will
draw the button correctly in its different states. If you want more control, call
any of the functions \helpref{wxBitmapButton::SetBitmapSelected}{wxbitmapbuttonsetbitmapselected},\rtfsp
\helpref{wxBitmapButton::SetBitmapFocus}{wxbitmapbuttonsetbitmapfocus},\rtfsp
\helpref{wxBitmapButton::SetBitmapDisabled}{wxbitmapbuttonsetbitmapdisabled}.
Note that the bitmap passed is smaller than the actual button created.
\wxheading{See also}
\helpref{wxBitmapButton::Create}{wxbitmapbuttoncreate}, \helpref{wxValidator}{wxvalidator}
\membersection{wxBitmapButton::\destruct{wxBitmapButton}}
\func{}{\destruct{wxBitmapButton}}{\void}
Destructor, destroying the button.
\membersection{wxBitmapButton::Create}\label{wxbitmapbuttoncreate}
\func{bool}{Create}{\param{wxWindow* }{parent}, \param{wxWindowID}{ id}, \param{const wxBitmap\& }{bitmap},\rtfsp
\param{const wxPoint\& }{pos}, \param{const wxSize\& }{size = wxDefaultSize},\rtfsp
\param{long}{ style = 0}, \param{const wxValidator\& }{validator}, \param{const wxString\& }{name = ``button"}}
Button creation function for two-step creation. For more details, see \helpref{wxBitmapButton::wxBitmapButton}{wxbitmapbuttonconstr}.
\membersection{wxBitmapButton::GetBitmapDisabled}\label{wxbitmapbuttongetbitmapdisabled}
\constfunc{wxBitmap\&}{GetBitmapLabel}{\void}
Returns the bitmap for the disabled state.
\wxheading{Return value}
A reference to the disabled state bitmap.
\wxheading{See also}
\helpref{wxBitmapButton::SetBitmapDisabled}{wxbitmapbuttonsetbitmapdisabled}
\membersection{wxBitmapButton::GetBitmapFocus}\label{wxbitmapbuttongetbitmapfocus}
\constfunc{wxBitmap\&}{GetBitmapFocus}{\void}
Returns the bitmap for the focussed state.
\wxheading{Return value}
A reference to the focussed state bitmap.
\wxheading{See also}
\helpref{wxBitmapButton::SetBitmapFocus}{wxbitmapbuttonsetbitmapfocus}
\membersection{wxBitmapButton::GetBitmapLabel}\label{wxbitmapbuttongetbitmaplabel}
\constfunc{wxBitmap\&}{GetBitmapLabel}{\void}
Returns the label bitmap (the one passed to the constructor).
\wxheading{Return value}
A reference to the button's label bitmap.
\wxheading{See also}
\helpref{wxBitmapButton::SetBitmapLabel}{wxbitmapbuttonsetbitmaplabel}
\membersection{wxBitmapButton::GetBitmapSelected}\label{wxbitmapbuttongetbitmapselected}
\constfunc{wxBitmap\&}{GetBitmapSelected}{\void}
Returns the bitmap for the selected state.
\wxheading{Return value}
A reference to the selected state bitmap.
\wxheading{See also}
\helpref{wxBitmapButton::SetBitmapSelected}{wxbitmapbuttonsetbitmapselected}
\membersection{wxBitmapButton::SetBitmapDisabled}\label{wxbitmapbuttonsetbitmapdisabled}
\func{void}{SetBitmapDisabled}{\param{const wxBitmap\& }{bitmap}}
Sets the bitmap for the disabled button appearance.
\wxheading{Parameters}
\docparam{bitmap}{The bitmap to set.}
\wxheading{See also}
\helpref{wxBitmapButton::GetBitmapDisabled}{wxbitmapbuttongetbitmapdisabled},\rtfsp
\helpref{wxBitmapButton::SetBitmapLabel}{wxbitmapbuttonsetbitmaplabel},\rtfsp
\helpref{wxBitmapButton::SetBitmapSelected}{wxbitmapbuttonsetbitmapselected},\rtfsp
\helpref{wxBitmapButton::SetBitmapFocus}{wxbitmapbuttonsetbitmapfocus}
\membersection{wxBitmapButton::SetBitmapFocus}\label{wxbitmapbuttonsetbitmapfocus}
\func{void}{SetBitmapFocus}{\param{const wxBitmap\& }{bitmap}}
Sets the bitmap for the button appearance when it has the keyboard focus.
\wxheading{Parameters}
\docparam{bitmap}{The bitmap to set.}
\wxheading{See also}
\helpref{wxBitmapButton::GetBitmapFocus}{wxbitmapbuttongetbitmapfocus},\rtfsp
\helpref{wxBitmapButton::SetBitmapLabel}{wxbitmapbuttonsetbitmaplabel},\rtfsp
\helpref{wxBitmapButton::SetBitmapSelected}{wxbitmapbuttonsetbitmapselected},\rtfsp
\helpref{wxBitmapButton::SetBitmapDisabled}{wxbitmapbuttonsetbitmapdisabled}
\membersection{wxBitmapButton::SetBitmapLabel}\label{wxbitmapbuttonsetbitmaplabel}
\func{void}{SetBitmapLabel}{\param{const wxBitmap\& }{bitmap}}
Sets the bitmap label for the button.
\wxheading{Parameters}
\docparam{bitmap}{The bitmap label to set.}
\wxheading{Remarks}
This is the bitmap used for the unselected state, and for all other states
if no other bitmaps are provided.
\wxheading{See also}
\helpref{wxBitmapButton::GetBitmapLabel}{wxbitmapbuttongetbitmaplabel}
\membersection{wxBitmapButton::SetBitmapSelected}\label{wxbitmapbuttonsetbitmapselected}
\func{void}{SetBitmapSelected}{\param{const wxBitmap\& }{bitmap}}
Sets the bitmap for the selected (depressed) button appearance.
\wxheading{Parameters}
\docparam{bitmap}{The bitmap to set.}
\wxheading{See also}
\helpref{wxBitmapButton::GetBitmapSelected}{wxbitmapbuttongetbitmapselected},\rtfsp
\helpref{wxBitmapButton::SetBitmapLabel}{wxbitmapbuttonsetbitmaplabel},\rtfsp
\helpref{wxBitmapButton::SetBitmapFocus}{wxbitmapbuttonsetbitmapfocus},\rtfsp
\helpref{wxBitmapButton::SetBitmapDisabled}{wxbitmapbuttonsetbitmapdisabled}

View File

@@ -1,711 +0,0 @@
\section{\class{wxBitmap}}\label{wxbitmap}
%\overview{Overview}{wxbitmapoverview}
%
This class encapsulates the concept of a platform-dependent bitmap,
either monochrome or colour.
\wxheading{Derived from}
\helpref{wxGDIObject}{wxgdiobject}\\
\helpref{wxObject}{wxobject}
\wxheading{Include files}
<wx/bitmap.h>
\wxheading{Predefined objects}
Objects:
{\bf wxNullBitmap}
\wxheading{See also}
\helpref{wxBitmap overview}{wxbitmapoverview},
\helpref{supported bitmap file formats}{supportedbitmapformats},
\helpref{wxDC::Blit}{wxdcblit},
\helpref{wxIcon}{wxicon}, \helpref{wxCursor}{wxcursor}, \helpref{wxBitmap}{wxbitmap},
\helpref{wxMemoryDC}{wxmemorydc}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxBitmap::wxBitmap}\label{wxbitmapconstr}
\func{}{wxBitmap}{\void}
Default constructor.
\func{}{wxBitmap}{\param{const wxBitmap\& }{bitmap}}
Copy constructor.
\func{}{wxBitmap}{\param{void*}{ data}, \param{int}{ type}, \param{int}{ width}, \param{int}{ height}, \param{int}{ depth = -1}}
Creates a bitmap from the given data, which can be of arbitrary type.
\func{}{wxBitmap}{\param{const char}{ bits[]}, \param{int}{ width}, \param{int}{ height}\\
\param{int}{ depth = 1}}
Creates a bitmap from an array of bits.
\func{}{wxBitmap}{\param{int}{ width}, \param{int}{ height}, \param{int}{ depth = -1}}
Creates a new bitmap.
\func{}{wxBitmap}{\param{const char**}{ bits}}
Creates a bitmap from XPM data.
\func{}{wxBitmap}{\param{const wxString\& }{name}, \param{long}{ type}}
Loads a bitmap from a file or resource.
\wxheading{Parameters}
\docparam{bits}{Specifies an array of pixel values.}
\docparam{width}{Specifies the width of the bitmap.}
\docparam{height}{Specifies the height of the bitmap.}
\docparam{depth}{Specifies the depth of the bitmap. If this is omitted, the display depth of the
screen is used.}
\docparam{name}{This can refer to a resource name under MS Windows, or a filename under MS Windows and X.
Its meaning is determined by the {\it type} parameter.}
\docparam{type}{May be one of the following:
\twocolwidtha{5cm}
\begin{twocollist}
\twocolitem{{\bf \indexit{wxBITMAP\_TYPE\_BMP}}}{Load a Windows bitmap file.}
\twocolitem{{\bf \indexit{wxBITMAP\_TYPE\_BMP\_RESOURCE}}}{Load a Windows bitmap from the resource database.}
\twocolitem{{\bf \indexit{wxBITMAP\_TYPE\_GIF}}}{Load a GIF bitmap file.}
\twocolitem{{\bf \indexit{wxBITMAP\_TYPE\_XBM}}}{Load an X bitmap file.}
\twocolitem{{\bf \indexit{wxBITMAP\_TYPE\_XPM}}}{Load an XPM bitmap file.}
\twocolitem{{\bf \indexit{wxBITMAP\_TYPE\_RESOURCE}}}{Load a Windows resource name.}
\end{twocollist}
The validity of these flags depends on the platform and wxWindows configuration.
If all possible wxWindows settings are used, the Windows platform supports BMP file, BMP resource,
XPM data, and XPM. Under wxGTK, the available formats are BMP file, XPM data, XPM file, and PNG file.
Under wxMotif, the available formats are XBM data, XBM file, XPM data, XPM file.}
\wxheading{Remarks}
The first form constructs a bitmap object with no data; an assignment or another member function such as Create
or LoadFile must be called subsequently.
The second and third forms provide copy constructors. Note that these do not copy the
bitmap data, but instead a pointer to the data, keeping a reference count. They are therefore
very efficient operations.
The fourth form constructs a bitmap from data whose type and value depends on
the value of the {\it type} argument.
The fifth form constructs a (usually monochrome) bitmap from an array of pixel values, under both
X and Windows.
The sixth form constructs a new bitmap.
The seventh form constructs a bitmap from pixmap (XPM) data, if wxWindows has been configured
to incorporate this feature.
To use this constructor, you must first include an XPM file. For
example, assuming that the file {\tt mybitmap.xpm} contains an XPM array
of character pointers called mybitmap:
\begin{verbatim}
#include "mybitmap.xpm"
...
wxBitmap *bitmap = new wxBitmap(mybitmap);
\end{verbatim}
The eighth form constructs a bitmap from a file or resource. {\it name} can refer
to a resource name under MS Windows, or a filename under MS Windows and X.
Under Windows, {\it type} defaults to wxBITMAP\_TYPE\_BMP\_RESOURCE.
Under X, {\it type} defaults to wxBITMAP\_TYPE\_XPM.
\wxheading{See also}
\helpref{wxBitmap::LoadFile}{wxbitmaploadfile}
\pythonnote{Constructors supported by wxPython are:\par
\indented{2cm}{\begin{twocollist}
\twocolitem{\bf{wxBitmap(name, flag)}}{Loads a bitmap from a file}
\twocolitem{\bf{wxNoRefBitmap(name, flag)}}{This one won't own the
reference, so Python won't call the destructor, this is good for toolbars
and such where the parent will manage the bitmap.}
\twocolitem{\bf{wxEmptyBitmap(width, height, depth = -1)}}{Creates an
empty bitmap with the given specifications}
\end{twocollist}}
}
\membersection{wxBitmap::\destruct{wxBitmap}}
\func{}{\destruct{wxBitmap}}{\void}
Destroys the wxBitmap object and possibly the underlying bitmap data.
Because reference counting is used, the bitmap may not actually be
destroyed at this point - only when the reference count is zero will the
data be deleted.
If the application omits to delete the bitmap explicitly, the bitmap will be
destroyed automatically by wxWindows when the application exits.
Do not delete a bitmap that is selected into a memory device context.
\membersection{wxBitmap::AddHandler}\label{wxbitmapaddhandler}
\func{static void}{AddHandler}{\param{wxBitmapHandler*}{ handler}}
Adds a handler to the end of the static list of format handlers.
\docparam{handler}{A new bitmap format handler object. There is usually only one instance
of a given handler class in an application session.}
\wxheading{See also}
\helpref{wxBitmapHandler}{wxbitmaphandler}
\membersection{wxBitmap::CleanUpHandlers}
\func{static void}{CleanUpHandlers}{\void}
Deletes all bitmap handlers.
This function is called by wxWindows on exit.
\membersection{wxBitmap::Create}
\func{virtual bool}{Create}{\param{int}{ width}, \param{int}{ height}, \param{int}{ depth = -1}}
Creates a fresh bitmap. If the final argument is omitted, the display depth of
the screen is used.
\func{virtual bool}{Create}{\param{void*}{ data}, \param{int}{ type}, \param{int}{ width}, \param{int}{ height}, \param{int}{ depth = -1}}
Creates a bitmap from the given data, which can be of arbitrary type.
\wxheading{Parameters}
\docparam{width}{The width of the bitmap in pixels.}
\docparam{height}{The height of the bitmap in pixels.}
\docparam{depth}{The depth of the bitmap in pixels. If this is -1, the screen depth is used.}
\docparam{data}{Data whose type depends on the value of {\it type}.}
\docparam{type}{A bitmap type identifier - see \helpref{wxBitmap::wxBitmap}{wxbitmapconstr} for a list
of possible values.}
\wxheading{Return value}
TRUE if the call succeeded, FALSE otherwise.
\wxheading{Remarks}
The first form works on all platforms. The portability of the second form depends on the
type of data.
\wxheading{See also}
\helpref{wxBitmap::wxBitmap}{wxbitmapconstr}
\membersection{wxBitmap::FindHandler}
\func{static wxBitmapHandler*}{FindHandler}{\param{const wxString\& }{name}}
Finds the handler with the given name.
\func{static wxBitmapHandler*}{FindHandler}{\param{const wxString\& }{extension}, \param{long}{ bitmapType}}
Finds the handler associated with the given extension and type.
\func{static wxBitmapHandler*}{FindHandler}{\param{long }{bitmapType}}
Finds the handler associated with the given bitmap type.
\docparam{name}{The handler name.}
\docparam{extension}{The file extension, such as ``bmp".}
\docparam{bitmapType}{The bitmap type, such as wxBITMAP\_TYPE\_BMP.}
\wxheading{Return value}
A pointer to the handler if found, NULL otherwise.
\wxheading{See also}
\helpref{wxBitmapHandler}{wxbitmaphandler}
\membersection{wxBitmap::GetDepth}
\constfunc{int}{GetDepth}{\void}
Gets the colour depth of the bitmap. A value of 1 indicates a
monochrome bitmap.
\membersection{wxBitmap::GetHandlers}
\func{static wxList\&}{GetHandlers}{\void}
Returns the static list of bitmap format handlers.
\wxheading{See also}
\helpref{wxBitmapHandler}{wxbitmaphandler}
\membersection{wxBitmap::GetHeight}\label{wxbitmapgetheight}
\constfunc{int}{GetHeight}{\void}
Gets the height of the bitmap in pixels.
\membersection{wxBitmap::GetPalette}\label{wxbitmapgetpalette}
\constfunc{wxPalette*}{GetPalette}{\void}
Gets the associated palette (if any) which may have been loaded from a file
or set for the bitmap.
\wxheading{See also}
\helpref{wxPalette}{wxpalette}
\membersection{wxBitmap::GetMask}\label{wxbitmapgetmask}
\constfunc{wxMask*}{GetMask}{\void}
Gets the associated mask (if any) which may have been loaded from a file
or set for the bitmap.
\wxheading{See also}
\helpref{wxBitmap::SetMask}{wxbitmapsetmask}, \helpref{wxMask}{wxmask}
\membersection{wxBitmap::GetWidth}\label{wxbitmapgetwidth}
\constfunc{int}{GetWidth}{\void}
Gets the width of the bitmap in pixels.
\wxheading{See also}
\helpref{wxBitmap::GetHeight}{wxbitmapgetheight}
\membersection{wxBitmap::InitStandardHandlers}
\func{static void}{InitStandardHandlers}{\void}
Adds the standard bitmap format handlers, which, depending on wxWindows
configuration, can be handlers for Windows bitmap, Windows bitmap resource, and XPM.
This function is called by wxWindows on startup.
\wxheading{See also}
\helpref{wxBitmapHandler}{wxbitmaphandler}
\membersection{wxBitmap::InsertHandler}
\func{static void}{InsertHandler}{\param{wxBitmapHandler*}{ handler}}
Adds a handler at the start of the static list of format handlers.
\docparam{handler}{A new bitmap format handler object. There is usually only one instance
of a given handler class in an application session.}
\wxheading{See also}
\helpref{wxBitmapHandler}{wxbitmaphandler}
\membersection{wxBitmap::LoadFile}\label{wxbitmaploadfile}
\func{bool}{LoadFile}{\param{const wxString\&}{ name}, \param{long}{ type}}
Loads a bitmap from a file or resource.
\wxheading{Parameters}
\docparam{name}{Either a filename or a Windows resource name.
The meaning of {\it name} is determined by the {\it type} parameter.}
\docparam{type}{One of the following values:
\twocolwidtha{5cm}
\begin{twocollist}
\twocolitem{{\bf wxBITMAP\_TYPE\_BMP}}{Load a Windows bitmap file.}
\twocolitem{{\bf wxBITMAP\_TYPE\_BMP\_RESOURCE}}{Load a Windows bitmap from the resource database.}
\twocolitem{{\bf wxBITMAP\_TYPE\_GIF}}{Load a GIF bitmap file.}
\twocolitem{{\bf wxBITMAP\_TYPE\_XBM}}{Load an X bitmap file.}
\twocolitem{{\bf wxBITMAP\_TYPE\_XPM}}{Load an XPM bitmap file.}
\end{twocollist}
The validity of these flags depends on the platform and wxWindows configuration.}
\wxheading{Return value}
TRUE if the operation succeeded, FALSE otherwise.
\wxheading{Remarks}
A palette may be associated with the bitmap if one exists (especially for
colour Windows bitmaps), and if the code supports it. You can check
if one has been created by using the \helpref{GetPalette}{wxbitmapgetpalette} member.
\wxheading{See also}
\helpref{wxBitmap::SaveFile}{wxbitmapsavefile}
\membersection{wxBitmap::Ok}\label{wxbitmapok}
\constfunc{bool}{Ok}{\void}
Returns TRUE if bitmap data is present.
\membersection{wxBitmap::RemoveHandler}
\func{static bool}{RemoveHandler}{\param{const wxString\& }{name}}
Finds the handler with the given name, and removes it. The handler
is not deleted.
\docparam{name}{The handler name.}
\wxheading{Return value}
TRUE if the handler was found and removed, FALSE otherwise.
\wxheading{See also}
\helpref{wxBitmapHandler}{wxbitmaphandler}
\membersection{wxBitmap::SaveFile}\label{wxbitmapsavefile}
\func{bool}{SaveFile}{\param{const wxString\& }{name}, \param{int}{ type}, \param{wxPalette* }{palette = NULL}}
Saves a bitmap in the named file.
\wxheading{Parameters}
\docparam{name}{A filename. The meaning of {\it name} is determined by the {\it type} parameter.}
\docparam{type}{One of the following values:
\twocolwidtha{5cm}
\begin{twocollist}
\twocolitem{{\bf wxBITMAP\_TYPE\_BMP}}{Save a Windows bitmap file.}
\twocolitem{{\bf wxBITMAP\_TYPE\_GIF}}{Save a GIF bitmap file.}
\twocolitem{{\bf wxBITMAP\_TYPE\_XBM}}{Save an X bitmap file.}
\twocolitem{{\bf wxBITMAP\_TYPE\_XPM}}{Save an XPM bitmap file.}
\end{twocollist}
The validity of these flags depends on the platform and wxWindows configuration.}
\docparam{palette}{An optional palette used for saving the bitmap.}
% TODO: this parameter should
%probably be eliminated; instead the app should set the palette before saving.
\wxheading{Return value}
TRUE if the operation succeeded, FALSE otherwise.
\wxheading{Remarks}
Depending on how wxWindows has been configured, not all formats may be available.
\wxheading{See also}
\helpref{wxBitmap::LoadFile}{wxbitmaploadfile}
\membersection{wxBitmap::SetDepth}\label{wxbitmapsetdepth}
\func{void}{SetDepth}{\param{int }{depth}}
Sets the depth member (does not affect the bitmap data).
\wxheading{Parameters}
\docparam{depth}{Bitmap depth.}
\membersection{wxBitmap::SetHeight}\label{wxbitmapsetheight}
\func{void}{SetHeight}{\param{int }{height}}
Sets the height member (does not affect the bitmap data).
\wxheading{Parameters}
\docparam{height}{Bitmap height in pixels.}
\membersection{wxBitmap::SetMask}\label{wxbitmapsetmask}
\func{void}{SetMask}{\param{wxMask* }{mask}}
Sets the mask for this bitmap.
\wxheading{Remarks}
The bitmap object owns the mask once this has been called.
\wxheading{See also}
\helpref{wxBitmap::GetMask}{wxbitmapgetmask}, \helpref{wxMask}{wxmask}
\membersection{wxBitmap::SetOk}
\func{void}{SetOk}{\param{int }{isOk}}
Sets the validity member (does not affect the bitmap data).
\wxheading{Parameters}
\docparam{isOk}{Validity flag.}
\membersection{wxBitmap::SetPalette}\label{wxbitmapsetpalette}
\func{void}{SetPalette}{\param{wxPalette* }{palette}}
Sets the associated palette: it will be deleted in the wxBitmap
destructor, so if you do not wish it to be deleted automatically,
reset the palette to NULL before the bitmap is deleted.
\wxheading{Parameters}
\docparam{palette}{The palette to set.}
\wxheading{Remarks}
The bitmap object owns the palette once this has been called.
\wxheading{See also}
\helpref{wxPalette}{wxpalette}
\membersection{wxBitmap::SetWidth}
\func{void}{SetWidth}{\param{int }{width}}
Sets the width member (does not affect the bitmap data).
\wxheading{Parameters}
\docparam{width}{Bitmap width in pixels.}
\membersection{wxBitmap::operator $=$}
\func{wxBitmap\& }{operator $=$}{\param{const wxBitmap\& }{bitmap}}
Assignment operator. This operator does not copy any data, but instead
passes a pointer to the data in {\it bitmap} and increments a reference
counter. It is a fast operation.
\wxheading{Parameters}
\docparam{bitmap}{Bitmap to assign.}
\wxheading{Return value}
Returns 'this' object.
\membersection{wxBitmap::operator $==$}
\func{bool}{operator $==$}{\param{const wxBitmap\& }{bitmap}}
Equality operator. This operator tests whether the internal data pointers are
equal (a fast test).
\wxheading{Parameters}
\docparam{bitmap}{Bitmap to compare with 'this'}
\wxheading{Return value}
Returns TRUE if the bitmaps were effectively equal, FALSE otherwise.
\membersection{wxBitmap::operator $!=$}
\func{bool}{operator $!=$}{\param{const wxBitmap\& }{bitmap}}
Inequality operator. This operator tests whether the internal data pointers are
unequal (a fast test).
\wxheading{Parameters}
\docparam{bitmap}{Bitmap to compare with 'this'}
\wxheading{Return value}
Returns TRUE if the bitmaps were unequal, FALSE otherwise.
\section{\class{wxBitmapHandler}}\label{wxbitmaphandler}
\overview{Overview}{wxbitmapoverview}
This is the base class for implementing bitmap file loading/saving, and bitmap creation from data.
It is used within wxBitmap and is not normally seen by the application.
If you wish to extend the capabilities of wxBitmap, derive a class from wxBitmapHandler
and add the handler using \helpref{wxBitmap::AddHandler}{wxbitmapaddhandler} in your
application initialisation.
\wxheading{Derived from}
\helpref{wxObject}{wxobject}
\wxheading{Include files}
<wx/bitmap.h>
\wxheading{See also}
\helpref{wxBitmap}{wxbitmap}, \helpref{wxIcon}{wxicon}, \helpref{wxCursor}{wxcursor}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxBitmapHandler::wxBitmapHandler}\label{wxbitmaphandlerconstr}
\func{}{wxBitmapHandler}{\void}
Default constructor. In your own default constructor, initialise the members
m\_name, m\_extension and m\_type.
\membersection{wxBitmapHandler::\destruct{wxBitmapHandler}}
\func{}{\destruct{wxBitmapHandler}}{\void}
Destroys the wxBitmapHandler object.
\membersection{wxBitmapHandler::Create}
\func{virtual bool}{Create}{\param{wxBitmap* }{bitmap}, \param{void*}{ data}, \param{int}{ type}, \param{int}{ width}, \param{int}{ height}, \param{int}{ depth = -1}}
Creates a bitmap from the given data, which can be of arbitrary type. The wxBitmap object {\it bitmap} is
manipulated by this function.
\wxheading{Parameters}
\docparam{bitmap}{The wxBitmap object.}
\docparam{width}{The width of the bitmap in pixels.}
\docparam{height}{The height of the bitmap in pixels.}
\docparam{depth}{The depth of the bitmap in pixels. If this is -1, the screen depth is used.}
\docparam{data}{Data whose type depends on the value of {\it type}.}
\docparam{type}{A bitmap type identifier - see \helpref{wxBitmapHandler::wxBitmapHandler}{wxbitmapconstr} for a list
of possible values.}
\wxheading{Return value}
TRUE if the call succeeded, FALSE otherwise (the default).
\membersection{wxBitmapHandler::GetName}
\constfunc{wxString}{GetName}{\void}
Gets the name of this handler.
\membersection{wxBitmapHandler::GetExtension}
\constfunc{wxString}{GetExtension}{\void}
Gets the file extension associated with this handler.
\membersection{wxBitmapHandler::GetType}
\constfunc{long}{GetType}{\void}
Gets the bitmap type associated with this handler.
\membersection{wxBitmapHandler::LoadFile}\label{wxbitmaphandlerloadfile}
\func{bool}{LoadFile}{\param{wxBitmap* }{bitmap}, \param{const wxString\&}{ name}, \param{long}{ type}}
Loads a bitmap from a file or resource, putting the resulting data into {\it bitmap}.
\wxheading{Parameters}
\docparam{bitmap}{The bitmap object which is to be affected by this operation.}
\docparam{name}{Either a filename or a Windows resource name.
The meaning of {\it name} is determined by the {\it type} parameter.}
\docparam{type}{See \helpref{wxBitmap::wxBitmap}{wxbitmapconstr} for values this can take.}
\wxheading{Return value}
TRUE if the operation succeeded, FALSE otherwise.
\wxheading{See also}
\helpref{wxBitmap::LoadFile}{wxbitmaploadfile}\\
\helpref{wxBitmap::SaveFile}{wxbitmapsavefile}\\
\helpref{wxBitmapHandler::SaveFile}{wxbitmaphandlersavefile}
\membersection{wxBitmapHandler::SaveFile}\label{wxbitmaphandlersavefile}
\func{bool}{SaveFile}{\param{wxBitmap* }{bitmap}, \param{const wxString\& }{name}, \param{int}{ type}, \param{wxPalette* }{palette = NULL}}
Saves a bitmap in the named file.
\wxheading{Parameters}
\docparam{bitmap}{The bitmap object which is to be affected by this operation.}
\docparam{name}{A filename. The meaning of {\it name} is determined by the {\it type} parameter.}
\docparam{type}{See \helpref{wxBitmap::wxBitmap}{wxbitmapconstr} for values this can take.}
\docparam{palette}{An optional palette used for saving the bitmap.}
\wxheading{Return value}
TRUE if the operation succeeded, FALSE otherwise.
\wxheading{See also}
\helpref{wxBitmap::LoadFile}{wxbitmaploadfile}\\
\helpref{wxBitmap::SaveFile}{wxbitmapsavefile}\\
\helpref{wxBitmapHandler::LoadFile}{wxbitmaphandlerloadfile}
\membersection{wxBitmapHandler::SetName}
\func{void}{SetName}{\param{const wxString\& }{name}}
Sets the handler name.
\wxheading{Parameters}
\docparam{name}{Handler name.}
\membersection{wxBitmapHandler::SetExtension}
\func{void}{SetExtension}{\param{const wxString\& }{extension}}
Sets the handler extension.
\wxheading{Parameters}
\docparam{extension}{Handler extension.}
\membersection{wxBitmapHandler::SetType}
\func{void}{SetType}{\param{long }{type}}
Sets the handler type.
\wxheading{Parameters}
\docparam{name}{Handler type.}

View File

@@ -1,116 +0,0 @@
\section{\class{wxBitmapDataObject}}\label{wxbitmapdataobject}
wxBitmapDataObject is a specialization of wxDataObject for bitmap data. It can be
used without change to paste data into the \helpref{wxClipboard}{wxclipboard}
or a \helpref{wxDropSource}{wxdropsource}. A user may wish to derive a new class
from this class for providing a bitmap on-demand in order to minimize memory consumption
when offering data in several formats, such as a bitmap and GIF.
In order to offer bitmap data on-demand \helpref{GetSize}{wxbitmapdataobjectgetsize}
and \helpref{WriteData}{wxbitmapdataobjectwritedata} will have to be overridden.
\wxheading{Derived from}
\helpref{wxDataObject}{wxdataobject}
\wxheading{Include files}
<wx/dataobj.h>
\wxheading{See also}
\helpref{wxDataObject}{wxdataobject}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxBitmapDataObject::wxBitmapDataObject}\label{wxbitmapdataobjectwxbitmapdataobject}
\func{}{wxBitmapDataObject}{\void}
Default constructor. Call \helpref{SetBitmap}{wxbitmapdataobjectsetbitmap} later
or override \helpref{WriteData}{wxbitmapdataobjectwritedata} and
\helpref{GetSize}{wxbitmapdataobjectgetsize} for providing data on-demand.
\func{}{wxBitmapDataObject}{\param{const wxBitmap\& }{bitmap}}
Constructor, passing a bitmap.
\membersection{wxBitmapDataObject::GetSize}\label{wxbitmapdataobjectgetsize}
\constfunc{virtual size\_t}{GetSize}{\void}
Returns the data size. By default, returns the size of the bitmap data
set in the constructor or using \helpref{SetBitmap}{wxbitmapdataobjectsetbitmap}.
This can be overridden to provide size data on-demand. Note that you'd
have to call the inherited GetSize method as this is the only way
to get to know the transfer size of the bitmap in a platform dependent
way - a bitmap has different size under GTK and Windows. In practice,
this would look like this:
\begin{verbatim}
size_t MyBitmapDataObject::GetSize()
{
// Get bitmap from global container. This container
// should be able to "produce" data in all formats
// offered by the application but store it only in
// one format to reduce memory consumption.
wxBitmap my_bitmap = my_global_container->GetBitmap();
// temporarily set bitmap
SetBitmap( my_bitmap );
size_t ret = wxBitmapDataObject::GetSize();
// unset bitmap again
SetBitmap( wxNullBitmap );
retrun ret;
}
\end{verbatim}
TODO: Offer a nicer way to do this. Maybe by providing a platform
dependent function in this class like
\begin{verbatim}
size_t GetBitmapSize( const wxBitmap &bitmap )
\end{verbatim}
\membersection{wxBitmapDataObject::GetBitmap}\label{wxbitmapdataobjectgettext}
\constfunc{virtual wxBitmap}{GetBitmap}{\void}
Returns the bitmap associated with the data object. You may wish to override
this method when offering data on-demand, but this is not required by
wxWindows' internals. Use this method to get data in bitmap form from
the \helpref{wxClipboard}{wxclipboard}.
\membersection{wxBitmapDataObject::SetBitmap}\label{wxbitmapdataobjectsetbitmap}
\func{virtual void}{SetBitmap}{\param{const wxBitmap\& }{bitmap}}
Sets the bitmap associated with the data object. This method is called
internally when retrieving data from the \helpref{wxClipboard}{wxclipboard}
and may be used to paste data to the clipboard directly (instead of
on-demand).
\membersection{wxBitmapDataObject::WriteData}\label{wxbitmapdataobjectwritedata}
\constfunc{virtual void}{WriteData}{\param{void}{*dest} }
Write the data owned by this class to {\it dest}. By default, this
calls \helpref{WriteBitmap}{wxbitmapdataobjectwritebitmap} with the bitmap
set in the constructor or using \helpref{SetBitmap}{wxbitmapdataobjectsetbitmap}.
This can be overridden to provide bitmap data on-demand; in this case
\helpref{WriteBitmap}{wxbitmapdataobjectwritebitmap} must be called from
within th overriding WriteData() method.
\membersection{wxBitmapDataObject::WriteBitmap}\label{wxbitmapdataobjectwritebitmap}
\constfunc{void}{WriteBitmap}{\param{const wxBitmap\& }{bitmap}\param{void}{*dest} }
Writes the the bitmap {\it bitmap} to {\it dest}. This method must be called
from \helpref{WriteData}{wxbitmapdataobjectwritedata}.

View File

@@ -1,719 +0,0 @@
\chapter{Introduction}\label{introduction}
\pagenumbering{arabic}%
\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}%
\setfooter{\thepage}{}{}{}{}{\thepage}%
\section{What is wxWindows?}
wxWindows is a C++ framework providing GUI (Graphical User
Interface) and other facilities on more than one platform. Version 2.0 currently
supports MS Windows (16-bit, Windows 95 and Windows NT), Unix with GTK+, and Unix with Motif.
A Mac port is in an advanced state.
wxWindows was originally developed at the Artificial Intelligence
Applications Institute, University of Edinburgh, for internal use.
wxWindows has been released into the public domain in the hope
that others will also find it useful. Version 2.0 is written and
maintained by Julian Smart, Robert Roebling and 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.}
Please note that in the following, ``MS Windows" often refers to all
platforms related to Microsoft Windows, including 16-bit and 32-bit
variants, unless otherwise stated. All trademarks are acknowledged.
\section{Why another cross-platform development tool?}
wxWindows was developed to provide a cheap and flexible way to maximize
investment in GUI application development. While a number of commercial
class libraries already existed for cross-platform development,
none met all of the following criteria:
\begin{enumerate}\itemsep=0pt
\item low price;
\item source availability;
\item simplicity of programming;
\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 public domain software and a project open to everyone, wxWindows has
benefited from comments, ideas, bug fixes, enhancements and the sheer
enthusiasm of users, especially via the Internet. 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.0 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 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 some extras such as network programming
and PostScript output, and can of course be extended as needs dictate. As a bonus, it provides
a cleaner 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:
\begin{itemize}\itemsep=0pt
\item Low cost (free, in fact!)
\item You get the source.
\item Available on a variety of popular platforms.
\item Works with almost all popular C++ compilers.
\item Several example programs.
\item Over 900 pages of printable and on-line documentation.
\item Includes Tex2RTF, to allow you to produce your own documentation
in Windows Help, HTML and Word RTF formats.
\item Simple-to-use, object-oriented API.
\item Flexible event system.
\item Graphics calls include lines, rounded rectangles, splines, polylines, etc.
\item Constraint-based layout option.
\item Print/preview and document/view architectures.
\item Toolbar, notebook, tree control, advanced list control classes.
\item PostScript generation under Unix, normal MS Windows printing on the
PC.
\item MDI (Multiple Document Interface) support.
\item Can be used to create DLLs under Windows, dynamic libraries on Unix.
\item Common dialogs for file browsing, printing, colour selection, etc.
\item Under MS Windows, support for creating metafiles and copying
them to the clipboard.
\item An API for invoking help from applications.
\item Dialog Editor for building dialogs.
\item Network support via a family of socket and protocol classes.
\end{itemize}
\section{Changes from version 1.xx}\label{versionchanges}
These are a few of the major differences between versions 1.xx and 2.0.
Removals:
\begin{itemize}\itemsep=0pt
\item XView is no longer supported;
\item all controls (panel items) no longer have labels attached to them;
\item wxForm has been removed;
\item wxCanvasDC, wxPanelDC removed (replaced by wxClientDC, wxWindowDC, wxPaintDC which
can be used for any window);
\item wxMultiText, wxTextWindow, wxText removed and replaced by wxTextCtrl;
\item classes no longer divided into generic and platform-specific parts, for efficiency.
\end{itemize}
Additions and changes:
\begin{itemize}\itemsep=0pt
\item class hierarchy changed, and restrictions about subwindow nesting lifted;
\item header files reorganised to conform to normal C++ standards;
\item classes less dependent on each another, to reduce executable size;
\item wxString used instead of char* wherever possible;
\item the number of separate but mandatory utilities reduced;
\item the event system has been overhauled, with
virtual functions and callbacks being replaced with MFC-like event tables;
\item new controls, such as wxTreeCtrl, wxListCtrl, wxSpinButton;
\item less inconsistency about what events can be handled, so for example
mouse clicks or key presses on controls can now be intercepted;
\item the status bar is now a separate class, wxStatusBar, and is
implemented in generic wxWindows code;
\item some renaming of controls for greater consistency;
\item wxBitmap has the notion of bitmap handlers to allow for extension to new formats
without ifdefing;
\item new dialogs: wxPageSetupDialog, wxFileDialog, wxDirDialog,
wxMessageDialog, wxSingleChoiceDialog, wxTextEntryDialog;
\item GDI objects are reference-counted and are now passed to most functions
by reference, making memory management far easier;
\item wxSystemSettings class allows querying for various system-wide properties
such as dialog font, colours, user interface element sizes, and so on;
\item better platform look and feel conformance;
\item toolbar functionality now separated out into a family of classes with the
same API;
\item device contexts are no longer accessed using wxWindow::GetDC - they are created
temporarily with the window as an argument;
\item events from sliders and scrollbars can be handled more flexibly;
\item the handling of window close events has been changed in line with the new
event system;
\item the concept of {\it validator} has been added to allow much easier coding of
the relationship between controls and application data;
\item the documentation has been revised, with more cross-referencing.
\end{itemize}
Platform-specific changes:
\begin{itemize}\itemsep=0pt
\item The Windows header file (windows.h) is no longer included by wxWindows headers;
\item wx.dll supported under Visual C++;
\item the full range of Windows 95 window decorations are supported, such as modal frame
borders;
\item MDI classes brought out of wxFrame into separate classes, and made more flexible.
\end{itemize}
\section{wxWindows requirements}\label{requirements}
To make use of wxWindows, you currently need one or both of the
following setups.
(a) PC:
\begin{enumerate}\itemsep=0pt
\item A 486 or higher PC running MS Windows.
\item A Windows compiler: most are supported, but please see {\tt install.txt} for
details. Supported compilers include Microsoft Visual C++ 4.0 or higher, Borland C++, Cygwin,
Metrowerks CodeWarrior.
\item At least 60 MB of disk space.
\end{enumerate}
(b) Unix:
\begin{enumerate}\itemsep=0pt
\item Almost any C++ compiler, including GNU C++.
\item Almost any Unix workstation, and one of: GTK+ 1.0, Motif 1.2 or higher, Lesstif.
\item At least 60 MB of disk space.
\end{enumerate}
\section{Availability and location of wxWindows}
wxWindows is currently available from the Artificial Intelligence
Applications Institute by anonymous FTP and World Wide Web:
\begin{verbatim}
ftp://www.remstar.com/pub/wxwin
http://www.wxwindows.org
\end{verbatim}
\section{Acknowledgments}
Thanks are due to AIAI for being willing to release the original version of
wxWindows into the public domain, and to our patient partners.
We would particularly like to thank the following for their contributions to wxWindows, and the many others who have been involved in
the project over the years. Apologies for any unintentional omissions from this list.
Yiorgos Adamopoulos, Jamshid Afshar, Alejandro Aguilar-Sierra, AIAI, Patrick Albert, Karsten Ballueder, Michael Bedward, Kai Bendorf, Yura Bidus, Keith
Gary Boyce, Chris Breeze, Pete Britton, Ian Brown, C. Buckley, Dmitri Chubraev, Robin Corbet, Cecil Coupe, Andrew Davison, Neil Dudman, Robin
Dunn, Hermann Dunkel, Jos van Eijndhoven, Tom Felici, Thomas Fettig, Matthew Flatt, Pasquale Foggia, Josep Fortiana, Todd Fries, Dominic Gallagher,
Wolfram Gloger, Norbert Grotz, Stefan Gunter, Bill Hale, Patrick Halke, Stefan Hammes, Guillaume Helle, Harco de Hilster, Cord Hockemeyer, Markus
Holzem, Olaf Klein, Leif Jensen, Bart Jourquin, Guilhem Lavaux, Jan Lessner, Nicholas Liebmann, Torsten Liermann, Per Lindqvist, Thomas Runge, Tatu
M\"{a}nnist\"{o}, Scott Maxwell, Thomas Myers, Oliver Niedung, Hernan Otero, Ian Perrigo, Timothy Peters, Giordano Pezzoli, Harri Pasanen, Thomaso Paoletti,
Garrett Potts, Marcel Rasche, Robert Roebling, Dino Scaringella, Jobst Schmalenbach, Arthur Seaton, Paul Shirley, Stein Somers, Petr Smilauer, Neil Smith,
Kari Syst\"{a}, Arthur Tetzlaff-Deas, Jonathan Tonberg, Jyrki Tuomi, Janos Vegh, Andrea Venturoli, Vadim Zeitlin, Xiaokun Zhu, Edward Zimmermann.
`Graphplace', the basis for the wxGraphLayout library, is copyright Dr. Jos
T.J. van Eijndhoven of Eindhoven University of Technology. The code has
been used in wxGraphLayout with his permission.
We also acknowledge the author of XFIG, the excellent Unix drawing tool,
from the source of which we have borrowed some spline drawing code.
His copyright is included below.
{\it XFig2.1 is copyright (c) 1985 by Supoj Sutanthavibul. Permission to
use, copy, modify, distribute, and sell this software and its
documentation for any purpose is hereby granted without fee, provided
that the above copyright notice appear in all copies and that both that
copyright notice and this permission notice appear in supporting
documentation, and that the name of M.I.T. not be used in advertising or
publicity pertaining to distribution of the software without specific,
written prior permission. M.I.T. makes no representations about the
suitability of this software for any purpose. It is provided ``as is''
without express or implied warranty.}
\chapter{Multi-platform development with wxWindows}\label{multiplat}
\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}%
\setfooter{\thepage}{}{}{}{}{\thepage}%
This chapter describes the practical details of using wxWindows. Please
see the file install.txt for up-to-date installation instructions, and
changes.txt for differences between versions.
\section{Include files}
The main include file is {\tt "wx/wx.h"}; this includes the most commonly
used modules of wxWindows.
To save on compilation time, include only those header files relevant to the
source file. If you are using precompiled headers, you should include
the following section before any other includes:
\begin{verbatim}
// For compilers that support precompilation, includes "wx.h".
#include <wx/wxprec.h>
#ifdef __BORLANDC__
#pragma hdrstop
#endif
#ifndef WX_PRECOMP
// Include your minimal set of headers here, or wx.h
#include <wx/wx.h>
#endif
... now your other include files ...
\end{verbatim}
The file {\tt "wx/wxprec.h"} includes {\tt "wx/wx.h"}. Although this incantation
may seem quirky, it is in fact the end result of a lot of experimentation,
and several Windows compilers to use precompilation (those tested are Microsoft Visual C++, Borland C++
and Watcom C++).
Borland precompilation is largely automatic. Visual C++ requires specification of {\tt "wx/wxprec.h"} as
the file to use for precompilation. Watcom C++ is automatic apart from the specification of
the .pch file. Watcom C++ is strange in requiring the precompiled header to be used only for
object files compiled in the same directory as that in which the precompiled header was created.
Therefore, the wxWindows Watcom C++ makefiles go through hoops deleting and recreating
a single precompiled header file for each module, thus preventing an accumulation of many
multi-megabyte .pch files.
\section{Libraries}
Please the wxGTK or wxMotif documentation for use of the Unix version of wxWindows.
Under Windows, use the library wx.lib for stand-alone Windows
applications, or wxdll.lib for creating DLLs.
\section{Configuration}
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
of taste, some help with platform-specific problems, and
others can be set to minimize the size of the library. Please see the setup.h file
and {\tt install.txt} files for details on configuration.
\section{Makefiles}
At the moment there is no attempt to make Unix makefiles and
PC makefiles compatible, i.e. one makefile is required for
each environment. wxGTK has its own configure system which can also
be used with wxMotif, although wxMotif has a simple makefile system of its own.
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
and utilities.
The controlling makefile for wxWindows is in the platform-specific
directory, such as {\tt src/msw} or {\tt src/motif}.
Please see the platform-specific {\tt install.txt} file for further details.
\section{Windows-specific files}
wxWindows application compilation under MS Windows requires at least two
extra files, resource and module definition files.
\subsection{Resource file}\label{resources}
The least that must be defined in the Windows resource file (extension RC)
is the following statement:
\begin{verbatim}
rcinclude "wx/msw/wx.rc"
\end{verbatim}
which includes essential internal wxWindows definitions. The resource script
may also contain references to icons, cursors, etc., for example:
\begin{verbatim}
wxicon icon wx.ico
\end{verbatim}
The icon can then be referenced by name when creating a frame icon. See
the MS Windows SDK documentation.
\normalbox{Note: include wx.rc {\it after} any ICON statements
so programs that search your executable for icons (such
as the Program Manager) find your application icon first.}
\subsection{Module definition file}
A module definition file (extension DEF) is required for 16-bit applications, and
looks like the following:
\begin{verbatim}
NAME Hello
DESCRIPTION 'Hello'
EXETYPE WINDOWS
STUB 'WINSTUB.EXE'
CODE PRELOAD MOVEABLE DISCARDABLE
DATA PRELOAD MOVEABLE MULTIPLE
HEAPSIZE 1024
STACKSIZE 8192
\end{verbatim}
The only lines which will usually have to be changed per application are
NAME and DESCRIPTION.
\subsection{Allocating and deleting wxWindows objects}
In general, classes derived from wxWindow must dynamically allocated
with {\it new} and deleted with {\it delete}. If you delete a window,
all of its children and descendants will be automatically deleted,
so you don't need to delete these descendants explicitly.
When deleting a frame or dialog, use {\bf Destroy} rather than {\bf delete} so
that the wxWindows delayed deletion can take effect. This waits until idle time
(when all messages have been processed) to actually delete the window, to avoid
problems associated with the GUI sending events to deleted windows.
Don't create a window on the stack, because this will interfere
with delayed deletion.
If you decide to allocate a C++ array of objects (such as wxBitmap) that may
be cleaned up by wxWindows, make sure you delete the array explicitly
before wxWindows has a chance to do so on exit, since calling {\it delete} on
array members will cause memory problems.
wxColour can be created statically: it is not automatically cleaned
up and is unlikely to be shared between other objects; it is lightweight
enough for copies to be made.
Beware of deleting objects such as a wxPen or wxBitmap if they are still in use.
Windows is particularly sensitive to this: so make sure you
make calls like wxDC::SetPen(wxNullPen) or wxDC::SelectObject(wxNullBitmap) before deleting
a drawing object that may be in use. Code that doesn't do this will probably work
fine on some platforms, and then fail under Windows.
\section{Conditional compilation}
One of the purposes of wxWindows is to reduce the need for conditional
compilation in source code, which can be messy and confusing to follow.
However, sometimes it is necessary to incorporate platform-specific
features (such as metafile use under MS Windows). The symbols
listed in the file {\tt symbols.txt} may be used for this purpose,
along with any user-supplied ones.
\section{C++ issues}
The following documents some miscellaneous C++ issues.
\subsection{Templates}
wxWindows does not use templates since it is a notoriously unportable feature.
\subsection{RTTI}
wxWindows does not use run-time type information since wxWindows provides
its own run-time type information system, implemented using macros.
\subsection{Type of NULL}
Some compilers (e.g. the native IRIX cc) define NULL to be 0L so that
no conversion to pointers is allowed. Because of that, all these
occurences of NULL in the GTK port use an explicit conversion such
as
{\small
\begin{verbatim}
wxWindow *my_window = (wxWindow*) NULL;
\end{verbatim}
}
It is recommended to adhere to this in all code using wxWindows as
this make the code (a bit) more portable.
\subsection{Precompiled headers}
Some compilers, such as Borland C++ and Microsoft C++, support
precompiled headers. This can save a great deal of compiling time. The
recommended approach is to precompile {\tt "wx.h"}, using this
precompiled header for compiling both wxWindows itself and any
wxWindows applications. For Windows compilers, two dummy source files
are provided (one for normal applications and one for creating DLLs)
to allow initial creation of the precompiled header.
However, there are several downsides to using precompiled headers. One
is that to take advantage of the facility, you often need to include
more header files than would normally be the case. This means that
changing a header file will cause more recompilations (in the case of
wxWindows, everything needs to be recompiled since everything includes {\tt "wx.h"}!)
A related problem is that for compilers that don't have precompiled
headers, including a lot of header files slows down compilation
considerably. For this reason, you will find (in the common
X and Windows parts of the library) conditional
compilation that under Unix, includes a minimal set of headers;
and when using Visual C++, includes {\tt wx.h}. This should help provide
the optimal compilation for each compiler, although it is
biassed towards the precompiled headers facility available
in Microsoft C++.
\section{File handling}
When building an application which may be used under different
environments, one difficulty is coping with documents which may be
moved to different directories on other machines. Saving a file which
has pointers to full pathnames is going to be inherently unportable. One
approach is to store filenames on their own, with no directory
information. The application searches through a number of locally
defined directories to find the file. To support this, the class {\bf
wxPathList} makes adding directories and searching for files easy, and
the global function {\bf wxFileNameFromPath} allows the application to
strip off the filename from the path if the filename must be stored.
This has undesirable ramifications for people who have documents of the
same name in different directories.
As regards the limitations of DOS 8+3 single-case filenames versus
unrestricted Unix filenames, the best solution is to use DOS filenames
for your application, and also for document filenames {\it if} the user
is likely to be switching platforms regularly. Obviously this latter
choice is up to the application user to decide. Some programs (such as
YACC and LEX) generate filenames incompatible with DOS; the best
solution here is to have your Unix makefile rename the generated files
to something more compatible before transferring the source to DOS.
Transferring DOS files to Unix is no problem, of course, apart from EOL
conversion for which there should be a utility available (such as
dos2unix).
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}
\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 modelled 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.
Directed graphs may also be drawn using this library, if cycles are
removed before the nodes and arcs are passed to the algorithm.
Tree displays are used in many applications: directory browsers,
hypertext systems, class browsers, and decision trees are a few
possibilities.
See the separate manual and the directory utils/wxtree.
\section{wxGraphLayout}
The wxGraphLayout class is based on a tool called `graphplace' by Dr.
Jos T.J. van Eijndhoven of Eindhoven University of Technology. Given a
(possibly cyclic) directed graph, it does its best to lay out the nodes
in a sensible manner. There are many applications (such as diagramming)
where it is required to display a graph with no human intervention. Even
if manual repositioning is later required, this algorithm can make a good
first attempt.
See the separate manual and the directory utils/wxgraph.
\section{Colours}\label{coloursampler}
A colour sampler for viewing colours and their names on each
platform.
%
\chapter{Tutorial}\label{tutorial}
\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}%
\setfooter{\thepage}{}{}{}{}{\thepage}%
To be written.
\end{comment}
\chapter{Programming strategies}\label{strategies}
\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}%
\setfooter{\thepage}{}{}{}{}{\thepage}%
This chapter is intended to list strategies that may be useful when
writing and debugging wxWindows programs. If you have any good tips,
please submit them for inclusion here.
\section{Strategies for reducing programming errors}
\subsection{Use ASSERT}
Although I haven't done this myself within wxWindows, it is good
practice to use ASSERT statements liberally, that check for conditions that
should or should not hold, and print out appropriate error messages.
These can be compiled out of a non-debugging version of wxWindows
and your application. Using ASSERT is an example of `defensive programming':
it can alert you to problems later on.
\subsection{Use wxString in preference to character arrays}
Using wxString can be much safer and more convenient than using char *.
Again, I haven't practised what I'm preaching, but I'm now trying to use
wxString wherever possible. You can reduce the possibility of memory
leaks substantially, and it's much more convenient to use the overloaded
operators than functions such as strcmp. wxString won't add a significant
overhead to your program; the overhead is compensated for by easier
manipulation (which means less code).
The same goes for other data types: use classes wherever possible.
\section{Strategies for portability}
\subsection{Use relative positioning or constraints}
Don't use absolute panel item positioning if you can avoid it. Different GUIs have
very differently sized panel items. Consider using the constraint system, although this
can be complex to program.
Alternatively, you could use alternative .wrc (wxWindows resource files) on different
platforms, with slightly different dimensions in each. Or space your panel items out
to avoid problems.
\subsection{Use wxWindows resource files}
Use .wrc (wxWindows resource files) where possible, because they can be easily changed
independently of source code. Bitmap resources can be set up to load different
kinds of bitmap depending on platform (see the section on resource files).
\section{Strategies for debugging}\label{debugstrategies}
\subsection{Positive thinking}
It's common to blow up the problem in one's imagination, so that it seems to threaten
weeks, months or even years of work. The problem you face may seem insurmountable:
but almost never is. Once you have been programming for some time, you will be able
to remember similar incidents that threw you into the depths of despair. But
remember, you always solved the problem, somehow!
Perseverance is often the key, even though a seemingly trivial problem
can take an apparently inordinate amount of time to solve. In the end,
you will probably wonder why you worried so much. That's not to say it
isn't painful at the time. Try not to worry -- there are many more important
things in life.
\subsection{Simplify the problem}
Reduce the code exhibiting the problem to the smallest program possible
that exhibits the problem. If it is not possible to reduce a large and
complex program to a very small program, then try to ensure your code
doesn't hide the problem (you may have attempted to minimize the problem
in some way: but now you want to expose it).
With luck, you can add a small amount of code that causes the program
to go from functioning to non-functioning state. This should give a clue
to the problem. In some cases though, such as memory leaks or wrong
deallocation, this can still give totally spurious results!
\subsection{Use a debugger}
This sounds like facetious advice, but it's surprising how often people
don't use a debugger. Often it's an overhead to install or learn how to
use a debugger, but it really is essential for anything but the most
trivial programs.
\subsection{Use logging functions}
There is a variety of logging functions that you can use in your program:
see \helpref{Logging functions}{logfunctions}.
Using tracing statements may be more convenient than using the debugger
in some circumstances (such as when your debugger doesn't support a lot
of debugging code, or you wish to print a bunch of variables).
\subsection{Use the wxWindows debugging facilities}
You can use wxDebugContext to check for
memory leaks and corrupt memory: in fact in debugging mode, wxWindows will
automatically check for memory leaks at the end of the program if wxWindows is suitably
configured. Depending on the operating system and compiler, more or less
specific information about the problem will be logged.
You should also use \helpref{debug macros}{debugmacros} as part of a `defensive programming' strategy,
scattering wxASSERTs liberally to test for problems in your code as early as possible. Forward thinking
will save a surprising amount of time in the long run.
See the \helpref{debugging overview}{debuggingoverview} for further information.
\subsection{Check Windows debug messages}
Under Windows, it's worth running your program with DBWIN running or
some other program that shows Windows-generated debug messages. It's
possible it'll show invalid handles being used. You may have fun seeing
what commercial programs cause these normally hidden errors! Microsoft
recommend using the debugging version of Windows, which shows up even
more problems. However, I doubt it's worth the hassle for most
applications. wxWindows is designed to minimize the possibility of such
errors, but they can still happen occasionally, slipping through unnoticed
because they are not severe enough to cause a crash.
\subsection{Genetic mutation}
If we had sophisticated genetic algorithm tools that could be applied
to programming, we could use them. Until then, a common -- if rather irrational --
technique is to just make arbitrary changes to the code until something
different happens. You may have an intuition why a change will make a difference;
otherwise, just try altering the order of code, comment lines out, anything
to get over an impasse. Obviously, this is usually a last resort.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 566 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 242 B

View File

@@ -1,365 +0,0 @@
\section{\class{wxBrush}}\label{wxbrush}
A brush is a drawing tool for filling in areas. It is used for painting
the background of rectangles, ellipses, etc. It has a colour and a
style.
\wxheading{Derived from}
\helpref{wxGDIObject}{wxgdiobject}\\
\helpref{wxObject}{wxobject}
\wxheading{Include files}
<wx/brush.h>
\wxheading{Predefined objects}
Objects:
{\bf wxNullBrush}
Pointers:
{\bf wxBLUE\_BRUSH\\
wxGREEN\_BRUSH\\
wxWHITE\_BRUSH\\
wxBLACK\_BRUSH\\
wxGREY\_BRUSH\\
wxMEDIUM\_GREY\_BRUSH\\
wxLIGHT\_GREY\_BRUSH\\
wxTRANSPARENT\_BRUSH\\
wxCYAN\_BRUSH\\
wxRED\_BRUSH}
\wxheading{Remarks}
On a monochrome display, wxWindows shows
all brushes as white unless the colour is really black.
Do not initialize objects on the stack before the program commences,
since other required structures may not have been set up yet. Instead,
define global pointers to objects and create them in \helpref{wxApp::OnInit}{wxapponinit} or
when required.
An application may wish to create brushes with different
characteristics dynamically, and there is the consequent danger that a
large number of duplicate brushes will be created. Therefore an
application may wish to get a pointer to a brush by using the global
list of brushes {\bf wxTheBrushList}, and calling the member function
\rtfsp{\bf FindOrCreateBrush}.
wxBrush uses a reference counting system, so assignments between brushes are very
cheap. You can therefore use actual wxBrush objects instead of pointers without
efficiency problems. Once one wxBrush object changes its data it will create its
own brush data internally so that other brushes, which previously shared the
data using the reference counting, are not affected.
%TODO: an overview for wxBrush.
\wxheading{See also}
\helpref{wxBrushList}{wxbrushlist}, \helpref{wxDC}{wxdc}, \helpref{wxDC::SetBrush}{wxdcsetbrush}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxBrush::wxBrush}
\func{}{wxBrush}{\void}
Default constructor. The brush will be uninitialised, and \helpref{wxBrush::Ok}{wxbrushok} will
return FALSE.
\func{}{wxBrush}{\param{const wxColour\&}{ colour}, \param{int}{ style}}
Constructs a brush from a colour object and style.
\func{}{wxBrush}{\param{const wxString\& }{colourName}, \param{int}{ style}}
Constructs a brush from a colour name and style.
\func{}{wxBrush}{\param{const wxBitmap\& }{stippleBitmap}}
Constructs a stippled brush using a bitmap.
\func{}{wxBrush}{\param{const wxBrush\&}{ brush}}
Copy constructor. This uses reference counting so is a cheap operation.
\wxheading{Parameters}
\docparam{colour}{Colour object.}
\docparam{colourName}{Colour name. The name will be looked up in the colour database.}
\docparam{style}{One of:
\begin{twocollist}\itemsep=0pt
\twocolitem{{\bf wxTRANSPARENT}}{Transparent (no fill).}
\twocolitem{{\bf wxSOLID}}{Solid.}
\twocolitem{{\bf wxBDIAGONAL\_HATCH}}{Backward diagonal hatch.}
\twocolitem{{\bf wxCROSSDIAG\_HATCH}}{Cross-diagonal hatch.}
\twocolitem{{\bf wxFDIAGONAL\_HATCH}}{Forward diagonal hatch.}
\twocolitem{{\bf wxCROSS\_HATCH}}{Cross hatch.}
\twocolitem{{\bf wxHORIZONTAL\_HATCH}}{Horizontal hatch.}
\twocolitem{{\bf wxVERTICAL\_HATCH}}{Vertical hatch.}
\end{twocollist}}
\docparam{brush}{Pointer or reference to a brush to copy.}
\docparam{stippleBitmap}{A bitmap to use for stippling.}
\wxheading{Remarks}
If a stipple brush is created, the brush style will be set to wxSTIPPLE.
\wxheading{See also}
\helpref{wxBrushList}{wxbrushlist}, \helpref{wxColour}{wxcolour}, \helpref{wxColourDatabase}{wxcolourdatabase}
\membersection{wxBrush::\destruct{wxBrush}}
\func{void}{\destruct{wxBrush}}{\void}
Destructor.
\wxheading{Remarks}
The destructor may not delete the underlying brush object of the native windowing
system, since wxBrush uses a reference counting system for efficiency.
Although all remaining brushes are deleted when the application exits,
the application should try to clean up all brushes itself. This is because
wxWindows cannot know if a pointer to the brush object is stored in an
application data structure, and there is a risk of double deletion.
\membersection{wxBrush::GetColour}\label{wxbrushgetcolour}
\constfunc{wxColour\&}{GetColour}{\void}
Returns a reference to the brush colour.
\wxheading{See also}
\helpref{wxBrush::SetColour}{wxbrushsetcolour}
\membersection{wxBrush::GetStipple}\label{wxbrushgetstipple}
\constfunc{wxBitmap *}{GetStipple}{\void}
Gets a pointer to the stipple bitmap. If the brush does not have a wxSTIPPLE style,
this bitmap may be non-NULL but uninitialised (\helpref{wxBitmap::Ok}{wxbitmapok} returns FALSE).
\wxheading{See also}
\helpref{wxBrush::SetStipple}{wxbrushsetstipple}
\membersection{wxBrush::GetStyle}\label{wxbrushgetstyle}
\constfunc{int}{GetStyle}{\void}
Returns the brush style, one of:
\begin{twocollist}\itemsep=0pt
\twocolitem{{\bf wxTRANSPARENT}}{Transparent (no fill).}
\twocolitem{{\bf wxSOLID}}{Solid.}
\twocolitem{{\bf wxBDIAGONAL\_HATCH}}{Backward diagonal hatch.}
\twocolitem{{\bf wxCROSSDIAG\_HATCH}}{Cross-diagonal hatch.}
\twocolitem{{\bf wxFDIAGONAL\_HATCH}}{Forward diagonal hatch.}
\twocolitem{{\bf wxCROSS\_HATCH}}{Cross hatch.}
\twocolitem{{\bf wxHORIZONTAL\_HATCH}}{Horizontal hatch.}
\twocolitem{{\bf wxVERTICAL\_HATCH}}{Vertical hatch.}
\twocolitem{{\bf wxSTIPPLE}}{Stippled using a bitmap.}
\end{twocollist}
\wxheading{See also}
\helpref{wxBrush::SetStyle}{wxbrushsetstyle}, \helpref{wxBrush::SetColour}{wxbrushsetcolour},\rtfsp
\helpref{wxBrush::SetStipple}{wxbrushsetstipple}
\membersection{wxBrush::Ok}\label{wxbrushok}
\constfunc{bool}{Ok}{\void}
Returns TRUE if the brush is initialised. It will return FALSE if the default
constructor has been used (for example, the brush is a member of a class, or
NULL has been assigned to it).
\membersection{wxBrush::SetColour}\label{wxbrushsetcolour}
\func{void}{SetColour}{\param{wxColour\& }{colour}}
Sets the brush colour using a reference to a colour object.
\func{void}{SetColour}{\param{const wxString\& }{colourName}}
Sets the brush colour using a colour name from the colour database.
\func{void}{SetColour}{\param{const unsigned char}{ red}, \param{const unsigned char}{ green}, \param{const unsigned char}{ blue}}
Sets the brush colour using red, green and blue values.
\wxheading{See also}
\helpref{wxBrush::GetColour}{wxbrushgetcolour}
\membersection{wxBrush::SetStipple}\label{wxbrushsetstipple}
\func{void}{SetStipple}{\param{const wxBitmap\&}{ bitmap}}
Sets the stipple bitmap.
\wxheading{Parameters}
\docparam{bitmap}{The bitmap to use for stippling.}
\wxheading{Remarks}
The style will be set to wxSTIPPLE.
Note that there is a big difference between stippling in X and Windows.
On X, the stipple is a mask between the wxBitmap and current colour.
On Windows, the current colour is ignored, and the bitmap colour is used.
However, for pre-defined modes like wxCROSS\_HATCH, the behaviour is the
same for both platforms.
\wxheading{See also}
\helpref{wxBitmap}{wxbitmap}
\membersection{wxBrush::SetStyle}\label{wxbrushsetstyle}
\func{void}{SetStyle}{\param{int}{ style}}
Sets the brush style.
\docparam{style}{One of:
\begin{twocollist}\itemsep=0pt
\twocolitem{{\bf wxTRANSPARENT}}{Transparent (no fill).}
\twocolitem{{\bf wxSOLID}}{Solid.}
\twocolitem{{\bf wxBDIAGONAL\_HATCH}}{Backward diagonal hatch.}
\twocolitem{{\bf wxCROSSDIAG\_HATCH}}{Cross-diagonal hatch.}
\twocolitem{{\bf wxFDIAGONAL\_HATCH}}{Forward diagonal hatch.}
\twocolitem{{\bf wxCROSS\_HATCH}}{Cross hatch.}
\twocolitem{{\bf wxHORIZONTAL\_HATCH}}{Horizontal hatch.}
\twocolitem{{\bf wxVERTICAL\_HATCH}}{Vertical hatch.}
\twocolitem{{\bf wxSTIPPLE}}{Stippled using a bitmap.}
\end{twocollist}}
\wxheading{See also}
\helpref{wxBrush::GetStyle}{wxbrushgetstyle}
\membersection{wxBrush::operator $=$}\label{wxbrushassignment}
\func{wxBrush\&}{operator $=$}{\param{const wxBrush\& }{brush}}
Assignment operator, using reference counting. Returns a reference
to `this'.
\membersection{wxBrush::operator $==$}\label{wxbrushequals}
\func{bool}{operator $==$}{\param{const wxBrush\& }{brush}}
Equality operator. Two brushes are equal if they contain pointers
to the same underlying brush data. It does not compare each attribute,
so two independently-created brushes using the same parameters will
fail the test.
\membersection{wxBrush::operator $!=$}\label{wxbrushnotequals}
\func{bool}{operator $!=$}{\param{const wxBrush\& }{brush}}
Inequality operator. Two brushes are not equal if they contain pointers
to different underlying brush data. It does not compare each attribute.
\section{\class{wxBrushList}}\label{wxbrushlist}
A brush list is a list containing all brushes which have been created.
\wxheading{Derived from}
\helpref{wxList}{wxlist}\\
\helpref{wxObject}{wxobject}
\wxheading{Include files}
<wx/gdicmn.h>
\wxheading{Remarks}
There is only one instance of this class: {\bf wxTheBrushList}. Use
this object to search for a previously created brush of the desired
type and create it if not already found. In some windowing systems,
the brush may be a scarce resource, so it can pay to reuse old
resources if possible. When an application finishes, all brushes will
be deleted and their resources freed, eliminating the possibility of
`memory leaks'. However, it is best not to rely on this automatic
cleanup because it can lead to double deletion in some circumstances.
There are two mechanisms in recent versions of wxWindows which make the
brush list less useful than it once was. Under Windows, scarce resources
are cleaned up internally if they are not being used. Also, a referencing
counting mechanism applied to all GDI objects means that some sharing
of underlying resources is possible. You don't have to keep track of pointers,
working out when it is safe delete a brush, because the referencing counting does
it for you. For example, you can set a brush in a device context, and then
immediately delete the brush you passed, because the brush is `copied'.
So you may find it easier to ignore the brush list, and instead create
and copy brushes as you see fit. If your Windows resource meter suggests
your application is using too many resources, you can resort to using
GDI lists to share objects explicitly.
The only compelling use for the brush list is for wxWindows to keep
track of brushes in order to clean them up on exit. It is also kept for
backward compatibility with earlier versions of wxWindows.
\wxheading{See also}
\helpref{wxBrush}{wxbrush}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxBrushList::wxBrushList}\label{wxbrushlistconstr}
\func{void}{wxBrushList}{\void}
Constructor. The application should not construct its own brush list:
use the object pointer {\bf wxTheBrushList}.
\membersection{wxBrushList::AddBrush}\label{wxbrushlistaddbrush}
\func{void}{AddBrush}{\param{wxBrush *}{brush}}
Used internally by wxWindows to add a brush to the list.
\membersection{wxBrushList::FindOrCreateBrush}\label{wxbrushlistfindorcreatebrush}
\func{wxBrush *}{FindOrCreateBrush}{\param{const wxColour\& }{colour}, \param{int}{ style}}
Finds a brush with the specified attributes and returns it, else creates a new brush, adds it
to the brush list, and returns it.
\func{wxBrush *}{FindOrCreateBrush}{\param{const wxString\& }{colourName}, \param{int}{ style}}
Finds a brush with the specified attributes and returns it, else creates a new brush, adds it
to the brush list, and returns it.
Finds a brush of the given specification, or creates one and adds it to the list.
\wxheading{Parameters}
\docparam{colour}{Colour object.}
\docparam{colourName}{Colour name, which should be in the colour database.}
\docparam{style}{Brush style. See \helpref{wxBrush::SetStyle}{wxbrushsetstyle} for a list of styles.}
\membersection{wxBrushList::RemoveBrush}\label{wxbrushlistremovebrush}
\func{void}{RemoveBrush}{\param{wxBrush *}{brush}}
Used by wxWindows to remove a brush from the list.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 198 B

View File

@@ -1,44 +0,0 @@
\section{\class{wxBusyCursor}}\label{wxbusycursor}
This class makes it easy to tell your user that the program is temporarily busy.
Just create a wxBusyCursor object on the stack, and within the current scope,
the hourglass will be shown.
For example:
\begin{verbatim}
wxBusyCursor wait;
for (int i = 0; i < 100000; i++)
DoACalculation();
\end{verbatim}
It works by calling \helpref{wxBeginBusyCursor}{wxbeginbusycursor} in the constructor,
and \helpref{wxEndBusyCursor}{wxendbusycursor} in the destructor.
\wxheading{Derived from}
None
\wxheading{Include files}
<wx/utils.h>
\wxheading{See also}
\helpref{wxBeginBusyCursor}{wxbeginbusycursor}, \helpref{wxEndBusyCursor}{wxendbusycursor}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxBusyCursor::wxBusyCursor}
\func{}{wxBusyCursor}{\param{wxCursor*}{ cursor = wxHOURGLASS\_CURSOR}}
Constructs a busy cursor object, calling \helpref{wxBeginBusyCursor}{wxbeginbusycursor}.
\membersection{wxBusyCursor::\destruct{wxBusyCursor}}
\func{}{\destruct{wxBusyCursor}}{\void}
Destroys the busy cursor object, calling \helpref{wxEndBusyCursor}{wxendbusycursor}.

View File

@@ -1,138 +0,0 @@
\section{\class{wxButton}}\label{wxbutton}
A button is a control that contains a text string,
and is one of the commonest elements of a GUI. It may be placed on a
\rtfsp\helpref{dialog box}{wxdialog} or \helpref{panel}{wxpanel}, or indeed
almost any other window.
\wxheading{Derived from}
\helpref{wxControl}{wxcontrol}\\
\helpref{wxWindow}{wxwindow}\\
\helpref{wxEvtHandler}{wxevthandler}\\
\helpref{wxObject}{wxobject}
\wxheading{Include files}
<wx/button.h>
\wxheading{Window styles}
There are no special styles for wxButton.
See also \helpref{window styles overview}{windowstyles}.
\wxheading{Event handling}
\twocolwidtha{7cm}%
\begin{twocollist}\itemsep=0pt
\twocolitem{{\bf EVT\_BUTTON(id, func)}}{Process a wxEVT\_COMMAND\_BUTTON\_CLICKED event,
when the button is clicked.}
\end{twocollist}
\wxheading{See also}
\helpref{wxBitmapButton}{wxbitmapbutton}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxButton::wxButton}\label{wxbuttonconstr}
\func{}{wxButton}{\void}
Default constructor.
\func{}{wxButton}{\param{wxWindow* }{parent}, \param{wxWindowID}{ id}, \param{const wxString\& }{label},\rtfsp
\param{const wxPoint\& }{pos}, \param{const wxSize\& }{size = wxDefaultSize},\rtfsp
\param{long}{ style = 0}, \param{const wxValidator\& }{validator}, \param{const wxString\& }{name = ``button"}}
Constructor, creating and showing a button.
\wxheading{Parameters}
\docparam{parent}{Parent window. Must not be NULL.}
\docparam{id}{Button identifier. A value of -1 indicates a default value.}
\docparam{label}{Text to be displayed on the button.}
\docparam{pos}{Button position.}
\docparam{size}{Button size. If the default size (-1, -1) is specified then the button is sized
appropriately for the text.}
\docparam{style}{Window style. See \helpref{wxButton}{wxbutton}.}
\docparam{validator}{Window validator.}
\docparam{name}{Window name.}
\wxheading{See also}
\helpref{wxButton::Create}{wxbuttoncreate}, \helpref{wxValidator}{wxvalidator}
\membersection{wxButton::\destruct{wxButton}}
\func{}{\destruct{wxButton}}{\void}
Destructor, destroying the button.
\membersection{wxButton::Create}\label{wxbuttoncreate}
\func{bool}{Create}{\param{wxWindow* }{parent}, \param{wxWindowID}{ id}, \param{const wxString\& }{label},\rtfsp
\param{const wxPoint\& }{pos}, \param{const wxSize\& }{size = wxDefaultSize},\rtfsp
\param{long}{ style = 0}, \param{const wxValidator\& }{validator}, \param{const wxString\& }{name = ``button"}}
Button creation function for two-step creation. For more details, see \helpref{wxButton::wxButton}{wxbuttonconstr}.
\membersection{wxButton::GetLabel}\label{wxbuttongetlabel}
\constfunc{wxString}{GetLabel}{\void}
Returns the string label for the button.
\wxheading{Return value}
The button's label.
\wxheading{See also}
\helpref{wxButton::SetLabel}{wxbuttonsetlabel}
\membersection{wxButton::SetDefault}\label{wxbuttonsetdefault}
\func{void}{SetDefault}{\void}
This sets the button to be the default item for the panel or dialog
box.
\wxheading{Remarks}
Under Windows, only dialog box buttons respond to this function. As
normal under Windows and Motif, pressing return causes the default button to
be depressed when the return key is pressed. See also \helpref{wxWindow::SetFocus}{wxwindowsetfocus}\rtfsp
which sets the keyboard focus for windows and text panel items,\rtfsp
and \helpref{wxWindow::GetDefaultItem}{wxwindowgetdefaultitem}.
Note that under Motif, calling this function immediately after
creation of a button and before the creation of other buttons
will cause misalignment of the row of buttons, since default
buttons are larger. To get around this, call {\it SetDefault}\rtfsp
after you have created a row of buttons: wxWindows will
then set the size of all buttons currently on the panel to
the same size.
\membersection{wxButton::SetLabel}\label{wxbuttonsetlabel}
\func{void}{SetLabel}{\param{const wxString\& }{label}}
Sets the string label for the button.
\wxheading{Parameters}
\docparam{label}{The label to set.}
\wxheading{See also}
\helpref{wxButton::GetLabel}{wxbuttongetlabel}

View File

@@ -1,64 +0,0 @@
\section{\class{wxCalculateLayoutEvent}}\label{wxcalculatelayoutevent}
This event is sent by \helpref{wxLayoutAlgorithm}{wxlayoutalgorithm} to
calculate the amount of the remaining client area that the window should
occupy.
\wxheading{Derived from}
\helpref{wxEvent}{wxevent}\\
\helpref{wxObject}{wxobject}
\wxheading{Include files}
<wx/laywin.h>
\wxheading{Event table macros}
\twocolwidtha{7cm}%
\begin{twocollist}\itemsep=0pt
\twocolitem{{\bf EVT\_CALCULATE\_LAYOUT(func)}}{Process a wxEVT\_CALCULATE\_LAYOUT event,
which asks the window to take a 'bite' out of a rectangle provided by the algorithm.}
\end{twocollist}
\wxheading{See also}
\helpref{wxQueryLayoutInfoEvent}{wxquerylayoutinfoevent},\rtfsp
\helpref{wxSashLayoutWindow}{wxsashlayoutwindow},\rtfsp
\helpref{wxLayoutAlgorithm}{wxlayoutalgorithm}.
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxCalculateLayoutEvent::wxCalculateLayoutEvent}
\func{}{wxCalculateLayoutEvent}{\param{wxWindowID }{id = 0}}
Constructor.
\membersection{wxCalculateLayoutEvent::GetFlags}\label{wxcalculatelayouteventgetflags}
\constfunc{int}{GetFlags}{\void}
Returns the flags associated with this event. Not currently used.
\membersection{wxCalculateLayoutEvent::GetRect}\label{wxcalculatelayouteventgetrect}
\constfunc{wxRect}{GetRect}{\void}
Before the event handler is entered, returns the remaining parent client area that the window
could occupy. When the event handler returns, this should contain the remaining parent client rectangle,
after the event handler has subtracted the area that its window occupies.
\membersection{wxCalculateLayoutEvent::SetFlags}\label{wxcalculatelayouteventsetflags}
\func{void}{SetFlags}{\param{int }{flags}}
Sets the flags associated with this event. Not currently used.
\membersection{wxCalculateLayoutEvent::SetRect}\label{wxcalculatelayouteventsetrect}
\func{void}{SetRect}{\param{const wxRect\& }{rect}}
Call this to specify the new remaining parent client area, after the space occupied by the
window has been subtracted.

View File

@@ -1,401 +0,0 @@
\chapter{Classes by category}\label{classesbycat}
\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}%
\setfooter{\thepage}{}{}{}{}{\thepage}%
A classification of wxWindows classes by category.
\twocolwidtha{5cm}
{\large {\bf Managed windows}}
There are several types of window that are directly controlled by the
window manager (such as MS Windows, or the Motif Window Manager).
Frames may contain windows, and dialog boxes may directly contain controls.
\begin{twocollist}\itemsep=0pt
\twocolitem{\helpref{wxDialog}{wxdialog}}{Dialog box}
\twocolitem{\helpref{wxFrame}{wxframe}}{Normal frame}
\twocolitem{\helpref{wxMDIParentFrame}{wxmdiparentframe}}{MDI parent frame}
\twocolitem{\helpref{wxMDIChildFrame}{wxmdichildframe}}{MDI child frame}
\twocolitem{\helpref{wxMiniFrame}{wxminiframe}}{A frame with a small title bar}
\twocolitem{\helpref{wxTabbedDialog}{wxtabbeddialog}}{Tabbed dialog}
\end{twocollist}
See also {\bf Common dialogs}.
{\large {\bf Miscellaneous windows}}
The following are a variety of windows that are derived from wxWindow.
\begin{twocollist}\itemsep=0pt
\twocolitem{\helpref{wxGrid}{wxgrid}}{A grid (table) window}
\twocolitem{\helpref{wxPanel}{wxpanel}}{A window whose colour changes according to current user settings}
\twocolitem{\helpref{wxSashWindow}{wxsashwindow}}{Window with four optional sashes that can be dragged}
\twocolitem{\helpref{wxSashLayoutWindow}{wxsashlayoutwindow}}{Window that can be involved in an IDE-like layout arrangement}
\twocolitem{\helpref{wxScrolledWindow}{wxscrolledwindow}}{Window with automatically managed scrollbars}
\twocolitem{\helpref{wxSplitterWindow}{wxsplitterwindow}}{Window which can be split vertically or horizontally}
\twocolitem{\helpref{wxStatusBar}{wxstatusbar}}{Implements the status bar on a frame}
\twocolitem{\helpref{wxToolBar}{wxtoolbar}}{Toolbar class}
%\twocolitem{\helpref{wxTabbedPanel}{wxtabbedpanel}}{Tabbed panel (to be replaced with wxNotebook)}
\twocolitem{\helpref{wxNotebook}{wxnotebook}}{Notebook class}
\end{twocollist}
{\large {\bf Common dialogs}}
\overview{Overview}{commondialogsoverview}
Common dialogs are ready-made dialog classes which are frequently used
in an application.
\begin{twocollist}\itemsep=0pt
\twocolitem{\helpref{wxDialog}{wxdialog}}{Base class for common dialogs}
\twocolitem{\helpref{wxColourDialog}{wxcolourdialog}}{Colour chooser dialog}
\twocolitem{\helpref{wxDirDialog}{wxdirdialog}}{Directory selector dialog}
\twocolitem{\helpref{wxFileDialog}{wxfiledialog}}{File selector dialog}
\twocolitem{\helpref{wxMultipleChoiceDialog}{wxmultiplechoicedialog}}{Dialog to get one or more selections from a list}
\twocolitem{\helpref{wxSingleChoiceDialog}{wxsinglechoicedialog}}{Dialog to get a single selection from a list and return the string}
\twocolitem{\helpref{wxTextEntryDialog}{wxtextentrydialog}}{Dialog to get a single line of text from the user}
\twocolitem{\helpref{wxFontDialog}{wxfontdialog}}{Font chooser dialog}
\twocolitem{\helpref{wxPageSetupDialog}{wxpagesetupdialog}}{Standard page setup dialog}
\twocolitem{\helpref{wxPrintDialog}{wxprintdialog}}{Standard print dialog}
\twocolitem{\helpref{wxPageSetupDialog}{wxpagesetupdialog}}{Standard page setup dialog}
\twocolitem{\helpref{wxMessageDialog}{wxmessagedialog}}{Simple message box dialog}
\end{twocollist}
{\large {\bf Controls}}
Typically, these are small windows which provide interaction with the user. Controls
that are not static can have \helpref{validators}{wxvalidator} associated with them.
\begin{twocollist}\itemsep=0pt
\twocolitem{\helpref{wxControl}{wxcontrol}}{The base class for controls}
\twocolitem{\helpref{wxButton}{wxbutton}}{Push button control, displaying text}
\twocolitem{\helpref{wxBitmapButton}{wxbitmapbutton}}{Push button control, displaying a bitmap}
\twocolitem{\helpref{wxCheckBox}{wxcheckbox}}{Checkbox control}
\twocolitem{\helpref{wxCheckListBox}{wxchecklistbox}}{A listbox with a checkbox to the left of each item}
\twocolitem{\helpref{wxChoice}{wxchoice}}{Choice control (a combobox without the editable area)}
\twocolitem{\helpref{wxComboBox}{wxcombobox}}{A choice with an editable area}
\twocolitem{\helpref{wxGauge}{wxgauge}}{A control to represent a varying quantity, such as time remaining}
\twocolitem{\helpref{wxStaticBox}{wxstaticbox}}{A static, or group box for visually grouping related controls}
\twocolitem{\helpref{wxListBox}{wxlistbox}}{A list of strings for single or multiple selection}
\twocolitem{\helpref{wxListCtrl}{wxlistctrl}}{A control for displaying lists of strings and/or icons, plus a multicolumn report view}
\twocolitem{\helpref{wxTabCtrl}{wxtabctrl}}{Manages several tabs}
\twocolitem{\helpref{wxTextCtrl}{wxtextctrl}}{Single or multline text editing control}
\twocolitem{\helpref{wxTreeCtrl}{wxtreectrl}}{Tree (hierachy) control}
\twocolitem{\helpref{wxScrollBar}{wxscrollbar}}{Scrollbar control}
\twocolitem{\helpref{wxSpinButton}{wxspinbutton}}{A spin or `up-down' control}
\twocolitem{\helpref{wxStaticText}{wxstatictext}}{One or more lines of non-editable text}
\twocolitem{\helpref{wxStaticBitmap}{wxstaticbitmap}}{A control to display a bitmap}
\twocolitem{\helpref{wxRadioBox}{wxradiobox}}{A group of radio buttons}
\twocolitem{\helpref{wxRadioButton}{wxradiobutton}}{A round button to be used with others in a mutually exclusive way}
\twocolitem{\helpref{wxSlider}{wxslider}}{A slider that can be dragged by the user}
\end{twocollist}
{\large {\bf Menus}}
\begin{twocollist}\itemsep=0pt
\twocolitem{\helpref{wxMenu}{wxmenu}}{Displays a series of menu items for selection}
\twocolitem{\helpref{wxMenuBar}{wxmenubar}}{Contains a series of menus for use with a frame}
\twocolitem{\helpref{wxMenuItem}{wxmenuitem}}{Represents a single menu item}
\end{twocollist}
{\large {\bf Window layout}}
\overview{Overview}{constraintsoverview}
These are the classes relevant to automated window layout.
\begin{twocollist}\itemsep=0pt
\twocolitem{\helpref{wxIndividualLayoutConstraint}{wxindividuallayoutconstraint}}{Represents a single constraint dimension}
\twocolitem{\helpref{wxLayoutConstraints}{wxlayoutconstraints}}{Represents the constraints for a window class}
\end{twocollist}
{\large {\bf Device contexts}}
\overview{Overview}{dcoverview}
Device contexts are surfaces that may be drawn on, and provide an
abstraction that allows parameterisation of your drawing code
by passing different device contexts.
\begin{twocollist}\itemsep=0pt
\twocolitem{\helpref{wxClientDC}{wxclientdc}}{A device context to access the client area outside {\bf OnPaint} events}
\twocolitem{\helpref{wxPaintDC}{wxpaintdc}}{A device context to access the client area inside {\bf OnPaint} events}
\twocolitem{\helpref{wxWindowDC}{wxwindowdc}}{A device context to access the non-client area}
\twocolitem{\helpref{wxScreenDC}{wxscreendc}}{A device context to access the entire screen}
\twocolitem{\helpref{wxDC}{wxdc}}{The device context base class}
\twocolitem{\helpref{wxMemoryDC}{wxmemorydc}}{A device context for drawing into bitmaps}
\twocolitem{\helpref{wxMetafileDC}{wxmetafiledc}}{A device context for drawing into metafiles}
\twocolitem{\helpref{wxPostScriptDC}{wxpostscriptdc}}{A device context for drawing into PostScript files}
\twocolitem{\helpref{wxPrinterDC}{wxprinterdc}}{A device context for drawing to printers}
\end{twocollist}
{\large {\bf Graphics device interface}}
\overview{Bitmaps overview}{wxbitmapoverview}
These classes are related to drawing on device contexts and windows.
\begin{twocollist}\itemsep=0pt
\twocolitem{\helpref{wxColour}{wxcolour}}{Represents the red, blue and green elements of a colour}
\twocolitem{\helpref{wxBitmap}{wxbitmap}}{Represents a bitmap}
\twocolitem{\helpref{wxBrush}{wxbrush}}{Used for filling areas on a device context}
\twocolitem{\helpref{wxBrushList}{wxbrushlist}}{The list of previously-created brushes}
\twocolitem{\helpref{wxCursor}{wxcursor}}{A small, transparent bitmap representing the cursor}
\twocolitem{\helpref{wxFont}{wxfont}}{Represents fonts}
\twocolitem{\helpref{wxFontList}{wxfontlist}}{The list of previously-created fonts}
\twocolitem{\helpref{wxIcon}{wxicon}}{A small, transparent bitmap for assigning to frames and drawing on device contexts}
\twocolitem{\helpref{wxImage}{wximage}}{A platform-independent image class}
\twocolitem{\helpref{wxImageList}{wximagelist}}{A list of images, used with some controls}
\twocolitem{\helpref{wxMask}{wxmask}}{Represents a mask to be used with a bitmap for transparent drawing}
\twocolitem{\helpref{wxPen}{wxpen}}{Used for drawing lines on a device context}
\twocolitem{\helpref{wxPenList}{wxpenlist}}{The list of previously-created pens}
\twocolitem{\helpref{wxPalette}{wxpalette}}{Represents a table of indices into RGB values}
\twocolitem{\helpref{wxRegion}{wxregion}}{Represents a simple or complex region on a window or device context}
\end{twocollist}
{\large {\bf Events}}
\overview{Overview}{eventhandlingoverview}
An event object contains information about a specific event. Event handlers
(usually member functions) have a single, event argument.
\begin{twocollist}\itemsep=0pt
\twocolitem{\helpref{wxActivateEvent}{wxactivateevent}}{A window or application activation event}
\twocolitem{\helpref{wxCalculateLayoutEvent}{wxcalculatelayoutevent}}{Used to calculate window layout}
\twocolitem{\helpref{wxCloseEvent}{wxcloseevent}}{A close window or end session event}
\twocolitem{\helpref{wxCommandEvent}{wxcommandevent}}{An event from a variety of standard controls}
\twocolitem{\helpref{wxDropFilesEvent}{wxdropfilesevent}}{A drop files event}
\twocolitem{\helpref{wxEraseEvent}{wxeraseevent}}{An erase background event}
\twocolitem{\helpref{wxEvent}{wxevent}}{The event base class}
\twocolitem{\helpref{wxFocusEvent}{wxfocusevent}}{A window focus event}
\twocolitem{\helpref{wxKeyEvent}{wxkeyevent}}{A keypress event}
\twocolitem{\helpref{wxIdleEvent}{wxidleevent}}{An idle event}
\twocolitem{\helpref{wxInitDialogEvent}{wxinitdialogevent}}{A dialog initialisation event}
\twocolitem{\helpref{wxJoystickEvent}{wxjoystickevent}}{A joystick event}
\twocolitem{\helpref{wxListEvent}{wxlistevent}}{A list control event}
\twocolitem{\helpref{wxMenuEvent}{wxmenuevent}}{A menu event}
\twocolitem{\helpref{wxMouseEvent}{wxmouseevent}}{A mouse event}
\twocolitem{\helpref{wxMoveEvent}{wxmoveevent}}{A move event}
\twocolitem{\helpref{wxNotebookEvent}{wxnotebookevent}}{A notebook control event}
\twocolitem{\helpref{wxPaintEvent}{wxpaintevent}}{A paint event}
\twocolitem{\helpref{wxProcessEvent}{wxprocessevent}}{A process ending event}
\twocolitem{\helpref{wxQueryLayoutInfoEvent}{wxquerylayoutinfoevent}}{Used to query layout information}
\twocolitem{\helpref{wxSizeEvent}{wxsizeevent}}{A size event}
\twocolitem{\helpref{wxSocketEvent}{wxsocketevent}}{A socket event}
\twocolitem{\helpref{wxSysColourChangedEvent}{wxsyscolourchangedevent}}{A system colour change event}
\twocolitem{\helpref{wxTabEvent}{wxtabevent}}{A tab control event}
\twocolitem{\helpref{wxTreeEvent}{wxtreeevent}}{A tree control event}
\twocolitem{\helpref{wxUpdateUIEvent}{wxupdateuievent}}{A user interface update event}
\end{twocollist}
{\large {\bf Validators}}
\overview{Overview}{validatoroverview}
These are the window validators, used for filtering and validating
user input.
\begin{twocollist}\itemsep=0pt
\twocolitem{\helpref{wxValidator}{wxvalidator}}{Base validator class}
\twocolitem{\helpref{wxTextValidator}{wxtextvalidator}}{Text control validator class}
\twocolitem{\helpref{wxGenericValidator}{wxgenericvalidator}}{Generic control validator class}
\end{twocollist}
{\large {\bf Data structures}}
These are the data structure classes supported by wxWindows.
\begin{twocollist}\itemsep=0pt
\twocolitem{\helpref{wxExpr}{wxexpr}}{A class for flexible I/O}
\twocolitem{\helpref{wxExprDatabase}{wxexprdatabase}}{A class for flexible I/O}
\twocolitem{\helpref{wxDate}{wxdate}}{A class for date manipulation}
\twocolitem{\helpref{wxHashTable}{wxhashtable}}{A simple hash table implementation}
\twocolitem{\helpref{wxList}{wxlist}}{A simple linked list implementation}
\twocolitem{\helpref{wxNode}{wxnode}}{Represents a node in the wxList implementation}
\twocolitem{\helpref{wxObject}{wxobject}}{The root class for most wxWindows classes}
\twocolitem{\helpref{wxPathList}{wxpathlist}}{A class to help search multiple paths}
\twocolitem{\helpref{wxPoint}{wxpoint}}{Representation of a point}
\twocolitem{\helpref{wxRect}{wxrect}}{A class representing a rectangle}
\twocolitem{\helpref{wxRegion}{wxregion}}{A class representing a region}
\twocolitem{\helpref{wxString}{wxstring}}{A string class}
\twocolitem{\helpref{wxStringList}{wxstringlist}}{A class representing a list of strings}
\twocolitem{\helpref{wxRealPoint}{wxrealpoint}}{Representation of a point using floating point numbers}
\twocolitem{\helpref{wxSize}{wxsize}}{Representation of a size}
\twocolitem{\helpref{wxTime}{wxtime}}{A class for time manipulation}
\twocolitem{\helpref{wxVariant}{wxvariant}}{A class for storing arbitrary types
that may change at run-time}
\end{twocollist}
{\large {\bf Run-time class information system}}
\overview{Overview}{runtimeclassoverview}
wxWindows supports run-time manipulation of class information, and dynamic
creation of objects given class names.
\begin{twocollist}\itemsep=0pt
\twocolitem{\helpref{wxClassInfo}{wxclassinfo}}{Holds run-time class information}
\twocolitem{\helpref{wxObject}{wxobject}}{Root class for classes with run-time information}
\twocolitem{\helpref{Macros}{macros}}{Macros for manipulating run-time information}
\end{twocollist}
{\large {\bf Debugging features}}
\overview{Overview}{debuggingoverview}
wxWindows supports some aspects of debugging an application through
classes, functions and macros.
\begin{twocollist}\itemsep=0pt
\twocolitem{\helpref{wxDebugContext}{wxdebugcontext}}{Provides memory-checking facilities}
%\twocolitem{\helpref{wxDebugStreamBuf}{wxdebugstreambuf}}{A stream buffer writing to the debug stream}
\twocolitem{\helpref{wxLog}{wxlog}}{Logging facility}
\twocolitem{\helpref{Log functions}{logfunctions}}{Error and warning logging functions}
\twocolitem{\helpref{Debugging macros}{debugmacros}}{Debug macros for assertion and checking}
%\twocolitem{\helpref{wxTrace}{wxtrace}}{Tracing facility}
%\twocolitem{\helpref{wxTraceLevel}{wxtracelevel}}{Tracing facility with levels}
\twocolitem{\helpref{WXDEBUG\_NEW}{debugnew}}{Use this macro to give further debugging information}
%\twocolitem{\helpref{WXTRACE}{trace}}{Trace macro}
%\twocolitem{\helpref{WXTRACELEVEL}{tracelevel}}{Trace macro with levels}
\end{twocollist}
{\large {\bf Interprocess communication}}
\overview{Overview}{ipcoverview}
wxWindows provides a simple interprocess communications facilities
based on DDE.
\begin{twocollist}\itemsep=0pt
\twocolitem{\helpref{wxDDEClient}{wxddeclient}}{Represents a client}
\twocolitem{\helpref{wxDDEConnection}{wxddeconnection}}{Represents the connection between a client and a server}
\twocolitem{\helpref{wxDDEServer}{wxddeserver}}{Represents a server}
\twocolitem{\helpref{wxTCPClient}{wxtcpclient}}{Represents a client}
\twocolitem{\helpref{wxTCPConnection}{wxtcpconnection}}{Represents the connection between a client and a server}
\twocolitem{\helpref{wxTCPServer}{wxtcpserver}}{Represents a server}
\twocolitem{\helpref{wxSocketClient}{wxsocketclient}}{Represents a socket client}
\twocolitem{\helpref{wxSocketHandler}{wxsockethandler}}{Represents a socket handler}
\twocolitem{\helpref{wxSocketServer}{wxsocketserver}}{Represents a socket server}
\end{twocollist}
{\large {\bf Document/view framework}}
\overview{Overview}{docviewoverview}
wxWindows supports a document/view framework which provides
housekeeping for a document-centric application.
\begin{twocollist}\itemsep=0pt
\twocolitem{\helpref{wxDocument}{wxdocument}}{Represents a document}
\twocolitem{\helpref{wxView}{wxview}}{Represents a view}
\twocolitem{\helpref{wxDocTemplate}{wxdoctemplate}}{Manages the relationship between a document class and a veiw class}
\twocolitem{\helpref{wxDocManager}{wxdocmanager}}{Manages the documents and views in an application}
\twocolitem{\helpref{wxDocChildFrame}{wxdocchildframe}}{A child frame for showing a document view}
\twocolitem{\helpref{wxDocParentFrame}{wxdocparentframe}}{A parent frame to contain views}
%\twocolitem{\helpref{wxMDIDocChildFrame}{wxmdidocchildframe}}{An MDI child frame for showing a document view}
%\twocolitem{\helpref{wxMDIDocParentFrame}{wxmdidocparentframe}}{An MDI parent frame to contain views}
\end{twocollist}
{\large {\bf Printing framework}}
\overview{Overview}{printingoverview}
A printing and previewing framework is implemented to
make it relatively straighforward to provide document printing
facilities.
\begin{twocollist}\itemsep=0pt
\twocolitem{\helpref{wxPreviewFrame}{wxpreviewframe}}{Frame for displaying a print preview}
\twocolitem{\helpref{wxPreviewCanvas}{wxpreviewcanvas}}{Canvas for displaying a print preview}
\twocolitem{\helpref{wxPreviewControlBar}{wxpreviewcontrolbar}}{Standard control bar for a print preview}
\twocolitem{\helpref{wxPrintDialog}{wxprintdialog}}{Standard print dialog}
\twocolitem{\helpref{wxPageSetupDialog}{wxpagesetupdialog}}{Standard page setup dialog}
\twocolitem{\helpref{wxPrinter}{wxprinter}}{Class representing the printer}
\twocolitem{\helpref{wxPrinterDC}{wxprinterdc}}{Printer device context}
\twocolitem{\helpref{wxPrintout}{wxprintout}}{Class representing a particular printout}
\twocolitem{\helpref{wxPrintPreview}{wxprintpreview}}{Class representing a print preview}
\twocolitem{\helpref{wxPrintData}{wxprintdata}}{Represents information about the document being printed}
\twocolitem{\helpref{wxPrintDialogData}{wxprintdialogdata}}{Represents information about the print dialog}
\twocolitem{\helpref{wxPageSetupDialogData}{wxpagesetupdialogdata}}{Represents information about the page setup dialog}
\end{twocollist}
{\large {\bf Database classes}}
\overview{Database classes overview}{odbcoverview}
wxWindows provides two alternative sets of classes for accessing Microsoft's ODBC (Open Database Connectivity)
product. The new version by Remstar is documented in a separate manual.
The older classes are as follows:
\begin{twocollist}\itemsep=0pt
\twocolitem{\helpref{wxDatabase}{wxdatabase}}{Database class}
\twocolitem{\helpref{wxQueryCol}{wxquerycol}}{Class representing a column}
\twocolitem{\helpref{wxQueryField}{wxqueryfield}}{Class representing a field}
\twocolitem{\helpref{wxRecordSet}{wxrecordset}}{Class representing one or more record}
\end{twocollist}
{\large {\bf Drag and drop and clipboard classes}}
\overview{Drag and drop and clipboard overview}{wxdndoverview}
\begin{twocollist}\itemsep=0pt
\twocolitem{\helpref{wxDataObject}{wxdataobject}}{Data object class}
\twocolitem{\helpref{wxTextDataObject}{wxtextdataobject}}{Text data object class}
\twocolitem{\helpref{wxFileDataObject}{wxtextdataobject}}{File data object class}
\twocolitem{\helpref{wxBitmapDataObject}{wxbitmapdataobject}}{Bitmap data object class}
\twocolitem{\helpref{wxPrivateDataObject}{wxprivatedataobject}}{Private data object class}
\twocolitem{\helpref{wxClipboard}{wxclipboard}}{Clipboard class}
\twocolitem{\helpref{wxDropTarget}{wxdroptarget}}{Drop target class}
\twocolitem{\helpref{wxFileDropTarget}{wxfiledroptarget}}{File drop target class}
\twocolitem{\helpref{wxTextDropTarget}{wxtextdroptarget}}{Text drop target class}
\twocolitem{\helpref{wxDropSource}{wxdropsource}}{Drop source class}
\end{twocollist}
{\large {\bf File related classes}}
wxWindows has several small classes to work with disk files, see \helpref{file classes
overview}{wxfileoverview} for more details.
\begin{twocollist}\itemsep=0pt
\twocolitem{\helpref{wxFile}{wxfile}}{Low-level file input/output}
\twocolitem{\helpref{wxTempFile}{wxtempfile}}{Class to safely replace an existing file}
\twocolitem{\helpref{wxTextFile}{wxtextfile}}{Class for working with text files as with arrays of lines}
\end{twocollist}
{\large {\bf Stream classes}}
wxWindows has its own set of stream classes, as an alternative to often buggy standard stream
libraries, and to provide enhanced functionality.
\begin{twocollist}\itemsep=0pt
\twocolitem{\helpref{wxStreamBase}{wxstreambase}}{Stream base class}
\twocolitem{\helpref{wxStreamBuffer}{wxstreambuffer}}{Stream buffer class}
\twocolitem{\helpref{wxInputStream}{wxinputstream}}{Input stream class}
\twocolitem{\helpref{wxOutputStream}{wxoutputstream}}{Output stream class}
\twocolitem{\helpref{wxFilterInputStream}{wxfilterinputstream}}{Filtered input stream class}
\twocolitem{\helpref{wxFilterOutputStream}{wxfilteroutputstream}}{Filtered output stream class}
\twocolitem{\helpref{wxDataInputStream}{wxdatainputstream}}{Platform-independent data input stream class}
\twocolitem{\helpref{wxDataOutputStream}{wxdataoutputstream}}{Platform-independent data output stream class}
\twocolitem{\helpref{wxFileInputStream}{wxfileinputstream}}{File input stream class}
\twocolitem{\helpref{wxFileOutputStream}{wxfileoutputstream}}{File output stream class}
\twocolitem{\helpref{wxZlibInputStream}{wxzlibinputstream}}{Zlib (compression) input stream class}
\twocolitem{\helpref{wxZlibOutputStream}{wxzliboutputstream}}{Zlib (compression) output stream class}
\twocolitem{\helpref{wxSocketInputStream}{wxsocketinputstream}}{Socket input stream class}
\twocolitem{\helpref{wxSocketOutputStream}{wxsocketoutputstream}}{Socket output stream class}
\end{twocollist}
{\large {\bf Miscellaneous}}
\begin{twocollist}\itemsep=0pt
\twocolitem{\helpref{wxAcceleratorTable}{wxacceleratortable}}{Accelerator table}
\twocolitem{\helpref{wxApp}{wxapp}}{Application class}
\twocolitem{\helpref{wxAutomationObject}{wxautomationobject}}{OLE automation class}
\twocolitem{\helpref{wxConfig}{wxconfigbase}}{Classes for configuration reading/writing}
\twocolitem{\helpref{wxHelpController}{wxhelpcontroller}}{Family of classes for controlling help windows}
\twocolitem{\helpref{wxLayoutAlgorithm}{wxlayoutalgorithm}}{An alternative window layout facility}
\twocolitem{\helpref{wxProcess}{wxprocess}}{Process class}
\twocolitem{\helpref{wxTimer}{wxtimer}}{Timer class}
\twocolitem{\helpref{wxSystemSettings}{wxsystemsettings}}{System settings class}
\end{twocollist}

View File

@@ -1,108 +0,0 @@
\section{\class{wxCheckBox}}\label{wxcheckbox}
A checkbox is a labelled box which is either on (checkmark is visible)
or off (no checkmark).
\wxheading{Derived from}
\helpref{wxControl}{wxcontrol}\\
\helpref{wxWindow}{wxwindow}\\
\helpref{wxEvtHandler}{wxevthandler}\\
\helpref{wxObject}{wxobject}
\wxheading{Include files}
<wx/checkbox.h>
\wxheading{Window styles}
There are no special styles for wxCheckBox.
See also \helpref{window styles overview}{windowstyles}.
\wxheading{Event handling}
\twocolwidtha{7cm}
\begin{twocollist}\itemsep=0pt
\twocolitem{{\bf EVT\_CHECKBOX(id, func)}}{Process a wxEVT\_COMMAND\_CHECKBOX\_CLICKED event,
when the checkbox is clicked.}
\end{twocollist}
\wxheading{See also}
\helpref{wxRadioButton}{wxradiobutton}, \helpref{wxCommandEvent}{wxcommandevent}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxCheckBox::wxCheckBox}\label{wxcheckboxconstr}
\func{}{wxCheckBox}{\void}
Default constructor.
\func{}{wxCheckBox}{\param{wxWindow* }{parent}, \param{wxWindowID}{ id},\rtfsp
\param{const wxString\& }{label}, \param{const wxPoint\& }{pos = wxDefaultPosition},\rtfsp
\param{const wxSize\& }{size = wxDefaultSize}, \param{long}{ style = 0},\rtfsp
\param{const wxValidator\& }{val}, \param{const wxString\& }{name = ``checkBox"}}
Constructor, creating and showing a checkbox.
\wxheading{Parameters}
\docparam{parent}{Parent window. Must not be NULL.}
\docparam{id}{Checkbox identifier. A value of -1 indicates a default value.}
\docparam{label}{Text to be displayed next to the checkbox.}
\docparam{pos}{Checkbox position. If the position (-1, -1) is specified then a default position is chosen.}
\docparam{size}{Checkbox size. If the default size (-1, -1) is specified then a default size is chosen.}
\docparam{style}{Window style. See \helpref{wxCheckBox}{wxcheckbox}.}
\docparam{validator}{Window validator.}
\docparam{name}{Window name.}
\wxheading{See also}
\helpref{wxCheckBox::Create}{wxcheckboxcreate}, \helpref{wxValidator}{wxvalidator}
\membersection{wxCheckBox::\destruct{wxCheckBox}}
\func{}{\destruct{wxCheckBox}}{\void}
Destructor, destroying the checkbox.
\membersection{wxCheckBox::Create}\label{wxcheckboxcreate}
\func{bool}{Create}{\param{wxWindow* }{parent}, \param{wxWindowID}{ id},\rtfsp
\param{const wxString\& }{label}, \param{const wxPoint\& }{pos = wxDefaultPosition},\rtfsp
\param{const wxSize\& }{size = wxDefaultSize}, \param{long}{ style = 0},\rtfsp
\param{const wxValidator\& }{val}, \param{const wxString\& }{name = ``checkBox"}}
Creates the checkbox for two-step construction. See \helpref{wxCheckBox::wxCheckBox}{wxcheckboxconstr}\rtfsp
for details.
\membersection{wxCheckBox::GetValue}\label{wxcheckboxgetvalue}
\constfunc{bool}{GetValue}{\void}
Gets the state of the checkbox.
\wxheading{Return value}
Returns TRUE if it is checked, FALSE otherwise.
\membersection{wxCheckBox::SetValue}\label{wxcheckboxsetvalue}
\func{void}{SetValue}{\param{const bool}{ state}}
Sets the checkbox to the given state.
\wxheading{Parameters}
\docparam{state}{If TRUE, the check is on, otherwise it is off.}

Some files were not shown because too many files have changed in this diff Show More