Compare commits

..

1 Commits

Author SHA1 Message Date
Bryan Petty
1cedeb5c04 This commit was manufactured by cvs2svn to create tag 'old_debug'.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/tags/old_debug@217 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1998-07-10 10:39:48 +00:00
2204 changed files with 43909 additions and 349538 deletions

View File

@@ -1,11 +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

View File

@@ -53,18 +53,12 @@ user::
@echo "entering directory user building all"
@cd user; ${MAKE} all
install::
@echo "entering directory src for installing"
@cd src; ${MAKE} install
@echo "entering directory utils for installing"
@cd utils; ${MAKE} install
# the following ones recreate all Makefiles.
makefiles:: recreate
Makefiles:: recreate
recreate::
@setup/general/createall
@src/gtk/setup/general/createall
# the following ones define what needs to be done to distribute the
# library and its components

View File

@@ -1,42 +1,52 @@
********************* TODO list for wxWindows 2 ******************************
The items are grouped by platform (generic, MSW, GTK...) and inside by
subject. The first 2 columns containg the following codes:
Priority classification: Amount of work expected:
9 next point release q quick fix
8 next release s small change
7 as soon as possible l a little work
6 soon w some work
5 should be included b big change
4 nice to have m major change
3 consider including ? don't know how to fix
2 maybe not - unclassified
1 probably not
- unclassified
After the subject the name in brackets indicates the person who is going to do
it.
=============================== common ========================================
wxSocket, wxTCP etc..
4w wxString optimization (VZ)
allocate more memory than needed to avoid reallocation each time when
operator+ or += is used.
wxMultiMedia
6b stream classes (VZ)
=============================== generic ======================================
wxTreeCtrl keyboard handling
wxTreeCtrl icon support
7s wxTreeCtrl root item (RR)
root item is not shown currently (unlike in MSW version)
wxListCtrl icon support in list mode
5w wxImageList
it's not implemented currently, to do (assuming that all images have the
same size - no resizing should be done to simplify the job)
================================ MSW ==========================================
Consistent keyboard interface and focus behaviour
7w consistent keyboard interface and focus behaviour (VZ)
currently, the focus is lost all the time (after a MessageBox, for example)
and sometimes TABbing through controls doesn't work
================================ GTK ==========================================
Add support Set colour/baclgroundcolour in GTK widgets
Correct tab navigation (seems to be a GTK feature)
Finish DnD
Add Clipboard
Help system (not sure about this one)
Show accelerator in menus
More controls with bitmaps
Speed up bitmap saving
Add wxBitmapHandler
Fix printing of bitmaps
Implement wxRadioBox layout
Finish wxTextCtrl
Finish native wxTreeCtrl
Implement wxPalette
Implement wxDirDialog
Support cooperation between Qt and wxWindows
Fix toolbar tips
TrueType support (just kidding)
9m keyboard interface (RR)
TAB traversal, Alt-letter accelerators for the controls and accelerators
for menu items - TODO.
3b wxTreeCtrl native implementation?
GTK has a GtkCTree widget which seems to be quite close to the Windows
standard control - what about writing a native wxTreeCtrl based on it?

View File

@@ -1,5 +1,4 @@
distrib/msw/*.rsp
distrib/msw/*.bat
distrib/*.*
docs/readme.txt
docs/install.txt
@@ -9,10 +8,6 @@ docs/upgrade.txt
docs/todo.txt
docs/licence.txt
docs/symbols.txt
docs/*.html
src/*.inc
src/mkdir
src/common/*.cpp
src/common/dosyacc.c
@@ -30,7 +25,7 @@ src/generic/*.inc
src/png/*.c
src/png/*.h
src/png/makefile*
src/png/makefile.*
src/png/INSTALL
src/png/CHANGES
src/png/README
@@ -47,14 +42,12 @@ src/zlib/README
src/zlib/ChangeLog
src/zlib/configure
src/zlib/*.txt
src/zlib/makefile*
src/zlib/makefile.*
src/zlib/*.com
src/zlib/*.3
src/zlib/*.mms
include/wx/*.h
include/wx/protocol/*.h
include/wx/*.cpp
include/wx/wx_setup.vms
include/wx/common/*.h
include/wx/generic/*.h
@@ -76,9 +69,9 @@ bitmaps/ico/32x32/*.*
afm/*.*
utils/*.txt
utils/make*
utils/make*.*
utils/xpmshow/src/makefile*
utils/xpmshow/src/makefile.*
utils/xpmshow/src/*.cpp
utils/xpmshow/src/*.h
utils/xpmshow/src/*.def
@@ -89,9 +82,8 @@ utils/xpmshow/src/*.ico
utils/wxhelp/src/*.cpp
utils/wxhelp/src/*.h
utils/wxhelp/src/makefile*
utils/wxhelp/src/makefile.*
utils/wxhelp/src/*.xbm
utils/wxhelp/src/*.xpm
utils/wxhelp/src/*.txt
utils/wxhelp/src/*.ico
utils/wxhelp/src/*.def
@@ -102,7 +94,6 @@ utils/tex2rtf/src/*.cpp
utils/tex2rtf/src/*.h
utils/tex2rtf/src/make*.*
utils/tex2rtf/src/*.xbm
utils/tex2rtf/src/*.xpm
utils/tex2rtf/src/*.sty
utils/tex2rtf/src/*.ini
utils/tex2rtf/src/*.inf
@@ -118,9 +109,8 @@ utils/tex2rtf/tools/tcheck/*.bat
utils/wxtree/src/*.cpp
utils/wxtree/src/*.h
utils/wxtree/src/makefile*
utils/wxtree/src/makefile.*
utils/wxtree/src/*.xbm
utils/wxtree/src/*.xpm
utils/wxtree/lib/dummy
utils/wxtree/src/*.ico
utils/wxtree/src/*.def
@@ -129,9 +119,8 @@ utils/wxtree/src/*.rc
utils/wxgraph/src/*.cpp
utils/wxgraph/src/*.c
utils/wxgraph/src/*.h
utils/wxgraph/src/makefile*
utils/wxgraph/src/makefile.*
utils/wxgraph/src/*.xbm
utils/wxgraph/src/*.xpm
utils/wxgraph/lib/dummy
utils/wxgraph/src/*.ico
utils/wxgraph/src/*.def
@@ -141,7 +130,7 @@ utils/mfutils/src/*.cpp
utils/mfutils/src/*.h
utils/mfutils/src/*.rc
utils/mfutils/src/*.def
utils/mfutils/src/makefile*
utils/mfutils/src/makefile.*
utils/mfutils/src/*.txt
utils/mfutils/lib/dummy
utils/mfutils/src/*.ico
@@ -152,9 +141,8 @@ utils/mfutils/src/*.ico
utils/rcparser/src/*.cpp
utils/rcparser/src/*.c
utils/rcparser/src/*.h
utils/rcparser/src/makefile*
utils/rcparser/src/makefile.*
utils/rcparser/src/*.xbm
utils/rcparser/src/*.xpm
utils/rcparser/lib/dummy
utils/rcparser/src/*.ico
utils/rcparser/src/*.def
@@ -165,43 +153,28 @@ utils/colours/*.h
utils/colours/*.cpp
utils/colours/*.def
utils/colours/*.rc
utils/colours/makefile*
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/wxprop/Makefile
utils/wxprop/src/*.h
utils/wxprop/src/*.cpp
utils/wxprop/src/*.def
utils/wxprop/src/*.rc
utils/wxprop/src/makefile*
utils/wxprop/src/makefile.*
utils/wxprop/src/*.xbm
utils/wxprop/src/*.xpm
utils/wxprop/src/*.txt
utils/wxprop/src/*.ico
utils/wxprop/src/*.bmp
utils/wxprop/lib/dummy
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/makefile.*
utils/dialoged/src/*.xbm
utils/dialoged/src/*.xpm
utils/dialoged/src/*.txt
utils/dialoged/src/*.inf
utils/dialoged/test/*.h
@@ -213,117 +186,42 @@ utils/dialoged/src/bitmaps/*.ico
utils/dialoged/test/*.cpp
utils/dialoged/test/*.def
utils/dialoged/test/*.rc
utils/dialoged/test/makefile*
utils/dialoged/test/makefile.*
utils/dialoged/lib/dummy
utils/dialoged/test/*.ico
utils/dialoged/test/*.prj
utils/dialoged/test/*.bmp
utils/glcanvas/Makefile
utils/glcanvas/win/*.h
utils/glcanvas/win/*.cpp
utils/glcanvas/win/*.def
utils/glcanvas/win/*.rc
utils/glcanvas/win/makefile*
utils/glcanvas/win/*.xbm
utils/glcanvas/win/*.xpm
utils/glcanvas/win/*.txt
utils/glcanvas/win/*.ico
utils/glcanvas/win/*.bmp
utils/glcanvas/src/*.h
utils/glcanvas/src/*.cpp
utils/glcanvas/src/*.def
utils/glcanvas/src/*.rc
utils/glcanvas/src/makefile*
utils/glcanvas/src/*.xbm
utils/glcanvas/src/*.xpm
utils/glcanvas/src/*.txt
utils/glcanvas/src/*.ico
utils/glcanvas/src/*.bmp
utils/glcanvas/samples/cube/*.h
utils/glcanvas/samples/cube/*.cpp
utils/glcanvas/samples/cube/*.def
utils/glcanvas/samples/cube/*.rc
utils/glcanvas/samples/cube/makefile*
utils/glcanvas/samples/cube/*.xbm
utils/glcanvas/samples/cube/*.xpm
utils/glcanvas/samples/cube/*.txt
utils/glcanvas/samples/cube/*.ico
utils/glcanvas/samples/cube/*.bmp
utils/glcanvas/samples/isosurf/*.h
utils/glcanvas/samples/isosurf/*.cpp
utils/glcanvas/samples/isosurf/*.def
utils/glcanvas/samples/isosurf/*.rc
utils/glcanvas/samples/isosurf/makefile*
utils/glcanvas/samples/isosurf/*.xbm
utils/glcanvas/samples/isosurf/*.xpm
utils/glcanvas/samples/isosurf/*.txt
utils/glcanvas/samples/isosurf/*.ico
utils/glcanvas/samples/isosurf/*.bmp
utils/glcanvas/samples/isosurf/*.gz
utils/glcanvas/docs/*.tex
utils/glcanvas/docs/*.txt
utils/glcanvas/docs/*.bmp
utils/glcanvas/docs/*.gif
samples/*.txt
samples/makefile*
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/hello/*.cpp
samples/hello/*.h
samples/hello/*.def
samples/hello/makefile.*
samples/hello/*.xbm
samples/hello/*.txt
samples/hello/*.ico
samples/hello/*.bmp
samples/hello/*.rc
samples/hello/*.wav
samples/dynamic/*.cpp
samples/dynamic/*.h
samples/dynamic/*.def
samples/dynamic/makefile*
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/*.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/makefile.*
samples/bombs/*.xbm
samples/bombs/*.xpm
samples/bombs/*.txt
samples/bombs/*.ico
samples/bombs/*.bmp
@@ -332,31 +230,19 @@ samples/bombs/*.rc
samples/ipc/*.cpp
samples/ipc/*.h
samples/ipc/*.def
samples/ipc/makefile*
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/types/*.cpp
samples/types/*.h
samples/types/*.def
samples/types/*.rc
samples/types/*.txt
samples/types/makefile.*
samples/types/*.xbm
samples/types/*.ico
samples/resource/*.cpp
samples/resource/*.h
@@ -364,105 +250,115 @@ samples/resource/*.def
samples/resource/*.rc
samples/resource/*.txt
samples/resource/*.wxr
samples/resource/makefile*
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/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/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/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/makefile.*
samples/controls/*.xbm
samples/controls/*.xpm
samples/controls/*.ico
samples/controls/*.bmp
samples/controls/*.rc
samples/controls/icons/*
samples/fractal/*.cpp
samples/fractal/*.h
samples/fractal/*.def
samples/fractal/makefile*
samples/fractal/makefile.*
samples/fractal/*.xbm
samples/fractal/*.xpm
samples/fractal/*.ico
samples/fractal/*.rc
samples/layout/*.cpp
samples/layout/*.h
samples/layout/*.def
samples/layout/makefile*
samples/layout/makefile.*
samples/layout/*.xbm
samples/layout/*.xpm
samples/layout/*.ico
samples/layout/*.rc
samples/layout/*.bmp
samples/layout/*.xpm
samples/printing/*.cpp
samples/printing/*.h
samples/printing/*.def
samples/printing/makefile*
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/tbarsmpl/*.cpp
samples/tbarsmpl/*.h
samples/tbarsmpl/*.def
samples/tbarsmpl/makefile.*
samples/tbarsmpl/*.txt
samples/tbarsmpl/*.xbm
samples/tbarsmpl/bitmaps/*.xbm
samples/tbarsmpl/*.ico
samples/tbarsmpl/*.bmp
samples/tbarsmpl/*.rc
samples/tbarsmpl/bitmaps/*.bmp
samples/tbar95/*.cpp
samples/tbar95/*.h
samples/tbar95/*.def
samples/tbar95/makefile.*
samples/tbar95/*.txt
samples/tbar95/*.xbm
samples/tbar95/bitmaps/*.xbm
samples/tbar95/*.ico
samples/tbar95/*.bmp
samples/tbar95/*.rc
samples/tbar95/bitmaps/*.bmp
samples/tbarmsw/*.cpp
samples/tbarmsw/*.h
samples/tbarmsw/*.def
samples/tbarmsw/makefile.*
samples/tbarmsw/*.txt
samples/tbarmsw/*.xbm
samples/tbarmsw/bitmaps/*.xbm
samples/tbarmsw/*.ico
samples/tbarmsw/*.bmp
samples/tbarmsw/*.rc
samples/tbarmsw/bitmaps/*.bmp
samples/docview/*.h
samples/docview/*.cpp
samples/docview/*.def
samples/docview/*.rc
samples/docview/makefile*
samples/docview/makefile.*
samples/docview/*.xbm
samples/docview/*.xpm
samples/docview/*.txt
samples/docview/*.ico
samples/docview/*.bmp
@@ -471,9 +367,8 @@ samples/memcheck/*.h
samples/memcheck/*.cpp
samples/memcheck/*.def
samples/memcheck/*.rc
samples/memcheck/makefile*
samples/memcheck/makefile.*
samples/memcheck/*.xbm
samples/memcheck/*.xpm
samples/memcheck/*.txt
samples/memcheck/*.ico
samples/memcheck/*.bmp
@@ -482,22 +377,21 @@ samples/odbc/*.h
samples/odbc/*.cpp
samples/odbc/*.def
samples/odbc/*.rc
samples/odbc/makefile*
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/odbc/odbc32.lib
samples/dialogs/*.h
samples/dialogs/*.cpp
samples/dialogs/*.def
samples/dialogs/*.rc
samples/dialogs/makefile*
samples/dialogs/makefile.*
samples/dialogs/*.xbm
samples/dialogs/*.xpm
samples/dialogs/*.txt
samples/dialogs/*.bmp
samples/dialogs/*.ico
@@ -508,9 +402,8 @@ samples/wxpoem/*.def
samples/wxpoem/*.rc
samples/wxpoem/*.inf
samples/wxpoem/*.txt
samples/wxpoem/makefile*
samples/wxpoem/makefile.*
samples/wxpoem/*.xbm
samples/wxpoem/*.xpm
samples/wxpoem/*.ico
samples/wxpoem/*.bmp
samples/wxpoem/*.dat
@@ -522,9 +415,8 @@ samples/pressup/*.def
samples/pressup/*.rc
samples/pressup/*.inf
samples/pressup/*.txt
samples/pressup/makefile*
samples/pressup/makefile.*
samples/pressup/*.xbm
samples/pressup/*.xpm
samples/pressup/*.ico
samples/pressup/*.bmp
@@ -534,9 +426,8 @@ samples/validate/*.def
samples/validate/*.rc
samples/validate/*.inf
samples/validate/*.txt
samples/validate/makefile*
samples/validate/makefile.*
samples/validate/*.xbm
samples/validate/*.xpm
samples/validate/*.ico
samples/validate/*.bmp
@@ -546,9 +437,8 @@ samples/events/*.def
samples/events/*.rc
samples/events/*.inf
samples/events/*.txt
samples/events/makefile*
samples/events/makefile.*
samples/events/*.xbm
samples/events/*.xpm
samples/events/*.ico
samples/events/*.bmp
@@ -557,11 +447,9 @@ samples/treectrl/*.h
samples/treectrl/*.def
samples/treectrl/*.rc
samples/treectrl/*.txt
samples/treectrl/makefile*
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
@@ -572,11 +460,9 @@ samples/listctrl/*.h
samples/listctrl/*.def
samples/listctrl/*.rc
samples/listctrl/*.txt
samples/listctrl/makefile*
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
@@ -587,9 +473,8 @@ samples/splitter/*.h
samples/splitter/*.def
samples/splitter/*.rc
samples/splitter/*.txt
samples/splitter/makefile*
samples/splitter/makefile.*
samples/splitter/*.xbm
samples/splitter/*.xpm
samples/splitter/*.ico
samples/splitter/*.bmp
@@ -598,9 +483,8 @@ samples/grid/*.h
samples/grid/*.def
samples/grid/*.rc
samples/grid/*.txt
samples/grid/makefile*
samples/grid/makefile.*
samples/grid/*.xbm
samples/grid/*.xpm
samples/grid/*.ico
samples/grid/*.bmp
@@ -609,9 +493,8 @@ samples/internat/*.h
samples/internat/*.def
samples/internat/*.rc
samples/internat/*.txt
samples/internat/makefile*
samples/internat/makefile.*
samples/internat/*.xbm
samples/internat/*.xpm
samples/internat/*.po
samples/internat/*.ico
samples/internat/*.bmp
@@ -622,78 +505,36 @@ samples/checklst/*.h
samples/checklst/*.def
samples/checklst/*.rc
samples/checklst/*.txt
samples/checklst/makefile*
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/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/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/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

View File

@@ -1,123 +0,0 @@
install-sh
Makefile
template.mak
TODO.txt
configure.in
config.guess
config.sub
wx-config.in
mkinstalldirs
docs/gtk/*.html
docs/gtk/*.txt
include/wx/gtk/*.h
src/Makefile
src/Makefile.in
src/*.inc
src/gtk/*.cpp
src/gtk/*.c
src/gtk/*.inc
src/gtk/*.xbm
src/gdk_imlib/*.c
src/gdk_imlib/*.h
src/gdk_imlib/AUTHORS
src/gdk_imlib/AUDIT
src/gdk_imlib/COPYING.LIB
src/gdk_imlib/README
src/gdk_imlib/ChangeLog
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
misc/imlib/imrc
misc/imlib/*.pal
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,96 +0,0 @@
install-sh
Makefile
template.mak
configure.in
config.guess
config.sub
wx-config.in
mkinstalldirs
src/Makefile
src/Makefile.in
src/*.inc
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
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/motif/mdi/COPYRIGHT
src/motif/mdi/Imakefile
src/motif/mdi/Readme
src/motif/mdi/config/C++.rules
src/motif/mdi/config/MDI.tmpl
src/motif/mdi/doc/*.html
src/motif/mdi/doc/pics/*.gif
src/motif/mdi/lib/*.C
src/motif/mdi/lib/*.h
src/motif/mdi/lib/*.xbm
src/motif/mdi/lib/Imakefile
src/motif/mdi/test/*.C
src/motif/mdi/test/Imakefile
src/make.env
src/makeprog.env
include/wx/motif/*.h
docs/motif/*.*
lib/dummy

View File

@@ -1,8 +1,4 @@
docs/msw/*.txt
docs/licence.txt
distrib/msw/*.rsp
distrib/msw/*.bat
src/makeb32.env
src/makebcc.env

View File

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

View File

@@ -1,33 +1,27 @@
@echo off
rem Zip up an external, generic + Windows distribution of wxWindows 2.0
set src=d:\wx2\wxWindows
set dest=%src\deliver
if "%src" == "" goto usage
if "%dest" == "" goto usage
if "%1" == "" goto usage
if "%2" == "" goto usage
echo About to archive an external wxWindows distribution:
echo From %src
echo To %dest
echo From %1
echo To %2\wx200gen.zip, %2\wx200doc.zip, %2\wx200msw.zip, %2\wx200ps.zip, %2\wx200hlp.zip, %2\wx200htm.zip, %2\wx200pdf.zip
echo CTRL-C if this is not correct.
pause
erase %dest\wx200*.zip
erase %2\wx200*.zip
cd %src
cd %1
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\wx200doc.zip < %src\distrib\msw\docsrc.rsp
zip32 -@ %2\wx200gen.zip < %1\distrib\msw\generic.rsp
zip32 -@ %2\wx200msw.zip < %1\distrib\msw\msw.rsp
zip32 -@ %2\wx200doc.zip < %1\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
rem zip32 -@ %2\wx200ps.zip < %1\distrib\msw\wx_ps.rsp
zip32 -@ %2\wx200hlp.zip < %1\distrib\msw\wx_hlp.rsp
zip32 -@ %2\wx200htm.zip < %1\distrib\msw\wx_html.rsp
zip32 -@ %2\wx200pdf.zip < %1\distrib\msw\wx_pdf.rsp
zip32 -@ %dest\ogl3.zip < %src\utils\ogl\distrib\ogl.rsp
cd %dest
cd %2
echo wxWindows archived.
goto end

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,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,36 +0,0 @@
Welcome to wxWindows/Gtk,
you have downloaded version 1.96 of the GTK+ port of C++ library
wxWindows. Information on how to install can be found in the
file install.txt, but if you cannot wait, this should work on
all systems
configure --without-threads
make
su (PASSWORD)
make install
wxWindows/Gtk is still in development and you can have a look
at the todo.txt to see what's missing before an official beta
and - more important - before we can aim at binary compatibility.
More information is available from my homepage at
http://wesley.informatik.uni-freiburg.de/~wxxt
Please send problems concerning installation, feature requests,
bug reports or comments to either the wxGTK mailing list or to
the wxWindows developers list. Information on how to subscribe
is available from my homepage.
wxWindows/Gtk comes with no guarantee whatsoever. It might crash
your harddisk or destroy your monitor. It doesn't claim to be
suitable for any special purpose.
Regards,
Robert Roebling

View File

@@ -1,38 +0,0 @@
-------------------- High priority ---------------------
wxTreeCtrl
-> Keyboard handling.
wxClipboard
-> On the way, but not functional yet.
Fix printing of bitmaps
-> No idea.
OwnerDraw for wxListCtrl and others
-> That is a big one.
DnD
-> Must be rewritten for GTK+ 1.1.3
-------------------- Low priority ---------------------
wxDebugContext <-> wxLogXXX functions
-> Remove either
Implement wxPalette
-> I never understood that. Postponed.
Implement wxDirDialog
-> Not heard of. Postponed.
Show accelerator in menus
-> Changed in GTK 1.1.X. Postponed.
Correct tab navigation
-> seems to be broken in GTK. Postponed.
Cooperation with Qt
-> Would be nice.

View File

@@ -1,4 +1,5 @@
[OPTIONS]
BMROOT=d:\wx2\wxwind~1\docs\latex\porting ; Assume that bitmaps are where the source is
TITLE=wxWindows Porting Guide
CONTENTS=Contents
COMPRESS=HIGH

View File

@@ -11,7 +11,7 @@ headerRule = yes
footerRule = yes
useHeadingStyles = yes
listItemIndent=40
generateHPJ = no
generateHPJ = yes
htmlBrowseButtons = bitmap
winHelpContents = yes
winHelpVersion = 3 ; 3 for Windows 3.x, 4 for Windows 95

View File

@@ -1,190 +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{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{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

@@ -38,7 +38,7 @@ or a frame becomes inactivate resulting in all application frames being inactive
\membersection{wxActivateEvent::wxActivateEvent}
\func{}{wxActivateEvent}{\param{WXTYPE }{eventType = 0}, \param{bool}{ active = TRUE}, \param{int }{id = 0}}
\func{}{wxActivateEvent}{\param{WXTYPE }{eventType = 0}, \param{int }{id = 0}}
Constructor.

View File

@@ -238,32 +238,6 @@ goes idle again, when OnIdle is called, and so on.
\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}
@@ -273,43 +247,16 @@ application's main window, calling \helpref{wxApp::SetTopWindow}{wxappsettopwind
Return TRUE to continue processing, FALSE to exit the application.
\membersection{wxApp::OnQueryEndSession}\label{wxapponqueryendsession}
\membersection{wxApp::Pending}\label{wxapppending}
\func{void}{OnQueryEndSession}{\param{wxCloseEvent\& }{event}}
\func{bool}{Pending}{\void}
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.
Returns TRUE if unprocessed events are in the window system event queue
(MS Windows and Motif).
\wxheading{See also}
\helpref{wxWindow::Close}{wxwindowclose},\rtfsp
\helpref{wxWindow::OnCloseWindow}{wxwindowonclosewindow},\rtfsp
\helpref{wxCloseEvent}{wxcloseevent},\rtfsp
\helpref{wxApp::OnEndSession}{wxapponendsession}
\membersection{wxWindow::OnScroll}\label{wxwindowonscroll}
\helpref{wxApp::Dispatch}{wxappdispatch}
\membersection{wxApp::ProcessMessage}\label{wxappprocessmessage}
@@ -335,17 +282,6 @@ BOOL CTheApp::PreTranslateMessage(MSG *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}

View File

@@ -30,14 +30,6 @@ provided bitmaps.}
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}

View File

@@ -6,14 +6,14 @@
\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 subsets MS Windows (16-bit, Windows 95 and Windows NT) and GTK.
Interface) and other facilities on more than one platform. It currently
supports subsets of Motif, Xt and MS Windows (16-bit, Windows 95 and Windows NT).
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.
maintained by Julian Smart and Markus Holzem, with support from users.
This manual discusses wxWindows in the context of multi-platform
development.\helpignore{For more detail on the wxWindows version 2.0 API
@@ -55,8 +55,8 @@ that are often indistinguishable from those produced using single-platform
toolkits
such as Motif and MFC.
wxWindows 2.0 currently maps to two native APIs: GTK and
MS Windows. Motif, Xt and Mac ports are also in preparation.
wxWindows 2.0 currently maps to two native APIs: Motif and
MS Windows. An Xt port is also in preparation.
The importance of using a platform-independent class library cannot be
overstated, since GUI application development is very time-consuming,
@@ -79,17 +79,17 @@ here are some of the benefits:
\item Low cost (free, in fact!)
\item You get the source.
\item Several example programs.
\item Over 700 pages of printable and on-line documentation.
\item Over 200 pages of printable and on-line documentation.
\item Simple-to-use, object-oriented API.
\item Graphics calls include splines, polylines, rounded rectangles, etc.
\item Constraint-based layout option.
\item Print/preview and document/view architectures.
\item Status line facility, toolbar
\item Easy, object-oriented interprocess comms (DDE subset) under Unix and
\item Easy, object-oriented interprocess comms (DDE subset) under UNIX and
MS Windows.
\item Encapsulated PostScript generation under Unix, normal MS Windows printing on the
\item Encapsulated PostScript generation under UNIX, normal MS Windows printing on the
PC.
\item MDI support under Windows and GTK.
\item MDI support under Windows.
\item Can be used to create DLLs under Windows, dynamic libraries on the Sun.
\item Common dialogs for file browsing, printing, colour selection, etc.
\item Under MS Windows, support for creating metafiles and copying
@@ -171,16 +171,18 @@ following setups.
\begin{enumerate}\itemsep=0pt
\item A 486 or higher PC running MS Windows.
\item One of Microsoft Visual C++ 4.0 or higher, Borland C++, Gnu-Win32.
\item At least 60 MB of disk space.
\item One of Microsoft Visual C++, Borland C++, Watcom C++, MetroWerks C++,
Symantec C++, GNU-WIN32.
\item At least 30 MB of disk space.
\end{enumerate}
(b) Unix:
(b) UNIX:
\begin{enumerate}\itemsep=0pt
\item Almost any C++ compiler, including GNU C++.
\item Almost any Unix workstation, and GTK 1.0 or higher.
\item At least 60 MB of disk space.
\item Almost any UNIX workstation (VMS is supported too) and Motif 1.2 or higher (not necessary
for the Xt version)
\item At least 30 MB of disk space.
\end{enumerate}
\section{Availability and location of wxWindows}
@@ -195,26 +197,35 @@ Applications Institute by anonymous FTP and World Wide Web:
\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 wives Harriet, Tanja and others.
Thanks are due to the AIAI for being willing to release wxWindows into
the public domain, and to our patient wives Harriet and Tanja.
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.
The Internet has been an essential prop when coming up against tricky
problems. Thanks to those who answered our
queries or submitted bug fixes and enhancements; wxWindows is very
much a team effort.
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.
Hermann Dunkel contributed XPM support; Arthur Seaton wrote the memory
checking code; Olaf Klein and Patrick Halke wrote the ODBC classes;
Harri Pasanen and Robin Dunn wrote wxPython and contributed to the
wxExtend library.
Markus Holzem write the Xt port. Jonathan Tonberg, Bill Hale,
Cecil Coupe, Thomaso Paoletti, Thomas Fettig, and others slaved away
writing the Mac port. Keith Gary Boyce ported wxWindows to the free
GNU-WIN32 compiler, refusing to give up when shortcuts were suggested.
Many thanks also to: Timothy Peters, Jamshid Afshar, Patrick Albert, C. Buckley,
Robin Corbet, Harco de Hilster, Josep Fortiana, Torsten Liermann, Tatu
M\"{a}nnist\"{o}, Ian Perrigo, Giordano Pezzoli, Petr Smilauer, Neil Smith,
Kari Syst\"{a}, Jyrki Tuomi, Edward Zimmermann, Ian Brown, and many
others.
`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,
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.
@@ -239,7 +250,7 @@ changes.txt for differences between versions.
\section{Include files}
The main include file is {\tt "wx/wx.h"}; this includes the most commonly
The main include file is {\tt "wx.h"}; this includes the most commonly
used modules of wxWindows.
To save on compilation time, include only those header files relevant to the
@@ -248,26 +259,25 @@ the following section before any other includes:
\begin{verbatim}
// For compilers that support precompilation, includes "wx.h".
#include <wx/wxprec.h>
#include "wx_prec.h"
#ifdef __BORLANDC__
#pragma hdrstop
#endif
#ifndef WX_PRECOMP
// Include your minimal set of headers here, or wx.h
#include <wx/wx.h>
... include minimum set of files necessary here ...
#endif
... now your other include files ...
\end{verbatim}
The file {\tt "wx/wxprec.h"} includes {\tt "wx/wx.h"}. Although this incantation
The file {\tt "wx\_prec.h"} includes {\tt "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
Borland precompilation is largely automatic. Visual C++ requires specification of {\tt "wx\_prec.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.
@@ -277,14 +287,14 @@ multi-megabyte .pch files.
\section{Libraries}
Please the wxGTK documentation for use of the Unix version of wxWindows.
Under Windows, use the library wx.lib for stand-alone Windows
Under UNIX, use the library libwx\_motif.a
(Motif). Under Windows, use the library wx.lib for stand-alone Windows
applications, or wxdll.lib for creating DLLs.
\section{Configuration}
The following lists the options configurable in the file
\rtfsp{\tt "wx/msw/setup.h"} and {\tt "wx/gtk/setup.h"} Some settings are a matter
\rtfsp{\tt include/base/wx\_setup.h.} 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.
@@ -296,15 +306,27 @@ others can be set to minimize the size of the library.
\twocolitem{USE\_DOC\_VIEW\_ARCHITECTURE}{If 1, wxDocument, wxView and related classes are compiled.}
\twocolitem{USE\_DYNAMIC\_CLASSES}{If 1, the run-time class macros and classes are compiled. Recommended,
and necessary for the document/view framework.}
\twocolitem{USE\_EXTENDED\_STATICS}{If 1, wxStaticItem code is compiled for enhanced panel decorative items.
Not rigorously tested, and not documented.}
\twocolitem{USE\_HELP}{If 1, interface to help system is compiled.}
\twocolitem{USE\_GAUGE}{If 1, the wxGauge class compiled.}
\twocolitem{USE\_GLOBAL\_MEMORY\_OPERATORS}{If 1, redefines global new and delete operators to be compatible
with the extended arguments of the debugging wxObject new and delete operators. If this causes problems
for your compiler, set to 0.}
\twocolitem{USE\_GNU\_WXSTRING}{If 1, the enhanced GNU wxString and regular expression class are compiled
in place of the normal wxString class. See contrib/wxstring for details.}
\twocolitem{USE\_IMAGE\_LOADING\_IN\_MSW}{Use code to allow dynamic .BMP loading
under MS Windows.}
\twocolitem{USE\_IMAGE\_LOADING\_IN\_X}{Use code in utils/image to allow dynamic .BMP/.GIF loading
under X.}
\twocolitem{USE\_RESOURCE\_LOADING\_IN\_MSW}{Use code to allow dynamic .ICO/.CUR loading
under MS Windows.}
\twocolitem{USE\_IPC}{If 1, interprocess communication code is compiled.}
\twocolitem{USE\_MEMORY\_TRACING}{If 1, enables debugging versions of wxObject::new and wxObject::delete
if the value of DEBUG is defined to more than 0.}
\twocolitem{USE\_METAFILE}{If 1, Windows Metafile code is compiled.}
\twocolitem{USE\_PANEL\_IN\_PANEL}{If 1, experimental panel-in-panel code is used
for common dialog boxes. Not recommended, since tab traversal can suffer.}
\twocolitem{USE\_POSTSCRIPT}{If 1, PostScript code is compiled.}
\twocolitem{USE\_POSTSCRIPT\_ARCHITECTURE\_IN\_MSW}{Set to 1 to enable the printing architecture
to make use of either native Windows printing facilities, or the wxPostScriptDC class depending
@@ -312,7 +334,32 @@ on the wxApp::SetPrintMode setting.}
\twocolitem{USE\_PRINTING\_ARCHITECTURE}{If 1, wxPrinter, wxPrintout and related classes are compiled
for the print/preview framework.}
\twocolitem{USE\_RESOURCES}{If 1, win.ini or .Xdefaults-style resource read/write code is compiled.}
\twocolitem{USE\_SCROLLBAR}{If 1, wxScrollBar class is compiled. Not rigorously tested, and not documented.}
\twocolitem{USE\_SPLINES}{If 1, spline code is compiled.}
\twocolitem{USE\_TOOLBAR}{If 1, the wxToolBar class is compiled.}
\twocolitem{USE\_TYPEDEFS}{If 1, a typedef will be used for wxPoint instead of
a class declaration, to reduce overhead and avoid a Microsoft C++ memory bug.}
\twocolitem{USE\_VLBOX}{If 1, wxVirtListBox code is compiled for a virtual listbox item.
Not rigorously tested, and not documented.}
\twocolitem{USE\_WX\_RESOURCES}{If 1, wxWindows resource file (.WXR) code is compiled.}
\twocolitem{USE\_XFIG\_SPLINE\_CODE}{If 1, XFig-derived code is used for spline
drawing. If 0, AIAI code is used, which is slower.}
\twocolitem{USE\_XPM\_IN\_X}{If 1, XPM (colour pixmap) facilities will be compiled and used
in wxBitmap under X.}
\twocolitem{USE\_XPM\_IN\_MSW}{If 1, XPM (colour pixmap) facilities will be compiled and used
in wxBitmap under MS Windows.}
\end{twocollist}
\subsection{X features}
\begin{twocollist}
\twocolitem{DEFAULT\_FILE\_SELECTOR\_SIZE}{Let Motif choose the size of
XmFileSelectionBox. Otherwise, size is 500x600.}
\twocolitem{PIXEL0\_DISABLE}{Define to disallow allocation of pixel 0 (wxXOR problem).}
\twocolitem{USE\_GADGETS}{Use gadgets where possible rather than Widgets for items.
Default is to use Gadgets.}
\twocolitem{USE\_BUTTON\_GADGET}{Use gadgets for buttons. This can intefere with
default button selection, so the default is zero.}
\end{twocollist}
\subsection{Windows and NT features}
@@ -326,17 +373,18 @@ directory, ctl3d.h into an include directory, and ctl3dv2.dll into
windows/system). You may need to find a compiler-specific version of ctl3dv2.lib
or ctl3d32.lib. Define CTL3D to be 1 in wx\_setup.h and link your executables with ctl3dv2.lib
or ctl3d32.lib.}
\twocolitem{USE\_ITSY\_BITSY}{If 1, compiles in code to support tiny window titlebars.}
\twocolitem{USE\_ODBC}{If 1, compiles wxDatabase and wxRecordSet classes for ODBC
access. Requires sql.h, sqlext.h files if set to 1 (see topic on database support).}
\end{twocollist}
\section{Makefiles}
At the moment there is no attempt to make Unix makefiles and
At the moment there is no attempt to make UNIX makefiles and
PC makefiles compatible, i.e. one makefile is required for
each environment.
Sample makefiles for Unix (suffix .UNX), MS C++ (suffix .DOS and .NT), Borland
Sample makefiles for UNIX (suffix .UNX), MS C++ (suffix .DOS and .NT), Borland
C++ (.BCC) and Symantec C++ (.SC) are included for the library, demos
and utilities. The NT, Borland and Symantec makefiles cannot be
guaranteed to be up-to-date since the author does not have
@@ -355,12 +403,12 @@ FINAL=1 on the command line to remove debugging information (this only
really necessary at the link stage), and DLL=1 to make a DLL version of
the library, if building a library.
\subsection{Unix makefiles}
\subsection{UNIX makefiles}
TODO.
Debugging information is included by default; you may add DEBUG= as an
argument to make to compile without it, or use the Unix {\bf strip}
argument to make to compile without it, or use the UNIX {\bf strip}
command to remove debugging information from an executable.
\normalbox{{\it Important note:} Most compiler flags are kept centrally in
@@ -378,7 +426,7 @@ The least that must be defined in the Windows resource file (extension RC)
is the following statement:
\begin{verbatim}
rcinclude "wx/msw/wx.rc"
rcinclude wx.rc
\end{verbatim}
which includes essential internal wxWindows definitions. The resource script
@@ -397,8 +445,7 @@ 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:
A module definition file (extension DEF) looks like the following:
\begin{verbatim}
NAME Hello
@@ -414,6 +461,46 @@ STACKSIZE 8192
The only lines which will usually have to be changed per application are
NAME and DESCRIPTION.
\section{Memory models and memory allocation}\label{memorymodels}
Under UNIX, memory allocation isn't a problem. Under Windows, the only
really viable way to go is to use the large model, which uses the global
heap instead of the local heap for memory allocation. Unless more than
one read-write data segment is used,% (see \helpref{large data}{largedata}
large model programs may still have multiple instances under MS
C/C++ 7. Microsoft give the following guidelines for producing
multiple-instance large model programs:
\begin{itemize}\itemsep=0pt
\item Do not use {\tt /ND} to name extra data segments unless the segment is READONLY.
\item Use the .DEF file to mark extra data segments READONLY.
\item Do not use \_\_far or FAR to mark data items.
\item Use {\tt /PACKDATA} to combine data segments.
\item Use {\tt /Gt65500 /Gx} to force all data into the default data segment.
\end{itemize}
Even with the single-instance limitation, the productivity benefit is
worth it in the majority of cases. Note that some other multi-platform
class libraries also have this restriction. (If more than one instance
really is required, create several copies of the program with different
names.)
Having chosen the large model, just use C++ `new', `delete' (and if
necessary `malloc' and `free') in the normal way. The only restrictions
now encountered are a maximum of 64 KB for a single program segment and
for a single data item, unless huge model is selected.
For Borland users, use the data threshold switch, and the following is
also recommended:
\begin{itemize}\itemsep=0pt
\item Check ``Automatic Far Data Segments"
\item Check ``Put Constant Strings into Code Segment"
\end{itemize}
See also the Frequently Asked Questions document for further details
on using Borland with wxWindows.
\subsection{Allocating and deleting wxWindows objects}
In general, classes derived from wxWindow must dynamically allocated
@@ -421,13 +508,17 @@ 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 statically create a window unless you know that the window
cannot be deleted dynamically. Modal dialogs, such as those used
in the {\tt dialogs} sample, can usually be created statically,
if you know that the OK or Cancel button does not destroy the dialog.
Don't create a window on the stack, because this will interfere
with delayed deletion.
Most drawing objects, such as wxPen, wxBrush, wxFont, and wxBitmap, should be
created dynamically. They are cleaned up automatically on program exit.
wxColourMap is an exception to this rule (currently). In particular,
do not attempt to create these objects globally before OnInit() has a chance
to be called, because wxWindows might not have done essential internal initialisation
(including creation of lists containing all instances of wxPen, wxBrush etc.)
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
@@ -440,10 +531,24 @@ 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
make calls like wxDC::SetPen(NULL) or wxDC::SelectObject(NULL) 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{Dynamic Link Libraries}
wxWindows may be used to produce DLLs which run under MS Windows. Note that
this is not the same thing as having wxWindows as a DLL, which is not
currently possible. For Microsoft C++, use the makefile with the argument DLL=1 to produce
a version of the wxWindows library which may be used in a DLL application.
There is a bug in Microsoft C++ which makes the compiler complain about returned floats,
which goes away when the {\tt /Os} option is used, which is why that flag is
set in the makefile.
For making wxWindows as a Sun dynamic library, there are comments in the
UNIX makefile for the appropriate flags for AT\&T C++. Sorry, I haven't
investigated the flags needed for other compilers.
\section{Conditional compilation}
One of the purposes of wxWindows is to reduce the need for conditional
@@ -452,69 +557,63 @@ However, sometimes it is necessary to incorporate platform-specific
features (such as metafile use under MS Windows). The following identifiers
may be used for this purpose, along with any user-supplied ones:
{\bf GUIs:}
\begin{itemize}
\item {\tt wx\_x} - for code which should work under any X toolkit
\item {\tt wx\_motif} - for code which should work under Motif only
\item {\tt wx\_msw} - for code which should work under Microsoft Windows only
\item {\tt wx\_xt} - for code which should work under Xt only
\end{itemize}
For example:
\begin{verbatim}
__X__ any X, but not GTK
__WXMOTIF__ Motif
__WXGTK__ GTK
__WXMSW__ Any Windows
__MAC__ MacOS
__UNIX__ any Unix
__WIN95__ GUI for Windows 95 and above; NT 4.0 and above.
__WIN32__ WIN32 API
__NT__ Windows NT
__CURSES__ CURSES
...
#ifdef wx_x
(void)wxMessageBox("Sorry, metafiles not available under X.");
#endif
#ifdef wx_msw
wxMetaFileDC dc;
DrawIt(dc);
wxMetaFile *mf = dc.Close();
mf->SetClipboard();
delete mf;
#endif
...
\end{verbatim}
{\bf OSes:}
\section{Building on-line help}
\begin{verbatim}
__HPUX__
__SVR4__
__SYSV__
__LINUX__
__SGI__
__ULTRIX__
__BSD__
__VMS__
__SUN__ Any Sun
__SUNOS__
__SOLARIS__
__ALPHA__
__AIX__
__DATA_GENERAL__
__OSF__
__FREEBSD__
\end{verbatim}
wxWindows has its own help system from version 1.30: wxHelp. It can be
used to view the wxWindows class library reference, and also to provide
on-line help for your wxWindows applications. The API, made accessible
by including {\tt wx\_help.h}, allows you to load files and display
specific sections, using DDE to communicate between the application and
wxHelp.
{\bf Compilers:}
wxHelp files can be marked up by hand from ASCII files within wxHelp,
or may be generated from other files, as is the case with the wxWindows
documentation.
\begin{verbatim}
__GNUWIN32__ Gnu-Win32 compiler
__DJGPP__ DJGPP
__GNUG__ Gnu C++ on any platform
__BORLANDC__ Borland C++
__WATCOMC__ Watcom C++
__SYMANTECC__ Symantec C++
__VISUALC__ VC++
__SUNCC__
\end{verbatim}
{\bf wxWindows modes:}
\begin{verbatim}
__WXDEBUG__ usage: #ifdef __DEBUG__ (=> debug mode, else => release)
\end{verbatim}
It is possible to use the platform-specific help
system (e.g. WinHelp) instead of wxHelp.
See {\tt install.txt}, the wxHelp documentation (in {\tt
utils/wxhelp/docs}) and \helpref{wxHelp}{wxhelp} for further details.
\section{C++ issues}
The following documents some miscellaneous C++ issues.
There are cases where a C++ program will compile and run fine under one
environment, and then fail to compile using a different compiler. Some
caveats are given below, from experience with the GNU C++ compiler (GCC)
and MS C/C++ compiler version 7.
\subsection{Templates}
wxWindows does not use templates since it is a notoriously unportable feature.
wxWindows does not use templates for two main reasons: one, it is a
notoriously unportable feature, and two, the author is irrationally
suspicious of them and prefers to use casts. More compilers are
now implementing templates, and so it will probably be safe to use
them soon without fear of portability problems.
\subsection{Precompiled headers}
@@ -537,7 +636,7 @@ 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;
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
@@ -559,14 +658,14 @@ 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
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
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
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).
@@ -594,8 +693,7 @@ 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.
format.
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
@@ -666,6 +764,18 @@ first attempt.
See the separate manual and the directory utils/wxgraph.
\section{wxImage}\label{wximage}
This is a collection of GIF/BMP/XBM bitmap loading and displaying
routines for X.
\section{MFUTILS}\label{mfutils}
A very modest step towards reading Windows metafiles on the
any platform. Julian Smart's ClockWorks program demonstrates
how extremely simple metafiles may be read and displayed (in this
case, to be used as clock hands).
\section{Colours}\label{coloursampler}
A colour sampler for viewing colours and their names on each
@@ -728,7 +838,7 @@ Use .wrc (wxWindows resource files) where possible, because they can be easily c
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}
\section{Strategies for debugging}
\subsection{Positive thinking}
@@ -757,35 +867,49 @@ 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{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.
\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.
trivial programs. Some platforms don't allow for debugging, such
as WIN32s under Windows 3.x. In this case, you might be advised to
debug under 16-bit Windows and when you're confident, compile for
WIN32s. In fact WIN32s can be very strict about bad memory handling,
so testing out under WIN32s is a good thing to do even if you're
not going to distribute this version. (Unless you've got a good memory checking,
utility, of course!) Tracking bugs under WIN32s can involve a lot of debug message
insertion and relinking, so make sure your compiler has a fast linker
(e.g. Watcom, Symantec).
\subsection{Use logging functions}
\subsection{Use tracing code}
There is a variety of logging functions that you can use in your program:
see \helpref{Logging functions}{logfunctions}.
You can use wxDebugMsg statements (or the wxDebugStreamBuf class) to
output to a debugging window such as DBWIN under Windows, or standard
error under X. If compiling in DEBUG mode, you can use TRACE statements
that will be compiled out of the final build of your application.
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}
\subsection{Use wxObject::Dump and the wxDebugContext class}
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.
It's good practice to implement the Dump member function for all
classes derived from wxObject. You can then make use of wxDebugContext
to dump out information on all objects in the program, if DEBUG is
defined to be more than zero. You can use wxDebugContext to check for
memory leaks and corrupt memory. See the debugging topic in the
reference manual for more information.
\subsection{Check Windows debug messages}
@@ -798,14 +922,3 @@ 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.

View File

@@ -18,14 +18,6 @@ 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}
@@ -107,7 +99,7 @@ box.
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
which sets the keyboard focus for windows and text panel items, \helpref{wxWindow::OnDefaultAction}{wxwindowondefaultaction}\rtfsp
and \helpref{wxWindow::GetDefaultItem}{wxwindowgetdefaultitem}.
Note that under Motif, calling this function immediately after

View File

@@ -1,60 +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{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

@@ -29,14 +29,24 @@ 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}
\twocolitem{\helpref{wxStatusBar95}{wxstatusbar95}}{Implements a Windows 95 status bar on a frame}
\twocolitem{\helpref{wxTabbedPanel}{wxtabbedpanel}}{Tabbed panel}
\end{twocollist}
{\large {\bf Toolbar classes}}
\overview{Overview}{wxtoolbaroverview}
These are the toolbar classes.
\begin{twocollist}\itemsep=0pt
\twocolitem{\helpref{wxToolBarBase}{wxtoolbarbase}}{Toolbar base class}
\twocolitem{\helpref{wxToolBarSimple}{wxtoolbarsimple}}{A simple, cross-platform toolbar class}
\twocolitem{\helpref{wxToolBarMSW}{wxtoolbarmsw}}{A Windows-only toolbar class}
\twocolitem{\helpref{wxToolBar95}{wxtoolbar95}}{A Windows 95-only toolbar class}
\end{twocollist}
{\large {\bf Common dialogs}}
@@ -160,7 +170,6 @@ An event object contains information about a specific event. Event handlers
\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}
@@ -175,12 +184,9 @@ An event object contains information about a specific event. Event handlers
\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{wxSessionEvent}{wxsessionevent}}{A session ending event}
\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}
@@ -189,8 +195,6 @@ An event object contains information about a specific event. Event handlers
{\large {\bf Validators}}
\overview{Overview}{validatoroverview}
These are the window validators, used for filtering and validating
user input.
@@ -243,16 +247,14 @@ 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{wxDebugContext}{wxdebugcontext}}{Provides various debugging facilities}
\twocolitem{\helpref{wxDebugStreamBuf}{wxdebugstreambuf}}{A stream buffer writing to the debug stream}
\twocolitem{\helpref{wxObject}{wxobject}}{Provides optional debugging versions of {\bf new} and {\bf delete}}
\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}
\twocolitem{\helpref{WXTRACE}{trace}}{Trace macro}
\twocolitem{\helpref{WXTRACELEVEL}{tracelevel}}{Trace macro with levels}
\end{twocollist}
{\large {\bf Interprocess communication}}
@@ -266,9 +268,6 @@ based on DDE.
\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{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}}
@@ -278,6 +277,9 @@ based on DDE.
wxWindows supports a document/view framework which provides
housekeeping for a document-centric application.
TODO: MDI frame classes for documents; make it unnecessary to convert
between streams and files (overridable method that uses filenames instead of streams).
\begin{twocollist}\itemsep=0pt
\twocolitem{\helpref{wxDocument}{wxdocument}}{Represents a document}
\twocolitem{\helpref{wxView}{wxview}}{Represents a view}
@@ -285,8 +287,6 @@ housekeeping for a document-centric application.
\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}}
@@ -326,14 +326,11 @@ product.
{\large {\bf Miscellaneous}}
\begin{twocollist}\itemsep=0pt
\twocolitem{\helpref{wxAcceleratorTable}{wxacceleratortable}}{Accelerator table}
\twocolitem{\helpref{wxApp}{wxapp}}{Application 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{wxHelpControllerBase}{wxhelpcontrollerbase}}{Base class for help controllers}
\twocolitem{\helpref{wxTimer}{wxtimer}}{Timer class}
\twocolitem{\helpref{wxSystemSettings}{wxsystemsettings}}{System settings class}
\twocolitem{\helpref{wxWinHelpController}{wxwinhelpcontroller}}{Controls WinHelp instances}
\end{twocollist}

View File

@@ -16,17 +16,9 @@ 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}
\helpref{wxRadioButton}{wxradiobutton}
\latexignore{\rtfignore{\wxheading{Members}}}

View File

@@ -1,95 +0,0 @@
\section{\class{wxCheckListBox}}\label{wxchecklistbox}
A checklistbox is like a listbox, but allows items to be checked or unchecked.
This class is currently only implemented under Windows, and wxWindows must be
compiled with USE\_OWNER\_DRAWN set to 1.
Only the new functions for this class are documented; see also \helpref{wxListBox}{wxlistbox}.
\wxheading{Derived from}
\helpref{wxListBox}{wxlistbox}\\
\helpref{wxControl}{wxcontrol}\\
\helpref{wxWindow}{wxwindow}\\
\helpref{wxEvtHandler}{wxevthandler}\\
\helpref{wxObject}{wxobject}
\wxheading{Window styles}
See \helpref{wxListBox}{wxlistbox}.
\wxheading{Event handling}
See \helpref{wxListBox}{wxlistbox}.
\wxheading{See also}
\helpref{wxListBox}{wxlistbox}, \helpref{wxChoice}{wxchoice}, \helpref{wxComboBox}{wxcombobox}, \helpref{wxListCtrl}{wxlistctrl},
\rtfsp\helpref{wxCommandEvent}{wxcommandevent}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxCheckListBox::wxCheckListBox}\label{wxchecklistboxconstr}
\func{}{wxCheckListBox}{\void}
Default constructor.
\func{}{wxCheckListBox}{\param{wxWindow*}{ parent}, \param{wxWindowID}{ id},\rtfsp
\param{const wxPoint\&}{ pos = wxDefaultPosition}, \param{const wxSize\&}{ size = wxDefaultSize},\rtfsp
\param{int}{ n}, \param{const wxString }{choices[] = NULL},\rtfsp
\param{long}{ style = 0}, \param{const wxValidator\& }{validator = wxDefaultValidator}, \param{const wxString\& }{name = ``listBox"}}
Constructor, creating and showing a list box.
\wxheading{Parameters}
\docparam{parent}{Parent window. Must not be NULL.}
\docparam{id}{Window identifier. A value of -1 indicates a default value.}
\docparam{pos}{Window position.}
\docparam{size}{Window size. If the default size (-1, -1) is specified then the window is sized
appropriately.}
\docparam{n}{Number of strings with which to initialise the control.}
\docparam{choices}{An array of strings with which to initialise the control.}
\docparam{style}{Window style. See \helpref{wxCheckListBox}{wxchecklistbox}.}
\docparam{validator}{Window validator.}
\docparam{name}{Window name.}
\membersection{wxCheckListBox::\destruct{wxCheckListBox}}
\func{void}{\destruct{wxCheckListBox}}{\void}
Destructor, destroying the list box.
\membersection{wxCheckListBox::Check}\label{wxchecklistboxcheck}
\func{void}{Check}{\param{int }{item}, \param{bool}{ check = TRUE}}
Checks the given item.
\wxheading{Parameters}
\docparam{item}{Index of item to check.}
\docparam{check}{TRUE if the item is to be checked, FALSE otherwise.}
\membersection{wxCheckListBox::IsChecked}\label{wxchecklistboxischecked}
\constfunc{bool}{IsChecked}{\param{int}{ item}}
Returns TRUE if the given item is checked, FALSE otherwise.
\wxheading{Parameters}
\docparam{item}{Index of item whose check status is to be returned.}

View File

@@ -17,18 +17,9 @@ There are no special styles for wxChoice.
See also \helpref{window styles overview}{windowstyles}.
\wxheading{Event handling}
\twocolwidtha{7cm}
\begin{twocollist}\itemsep=0pt
\twocolitem{{\bf EVT\_CHOICE(id, func)}}{Process a wxEVT\_COMMAND\_CHOICE\_SELECTED event,
when an item on the list is selected.}
\end{twocollist}
\wxheading{See also}
\helpref{wxListBox}{wxlistbox}, \helpref{wxComboBox}{wxcombobox},
\rtfsp\helpref{wxCommandEvent}{wxcommandevent}
\helpref{wxListBox}{wxlistbox}
\latexignore{\rtfignore{\wxheading{Members}}}

View File

@@ -10,7 +10,8 @@ No parent class.
\wxheading{See also}
\helpref{Overview}{wxclassinfooverview}, \helpref{wxObject}{wxobject}
\overview{Overview}{wxclassinfooverview}\\
\helpref{wxObject}{wxobject}
\latexignore{\rtfignore{\wxheading{Members}}}

View File

@@ -27,16 +27,13 @@ $$\image{14cm;0cm}{wxclass.ps}$$
}}
\end{comment}
\input accel.tex
\input activevt.tex
\input app.tex
\input button.tex
\input bitmap.tex
\input bbutton.tex
\input brush.tex
\input calclevt.tex
\input checkbox.tex
\input checklst.tex
\input choice.tex
\input clasinfo.tex
\input clientdc.tex
@@ -49,12 +46,11 @@ $$\image{14cm;0cm}{wxclass.ps}$$
\input cmdevent.tex
\input cmdproc.tex
\input conditn.tex
\input config.tex
\input control.tex
\input cursor.tex
\input database.tex
\input date.tex
\input datstrm.tex
\input datstream.tex
\input dc.tex
\input ddeclint.tex
\input ddeconn.tex
@@ -65,8 +61,6 @@ $$\image{14cm;0cm}{wxclass.ps}$$
\input document.tex
\input docchfrm.tex
\input docmanag.tex
\input docmdich.tex
\input docmdipr.tex
\input docprfrm.tex
\input doctempl.tex
\input dropevt.tex
@@ -95,13 +89,11 @@ $$\image{14cm;0cm}{wxclass.ps}$$
\input joystick.tex
\input joyevent.tex
\input keyevent.tex
\input layalgor.tex
\input layout.tex
\input list.tex
\input listbox.tex
\input listctrl.tex
\input listevt.tex
\input log.tex
\input mask.tex
\input mdi.tex
\input menu.tex
@@ -117,8 +109,6 @@ $$\image{14cm;0cm}{wxclass.ps}$$
\input mltchdlg.tex
\input mutex.tex
\input node.tex
\input notebook.tex
\input noteevt.tex
\input object.tex
\input pagedlg.tex
\input paintdc.tex
@@ -129,22 +119,17 @@ $$\image{14cm;0cm}{wxclass.ps}$$
\input pathlist.tex
\input pen.tex
\input point.tex
\input postscpt.tex
\input prevwin.tex
\input print.tex
\input process.tex
\input procevt.tex
\input postscpt.tex
\input query.tex
\input qylayevt.tex
\input radiobox.tex
\input radiobut.tex
\input realpoin.tex
\input rect.tex
\input recrdset.tex
\input region.tex
\input sashevt.tex
\input sashlayw.tex
\input sashwin.tex
\input screendc.tex
\input scrolbar.tex
\input scrolevt.tex
@@ -153,15 +138,13 @@ $$\image{14cm;0cm}{wxclass.ps}$$
\input size.tex
\input sizeevt.tex
\input slider.tex
\input sckaddr.tex
\input socket.tex
\input spinbutt.tex
\input splitter.tex
\input statbmp.tex
\input statbox.tex
\input stattext.tex
\input statusbr.tex
\input wxstring.tex
%\input wxstring.tex
\input strlist.tex
\input sysclevt.tex
\input settings.tex
@@ -178,19 +161,14 @@ $$\image{14cm;0cm}{wxclass.ps}$$
\input toolbar.tex
\input treectrl.tex
\input treeevt.tex
\input upditer.tex
\input upduievt.tex
\input url.tex
\input validatr.tex
\input view.tex
\input wave.tex
\input window.tex
\input windowdc.tex
\input winhelp.tex
\input function.tex
\input keycode.tex
%%% Local Variables:
%%% mode: latex
%%% TeX-master: "referenc"
%%% End:

View File

@@ -13,20 +13,13 @@ functions that take a wxCloseEvent argument.
\twocolwidtha{7cm}
\begin{twocollist}\itemsep=0pt
\twocolitem{{\bf EVT\_CLOSE(func)}}{Process a close event, supplying the member function. This
event applies to wxFrame and wxDialog classes.}
\twocolitem{{\bf EVT\_QUERY\_END\_SESSION(func)}}{Process a query end session event, supplying the member function.
This event applies to wxApp only.}
\twocolitem{{\bf EVT\__END\_SESSION(func)}}{Process an end session event, supplying the member function.
This event applies to wxApp only.}
\twocolitem{{\bf EVT\_CLOSE(func)}}{Process a close event, supplying the member function.}
\end{twocollist}%
\wxheading{See also}
\helpref{wxWindow::OnCloseWindow}{wxwindowonclosewindow},\rtfsp
\helpref{wxWindow::Close}{wxwindowclose},\rtfsp
\helpref{wxApp::OnQueryEndSession}{wxapponqueryendsession},\rtfsp
\helpref{wxApp::OnEndSession}{wxapponendsession},\rtfsp
\helpref{Window deletion overview}{windowdeletionoverview}
\latexignore{\rtfignore{\wxheading{Members}}}
@@ -37,14 +30,6 @@ This event applies to wxApp only.}
Constructor.
\membersection{wxCloseEvent::CanVeto}\label{wxcloseeventcanveto}
\func{bool}{CanVeto}{\void}
Returns TRUE if you can veto a system shutdown or a window close event.
Vetoing a window close event is not possible if the calling code wishes to
force the application to exit, and so this function must be called to check this.
\membersection{wxCloseEvent::GetLoggingOff}\label{wxcloseeventgetloggingoff}
\constfunc{bool}{GetLoggingOff}{\void}
@@ -59,37 +44,14 @@ Returns TRUE if the session is ending.
\membersection{wxCloseEvent::GetForce}\label{wxcloseeventgetforce}
\constfunc{bool}{GetForce}{\void}
\constfunc{void}{GetForce}{\void}
Returns TRUE if the application wishes to force the window to close.
This will shortly be obsolete, replaced by CanVeto.
\membersection{wxCloseEvent::SetCanVeto}\label{wxcloseeventsetcanveto}
\func{void}{SetCanVeto}{\param{bool}{ canVeto}}
Sets the 'can veto' flag.
\membersection{wxCloseEvent::SetForce}\label{wxcloseeventsetforce}
\constfunc{void}{SetForce}{\param{bool}{ force}}
Sets the 'force' flag.
\membersection{wxCloseEvent::SetLoggingOff}\label{wxcloseeventsetloggingoff}
\constfunc{void}{SetLoggingOff}{\param{bool}{ loggingOff}}
Sets the 'logging off' flag.
\membersection{wxCloseEvent::Veto}\label{wxcloseeventveto}
\func{void}{Veto}{\param{bool}{ veto = TRUE}}
\func{void}{Veto}{\void}
Call this from your event handler to veto a system shutdown or to signal
to the calling application that a window close did not happen.
You can only veto a shutdown if \helpref{wxCloseEvent::CanVeto}{wxcloseeventcanveto} returns
TRUE.
Call this from your event handler to veto a system shutdown.

View File

@@ -27,7 +27,7 @@ which is generated by a wxCheckBox control.}
which is generated by a wxChoice control.}
\twocolitem{{\bf EVT\_LISTBOX(id, func)}}{Process a wxEVT\_COMMAND\_LISTBOX\_SELECTED command,
which is generated by a wxListBox control.}
\twocolitem{{\bf EVT\_LISTBOX\_DCLICK(id, func)}}{Process a wxEVT\_COMMAND\_LISTBOX\_DOUBLECLICKED command,
\twocolitem{{\bf EVT\_LISTBOX_DCLICK(id, func)}}{Process a wxEVT\_COMMAND\_LISTBOX\_DOUBLECLICKED command,
which is generated by a wxListBox control.}
\twocolitem{{\bf EVT\_TEXT(id, func)}}{Process a wxEVT\_COMMAND\_TEXT\_UPDATED command,
which is generated by a wxTextCtrl control.}
@@ -48,16 +48,12 @@ which is generated by a wxScrollBar control. This is provided for compatibility
more specific scrollbar event macros should be used instead (see \helpref{wxScrollEvent}{wxscrollevent}).}
\twocolitem{{\bf EVT\_COMBOBOX(id, func)}}{Process a wxEVT\_COMMAND\_COMBOBOX\_SELECTED command,
which is generated by a wxComboBox control.}
\twocolitem{{\bf EVT\_TOOL(id, func)}}{Process a wxEVT\_COMMAND\_TOOL\_CLICKED event
(a synonym for wxEVT\_COMMAND\_MENU\_SELECTED). Pass the id of the tool.}
\twocolitem{{\bf EVT\_TOOL\_RANGE(id1, id2, func)}}{Process a wxEVT\_COMMAND\_TOOL\_CLICKED event
for a range id identifiers. Pass the ids of the tools.}
\twocolitem{{\bf EVT\_TOOL\_RCLICKED(id, func)}}{Process a wxEVT\_COMMAND\_TOOL\_RCLICKED event.
Pass the id of the tool.}
\twocolitem{{\bf EVT\_TOOL\_RCLICKED\_RANGE(id1, id2, func)}}{Process a wxEVT\_COMMAND\_TOOL\_RCLICKED event
for a range of ids. Pass the ids of the tools.}
\twocolitem{{\bf EVT\_TOOL\_ENTER(id, func)}}{Process a wxEVT\_COMMAND\_TOOL\_ENTER event.
Pass the id of the toolbar itself. The value of wxCommandEvent::GetSelection is the tool id, or -1 if the mouse cursor has moved off a tool.}
\twocolitem{{\bf EVT\_TOOL(id, func)}}{Process a wxEVT\_COMMAND\_TOOL\_CLICKED command,
which is generated by a toobar button.}
\twocolitem{{\bf EVT\_TOOL\_RCLICKED(id, func)}}{Process a wxEVT\_COMMAND\_TOOL\_RCLICKED command,
which is generated by a toobar button.}
\twocolitem{{\bf EVT\_TOOL\_ENTER(id, func)}}{Process a wxEVT\_COMMAND\_TOOL\_ENTER command,
which is generated by a toobar button.}
\twocolitem{{\bf EVT\_COMMAND\_LEFT\_CLICK(id, func)}}{Process a wxEVT\_COMMAND\_LEFT\_CLICK command,
which is generated by a control (Windows 95 and NT only).}
\twocolitem{{\bf EVT\_COMMAND\_LEFT\_DCLICK(id, func)}}{Process a wxEVT\_COMMAND\_LEFT\_DCLICK command,
@@ -181,8 +177,3 @@ Sets the {\bf m\_commandInt} member.
Sets the {\bf m\_commandString} member.
%%% Local Variables:
%%% mode: latex
%%% TeX-master: "referenc"
%%% End:

View File

@@ -26,20 +26,9 @@ displaying the current selection.}
See also \helpref{window styles overview}{windowstyles}.
\wxheading{Event handling}
\twocolwidtha{7cm}
\begin{twocollist}\itemsep=0pt
\twocolitem{{\bf EVT\_COMBOBOX(id, func)}}{Process a wxEVT\_COMMAND\_COMBOBOX\_SELECTED event,
when an item on the list is selected.}
\twocolitem{{\bf EVT\_TEXT(id, func)}}{Process a wxEVT\_COMMAND\_TEXT\_UPDATED event,
when the combobox text changes.}
\end{twocollist}
\wxheading{See also}
\helpref{wxListBox}{wxlistbox}, \helpref{wxTextCtrl}{wxtextctrl}, \helpref{wxChoice}{wxchoice},
\rtfsp\helpref{wxCommandEvent}{wxcommandevent}
\helpref{wxListBox}{wxlistbox}, \helpref{wxTextCtrl}{wxtextctrl}, \helpref{wxChoice}{wxchoice}
\latexignore{\rtfignore{\wxheading{Members}}}

View File

@@ -1,621 +0,0 @@
\section{\class{wxConfigBase}}\label{wxconfigbase}
wxConfigBase class defines the basic interface of all config classes. It can
not be used by itself (it's an abstract base class) and you'll always use one
of its derivations: wxIniConfig, wxFileConfig, wxRegConfig or any other.
However, usually you don't even need to know the precise nature of the class
you're working with but you would just use the wxConfigBase methods. This
allows you to write the same code regardless of whether you're working with
the registry under Win32 or text-based config files under Unix (or even
Windows 3.1 .INI files if you're really unlucky). To make writing the portable
code even easier, wxWindows provides a typedef wxConfig
which is mapped onto the native wxConfigBase implementation on the given
platform: i.e. wxRegConfig under Win32, wxIniConfig under Win16 and
wxFileConfig otherwise.
See \helpref{config overview}{wxconfigoverview} for the descriptions of all
features of this class.
\wxheading{Derived from}
No base class
\wxheading{Example}
Here is how you would typically use this class:
\begin{verbatim}
// using wxConfig instead of writing wxFileConfig or wxRegConfig enhances
// portability of the code
wxConfig *config = new wxConfig("MyAppName");
wxString str;
if ( config->Read("LastPrompt", &str) ) {
// last prompt was found in the config file/registry and its value is now
// in str
...
}
else {
// no last prompt...
}
// another example: using default values and the full path instead of just
// key name: if the key is not found , the value 17 is returned
long value = config->Read("/LastRun/CalculatedValues/MaxValue", -1);
...
...
...
// at the end of the program we would save everything back
config->Write("LastPrompt", str);
config->Write("/LastRun/CalculatedValues/MaxValue", value);
// the changes will be written back automatically
delete config;
\end{verbatim}
This basic example, of course, doesn't show all wxConfig features, such as
enumerating, testing for existence and deleting the entries and groups of
entries in the config file, its abilities to automatically store the default
values or expand the environment variables on the fly. However, the main idea
is that using this class is easy and that it should normally do what you
expect it to.
NB: in the documentation of this class, the words "config file" also mean
"registry hive" for wxRegConfig and, generally speaking, might mean any
physical storage where a wxConfigBase-derived class stores its data.
\latexignore{\rtfignore{\wxheading{Function groups}}}
\membersection{Static functions}
These functions deal with the "default" config object. Although its usage is
not at all mandatory it may be convenient to use a global config object
instead of creating and deleting the local config objects each time you need
one (especially because creating a wxFileConfig object might be a time
consuming operation). In this case, you may create this global config object
in the very start of the program and {\it Set()} it as the default. Then, from
anywhere in your program, you may access it using the {\it Get()} function. Of
course, you should delete it on the program termination (otherwise, not only a
memory leak will result, but even more importantly the changes won't be
written back!).
As it happens, you may even further simplify the procedure described above:
you may forget about calling {\it Set()}. When {\it Get()} is called and there
is no current object, it will create one using {\it Create()} function. To
disable this behaviour {\it DontCreateOnDemand()} is provided.
\helpref{Set}{wxconfigbaseset}\\
\helpref{Get}{wxconfigbaseget}\\
\helpref{Create}{wxconfigbasecreate}\\
\helpref{DontCreateOnDemand}{wxconfigbasedontcreateondemand}
\membersection{Constructor and destructor}
\helpref{wxConfigBase}{wxconfigbasector}\\
\helpref{\destruct{wxConfigBase}}{wxconfigbasedtor}
\membersection{Path management}
As explained in \helpref{config overview}{wxconfigoverview}, the config classes
support a file system-like hierarchy of keys (files) and groups (directories).
As in the file system case, to specify a key in the config class you must use
a path to it. Config classes also support the notion of the current group,
which makes it possible to use the relative paths. To clarify all this, here
is an example (it's only for the sake of demonstration, it doesn't do anything
sensible!):
\begin{verbatim}
wxConfig *config = new wxConfig("FooBarApp");
// right now the current path is '/'
conf->Write("RootEntry", 1);
// go to some other place: if the group(s) don't exist, they will be created
conf->SetPath("/Group/Subgroup");
// create an entry in subgroup
conf->Write("SubgroupEntry", 3);
// '..' is understood
conf->Write("../GroupEntry", 2);
conf->SetPath("..");
wxASSERT( conf->Read("Subgroup/SubgroupEntry", 0l) == 3 );
// use absolute path: it's allowed, too
wxASSERT( conf->Read("/RootEntry", 0l) == 1 );
\end{verbatim}
{\it Warning}: it's probably a good idea to always restore the path to its
old value on function exit:
\begin{verbatim}
void foo(wxConfigBase *config)
{
wxString strOldPath = config->GetPath();
config->SetPath("/Foo/Data");
...
config->SetPath(strOldPath);
}
\end{verbatim}
because otherwise the assert in the following example will surely fail
(we suppose here that {\it foo()} function is the same as above except that it
doesn't save and restore the path):
\begin{verbatim}
void bar(wxConfigBase *config)
{
config->Write("Test", 17);
foo(config);
// we're reading "/Foo/Data/Test" here! -1 will probably be returned...
wxASSERT( config->Read("Test", -1) == 17 );
}
\end{verbatim}
Finally, the path separator in wxConfigBase and derived classes is always '/',
regardless of the platform (i.e. it's {\bf not} '$\backslash\backslash$' under Windows).
\helpref{SetPath}{wxconfigbasesetpath}\\
\helpref{GetPath}{wxconfigbasegetpath}
\membersection{Enumeration}
The functions in this section allow to enumerate all entries and groups in the
config file. All functions here return FALSE when there are no more items.
You must pass the same index to GetNext and GetFirst (don't modify it).
Please note that it's {\bf not} the index of the current item (you will have
some great surprizes with wxRegConfig if you assume this) and you shouldn't
even look at it: it's just a "cookie" which stores the state of the
enumeration. It can't be stored inside the class because it would prevent you
from running several enumerations simultaneously, that's why you must pass it
explicitly.
Having said all this, enumerating the config entries/groups is very simple:
\begin{verbatim}
wxArrayString aNames;
// enumeration variables
wxString str;
long dummy;
// first enum all entries
bool bCont = config->GetFirstEntry(str, dummy);
while ( bCont ) {
aNames.Add(str);
bCont = GetConfig()->GetNextEntry(str, dummy);
}
... we have all entry names in aNames...
// now all groups...
bCont = GetConfig()->GetFirstGroup(str, dummy);
while ( bCont ) {
aNames.Add(str);
bCont = GetConfig()->GetNextGroup(str, dummy);
}
... we have all group (and entry) names in aNames...
\end{verbatim}
There are also functions to get the number of entries/subgroups without
actually enumerating them, but you will probably never need them.
\helpref{GetFirstGroup}{wxconfigbasegetfirstgroup}\\
\helpref{GetNextGroup}{wxconfigbasegetnextgroup}\\
\helpref{GetFirstEntry}{wxconfigbasegetfirstentry}\\
\helpref{GetNextEntry}{wxconfigbasegetnextentry}\\
\helpref{GetNumberOfEntries}{wxconfigbasegetnumberofentries}\\
\helpref{GetNumberOfGroups}{wxconfigbasegetnumberofgroups}
\membersection{Tests of existence}
\helpref{HasGroup}{wxconfigbasehasgroup}\\
\helpref{HasEntry}{wxconfigbasehasentry}\\
\helpref{Exists}{wxconfigbaseexists}
\membersection{Miscellaneous accessors}
\helpref{SetAppName}{wxconfigbasesetappname}\\
\helpref{GetAppName}{wxconfigbasegetappname}\\
\helpref{SetVendorName}{wxconfigbasesetvendorname}\\
\helpref{GetVendorName}{wxconfigbasegetvendorname}
\membersection{Key access}
These function are the core of wxConfigBase class: they allow you to read and
write config file data. All {\it Read} function take a default value which
will be returned if the specified key is not found in the config file.
Currently, only two types of data are supported: string and long (but it might
change in the near future). To work with other types: for {\it int} or {\it
bool} you can work with function taking/returning {\it long} and just use the
casts. Better yet, just use {\it long} for all variables which you're going to
save in the config file: chances are that \verb$sizeof(bool) == sizeof(int) == sizeof(long)$ anyhow on your system. For {\it float}, {\it double} and, in
general, any other type you'd have to translate them to/from string
representation and use string functions.
Try not to read long values into string variables and vice versa: although it
just might work with wxFileConfig, you will get a system error with
wxRegConfig because in the Windows registry the different types of entries are
indeed used.
Final remark: the {\it szKey} parameter for all these functions can contain an
arbitrary path (either relative or absolute), not just the key name.
\helpref{Read}{wxconfigbaseread}\\
\helpref{Write}{wxconfigbasewrite}\\
\helpref{Flush}{wxconfigbaseflush}
\membersection{Delete entries/groups}
The functions in this section delete entries and/or groups of entries from the
config file. {\it DeleteAll()} is especially useful if you want to erase all
traces of your program presence: for example, when you uninstall it.
\helpref{DeleteEntry}{wxconfigbasedeleteentry}\\
\helpref{DeleteGroup}{wxconfigbasedeletegroup}\\
\helpref{DeleteAll}{wxconfigbasedeleteall}
\membersection{Options}
Some aspects of wxConfigBase behaviour can be changed during run-time. The
first of them is the expansion of environment variables in the string values
read from the config file: for example, if you have the following in your
config file:
\begin{verbatim}
# config file for my program
UserData = $HOME/data
# the following syntax is valud only under Windows
UserData = %windir%\\data.dat
\end{verbatim}
the call to \verb$config->Read("UserData")$ will return something like
\verb$"/home/zeitlin/data"$ if you're lucky enough to run a Linux system ;-)
Although this feature is very useful, it may be annoying if you read a value
which containts '\$' or '\%' symbols (\% is used for environment variables
expansion under Windows) which are not used for environment variable
expansion. In this situation you may call SetExpandEnvVars(FALSE) just before
reading this value and SetExpandEnvVars(TRUE) just after. Another solution
would be to prefix the offending symbols with a backslash.
The following functions control this option:
\helpref{IsExpandingEnvVars}{wxconfigbaseisexpandingenvvars}\\
\helpref{SetExpandingEnvVars}{wxconfigbasesetexpandingenvvars}\\
\helpref{SetRecordDefaults}{wxconfigbasesetrecorddefaults}\\
\helpref{IsRecordingDefaults}{wxconfigbaseisrecordingdefaults}
%%%%% MEMBERS HERE %%%%%
\helponly{\insertatlevel{2}{
\wxheading{Members}
}}
\membersection{wxConfigBase::wxConfigBase}\label{wxconfigbasector}
\func{}{wxConfigBase}{\param{const wxString\& }{appName = wxEmptyString},
\param{const wxString\& }{vendorName = wxEmptyString},
\param{const wxString\& }{localFilename = wxEmptyString},
\param{const wxString\& }{globalFilename = wxEmptyString},
\param{long}{ style = 0}}
This is the default and only constructor of the wxConfigBase class, and
derived classes.
\wxheading{Parameters}
\docparam{appName}{The application name. If this is empty, the class will
normally use \helpref{wxApp::GetAppName}{wxappgetappname} to set it. The
application name is used in the registry key on Windows, and can be used to
deduce the local filename parameter if that is missing.}
\docparam{vendorName}{The vendor name. If this is empty, it is assumed that
no vendor name is wanted, if this is optional for the current config class.
The vendor name is appended to the application name for wxRegConfig.}
\docparam{localFilename}{Some config classes require a local filename. If this
is not present, but required, the application name will be used instead.}
\docparam{globalFilename}{Some config classes require a global filename. If
this is not present, but required, the application name will be used instead.}
\docparam{style}{Can be one of wxCONFIG\_USE\_LOCAL\_FILE and
wxCONFIG\_USE\_GLOBAL\_FILE. The style interpretation depends on the config
class and is ignored by some. For wxFileConfig, these styles determine whether
a local or global config file is created or used. If the flag is present but
the parameter is empty, the parameter will be set to a default. If the
parameter is present but the style flag not, the relevant flag will be added
to the style.}
\wxheading{Remarks}
By default, environment variable expansion is on and recording defaults is
off.
\membersection{wxConfigBase::\destruct{wxConfigBase}}\label{wxconfigbasedtor}
\func{}{\destruct{wxConfigBase}}{\void}
Empty but ensures that dtor of all derived classes is virtual.
\membersection{wxConfigBase::Create}\label{wxconfigbasecreate}
\func{static wxConfigBase *}{Create}{\void}
Create a new config object: this function will create the "best"
implementation of wxConfig available for the current platform, see comments
near the definition of wxCONFIG\_WIN32\_NATIVE for details. It returns the
created object and also sets it as the current one.
\membersection{wxConfigBase::DontCreateOnDemand}\label{wxconfigbasedontcreateondemand}
\func{void}{DontCreateOnDemand}{\void}
Calling this function will prevent {\it Get()} from automatically creating a
new config object if the current one is NULL. It might be useful to call it
near the program end to prevent new config object "accidental" creation.
\membersection{wxConfigBase::DeleteAll}\label{wxconfigbasedeleteall}
\func{bool}{DeleteAll}{\void}
Delete the whole underlying object (disk file, registry key, ...). Primarly
for use by desinstallation routine.
\membersection{wxConfigBase::DeleteEntry}\label{wxconfigbasedeleteentry}
\func{bool}{DeleteEntry}{\param{const wxString\& }{ key}, \param{bool}{
bDeleteGroupIfEmpty = TRUE}}
Deletes the specified entry and the group it belongs to if it was the last key
in it and the second parameter is true.
\membersection{wxConfigBase::DeleteGroup}\label{wxconfigbasedeletegroup}
\func{bool}{DeleteGroup}{\param{const wxString\& }{ key}}
Delete the group (with all subgroups)
\membersection{wxConfigBase::Exists}\label{wxconfigbaseexists}
\constfunc{bool}{Exists}{\param{wxString\& }{strName}}
returns TRUE if either a group or an entry with a given name exists
\membersection{wxConfigBase::Flush}\label{wxconfigbaseflush}
\func{bool}{Flush}{\param{bool }{bCurrentOnly = FALSE}}
permanently writes all changes (otherwise, they're only written from object's
destructor)
\membersection{wxConfigBase::Get}\label{wxconfigbaseget}
\func{wxConfigBase *}{Get}{\void}
Get the current config object. If there is no current object, creates one
(using {\it Create}) unless DontCreateOnDemand was called previously.
\membersection{wxConfigBase::GetAppName}\label{wxconfigbasegetappname}
\constfunc{wxString}{GetAppName}{\void}
Returns the application name.
\membersection{wxConfigBase::GetFirstGroup}\label{wxconfigbasegetfirstgroup}
\constfunc{bool}{GetFirstGroup}{\param{wxString\& }{str}, \param{long\&}{
index}}
Gets the first group.
\membersection{wxConfigBase::GetFirstEntry}\label{wxconfigbasegetfirstentry}
\constfunc{bool}{GetFirstEntry}{\param{wxString\& }{str}, \param{long\&}{
index}}
Gets the first entry.
\membersection{wxConfigBase::GetNextGroup}\label{wxconfigbasegetnextgroup}
\constfunc{bool}{GetNextGroup}{\param{wxString\& }{str}, \param{long\&}{
index}}
Gets the next group.
\membersection{wxConfigBase::GetNextEntry}\label{wxconfigbasegetnextentry}
\constfunc{bool}{GetNextEntry}{\param{wxString\& }{str}, \param{long\&}{
index}}
Gets the next entry.
\membersection{wxConfigBase::GetNumberOfEntries}\label{wxconfigbasegetnumberofentries}
\constfunc{uint }{GetNumberOfEntries}{\param{bool }{bRecursive = FALSE}}
\membersection{wxConfigBase::GetNumberOfGroups}\label{wxconfigbasegetnumberofgroups}
\constfunc{uint}{GetNumberOfGroups}{\param{bool }{bRecursive = FALSE}}
Get number of entries/subgroups in the current group, with or without its
subgroups.
\membersection{wxConfigBase::GetPath}\label{wxconfigbasegetpath}
\constfunc{const wxString\&}{GetPath}{\void}
Retrieve the current path (always as absolute path).
\membersection{wxConfigBase::GetVendorName}\label{wxconfigbasegetvendorname}
\constfunc{wxString}{GetVendorName}{\void}
Returns the vendor name.
\membersection{wxConfigBase::HasEntry}\label{wxconfigbasehasentry}
\constfunc{bool}{HasEntry}{\param{wxString\& }{strName}}
returns TRUE if the entry by this name exists
\membersection{wxConfigBase::HasGroup}\label{wxconfigbasehasgroup}
\constfunc{bool}{HasGroup}{\param{const wxString\& }{strName}}
returns TRUE if the group by this name exists
\membersection{wxConfigBase::IsExpandingEnvVars}\label{wxconfigbaseisexpandingenvvars}
\constfunc{bool}{IsExpandingEnvVars}{\void}
Returns TRUE if we are expanding environment variables in key values.
\membersection{wxConfigBase::IsRecordingDefaults}\label{wxconfigbaseisrecordingdefaults}
\func{bool}{IsRecordingDefaults}{\void} const
Returns TRUE if we are writing defaults back to the config file.
\membersection{wxConfigBase::Read}\label{wxconfigbaseread}
\constfunc{bool}{Read}{\param{const wxString\& }{key}, \param{wxString*}{
str}}
Read a string from the key, returning TRUE if the value was read. If the key
was not found, {\it str} is not changed.
\constfunc{bool}{Read}{\param{const wxString\& }{key}, \param{wxString*}{
str}, \param{const wxString\& }{defaultVal}}
Read a string from the key. The default value is returned if the key was not
found.
Returns TRUE if value was really read, FALSE if the default was used.
\constfunc{wxString}{Read}{\param{const wxString\& }{key}, \param{const
wxString\& }{defaultVal}}
Another version of {\it Read()}, returning the string value directly.
\constfunc{bool}{Read}{\param{const wxString\& }{ key}, \param{long*}{ l}}
Reads a long value, returning TRUE if the value was found. If the value was
not found, {\it l} is not changed.
\constfunc{bool}{Read}{\param{const wxString\& }{ key}, \param{long*}{ l},
\param{long}{ defaultVal}}
Reads a long value, returning TRUE if the value was found. If the value was
not found, {\it defaultVal} is used instead.
\constfunc{long }{Read}{\param{const wxString\& }{key}, \param{long}{
defaultVal}}
Reads a long value from the key and returns it. {\it defaultVal} is returned
if the key is not found.
NB: writing
{\small \begin{verbatim} conf->Read("key", 0); \end{verbatim} }
won't work because the call is ambiguous: compiler can not choose between two
{\it Read} functions. Instead, write:
{\small \begin{verbatim} conf->Read("key", 0l); \end{verbatim} }
\constfunc{bool}{Read}{\param{const wxString\& }{ key}, \param{double*}{ d}}
Reads a double value, returning TRUE if the value was found. If the value was
not found, {\it d} is not changed.
\constfunc{bool}{Read}{\param{const wxString\& }{ key}, \param{double*}{ d},
\param{double}{ defaultVal}}
Reads a double value, returning TRUE if the value was found. If the value was
not found, {\it defaultVal} is used instead.
\constfunc{bool}{Read}{\param{const wxString\& }{ key}, \param{bool*}{ b}}
Reads a bool value, returning TRUE if the value was found. If the value was
not found, {\it b} is not changed.
\constfunc{bool}{Read}{\param{const wxString\& }{ key}, \param{bool*}{ d},
\param{bool}{ defaultVal}}
Reads a bool value, returning TRUE if the value was found. If the value was
not found, {\it defaultVal} is used instead.
\membersection{wxConfigBase::Set}\label{wxconfigbaseset}
\func{wxConfigBase *}{Set}{\param{wxConfigBase *}{pConfig}}
Sets the config object as the current one, returns the pointer to the previous
current object (both the parameter and returned value may be NULL)
\membersection{wxConfigBase::SetAppName}\label{wxconfigbasesetappname}
\func{void }{SetAppName}{\param{const wxString\&}{ appName}}
Sets the application name.
\membersection{wxConfigBase::SetExpandingEnvVars}\label{wxconfigbasesetexpandingenvvars}
\func{void}{SetExpandEnvVars }{\param{bool }{bDoIt = TRUE}}
Determine whether we wish to expand environment variables in key values.
\membersection{wxConfigBase::SetPath}\label{wxconfigbasesetpath}
\func{void}{SetPath}{\param{const wxString\& }{strPath}}
Set current path: if the first character is '/', it's the absolute path,
otherwise it's a relative path. '..' is supported. If the strPath doesn't
exist it is created.
\membersection{wxConfigBase::SetRecordDefaults}\label{wxconfigbasesetrecorddefaults}
\func{void}{SetRecordDefaults}{\param{bool }{bDoIt = TRUE}}
Sets whether defaults are written back to the config file.
If on (default is off) all default values are written back to the config file.
This allows the user to see what config options may be changed and is probably
useful only for wxFileConfig.
\membersection{wxConfigBase::SetVendorName}\label{wxconfigbasesetvendorname}
\func{void}{SetVendorName}{\param{const wxString\&}{ vendorName}}
Sets the vendor name.
\membersection{wxConfigBase::Write}\label{wxconfigbasewrite}
\func{bool}{Write}{\param{const wxString\& }{ key}, \param{const wxString\& }{
value}}
\func{bool}{Write}{\param{const wxString\& }{ key}, \param{long}{ value}}
\func{bool}{Write}{\param{const wxString\& }{ key}, \param{double}{ value}}
\func{bool}{Write}{\param{const wxString\& }{ key}, \param{bool}{ value}}
These functions write the specified value to the config file and return TRUE
on success.

View File

@@ -6,7 +6,7 @@ Sparc or anything else.
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxDataStream::wxDataStream}\label{wxdatastreamconstr}
\membersection{wxDataStream::wxDataStream}\label{wxwaveconstr}
\func{}{wxDataStream}{\param{istream\&}{ stream}}
@@ -96,19 +96,14 @@ Writes the double {\it f} to the stream using the IEEE format.
\membersection{wxDataStream::WriteString}
\func{void}{wxDataStream::WriteString}{{\param const wxString\& }{string}}
\func{void}{wxDataStream::WriteString}{{\param const wxString& }{string}}
Writes {\it string} to the stream. Actually, this method writes the size of
the string before writing {\it string} itself.
\membersection{wxDataStream::WriteLine}
\func{void}{wxDataStream::WriteLine}{{\param const wxString\& }{string}}
\func{void}{wxDataStream::WriteLine}{{\param const wxString& }{string}}
Writes {\it string} as a line. Depending on the operating system, it adds
\\n or \\r\\n.
%%% Local Variables:
%%% mode: latex
%%% TeX-master: "referenc"
%%% End:

View File

@@ -157,12 +157,10 @@ mapping mode. Use this function for converting a height, for example.
\func{void}{DrawArc}{\param{long}{ x1}, \param{long}{ y1}, \param{long}{ x2}, \param{long}{ y2}, \param{double}{ xc}, \param{double}{ yc}}
Draws an arc of a circle, centred on ({\it xc, yc}), with starting point ({\it x1, y1})
Draws an arc, centred on ({\it xc, yc}), with starting point ({\it x1, y1})
and ending at ({\it x2, y2}). The current pen is used for the outline
and the current brush for filling the shape.
The arc is drawn in an anticlockwise direction from the start point to the end point.
\membersection{wxDC::DrawEllipse}\label{wxdcdrawellipse}
\func{void}{DrawEllipse}{\param{long}{ x}, \param{long}{ y}, \param{long}{ width}, \param{long}{ height}}

View File

@@ -74,8 +74,6 @@ the WXTRACELEVEL macro to specify how detailed the trace information is; setting
a different level will only have an effect if trace statements in the application
specify a value other than one.
This is obsolete, replaced by \helpref{wxLog}{wxlog} functionality.
\wxheading{See also}
\helpref{wxDebugContext::SetLevel}{wxdebugcontextsetlevel}
@@ -86,8 +84,6 @@ This is obsolete, replaced by \helpref{wxLog}{wxlog} functionality.
Returns the output stream associated with the debug context.
This is obsolete, replaced by \helpref{wxLog}{wxlog} functionality.
\wxheading{See also}
\helpref{wxDebugContext::SetStream}{wxdebugcontextsetstream}
@@ -100,8 +96,6 @@ Returns a pointer to the output stream buffer associated with the debug context.
There may not necessarily be a stream buffer if the stream has been set
by the user.
This is obsolete, replaced by \helpref{wxLog}{wxlog} functionality.
\membersection{wxDebugContext::HasStream}\label{wxdebugcontexthasstream}
\func{bool}{HasStream}{\void}
@@ -109,8 +103,6 @@ This is obsolete, replaced by \helpref{wxLog}{wxlog} functionality.
Returns TRUE if there is a stream currently associated
with the debug context.
This is obsolete, replaced by \helpref{wxLog}{wxlog} functionality.
\wxheading{See also}
\helpref{wxDebugContext::SetStream}{wxdebugcontextsetstream}, \helpref{wxDebugContext::GetStream}{wxdebugcontextgetstream}
@@ -203,8 +195,6 @@ the WXTRACELEVEL macro to specify how detailed the trace information is; setting
a different level will only have an effect if trace statements in the application
specify a value other than one.
This is obsolete, replaced by \helpref{wxLog}{wxlog} functionality.
\wxheading{See also}
\helpref{wxDebugContext::GetLevel}{wxdebugcontextgetlevel}
@@ -216,8 +206,6 @@ This is obsolete, replaced by \helpref{wxLog}{wxlog} functionality.
Sets the debugging stream to be the debugger (Windows) or standard error (other platforms).
This is the default setting. The existing stream will be flushed and deleted.
This is obsolete, replaced by \helpref{wxLog}{wxlog} functionality.
\membersection{wxDebugContext::SetStream}\label{wxdebugcontextsetstream}
\func{void}{SetStream}{\param{ostream* }{stream}, \param{streambuf* }{streamBuf = NULL}}
@@ -225,8 +213,6 @@ This is obsolete, replaced by \helpref{wxLog}{wxlog} functionality.
Sets the stream and optionally, stream buffer associated with the debug context.
This operation flushes and deletes the existing stream (and stream buffer if any).
This is obsolete, replaced by \helpref{wxLog}{wxlog} functionality.
\wxheading{Parameters}
\docparam{stream}{Stream to associate with the debug context. Do not set this to NULL.}
@@ -245,8 +231,6 @@ Windows, an ostream constructed with this buffer outputs
to the debugger, or other program that intercepts debugging
output. On other platforms, the output goes to standard error (cerr).
This is soon to be obsolete, replaced by \helpref{wxLog}{wxlog} functionality.
\wxheading{Derived from}
streambuf

View File

@@ -30,9 +30,8 @@ dialog to respond to system close events.
\twocolitem{\windowstyle{wxCAPTION}}{Puts a caption on the dialog box (Motif only).}
\twocolitem{\windowstyle{wxDEFAULT\_DIALOG\_STYLE}}{Equivalent to a combination of wxCAPTION, wxSYSTEM\_MENU and wxTHICK\_FRAME}
\twocolitem{\windowstyle{wxRESIZE\_BORDER}}{Display a resizeable frame around the window (Motif only).}
\twocolitem{\windowstyle{wxSYSTEM\_MENU}}{Display a system menu.}
\twocolitem{\windowstyle{wxTHICK\_FRAME}}{Display a thick frame around the window.}
\twocolitem{\windowstyle{wxSTAY\_ON\_TOP}}{The dialog stays on top of all other windows (Windows only).}
\twocolitem{\windowstyle{wxSYSTEM\_MENU}}{Display a system menu (Motif only).}
\twocolitem{\windowstyle{wxTHICK\_FRAME}}{Display a thick frame around the window (Motif only).}
\twocolitem{\windowstyle{wxNO\_3D}}{Under Windows, specifies that the child controls
should not have 3D borders unless specified in the control.}
\end{twocollist}

View File

@@ -35,7 +35,7 @@ The view associated with the frame.
\membersection{wxDocChildFrame::wxDocChildFrame}
\func{}{wxDocChildFrame}{\param{wxDocument* }{doc}, \param{wxView* }{view}, \param{wxFrame* }{parent},
\param{wxWindowID}{ id}, \param{const wxString\& }{title}, \param{const wxPoint\&}{ pos = wxDefaultPosition},
\param{const wxString\& }{title}, \param{const wxPoint\&}{ pos = wxDefaultPosition},
\param{const wxSize\&}{ size = wxDefaultSize},
\param{long}{ style = wxDEFAULT\_FRAME\_STYLE}, \param{const wxString\& }{name = ``frame"}}

View File

@@ -12,7 +12,7 @@ and \helpref{wxDocTemplate}{wxdoctemplate} classes.
\wxheading{See also}
\helpref{wxDocManager overview}{wxdocmanageroverview}, \helpref{wxDocument}{wxdocument},\rtfsp
\helpref{wxView}{wxview}, \helpref{wxDocTemplate}{wxdoctemplate}, \helpref{wxFileHistory}{wxfilehistory}
\helpref{wxView}{wxview}, \helpref{wxDocTemplate}{wxdoctemplate}
\latexignore{\rtfignore{\wxheading{Members}}}
@@ -139,54 +139,28 @@ of view is presented to the user.
Removes the template from the list of templates.
\membersection{wxDocManager::FileHistoryAddFilesToMenu}\label{wxdocmanagerfilehistoryaddfilestomenu}
\membersection{wxDocManager::FileHistoryLoad}
\func{void}{FileHistoryAddFilesToMenu}{\void}
\func{void}{FileHistoryLoad}{\param{const wxString\& }{resourceFile}, \param{const wxString\& }{sectionName}}
Appends the files in the history list, to all menus managed by the file history object.
\func{void}{FileHistoryAddFilesToMenu}{\param{wxMenu*}{ menu}}
Appends the files in the history list, to the given menu only.
\membersection{wxDocManager::FileHistoryLoad}\label{wxdocmanagerfilehistoryload}
\func{void}{FileHistoryLoad}{\param{wxConfigBase\& }{config}}
Loads the file history from a config object.
\wxheading{See also}
\helpref{wxConfig}{wxconfigbase}
\membersection{wxDocManager::FileHistoryRemoveMenu}\label{wxdocmanagerfilehistoryremovemenu}
\func{void}{FileHistoryRemoveMenu}{\param{wxMenu*}{ menu}}
Removes the given menu from the list of menus managed by the file history object.
\membersection{wxDocManager::FileHistorySave}\label{wxdocmanagerfilehistorysave}
\func{void}{FileHistorySave}{\param{wxConfigBase\& }{resourceFile}}
Saves the file history into a config object. This must be called
Loads the file history from a resource file, using the given section. This must be called
explicitly by the application.
\wxheading{See also}
\membersection{wxDocManager::FileHistorySave}
\helpref{wxConfig}{wxconfigbase}
\func{void}{FileHistorySave}{\param{const wxString\& }{resourceFile}, \param{const wxString\& }{sectionName}}
\membersection{wxDocManager::FileHistoryUseMenu}\label{wxdocmanagerfilehistoryusemenu}
Saves the file history into a resource file, using the given section. This must be called
explicitly by the application.
\func{void}{FileHistoryUseMenu}{\param{wxMenu*}{ menu}}
\membersection{wxDocManager::FileHistoryUseMenu}
\func{void}{FileHistoryUseMenu}{\param{wxMenu *}{menu}}
Use this menu for appending recently-visited document filenames, for convenient
access. Calling this function with a valid menu pointer enables the history
list functionality.
Note that you can add multiple menus using this function, to be managed by the
file history object.
\membersection{wxDocManager::FindTemplateForPath}
\func{wxDocTemplate *}{FindTemplateForPath}{\param{const wxString\& }{path}}

View File

@@ -1,89 +0,0 @@
\section{\class{wxDocMDIChildFrame}}\label{wxdocmdichildframe}
The wxDocMDIChildFrame class provides a default frame for displaying documents
on separate windows. This class can only be used for MDI child frames.
The class is part of the document/view framework supported by wxWindows,
and cooperates with the \helpref{wxView}{wxview}, \helpref{wxDocument}{wxdocument},
\rtfsp\helpref{wxDocManager}{wxdocmanager} and \helpref{wxDocTemplate}{wxdoctemplate} classes.
See the example application in {\tt samples/docview}.
\wxheading{Derived from}
\helpref{wxMDIChildFrame}{wxmdichildframe}\\
\helpref{wxFrame}{wxframe}\\
\helpref{wxWindow}{wxwindow}\\
\helpref{wxEvtHandler}{wxevthandler}\\
\helpref{wxObject}{wxobject}
\wxheading{See also}
\helpref{Document/view overview}{docviewoverview}, \helpref{wxMDIChildFrame}{wxmdichildframe}
\membersection{wxDocMDIChildFrame::m\_childDocument}
\member{wxDocument*}{m\_childDocument}
The document associated with the frame.
\membersection{wxDocMDIChildFrame::m\_childView}
\member{wxView*}{m\_childView}
The view associated with the frame.
\membersection{wxDocMDIChildFrame::wxDocMDIChildFrame}
\func{}{wxDocMDIChildFrame}{\param{wxDocument* }{doc}, \param{wxView* }{view}, \param{wxFrame* }{parent},
\param{wxWindowID}{ id}, \param{const wxString\& }{title}, \param{const wxPoint\&}{ pos = wxDefaultPosition},
\param{const wxSize\&}{ size = wxDefaultSize},
\param{long}{ style = wxDEFAULT\_FRAME\_STYLE}, \param{const wxString\& }{name = ``frame"}}
Constructor.
\membersection{wxDocMDIChildFrame::\destruct{wxDocMDIChildFrame}}
\func{}{\destruct{wxDocMDIChildFrame}}{\void}
Destructor.
\membersection{wxDocMDIChildFrame::GetDocument}
\constfunc{wxDocument*}{GetDocument}{\void}
Returns the document associated with this frame.
\membersection{wxDocMDIChildFrame::GetView}
\constfunc{wxView*}{GetView}{\void}
Returns the view associated with this frame.
\membersection{wxDocMDIChildFrame::OnActivate}
\func{void}{OnActivate}{\param{bool}{ active}}
Sets the currently active view to be the frame's view. You may need
to override (but still call) this function in order to set the keyboard
focus for your subwindow.
\membersection{wxDocMDIChildFrame::OnClose}
\func{virtual bool}{OnClose}{\void}
Closes and deletes the current view and document.
\membersection{wxDocMDIChildFrame::SetDocument}
\func{void}{SetDocument}{\param{wxDocument *}{doc}}
Sets the document for this frame.
\membersection{wxDocMDIChildFrame::SetView}
\func{void}{SetView}{\param{wxView *}{view}}
Sets the view for this frame.

View File

@@ -1,79 +0,0 @@
\section{\class{wxDocMDIParentFrame}}\label{wxdocmdiparentframe}
The wxDocMDIParentFrame class provides a default top-level frame for
applications using the document/view framework. This class can only be used for MDI parent frames.
It cooperates with the \helpref{wxView}{wxview}, \helpref{wxDocument}{wxdocument},
\rtfsp\helpref{wxDocManager}{wxdocmanager} and \helpref{wxDocTemplates}{wxdoctemplate} classes.
See the example application in {\tt samples/docview}.
\wxheading{Derived from}
\helpref{wxMDIParentFrame}{wxmdiparentframe}\\
\helpref{wxFrame}{wxframe}\\
\helpref{wxWindow}{wxwindow}\\
\helpref{wxEvtHandler}{wxevthandler}\\
\helpref{wxObject}{wxobject}
\wxheading{See also}
\helpref{Document/view overview}{docviewoverview}, \helpref{wxMDIParentFrame}{wxmdiparentframe}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxDocMDIParentFrame::wxDocMDIParentFrame}
\func{}{wxDocMDIParentFrame}{\param{wxFrame *}{parent}, \param{wxWindowID}{ id},
\param{const wxString\& }{title}, \param{int}{ x}, \param{int}{ y}, \param{int}{ width}, \param{int}{ height},
\param{long}{ style}, \param{const wxString\& }{name}}
Constructor.
\membersection{wxDocMDIParentFrame::\destruct{wxDocMDIParentFrame}}
\func{}{\destruct{wxDocMDIParentFrame}}{\void}
Destructor.
\membersection{wxDocMDIParentFrame::OnClose}
\func{bool}{OnClose}{\void}
Deletes all views and documents. If no user input cancelled the
operation, the function returns TRUE and the application will exit.
Since understanding how document/view clean-up takes place can be difficult,
the implementation of this function is shown below.
\begin{verbatim}
bool wxDocMDIParentFrame::OnClose(void)
{
// Delete all views and documents
wxNode *node = docManager->GetDocuments().First();
while (node)
{
wxDocument *doc = (wxDocument *)node->Data();
wxNode *next = node->Next();
if (!doc->Close())
return FALSE;
// Implicitly deletes the document when the last
// view is removed (deleted)
doc->DeleteAllViews();
// Check document is deleted
if (docManager->GetDocuments().Member(doc))
delete doc;
// This assumes that documents are not connected in
// any way, i.e. deleting one document does NOT
// delete another.
node = next;
}
return TRUE;
}
\end{verbatim}

View File

@@ -23,7 +23,7 @@ See the example application in {\tt samples/docview}.
\membersection{wxDocParentFrame::wxDocParentFrame}
\func{}{wxDocParentFrame}{\param{wxFrame *}{parent}, \param{wxWindowID}{ id},
\func{}{wxDocParentFrame}{\param{wxFrame *}{parent},
\param{const wxString\& }{title}, \param{int}{ x}, \param{int}{ y}, \param{int}{ width}, \param{int}{ height},
\param{long}{ style}, \param{const wxString\& }{name}}

View File

@@ -324,8 +324,4 @@ Sets the title for this document. The document title is used for an associated
frame (if any), and is usually constructed by the framework from
the filename.
\membersection{wxDocument::UpdateAllViews}\label{wxdocumentupdateallviews}
\func{void}{UpdateAllViews}{\param{wxView* }{sender = NULL}}
Updates all views. If {\it sender} is non-NULL, does not update this view.

View File

@@ -3,17 +3,13 @@
The wxFileHistory encapsulates a user interface convenience, the
list of most recently visited files as shown on a menu (usually the File menu).
wxFileHistory can manage one or more file menus. More than one menu may be required
in an MDI application, where the file history should appear on each MDI child menu
as well as the MDI parent frame.
\wxheading{Derived from}
\helpref{wxObject}{wxobject}
\wxheading{See also}
\helpref{wxFileHistory overview}{wxfilehistoryoverview}, \helpref{wxDocManager}{wxdocmanager}
\overview{wxFileHistory overview}{wxfilehistoryoverview}
\latexignore{\rtfignore{\wxheading{Members}}}
@@ -60,65 +56,38 @@ Destructor.
Adds a file to the file history list, if the object has a pointer to an appropriate file menu.
\membersection{wxFileHistory::AddFilesToMenu}\label{wxfilehistoryaddfilestomenu}
\membersection{wxFileHistory::FileHistoryLoad}
\func{void}{AddFilesToMenu}{\void}
\func{void}{FileHistoryLoad}{\param{const wxString\& }{resourceFile}, \param{const wxString\& }{sectionName}}
Appends the files in the history list, to all menus managed by the file history object.
Loads the file history from a resource file, using the given section. This must be called
explicitly by the application.
\func{void}{AddFilesToMenu}{\param{wxMenu*}{ menu}}
\membersection{wxFileHistory::FileHistorySave}
Appends the files in the history list, to the given menu only.
\func{void}{FileHistorySave}{\param{const wxString\& }{resourceFile}, \param{const wxString\& }{sectionName}}
\membersection{wxFileHistory::GetHistoryFile}\label{wxfilehistorygethistoryfile}
Saves the file history into a resource file, using the given section. This must be called
explicitly by the application.
\constfunc{wxString}{GetHistoryFile}{\param{int}{ index}}
\membersection{wxFileHistory::FileHistoryUseMenu}
Returns the file at this index (zero-based).
\func{void}{FileHistoryUseMenu}{\param{wxMenu* }{menu}}
Use this menu for appending recently-visited document filenames, for convenient
access. Calling this function with a valid menu pointer enables the history
list functionality.
\membersection{wxFileHistory::GetMaxFiles}
\constfunc{int}{GetMaxFiles}{\void}
\func{int}{GetMaxFiles}{\void}
Returns the maximum number of files that can be stored.
\membersection{wxFileHistory::GetNoHistoryFiles}
\constfunc{int}{GetNoHistoryFiles}{\void}
\func{int}{GetNoHistoryFiles}{\void}
Returns the number of files currently stored in the file history.
\membersection{wxFileHistory::Load}
\func{void}{Load}{\param{wxConfigBase\& }{config}}
Loads the file history from the given config object. This function should be called explicitly by the application.
\wxheading{See also}
\helpref{wxConfig}{wxconfigbase}
\membersection{wxFileHistory::RemoveMenu}
\func{void}{RemoveMenu}{\param{wxMenu* }{menu}}
Removes this menu from the list of those managed by this object.
\membersection{wxFileHistory::Save}
\func{void}{Save}{\param{wxConfigBase\& }{config}}
Saves the file history into the given config object. This must be called
explicitly by the application.
\wxheading{See also}
\helpref{wxConfig}{wxconfigbase}
\membersection{wxFileHistory::UseMenu}
\func{void}{UseMenu}{\param{wxMenu* }{menu}}
Adds this menu to the list of those managed by this object.

View File

@@ -4,10 +4,6 @@ A frame is a window whose size and position can (usually) be changed by the user
thick borders and a title bar, and can optionally contain a menu bar, toolbar and
status bar. A frame can contain any window that is not a frame or dialog.
A frame that has a status bar and toolbar created via the CreateStatusBar/CreateToolBar functions
manages these windows, and adjusts the value returned by GetClientSize to reflect
the remaining size available to application windows.
\wxheading{Derived from}
\helpref{wxWindow}{wxwindow}\\
@@ -126,9 +122,7 @@ for further details.
\membersection{wxFrame::CreateStatusBar}\label{wxframecreatestatusbar}
\func{virtual wxStatusBar*}{CreateStatusBar}{\param{int}{ number = 1},
\param{long}{ style = 0},
\param{wxWindowID}{ id = -1}, \param{const wxString\&}{ name = "statusBar"}}
\func{virtual bool}{CreateStatusBar}{\param{int}{ number = 1}}
Creates a status bar at the bottom of the frame.
@@ -137,17 +131,9 @@ Creates a status bar at the bottom of the frame.
\docparam{number}{The number of fields to create. Specify a
value greater than 1 to create a multi-field status bar.}
\docparam{style}{The status bar style. See \helpref{wxStatusBar}{wxstatusbar} for a list
of valid styles.}
\docparam{id}{The status bar window identifier. If -1, an identifier will be chosen by
wxWindows.}
\docparam{name}{The status bar window name.}
\wxheading{Return value}
A pointer to the the status bar if it was created successfully, NULL otherwise.
TRUE if the status bar was created successfully.
\wxheading{Remarks}
@@ -165,45 +151,6 @@ Note that you can put controls and other windows on the status bar if you wish.
\helpref{wxFrame::OnCreateStatusBar}{wxframeoncreatestatusbar},\rtfsp
\helpref{wxFrame::GetStatusBar}{wxframegetstatusbar}
\membersection{wxFrame::CreateToolBar}\label{wxframecreatetoolbar}
\func{virtual wxToolBar*}{CreateToolBar}{\param{long}{ style = wxNO\_BORDER \pipe wxTB\_HORIZONTAL},
\param{wxWindowID}{ id = -1}, \param{const wxString\&}{ name = "toolBar"}}
Creates a toolbar at the top or left of the frame.
\wxheading{Parameters}
\docparam{style}{The toolbar style. See \helpref{wxToolBar}{wxtoolbar} for a list
of valid styles.}
\docparam{id}{The toolbar window identifier. If -1, an identifier will be chosen by
wxWindows.}
\docparam{name}{The toolbar window name.}
\wxheading{Return value}
A pointer to the the toolbar if it was created successfully, NULL otherwise.
\wxheading{Remarks}
By default, the toolbar is an instance of wxToolBar (which is defined to be
a suitable toolbar class on each platform, such as wxToolBar95). To use a different class,
override \helpref{wxFrame::OnCreateToolBar}{wxframeoncreatetoolbar}.
When a toolbar has been created with this function, or made known to the frame
with \helpref{wxFrame::SetToolBar}{wxframesettoolbar}, the frame will manage the toolbar
position and adjust the return value from \helpref{wxWindow::GetClientSize}{wxwindowgetclientsize} to
reflect the available space for application windows.
\wxheading{See also}
\helpref{wxFrame::CreateStatusBar}{wxframecreatestatusbar},\rtfsp
\helpref{wxFrame::OnCreateToolBar}{wxframeoncreatetoolbar},\rtfsp
\helpref{wxFrame::SetToolBar}{wxframesettoolbar},\rtfsp
\helpref{wxFrame::GetToolBar}{wxframegettoolbar}
\membersection{wxFrame::GetMenuBar}\label{wxframegetmenubar}
\constfunc{wxMenuBar*}{GetMenuBar}{\void}
@@ -231,17 +178,6 @@ Returns a pointer to the status bar currently associated with the frame (if any)
Gets a temporary pointer to the frame title. See
\helpref{wxFrame::SetTitle}{wxframesettitle}.
\membersection{wxFrame::GetToolBar}\label{wxframegettoolbar}
\func{wxToolBar*}{GetToolBar}{\void}
Returns a pointer to the toolbar currently associated with the frame (if any).
\wxheading{See also}
\helpref{wxFrame::CreateToolBar}{wxframecreatetoolbar}, \helpref{wxToolBar}{wxtoolbar},\rtfsp
\helpref{wxFrame::SetToolBar}{wxframesettoolbar}
\membersection{wxFrame::Iconize}\label{wxframeiconize}
\func{void}{Iconize}{\param{const bool}{ iconize}}
@@ -333,9 +269,7 @@ If you call wxFrame::LoadAccelerators, you need to override this function e.g.
\membersection{wxFrame::OnCreateStatusBar}\label{wxframeoncreatestatusbar}
\func{virtual wxStatusBar*}{OnCreateStatusBar}{\param{int }{number}
\param{long}{ style},
\param{wxWindowID}{ id}, \param{const wxString\&}{ name}}
\func{virtual wxStatusBar*}{OnCreateStatusBar}{\param{int }{number}}
Virtual function called when a status bar is requested by \helpref{wxFrame::CreateStatusBar}{wxframecreatestatusbar}.
@@ -343,14 +277,6 @@ Virtual function called when a status bar is requested by \helpref{wxFrame::Crea
\docparam{number}{The number of fields to create.}
\docparam{style}{The window style. See \helpref{wxStatusBar}{wxstatusbar} for a list
of valid styles.}
\docparam{id}{The window identifier. If -1, an identifier will be chosen by
wxWindows.}
\docparam{name}{The window name.}
\wxheading{Return value}
A status bar object.
@@ -364,36 +290,6 @@ implementation returns an instance of \helpref{wxStatusBar}{wxstatusbar}.
\helpref{wxFrame::CreateStatusBar}{wxframecreatestatusbar}, \helpref{wxStatusBar}{wxstatusbar}.
\membersection{wxFrame::OnCreateToolBar}\label{wxframeoncreatetoolbar}
\func{virtual wxToolBar*}{OnCreateToolBar}{\param{long}{ style},
\param{wxWindowID}{ id}, \param{const wxString\&}{ name}}
Virtual function called when a toolbar is requested by \helpref{wxFrame::CreateToolBar}{wxframecreatetoolbar}.
\wxheading{Parameters}
\docparam{style}{The toolbar style. See \helpref{wxToolBar}{wxtoolbar} for a list
of valid styles.}
\docparam{id}{The toolbar window identifier. If -1, an identifier will be chosen by
wxWindows.}
\docparam{name}{The toolbar window name.}
\wxheading{Return value}
A toolbar object.
\wxheading{Remarks}
An application can override this function to return a different kind of toolbar. The default
implementation returns an instance of \helpref{wxToolBar}{wxtoolbar}.
\wxheading{See also}
\helpref{wxFrame::CreateToolBar}{wxframecreatetoolbar}, \helpref{wxToolBar}{wxtoolbar}.
\membersection{wxFrame::OnMenuCommand}\label{wxframeonmenucommand}
\func{void}{OnMenuCommand}{\param{wxCommandEvent\&}{ event}}
@@ -492,17 +388,6 @@ Note that it is not possible to call this function twice for the same frame obje
\helpref{wxFrame::GetMenuBar}{wxframegetmenubar}, \helpref{wxMenuBar}{wxmenubar}, \helpref{wxMenu}{wxmenu}.
\membersection{wxFrame::SetStatusBar}\label{wxframesetstatusbar}
\func{void}{SetStatusBar}{\param{wxStatusBar*}{ statusBar}}
Associates a status bar with the frame.
\wxheading{See also}
\helpref{wxFrame::CreateStatusBar}{wxframecreatestatusbar}, \helpref{wxStatusBar}{wxstatusbar},\rtfsp
\helpref{wxFrame::GetStatusBar}{wxframegetstatusbar}
\membersection{wxFrame::SetStatusText}\label{wxframesetstatustext}
\func{virtual void}{SetStatusText}{\param{const wxString\& }{ text}, \param{int}{ number = 0}}
@@ -544,17 +429,6 @@ The widths of the variable fields are calculated from the total width of all fie
minus the sum of widths of the non-variable fields, divided by the number of
variable fields.
\membersection{wxFrame::SetToolBar}\label{wxframesettoolbar}
\func{void}{SetToolBar}{\param{wxToolBar*}{ toolBar}}
Associates a toolbar with the frame.
\wxheading{See also}
\helpref{wxFrame::CreateToolBar}{wxframecreatetoolbar}, \helpref{wxToolBar}{wxtoolbar},\rtfsp
\helpref{wxFrame::GetToolBar}{wxframegettoolbar}
\membersection{wxFrame::SetTitle}\label{wxframesettitle}
\func{virtual void}{SetTitle}{\param{const wxString\& }{ title}}

View File

@@ -479,6 +479,113 @@ This function is only available under Windows.
Globally sets the cursor; only has an effect in MS Windows.
See also \helpref{wxCursor}{wxcursor}, \helpref{wxWindow::SetCursor}{wxwindowsetcursor}.
\section{System event functions}
The wxWindows system event implementation is incomplete and
experimental, but is intended to be a platform-independent way of
intercepting and sending events, including defining
application-specific events and handlers.
Ultimately it is intended to be used as a way of testing wxWindows
applications using scripts, although there are currently
problems with this (especially with modal dialogs).
All this is documented more to provoke comments and suggestions, and
jog my own memory, rather than to be used, since it has not been
tested. However {\bf wxSendEvent} will probably work if you
instantiate the event structure properly for a command event type (see
the code in {\tt wb\_panel.cpp} for \helpref{wxWindow::OnDefaultAction}{wxwindowondefaultaction}\rtfsp
which uses {\bf wxSendEvent} to send a command to the default button).
\membersection{::wxAddPrimaryEventHandler}
\func{bool}{wxAddPrimaryEventHandler}{\param{wxEventHandler}{ handlerFunc}}
Add a primary event handler---the normal event handler for this
event. For built-in events, these would include moving and resizing
windows. User-defined primary events might include the code to
select an image in a diagram (which could of course be achieved by a series
of external events for mouse-clicking, but would be more difficult to specify
and less robust).
Returns TRUE if it succeeds.
An event handler takes a pointer to a wxEvent and a boolean flag which is
TRUE if the event was externally generated, and returns a boolean which is
TRUE if that event was handled.
\membersection{::wxAddSecondaryEventHandler}
\func{bool}{wxAddSecondaryEventHandler}{\param{wxEventHandler}{ handlerFunc}, \param{bool}{ pre},\\
\param{bool}{ override}, \param{bool }{append}}
Add a secondary event handler, pre = TRUE iff it should be called before the
event is executed. override = TRUE iff the handler is allowed to override
all subsequent events by returning TRUE. Returns TRUE if succeeds.
A secondary event handler is an application-defined handler that may
intercept normal events, possibly overriding them. A primary event handler
provides the normal behaviour for the event.
An event handler takes a pointer to a wxEvent and a boolean flag which is
TRUE if the event was externally generated, and returns a boolean which is
TRUE if that event was handled.
\membersection{::wxNotifyEvent}
\func{bool}{wxNotifyEvent}{\param{wxEvent\&}{ event}, \param{bool}{ pre}}
Notify the system of the event you are about to execute/have just
executed. If TRUE is returned and pre = TRUE, the calling code should
not execute the event (since it has been intercepted by a handler and
vetoed).
These events are always internal, because they're generated from within
the main application code.
\membersection{::wxRegisterEventClass}
\func{void}{wxRegisterEventClass}{\param{WXTYPE}{ eventClassId},\param{WXTYPE}{ superClassId},\\
\param{wxEventConstructor}{ constructor}, \param{const wxString\& }{description}}
Register a new event class (derived from wxEvent), giving the new
event class type, its superclass, a function for creating a new event
object of this class, and an optional description.
\membersection{::wxRegisterEventName}
\func{void}{wxRegisterEventName}{\param{WXTYPE}{ eventTypeId},\param{WXTYPE}{ eventClassId},\\
\param{const wxString\& }{eventName}}
Register the name of the event. This will allow a simple command
language where giving the event type name and some arguments will
cause a new event of class {\it eventClassId} to be created, with given
event type, and some arguments, allows an event to be dynamically
constructed and sent.
\membersection{::wxRegisterExternalEventHandlers}
\func{void}{wxRegisterExternalEventHandlers}{\void}
Define this and link before wxWindows library to allow registering
events from `outside' the main application.
\membersection{::wxRemoveSecondaryEventHandler}
\func{bool}{wxRemoveSecondaryEventHandler}{\param{wxEventHandler}{ handlerFunc}, \param{bool}{ pre}}
Remove a secondary event handler. Returns TRUE if it succeeds.
\membersection{::wxSendEvent}\label{wxsendevent}
\func{bool}{wxSendEvent}{\param{wxEvent\&}{ event}, \param{bool}{ external}}
Send an event to the system; usually it will be external, but set
external to FALSE if calling from within the main application in
response to other events.
Returns TRUE if the event was processed.
\section{Printer settings}\label{printersettings}
The following functions are used to control PostScript printing. Under
@@ -750,8 +857,6 @@ each wxDebugMsg call. wxDebugMsg seems to be broken under WIN32s
(at least for Watcom C++): preformat your messages and use OutputDebugString
instead.
This function is now obsolete, replaced by \helpref{Log functions}{logfunctions}.
\membersection{::wxDisplaySize}
\func{void}{wxDisplaySize}{\param{int *}{width}, \param{int *}{height}}
@@ -1123,8 +1228,6 @@ Converts the character to upper case. This is implemented as a macro for efficie
Takes printf-style variable argument syntax. Output
is directed to the current output stream (see \helpref{wxDebugContext}{wxdebugcontextoverview}).
This function is now obsolete, replaced by \helpref{Log functions}{logfunctions}.
\membersection{::wxTraceLevel}\label{wxtracelevel}
\func{void}{wxTraceLevel}{\param{int}{ level}, \param{const wxString\& }{fmt}, \param{...}{}}
@@ -1135,8 +1238,6 @@ The first argument should be the level at which this information is appropriate.
It will only be output if the level returned by wxDebugContext::GetLevel is equal to or greater than
this value.
This function is now obsolete, replaced by \helpref{Log functions}{logfunctions}.
\membersection{::wxWriteResource}\label{wxwriteresource}
\func{bool}{wxWriteResource}{\param{const wxString\& }{section}, \param{const wxString\& }{entry},
@@ -1361,8 +1462,6 @@ base classes.
Calls wxTrace with printf-style variable argument syntax. Output
is directed to the current output stream (see \helpref{wxDebugContext}{wxdebugcontextoverview}).
This macro is now obsolete, replaced by \helpref{Log functions}{logfunctions}.
\membersection{WXTRACELEVEL}\label{tracelevel}
\func{}{WXTRACELEVEL}{level, formatString, ...}
@@ -1373,8 +1472,6 @@ The first argument should be the level at which this information is appropriate.
It will only be output if the level returned by wxDebugContext::GetLevel is equal to or greater than
this value.
This function is now obsolete, replaced by \helpref{Log functions}{logfunctions}.
\section{wxWindows resource functions}\label{resourcefuncs}
\overview{wxWindows resource system}{resourceformats}
@@ -1570,148 +1667,3 @@ is no connection between names used in resources, and the global bitmap data.
Another name for \helpref{wxResourceRegisterBitmapData}{registerbitmapdata}.
\section{Log functions}\label{logfunctions}
These functions provide a variety of logging functions: see \helpref{Log classes overview}{wxlogoverview} for
further information.
\membersection{::wxLogError}\label{wxlogerror}
\func{void}{wxLogError}{\param{const char*}{ formatString}, \param{...}{}}
The function to use for error messages, i.e. the
messages that must be shown to the user. The default processing is to pop up a
message box to inform the user about it.
\membersection{::wxLogFatalError}\label{wxlogfatalerror}
\func{void}{wxLogFatalError}{\param{const char*}{ formatString}, \param{...}{}}
Like \helpref{wxLogError}{wxlogerror}, but also
terminates the program with the exit code 3. Using {\it abort()} standard
function also terminates the program with this exit code.
\membersection{::wxLogWarning}\label{wxlogwarning}
\func{void}{wxLogWarning}{\param{const char*}{ formatString}, \param{...}{}}
For warnings - they are also normally shown to the
user, but don't interrupt the program work.
\membersection{::wxLogMessage}\label{wxlogmessage}
\func{void}{wxLogMessage}{\param{const char*}{ formatString}, \param{...}{}}
for all normal, informational messages. They also
appear in a message box by default (but it can be changed). Notice
that the standard behaviour is to not show informational messages if there are
any errors later - the logic being that the later error messages make the
informational messages preceding them meaningless.
\membersection{::wxLogVerbose}\label{wxlogverbose}
\func{void}{wxLogVerbose}{\param{const char*}{ formatString}, \param{...}{}}
For verbose output. Normally, it's suppressed, but
might be activated if the user wishes to know more details about the program
progress (another, but possibly confusing name for the same function is {\bf wxLogInfo}).
\membersection{::wxLogStatus}\label{wxlogstatus}
\func{void}{wxLogStatus}{\param{const char*}{ formatString}, \param{...}{}}
For status messages - they will go into the status
bar of the active or specified (as the first argument) \helpref{wxFrame}{wxframe} if it has one.
\membersection{::wxLogSysError}\label{wxlogsyserror}
\func{void}{wxLogSysError}{\param{const char*}{ formatString}, \param{...}{}}
Mostly used by wxWindows itself, but might be
handy for logging errors after system call (API function) failure. It logs the
specified message text as well as the last system error code ({\it errno} or {\it ::GetLastError()} depending
on the platform) and the corresponding error
message. The second form of this function takes the error code explitly as the
first argument.
\membersection{::wxLogDebug}\label{wxlogdebug}
\func{void}{wxLogDebug}{\param{const char*}{ formatString}, \param{...}{}}
The right function for debug output. It only
does anything at all in the debug mode (when the preprocessor symbol \_\_WXDEBUG\_\_ is defined)
and expands to nothing in release mode (otherwise).
\membersection{::wxLogTrace}\label{wxlogtrace}
\func{void}{wxLogTrace}{\param{const char*}{ formatString}, \param{...}{}}
\func{void}{wxLogTrace}{\param{wxTraceMask}{ mask}, \param{const char*}{ formatString}, \param{...}{}}
As {\bf wxLogDebug}, only does something in debug
build. The reason for making it a separate function from it is that usually
there are a lot of trace messages, so it might make sense to separate them
from other debug messages which would be flooded in them. Moreover, the second
version of this function takes a trace mask as the first argument which allows
to further restrict the amount of messages generated. The value of {\it mask} can be:
\begin{itemize}\itemsep=0pt
\item wxTraceMemAlloc: trace memory allocation (new/delete)
\item wxTraceMessages: trace window messages/X callbacks
\item wxTraceResAlloc: trace GDI resource allocation
\item wxTraceRefCount: trace various ref counting operations
\end{itemize}
\section{Debugging macros and functions}\label{debugmacros}
Useful macros and functins for error checking and defensive programming. ASSERTs are only
compiled if \_\_WXDEBUG\_\_ is defined, whereas CHECK macros stay in release
builds.
\membersection{::wxOnAssert}\label{wxonassert}
\func{void}{wxOnAssert}{\param{const char*}{ fileName}, \param{int}{ lineNumber}, \param{const char*}{ msg = NULL}}
This function may be redefined to do something non trivial and is called
whenever one of debugging macros fails (i.e. condition is false in an
assertion). TODO: this should probably be an overridable in wxApp.
\membersection{wxASSERT}\label{wxassert}
\func{}{wxASSERT}{\param{}{condition}}
Assert macro. An error message will be generated if the condition is FALSE.
\membersection{wxASSERT\_MSG}\label{wxassertmsg}
\func{}{wxASSERT\_MSG}{\param{}{condition}, \param{}{msg}}
Assert macro with message. An error message will be generated if the condition is FALSE.
\membersection{wxFAIL}\label{wxfail}
\func{}{wxFAIL}{\param{}{condition}}
Will always generate an assert error if this code is reached (in debug mode).
\membersection{wxFAIL\_MSG}\label{wxfailmsg}
\func{}{wxFAIL\_MSG}{\param{}{condition}, \param{}{msg}}
Will always generate an assert error with specified message if this code is reached (in debug mode).
\membersection{wxCHECK}\label{wxcheck}
\func{}{wxCHECK}{\param{}{condition}, \param{}{retValue}}
Checks that the condition is true, returns with the given return value if not (FAILs in debug mode).
This check is done even in release mode.
\membersection{wxCHECK\_MSG}\label{wxcheckmsg}
\func{}{wxCHECK\_MSG}{\param{}{condition}, \param{}{retValue}, \param{}{msg}}
Checks that the condition is true, returns with the given return value if not (FAILs in debug mode).
This check is done even in release mode.

View File

@@ -21,10 +21,6 @@ There are no user commands for the gauge.
See also \helpref{window styles overview}{windowstyles}.
\wxheading{Event handling}
wxGauge is read-only so generates no events.
\wxheading{See also}
\helpref{wxSlider}{wxslider}, \helpref{wxScrollBar}{wxscrollbar}

View File

@@ -1,8 +1,11 @@
\section{\class{wxHelpController}}\label{wxhelpcontroller}
\section{\class{wxHelpControllerBase}}\label{wxhelpcontrollerbase}
This is a family of classes by which
This class defines the interface by which
applications may invoke a help viewer to provide on-line help.
Other classes derive from this class to provide actual implementations
of help controllers.
A help controller allows an application to display help, at the contents
or at a particular topic, and shut the help program down on termination.
This avoids proliferation of many instances of the help viewer whenever the
@@ -13,42 +16,36 @@ when it starts, and immediately call {\bf Initialize}\rtfsp
to associate a filename with it. The help viewer will only get run, however,
just before the first call to display something.
Although all help controller classes actually derive from wxHelpControllerBase and have
names of the form wxXXXHelpController, the
appropriate class is aliased to the name wxHelpController for each platform.
There are currently the following help controller classes defined:
\begin{itemize}\itemsep=0
\item wxWinHelpController, for controlling Windows Help.
\item wxExtHelpController, for controlling external browsers under Unix.
The default browser is Netscape Navigator.
\end{itemize}
\wxheading{Derivation}
wxHelpControllerBase\\
\helpref{wxObject}{wxobject}
\wxheading{See also}
\helpref{wxWinHelpController}{wxwinhelpcontroller}
\wxheading{Include file}
{\tt <wx/help.h>}
{\tt <wx/helpbase.h>} (for just wxHelpControllerBase)
{\tt <wx/help.h>} (to include the platform-specific controller, e.g. wxWinHelpController)
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxHelpController::wxHelpController}
\membersection{wxHelpControllerBase::wxHelpControllerBase}
\func{}{wxHelpController}{\void}
\func{}{wxHelpControllerBase}{\void}
Constructs a help instance object, but does not invoke the help viewer.
\membersection{wxHelpController::\destruct{wxHelpController}}
\membersection{wxHelpControllerBase::\destruct{wxHelpControllerBase}}
\func{}{\destruct{wxHelpController}}{\void}
\func{}{\destruct{wxHelpControllerBase}}{\void}
Destroys the help instance, closing down the viewer if it is running.
\membersection{wxHelpController::Initialize}\label{wxhelpcontrollerinitialize}
\membersection{wxHelpControllerBase::Initialize}\label{wxhelpcontrollerbaseinitialize}
\func{virtual void}{Initialize}{\param{const wxString\& }{file}}
@@ -61,7 +58,7 @@ any attempts to communicate with the viewer.
You may omit the file extension and a suitable one will be chosen.
\membersection{wxHelpController::DisplayBlock}\label{wxhelpcontrollerdisplayblock}
\membersection{wxHelpControllerBase::DisplayBlock}\label{wxhelpcontrollerbasedisplayblock}
\func{virtual bool}{DisplayBlock}{\param{long}{ blockNo}}
@@ -69,14 +66,14 @@ If the help viewer is not running, runs it and displays the file at the given bl
The interpretation of {\it blockNo} differs between help viewers. If using Windows Help, this
refers to the context number. If wxHelp, this is the wxHelp block number.
\membersection{wxHelpController::DisplayContents}\label{wxhelpcontrollerdisplaycontents}
\membersection{wxHelpControllerBase::DisplayContents}\label{wxhelpcontrollerbasedisplaycontents}
\func{virtual bool}{DisplayContents}{\void}
If the help viewer is not running, runs it and displays the
contents.
\membersection{wxHelpController::DisplaySection}\label{wxhelpcontrollerdisplaysection}
\membersection{wxHelpControllerBase::DisplaySection}\label{wxhelpcontrollerbasedisplaysection}
\func{virtual bool}{DisplaySection}{\param{int}{ sectionNo}}
@@ -87,7 +84,7 @@ For wxHelp, section numbers may be viewed by running wxHelp in edit mode.
DisplaySection does not apply to WinHelp.
\membersection{wxHelpController::KeywordSearch}\label{wxhelpcontrollerkeywordsearch}
\membersection{wxHelpControllerBase::KeywordSearch}\label{wxhelpcontrollerbasekeywordsearch}
\func{virtual bool}{KeywordSearch}{\param{const wxString\& }{keyWord}}
@@ -96,7 +93,7 @@ match is found, the file is displayed at this section. If more than one
match is found, the Search dialog is displayed with the matches (wxHelp)
or the first topic is displayed (Windows Help).
\membersection{wxHelpController::LoadFile}\label{wxhelpcontrollerloadfile}
\membersection{wxHelpControllerBase::LoadFile}\label{wxhelpcontrollerbaseloadfile}
\func{virtual bool}{LoadFile}{\param{const wxString\& }{file = NULL}}
@@ -107,15 +104,15 @@ already displaying the specified file, it will not be reloaded. This
member function may be used before each display call in case the user
has opened another file.
\membersection{wxHelpController::OnQuit}\label{wxhelpcontrolleronquit}
\membersection{wxHelpControllerBase::OnQuit}\label{wxhelpcontrollerbaseonquit}
\func{virtual bool}{OnQuit}{\void}
Overridable member called when this application's viewer is quit by the user.
This does not work for all help controllers.
This only works for wxXLPHelpController.
\membersection{wxHelpController::Quit}\label{wxhelpcontrollerquit}
\membersection{wxHelpControllerBase::Quit}\label{wxhelpcontrollerbasequit}
\func{virtual bool}{Quit}{\void}

View File

@@ -147,11 +147,11 @@ Gets the position of the fifth axis of the joystick, if it exists.
Returns the maximum V position.
\membersection{wxJoystick::GetVMin}\label{wxjoystickgetvmin}
\membersection{wxJoystick::GetUMin}\label{wxjoystickgetumin}
\constfunc{int}{GetVMin}{\void}
\constfunc{int}{GetUMin}{\void}
Returns the minimum V position.
Returns the minimum U position.
\membersection{wxJoystick::GetVPosition}\label{wxjoystickgetvposition}

View File

@@ -1,84 +0,0 @@
\section{Keycodes}\label{keycodes}
Keypresses are represented by an enumerated type, wxKeyCode. The possible values
are the ASCII character codes, plus the following:
{\small
\begin{verbatim}
WXK_BACK = 8
WXK_TAB = 9
WXK_RETURN = 13
WXK_ESCAPE = 27
WXK_SPACE = 32
WXK_DELETE = 127
WXK_START = 300
WXK_LBUTTON
WXK_RBUTTON
WXK_CANCEL
WXK_MBUTTON
WXK_CLEAR
WXK_SHIFT
WXK_CONTROL
WXK_MENU
WXK_PAUSE
WXK_CAPITAL
WXK_PRIOR
WXK_NEXT
WXK_END
WXK_HOME
WXK_LEFT
WXK_UP
WXK_RIGHT
WXK_DOWN
WXK_SELECT
WXK_PRINT
WXK_EXECUTE
WXK_SNAPSHOT
WXK_INSERT
WXK_HELP
WXK_NUMPAD0
WXK_NUMPAD1
WXK_NUMPAD2
WXK_NUMPAD3
WXK_NUMPAD4
WXK_NUMPAD5
WXK_NUMPAD6
WXK_NUMPAD7
WXK_NUMPAD8
WXK_NUMPAD9
WXK_MULTIPLY
WXK_ADD
WXK_SEPARATOR
WXK_SUBTRACT
WXK_DECIMAL
WXK_DIVIDE
WXK_F1
WXK_F2
WXK_F3
WXK_F4
WXK_F5
WXK_F6
WXK_F7
WXK_F8
WXK_F9
WXK_F10
WXK_F11
WXK_F12
WXK_F13
WXK_F14
WXK_F15
WXK_F16
WXK_F17
WXK_F18
WXK_F19
WXK_F20
WXK_F21
WXK_F22
WXK_F23
WXK_F24
WXK_NUMLOCK
WXK_SCROLL
\end{verbatim}
}

View File

@@ -35,7 +35,84 @@ TRUE if control is pressed down.
\member{long}{m\_keyCode}
Virtual keycode. See \helpref{Keycodes}{keycodes} for a list of identifiers.
Virtual keycode. An enumerated type, one of:
\begin{verbatim}
WXK_BACK = 8
WXK_TAB = 9
WXK_RETURN = 13
WXK_ESCAPE = 27
WXK_SPACE = 32
WXK_DELETE = 127
WXK_START = 300
WXK_LBUTTON
WXK_RBUTTON
WXK_CANCEL
WXK_MBUTTON
WXK_CLEAR
WXK_SHIFT
WXK_CONTROL
WXK_MENU
WXK_PAUSE
WXK_CAPITAL
WXK_PRIOR
WXK_NEXT
WXK_END
WXK_HOME
WXK_LEFT
WXK_UP
WXK_RIGHT
WXK_DOWN
WXK_SELECT
WXK_PRINT
WXK_EXECUTE
WXK_SNAPSHOT
WXK_INSERT
WXK_HELP
WXK_NUMPAD0
WXK_NUMPAD1
WXK_NUMPAD2
WXK_NUMPAD3
WXK_NUMPAD4
WXK_NUMPAD5
WXK_NUMPAD6
WXK_NUMPAD7
WXK_NUMPAD8
WXK_NUMPAD9
WXK_MULTIPLY
WXK_ADD
WXK_SEPARATOR
WXK_SUBTRACT
WXK_DECIMAL
WXK_DIVIDE
WXK_F1
WXK_F2
WXK_F3
WXK_F4
WXK_F5
WXK_F6
WXK_F7
WXK_F8
WXK_F9
WXK_F10
WXK_F11
WXK_F12
WXK_F13
WXK_F14
WXK_F15
WXK_F16
WXK_F17
WXK_F18
WXK_F19
WXK_F20
WXK_F21
WXK_F22
WXK_F23
WXK_F24
WXK_NUMLOCK
WXK_SCROLL
\end{verbatim}
\membersection{wxKeyEvent::m\_metaDown}
@@ -97,7 +174,7 @@ Returns the Y position of the event.
Returns the virtual key code. ASCII events return normal ASCII values,
while non-ASCII events return values such as {\bf WXK\_LEFT} for the
left cursor key. See \helpref{Keycodes}{keycodes} for a full list of the virtual key codes.
left cursor key. See {\tt wx\_defs.h} for a full list of the virtual key codes.
\membersection{wxKeyEvent::MetaDown}

View File

@@ -1,133 +0,0 @@
\section{\class{wxLayoutAlgorithm}}\label{wxlayoutalgorithm}
wxLayoutAlgorithm implements layout of subwindows in MDI or SDI frames.
It sends a wxCalculateLayoutEvent event
to children of the frame, asking them for information about
their size. For MDI parent frames, the algorithm allocates
the remaining space to the MDI client window (which contains the MDI child frames).
For SDI (normal) frames, a 'main' window is specified as taking up the
remaining space.
Because the event system is used, this technique can be applied to any windows,
which are not necessarily 'aware' of the layout classes (no virtual functions
in wxWindow refer to wxLayoutAlgorithm or its events). However, you
may wish to use \helpref{wxSashLayoutWindow}{wxsashlayoutwindow} for your subwindows
since this class provides handlers for the required events, and accessors
to specify the desired size of the window. The sash behaviour in the base class
can be used, optionally, to make the windows user-resizable.
wxLayoutAlgorithm is typically used in IDE (integrated development environment) applications,
where there are several resizable windows in addition to the MDI client window, or
other primary editing window. Resizable windows might include toolbars, a project
window, and a window for displaying error and warning messages.
When a window receives an OnCalculateLayout event, it should call SetRect in
the given event object, to be the old supplied rectangle minus whatever space the
window takes up. It should also set its own size accordingly.
wxSashLayoutWindow::OnCalculateLayout generates an OnQueryLayoutInfo event
which it sends to itself to determine the orientation, alignment and size of the window,
which it gets from internal member variables set by the application.
The algorithm works by starting off with a rectangle equal to the whole frame client area.
It iterates through the frame children, generating OnCalculateLayout events which subtract
the window size and return the remaining rectangle for the next window to process. It
is assumed (by wxSashLayoutWindow::OnCalculateLayout) that a window stretches the full dimension
of the frame client, according to the orientation it specifies. For example, a horizontal window
will stretch the full width of the remaining portion of the frame client area.
In the other orientation, the window will be fixed to whatever size was specified by
OnQueryLayoutInfo. An alignment setting will make the window 'stick' to the left, top, right or
bottom of the remaining client area. This scheme implies that order of window creation is important.
Say you wish to have an extra toolbar at the top of the frame, a project window to the left of
the MDI client window, and an output window above the status bar. You should therefore create
the windows in this order: toolbar, output window, project window. This ensures that the toolbar and
output window take up space at the top and bottom, and then the remaining height inbetween is used for
the project window.
wxLayoutAlgorithm is quite independent of the way in which
OnCalculateLayout chooses to interpret a window's size and alignment. Therefore you
could implement a different window class with a new OnCalculateLayout event handler,
that has a more sophisticated way of laying out the windows. It might allow
specification of whether stretching occurs in the specified orientation, for example,
rather than always assuming stretching. (This could, and probably should, be added to the existing
implementation).
{\it Note:} wxLayoutAlgorithm has nothing to do with wxLayoutConstraints. It is an alternative
way of specifying layouts for which the normal constraint system is unsuitable.
\wxheading{Derived from}
\helpref{wxObject}{wxobject}
\wxheading{Event handling}
The algorithm object does not respond to events, but itself generates the
following events in order to calculate window sizes.
\twocolwidtha{7cm}%
\begin{twocollist}\itemsep=0pt
\twocolitem{{\bf EVT\_QUERY\_LAYOUT\_INFO(func)}}{Process a wxEVT\_QUERY\_LAYOUT\_INFO event,
to get size, orientation and alignment from a window. See \helpref{wxQueryLayoutInfoEvent}{wxquerylayoutinfoevent}.}
\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.
See \helpref{wxCalculateLayoutEvent}{wxcalculatelayoutevent}.}
\end{twocollist}
\wxheading{Data types}
{\small
\begin{verbatim}
enum wxLayoutOrientation {
wxLAYOUT_HORIZONTAL,
wxLAYOUT_VERTICAL
};
enum wxLayoutAlignment {
wxLAYOUT_NONE,
wxLAYOUT_TOP,
wxLAYOUT_LEFT,
wxLAYOUT_RIGHT,
wxLAYOUT_BOTTOM,
};
\end{verbatim}
}
\wxheading{See also}
\helpref{wxSashEvent}{wxsashevent}, \helpref{wxSashLayoutWindow}{wxsashlayoutwindow}, \helpref{Event handling overview}{eventhandlingoverview}
\helpref{wxCalculateLayoutEvent}{wxcalculatelayoutevent},\rtfsp
\helpref{wxQueryLayoutInfoEvent}{wxquerylayoutinfoevent},\rtfsp
\helpref{wxSashLayoutWindow}{wxsashlayoutwindow},\rtfsp
\helpref{wxSashWindow}{wxsashwindow}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxLayoutAlgorithm::wxLayoutAlgorithm}
\func{}{wxLayoutAlgorithm}{\void}
Default constructor.
\membersection{wxLayoutAlgorithm::\destruct{wxLayoutAlgorithm}}
\func{}{\destruct{wxLayoutAlgorithm}}{\void}
Destructor.
\membersection{wxLayoutAlgorithm::LayoutMDIFrame}\label{wxlayoutalgorithmlayoutmdiframe}
\constfunc{bool}{LayoutMDIFrame}{\param{wxMDIParentFrame* }{frame}, \param{wxRect*}{ rect = NULL}}
Lays out the children of an MDI parent frame. If {\it rect} is non-NULL, the
given rectangle will be used as a starting point instead of the frame's client area.
The MDI client window is set to occupy the remaining space.
\membersection{wxLayoutAlgorithm::LayoutFrame}\label{wxlayoutalgorithmlayoutframe}
\constfunc{bool}{LayoutFrame}{\param{wxFrame* }{frame}, \param{wxWindow*}{ mainWindow}}
Lays out the children of a normal frame.
{\it mainWindow} is set to occupy the remaining space.

View File

@@ -36,20 +36,9 @@ select multiple items using the SHIFT key and the mouse or special key combinati
See also \helpref{window styles overview}{windowstyles}.
\wxheading{Event handling}
\twocolwidtha{7cm}
\begin{twocollist}\itemsep=0pt
\twocolitem{{\bf EVT\_LISTBOX(id, func)}}{Process a wxEVT\_COMMAND\_LISTBOX\_SELECTED event,
when an item on the list is selected.}
\twocolitem{{\bf EVT\_LISTBOX\_DCLICK(id, func)}}{Process a wxEVT\_COMMAND\_LISTBOX\_DOUBLECLICKED event,
when the listbox is doubleclicked.}
\end{twocollist}
\wxheading{See also}
\helpref{wxChoice}{wxchoice}, \helpref{wxComboBox}{wxcombobox}, \helpref{wxListCtrl}{wxlistctrl},
\rtfsp\helpref{wxCommandEvent}{wxcommandevent}
\helpref{wxChoice}{wxchoice}, \helpref{wxComboBox}{wxcombobox}, \helpref{wxListCtrl}{wxlistctrl}
\latexignore{\rtfignore{\wxheading{Members}}}

View File

@@ -35,28 +35,6 @@ the list wraps, unlike a wxListBox.}
See also \helpref{window styles overview}{windowstyles}.
\wxheading{Event handling}
To process input from a list control, use these event handler macros to direct input to member
functions that take a \helpref{wxListEvent}{wxlistevent} argument.
\twocolwidtha{7cm}
\begin{twocollist}\itemsep=0pt
\twocolitem{{\bf EVT\_LIST\_BEGIN\_DRAG(id, func)}}{Begin dragging with the left mouse button.}
\twocolitem{{\bf EVT\_LIST\_BEGIN\_RDRAG(id, func)}}{Begin dragging with the right mouse button.}
\twocolitem{{\bf EVT\_LIST\_BEGIN\_LABEL\_EDIT(id, func)}}{Begin editing a label.}
\twocolitem{{\bf EVT\_LIST\_END\_LABEL\_EDIT(id, func)}}{Finish editing a label.}
\twocolitem{{\bf EVT\_LIST\_DELETE\_ITEM(id, func)}}{Delete an item.}
\twocolitem{{\bf EVT\_LIST\_DELETE\_ALL\_ITEMS(id, func)}}{Delete all items.}
\twocolitem{{\bf EVT\_LIST\_GET\_INFO(id, func)}}{Request information from the application, usually the item text.}
\twocolitem{{\bf EVT\_LIST\_SET\_INFO(id, func)}}{Information is being supplied (not implemented).}
\twocolitem{{\bf EVT\_LIST\_ITEM\_SELECTED(id, func)}}{The item has been selected.}
\twocolitem{{\bf EVT\_LIST\_ITEM\_DESELECTED(id, func)}}{The item has been deselected.}
\twocolitem{{\bf EVT\_LIST\_KEY\_DOWN(id, func)}}{A key has been pressed.}
\twocolitem{{\bf EVT\_LIST\_INSERT\_ITEM(id, func)}}{An item has been inserted.}
\twocolitem{{\bf EVT\_LIST\_COL\_CLICK(id, func)}}{A column ({\bf m\_col}) has been left-clicked.}
\end{twocollist}%
\wxheading{See also}
\helpref{wxListCtrl overview}{wxlistctrloverview}, \helpref{wxListBox}{wxlistbox}, \helpref{wxTreeCtrl}{wxtreectrl},\rtfsp

View File

@@ -1,186 +0,0 @@
\section{\class{wxLog}}\label{wxlog}
wxLog class defines the interface for the {\it log targets} used by wxWindows
logging functions as explained in the \helpref{wxLog overview}{wxlogoverview}.
The only situations when you need to directly use this class is when you want
to derive your own log target because the existing ones don't satisfy your
needs. Another case is if you wish to customize the behaviour of the standard
logging classes (all of which respect the wxLog settings): for example, set
which trace messages are logged and which are not or change (or even remove
completely) the timestamp on the messages.
Otherwise, it is completely hidden behind the {\it wxLogXXX()} functions and
you may not even know about its existence.
See \helpref{log overview}{wxlogoverview} for the descriptions of wxWindows
logging facilities.
\wxheading{Derived from}
No base class
\latexignore{\rtfignore{\wxheading{Function groups}}}
\membersection{Static functions}
The functions in this section work with and manipulate the active log target.
The {\it OnLog()} is called by the {\it wxLogXXX()} functions and invokes the
{\it DoLog()} of the active log target if any. Get/Set methods are used to
install/query the current active target and, finally, {\it
DontCreateOnDemand()} disables the automatic creation of a standard log target
if none actually exists. It is only useful when the application is terminating
and shouldn't be used in other situations because it may easily lead to a loss
of messages.
\helpref{OnLog}{wxlogonlog}\\
\helpref{GetActiveTarget}{wxloggetactivetarget}\\
\helpref{SetActiveTarget}{wxlogsetactivetarget}\\
\helpref{DontCreateOnDemand}{wxlogdontcreateondemand}
\membersection{Message buffering}
Some of wxLog implementations, most notably the standard
wxLogGui class, buffer the messages (for example, to avoid
showing the user a zillion of modal message boxes one after another - which
would be really annoying). {\it Flush()} shows them all and clears the buffer
contents. Although this function doesn't do anything if the buffer is already
empty, {\it HasPendingMessages()} is also provided which allows to explicitly
verify it.
\helpref{Flush}{wxlogflush}\\
\helpref{HasPendingMessages}{haspendingmessages}
\membersection{Customization}\label{wxlogcustomization}
The functions below allow some limited customization of wxLog behaviour
without writing a new log target class (which, aside of being a matter of
several minutes, allows you to do anything you want).
The verbose messages are the trace messages which are not disabled in the
release mode and are generated by {\it wxLogVerbose()}. They are not normally
shown to the user because they present little interest, but may be activated,
for example, in order to help the user find some program problem.
As for the (real) trace messages, they come in different kinds:
\begin{itemize}\itemsep=0pt
\item{wxTraceMemAlloc} for the messages about creating and deleting objects
\item{wxTraceMessages} for tracing the windowing system messages/events
\item{wxTraceResAlloc} for allocating and releasing the system ressources
\item{wxTraceRefCount} for reference counting related messages
\item{wxTraceOleCalls} for the OLE (or COM) method invocations (wxMSW only)
\item{other} the remaining bits are free for user-defined trace levels
\end{itemize}
The trace mask is a bit mask which tells which (if any) of these trace
messages are going to be actually logged. For the trace message to appear
somewhere, all the bits in the mask used in the call to {\it wxLogTrace()}
function must be set in the current trace mask. For example,
\begin{verbatim}
wxLogTrace(wxTraceRefCount | wxTraceOle, "Active object ref count: %d", nRef);
\end{verbatim}
will do something only if the current trace mask contains both wxTraceRefCount
and wxTraceOle.
Finally, the {\it wxLog::DoLog()} function automatically prepends a time stamp
to all the messages. The format of the time stamp may be changed: it can be
any string with \% specificators fully described in the documentation of the
standard {\it strftime()} function. For example, the default format is
"[\%d/\%b/\%y \%H:\%M:\%S] " which gives something like "[17/Sep/98 22:10:16] "
(without quotes) for the current date. Setting an empty string as the time
format disables timestamping of the messages completely.
\helpref{SetVerbose}{wxlogsetverbose}\\
\helpref{GetVerbose}{wxloggetverbose}\\
\helpref{SetTimeStampFormat}{wxlogsettimestampformat}\\
\helpref{GetTimeStampFormat}{wxloggettimestampformat}\\
\helpref{SetTraceMask}{wxlogsettracemask}\\
\helpref{GetTraceMask}{wxloggettracemask}
%%%%% MEMBERS HERE %%%%%
\helponly{\insertatlevel{2}{
\wxheading{Members}
}}
\membersection{wxLog::OnLog}\label{wxlogonlog}
\func{static void}{OnLog}{\param{wxLogLevel }{ level}, \param{const char * }{ message}}
Forwards the message at specified level to the {\it DoLog()} function of the
active log target if there is any, does nothing otherwise.
\membersection{wxLog::GetActiveTarget}\label{wxloggetactivetarget}
\func{static wxLog *}{GetActiveTarget}{\void}
Returns the pointer to the active log target (may be NULL).
\membersection{wxLog::SetActiveTarget}\label{wxlogsetactivetarget}
\func{static wxLog *}{SetActiveTarget}{\param{wxLog * }{ logtarget}}
Sets the specified log target as the active one. Returns the pointer to the
previous active log target (may be NULL).
\membersection{wxLog::DontCreateOnDemand}\label{wxlogdontcreateondemand}
\func{static void}{DontCreateOnDemand}{\void}
Instructs wxLog to not create new log targets on the fly if there is none
currently. (Almost) for internal use only.
\membersection{wxLog::Flush}\label{wxlogflush}
\func{virtual void}{Flush}{\void}
Shows all the messages currently in buffer and clears it. If the buffer
is already empty, nothing happens.
\membersection{wxLog::HasPendingMessages}\label{haspendingmessages}
\constfunc{bool}{HasPendingMessages}{\void}
Returns true if there are any messages in the buffer (not yet shown to the
user). (Almost) for internal use only.
\membersection{wxLog::SetVerbose}\label{wxlogsetverbose}
\func{void}{SetVerbose}{\param{bool }{ verbose = TRUE}}
Activates or desactivates verbose mode in which the verbose messages are
logged as the normal ones instead of being silently dropped.
\membersection{wxLog::GetVerbose}\label{wxloggetverbose}
\constfunc{bool}{GetVerbose}{\void}
Returns whether the verbose mode is currently active.
\membersection{wxLog::SetTimeStampFormat}\label{wxlogsettimestampformat}
\func{void}{SetTimeStampFormat}{\param{const char * }{ format}}
Sets the timestamp format prepended by the default log targets to all
messages. The string may contain any normal characters as well as \%
prefixed format specificators, see {\it strftime()} manual for details.
Passing an empty string to this function disables message timestamping.
\membersection{wxLog::GetTimeStampFormat}\label{wxloggettimestampformat}
\constfunc{const char *}{GetTimeStampFormat}{\void}
Returns the current timestamp format string.
\membersection{wxLog::SetTraceMask}\label{wxlogsettracemask}
\func{static void}{SetTraceMask}{\param{wxTraceMask }{ mask}}
Sets the trace mask, see \helpref{Customization}{wxlogcustomization}
section for details.
\membersection{wxLog::GetTraceMask}\label{wxloggettracemask}
Returns the current trace mask, see \helpref{Customization}{wxlogcustomization} section
for details.

View File

@@ -1,14 +1,4 @@
\documentstyle[a4,11pt,makeidx,verbatim,texhelp,fancyheadings,palatino]{report}
% JACS: doesn't make it through Tex2RTF, sorry.I'll put it into texhelp.sty
% since Tex2RTF doesn't parse it.
% BTW, style MUST be report for it to work for Tex2RTF.
%KB:
%\addtolength{\textwidth}{1in}
%\addtolength{\oddsidemargin}{-0.5in}
%\addtolength{\topmargin}{-0.5in}
%\addtolength{\textheight}{1in}
%\sloppy
%end of my changes
\documentstyle[a4,makeidx,verbatim,texhelp,fancyhea,mysober,mytitle]{report}
\newcommand{\indexit}[1]{#1\index{#1}}%
\newcommand{\pipe}[0]{$\|$\ }%
\definecolour{black}{0}{0}{0}%
@@ -26,11 +16,11 @@
\parskip=10pt
\parindent=0pt
\title{User Manual for wxWindows 2.0: a portable C++ GUI toolkit}
\winhelponly{\author{by Julian Smart
\winhelponly{\author{by Julian Smart and Markus Holzem
%\winhelponly{\\$$\image{1cm;0cm}{wxwin.wmf}$$}
}}
\winhelpignore{\author{Julian Smart}
\date{November 4th 1998}
\date{June 4th 1998}
}
\makeindex
\begin{document}
@@ -85,8 +75,7 @@
\setfooter{\thepage}{}{}{}{}{\thepage}%
\begin{center}
Copyright (c) 1998 Julian Smart, Markus Holzem, Robert Roebling and other
members of the wxWindows team\\
Copyright (c) 1997 Julian Smart and Markus Holzem\\
Portions (c) 1996 Artificial Intelligence Applications Institute\\
\end{center}
@@ -100,7 +89,7 @@ IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
IN NO EVENT SHALL THE ARTIFICIAL INTELLIGENCE APPLICATIONS INSTITUTE OR THE
UNIVERSITY OF EDINBURGH OR ANY MEMBERS OF THE WXWINDOWS TEAM BE LIABLE FOR ANY SPECIAL, INCIDENTAL, INDIRECT OR
UNIVERSITY OF EDINBURGH OR JULIAN SMART OR MARKUS HOLZEM BE LIABLE FOR ANY SPECIAL, INCIDENTAL, INDIRECT OR
CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF THE POSSIBILITY OF
DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH
@@ -111,7 +100,6 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
\helpinput{category.tex}
\helpinput{topics.tex}
\begin{comment}
\newpage
% Puts books in the bibliography without needing to cite them in the
@@ -127,7 +115,6 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
\addcontentsline{toc}{chapter}{Bibliography}
\setheader{{\it REFERENCES}}{}{}{}{}{{\it REFERENCES}}%
\setfooter{\thepage}{}{}{}{}{\thepage}%
\end{comment}
\newpage
\addcontentsline{toc}{chapter}{Index}

View File

@@ -21,7 +21,7 @@ With a popup menu, there is a variety of ways to handle a menu selection event
\begin{enumerate}\itemsep=0pt
\item Define a callback of type wxFunction, which you pass to the wxMenu constructor.
The callback takes a reference to the menu, and a reference to a \helpref{wxCommandEvent}{wxcommandevent}.
The callback takes a reference to a window, and a reference to a \helpref{wxCommandEvent}{wxcommandevent}.
\item Derive a new class from wxMenu and define event table entries using the EVT\_MENU macro.
\item Set a new event handler for wxMenu, using an object whose class has EVT\_MENU entries.
\item Provide EVT\_MENU handlers in the window which pops up the menu, or in an ancestor of
@@ -525,18 +525,6 @@ Use only after the menubar has been associated with a frame.
\helpref{wxMenuBar::SetLabelTop}{wxmenubarsetlabeltop}
\membersection{wxMenuBar::GetMenu}\label{wxmenubargetmenu}
\constfunc{wxMenu*}{GetMenu}{\param{int}{ menuIndex}}
Returns the menu at {\it menuIndex} (zero-based).
\membersection{wxMenuBar::GetMenuCount}\label{wxmenubargetmenucount}
\constfunc{int}{GetMenuCount}{\void}
Returns the number of menus in this menubar.
\membersection{wxMenuBar::IsChecked}\label{wxmenubarischecked}
\constfunc{bool}{IsChecked}{\param{int}{ id}}

View File

@@ -141,27 +141,27 @@ Returns TRUE if the item is a separator.
\membersection{wxMenuItem::SetBackgroundColour}\label{wxmenuitemsetbackgroundcolour}
\constfunc{void}{SetBackgroundColour}{\param{const wxColour\& }{colour}}
\constfunc{void}{SetBackgroundColour}{\param{const wxColour& }{colour}}
Sets the background colour associated with the menu item (Windows only).
\membersection{wxMenuItem::SetBitmaps}\label{wxmenuitemsetbitmaps}
\constfunc{void}{SetBitmaps}{\param{const wxBitmap\& }{checked},
\param{const wxBitmap\& }{unchecked = wxNullBitmap}}
\constfunc{void}{SetBitmaps}{\param{const wxBitmap& }{checked},
\param{const wxBitmap& }{unchecked = wxNullBitmap}}
Sets the checked/unchecked bitmaps for the menu item (Windows only). The first bitmap
is also used as the single bitmap for uncheckable menu items.
\membersection{wxMenuItem::SetFont}\label{wxmenuitemsetfont}
\constfunc{void}{SetFont}{\param{const wxFont\& }{font}}
\constfunc{void}{SetFont}{\param{const wxFont& }{font}}
Sets the font associated with the menu item (Windows only).
\membersection{wxMenuItem::SetHelp}\label{wxmenuitemsethelp}
\constfunc{void}{SetHelp}{\param{const wxString\& }{helpString}}
\constfunc{void}{SetHelp}{\param{const wxString& }{helpString}}
Sets the help string.
@@ -173,19 +173,14 @@ Sets the width of the menu item checkmark bitmap (Windows only).
\membersection{wxMenuItem::SetName}\label{wxmenuitemsetname}
\constfunc{void}{SetName}{\param{const wxString\& }{text}}
\constfunc{void}{SetName}{\param{const wxString& }{text}}
Sets the text associated with the menu item.
\membersection{wxMenuItem::SetTextColour}\label{wxmenuitemsettextcolour}
\constfunc{void}{SetTextColour}{\param{const wxColour\& }{colour}}
\constfunc{void}{SetTextColour}{\param{const wxColour& }{colour}}
Sets the text colour associated with the menu item (Windows only).
%%% Local Variables:
%%% mode: latex
%%% TeX-master: "referenc"
%%% End:

View File

@@ -58,7 +58,7 @@ need for an application to call it.
\membersection{wxModule::OnExit}\label{wxmoduleonexit}
\func{virtual void}{OnExit}{\void}
\func{virtual bool}{OnExit}{\void}
Provide this function with appropriate cleanup for your module.

View File

@@ -26,7 +26,6 @@ functions that take a wxMouseEvent argument.
\twocolitem{{\bf EVT\_MOTION(func)}}{Process a wxEVT\_MOTION event.}
\twocolitem{{\bf EVT\_ENTER\_WINDOW(func)}}{Process a wxEVT\_ENTER\_WINDOW event.}
\twocolitem{{\bf EVT\_LEAVE\_WINDOW(func)}}{Process a wxEVT\_LEAVE\_WINDOW event.}
\twocolitem{{\bf EVT\_MOUSE\_EVENTS(func)}}{Process all mouse events.}
\end{twocollist}%
\latexignore{\rtfignore{\wxheading{Members}}}

View File

@@ -1,259 +0,0 @@
\section{\class{wxNotebook}}\label{wxnotebook}
This class represents a notebook control, which manages multiple windows with associated tabs.
To use the class, create a wxNotebook object and call \helpref{AddPage}{wxnotebookaddpage} or \helpref{InsertPage}{wxnotebookinsertpage},
passing a window to be used as the page. Do not explicitly delete the window for a page that is currently
managed by wxNotebook.
{\bf wxNotebookPage} is a typedef for wxWindow.
\wxheading{Derived from}
\helpref{wxControl}{wxcontrol}\\
\helpref{wxWindow}{wxwindow}\\
\helpref{wxEvtHandler}{wxevthandler}\\
\helpref{wxObject}{wxobject}
\wxheading{Event handling}
To process input from a notebook control, use the following event handler macros to direct input to member
functions that take a \helpref{wxNotebookEvent}{wxnotebookevent} argument.
\twocolwidtha{7cm}
\begin{twocollist}\itemsep=0pt
\twocolitem{{\bf EVT\_NOTEBOOK\_PAGE\_CHANGED(id, func)}}{The page selection was changed. Processes a
wxEVT\_COMMAND\_NOTEBOOK\_PAGE\_CHANGED event.}
\twocolitem{{\bf EVT\_NOTEBOOK\_PAGE\_CHANGING(id, func)}}{The page selection is about to be changed.
Processes a wxEVT\_COMMAND\_NOTEBOOK\_PAGE\_CHANGING event.}
\end{twocollist}%
\wxheading{See also}
\helpref{wxNotebookEvent}{wxnotebookevent}, \helpref{wxImageList}{wximagelist},\rtfsp
\helpref{wxTabCtrl}{wxtabctrl}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxNotebook::wxNotebook}\label{wxnotebookconstr}
\func{}{wxNotebook}{\void}
Default constructor.
\func{}{wxNotebook}{\param{wxWindow*}{ parent}, \param{wxWindowID }{id}, \param{const wxPoint\&}{ pos = wxDefaultPosition},
\param{const wxSize\&}{ size}, \param{long}{ style = 0}, \param{const wxString\& }{name = "notebook"}}
Constructs a notebook control.
\wxheading{Parameters}
\docparam{parent}{The parent window. Must be non-NULL.}
\docparam{id}{The window identifier.}
\docparam{pos}{The window position.}
\docparam{size}{The window size.}
\docparam{style}{The window style. Its value is a bit list of zero or more of {\bf wxTC\_MULTILINE},
{\bf wxTC\_RIGHTJUSTIFY}, {\bf wxTC\_FIXEDWIDTH} and {\bf wxTC\_OWNERDRAW}.}
\membersection{wxNotebook::\destruct{wxNotebook}}
\func{}{\destruct{wxNotebook}}{\void}
Destroys the wxNotebook object.
\membersection{wxNotebook::AddPage}\label{wxnotebookaddpage}
\func{bool}{AddPage}{\param{wxNotebookPage*}{ page},
\param{const wxString\&}{ text},
\param{bool}{ select = FALSE},
\param{int}{ imageId = -1}}
Adds a new page.
\wxheading{Parameters}
\docparam{page}{Specifies the new page.}
\docparam{text}{Specifies the text for the new page.}
\docparam{select}{Specifies whether the page should be selected.}
\docparam{imageId}{Specifies the optional image index for the new page.}
\wxheading{Return value}
TRUE if successful, FALSE otherwise.
\wxheading{Remarks}
Do not delete the page, it will be deleted by the notebook.
\wxheading{See also}
\helpref{wxNotebook::InsertPage}{wxnotebookinsertpage}
\membersection{wxNotebook::AdvanceSelection}\label{wxnotebookadvanceselection}
\func{void}{AdvanceSelection}{\param{bool}{ forward = TRUE}}
Cycles through the tabs.
\membersection{wxNotebook::Create}\label{wxnotebookcreate}
\func{bool}{Create}{\param{wxWindow*}{ parent}, \param{wxWindowID }{id}, \param{const wxPoint\&}{ pos = wxDefaultPosition},
\param{const wxSize\&}{ size}, \param{long}{ style = 0}, \param{const wxString\& }{name = "notebook"}}
Creates a notebook control. See \helpref{wxNotebook::wxNotebook}{wxnotebookconstr} for a description
of the parameters.
\membersection{wxNotebook::DeleteAllPages}\label{wxnotebookdeleteallpages}
\func{bool}{DeleteAllPages}{\void}
Deletes all pages.
\membersection{wxNotebook::DeletePage}\label{wxnotebookdeletepage}
\func{bool}{DeletePage}{\param{int}{ page}}
Deletes the specified page.
\membersection{wxNotebook::GetImageList}\label{wxnotebookgetimagelist}
\constfunc{wxImageList*}{GetImageList}{\void}
Returns the associated image list.
\wxheading{See also}
\helpref{wxImageList}{wximagelist}, \helpref{wxNotebook::SetImageList}{wxnotebooksetimagelist}
\membersection{wxNotebook::GetPage}\label{wxnotebookgetpage}
\func{wxNotebookPage*}{GetPage}{\param{int}{ page}}
Returns the window at the given page position.
\membersection{wxNotebook::GetPageCount}\label{wxnotebookgetpagecount}
\constfunc{int}{GetPageCount}{\void}
Returns the number of pages in the notebook control.
\membersection{wxNotebook::GetPageImage}\label{wxnotebookgetpageimage}
\constfunc{int}{GetPageImage}{\void}
Returns the image index for the given page.
\membersection{wxNotebook::GetPageText}\label{wxnotebookgetpagetext}
\constfunc{wxString}{GetPageText}{\void}
Returns the string for the given page.
\membersection{wxNotebook::GetRowCount}\label{wxnotebookgetrowcount}
\constfunc{int}{GetRowCount}{\void}
Returns the number of rows in the notebook control.
\membersection{wxNotebook::GetSelection}\label{wxnotebookgetselection}
\constfunc{int}{GetSelection}{\void}
Returns the currently selected page, or -1 if none was selected.
\membersection{wxNotebook::InsertPage}\label{wxnotebookinsertpage}
\func{bool}{InsertPage}{\param{int}{ index}, \param{wxNotebookPage*}{ page},
\param{const wxString\&}{ text},
\param{bool}{ select = FALSE},
\param{int}{ imageId = -1}}
Inserts a new page at the specified position.
\wxheading{Parameters}
\docparam{index}{Specifies the position for the new page.}
\docparam{page}{Specifies the new page.}
\docparam{text}{Specifies the text for the new page.}
\docparam{select}{Specifies whether the page should be selected.}
\docparam{imageId}{Specifies the optional image index for the new page.}
\wxheading{Return value}
TRUE if successful, FALSE otherwise.
\wxheading{Remarks}
Do not delete the page, it will be deleted by the notebook.
\wxheading{See also}
\helpref{wxNotebook::AddPage}{wxnotebookaddpage}
\membersection{wxNotebook::OnSelChange}\label{wxnotebookonselchange}
\func{void}{OnSelChange}{\param{wxNotebookEvent\&}{ event}}
An event handler function, called when the page selection is changed.
\wxheading{See also}
\helpref{wxNotebookEvent}{wxnotebookevent}
\membersection{wxNotebook::SetImageList}\label{wxnotebooksetimagelist}
\func{void}{SetImageList}{\param{wxImageList*}{ imageList}}
Sets the image list for the page control.
\wxheading{See also}
\helpref{wxImageList}{wximagelist}
\membersection{wxNotebook::SetPadding}\label{wxnotebooksetpadding}
\func{void}{SetPadding}{\param{const wxSize\&}{ padding}}
Sets the amount of space around each page's icon and label, in pixels.
\membersection{wxNotebook::SetPageSize}\label{wxnotebooksetpagesize}
\func{void}{SetPageSize}{\param{const wxSize\&}{ size}}
Sets the width and height of the pages.
\membersection{wxNotebook::SetPageImage}\label{wxnotebooksetpageimage}
\func{bool}{SetPageImage}{\param{int}{ page}, \param{int }{image}}
Sets the image index for the given page. {\it image} is an index into
the image list which was set with \helpref{wxNotebook::SetImageList}{wxnotebooksetimagelist}.
\membersection{wxNotebook::SetPageText}\label{wxnotebooksetpagetext}
\func{bool}{SetPageText}{\param{int}{ page}, \param{const wxString\& }{text}}
Sets the text for the given page.
\membersection{wxNotebook::SetSelection}\label{wxnotebooksetselection}
\func{int}{SetSelection}{\param{int}{ page}}
Sets the selection for the given page, returning the previous selection.
\wxheading{See also}
\helpref{wxNotebook::GetSelection}{wxnotebookgetselection}

View File

@@ -1,66 +0,0 @@
\section{\class{wxNotebookEvent}}\label{wxnotebookevent}
This class represents the events generated by a notebook control.
\wxheading{Derived from}
\helpref{wxCommandEvent}{wxcommandevent}\\
\helpref{wxEvent}{wxevent}\\
\helpref{wxEvtHandler}{wxevthandler}\\
\helpref{wxObject}{wxobject}
\wxheading{Event table macros}
To process a notebook event, use these event handler macros to direct input to member
functions that take a wxNotebookEvent argument.
\twocolwidtha{7cm}
\begin{twocollist}\itemsep=0pt
\twocolitem{{\bf EVT\_NOTEBOOK_PAGE_CHANGED(id, func)}}{The page selection was changed. Processes a
wxEVT\_COMMAND\_NOTEBOOK\_PAGE\_CHANGED event.}
\twocolitem{{\bf EVT\_NOTEBOOK_PAGE_CHANGING(id, func)}}{The page selection is about to be changed.
Processes a wxEVT\_COMMAND\_NOTEBOOK\_PAGE\_CHANGING event.}
\end{twocollist}%
\wxheading{See also}
\helpref{wxNotebook}{wxnotebook}, \helpref{wxTabCtrl}{wxtabctrl}, \helpref{wxTabEvent}{wxtabevent}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxNotebookEvent::wxNotebookEvent}\label{wxnotebookeventconstr}
\func{}{wxNotebookEvent}{\param{wxEventType}{ eventType = wxEVT\_NULL},
\param{int}{ id = 0}, \param{int}{ sel = -1}, \param{int}{ oldSel = -1}}
Constructor.
\membersection{wxNotebookEvent::GetOldSelection}\label{wxnotebookeventgetoldselection}
\constfunc{int}{GetOldSelection}{\void}
Returns the page that was selected before the change, -1 if none was selected.
\membersection{wxNotebookEvent::GetSelection}\label{wxnotebookeventgetselection}
\constfunc{int}{GetSelection}{\void}
Returns the currently selected page, or -1 if none was selected.
\membersection{wxNotebookEvent::SetOldSelection}\label{wxnotebookeventsetoldselection}
\func{void}{SetOldSelection}{\param{int}{ page}}
Sets the id of the page selected before the change.
\membersection{wxNotebookEvent::SetSelection}\label{wxnotebookeventsetselection}
\func{void}{SetSelection}{\param{int}{ page}}
Sets the selection member variable.
\wxheading{See also}
\helpref{wxNotebookEvent::GetSelection}{wxnotebookeventgetselection}

View File

@@ -15,8 +15,7 @@ isn't overriden.
\func{}{wxProcess}{\param{wxEvtHandler *}{ parent = NULL}, \param{int}{ id = -1}}
Constructs a process object. {\it id} is only used in the case you want to
use wxWindows events. It identifies this object, or another window that will
receive the event.
use wxWindows events.
\wxheading{Parameters}
@@ -38,4 +37,3 @@ It is called when the process with the pid {\it pid} finishes.
It raises a wxWindows event when it isn't overriden.
\docparam{pid}{The pid of the process which ends.}

View File

@@ -1,52 +0,0 @@
\section{\class{wxProcessEvent}}\label{wxprocessevent}
A process event is sent when a process is terminated.
\wxheading{Derived from}
\helpref{wxEvent}{wxevent}\\
\helpref{wxObject}{wxobject}
\wxheading{Event table macros}
To process a wxProcessEvent, use these event handler macros to direct input to a member
function that takes a wxProcessEvent argument.
\twocolwidtha{7cm}
\begin{twocollist}\itemsep=0pt
\twocolitem{{\bf EVT\_END\_PROCESS(id, func)}}{Process a wxEVT\_END\_PROCESS event.
{\it id} is the identifier of the process object (the id passed to the wxProcess constructor)
or a window to receive the event.}
\end{twocollist}%
\wxheading{See also}
\helpref{wxProcess}{wxprocess},\rtfsp
\helpref{Event handling overview}{eventhandlingoverview}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxProcessEvent::wxProcessEvent}
\func{}{wxProcessEvent}{\param{int }{id = 0}, \param{int }{pid = 0}}
Constructor. Takes a wxProcessObject or window id, and a process id.
\membersection{wxProcessEvent::m\_pid}
\member{int}{m\_pid}
Contains the process id.
\membersection{wxProcessEvent::GetPid}\label{wxprocesseventgetpid}
\constfunc{int}{GetPid}{\void}
Returns the process id.
\membersection{wxProcessEvent::SetPid}\label{wxprocesseventsetpid}
\func{void}{SetPid}{\param{int}{ pid}}
Sets the process id.

View File

@@ -1,118 +0,0 @@
\section{\class{wxQueryLayoutInfoEvent}}\label{wxquerylayoutinfoevent}
This event is sent when \helpref{wxLayoutAlgorithm}{wxlayoutalgorithm} wishes to get
the size, orientation and alignment of a window. More precisely, the event is sent
by the OnCalculateLayout handler which is itself invoked by wxLayoutAlgorithm.
\wxheading{Derived from}
\helpref{wxEvent}{wxevent}\\
\helpref{wxObject}{wxobject}
\wxheading{Event table macros}
\twocolwidtha{7cm}%
\begin{twocollist}\itemsep=0pt
\twocolitem{{\bf EVT\_QUERY\_LAYOUT\_INFO(func)}}{Process a wxEVT\_QUERY\_LAYOUT\_INFO event,
to get size, orientation and alignment from a window.}
\end{twocollist}
\wxheading{Data structures}
{\small
\begin{verbatim}
enum wxLayoutOrientation {
wxLAYOUT_HORIZONTAL,
wxLAYOUT_VERTICAL
};
enum wxLayoutAlignment {
wxLAYOUT_NONE,
wxLAYOUT_TOP,
wxLAYOUT_LEFT,
wxLAYOUT_RIGHT,
wxLAYOUT_BOTTOM,
};
\end{verbatim}
}
\wxheading{See also}
\helpref{wxCalculateLayoutEvent}{wxcalculatelayoutevent},\rtfsp
\helpref{wxSashLayoutWindow}{wxsashlayoutwindow},\rtfsp
\helpref{wxLayoutAlgorithm}{wxlayoutalgorithm}.
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxQueryLayoutInfoEvent::wxQueryLayoutInfoEvent}
\func{}{wxQueryLayoutInfoEvent}{\param{wxWindowID }{id = 0}}
Constructor.
\membersection{wxQueryLayoutInfoEvent::GetAlignment}\label{wxquerylayoutinfoeventgetalignment}
\constfunc{void}{GetAlignment}{\void}
Specifies the alignment of the window (which side of the remaining parent client area
the window sticks to). One of wxLAYOUT\_TOP, wxLAYOUT\_LEFT, wxLAYOUT\_RIGHT, wxLAYOUT\_BOTTOM.
\membersection{wxQueryLayoutInfoEvent::GetFlags}\label{wxquerylayoutinfoeventgetflags}
\constfunc{int}{GetFlags}{\void}
Returns the flags associated with this event. Not currently used.
\membersection{wxQueryLayoutInfoEvent::GetOrientation}\label{wxquerylayoutinfoeventgetorientation}
\constfunc{wxLayoutOrientation}{GetOrientation}{\void}
Returns the orientation that the event handler specified to the event object. May be one of wxLAYOUT\_HORIZONTAL,
wxLAYOUT\_VERTICAL.
\membersection{wxQueryLayoutInfoEvent::GetRequestedLength}\label{wxquerylayoutinfoeventgetrequestedlength}
\constfunc{int}{GetRequestedLength}{\void}
Returns the requested length of the window in the direction of the window orientation. This information
is not yet used.
\membersection{wxQueryLayoutInfoEvent::GetSize}\label{wxquerylayoutinfoeventgetsize}
\constfunc{wxSize}{GetSize}{\void}
Returns the size that the event handler specified to the event object as being the requested size of the window.
\membersection{wxQueryLayoutInfoEvent::SetAlignment}\label{wxquerylayoutinfoeventsetalignment}
\func{void}{SetAlignment}{\param{wxLayoutAlignment }{alignment}}
Call this to specify the alignment of the window (which side of the remaining parent client area
the window sticks to). May be one of wxLAYOUT\_TOP, wxLAYOUT\_LEFT, wxLAYOUT\_RIGHT, wxLAYOUT\_BOTTOM.
\membersection{wxQueryLayoutInfoEvent::SetFlags}\label{wxquerylayoutinfoeventsetflags}
\func{void}{SetFlags}{\param{int }{flags}}
Sets the flags associated with this event. Not currently used.
\membersection{wxQueryLayoutInfoEvent::SetOrientation}\label{wxquerylayoutinfoeventsetorientation}
\func{void}{SetOrientation}{\param{wxLayoutOrientation }{orientation}}
Call this to specify the orientation of the window. May be one of wxLAYOUT\_HORIZONTAL,
wxLAYOUT\_VERTICAL.
\membersection{wxQueryLayoutInfoEvent::SetRequestedLength}\label{wxquerylayoutinfoeventsetrequestedlength}
\func{void}{SetRequestedLength}{\param{int}{ length}}
Sets the requested length of the window in the direction of the window orientation. This information
is not yet used.
\membersection{wxQueryLayoutInfoEvent::SetSize}\label{wxquerylayoutinfoeventsetsize}
\func{void}{SetSize}{\param{const wxSize\& }{size}}
Call this to let the calling code know what the size of the window is.

View File

@@ -21,14 +21,6 @@ labelled buttons.
See also \helpref{window styles overview}{windowstyles}.
\wxheading{Event handling}
\twocolwidtha{7cm}
\begin{twocollist}\itemsep=0pt
\twocolitem{{\bf EVT\_RADIOBOX(id, func)}}{Process a wxEVT\_COMMAND\_RADIOBOX\_SELECTED event,
when a radiobutton is clicked.}
\end{twocollist}
\wxheading{See also}
\helpref{Event handling overview}{eventhandlingoverview}, \helpref{wxRadioButton}{wxradiobutton},\rtfsp

View File

@@ -16,14 +16,6 @@ There are no specific styles for this class.
See also \helpref{window styles overview}{windowstyles}.
\wxheading{Event handling}
\twocolwidtha{7cm}
\begin{twocollist}\itemsep=0pt
\twocolitem{{\bf EVT\_RADIOBUTTON(id, func)}}{Process a wxEVT\_COMMAND\_RADIOBUTTON\_SELECTED event,
when the radiobutton is clicked.}
\end{twocollist}
\wxheading{See also}
\helpref{Event handling overview}{eventhandlingoverview}, \helpref{wxRadioBox}{wxradiobox},\rtfsp

View File

@@ -1,12 +1,4 @@
\documentstyle[a4,11pt,makeidx,verbatim,texhelp,fancyheadings,palatino]{thesis}
%KB:
\addtolength{\textwidth}{1in}
\addtolength{\oddsidemargin}{-0.5in}
\addtolength{\topmargin}{-0.5in}
\addtolength{\textheight}{1in}
\sloppy
%end of my changes
%\documentstyle[a4,makeidx,verbatim,texhelp,fancyhea,mysober,mytitle]{report}
\documentstyle[a4,makeidx,verbatim,texhelp,fancyhea,mysober,mytitle]{report}
\newcommand{\indexit}[1]{#1\index{#1}}
\newcommand{\pipe}[0]{$\|$\ }%
\input psbox.tex
@@ -17,8 +9,8 @@
\parskip=10pt
\parindent=0pt
\title{Reference Manual for wxWindows 2.0: a portable C++ GUI toolkit}
\author{Julian Smart}
\date{November 4th 1998}
\author{Julian Smart and Markus Holzem}
\date{October 21st 1997}
\makeindex
\begin{document}
@@ -37,8 +29,7 @@
\setfooter{\thepage}{}{}{}{}{\thepage}
\begin{center}
Copyright (c) 1998 Julian Smart, Markus Holzem, Robert Roebling and other
members of the wxWindows team\\
Copyright (c) 1997 Julian Smart and Markus Holzem\\
Portions (c) 1996 Artificial Intelligence Applications Institute\\
\end{center}
@@ -52,7 +43,7 @@ IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
IN NO EVENT SHALL THE ARTIFICIAL INTELLIGENCE APPLICATIONS INSTITUTE OR THE
UNIVERSITY OF EDINBURGH OR ANY MEMBERS OF THE WXWINDOWS TEAM BE LIABLE FOR ANY SPECIAL, INCIDENTAL, INDIRECT OR
UNIVERSITY OF EDINBURGH OR JULIAN SMART OR MARKUS HOLZEM BE LIABLE FOR ANY SPECIAL, INCIDENTAL, INDIRECT OR
CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF THE POSSIBILITY OF
DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH

View File

@@ -8,10 +8,6 @@ reference counting, so copying and assignment operations are fast.
\helpref{wxGDIObject}{wxgdiobject}\\
\helpref{wxObject}{wxobject}
\wxheading{See also}
\helpref{wxRegionIterator}{wxregioniterator}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxRegion::wxRegion}\label{wxregionconstr}
@@ -183,105 +179,4 @@ for any overlapping areas. The result is stored in this region.
Copies {\it region} by reference counting.
\section{\class{wxRegionIterator}}\label{wxregioniterator}
This class is used to iterate through the rectangles in a region,
typically when examining the damaged regions of a window within an OnPaint call.
To use it, construct an iterator object on the stack and loop through the
regions, testing the object and incrementing the iterator at the end of the loop.
See \helpref{wxWindow::OnPaint}{wxwindowonpaint} for an example of use.
\wxheading{Derived from}
\helpref{wxObject}{wxobject}
\wxheading{See also}
\helpref{wxWindow::OnPaint}{wxwindowonpaint}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxRegionIterator::wxRegionIterator}
\func{}{wxRegionIterator}{\void}
Default constructor.
\func{}{wxRegionIterator}{\param{const wxRegion\&}{ region}}
Creates an iterator object given a region.
\membersection{wxRegionIterator::GetX}
\constfunc{long}{GetX}{\void}
Returns the x value for the current region.
\membersection{wxRegionIterator::GetY}
\constfunc{long}{GetY}{\void}
Returns the y value for the current region.
\membersection{wxRegionIterator::GetW}
\constfunc{long}{GetW}{\void}
An alias for GetWidth.
\membersection{wxRegionIterator::GetWidth}
\constfunc{long}{GetWidth}{\void}
Returns the width value for the current region.
\membersection{wxRegionIterator::GetH}
\constfunc{long}{GetH}{\void}
An alias for GetHeight.
\membersection{wxRegionIterator::GetHeight}
\constfunc{long}{GetWidth}{\void}
Returns the width value for the current region.
\membersection{wxRegionIterator::GetRect}
\constfunc{wxRect}{GetRect}{\void}
Returns the current rectangle.
\membersection{wxRegionIterator::HaveRects}
\constfunc{bool}{HaveRects}{\void}
Returns TRUE if there are still some rectangles; otherwise returns FALSE.
\membersection{wxRegionIterator::Reset}
\func{void}{Reset}{\void}
Resets the iterator to the beginning of the rectangles.
\func{void}{Reset}{\param{const wxRegion\&}{ region}}
Resets the iterator to the given region.
\membersection{wxRegionIterator::operator $++$}
\func{void}{operator $++$}{\void}
Increment operator. Increments the iterator to the next region.
\membersection{wxRegionIterator::operator bool}
\constfunc{}{operator bool}{\void}
Returns TRUE if there are still some rectangles; otherwise returns FALSE.
You can use this to test the iterator object as if it were of type bool.

View File

@@ -1,85 +0,0 @@
\section{\class{wxSashEvent}}\label{wxsashevent}
A sash event is sent when the sash of a \helpref{wxSashWindow}{wxsashwindow} has been
dragged by the user.
\wxheading{Derived from}
\helpref{wxCommandEvent}{wxcommandevent}\\
\helpref{wxEvent}{wxevent}\\
\helpref{wxObject}{wxobject}
\wxheading{Event table macros}
To process an activate event, use these event handler macros to direct input to a member
function that takes a wxSashEvent argument.
\twocolwidtha{7cm}%
\begin{twocollist}\itemsep=0pt
\twocolitem{{\bf EVT\_SASH\_DRAGGED(id, func)}}{Process a wxEVT\_SASH\_DRAGGED event,
when the user has finished dragging a sash.}
\twocolitem{{\bf EVT\_SASH\_DRAGGED\_RANGE(id1, id2, func)}}{Process a wxEVT\_SASH\_DRAGGED\_RANGE event,
when the user has finished dragging a sash. The event handler is called when windows with ids in the
given range have their sashes dragged.}
\end{twocollist}
\wxheading{Data structures}
{\small
\begin{verbatim}
enum wxSashDragStatus
{
wxSASH_STATUS_OK,
wxSASH_STATUS_OUT_OF_RANGE
};
\end{verbatim}
}
\wxheading{Remarks}
When a sash belonging to a sash window is dragged by the user, and then released,
this event is sent to the window, where it may be processed by an event table
entry in a derived class, a plug-in event handler or an ancestor class.
Note that the wxSashWindow doesn't change the window's size itself. It relies on the application's
event handler to do that. This is because the application may have to handle other consequences
of the resize, or it may wish to veto it altogether. The event handler should
look at the drag rectangle: see \helpref{wxSashEvent::GetDragRect}{wxsasheventgetdragrect} to see
what the new size of the window would be if the resize were to be applied. It should
also call \helpref{wxSashEvent::GetDragStatus}{wxsasheventgetdragstatus} to see whether the
drag was OK or out of the current allowed range.
\wxheading{See also}
\helpref{wxSashWindow}{wxsashwindow},\rtfsp
\helpref{Event handling overview}{eventhandlingoverview}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxSashEvent::wxSashEvent}
\func{}{wxSashEvent}{\param{int }{id = 0}, \param{wxSashEdgePosition}{ edge = wxSASH\_NONE}}
Constructor.
\membersection{wxSashEvent::GetEdge}\label{wxsasheventgetedge}
\constfunc{wxSashEdgePosition}{GetEdge}{\void}
Returns the dragged edge. The return value is one of wxSASH\_TOP, wxSASH\_RIGHT, wxSASH\_BOTTOM, wxSASH\_LEFT.
\membersection{wxSashEvent::GetDragRect}\label{wxsasheventgetdragrect}
\constfunc{wxRect}{GetDragRect}{\void}
Returns the rectangle representing the new size the window would be if the resize was applied. It is
up to the application to set the window size if required.
\membersection{wxSashEvent::GetDragStatus}\label{wxsasheventgetdragstatus}
\constfunc{wxSashDragStatus}{GetDragStatus}{\void}
Returns the status of the sash: one of wxSASH\_STATUS\_OK, wxSASH\_STATUS\_OUT\_OF\_RANGE.
If the drag caused the notional bounding box of the window to flip over, for example, the drag will be out of rage.

View File

@@ -1,128 +0,0 @@
\section{\class{wxSashLayoutWindow}}\label{wxsashlayoutwindow}
wxSashLayoutWindow responds to OnCalculateLayout events generated
by \helpref{wxLayoutAlgorithm}{wxlayoutalgorithm}. It allows the
application to use simple accessors to specify how the window should be
laid out, rather than having to respond to events. The fact that
the class derives from wxSashWindow allows sashes to be used if required,
to allow the windows to be user-resizable.
The documentation for \helpref{wxLayoutAlgorithm}{wxlayoutalgorithm} explains
the purpose of this class in more detail.
\wxheading{Derived from}
\helpref{wxSashWindow}{wxsashwindow}\\
\helpref{wxWindow}{wxwindow}\\
\helpref{wxEvtHandler}{wxevthandler}\\
\helpref{wxObject}{wxobject}
\wxheading{Window styles}
See \helpref{wxSashWindow}{wxsashwindow}.
\wxheading{Event handling}
This class handles the EVT\_QUERY\_LAYOUT\_INFO and EVT\_CALCULATE\_LAYOUT events
for you. However, if you use sashes, see \helpref{wxSashWindow}{wxsashwindow} for
relevant event information.
See also \helpref{wxLayoutAlgorithm}{wxlayoutalgorithm} for information
about the layout events.
\wxheading{See also}
\helpref{wxLayoutAlgorithm}{wxlayoutalgorithm}, \helpref{wxSashWindow}{wxsashwindow}, \helpref{Event handling overview}{eventhandlingoverview}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxSashLayoutWindow::wxSashLayoutWindow}
\func{}{wxSashLayoutWindow}{\void}
Default constructor.
\func{}{wxSashLayoutWindow}{\param{wxSashLayoutWindow*}{ parent}, \param{wxSashLayoutWindowID }{id},
\param{const wxPoint\& }{pos = wxDefaultPosition},
\param{const wxSize\& }{size = wxDefaultSize},
\param{long }{style = wxCLIP\_CHILDREN \pipe wxSW\_3D},
\param{const wxString\& }{name = "layoutWindow"}}
Constructs a sash layout window, which can be a child of a frame, dialog or any other non-control window.
\wxheading{Parameters}
\docparam{parent}{Pointer to a parent window.}
\docparam{id}{Window identifier. If -1, will automatically create an identifier.}
\docparam{pos}{Window position. wxDefaultPosition is (-1, -1) which indicates that wxSashLayoutWindows
should generate a default position for the window. If using the wxSashLayoutWindow class directly, supply
an actual position.}
\docparam{size}{Window size. wxDefaultSize is (-1, -1) which indicates that wxSashLayoutWindows
should generate a default size for the window.}
\docparam{style}{Window style. For window styles, please see \helpref{wxSashLayoutWindow}{wxsashlayoutwindow}.}
\docparam{name}{Window name.}
\membersection{wxSashLayoutWindow::\destruct{wxSashLayoutWindow}}
\func{}{\destruct{wxSashLayoutWindow}}{\void}
Destructor.
\membersection{wxSashLayoutWindow::GetAlignment}\label{wxsashlayoutwindowgetalignment}
\constfunc{wxLayoutAlignment}{GetAlignment}{\void}
Returns the alignment of the window: one of wxLAYOUT\_TOP, wxLAYOUT\_LEFT, wxLAYOUT\_RIGHT, wxLAYOUT\_BOTTOM.
\membersection{wxSashLayoutWindow::GetOrientation}\label{wxsashlayoutwindowgetorientation}
\constfunc{wxLayoutOrientation}{GetOrientation}{\void}
Returns the orientation of the window: one of wxLAYOUT\_HORIZONTAL, wxLAYOUT\_VERTICAL.
\membersection{wxSashLayoutWindow::OnCalculateLayout}\label{wxsashlayoutwindowoncalculatelayout}
\func{void}{OnCalculateLayout}{\param{wxCalculateLayoutEvent\&}{ event}}
The default handler for the event that is generated by wxLayoutAlgorithm. The implementation
of this function calls wxCalculateLayoutEvent::SetRect to shrink the provided size according to
how much space this window takes up. For further details,
see \helpref{wxLayoutAlgorithm}{wxlayoutalgorithm} and \helpref{wxCalculateLayoutEvent}{wxcalculatelayoutevent}.
\membersection{wxSashLayoutWindow::OnQueryLayoutInfo}\label{wxsashlayoutwindowonquerylayoutinfo}
\func{void}{OnQueryLayoutInfo}{\param{wxQueryLayoutInfoEvent\&}{ event}}
The default handler for the event that is generated by OnCalculateLayout to get
size, alignment and orientation information for the window. The implementation
of this function uses member variables as set by accessors called by the application.
For further details, see \helpref{wxLayoutAlgorithm}{wxlayoutalgorithm} and \helpref{wxQueryLayoutInfoEvent}{wxquerylayoutinfoevent}.
\membersection{wxSashLayoutWindow::SetAlignment}\label{wxsashlayoutwindowsetalignment}
\func{void}{SetAlignment}{\param{wxLayoutAlignment}{ alignment}}
Sets the alignment of the window (which edge of the available parent client area the window
is attached to). {\it alignment} is one of wxLAYOUT\_TOP, wxLAYOUT\_LEFT, wxLAYOUT\_RIGHT, wxLAYOUT\_BOTTOM.
\membersection{wxSashLayoutWindow::SetDefaultSize}\label{wxsashlayoutwindowsetdefaultsize}
\func{void}{SetDefaultSize}{\param{const wxSize\& }{size}}
Sets the default dimensions of the window. The dimension other than the orientation will be fixed to this
value, and the orientation dimension will be ignored and the window stretched to fit the available space.
\membersection{wxSashLayoutWindow::SetOrientation}\label{wxsashlayoutwindowsetorientation}
\func{void}{SetOrientation}{\param{wxLayoutOrientation}{ orientation}}
Sets the orientation of the window (the direction the window will stretch in, to fill the available
parent client area). {\it orientation} is one of wxLAYOUT\_HORIZONTAL, wxLAYOUT\_VERTICAL.

View File

@@ -1,203 +0,0 @@
\section{\class{wxSashWindow}}\label{wxsashwindow}
wxSashWindow allows any of its edges to have a sash which can be dragged
to resize the window. The actual content window will be created by the application
as a child of wxSashWindow. The window (or an ancestor) will be notified of a drag
via a \helpref{wxSashEvent}{wxsashevent} notification.
\wxheading{Derived from}
\helpref{wxWindow}{wxwindow}\\
\helpref{wxEvtHandler}{wxevthandler}\\
\helpref{wxObject}{wxobject}
\wxheading{Window styles}
The following styles apply in addition to the normal wxWindow styles.
\twocolwidtha{5cm}%
\begin{twocollist}\itemsep=0pt
\twocolitem{\windowstyle{wxSW\_3D}}{Draws the sashes in 3D.}
\end{twocollist}
See also \helpref{window styles overview}{windowstyles}.
\wxheading{Event handling}
\twocolwidtha{7cm}%
\begin{twocollist}\itemsep=0pt
\twocolitem{{\bf EVT\_SASH\_DRAGGED(id, func)}}{Process a wxEVT\_SASH\_DRAGGED event,
when the user has finished dragging a sash.}
\twocolitem{{\bf EVT\_SASH\_DRAGGED\_RANGE(id1, id2, func)}}{Process a wxEVT\_SASH\_DRAGGED\_RANGE event,
when the user has finished dragging a sash. The event handler is called when windows with ids in the
given range have their sashes dragged.}
\end{twocollist}
\wxheading{Data types}
{\small
\begin{verbatim}
enum wxSashEdgePosition {
wxSASH_TOP = 0,
wxSASH_RIGHT,
wxSASH_BOTTOM,
wxSASH_LEFT,
wxSASH_NONE = 100
};
\end{verbatim}
}
\wxheading{See also}
\helpref{wxSashEvent}{wxsashevent}, \helpref{wxSashLayoutWindow}{wxsashlayoutwindow}, \helpref{Event handling overview}{eventhandlingoverview}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxSashWindow::wxSashWindow}
\func{}{wxSashWindow}{\void}
Default constructor.
\func{}{wxSashWindow}{\param{wxSashWindow*}{ parent}, \param{wxSashWindowID }{id},
\param{const wxPoint\& }{pos = wxDefaultPosition},
\param{const wxSize\& }{size = wxDefaultSize},
\param{long }{style = wxCLIP\_CHILDREN \pipe wxSW\_3D},
\param{const wxString\& }{name = "sashWindow"}}
Constructs a sash window, which can be a child of a frame, dialog or any other non-control window.
\wxheading{Parameters}
\docparam{parent}{Pointer to a parent window.}
\docparam{id}{Window identifier. If -1, will automatically create an identifier.}
\docparam{pos}{Window position. wxDefaultPosition is (-1, -1) which indicates that wxSashWindows
should generate a default position for the window. If using the wxSashWindow class directly, supply
an actual position.}
\docparam{size}{Window size. wxDefaultSize is (-1, -1) which indicates that wxSashWindows
should generate a default size for the window.}
\docparam{style}{Window style. For window styles, please see \helpref{wxSashWindow}{wxsashwindow}.}
\docparam{name}{Window name.}
\membersection{wxSashWindow::\destruct{wxSashWindow}}
\func{}{\destruct{wxSashWindow}}{\void}
Destructor.
\membersection{wxSashWindow::GetSashVisible}\label{wxsashwindowgetsashvisible}
\constfunc{bool}{GetSashVisible}{\param{wxSashEdgePosition }{edge}}
Returns TRUE if a sash is visible on the given edge, FALSE otherwise.
\wxheading{Parameters}
\docparam{edge}{Edge. One of wxSASH\_TOP, wxSASH\_RIGHT, wxSASH\_BOTTOM, wxSASH\_LEFT.}
\wxheading{See also}
\helpref{wxSashWindow::SetSashVisible}{wxsashwindowsetsashvisible}
\membersection{wxSashWindow::GetMaximumSizeX}\label{wxsashwindowgetmaximumsizex}
\constfunc{int}{GetMaximumSizeX}{\void}
Gets the maximum window size in the x direction.
\membersection{wxSashWindow::GetMaximumSizeY}\label{wxsashwindowgetmaximumsizey}
\constfunc{int}{GetMaximumSizeY}{\void}
Gets the maximum window size in the y direction.
\membersection{wxSashWindow::GetMinimumSizeX}\label{wxsashwindowgetminimumsizex}
\func{int}{GetMinimumSizeX}{\void}
Gets the minimum window size in the x direction.
\membersection{wxSashWindow::GetMinimumSizeY}\label{wxsashwindowgetminimumsizey}
\constfunc{int}{GetMinimumSizeY}{\param{int}{ min}}
Gets the minimum window size in the y direction.
\membersection{wxSashWindow::HasBorder}\label{wxsashwindowhasborder}
\constfunc{bool}{HasBorder}{\param{wxSashEdgePosition }{edge}}
Returns TRUE if the sash has a border, FALSE otherwise.
\wxheading{Parameters}
\docparam{edge}{Edge. One of wxSASH\_TOP, wxSASH\_RIGHT, wxSASH\_BOTTOM, wxSASH\_LEFT.}
\wxheading{See also}
\helpref{wxSashWindow::SetSashBorder}{wxsashwindowsetsashborder}
\membersection{wxSashWindow::SetMaximumSizeX}\label{wxsashwindowsetmaximumsizex}
\func{void}{SetMaximumSizeX}{\param{int}{ min}}
Sets the maximum window size in the x direction.
\membersection{wxSashWindow::SetMaximumSizeY}\label{wxsashwindowsetmaximumsizey}
\func{void}{SetMaximumSizeY}{\param{int}{ min}}
Sets the maximum window size in the y direction.
\membersection{wxSashWindow::SetMinimumSizeX}\label{wxsashwindowsetminimumsizex}
\func{void}{SetMinimumSizeX}{\param{int}{ min}}
Sets the minimum window size in the x direction.
\membersection{wxSashWindow::SetMinimumSizeY}\label{wxsashwindowsetminimumsizey}
\func{void}{SetMinimumSizeY}{\param{int}{ min}}
Sets the minimum window size in the y direction.
\membersection{wxSashWindow::SetSashVisible}\label{wxsashwindowsetsashvisible}
\func{void}{SetSashVisible}{\param{wxSashEdgePosition }{edge}, \param{bool}{ visible}}
Call this function to make a sash visible or invisible on a particular edge.
\wxheading{Parameters}
\docparam{edge}{Edge to change. One of wxSASH\_TOP, wxSASH\_RIGHT, wxSASH\_BOTTOM, wxSASH\_LEFT.}
\docparam{visible}{TRUE to make the sash visible, FALSE to make it invisible.}
\wxheading{See also}
\helpref{wxSashWindow::GetSashVisible}{wxsashwindowgetsashvisible}
// Set whether there's a border in this position
inline void SetSashBorder(wxSashEdgePosition edge, bool border) { m_sashes[edge].m_border = border; }
\membersection{wxSashWindow::SetSashBorder}\label{wxsashwindowsetsashborder}
\func{void}{SetSashBorder}{\param{wxSashEdgePosition }{edge}, \param{bool}{ hasBorder}}
Call this function to give the sash a border, or remove the border.
\wxheading{Parameters}
\docparam{edge}{Edge to change. One of wxSASH\_TOP, wxSASH\_RIGHT, wxSASH\_BOTTOM, wxSASH\_LEFT.}
\docparam{hasBorder}{TRUE to give the sash a border visible, FALSE to remove it.}
\wxheading{See also}
\helpref{wxSashWindow::HashBorder}{wxsashwindowhasborder}

View File

@@ -1,155 +0,0 @@
% ----------------------------------------------------------------------------
% CLASS: wxSockAddress
% ----------------------------------------------------------------------------
\section{\class{wxSockAddress}}\label{wxsockaddress}
\wxheading{Derived from}
\helpref{wxObject}{wxobject}
{\bf Actually, you don't have to use these functions: only wxSocketBase use it.}
\wxheading{See also}
\helpref{wxSocketBase}{wxsocketbase}\\
\helpref{wxIPV4address}{wxipv4address}\\
\helpref{wxIPV6address}{wxipv6address}\\
\helpref{wxunixaddress}{wxunixaddress}
% ----------------------------------------------------------------------------
% Members
% ----------------------------------------------------------------------------
\latexignore{\rtfignore{\wxheading{Members}}}
%
% ctor/dtor
%
\membersection{wxSockAddress::wxSockAddress}
\func{}{wxSockAddress}{\void}
Default constructor.
\membersection{wxSockAddress::\destruct{wxSockAddress}}
\func{}{\destruct{wxSockAddress}}{\void}
Default destructor.
%
% Clear
%
\membersection{wxSockAddress::Clear}
\func{void}{Clear}{\void}
Delete all informations about the address.
%
% Build
%
\membersection{wxSockAddress::Build}
\func{void}{Build}{\param{struct sockaddr *\&}{ addr}, \param{size\_t\&}{ len}}
Build a coded socket address.
%
% Disassemble
%
\membersection{wxSockAddress::Disassemble}
\func{void}{Disassemble}{\param{struct sockaddr *}{addr}, \param{size\_t}{ len}}
Decode a socket address. {\bf Actually, you don't have to use this
function: only wxSocketBase use it.}
%
% SockAddrLen
%
\membersection{wxSockAddress::SockAddrLen}
\func{int}{SockAddrLen}{\void};
Returns the length of the socket address.
% ----------------------------------------------------------------------------
% CLASS: wxIPV4address
% ----------------------------------------------------------------------------
\section{\class{wxIPV4address}}\label{wxipv4address}
\wxheading{Derived from}
\helpref{wxSockAddress}{wxsockaddress}
% ----------------------------------------------------------------------------
% MEMBERS
% ----------------------------------------------------------------------------
\latexignore{\rtfignore{\wxheading{Members}}}
%
% Hostname
%
\membersection{wxIPV4address::Hostname}
\func{bool}{Hostname}{\param{const wxString\&}{ hostname}}
Use the specified {\it hostname} for the address.
\wxheading{Return value}
Returns FALSE if something bad happens (invalid hostname, invalid IP address).
%
% Hostname
%
\membersection{wxIPV4address::Hostname}
\func{wxString}{Hostname}{\void}
Returns the hostname which matches the IP address.
%
% Service
%
\membersection{wxIPV4address::Service}
\func{bool}{Service}{\param{const wxString\&}{ service}}
Use the specified {\it service} string for the address.
\wxheading{Return value}
Returns FALSE if something bad happens (invalid service).
%
% Service
%
\membersection{wxIPV4address::Service}
\func{bool}{Service}{\param{unsigned short}{ service}}
Use the specified {\it service} for the address.
\wxheading{Return value}
Returns FALSE if something bad happens (invalid service).
%
% Service
%
\membersection{wxIPV4address::Service}
\func{unsigned short}{Service}{\void}
Returns the current service.
%
% LocalHost
%
\membersection{wxIPV4address::LocalHost}
\func{bool}{LocalHost}{\void}
Initialize peer host to local host.
\wxheading{Return value}
Returns FALSE if something bad happens.

View File

@@ -12,6 +12,16 @@ events are received.
\helpref{wxEvtHandler}{wxevthandler}\\
\helpref{wxObject}{wxobject}
\wxheading{Window styles}
\twocolwidtha{5cm}
\begin{twocollist}\itemsep=0pt
\twocolitem{\windowstyle{wxSB\_HORIZONTAL}}{Specifies a horizontal scrollbar.}
\twocolitem{\windowstyle{wxSB\_VERTICAL}}{Specifies a vertical scrollbar.}
\end{twocollist}
See also \helpref{window styles overview}{windowstyles}.
\wxheading{Remarks}
A scrollbar has the following main attributes: {\it range}, {\it thumb size}, {\it page size}, and {\it position}.
@@ -35,16 +45,6 @@ be called initially, from an {\bf OnSize} event handler, and whenever the applic
changes in size. It will adjust the view, object and page size according
to the size of the window and the size of the data.
\wxheading{Window styles}
\twocolwidtha{5cm}
\begin{twocollist}\itemsep=0pt
\twocolitem{\windowstyle{wxSB\_HORIZONTAL}}{Specifies a horizontal scrollbar.}
\twocolitem{\windowstyle{wxSB\_VERTICAL}}{Specifies a vertical scrollbar.}
\end{twocollist}
See also \helpref{window styles overview}{windowstyles}.
\wxheading{Event handling}
To process input from a scrollbar, use one of these event handler macros to direct input to member
@@ -61,7 +61,7 @@ functions that take a \helpref{wxScrollEvent}{wxscrollevent} argument:
\twocolitem{{\bf EVT\_COMMAND\_PAGEDOWN(id, func)}}{Catch a page down command.}
\twocolitem{{\bf EVT\_COMMAND\_THUMBTRACK(id, func)}}{Catch a thumbtrack command (continuous movement of the scroll thumb).}
\end{twocollist}%
%
\wxheading{See also}
\helpref{Scrolling overview}{scrollingoverview},\rtfsp

View File

@@ -130,7 +130,8 @@ scrolling in that direction.
\wxheading{See also}
\helpref{wxScrolledWindow::SetScrollbars}{wxscrolledwindowsetscrollbars},\rtfsp
\helpref{wxScrolledWindow::GetVirtualSize}{wxscrolledwindowgetvirtualsize}
\helpref{wxScrolledWindow::GetVirtualSize}{wxscrolledwindowgetvirtualsize},\rtfsp
\helpref{wxWindow::GetScrollPage}{wxwindowgetscrollpage}
\membersection{wxScrolledWindow::GetVirtualSize}\label{wxscrolledwindowgetvirtualsize}
@@ -154,7 +155,8 @@ to translate these units to logical units.
\wxheading{See also}
\helpref{wxScrolledWindow::SetScrollbars}{wxscrolledwindowsetscrollbars},\rtfsp
\helpref{wxScrolledWindow::GetScrollPixelsPerUnit}{wxscrolledwindowgetscrollpixelsperunit}
\helpref{wxScrolledWindow::GetScrollPixelsPerUnit}{wxscrolledwindowgetscrollpixelsperunit},\rtfsp
\helpref{wxWindow::GetScrollPage}{wxwindowgetscrollpage}
\membersection{wxScrolledWindow::IsRetained}\label{wxscrolledwindowisretained}

View File

@@ -31,25 +31,6 @@ Slider events are handled in the same way as a scrollbar.
See also \helpref{window styles overview}{windowstyles}.
\wxheading{Event handling}
To process input from a slider, use one of these event handler macros to direct input to member
functions that take a \helpref{wxScrollEvent}{wxscrollevent} argument:
\twocolwidtha{7cm}
\begin{twocollist}
\twocolitem{{\bf EVT\_COMMAND\_SCROLL(id, func)}}{Catch all scroll commands.}
\twocolitem{{\bf EVT\_COMMAND\_TOP(id, func)}}{Catch a command to put the scroll thumb at the maximum position.}
\twocolitem{{\bf EVT\_COMMAND\_BOTTOM(id, func)}}{Catch a command to put the scroll thumb at the maximum position.}
\twocolitem{{\bf EVT\_COMMAND\_LINEUP(id, func)}}{Catch a line up command.}
\twocolitem{{\bf EVT\_COMMAND\_LINEDOWN(id, func)}}{Catch a line down command.}
\twocolitem{{\bf EVT\_COMMAND\_PAGEUP(id, func)}}{Catch a page up command.}
\twocolitem{{\bf EVT\_COMMAND\_PAGEDOWN(id, func)}}{Catch a page down command.}
\twocolitem{{\bf EVT\_COMMAND\_THUMBTRACK(id, func)}}{Catch a thumbtrack command (continuous movement of the scroll thumb).}
\twocolitem{{\bf EVT\_SLIDER(id, func)}}{Process a wxEVT\_COMMAND\_SLIDER\_UPDATED event,
when the slider is moved. Though provided for backward compatibility, this is obsolete.}
\end{twocollist}%
\wxheading{See also}
\helpref{Event handling overview}{eventhandlingoverview}, \helpref{wxScrollBar}{wxscrollbar}

View File

@@ -1,768 +0,0 @@
\section{\class{wxSocketBase}}\label{wxsocketbase}
\wxheading{Derived from}
\helpref{wxEvtHandler}{wxevthandler}
% ---------------------------------------------------------------------------
% Event handling
% ---------------------------------------------------------------------------
\wxheading{Event handling}
To process events from a socket, use the following event handler macro to direct
input to member
functions that take a \helpref{wxSocketEvent}{wxsocketevent} argument.
\twocolwidtha{7cm}%
\begin{twocollist}\itemsep=0pt
\twocolitem{{\bf EVT\_SOCKET(id, func)}}{A socket event occured.}
\end{twocollist}%
% ---------------------------------------------------------------------------
% See also ...
% ---------------------------------------------------------------------------
\wxheading{See also}
\helpref{wxSocketEvent}{wxsocketevent}, \helpref{wxSocketClient}{wxsocketclient}, \helpref{wxSocketServer}{wxsocketserver}
% ---------------------------------------------------------------------------
% Members
% ---------------------------------------------------------------------------
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxSocketBase::wxSocketBase}
\func{}{wxSocketBase}{\void}
Default constructor but don't use it, you must use \helpref{wxSocketClient}{wxsocketclient}
or \helpref{wxSocketServer}{wxsocketserver}.
\membersection{wxSocketBase::\destruct{wxSocketBase}}
\func{}{\destruct{wxSocketBase}}{\void}
Destroys the wxSocketBase object.
% ---------------------------------------------------------------------------
% State functions
% ---------------------------------------------------------------------------
\membersection{wxSocketBase::Ok}\label{wxsocketbaseok}
\constfunc{bool}{Ok}{\void}
Returns TRUE if the socket is initialized and ready and FALSE in other
cases.
\membersection{wxSocketBase::Error}\label{wxsocketbaseerror}
\constfunc{bool}{Error}{\void}
Returns TRUE if an error occured.
\membersection{wxSocketBase::IsConnected}\label{wxsocketbaseconnected}
\constfunc{bool}{IsConnected}{\void}
Returns TRUE if the socket is connected.
\membersection{wxSocketBase::IsData}\label{wxsocketbaseisdata}
\constfunc{bool}{IsData}{\void}
Returns TRUE if some data is arrived on the socket.
\membersection{wxSocketBase::IsDisconnected}\label{wxsocketbasedisconnected}
\constfunc{bool}{IsDisconnected}{\void}
Returns TRUE if the socket is disconnected.
\membersection{wxSocketBase::IsNoWait}\label{wxsocketbasenowait}
\constfunc{bool}{IsNoWait}{\void}
Returns TRUE if the socket mustn't wait.
\membersection{wxSocketBase::LastCount}\label{wxsocketbaselastcount}
\constfunc{size\_t}{LastCount}{\void}
Returns the number of bytes read or written by the last IO call.
\membersection{wxSocketBase::LastError}\label{wxsocketbaselasterror}
\constfunc{int}{LastError}{\void}
Returns an error in the errno format (see your C programmer's guide).
% ---------------------------------------------------------------------------
% IO calls
% ---------------------------------------------------------------------------
%
% Peek
%
\membersection{wxSocketBase::Peek}\label{wxsocketbasepeek}
\func{wxSocketBase\&}{Peek}{\param{char *}{ buffer}, \param{size\_t}{ nbytes}}
This function peeks a buffer of {\it nbytes} bytes from the socket. Peeking a buffer
doesn't delete it from the system socket in-queue.
\wxheading{Parameters}
\docparam{buffer}{Buffer where to put peeked data.}
\docparam{nbytes}{Number of bytes.}
\wxheading{Return value}
Returns a reference to the current object.
\wxheading{See also}
\helpref{wxSocketBase::Error}{wxsocketbaseerror},
\helpref{wxSocketBase::LastCount}{wxsocketbaselastcount},
\helpref{wxSocketBase::LastError}{wxsocketbaselasterror}
%
% Read
%
\membersection{wxSocketBase::Read}\label{wxsocketbaseread}
\func{wxSocketBase\&}{Read}{\param{char *}{ buffer}, \param{size\_t}{ nbytes}}
This function reads a buffer of {\it nbytes} bytes from the socket.
\wxheading{Parameters}
\docparam{buffer}{Buffer where to put read data.}
\docparam{nbytes}{Number of bytes.}
\wxheading{Return value}
Returns a reference to the current object.
\wxheading{See also}
\helpref{wxSocketBase::Error}{wxsocketbaseerror},
\helpref{wxSocketBase::LastCount}{wxsocketbaselastcount},
\helpref{wxSocketBase::LastError}{wxsocketbaselasterror}
\membersection{wxSocketBase::SetFlags}\label{wxsocketbasesetflags}
\func{void}{SetFlags}{\param{wxSockFlags}{ flags}}
TODO
%
% Read
%
\membersection{wxSocketBase::Write}\label{wxsocketbasewrite}
\func{wxSocketBase\&}{Write}{\param{const char *}{ buffer}, \param{size\_t}{ nbytes}}
This function writes a buffer of {\it nbytes} bytes from the socket.
\wxheading{Parameters}
\docparam{buffer}{Buffer where to get the data to write.}
\docparam{nbytes}{Number of bytes.}
\wxheading{Return value}
Returns a reference to the current object.
\wxheading{See also}
\helpref{wxSocketBase::Error}{wxsocketbaseerror},
\helpref{wxSocketBase::LastCount}{wxsocketbaselastcount},
\helpref{wxSocketBase::LastError}{wxsocketbaselasterror}
%
% WriteMsg
%
\membersection{wxSocketBase::WriteMsg}\label{wxsocketbasewritemsg}
\func{wxSocketBase\&}{WriteMsg}{\param{const char *}{ buffer}, \param{size\_t}{ nbytes}}
This function writes a buffer of {\it nbytes} bytes from the socket. But it
writes a short header before so that ReadMsg can alloc the right size for
the buffer. So a buffer sent with WriteMsg {\bf must} be read with ReadMsg.
\wxheading{Parameters}
\docparam{buffer}{Buffer where to put data peeked.}
\docparam{nbytes}{Number of bytes.}
\wxheading{Return value}
Returns a reference to the current object.
\wxheading{See also}
\helpref{wxSocketBase::Error}{wxsocketbaseerror},
\helpref{wxSocketBase::LastCount}{wxsocketbaselastcount},
\helpref{wxSocketBase::LastError}{wxsocketbaselasterror},
\helpref{wxSocketBase::ReadMsg}{wxsocketbasereadmsg}
%
% ReadMsg
%
\membersection{wxSocketBase::ReadMsg}\label{wxsocketbasereadmsg}
\func{wxSocketBase\&}{ReadMsg}{\param{char *}{ buffer}, \param{size\_t}{ nbytes}}
This function reads a buffer sent by WriteMsg on a socket. If the buffer passed
to the function isn't big enough, the function filled it and then discard the
bytes left. This function always wait for the buffer to be entirely filled.
\wxheading{Parameters}
\docparam{buffer}{Buffer where to put read data.}
\docparam{nbytes}{Number of bytes allocated for the buffer.}
\wxheading{Return value}
Returns a reference to the current object.
\wxheading{See also}
\helpref{wxSocketBase::Error}{wxsocketbaseerror},
\helpref{wxSocketBase::LastCount}{wxsocketbaselastcount},
\helpref{wxSocketBase::LastError}{wxsocketbaselasterror},
\helpref{wxSocketBase::WriteMsg}{wxsocketbasewritemsg}
%
% Unread
%
\membersection{wxSocketBase::UnRead}\label{wxsocketbaseunread}
\func{wxSocketBase\&}{UnRead}{\param{const char *}{ buffer}, \param{size\_t}{ nbytes}}
This function unreads a buffer. It means that the buffer is put in the top
of the incoming queue. But, it is put also at the end of all unread buffers.
It is useful for sockets because we can't seek it.
\wxheading{Parameters}
\docparam{buffer}{Buffer to be unread.}
\docparam{nbytes}{Number of bytes.}
\wxheading{Return value}
Returns a reference to the current object.
\wxheading{See also}
\helpref{wxSocketBase::Error}{wxsocketbaseerror},
\helpref{wxSocketBase::LastCount}{wxsocketbaselastcount},
\helpref{wxSocketBase::LastError}{wxsocketbaselasterror}
%
% Discard
%
\membersection{wxSocketBase::Discard}\label{wxsocketbasediscard}
\func{wxSocketBase\&}{Discard}{\void}
This function simply deletes all bytes in the incoming queue. This function
doesn't wait.
% ---------------------------------------------------------------------------
% Wait functions
% ---------------------------------------------------------------------------
\membersection{wxSocketBase::Wait}\label{wxsocketbasewait}
\func{bool}{Wait}{\param{long}{ seconds = -1}, \param{long}{ microsecond = 0}}
This function waits for an event: it could be an incoming byte, the possibility
for the client to write, a lost connection, an incoming connection, an
established connection.
\wxheading{Parameters}
\docparam{seconds}{Number of seconds to wait. By default, it waits infinitely.}
\docparam{microsecond}{Number of microseconds to wait.}
\wxheading{Return value}
Returns TRUE if an event occured, FALSE if the timeout was reached.
\wxheading{See also}
\helpref{wxSocketBase::WaitForRead}{wxsocketbasewaitforread},
\helpref{wxSocketBase::WaitForWrite}{wxsocketbasewaitforwrite},
\helpref{wxSocketBase::WaitForLost}{wxsocketbasewaitforlost}
%
% WaitForRead
%
\membersection{wxSocketBase::WaitForRead}\label{wxsocketbasewaitforread}
\func{bool}{WaitForRead}{\param{long}{ seconds = -1}, \param{long}{ microsecond = 0}}
This function waits for a read event.
\wxheading{Parameters}
\docparam{seconds}{Number of seconds to wait. By default, it waits infinitely.}
\docparam{microsecond}{Number of microseconds to wait.}
\wxheading{Return value}
Returns TRUE if a byte arrived, FALSE if the timeout was reached.
\wxheading{See also}
\helpref{wxSocketBase::Wait}{wxsocketbasewait},
\helpref{wxSocketBase::WaitForWrite}{wxsocketbasewaitforwrite},
\helpref{wxSocketBase::WaitForLost}{wxsocketbasewaitforlost}
%
% WaitForWrite
%
\membersection{wxSocketBase::WaitForWrite}\label{wxsocketbasewaitforwrite}
\func{bool}{WaitForWrite}{\param{long}{ seconds = -1}, \param{long}{ microsecond = 0}}
This function waits for a write event.
\wxheading{Parameters}
\docparam{seconds}{Number of seconds to wait. By default, it waits infinitely.}
\docparam{microsecond}{Number of microseconds to wait.}
\wxheading{Return value}
Returns TRUE if a write event occured, FALSE if the timeout was reached.
\wxheading{See also}
\helpref{wxSocketBase::Wait}{wxsocketbasewait},
\helpref{wxSocketBase::WaitForRead}{wxsocketbasewaitforread},
\helpref{wxSocketBase::WaitForLost}{wxsocketbasewaitforlost}
%
% WaitForLost
%
\membersection{wxSocketBase::WaitForLost}\label{wxsocketbasewaitforlost}
\func{bool}{Wait}{\param{long}{ seconds = -1}, \param{long}{ microsecond = 0}}
This function waits for a "lost" event. For instance, the peer may have closed
the connection, or the connection may have been broken.
\wxheading{Parameters}
\docparam{seconds}{Number of seconds to wait. By default, it waits infinitely.}
\docparam{microsecond}{Number of microseconds to wait.}
\wxheading{Return value}
Returns TRUE if a "lost" event occured, FALSE if the timeout was reached.
\wxheading{See also}
\helpref{wxSocketBase::WaitForRead}{wxsocketbasewaitforread},
\helpref{wxSocketBase::WaitForWrite}{wxsocketbasewaitforwrite},
\helpref{wxSocketBase::WaitForLost}{wxsocketbasewaitforlost}
%
% RestoreState
%
\membersection{wxSocketBase::RestoreState}\label{wxsocketbaserestorestate}
\func{void}{RestoreState}{\void}
This function restores a previously saved state.
\wxheading{See also}
\helpref{wxSocketBase::SaveState}{wxsocketbasesavestate}
% ---------------------------------------------------------------------------
% Socket state
% ---------------------------------------------------------------------------
%
% SaveState
%
\membersection{wxSocketBase::SaveState}\label{wxsocketbasesavestate}
\func{void}{SaveState}{\void}
This function saves the current state of the socket object in a stack:
actually it saves all flags and the state of the asynchronous callbacks.
\wxheading{See also}
\helpref{wxSocketBase::RestoreState}{wxsocketbaserestorestate}
% ---------------------------------------------------------------------------
% Socket callbacks
% ---------------------------------------------------------------------------
\membersection{wxSocketBase::SetEventHandler}\label{wxsocketbaseseteventhandler}
\func{void}{SetEventHandler}{\param{wxEvtHandler\&}{ evt\_hdlr}, \param{int}{ id = -1}}
Sets an event handler to be called when a socket event occured.
\wxheading{Parameters}
\docparam{evt\_hdlr}{Specifies the event handler you want to use.}
\docparam{id}{The id of socket event.}
\wxheading{See also}
\helpref{wxSocketEvent}{wxsocketevent}
% ---------------------------------------------------------------------------
% CLASS wxSocketClient
% ---------------------------------------------------------------------------
\section{\class{wxSocketClient}}\label{wxsocketclient}
\wxheading{Derived from}
\helpref{wxSocketBase}{wxsocketbase}
% ---------------------------------------------------------------------------
% Members
% ---------------------------------------------------------------------------
%
% wxSocketClient
%
\membersection{wxSocketClient::wxSocketClient}
\func{}{wxSocketClient}{\param{wxSockFlags}{ flags = wxSocketBase::NONE}}
Constructs a new wxSocketClient.
{\bf Warning !} The created socket client needs to be registered to a socket handler (See \helpref{wxSocketHandler}{wxsockethandler}).
\wxheading{Parameters}
\docparam{flags}{Socket flags (See \helpref{wxSocketBase::SetFlags}{wxsocketbasesetflags})}
%
% ~wxSocketClient
%
\membersection{wxSocketClient::\destruct{wxSocketClient}}
\func{}{\destruct{wxSocketClient}}{\void}
Destructs a wxSocketClient object.
%
% Connect
%
\membersection{wxSocketClient::Connect}\label{wxsocketclientconnect}
\func{bool}{Connect}{\param{wxSockAddress\&}{ address}, \param{bool}{ wait = TRUE}}
Connects to a server using the specified address. If {\it wait} is TRUE, Connect
will wait for the socket ready to send or receive data.
\wxheading{Parameters}
\docparam{address}{Address of the server.}
\docparam{wait}{If true, waits for the connection to be ready.}
\wxheading{Return value}
Returns TRUE if the connection is established and no error occurs.
\wxheading{See also}
\helpref{wxSocketClient::WaitOnConnect}{wxsocketclientwaitonconnect}
%
% WaitOnConnect
%
\membersection{wxSocketClient::WaitOnConnect}\label{wxsocketclientwaitonconnect}
\func{bool}{WaitOnConnect}{\param{long}{ seconds = -1}, \param{long}{ microseconds = 0}}
Wait for a "connect" event.
\wxheading{See also}
\helpref{wxSocketBase::Wait}{wxsocketbasewait} for a detailed description.
% ---------------------------------------------------------------------------
% CLASS: wxSocketEvent
% ---------------------------------------------------------------------------
\section{\class{wxSocketEvent}}\label{wxsocketevent}
This event class contains information about socket events.
\wxheading{Derived from}
\helpref{wxEvent}{wxevent}
\wxheading{Event table macros}
To process a socket event, use these event handler macros to direct input to member
functions that take a wxSocketEvent argument.
\twocolwidtha{7cm}
\begin{twocollist}\itemsep=0pt
\twocolitem{{\bf EVT\_SOCKET(id, func)}}{Process a socket event, supplying the member function.}
\end{twocollist}%
\wxheading{See also}
\helpref{wxSocketHandler}{wxsockethandler},\rtfsp
\helpref{wxSocketBase}{wxsocketbase},\rtfsp
\helpref{wxSocketClient}{wxsocketclient},\rtfsp
\helpref{wxSocketServer}{wxsocketserver}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxSocketEvent::wxSocketEvent}
\func{}{wxSocketEvent}{\param{int}{ id = 0}}
Constructor.
\membersection{wxSocketEvent::SocketEvent}\label{wxsocketeventsocketevent}
\constfunc{wxSocketBase::wxRequestEvent}{SocketEvent}{\void}
Returns the socket event type.
% ---------------------------------------------------------------------------
% CLASS: wxSocketHandler
% ---------------------------------------------------------------------------
\section{\class{wxSocketHandler}}\label{wxsockethandler}
\wxheading{Derived from}
\helpref{wxObject}{wxobject}
% ---------------------------------------------------------------------------
% Members
% ---------------------------------------------------------------------------
\latexignore{\rtfignore{\wxheading{Members}}}
%
% wxSocketHandler
%
\membersection{wxSocketHandler::wxSocketHandler}
\func{}{wxSocketHandler}{\void}
Constructs a new wxSocketHandler.
It is advised to use \helpref{wxSocketHandler::Master}{wxsockethandlermaster} to
get a socket handler. But creating a socket handler is useful to group
many sockets.
%
% ~wxSocketHandler
%
\membersection{wxSocketHandler::\destruct{wxSocketHandler}}
\func{}{\destruct{wxSocketHandler}}{\void}
Destructs a wxSocketHandler object.
%
% Register
%
\membersection{wxSocketHandler::Register}
\func{void}{Register}{\param{wxSocketBase *}{socket}}
Register a socket: if it is already registered in this handler it will just
return immediately.
\wxheading{Parameters}
\docparam{socket}{Socket to be registered.}
%
% UnRegister
%
\membersection{wxSocketHandler::UnRegister}
\func{void}{UnRegister}{\param{wxSocketBase *}{socket}}
UnRegister a socket: if it isn't registered in this handler it will just
return.
\wxheading{Parameters}
\docparam{socket}{Socket to be unregistered.}
%
% Count
%
\membersection{wxSocketHandler::Count}
\constfunc{unsigned long}{Count}{\void}
Returns the number of sockets registered in the handler.
\wxheading{Return value}
Number of sockets registered.
%
% CreateServer
%
\membersection{wxSocketHandler::CreateServer}
\func{wxSocketServer *}{CreateServer}{\param{wxSockAddress\&}{ address}, \param{wxSocketBase::wxSockFlags}{ flags = wxSocketbase::NONE}}
Creates a new wxSocketServer object. The object is automatically registered
to the current socket handler.
For a detailed description of the parameters, see \helpref{wxSocketServer::wxSocketServer}{wxsocketserverconstr}.
\wxheading{Return value}
Returns a new socket server.
%
% CreateClient
%
\membersection{wxSocketHandler::CreateClient}
\func{wxSocketServer *}{CreateClient}{\param{wxSocketBase::wxSockFlags}{ flags = wxSocketbase::NONE}}
Creates a new wxSocketClient object. The object is automatically registered
to the current socket handler.
For a detailed description of the parameters, see \helpref{wxSocketClient::Connect}{wxsocketclientconnect}.
\wxheading{Return value}
Returns a new socket client.
%
% Master
%
\membersection{wxSocketHandler::Master}\label{wxsockethandlermaster}
\func{static wxSocketHandler\&}{Master}{\void}
Returns a default socket handler.
%
% Wait
%
\membersection{wxSocketHandler::Wait}
\func{int}{Wait}{\param{long}{ seconds},\param{long}{ microseconds}}
Wait for an event on all registered sockets.
\wxheading{Parameters}
\docparam{seconds}{Number of seconds to wait. By default, it waits infinitely.}
\docparam{microsecond}{Number of microseconds to wait.}
\wxheading{Return value}
Returns 0 if a timeout occured, else the number of events detected.
\wxheading{See also}
\helpref{wxSocketBase::Wait}{wxsocketbasewait}
%
% YieldSock
%
\membersection{wxSocketHandler::YieldSock}
\func{void}{YieldSock}{\void}
Execute pending requests in all registered sockets.
% ---------------------------------------------------------------------------
% CLASS: wxSocketServer
% ---------------------------------------------------------------------------
\section{\class{wxSocketServer}}\label{wxsocketserver}
\wxheading{Derived from}
\helpref{wxSocketBase}{wxsocketbase}
% ---------------------------------------------------------------------------
% Members
% ---------------------------------------------------------------------------
\latexignore{\rtfignore{\wxheading{Members}}}
%
% wxSocketServer
%
\membersection{wxSocketServer::wxSocketServer}\label{wxsocketserverconstr}
\func{}{wxSocketServer}{\param{wxSockAddress\&}{ address}, \param{wxSockFlags}{ flags = wxSocketBase::NONE}}
Constructs a new wxSocketServer.
{\bf Warning !} The created object needs to be registered to a socket handler
(see \helpref{wxSocketHandler}{wxsockethandler}).
\wxheading{Parameters}
\docparam{address}{Specifies the local address for the server (e.g. port number).}
\docparam{flags}{Socket flags (See \helpref{wxSocketBase::SetFlags}{wxsocketbasesetflags})}
%
% ~wxSocketServer
%
\membersection{wxSocketServer::\destruct{wxSocketServer}}
\func{}{\destruct{wxSocketServer}}{\void}
Destructs a wxSocketServer object (it doesn't close the accepted connection).
%
% Accept
%
\membersection{wxSocketServer::Accept}
\func{wxSocketBase *}{Accept}{\void}
Creates a new object wxSocketBase and accepts an incoming connection. {\bf Warning !} This function will block the GUI.
\wxheading{Return value}
Returns an opened socket connection.
\wxheading{See also}
\helpref{wxSocketServer::AcceptWith}{wxsocketserveracceptwith}
%
% AcceptWith
%
\membersection{wxSocketServer::AcceptWith}\label{wxsocketserveracceptwith}
\func{bool}{AcceptWith}{\param{wxSocketBase\&}{ socket}}
Accept an incoming connection using the specified socket object.
This is useful when someone wants to inherit wxSocketBase.
\wxheading{Parameters}
\docparam{socket}{Socket to be initialized}
\wxheading{Return value}
Returns TRUE if no error occurs, else FALSE.

View File

@@ -143,7 +143,7 @@ This should be called if you wish to initially view only a single pane in the sp
\wxheading{See also}
\helpref{wxSplitterWindow::SplitVertically}{wxsplitterwindowsplitvertically},\rtfsp
\helpref{wxSplitterWindow::SplitHorizontally}{wxsplitterwindowsplithorizontally}
\helpref{wxSplitterWindow::SplitHorizontally}{wxsplitterwindowsplithorizontally}.
\membersection{wxSplitterWindow::IsSplit}\label{wxsplitterwindowissplit}
@@ -189,25 +189,9 @@ programmatically or using the wxSplitterWindow user interface.
The default implementation of this function simply hides {\it removed}. You
may wish to delete the window.
\membersection{wxSplitterWindow::OnSashPositionChange}\label{wxsplitterwindowonsashpositionchange}
\func{virtual bool}{OnSashPositionChange}{\param{int }{newSashPosition}}
Application-overridable function called when the sash position is changed by
user. It may return FALSE to prevent the change or TRUE to allow it.
\wxheading{Parameters}
\docparam{newSashPosition}{The new sash position (always positive or zero)}
\wxheading{Remarks}
The default implementation of this function verifies that the sizes of both
panes of the splitter are greater than minimum pane size.
\wxheading{See also}
\helpref{wxSplitterWindow::GetMinimumPaneSize}{wxsplitterwindowgetminimumpanesize}
\helpref{wxSplitterWindow::Unsplit}{wxsplitterwindowunsplit}
\membersection{wxSplitterWindow::SetSashPosition}\label{wxsplitterwindowsetsashposition}
@@ -271,7 +255,7 @@ Only sets the internal variable; does not update the display.
\membersection{wxSplitterWindow::SplitHorizontally}\label{wxsplitterwindowsplithorizontally}
\func{bool}{SplitHorizontally}{\param{wxWindow* }{window1}, \param{wxWindow* }{window2},
\param{int}{ sashPosition = 0}}
\param{int}{ sashPosition = -1}}
Initializes the top and bottom panes of the splitter window.
@@ -281,10 +265,8 @@ Initializes the top and bottom panes of the splitter window.
\docparam{window2}{The bottom pane.}
\docparam{sashPosition}{The initial position of the sash. If this value is
positive, it specifies the size of the upper pane. If it's negative, it's
absolute value gives the size of the lower pane. Finally, specify 0 (default)
to choose the default position (half of the total window height).}
\docparam{sashPosition}{The initial position of the sash. If the value is -1, a default position
is chosen.}
\wxheading{Return value}
@@ -292,19 +274,18 @@ TRUE if successful, FALSE otherwise (the window was already split).
\wxheading{Remarks}
This should be called if you wish to initially view two panes. It can also be
called at any subsequent time, but the application should check that the
window is not currently split using \helpref{IsSplit}{wxsplitterwindowissplit}.
This should be called if you wish to initially view two panes. It can also be called at any subsequent time,
but the application should check that the window is not currently split using \helpref{IsSplit}{wxsplitterwindowissplit}.
\wxheading{See also}
\helpref{wxSplitterWindow::SplitVertically}{wxsplitterwindowsplitvertically}, \helpref{wxSplitterWindow::IsSplit}{wxsplitterwindowissplit},\rtfsp
\helpref{wxSplitterWindow::Unsplit}{wxsplitterwindowunsplit}
\helpref{wxSplitterWindow::Unsplit}{wxsplitterwindowunsplit}.
\membersection{wxSplitterWindow::SplitVertically}\label{wxsplitterwindowsplitvertically}
\func{bool}{SplitVertically}{\param{wxWindow* }{window1}, \param{wxWindow* }{window2},
\param{int}{ sashPosition = 0}}
\param{int}{ sashPosition = -1}}
Initializes the left and right panes of the splitter window.
@@ -314,10 +295,8 @@ Initializes the left and right panes of the splitter window.
\docparam{window2}{The right pane.}
\docparam{sashPosition}{The initial position of the sash. If this value is
positive, it specifies the size of the left pane. If it's negative, it's
absolute value gives the size of the right pane. Finally, specify 0 (default)
to choose the default position (half of the total window width).}
\docparam{sashPosition}{The initial position of the sash. If the value is -1, a default position
is chosen.}
\wxheading{Return value}

View File

@@ -10,11 +10,7 @@ be variable length according to the size of the window.
\wxheading{Window styles}
\twocolwidtha{5cm}
\begin{twocollist}\itemsep=0pt
\twocolitem{\windowstyle{wxSB\_SIZEGRIP}}{On Windows 95, displays a gripper at right-hand side of
the status bar.}
\end{twocollist}
There are no special styles for this window.
See also \helpref{window styles overview}{windowstyles}.

View File

@@ -39,12 +39,6 @@ Deletes string list, deallocating strings.
Adds string to list, allocating memory.
\membersection{wxStringList::Clear}
\func{void}{Clear}{\void}
Clears all strings from the list.
\membersection{wxStringList::Delete}
\func{void}{Delete}{\param{const wxString\& }{s}}

View File

@@ -11,8 +11,7 @@ This class represents a tab control, which manages multiple tabs.
\wxheading{See also}
\helpref{wxTabEvent}{wxtabevent}, \helpref{wxImageList}{wximagelist},\rtfsp
\helpref{wxNotebook}{wxnotebook}
\helpref{wxTabEvent}{wxtabevent}, \helpref{wxImageList}{wximagelist}
\latexignore{\rtfignore{\wxheading{Members}}}
@@ -118,7 +117,7 @@ Returns the string for the given tab.
\membersection{wxTabCtrl::GetRowCount}\label{wxtabctrlgetrowcount}
\constfunc{int}{GetRowCount}{\void}
\constfunc{bool}{GetRowCount}{\void}
Returns the number of rows in the tab control.
@@ -189,7 +188,7 @@ Sets the client data for a tab.
\func{bool}{SetItemImage}{\param{int}{ item}, \param{int }{image}}
Sets the image index for the given tab. {\it image} is an index into
the image list which was set with \helpref{wxTabCtrl::SetImageList}{wxtabctrlsetimagelist}.
the image list which was set with \helpref{wxTabCtrl::SetImageList}{setimagelist}.
\membersection{wxTabCtrl::SetImageList}\label{wxtabctrlsetimagelist}

View File

@@ -1,48 +0,0 @@
\section{Config classes overview}\label{wxconfigoverview}
Classes: \helpref{wxConfig}{wxconfigbase}
This overview briefly describes what the config classes are and what are the
for. All the details about how to use them may be found in the description of
the \helpref{wxConfigBase}{wxconfigbase} class and the documentation of the
file, registry and INI file based implementations mentions all the
features/limitations specific to each one of these versions.
The config classes provide a way to store some application configuration
information. They were especially designed for this usage and, although may
probably be used for many other things as well, should be limited to it. It
means that this information should be:
\begin{itemize}
\item{1.} Typed, i.e. strings or numbers for the moment. You can not store
binary data, for example.
\item{2.} Small. For instance, it is not recommended to use the Windows
registry for amounts of data more than a couple of kilobytes.
\item{3.} Not performance critical, neither from speed nor from memory
consumption point of view.
\end{itemize}
On the other hand, the provided features make them very useful for storing all
kind of small to medioum volumes of hierarchically organized heterogenous
data. In short, this is a place where you can conveniently stuff all your data
(numbers and strings) organizing it in a tree where you use the
filesystem-like paths to specify the location of a piece of data. In
particular, these classes were designed to be as easy to use as possible.
From another point of view, they provide an interface which hides the
differences between the Windows registry and the standard Unix text format
configuration files. Other (future) implementations of wxConfigBase might also
understand GTK ressource files or their analogues on the KDE side.
In any case, each implementation of wxConfigBase does its best (although due
to the limitations of the underlying physical storage as in the case of
wxIniConfigs it may not implement 100\% of the base class functionality) to
make the data look the same way everywhere. So you have the groups of entries
and the entries themselves. Each entry contains either a string or a number
(or a boolean value... support for other types of data such as dates or
timestamps is planned) and is identified by the full path to it: something
like /MyApp/UserPreferences/Colors/Foreground. The previous elements in the
path are the group names, each name may contain an arbitrary number of entries
and subgroups. The path components are {\bf always} separated with a slash,
even though some implementations use the backslash internally. The further
details (including how to read/write these entries) may be found in
\helpref{wxConfigBase}{wxconfigbase} documentation.

View File

@@ -1,84 +1,56 @@
\section{Debugging overview}\label{debuggingoverview}
Classes, functions and macros: \helpref{wxDebugContext}{wxdebugcontext}, \helpref{wxObject}{wxobject}, \helpref{wxLog}{wxlog},
\rtfsp\helpref{Log functions}{logfunctions}, \helpref{Debug macros}{debugmacros}
Classes: \helpref{wxDebugContext}{wxdebugcontext}, \helpref{wxDebugStreamBuf}{wxdebugstreambuf},
\rtfsp\helpref{wxObject}{wxobject}
Various classes, functions and macros are provided in wxWindows to help you debug
your application. Most of these are only available if you compile both wxWindows,
your application and {\it all} libraries that use wxWindows with the \_\_WXDEBUG\_\_ symbol
defined. You can also test the \_\_WXDEBUG\_\_ symbol in your own applications to execute
code that should be active only in debug mode.
your application and {\it all} libraries that use wxWindows with the DEBUG flag
set to 1 or more.
\wxheading{wxDebugContext}
\helpref{wxDebugContext}{wxdebugcontext} is a class that never gets instantiated, but ties together
various static functions and variables. It allows you to dump all objects to that stream, write statistics about object allocation, and
wxDebugContext is a class that never gets instantiated, but ties together
various functions and variables. It allows you to set the debugging stream, dump
all objects to that stream, write statistics about object allocation, and
check memory for errors.
It is good practice to define a \helpref{wxObject::Dump}{wxobjectdump} member function for each class you derive
from a wxWindows class, so that \helpref{wxDebugContext::Dump}{wxdebugcontextdump} can call it and
give valuable information about the state of the application.
You can use the \helpref{WXTRACE}{trace} macro to output debugging information in DEBUG mode;
it will be defined to nothing for non-debugging code.
If you have difficulty tracking down a memory leak, recompile
in debugging mode and call \helpref{wxDebugContext::Dump}{wxdebugcontextdump} and \helpref{wxDebugContext::PrintStatistics}{wxdebugcontextprintstatistics} at
appropriate places. They will tell you what objects have not yet been
deleted, and what kinds of object they are. In fact, in debug mode wxWindows will automatically
detect memory leaks when your application is about to exit, and if there are any leaks,
will give you information about the problem. (How much information depends on the operating system
and compiler -- some systems don't allow all memory logging to be enabled). See the
memcheck sample for example of usage.
It is good practice to define a Dump member function for each class you derive
from a wxWindows class, so that wxDebugContext::Dump can call it and
give valuable information about the state of the application.
For wxDebugContext to do its work, the {\it new} and {\it delete}\rtfsp
operators for wxObject have been redefined to store extra information
about dynamically allocated objects (but not statically declared
objects). This slows down a debugging version of an application, but can
find difficult-to-detect memory leaks (objects are not
in theory find difficult-to-detect memory leaks (objects are not
deallocated), overwrites (writing past the end of your object) and
underwrites (writing to memory in front of the object).
If debugging mode is on and the symbol wxUSE\_GLOBAL\_MEMORY\_OPERATORS is set
to 1 in setup.h, 'new' is defined to be:
If you have difficulty tracking down a memory leak, recompile
in debugging mode and call wxDebugContext::Dump and wxDebugContext::Statistics
at appropriate places. They will tell you what objects have not yet been
deleted, and what kinds of object they are.
If you use the macro WXDEBUG\_NEW instead of the normal 'new', the debugging
output (and error messages reporting memory problems) will also tell you what
file and on what line you allocated the object.
To avoid the need for replacing existing new operators with WXDEBUG\_NEW, you
can write this at the top of each application file:
{\small
\begin{verbatim}
#define new new(__FILE__,__LINE__)
#define new WXDEBUG\_NEW
\end{verbatim}
}%
All occurrences of 'new' in wxWindows and your own application will use
the overridden form of the operator with two extra arguments. This means that the debugging
output (and error messages reporting memory problems) will tell you what
file and on what line you allocated the object. Unfortunately not all
compilers allow this definition to work properly, but most do.
\wxheading{Debug macros}
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.
\helpref{wxASSERT}{wxassert} is used to pop up an error message box when a condition
is not true. You can also use \helpref{wxASSERT\_MSG}{wxassertmsg} to supply your
own helpful error message. For example:
{\small
\begin{verbatim}
void MyClass::MyFunction(wxObject* object)
{
wxASSERT_MSG( (object != NULL), "object should not be NULL in MyFunction!" );
...
};
\end{verbatim}
}
The message box allows you to continue execution or abort the program. If you are running
the application inside a debugger, you will be able to see exactly where the problem was.
\wxheading{Logging functions}
You can use the \helpref{wxLogDebug}{wxlogdebug} and \helpref{wxLogTrace}{wxlogtrace} functions to output debugging information in debug mode;
it will do nothing for non-debugging code.
In non-debugging mode, this will revert to the usual interpretation
of new. Note that for this not to mess up new-based allocation of non-wxObject derived classes and
built-in types, there are global definitions of new and delete which match
the syntax required for storing filename and line numbers. These merely
call malloc and free, and so do not do anything interesting. The definitions
may possibly cause multiple symbol problems for some compilers and so might
need to be omitted by setting the USE\_GLOBAL\_MEMORY\_OPERATORS to 0 in wx\_setup.h
\subsection{wxDebugContext overview}\label{wxdebugcontextoverview}
@@ -87,7 +59,8 @@ it will do nothing for non-debugging code.
Class: \helpref{wxDebugContext}{wxdebugcontext}
wxDebugContext is a class for performing various debugging and memory tracing
operations.
operations. wxDebugContext, and the related macros and function WXTRACE and
wxTrace, are only present if USE\_DEBUG\_CONTEXT is used.
This class has only static data and function members, and there should be
no instances. Probably the most useful members are SetFile (for directing output
@@ -97,26 +70,35 @@ Dump (for dumping the dynamically allocated objects) and PrintStatistics
Check to check memory blocks for integrity.
Here's an example of use. The SetCheckpoint ensures that only the
allocations done after the checkpoint will be dumped.
allocations done after the checkpoint will be dumped. Unfortunately
the define of new to WXDEBUG\_NEW does not work for Borland C++ (and
perhaps other compilers) because it fails to find the correct overloaded
operator for non-object usage of new. Instead, you need to use WXDEBUG\_NEW
explicitly if there are any examples of non-object new usage in the file.
\begin{verbatim}
#define new WXDEBUG_NEW
wxDebugContext::SetCheckpoint();
wxDebugContext::SetFile("c:\\temp\\debug.log");
wxString *thing = new wxString;
// Proves that defining 'new' to be 'WXDEBUG_NEW' doesn't mess up
// non-object allocation. Doesn't work for Borland C++.
char *ordinaryNonObject = new char[1000];
wxDebugContext::Dump();
wxDebugContext::PrintStatistics();
\end{verbatim}
You can use wxDebugContext if \_\_WXDEBUG\_\_ is defined, or you can use it
at any other time (if wxUSE\_DEBUG\_CONTEXT is set to 1 in setup.h). It is not disabled
in non-debug mode because you may not wish to recompile wxWindows and your entire application
just to make use of the error logging facility.
Note: wxDebugContext::SetFile has a problem at present, so use the default stream instead.
Eventually the logging will be done through the wxLog facilities instead.
You can use wxDebugContext if DEBUG is 1 or more, or you can use it
at any other time (if USE\_DEBUG\_CONTEXT is 1). It is not disabled
for DEBUG = 1 (as in earlier versions of wxWindows) because you
may not wish to recompile wxWindows and your entire application
just to make use of the error logging facility. This is especially
true in a Windows NT or Windows 95 environment, where you cannot
easily output to a debug window: wxDebugContext can be used to
write to log files instead.

View File

@@ -2,7 +2,6 @@
Classes: \helpref{wxDocument}{wxdocument}, \helpref{wxView}{wxview}, \helpref{wxDocTemplate}{wxdoctemplate},\rtfsp
\helpref{wxDocManager}{wxdocmanager}, \helpref{wxDocParentFrame}{wxdocparentframe}, \helpref{wxDocChildFrame}{wxdocchildframe},
\rtfsp\helpref{wxDocMDIParentFrame}{wxdocmdiparentframe}, \helpref{wxDocMDIChildFrame}{wxdocmdichildframe},
\rtfsp\helpref{wxCommand}{wxcommand}, \helpref{wxCommandProcessor}{wxcommandprocessor}
The document/view framework is found in most application frameworks, because it
@@ -255,28 +254,42 @@ the file history, that will be used for appending the filenames. They are
appended using menu identifiers in the range wxID\_FILE1 to wxID\_FILE9.
In order to respond to a file load command from one of these identifiers,
you need to handle them using an event handler, for example:
you need to handle them in your wxFrame::OnMenuCommand. Below is the
code used by the default document/view parent frame.
{\small
\begin{verbatim}
BEGIN_EVENT_TABLE(wxDocParentFrame, wxFrame)
EVT_MENU(wxID_EXIT, wxDocParentFrame::OnExit)
EVT_MENU_RANGE(wxID_FILE1, wxID_FILE9, wxDocParentFrame::OnMRUFile)
END_EVENT_TABLE()
void wxDocParentFrame::OnExit(wxCommandEvent& WXUNUSED(event))
void wxDocParentFrame::OnMenuCommand(int id)
{
Close();
}
void wxDocParentFrame::OnMRUFile(wxCommandEvent& event)
{
wxString f(m_docManager->GetHistoryFile(event.GetSelection() - wxID_FILE1));
if (f != "")
(void)m_docManager->CreateDocument(f, wxDOC_SILENT);
switch (id)
{
case wxID_EXIT:
{
if (GetEventHandler()->OnClose())
delete this;
break;
}
case wxID_FILE1:
case wxID_FILE2:
case wxID_FILE3:
case wxID_FILE4:
case wxID_FILE5:
case wxID_FILE6:
case wxID_FILE7:
case wxID_FILE8:
case wxID_FILE9:
{
char *f = docManager->GetHistoryFile(id-wxID_FILE1);
if (f)
(void)docManager->CreateDocument(f, wxDOC_SILENT);
break;
}
default:
{
docManager->OnMenuCommand(id);
}
}
}
\end{verbatim}
}
\subsection{wxWindows predefined command identifiers}\label{predefinedids}

View File

@@ -290,9 +290,3 @@
\newcommand{\constfunc}[3]{{\bf #1} {\bf #2}(#3) {\bf const}\index{#2}}
\newcommand{\windowstyle}[1]{{\bf #1}\index{#1}}
\addtolength{\textwidth}{1in}
\addtolength{\oddsidemargin}{-0.5in}
\addtolength{\topmargin}{-0.5in}
\addtolength{\textheight}{1in}
\sloppy

View File

@@ -46,19 +46,6 @@ as the following:
If your compiler does not support derivation from {\bf streambuf} and gives a compile error, define the symbol {\bf NO\_TEXT\_WINDOW\_STREAM} in the
wxTextCtrl header file.
\wxheading{Event handling}
To process input from a text control, use these event handler macros to direct input to member
functions that take a \helpref{wxCommandEvent}{wxcommandevent} argument.
\twocolwidtha{7cm}%
\begin{twocollist}\itemsep=0pt
\twocolitem{{\bf EVT\_TEXT(id, func)}}{Respond to a wxEVT\_COMMAND\_TEXT\_UPDATED event,
generated when the text changes.}
\twocolitem{{\bf EVT\_TEXT\_ENTER(id, func)}}{Respond to a wxEVT\_COMMAND\_TEXT\_ENTER event,
generated when enter is pressed in a single-line text control.}
\end{twocollist}%
%\wxheading{See also}
%
%\helpref{wxRichTextCtrl}{wxrichtextctrl}

View File

@@ -38,8 +38,8 @@ These might override predefined event handlers such as \helpref{wxWindow::OnChar
\rtfsp\helpref{wxWindow::OnMouseEvent}{wxwindowonmouseevent}.
Most modern applications will have an on-line, hypertext help system; for this, you
need wxHelp and the \helpref{wxHelpController}{wxhelpcontroller} class to control
wxHelp. To add sparkle, you might use the wxToolBar class
need wxHelp and the \helpref{wxHelpControllerBase}{wxhelpcontrollerbase} class to control
wxHelp. To add sparkle, you might use the wxToolBar class (documented separately)
which makes heavy use of the \helpref{wxBitmap}{wxbitmap}.
GUI applications aren't all graphical wizardry. List and hash table needs are

View File

@@ -52,7 +52,7 @@ calling thread.
\func{wxThreadError}{Destroy}{\void}
Destroys the thread immediately unless the application has specified deferral via \helpref{wxThread::DeferDestroy}{wxthreaddeferdestroy}.
Destroys the thread immediately unless the application has specified deferral via \helpref{wxThread::DeferDestroy}{deferdestroy}.
\wxheading{Return value}
@@ -80,9 +80,9 @@ The following priorities are already defined:
\twocolwidtha{7cm}
\begin{twocollist}\itemsep=0pt
\twocolitem{{\bf WXTHREAD\_MIN\_PRIORITY}}{0}
\twocolitem{{\bf WXTHREAD\_DEFAULT\_PRIORITY}}{50}
\twocolitem{{\bf WXTHREAD\_MAX\_PRIORITY}}{100}
\twocolitem{{\bf WXTHREAD_MIN_PRIORITY}}{0}
\twocolitem{{\bf WXTHREAD_DEFAULT_PRIORITY}}{50}
\twocolitem{{\bf WXTHREAD_MAX_PRIORITY}}{100}
\end{twocollist}
\membersection{wxThread::IsAlive}\label{wxthreadisalive}
@@ -119,13 +119,8 @@ The following priorities are already defined:
\twocolwidtha{7cm}
\begin{twocollist}\itemsep=0pt
\twocolitem{{\bf WXTHREAD\_MIN\_PRIORITY}}{0}
\twocolitem{{\bf WXTHREAD\_DEFAULT\_PRIORITY}}{50}
\twocolitem{{\bf WXTHREAD\_MAX\_PRIORITY}}{100}
\twocolitem{{\bf WXTHREAD_MIN_PRIORITY}}{0}
\twocolitem{{\bf WXTHREAD_DEFAULT_PRIORITY}}{50}
\twocolitem{{\bf WXTHREAD_MAX_PRIORITY}}{100}
\end{twocollist}
%%% Local Variables:
%%% mode: latex
%%% TeX-master: "referenc"
%%% End:

View File

@@ -1,146 +0,0 @@
\section{Log classes overview}\label{wxlogoverview}
Classes: \helpref{wxLog}{wxlog}
%\helpref{wxLogStderr}{wxlogstderr},%
%\helpref{wxLogOstream}{wxlogostream}, \helpref{wxLogTextCtrl}{wxlogtextctrl},%
%\helpref{wxLogWindow}{wxlogwindow}, \helpref{wxLogGui}{wxloggui},%
%\helpref{wxLogNull}{wxlognull}%
This is a general overview of logging classes provided by wxWindows. The word
logging here has a broad sense, including all of the program output, not only
non interactive messages. The logging facilities included in wxWindows provide
the base {\it wxLog} class which defines the standard interface for a {\it log
target} as well as several standard implementations of it and a family of
functions to use with them.
First of all, no knowledge of {\it wxLog} classes is needed to use them. For
this, you should only know about {\it wxLogXXX()} functions. All of them have
the same syntax as {\it printf()}, i.e. they take the format string as the
first argument and a variable number of arguments. Here are all of them:
\begin{itemize}\itemsep=0pt
\item{\bf wxLogFatalError} which is like {\it wxLogError}, but also
terminates the program with the exit code 3 (using {\it abort()} standard
function also terminates the program with this exit code).
\item{\bf wxLogError} is the function to use for error messages, i.e. the
messages that must be shown to the user. The default processing is to pop up a
message box to inform the user about it.
\item{\bf wxLogWarning} for warnings - they are also normally shown to the
user, but don't interrupt the program work.
\item{\bf wxLogMessage} is for all normal, informational messages. They also
appear in a message box by default (but it can be changed, see below). Notice
that the standard behaviour is to not show informational messages if there are
any errors later - the logic being that the later error messages make the
informational messages preceding them meaningless.
\item{\bf wxLogVerbose} is for verbose output. Normally, it's suppressed, but
might be activated if the user wishes to know more details about the program
progress (another, but possibly confusing name for the same function is {\bf
wxLogInfo}).
\item{\bf wxLogStatus} is for status messages - they will go into the status
bar of the active or specified (as the first argument) \helpref{wxFrame}{wxframe} if it has one.
\item{\bf wxLogSysError} is mostly used by wxWindows itself, but might be
handy for logging errors after system call (API function) failure. It logs the
specified message text as well as the last system error
code ({\it errno} or {\it ::GetLastError()} depending on the platform) and the corresponding error
message. The second form of this function takes the error code explitly as the
first argument.
\item{\bf wxLogDebug} is {\bf the} right function for debug output. It only
does anything at all in the debug mode (when the preprocessor symbol
\_\_WXDEBUG\_\_ is defined) and expands to nothing in release mode (otherwise).
\item{\bf wxLogTrace} as {\bf wxLogDebug} only does something in debug
build. The reason for making it a separate function from it is that usually
there are a lot of trace messages, so it might make sense to separate them
from other debug messages which would be flooded in them. Moreover, the second
version of this function takes a trace mask as the first argument which allows
to further restrict the amount of messages generated.
\end{itemize}
The usage of these functions should be fairly straightforward, however it may
be asked why not use the other logging facilities, such as C standard stdio
functions or C++ streams. The short answer is that they're all very good
generic mechanisms, but are not really adapted for wxWindows, while the log
classes are. Some of advantages in using wxWindows log functions are:
\begin{itemize}\itemsep=0pt
\item{\bf Portability} It's a common practice to use {\it printf()} statements or
cout/cerr C++ streams for writing out some (debug or otherwise) information.
Although it works just fine under Unix, these messages go strictly nowhere
under Windows where the stdout of GUI programs is not assigned to anything.
Thus, you might view {\it wxLogMessage()} as a simple substitute for {\it
printf()}.
\item{\bf Flexibility} The output of wxLog functions can be redirected or
suppressed entirely based on their importance, which is either impossible or
difficult to do with traditional methods. For example, only error messages, or
only error messages and warnings might be logged, filtering out all
informational messages.
\item{\bf Completeness} Usually, an error message should be presented to the user
when some operation fails. Let's take a quite simple but common case of a file
error: suppose that you're writing your data file on disk and there is not
enough space. The actual error might have been detected inside wxWindows code
(say, in {\it wxFile::Write}), so the calling function doesn't really know the
exact reason of the failure, it only knows that the data file couldn't be
written to the disk. However, as wxWindows uses {\it wxLogError()} in this
situation, the exact error code (and the corresponding error message) will be
given to the user together with "high level" message about data file writing
error.
\end{itemize}
After having enumerated all the functions which are normally used to log the
messages, and why would you want to use them we now describe how all this
works.
wxWindows has the notion of a {\it log target}: it's just a class deriving
from \helpref{wxLog}{wxlog}. As such, it implements the virtual functions of
the base class which are called when a message is logged. Only one log target
is {\it active} at any moment, this is the one used by \it{wxLogXXX()}
functions. The normal usage of a log object (i.e. object of a class derived
from wxLog) is to install it as the active target with a call to {\it
SetActiveTarget()} and it will be used automatically by all subsequent calls
to {\it wxLogXXX()} functions.
To create a new log target class you only need to derive it from wxLog and
implement one (or both) of {\it DoLog()} and {\it DoLogString()} in it. The
second one is enough if you're happy with the standard wxLog message
formatting (prepending "Error:" or "Warning:", timestamping \&c) but just want
to send the messages somewhere else. The first one may be overridden to do
whatever you want but you have to distinguish between the different message
types yourself.
There are some predefined classes deriving from wxLog and which might be
helpful to see how you can create a new log target class and, of course, may
also be used without any change. There are:
\begin{itemize}\itemsep=0pt
\item{\bf wxLogStderr} This class logs messages to a {\it FILE *}, using
stderr by default as its name suggests.
\item{\bf wxLogStream} This class has the same functionality as wxLogStderr,
but uses {\it ostream} and cerr instead of {\it FILE *} and stderr.
\item{\bf wxLogGui} This is the standard log target for wxWindows
applications (it's used by default if you don't do anything) and provides the
most reasonable handling of all types of messages for given platform.
\item{\bf wxLogWindow} This log target provides a "log console" which
collects all messages generated by the application and also passes them to the
previous active log target. The log window frame has a menu allowing user to
clear the log, close it completely or save all messages to file.
\item{\bf wxLogNull} The last log class is quite particular: it doesn't do
anything. The objects of this class may be instantiated to (temporarily)
suppress output of {\it wxLogXXX()} functions. As an example, trying to open a
non-existing file will usually provoke an error message, but if you for some
reason it's unwanted, just use this construction:
{\small
\begin{verbatim}
wxFile file;
// wxFile.Open() normally complains if file can't be opened, we don't want it
{
wxLogNull logNo;
if ( !file.Open("bar") )
... process error ourselves ...
} // ~wxLogNull called, old log sink restored
wxLogMessage("..."); // ok
\end{verbatim}
}
\end{itemize}

View File

@@ -1,23 +1,12 @@
\section{\class{wxToolBar}}\label{wxtoolbar}
\section{\class{wxToolBarBase}}\label{wxtoolbarbase}
The name wxToolBar is defined to be a synonym for one of the following classes:
\begin{itemize}\itemsep=0pt
\item {\bf wxToolBar95} The native Windows 95 toolbar. Used on Windows 95, NT 4 and above.
\item {\bf wxToolBarMSW} A Windows implementation. Used on 16-bit Windows.
\item {\bf wxToolBarGTK} The GTK toolbar.
\item {\bf wxToolBarSimple} A simple implementation, with scrolling.
Used on platforms with no native toolbar control, or where scrolling is required.
\end{itemize}
Note that the base class {\bf wxToolBarBase} defines
automatic scrolling management functionality which is identical
to \helpref{wxScrolledWindow}{wxscrolledwindow}, so please refer to this class also.
Not all toolbars support scrolling, but wxToolBarSimple does.
{\bf wxToolBarBase} is the base class for a number of toolbar classes. The most portable
one of these is the generic \helpref{wxToolBarSimple}{wxtoolbarsimple} class. {\bf wxToolBarBase} defines
automatic scrolling management functionality which is identical to \helpref{wxScrolledWindow}{wxscrolledwindow},
so please refer to this class also.
\wxheading{Derived from}
wxToolBarBase\\
\helpref{wxControl}{wxcontrol}\\
\helpref{wxWindow}{wxwindow}\\
\helpref{wxEvtHandler}{wxevthandler}\\
@@ -25,107 +14,58 @@ wxToolBarBase\\
\wxheading{Remarks}
You may also create a toolbar that is managed by the frame, by
calling \helpref{wxFrame::CreateToolBar}{wxframecreatetoolbar}.
Because there is a variety of toolbar classes, you may wish to choose which class
is best for your application on each platform, and define {\bf wxToolBar} appropriately. For example:
{\bf wxToolBar95:} Note that this toolbar paints tools to reflect user-selected colours.
The toolbar orientation must always be {\bf wxVERTICAL}.
\begin{verbatim}
#if WIN95
class wxToolBar: public wxToolBar95
#elif defined(wx_msw)
class wxToolBar: public wxToolBarMSW
#else
class wxToolBar: public wxToolBarSimple
#endif
{
};
\end{verbatim}
\wxheading{Window styles}
\twocolwidtha{5cm}
\begin{twocollist}\itemsep=0pt
\twocolitem{\windowstyle{wxTB\_FLAT}}{Gives the toolbar a flat look ('coolbar' or 'flatbar' style). Windows 95 only.}
\twocolitem{\windowstyle{wxTB\_HORIZONTAL}}{Specifies horizontal layout.}
\twocolitem{\windowstyle{wxTB\_VERTICAL}}{Specifies vertical layout (not available for the Windows 95
toolbar).}
\twocolitem{\windowstyle{wxTB\_3DBUTTONS}}{Gives wxToolBarSimple a mild 3D look to its buttons.}
\end{twocollist}
See also \helpref{window styles overview}{windowstyles}.
TODO: maybe change the confusing names: GetDefaultSize becomes GetToolBitmapSize, and
GetDefaultButtonSize becomes GetToolSize. Document SetRows for wxToolBar95, and make it
part of the base API?
\wxheading{Event handling}
The toolbar class emits menu commands in the same was that a frame menubar does,
so you can use one EVT\_MENU macro for both a menu item and a toolbar button.
The event handler functions take a wxCommandEvent argument. For most event macros,
the identifier of the tool is passed, but for EVT\_TOOL\_ENTER the toolbar
window is passed and the tool id is retrieved from the wxCommandEvent.
This is because the id may be -1 when the mouse moves off a tool, and -1 is not
allowed as an identifier in the event system.
Derive a new class from an existing toolbar class, and override appropriate virtual functions.
\twocolwidtha{7cm}
\begin{twocollist}\itemsep=0pt
\twocolitem{{\bf EVT\_TOOL(id, func)}}{Process a wxEVT\_COMMAND\_TOOL\_CLICKED event
(a synonym for wxEVT\_COMMAND\_MENU\_SELECTED). Pass the id of the tool.}
\twocolitem{{\bf EVT\_MENU(id, func)}}{The same as EVT\_TOOL.}
\twocolitem{{\bf EVT\_TOOL\_RANGE(id1, id2, func)}}{Process a wxEVT\_COMMAND\_TOOL\_CLICKED event
for a range id identifiers. Pass the ids of the tools.}
\twocolitem{{\bf EVT\_MENU\_RANGE(id1, id2, func)}}{The same as EVT\_TOOL\_RANGE.}
\twocolitem{{\bf EVT\_TOOL\_RCLICKED(id, func)}}{Process a wxEVT\_COMMAND\_TOOL\_RCLICKED event.
Pass the id of the tool.}
\twocolitem{{\bf EVT\_TOOL\_RCLICKED\_RANGE(id1, id2, func)}}{Process a wxEVT\_COMMAND\_TOOL\_RCLICKED event
for a range of ids. Pass the ids of the tools.}
\twocolitem{{\bf EVT\_TOOL\_ENTER(id, func)}}{Process a wxEVT\_COMMAND\_TOOL\_ENTER event.
Pass the id of the toolbar itself. The value of wxCommandEvent::GetSelection is the tool id, or -1 if the mouse cursor has moved off a tool.}
\end{twocollist}
TODO: make consistent with other event handling; have wxToolBarEvent and appropriate macros.
\wxheading{See also}
\overview{Toolbar overview}{wxtoolbaroverview},\rtfsp
\helpref{wxToolBarSimple}{wxtoolbarsimple},\rtfsp
\helpref{wxToolBarMSW}{wxtoolbarmsw},\rtfsp
\helpref{wxToolBar95}{wxtoolbar95},\rtfsp
\helpref{wxScrolledWindow}{wxscrolledwindow}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxToolBar::wxToolBar}\label{wxtoolbarconstr}
\membersection{wxToolBarBase::wxToolBarBase}\label{wxtoolbarbaseconstr}
\func{}{wxToolBar}{\void}
\func{}{wxToolBarBase}{\void}
Default constructor.
\func{}{wxToolBar}{\param{wxWindow*}{ parent}, \param{wxWindowID }{id},
\param{const wxPoint\& }{pos = wxDefaultPosition},
\param{const wxSize\& }{size = wxDefaultSize},
\param{long }{style = wxTB\_HORIZONTAL \pipe wxNO\_BORDER},
\param{const wxString\& }{name = wxPanelNameStr}}
%\wxheading{See also}
%
%\helpref{wxToolBarBase::Create}{wxtoolbarbasecreate}
%
\membersection{wxToolBarBase::\destruct{wxToolBarBase}}
Constructs a toolbar.
\wxheading{Parameters}
\docparam{parent}{Pointer to a parent window.}
\docparam{id}{Window identifier. If -1, will automatically create an identifier.}
\docparam{pos}{Window position. wxDefaultPosition is (-1, -1) which indicates that wxWindows
should generate a default position for the window. If using the wxWindow class directly, supply
an actual position.}
\docparam{size}{Window size. wxDefaultSize is (-1, -1) which indicates that wxWindows
should generate a default size for the window.}
\docparam{style}{Window style. See \helpref{wxToolBar}{wxtoolbar} for details.}
\docparam{name}{Window name.}
\wxheading{Remarks}
After a toolbar is created, you use \helpref{wxToolBar::AddTool}{wxtoolbaraddtool} and
perhaps \helpref{wxToolBar::AddSeparator}{wxtoolbaraddseparator}, and then you
must call \helpref{wxToolBar::Realize}{wxtoolbarrealize} to construct and display the toolbar
tools.
You may also create a toolbar that is managed by the frame, by
calling \helpref{wxFrame::CreateToolBar}{wxframecreatetoolbar}.
\membersection{wxToolBar::\destruct{wxToolBar}}
\func{void}{\destruct{wxToolBar}}{\void}
\func{void}{\destruct{wxToolBarBase}}{\void}
Toolbar destructor.
\membersection{wxToolBar::AddSeparator}\label{wxtoolbaraddseparator}
\membersection{wxToolBarBase::AddSeparator}\label{wxtoolbarbaseaddseparator}
\func{void}{AddSeparator}{\void}
@@ -133,14 +73,14 @@ Adds a separator for spacing groups of tools.
\wxheading{See also}
\helpref{wxToolBar::AddTool}{wxtoolbaraddtool}, \helpref{wxToolBar::SetToolSeparation}{wxtoolbarsettoolseparation}
\helpref{wxToolBarBase::AddTool}{wxtoolbarbaseaddtool}, \helpref{wxToolBarBase::SetToolSeparation}{wxtoolbarbasesettoolseparation}
\membersection{wxToolBar::AddTool}\label{wxtoolbaraddtool}
\membersection{wxToolBarBase::AddTool}\label{wxtoolbarbaseaddtool}
\func{wxToolBarTool*}{AddTool}{\param{int}{ toolIndex}, \param{const wxBitmap\&}{ bitmap1},\rtfsp
\param{const wxBitmap\&}{ bitmap2 = wxNullBitmap}, \param{bool}{ isToggle = FALSE},\rtfsp
\param{long}{ xPos = -1}, \param{long}{ yPos = -1},\rtfsp
\param{wxObject* }{clientData = NULL}, \param{const wxString\& }{shortHelpString = ""}, \param{const wxString\& }{longHelpString = ""}}
\func{wxToolBarBaseTool*}{AddTool}{\param{int}{ toolIndex}, \param{const wxBitmap\&}{ bitmap1},\rtfsp
\param{const wxBitmap\&}{ bitmap2 = (wxBitmap *)NULL}, \param{const bool}{ isToggle = FALSE},\rtfsp
\param{const float}{ xPos = -1}, \param{const float}{ yPos = -1},\rtfsp
\param{wxObject *}{clientData = NULL}, \param{const wxString\& }{shortHelpString = ""}, \param{const wxString\& }{longHelpString = ""}}
Adds a tool to the toolbar.
@@ -166,7 +106,7 @@ wxBitmap object.}
\docparam{yPos}{Specifies the y position of the tool if automatic layout is not suitable.}
\docparam{clientData}{An optional pointer to client data which can be
retrieved later using \helpref{wxToolBar::GetToolClientData}{wxtoolbargettoolclientdata}.}
retrieved later using \helpref{wxToolBarBase::GetToolClientData}{wxtoolbarbasegettoolclientdata}.}
\docparam{shortHelpString}{Used for displaying a tooltip for the tool in the
Windows 95 implementation of wxButtonBar. Pass the empty string if this is not required.}
@@ -174,31 +114,29 @@ Windows 95 implementation of wxButtonBar. Pass the empty string if this is not r
\docparam{longHelpString}{Used to displayer longer help, such as status line help.
Pass the empty string if this is not required.}
\wxheading{Remarks}
After you have added tools to a toolbar, you must call \helpref{wxToolBar::Realize}{wxtoolbarrealize} in
order to have the tools appear.
\wxheading{See also}
\helpref{wxToolBar::AddSeparator}{wxtoolbaraddseparator},
\helpref{wxToolBar::Realize}{wxtoolbarrealize},
\helpref{wxToolBarBase::AddSeparator}{wxtoolbarbaseaddseparator}
\membersection{wxToolBar::CreateTools}\label{wxtoolbarcreatetools}
\membersection{wxToolBarBase::CreateTools}\label{wxtoolbarbasecreatetools}
\func{bool}{CreateTools}{\void}
This function is implemented for some toolbar classes to create the tools and display them.
The portable way of calling it is to call \helpref{wxToolBar::Realize}{wxtoolbarrealize} after
you have added tools and separators.
Call this function after all tools have been added to the toolbar, to actually
create the tools.
\wxheading{Remarks}
Strictly speaking, this is required only for the Windows 95 version of wxButtonBar,
but for portability it should be called anyway.
\wxheading{See also}
\helpref{wxToolBar::AddTool}{wxtoolbaraddtool}, \helpref{wxToolBar::Realize}{wxtoolbarrealize}
\helpref{wxToolBarBase::AddTool}{wxtoolbarbaseaddtool}
\membersection{wxToolBar::DrawTool}\label{wxtoolbardrawtool}
\membersection{wxToolBarBase::DrawTool}\label{wxtoolbarbasedrawtool}
\func{void}{DrawTool}{\param{wxMemoryDC\& }{memDC}, \param{wxToolBarTool* }{tool}}
\func{void}{DrawTool}{\param{wxMemoryDC\& }{memDC}, \param{wxToolBarBaseTool* }{tool}}
Draws the specified tool onto the window using the given memory device context.
@@ -212,7 +150,7 @@ Draws the specified tool onto the window using the given memory device context.
For internal use only.
\membersection{wxToolBar::EnableTool}\label{wxtoolbarenabletool}
\membersection{wxToolBarBase::EnableTool}\label{wxtoolbarbaseenabletool}
\func{void}{EnableTool}{\param{int }{toolIndex}, \param{const bool}{ enable}}
@@ -226,18 +164,18 @@ Enables or disables the tool.
\wxheading{Remarks}
For wxToolBarSimple, does nothing. Some other implementations
For \helpref{wxToolBarSimple}{wxtoolbarsimple}, does nothing. Some other implementations
will change the visible state of the tool to indicate that it is disabled.
\wxheading{See also}
\helpref{wxToolBar::GetToolEnabled}{wxtoolbargettoolenabled},\rtfsp
%\helpref{wxToolBar::SetToolState}{wxtoolbarsettoolstate},\rtfsp
\helpref{wxToolBar::ToggleTool}{wxtoolbartoggletool}
\helpref{wxToolBarBase::GetToolEnabled}{wxtoolbarbasegettoolenabled},\rtfsp
%\helpref{wxToolBarBase::SetToolState}{wxtoolbarbasesettoolstate},\rtfsp
\helpref{wxToolBarBase::ToggleTool}{wxtoolbarbasetoggletool}
\membersection{wxToolBar::FindToolForPosition}\label{wxtoolbarfindtoolforposition}
\membersection{wxToolBarBase::FindToolForPosition}\label{wxtoolbarbasefindtoolforposition}
\constfunc{wxToolBarTool*}{FindToolForPosition}{\param{const float}{ x}, \param{const float}{ y}}
\constfunc{wxToolBarBaseTool*}{FindToolForPosition}{\param{const float}{ x}, \param{const float}{ y}}
Finds a tool for the given mouse position.
@@ -255,35 +193,35 @@ A pointer to a tool if a tool is found, or NULL otherwise.
Used internally, and should not need to be used by the programmer.
\membersection{wxToolBar::GetToolSize}\label{wxtoolbargettoolsize}
\membersection{wxToolBarBase::GetDefaultButtonSize}\label{wxtoolbarbasegetdefaultbuttonsize}
\func{wxSize}{GetToolSize}{\void}
\func{wxSize}{GetDefaultButtonSize}{\void}
Returns the size of a whole button, which is usually larger than a tool bitmap because
of added 3D effects.
\wxheading{See also}
\helpref{wxToolBar::SetToolBitmapSize}{wxtoolbarsettoolbitmapsize},\rtfsp
\helpref{wxToolBar::GetToolBitmapSize}{wxtoolbargettoolbitmapsize}
\helpref{wxToolBarBase::SetDefaultSize}{wxtoolbarbasesetdefaultsize},\rtfsp
\helpref{wxToolBarBase::GetDefaultSize}{wxtoolbarbasegetdefaultsize}
\membersection{wxToolBar::GetToolBitmapSize}\label{wxtoolbargettoolbitmapsize}
\membersection{wxToolBarBase::GetDefaultSize}\label{wxtoolbarbasegetdefaultsize}
\func{wxSize}{GetToolBitmapSize}{\void}
\func{wxSize}{GetDefaultSize}{\void}
Returns the size of bitmap that the toolbar expects to have. The default bitmap size is 16 by 15 pixels.
\wxheading{Remarks}
Note that this is the size of the bitmap you pass to \helpref{wxToolBar::AddTool}{wxtoolbaraddtool},
Note that this is the size of the bitmap you pass to \helpref{wxToolBarBase::AddTool}{wxtoolbarbaseaddtool},
and not the eventual size of the tool button.
\wxheading{See also}
\helpref{wxToolBar::SetToolBitmapSize}{wxtoolbarsettoolbitmapsize},\rtfsp
\helpref{wxToolBar::GetToolSize}{wxtoolbargettoolsize}
\helpref{wxToolBarBase::SetDefaultSize}{wxtoolbarbasesetdefaultsize},\rtfsp
\helpref{wxToolBarBase::GetDefaultButtonSize}{wxtoolbarbasegetdefaultbuttonsize}
\membersection{wxToolBar::GetMargins}\label{wxtoolbargetmargins}
\membersection{wxToolBarBase::GetMargins}\label{wxtoolbarbasegetmargins}
\constfunc{wxSize}{GetMargins}{\void}
@@ -291,9 +229,9 @@ Returns the left/right and top/bottom margins, which are also used for inter-too
\wxheading{See also}
\helpref{wxToolBar::SetMargins}{wxtoolbarsetmargins}
\helpref{wxToolBarBase::SetMargins}{wxtoolbarbasesetmargins}
\membersection{wxToolBar::GetMaxSize}\label{wxtoolbargetmaxsize}
\membersection{wxToolBarBase::GetMaxSize}\label{wxtoolbarbasegetmaxsize}
\constfunc{void}{GetMaxSize}{\param{float*}{ w}, \param{float*}{ h}}
@@ -306,7 +244,7 @@ This can be used to size a frame around the toolbar window.
\docparam{h}{Receives the maximum vertical size.}
\membersection{wxToolBar::GetToolClientData}\label{wxtoolbargettoolclientdata}
\membersection{wxToolBarBase::GetToolClientData}\label{wxtoolbarbasegettoolclientdata}
\constfunc{wxObject*}{GetToolClientData}{\param{int }{toolIndex}}
@@ -314,13 +252,13 @@ Get any client data associated with the tool.
\wxheading{Parameters}
\docparam{toolIndex}{Index of the tool, as passed to \helpref{wxToolBar::AddTool}{wxtoolbaraddtool}.}
\docparam{toolIndex}{Index of the tool, as passed to \helpref{wxToolBarBase::AddTool}{wxtoolbarbaseaddtool}.}
\wxheading{Return value}
Client data, or NULL if there is none.
\membersection{wxToolBar::GetToolEnabled}\label{wxtoolbargettoolenabled}
\membersection{wxToolBarBase::GetToolEnabled}\label{wxtoolbarbasegettoolenabled}
\constfunc{bool}{GetToolEnabled}{\param{int }{toolIndex}}
@@ -336,9 +274,9 @@ TRUE if the tool is enabled, FALSE otherwise.
%\wxheading{See also}
%
%\helpref{wxToolBar::SetToolEnabled}{wxtoolbarsettoolenabled}
%\helpref{wxToolBarBase::SetToolEnabled}{wxtoolbarbasesettoolenabled}
%
\membersection{wxToolBar::GetToolLongHelp}\label{wxtoolbargettoollonghelp}
\membersection{wxToolBarBase::GetToolLongHelp}\label{wxtoolbarbasegettoollonghelp}
\constfunc{wxString}{GetToolLongHelp}{\param{int }{toolIndex}}
@@ -350,10 +288,10 @@ Returns the long help for the given tool.
\wxheading{See also}
\helpref{wxToolBar::SetToolLongHelp}{wxtoolbarsettoollonghelp},\rtfsp
\helpref{wxToolBar::SetToolShortHelp}{wxtoolbarsettoolshorthelp}\rtfsp
\helpref{wxToolBarBase::SetToolLongHelp}{wxtoolbarbasesettoollonghelp},\rtfsp
\helpref{wxToolBarBase::SetToolShortHelp}{wxtoolbarbasesettoolshorthelp}\rtfsp
\membersection{wxToolBar::GetToolPacking}\label{wxtoolbargettoolpacking}
\membersection{wxToolBarBase::GetToolPacking}\label{wxtoolbarbasegettoolpacking}
\constfunc{int}{GetToolPacking}{\void}
@@ -361,9 +299,9 @@ Returns the value used for packing tools.
\wxheading{See also}
\helpref{wxToolBar::SetToolPacking}{wxtoolbarsettoolpacking}
\helpref{wxToolBarBase::SetToolPacking}{wxtoolbarbasesettoolpacking}
\membersection{wxToolBar::GetToolSeparation}\label{wxtoolbargettoolseparation}
\membersection{wxToolBarBase::GetToolSeparation}\label{wxtoolbarbasegettoolseparation}
\constfunc{int}{GetToolSeparation}{\void}
@@ -371,9 +309,9 @@ Returns the default separator size.
\wxheading{See also}
\helpref{wxToolBar::SetToolSeparation}{wxtoolbarsettoolseparation}
\helpref{wxToolBarBase::SetToolSeparation}{wxtoolbarbasesettoolseparation}
\membersection{wxToolBar::GetToolShortHelp}\label{wxtoolbargettoolshorthelp}
\membersection{wxToolBarBase::GetToolShortHelp}\label{wxtoolbarbasegettoolshorthelp}
\constfunc{wxString}{GetToolShortHelp}{\param{int }{toolIndex}}
@@ -387,10 +325,10 @@ Returns the long help for the given tool.
\wxheading{See also}
\helpref{wxToolBar::GetToolLongHelp}{wxtoolbargettoollonghelp},\rtfsp
\helpref{wxToolBar::SetToolShortHelp}{wxtoolbarsettoolshorthelp}\rtfsp
\helpref{wxToolBarBase::GetToolLongHelp}{wxtoolbarbasegettoollonghelp},\rtfsp
\helpref{wxToolBarBase::SetToolShortHelp}{wxtoolbarbasesettoolshorthelp}\rtfsp
\membersection{wxToolBar::GetToolState}\label{wxtoolbargettoolstate}
\membersection{wxToolBarBase::GetToolState}\label{wxtoolbarbasegettoolstate}
\constfunc{bool}{GetToolState}{\param{int }{toolIndex}}
@@ -406,9 +344,9 @@ TRUE if the tool is toggled on, FALSE otherwise.
%\wxheading{See also}
%
%\helpref{wxToolBar::SetToolState}{wxtoolbarsettoolstate}
%\helpref{wxToolBarBase::SetToolState}{wxtoolbarbasesettoolstate}
%
\membersection{wxToolBar::Layout}\label{wxtoolbarlayout}
\membersection{wxToolBarBase::Layout}\label{wxtoolbarbaselayout}
\func{void}{Layout}{\void}
@@ -416,26 +354,16 @@ Called by the application after the tools have been added to
automatically lay the tools out on the window. If you have given
absolute positions when adding the tools, do not call this.
This function is only implemented for some toolbar classes.
The portable way of calling it is to call \helpref{wxToolBar::Realize}{wxtoolbarrealize} after
you have added tools and separators.
\wxheading{See also}
\helpref{wxToolBar::AddTool}{wxtoolbaraddtool}, \helpref{wxToolBar::Realize}{wxtoolbarrealize}
\membersection{wxToolBar::OnLeftClick}\label{wxtoolbaronleftclick}
\membersection{wxToolBarBase::OnLeftClick}\label{wxtoolbarbaseonleftclick}
\func{bool}{OnLeftClick}{\param{int}{ toolIndex}, \param{bool}{ toggleDown}}
Called when the user clicks on a tool with the left mouse button.
This is the old way of detecting tool clicks; although it will still work,
you should use the EVT\_MENU or EVT\_TOOL macro instead.
Called when the user clicks on a tool with the left mouse button. The
programmer should override this function to detect left tool clicks.
\wxheading{Parameters}
\docparam{toolIndex}{The identifier passed to \helpref{wxToolBar::AddTool}{wxtoolbaraddtool}.}
\docparam{toolIndex}{The identifier passed to \helpref{wxToolBarBase::AddTool}{wxtoolbarbaseaddtool}.}
\docparam{toggleDown}{TRUE if the tool is a toggle and the toggle is down, otherwise is FALSE.}
@@ -447,19 +375,16 @@ specifying that toggle operations are not permitted in some circumstances.
\wxheading{See also}
\helpref{wxToolBar::OnMouseEnter}{wxtoolbaronmouseenter},\rtfsp
\helpref{wxToolBar::OnRightClick}{wxtoolbaronrightclick}
\helpref{wxToolBarBase::OnMouseEnter}{wxtoolbarbaseonmouseenter},\rtfsp
\helpref{wxToolBarBase::OnRightClick}{wxtoolbarbaseonrightclick}
\membersection{wxToolBar::OnMouseEnter}\label{wxtoolbaronmouseenter}
\membersection{wxToolBarBase::OnMouseEnter}\label{wxtoolbarbaseonmouseenter}
\func{void}{OnMouseEnter}{\param{int}{ toolIndex}}
This is called when the mouse cursor moves into a tool or out of
the toolbar.
This is the old way of detecting mouse enter events; although it will still work,
you should use the EVT\_TOOL\_ENTER macro instead.
\wxheading{Parameters}
\docparam{toolIndex}{Greater than -1 if the mouse cursor has moved into the tool,
@@ -472,19 +397,16 @@ such as a short description on the status line.}
With some derived toolbar classes, if the mouse moves quickly out of the toolbar, wxWindows may not be able to
detect it. Therefore this function may not always be called when expected.
\membersection{wxToolBar::OnRightClick}\label{wxtoolbaronrightclick}
\membersection{wxToolBarBase::OnRightClick}\label{wxtoolbarbaseonrightclick}
\func{void}{OnRightClick}{\param{int}{ toolIndex}, \param{float}{ x}, \param{float}{ y}}
Called when the user clicks on a tool with the right mouse button. The
programmer should override this function to detect right tool clicks.
This is the old way of detecting tool right clicks; although it will still work,
you should use the EVT\_TOOL\_RCLICKED macro instead.
\wxheading{Parameters}
\docparam{toolIndex}{The identifier passed to \helpref{wxToolBar::AddTool}{wxtoolbaraddtool}.}
\docparam{toolIndex}{The identifier passed to \helpref{wxToolBarBase::AddTool}{wxtoolbarbaseaddtool}.}
\docparam{x}{The x position of the mouse cursor.}
@@ -496,24 +418,12 @@ A typical use of this member might be to pop up a menu.
\wxheading{See also}
\helpref{wxToolBar::OnMouseEnter}{wxtoolbaronmouseenter},\rtfsp
\helpref{wxToolBar::OnLeftClick}{wxtoolbaronleftclick}
\helpref{wxToolBarBase::OnMouseEnter}{wxtoolbarbaseonmouseenter},\rtfsp
\helpref{wxToolBarBase::OnLeftClick}{wxtoolbarbaseonleftclick}
\membersection{wxToolBar::Realize}\label{wxtoolbarrealize}
\membersection{wxToolBarBase::SetDefaultSize}\label{wxtoolbarbasesetdefaultsize}
\func{bool}{Realize}{\void}
This function should be called after you have added tools. It
calls, according to the implementation,
either \helpref{wxToolBar::CreateTools}{wxtoolbarcreatetools} or
\helpref{wxToolBar::Layout}{wxtoolbarlayout}.
If you are using absolute positions for your tools when using a wxToolBarSimple object,
do not call this function. You must call it at all other times.
\membersection{wxToolBar::SetToolBitmapSize}\label{wxtoolbarsettoolbitmapsize}
\func{void}{SetToolBitmapSize}{\param{const wxSize\&}{ size}}
\func{void}{SetDefaultSize}{\param{const wxSize\&}{ size}}
Sets the default size of each tool bitmap. The default bitmap size is 16 by 15 pixels.
@@ -526,15 +436,15 @@ Sets the default size of each tool bitmap. The default bitmap size is 16 by 15 p
This should be called to tell the toolbar what the tool bitmap size is. Call
it before you add tools.
Note that this is the size of the bitmap you pass to \helpref{wxToolBar::AddTool}{wxtoolbaraddtool},
Note that this is the size of the bitmap you pass to \helpref{wxToolBarBase::AddTool}{wxtoolbarbaseaddtool},
and not the eventual size of the tool button.
\wxheading{See also}
\helpref{wxToolBar::GetToolBitmapSize}{wxtoolbargettoolbitmapsize},\rtfsp
\helpref{wxToolBar::GetToolSize}{wxtoolbargettoolsize}
\helpref{wxToolBarBase::GetDefaultSize}{wxtoolbarbasegetdefaultsize},\rtfsp
\helpref{wxToolBarBase::GetDefaultButtonSize}{wxtoolbarbasegetdefaultbuttonsize}
\membersection{wxToolBar::SetMargins}\label{wxtoolbarsetmargins}
\membersection{wxToolBarBase::SetMargins}\label{wxtoolbarbasesetmargins}
\func{void}{SetMargins}{\param{const wxSize\&}{ size}}
@@ -557,9 +467,9 @@ default (zero-size) margins are to be overridden.
\wxheading{See also}
\helpref{wxToolBar::GetMargins}{wxtoolbargetmargins}, \helpref{wxSize}{wxsize}
\helpref{wxToolBarBase::GetMargins}{wxtoolbarbasegetmargins}, \helpref{wxSize}{wxsize}
\membersection{wxToolBar::SetToolLongHelp}\label{wxtoolbarsettoollonghelp}
\membersection{wxToolBarBase::SetToolLongHelp}\label{wxtoolbarbasesettoollonghelp}
\func{void}{SetToolLongHelp}{\param{int }{toolIndex}, \param{const wxString\& }{helpString}}
@@ -577,10 +487,10 @@ You might use the long help for displaying the tool purpose on the status line.
\wxheading{See also}
\helpref{wxToolBar::GetToolLongHelp}{wxtoolbargettoollonghelp},\rtfsp
\helpref{wxToolBar::SetToolShortHelp}{wxtoolbarsettoolshorthelp},\rtfsp
\helpref{wxToolBarBase::GetToolLongHelp}{wxtoolbarbasegettoollonghelp},\rtfsp
\helpref{wxToolBarBase::SetToolShortHelp}{wxtoolbarbasesettoolshorthelp},\rtfsp
\membersection{wxToolBar::SetToolPacking}\label{wxtoolbarsettoolpacking}
\membersection{wxToolBarBase::SetToolPacking}\label{wxtoolbarbasesettoolpacking}
\func{void}{SetToolPacking}{\param{int}{ packing}}
@@ -597,9 +507,9 @@ and for spacing in the horizontal direction if the toolbar is vertical.
\wxheading{See also}
\helpref{wxToolBar::GetToolPacking}{wxtoolbargettoolpacking}
\helpref{wxToolBarBase::GetToolPacking}{wxtoolbarbasegettoolpacking}
\membersection{wxToolBar::SetToolShortHelp}\label{wxtoolbarsettoolshorthelp}
\membersection{wxToolBarBase::SetToolShortHelp}\label{wxtoolbarbasesettoolshorthelp}
\func{void}{SetToolShortHelp}{\param{int }{toolIndex}, \param{const wxString\& }{helpString}}
@@ -617,9 +527,9 @@ An application might use short help for identifying the tool purpose in a toolti
\wxheading{See also}
\helpref{wxToolBar::GetToolShortHelp}{wxtoolbargettoolshorthelp}, \helpref{wxToolBar::SetToolLongHelp}{wxtoolbarsettoollonghelp}
\helpref{wxToolBarBase::GetToolShortHelp}{wxtoolbarbasegettoolshorthelp}, \helpref{wxToolBarBase::SetToolLongHelp}{wxtoolbarbasesettoollonghelp}
\membersection{wxToolBar::SetToolSeparation}\label{wxtoolbarsettoolseparation}
\membersection{wxToolBarBase::SetToolSeparation}\label{wxtoolbarbasesettoolseparation}
\func{void}{SetToolSeparation}{\param{int}{ separation}}
@@ -631,9 +541,9 @@ Sets the default separator size. The default value is 5.
\wxheading{See also}
\helpref{wxToolBar::AddSeparator}{wxtoolbaraddseparator}
\helpref{wxToolBarBase::AddSeparator}{wxtoolbarbaseaddseparator}
\membersection{wxToolBar::ToggleTool}\label{wxtoolbartoggletool}
\membersection{wxToolBarBase::ToggleTool}\label{wxtoolbarbasetoggletool}
\func{void}{ToggleTool}{\param{int }{toolIndex}, \param{const bool}{ toggle}}
@@ -651,6 +561,213 @@ Only applies to a tool that has been specified as a toggle tool.
\wxheading{See also}
\helpref{wxToolBar::GetToolState}{wxtoolbargettoolstate}
\helpref{wxToolBarBase::GetToolState}{wxtoolbarbasegettoolstate}
\section{\class{wxToolBar95}}\label{wxtoolbar95}
This class should be used when a 3D-effect toolbar is required under Windows 95.
It uses the native toolbar control.
\wxheading{Derived from}
\helpref{wxToolBarBase}{wxtoolbarbase}\\
\helpref{wxControl}{wxcontrol}\\
\helpref{wxWindow}{wxwindow}\\
\helpref{wxEvtHandler}{wxevthandler}\\
\helpref{wxObject}{wxobject}
\wxheading{Window styles}
\twocolwidtha{5cm}
\begin{twocollist}\itemsep=0pt
\twocolitem{\windowstyle{wxTB\_FLAT}}{Gives the toolbar a flat look ('coolbar' or 'flatbar' style).}
\end{twocollist}
See also \helpref{window styles overview}{windowstyles}.
\wxheading{Remarks}
Note that this toolbar paints tools to reflect user-selected colours.
The toolbar orientation must always be {\bf wxVERTICAL}.
For member functions, see the documentation for \helpref{wxToolBarBase}{wxtoolbarbase}.
\wxheading{See also}
\overview{Toolbar overview}{wxtoolbaroverview},\rtfsp
\helpref{wxToolBarBase}{wxtoolbarbase},\rtfsp
\helpref{wxToolBarSimple}{wxtoolbarsimple},\rtfsp
\helpref{wxToolBarMSW}{wxtoolbarmsw}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxToolBar95::wxToolBar95}\label{wxtoolbar95constr}
\func{}{wxToolBar95}{\param{wxWindow*}{ parent}, \param{wxWindowID }{id},\rtfsp
\param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize},\rtfsp
\param{long }{style = 0}, \param{int }{orientation = wxVERTICAL},\rtfsp
\param{int }{nRowsOrColumns = 1}, \param{const wxString\& }{name = ``toolBar"}}
Constructs a toolbar.
\wxheading{Parameters}
\docparam{parent}{Parent window. Must not be NULL.}
\docparam{id}{Window identifier. A value of -1 indicates a default value.}
\docparam{pos}{Window position. If the position (-1, -1) is specified then a default position is chosen.}
\docparam{size}{Window size. If the default size (-1, -1) is specified then a default size is chosen.}
\docparam{orientation}{Specifies a wxVERTICAL or wxHORIZONTAL orientation for laying out
the toolbar.}
\docparam{nRowsOrColumns}{Specifies the number of rows or
columns, whose meaning depends on {\it orientation}. If laid out
vertically, {\it nRowsOrColumns} specifies the number of rows to draw
before the next column is started; if horizontal, it refers to the
number of columns to draw before the next row is started.}
\docparam{style}{Window style. See \helpref{wxToolBar95}{wxtoolbar95}.}
\docparam{name}{Window name.}
\section{\class{wxToolBarMSW}}\label{wxtoolbarmsw}
This class should be used when a 3D-effect toolbar is required for Windows versions earlier
than Windows 95.
\wxheading{Derived from}
\helpref{wxToolBarBase}{wxtoolbarbase}\\
\helpref{wxControl}{wxcontrol}\\
\helpref{wxWindow}{wxwindow}\\
\helpref{wxEvtHandler}{wxevthandler}\\
\helpref{wxObject}{wxobject}
\wxheading{Window styles}
There are no specific styles for this class.
See also \helpref{window styles overview}{windowstyles}.
\wxheading{Remarks}
Note that this toolbar does not paint tools to reflect user-selected colours: grey shading is used.
For member functions, see the documentation for \helpref{wxToolBarBase}{wxtoolbarbase}.
\wxheading{See also}
\overview{Toolbar overview}{wxtoolbaroverview},\rtfsp
\helpref{wxToolBarBase}{wxtoolbarbase},\rtfsp
\helpref{wxToolBarSimple}{wxtoolbarsimple},\rtfsp
\helpref{wxToolBar95}{wxtoolbar95}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxToolBarMSW::wxToolBarMSW}\label{wxtoolbarmswconstr}
\func{}{wxToolBarMSW}{\param{wxWindow*}{ parent}, \param{wxWindowID }{id},\rtfsp
\param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize},\rtfsp
\param{long }{style = 0}, \param{int }{orientation = wxVERTICAL},\rtfsp
\param{int }{nRowsOrColumns = 1}, \param{const wxString\& }{name = ``toolBar"}}
Constructs a toolbar.
\wxheading{Parameters}
\docparam{parent}{Parent window. Must not be NULL.}
\docparam{id}{Window identifier. A value of -1 indicates a default value.}
\docparam{pos}{Window position. If the position (-1, -1) is specified then a default position is chosen.}
\docparam{size}{Window size. If the default size (-1, -1) is specified then a default size is chosen.}
\docparam{orientation}{Specifies a wxVERTICAL or wxHORIZONTAL orientation for laying out
the toolbar.}
\docparam{nRowsOrColumns}{Specifies the number of rows or
columns, whose meaning depends on {\it orientation}. If laid out
vertically, {\it nRowsOrColumns} specifies the number of rows to draw
before the next column is started; if horizontal, it refers to the
number of columns to draw before the next row is started.}
\docparam{style}{Window style. See \helpref{wxToolBarMSW}{wxtoolbarmsw}.}
\docparam{name}{Window name.}
\section{\class{wxToolBarSimple}}\label{wxtoolbarsimple}
This is the generic toolbar class which has an identical appearance
on all platforms.
\wxheading{Derived from}
\helpref{wxToolBarBase}{wxtoolbarbase}\\
\helpref{wxControl}{wxcontrol}\\
\helpref{wxWindow}{wxwindow}\\
\helpref{wxEvtHandler}{wxevthandler}\\
\helpref{wxObject}{wxobject}
\wxheading{Window styles}
\twocolwidtha{5cm}
\begin{twocollist}\itemsep=0pt
\twocolitem{\windowstyle{wxTB\_3DBUTTONS}}{Gives the simple toolbar a mild 3D look to its buttons.}
\end{twocollist}
See also \helpref{window styles overview}{windowstyles}.
\wxheading{Remarks}
In this class, disabling a toolbar tool does not change its appearance.
For member functions, see the documentation for \helpref{wxToolBarBase}{wxtoolbarbase}.
\wxheading{See also}
\overview{Toolbar overview}{wxtoolbaroverview},\rtfsp
\helpref{wxToolBarBase}{wxtoolbarbase},\rtfsp
\helpref{wxToolBarSimple}{wxtoolbarsimple},\rtfsp
\helpref{wxToolBar95}{wxtoolbar95}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxToolBarSimple::wxToolBarSimple}\label{wxtoolbarsimpleconstr}
\func{}{wxToolBarSimple}{\param{wxWindow*}{ parent}, \param{wxWindowID }{id},\rtfsp
\param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize},\rtfsp
\param{long }{style = 0}, \param{int }{orientation = wxVERTICAL},\rtfsp
\param{int }{nRowsOrColumns = 1}, \param{const wxString\& }{name = ``toolBar"}}
Constructs a toolbar.
\wxheading{Parameters}
\docparam{parent}{Parent window. Must not be NULL.}
\docparam{id}{Window identifier. A value of -1 indicates a default value.}
\docparam{pos}{Window position. If the position (-1, -1) is specified then a default position is chosen.}
\docparam{size}{Window size. If the default size (-1, -1) is specified then a default size is chosen.}
\docparam{orientation}{Specifies a wxVERTICAL or wxHORIZONTAL orientation for laying out
the toolbar.}
\docparam{nRowsOrColumns}{Specifies the number of rows or
columns, whose meaning depends on {\it orientation}. If laid out
vertically, {\it nRowsOrColumns} specifies the number of rows to draw
before the next column is started; if horizontal, it refers to the
number of columns to draw before the next row is started.}
\docparam{style}{Window style. See \helpref{wxToolBarSimple}{wxtoolbarsimple}.}
\docparam{name}{Window name.}

View File

@@ -5,11 +5,10 @@
This chapter contains a selection of topic overviews.
\input tapp.tex
\input tlog.tex
\input tconfig.tex
\input tbitmap.tex
\input tdialog.tex
\input tfont.tex
\input tstring.tex
\input tsplittr.tex
\input ttreectl.tex
\input tlistctl.tex
@@ -34,6 +33,5 @@ This chapter contains a selection of topic overviews.
\input tvalidat.tex
\input texpr.tex
\input tgrid.tex
\input tstring.tex
\input tusage.tex

View File

@@ -24,27 +24,6 @@ able to edit labels in the tree control.}
See also \helpref{window styles overview}{windowstyles}.
\wxheading{Event handling}
To process input from a tree control, use these event handler macros to direct input to member
functions that take a \helpref{wxTreeEvent}{wxtreeevent} argument.
\twocolwidtha{7cm}
\begin{twocollist}\itemsep=0pt
\twocolitem{{\bf EVT\_TREE\_BEGIN\_DRAG(id, func)}}{Begin dragging with the left mouse button.}
\twocolitem{{\bf EVT\_TREE\_BEGIN\_RDRAG(id, func)}}{Begin dragging with the right mouse button.}
\twocolitem{{\bf EVT\_TREE\_BEGIN\_LABEL\_EDIT(id, func)}}{Begin editing a label.}
\twocolitem{{\bf EVT\_TREE\_END\_LABEL\_EDIT(id, func)}}{Finish editing a label.}
\twocolitem{{\bf EVT\_TREE\_DELETE\_ITEM(id, func)}}{Delete an item.}
\twocolitem{{\bf EVT\_TREE\_GET\_INFO(id, func)}}{Request information from the application.}
\twocolitem{{\bf EVT\_TREE\_SET\_INFO(id, func)}}{Information is being supplied.}
\twocolitem{{\bf EVT\_TREE\_ITEM\_EXPANDED(id, func)}}{Parent has been expanded.}
\twocolitem{{\bf EVT\_TREE\_ITEM\_EXPANDING(id, func)}}{Parent is being expanded.}
\twocolitem{{\bf EVT\_TREE\_SEL\_CHANGED(id, func)}}{Selection has changed.}
\twocolitem{{\bf EVT\_TREE\_SEL\_CHANGING(id, func)}}{Selection is changing.}
\twocolitem{{\bf EVT\_TREE\_KEY\_DOWN(id, func)}}{A key has been pressed.}
\end{twocollist}%
\wxheading{See also}
\helpref{wxTreeCtrl overview}{wxtreectrloverview}, \helpref{wxListBox}{wxlistbox}, \helpref{wxListCtrl}{wxlistctrl},\rtfsp
@@ -111,35 +90,12 @@ Deletes all the items in the control.
Deletes the specified item.
\membersection{wxTreeCtrl::EditLabel}\label{wxtreectrleditlabel}
\membersection{wxTreeCtrl::Edit}\label{wxtreectrledit}
\func{wxTextCtrl*}{EditLabel}{\param{long }{item}, \param{wxClassInfo*}{ textControlClass = CLASSINFO(wxTextCtrl)}}
\func{wxTextCtrl\&}{Edit}{\param{long }{item}}
Starts editing the label of the given item, returning the text control that the tree control uses for editing.
Pass another {\it textControlClass} if a derived class is required. It usually will be, in order for
the application to detect when editing has finished and to call \helpref{wxTreeCtrl::EndEditLabel}{wxtreectrlendeditlabel}.
Do not delete the text control yourself.
This function is currently supported under Windows only.
\wxheading{See also}
\helpref{wxTreeCtrl::EndEditLabel}{wxtreectrlendeditlabel}
\membersection{wxTreeCtrl::EndEditLabel}\label{wxtreectrlendeditlabel}
\func{bool}{EndEditLabel}{\param{bool }{cancelEdit}}
Ends label editing. If {\it cancelEdit} is TRUE, the edit will be cancelled.
This function is currently supported under Windows only.
\wxheading{See also}
\helpref{wxTreeCtrl::EditLabel}{wxtreectrleditlabel}
\membersection{wxTreeCtrl::EnsureVisible}\label{wxtreectrlensurevisible}
\func{bool}{EnsureVisible}{\param{long }{item}}

View File

@@ -8,13 +8,10 @@ Another is that instances of a class cannot be created just by knowing the name
which makes facilities such as persistent storage hard to implement.
Most C++ GUI frameworks overcome these limitations by means of a set of
macros and functions and wxWindows is no exception.
macros and functions and wxWindows (from version 1.62) is no exception.
Each class that you wish to be known the type system should have
a macro such as DECLARE\_DYNAMIC\_CLASS just inside the class declaration.
The macro IMPLEMENT\_DYNAMIC\_CLASS should be in the implementation file.
Note that these are entirely optional; use them if you wish to check object
types, or create instances of classes using the class name. However,
it is good to get into the habit of adding these macros for all classes.
Variations on these \helpref{macros}{macros} are used for multiple inheritance, and abstract
classes that cannot be instantiated dynamically or otherwise.

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,7 @@
\section{Toolbar overview}\label{wxtoolbaroverview}
Classes: \helpref{wxToolBar}{wxtoolbar}
Classes: \helpref{wxToolBarBase}{wxtoolbarbase}, \helpref{wxToolBarSimple}{wxtoolbarsimple},\rtfsp
\helpref{wxToolBarMSW}{wxtoolbarmsw}, \helpref{wxToolBar95}{wxtoolbar95}
The toolbar family of classes allows an application to use toolbars
in a variety of configurations and styles.
@@ -15,10 +16,21 @@ out the classes. This is because there are a number of different toolbar
styles that you may wish to use simultaneously, and also, future
toolbar implementations will emerge (for example, using the
new-style Windows `coolbar' as seen in Microsoft applications) which
cannot all be shoe-horned into the one class.
cannot be shoe-horned into the one class.
For each platform, the symbol {\bf wxToolBar} is defined to be one of the
specific toolbar classes.
This does mean that if you wish to use a more sophisticated toolbar
on one platform (say, wxToolBar95) and a simple toolbar on another
platform (wxToolBarSimple), then you will need some simple ifdefing, such as:
\begin{verbatim}
#ifdef wx_msw
# define wxToolBar wxToolBar95
#else
# define wxToolBar wxToolBarSimple
#endif
\end{verbatim}
Fortunately, the APIs of the toolbar classes are virtually identical.
The following is a summary of the toolbar classes and their differences.
@@ -31,15 +43,15 @@ with the Windows look and feel. This toolbar can scroll, and you can have arbitr
numbers of rows and columns.
\item {\bf wxToolBarMSW.} This class implements an old-style Windows toolbar, only on
Windows. There are small, three-dimensional buttons, which do not (currently) reflect
the current Windows colour settings: the buttons are grey. This is the default wxToolBar
on 16-bit windows.
the current Windows colour settings: the buttons are grey.
\item {\bf wxToolBar95.} Uses the native Windows 95 toolbar class. It dynamically adjusts its
background and button colours according to user colour settings.
CreateTools must be called after the tools have been added.
No absolute positioning is supported but you can specify the number
of rows, and add tool separators with {\bf AddSeparator}.
Tooltips are supported. {\bf OnRightClick} is not supported. This is the default wxToolBar
on Windows 95, Windows NT 4 and above.
of rows, and add tool separators with {\bf AddSeparator}. {\bf Layout} does nothing.
Tooltips are supported. {\bf OnRightClick} is not supported.
For some reason, a wxToolBar95 control cannot be moved to any
position other than the top-left of the frame.
\end{itemize}
A toolbar might appear as a single row of images under
@@ -56,229 +68,61 @@ around the bitmap (for colour displays where inverting will not have
the desired result).
The Windows-specific toolbar classes expect 16-colour bitmaps that are 16 pixels wide and 15 pixels
high. If you want to use a different size, call {\bf SetToolBitmapSize}\rtfsp
high. If you want to use a different size, call {\bf SetDefaultSize}\rtfsp
as the demo shows, before adding tools to the button bar. Don't supply more than
one bitmap for each tool, because the toolbar generates all three images (normal,
depressed and checked) from the single bitmap you give it.
To intercept
Mouse click events for a given button are sent to a member called
\rtfsp{\bf OnLeftClick}, and so an application must derive from wxToolBar in order
to use it. The application can also handle {\bf OnMouseEnter} events for
the tools, to give the user extra feedback about the tools as the mouse
moves over them.
\subsection{Using the toolbar library}
Include {\tt "wx/toolbar.h"}, or if using a class directly, one of:
Include one of the files {\tt tbarsmpl.h, tbar95.h, tbarmsw.h}.
\begin{itemize}\itemsep=0pt
\item {\tt "wx/msw/tbarmsw.h} for wxToolBarMSW
\item {\tt "wx/msw/tbar95.h} for wxToolBar95
\item {\tt "wx/tbarsmpl.h} for wxToolBarSimple
\end{itemize}
Example of toolbar use are given in the sample programs tbarsmpl,
tbarmsw and tbar95.
Example of toolbar use are given in the sample program ``toolbar''. The
source is given below.
Each sample creates a main window, and two toolbars: a floating toolbar
with 24 tools, and a toolbar along the top of the main drawing window, divided into groups.
The test program defines a general-purpose derived frame called
\rtfsp{\bf wxFrameWithToolBar} which can manage a frame with one main subwindow
and one horizontal toolbar.
Note that one of the bitmaps on the floating toolbar is a small version of the
main graphic: this demonstrates how a memory device context can be used to
draw into a bitmap. An application which allowed the user to build up a symbol
library dynamically might create this kind of bitmap.
Left clicks and movements over the toolbars are intercepted and information
is displayed on the status line.
The following fragment illustrates the essence of creating a toolbar.
{\small
\begin{verbatim}
/////////////////////////////////////////////////////////////////////////////
// Name: test.cpp
// Purpose: wxToolBar sample
// Author: Julian Smart
// Modified by:
// Created: 04/01/98
// RCS-ID: $Id$
// Copyright: (c) Julian Smart
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
// For compilers that support precompilation, includes "wx/wx.h".
#include "wx/wxprec.h"
#ifdef __BORLANDC__
#pragma hdrstop
#endif
#ifndef WX_PRECOMP
#include "wx/wx.h"
#endif
#include "wx/toolbar.h"
#include "test.h"
IMPLEMENT_APP(MyApp)
#ifdef __X__
// TODO: include XBM or XPM icons for X apps
#endif
// The `main program' equivalent, creating the windows and returning the
// main frame
bool MyApp::OnInit(void)
{
// Create the main frame window
MyFrame* frame = new MyFrame(NULL, -1, "wxToolBar Sample",
wxPoint(100, 100), wxSize(450, 300));
// Give it a status line
frame->CreateStatusBar();
// Give it an icon
#ifdef __WXMSW__
frame->SetIcon(wxIcon("mondrian"));
#endif
#ifdef __X__
frame->SetIcon(wxIcon("mondrian.xbm"));
#endif
// Make a menubar
wxMenu *fileMenu = new wxMenu;
fileMenu->Append(wxID_EXIT, "E&xit");
wxMenu *helpMenu = new wxMenu;
helpMenu->Append(wxID_HELP, "&About");
wxMenuBar* menuBar = new wxMenuBar;
menuBar->Append(fileMenu, "&File");
menuBar->Append(helpMenu, "&Help");
// Associate the menu bar with the frame
frame->SetMenuBar(menuBar);
// Create the toolbar
frame->CreateToolBar(wxNO_BORDER|wxHORIZONTAL|wxTB_FLAT, ID_TOOLBAR);
InitToolbar(frame->GetToolBar());
// Force a resize. This should probably be replaced by a call to a wxFrame
// function that lays out default decorations and the remaining content window.
frame->OnSize(wxSizeEvent(wxSize(-1, -1), frame->GetId()));
frame->Show(TRUE);
frame->SetStatusText("Hello, wxWindows");
SetTopWindow(frame);
return TRUE;
}
bool MyApp::InitToolbar(wxToolBar* toolBar)
{
toolBar->SetMargins(5, 5);
// Set up toolbar
wxBitmap* toolBarBitmaps[8];
#ifdef __WXMSW__
toolBarBitmaps[0] = new wxBitmap("icon1");
toolBarBitmaps[1] = new wxBitmap("icon2");
toolBarBitmaps[2] = new wxBitmap("icon3");
toolBarBitmaps[3] = new wxBitmap("icon4");
toolBarBitmaps[4] = new wxBitmap("icon5");
toolBarBitmaps[5] = new wxBitmap("icon6");
toolBarBitmaps[6] = new wxBitmap("icon7");
toolBarBitmaps[7] = new wxBitmap("icon8");
#endif
#ifdef __X__
// TODO
toolBarBitmaps[0] = new wxBitmap(...);
toolBarBitmaps[1] = new wxBitmap(...);
toolBarBitmaps[2] = new wxBitmap(...);
toolBarBitmaps[3] = new wxBitmap(...);
toolBarBitmaps[4] = new wxBitmap(...);
toolBarBitmaps[5] = new wxBitmap(...);
toolBarBitmaps[6] = new wxBitmap(...);
toolBarBitmaps[7] = new wxBitmap(...);
#endif
...
#ifdef __WXMSW__
int width = 24;
#else
int width = 16;
#endif
int offX = 5;
int currentX = 5;
toolBarFrame = new wxFrame(NULL, "Tools", -1, wxPoint(0, 0), wxSize(300, 200),
wxDEFAULT_FRAME_STYLE | wxSTAY_ON_TOP);
toolBar->AddTool(wxID_NEW, *(toolBarBitmaps[0]), wxNullBitmap, FALSE, (float)currentX, -1, NULL, "New file");
currentX += width + 5;
toolBar->AddTool(wxID_OPEN, *(toolBarBitmaps[1]), wxNullBitmap, FALSE, (float)currentX, -1, NULL, "Open file");
currentX += width + 5;
toolBar->AddTool(wxID_SAVE, *(toolBarBitmaps[2]), wxNullBitmap, FALSE, (float)currentX, -1, NULL, "Save file");
currentX += width + 5;
toolBar->AddSeparator();
toolBar->AddTool(wxID_COPY, *(toolBarBitmaps[3]), wxNullBitmap, FALSE, (float)currentX, -1, NULL, "Copy");
currentX += width + 5;
toolBar->AddTool(wxID_CUT, *(toolBarBitmaps[4]), wxNullBitmap, FALSE, (float)currentX, -1, NULL, "Cut");
currentX += width + 5;
toolBar->AddTool(wxID_PASTE, *(toolBarBitmaps[5]), wxNullBitmap, FALSE, (float)currentX, -1, NULL, "Paste");
currentX += width + 5;
toolBar->AddSeparator();
toolBar->AddTool(wxID_PRINT, *(toolBarBitmaps[6]), wxNullBitmap, FALSE, (float)currentX, -1, NULL, "Print");
currentX += width + 5;
toolBar->AddSeparator();
toolBar->AddTool(wxID_HELP, *(toolBarBitmaps[7]), wxNullBitmap, FALSE, currentX, -1, NULL, "Help");
// 5 rows
toolBar = new TestToolBar(toolBarFrame, -1, wxPoint(10, 10), wxSize(-1, -1), 0, wxVERTICAL, 5);
toolBar->SetMargins(2, 2);
toolBar->Realize();
for (int i = 10; i < 25; i++)
toolBar->AddTool(i, toolBarBitmaps[i], NULL, TRUE);
// Can delete the bitmaps since they're reference counted
int i;
for (i = 0; i < 8; i++)
delete toolBarBitmaps[i];
return TRUE;
}
// wxID_HELP will be processed for the 'About' menu and the toolbar help button.
BEGIN_EVENT_TABLE(MyFrame, wxFrame)
EVT_MENU(wxID_EXIT, MyFrame::OnQuit)
EVT_MENU(wxID_HELP, MyFrame::OnAbout)
EVT_CLOSE(MyFrame::OnCloseWindow)
EVT_TOOL_RANGE(wxID_OPEN, wxID_PASTE, MyFrame::OnToolLeftClick)
EVT_TOOL_ENTER(ID_TOOLBAR, MyFrame::OnToolEnter)
END_EVENT_TABLE()
// Define my frame constructor
MyFrame::MyFrame(wxFrame* parent, wxWindowID id, const wxString& title, const wxPoint& pos,
const wxSize& size, long style):
wxFrame(parent, id, title, pos, size, style)
{
m_textWindow = new wxTextCtrl(this, -1, "", wxPoint(0, 0), wxSize(-1, -1), wxTE_MULTILINE);
}
void MyFrame::OnQuit(wxCommandEvent& event)
{
Close(TRUE);
}
void MyFrame::OnAbout(wxCommandEvent& event)
{
(void)wxMessageBox("wxWindows wxToolBar demo\n", "About wxToolBar");
}
// Define the behaviour for the frame closing
// - must delete all frames except for the main one.
void MyFrame::OnCloseWindow(wxCloseEvent& event)
{
Destroy();
}
void MyFrame::OnToolLeftClick(wxCommandEvent& event)
{
wxString str;
str.Printf("Clicked on tool %d", event.GetId());
SetStatusText(str);
}
void MyFrame::OnToolEnter(wxCommandEvent& event)
{
if (event.GetSelection() > -1)
{
wxString str;
str.Printf("This is tool number %d", event.GetSelection());
SetStatusText(str);
}
else
SetStatusText("");
}
toolBar->Layout();
float maxWidth, maxHeight;
wxSize size(toolBar->GetMaxSize());
toolBarFrame->SetClientSize(maxSize.x, maxSize.y);
toolBarFrame->Show(TRUE);
\end{verbatim}
}

View File

@@ -1,119 +0,0 @@
\section{\class{wxURL}}\label{wxurl}
\wxheading{Derived from}
\helpref{wxObject}{wxobject}
\wxheading{See also}
\helpref{wxSocketBase}{wxsocketbase}, \helpref{wxProtocol}{wxprotocol}
% ----------------------------------------------------------------------------
% Members
% ----------------------------------------------------------------------------
\latexignore{\rtfignore{\membersection{Members}}}
\membersection{wxURL::wxURL}\label{wxurlconstr}
\func{}{wxURL}{\param{const wxString\&}{ url}}
Constructs an URL object from the string.
\wxheading{Parameters}
\docparam{url}{Url string to parse.}
\membersection{wxURL::\destruct{wxURL}}
\func{}{\destruct{wxURL}}{\void}
Destroys the URL object.
%
% GetProtocolName
%
\membersection{wxURL::GetProtocolName}
\constfunc{wxString}{GetProtocolName}{\void}
Returns the name of the protocol which will be used to get the URL.
%
% GetProtocol
%
\membersection{wxURL::GetProtocol}
\func{wxProtocol\&}{GetProtocol}{\void}
Returns a reference to the protocol which will be used to get the URL.
%
% GetError
%
\membersection{wxURL::GetError}
\constfunc{wxURLError}{GetError}{\void}
Returns the last error. This error refers to the URL parsing or to the protocol.
It can be one of these errors:
\twocolwidtha{7cm}
\begin{twocollist}\itemsep=0pt
\twocolitem{{\bf wxURL\_NOERR}}{No error.}
\twocolitem{{\bf wxURL\_SNTXERR}}{Syntax error in the URL string.}
\twocolitem{{\bf wxURL\_NOPROTO}}{Found no protocol which can get this URL.}
\twocolitem{{\bf wxURL\_NOHOST}}{An host name is required for this protocol.}
\twocolitem{{\bf wxURL\_NOPATH}}{A path is required for this protocol.}
\twocolitem{{\bf wxURL\_CONNERR}}{Connection error.}
\twocolitem{{\bf wxURL\_PROTOERR}}{An error occured during negotiation.}
\end{twocollist}%
%
% GetInputStream
%
\membersection{wxURL::GetInputStream}
\func{wxInputStream *}{GetInputStream}{\void}
Initializes the protocol and opens the input stream.
\wxheading{Return value}
It returns a read-only wxStream.
\wxheading{See also}
\helpref{wxInputStream}{wxinputstream}
%
% SetDefaultProxy
%
\membersection{wxURL::SetDefaultProxy}\label{wxurlsetdefaultproxy}
\func{static void}{SetDefaultProxy}{\param{const wxString\&}{ url\_proxy}}
Sets the default proxy server to use to get the URL. The string specifies
the proxy like this: <hostname>:<port number>.
\wxheading{Parameters}
\docparam{url\_proxy}{Specifies the proxy to use}
\wxheading{See also}
\helpref{wxURL::SetProxy}{wxurlsetproxy}
%
% SetProxy
%
\membersection{wxURL::SetProxy}\label{wxurlsetproxy}
\func{void}{SetProxy}{\param{const wxString\&}{ url\_proxy}}
Sets the proxy to use for this URL.
\wxheading{See also}
\helpref{wxURL::SetDefaultProxy}{wxurlsetdefaultproxy}

View File

@@ -185,60 +185,6 @@ Applies to managed windows (wxFrame and wxDialog classes) only.
\helpref{wxWindow::Destroy}{wxwindowdestroy},\rtfsp
\helpref{wxCloseEvent}{wxcloseevent}
\membersection{wxWindow::ConvertDialogToPixels}\label{wxwindowconvertdialogtopixels}
\func{wxPoint}{ConvertDialogToPixels}{\param{const wxPoint\&}{ pt}}
\func{wxSize}{ConvertDialogToPixels}{\param{const wxSize\&}{ sz}}
Converts a point or size from dialog units to pixels.
For the x dimension, the dialog units are multiplied by the average character width
and then divided by 4.
For the y dimension, the dialog units are multiplied by the average character height
and then divided by 8.
\wxheading{Remarks}
Dialog units are used for maintaining a dialog's proportions even if the font changes.
Dialogs created using Dialog Editor optionally use dialog units.
You can also use these functions programmatically. A convenience macro is defined:
{\small
\begin{verbatim}
#define wxDLG_UNIT(parent, pt) parent->ConvertDialogToPixels(pt)
\end{verbatim}
}
\wxheading{See also}
\helpref{wxWindow::ConvertPixelsToDialog}{wxwindowconvertpixelstodialog}
\membersection{wxWindow::ConvertPixelsToDialog}\label{wxwindowconvertpixelstodialog}
\func{wxPoint}{ConvertPixelsToDialog}{\param{const wxPoint\&}{ pt}}
\func{wxSize}{ConvertPixelsToDialog}{\param{const wxSize\&}{ sz}}
Converts a point or size from pixels to dialog units.
For the x dimension, the pixels are multiplied by 4 and then divided by the average
character width.
For the y dimension, the pixels are multipled by 8 and then divided by the average
character height.
\wxheading{Remarks}
Dialog units are used for maintaining a dialog's proportions even if the font changes.
Dialogs created using Dialog Editor optionally use dialog units.
\wxheading{See also}
\helpref{wxWindow::ConvertDialogToPixels}{wxwindowconvertdialogtopixels}
\membersection{wxWindow::Destroy}\label{wxwindowdestroy}
\func{virtual bool}{Destroy}{\void}
@@ -332,16 +278,6 @@ Note that this is a static function, so it can be called without needing a wxWin
\helpref{wxWindow::SetFocus}{wxwindowsetfocus}
\membersection{wxWindow::FindWindow}\label{wxwindowfindwindow}
\func{wxWindow*}{FindWindow}{\param{long}{ id}}
Find a child of this window, by identifier.
\func{wxWindow*}{FindWindow}{\param{const wxString\&}{ name}}
Find a child of this window, by name.
\membersection{wxWindow::Fit}\label{wxwindowfit}
\func{virtual void}{Fit}{\void}
@@ -620,17 +556,6 @@ Gets the window's title. Applicable only to frames and dialogs.
\helpref{wxWindow::SetTitle}{wxwindowsettitle}
\membersection{wxWindow::GetUpdateRegion}\label{wxwindowgetupdateregion}
\constfunc{virtual wxRegion}{GetUpdateRegion}{\void}
Returns the region specifying which parts of the window have been damaged. Should
only be called within an \helpref{OnPaint}{wxwindowonpaint} event handler.
\wxheading{See also}
\helpref{wxRegion}{wxregion}, \helpref{wxRegionIterator}{wxregioniterator}, \helpref{wxWindow::OnPaint}{wxwindowonpaint}
\membersection{wxWindow::GetWindowStyleFlag}
\constfunc{long}{GetWindowStyleFlag}{\void}
@@ -876,7 +801,7 @@ you may delete other windows.
\wxheading{Remarks}
Derive your own class to handle this message. The default handler returns TRUE.
Derive your own class to handle this message. The default handler returns FALSE.
\wxheading{See also}
@@ -901,14 +826,6 @@ 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.
(Note: GetForce is now superceded by CanVeto. So to test whether forced destruction of
the window is required, test for the negative of CanVeto. If CanVeto returns FALSE,
it is not possible to skip window deletion.)
If you don't destroy the window, you should call \helpref{wxCloseEvent::Veto}{wxcloseeventveto} to
let the calling code know that you did not destroy the window. This allows the \helpref{wxWindow::Close}{wxwindowclose} function
to return TRUE or FALSE depending on whether the close instruction was honoured or not.
\wxheading{Remarks}
The \helpref{wxWindow::OnClose}{wxwindowonclose} virtual function remains
@@ -922,9 +839,7 @@ destroying the window if it returns TRUE or if the close is being forced.
\helpref{wxWindow::Close}{wxwindowclose},\rtfsp
\helpref{wxWindow::OnClose}{wxwindowonclose},\rtfsp
\helpref{wxWindow::Destroy}{wxwindowdestroy},\rtfsp
\helpref{wxCloseEvent}{wxcloseevent},\rtfsp
\helpref{wxApp::OnQueryEndSession}{wxapponqueryendsession},\rtfsp
\helpref{wxApp::OnEndSession}{wxapponendsession}
\helpref{wxCloseEvent}{wxcloseevent}
\membersection{wxWindow::OnDropFiles}\label{wxwindowondropfiles}
@@ -1157,7 +1072,7 @@ terms of the client area, and are unscrolled, so you will need to do
some calculations using the current view position to obtain logical,
scrolled units.
Here is an example of using the \helpref{wxRegionIterator}{wxregioniterator} class:
Here is an example of using the \helpref{wxUpdateIterator}{wxupdateiterator} class:
{\small%
\begin{verbatim}
@@ -1171,7 +1086,7 @@ void MyWindow::OnPaint(wxPaintEvent& event)
ViewStart(&vbX,&vbY);
int vX,vY,vW,vH; // Dimensions of client area in pixels
wxRegionIterator upd(GetUpdateRegion()); // get the update rect list
wxUpdateIterator upd(this); // get the update rect list
while (upd)
{
@@ -1199,6 +1114,8 @@ void MyWindow::OnPaint(wxPaintEvent& event)
\helpref{wxPaintDC}{wxpaintdc},\rtfsp
\helpref{Event handling overview}{eventhandlingoverview}
\membersection{wxWindow::OnScroll}\label{wxwindowonscroll}
\func{void}{OnScroll}{\param{wxScrollEvent\& }{event}}
Called when a scroll event is received from one of the window's built-in scrollbars.
@@ -1430,12 +1347,6 @@ Available only under Windows.
Use this function to optimise your scrolling implementations, to minimise the area that must be
redrawn.
\membersection{wxWindow::SetAcceleratorTable}\label{wxwindowsetacceleratortable}
\func{virtual void}{SetAcceleratorTable}{\param{const wxAcceleratorTable\&}{ accel}}
Sets the accelerator table for this window. See \helpref{wxAcceleratorTable}{wxacceleratortable}.
\membersection{wxWindow::SetAutoLayout}\label{wxwindowsetautolayout}
\func{void}{SetAutoLayout}{\param{const bool}{ autoLayout}}
@@ -1674,8 +1585,10 @@ handling of pages and ranges.
\wxheading{See also}
\helpref{wxWindow::SetScrollPos}{wxwindowsetscrollpos},\rtfsp
\helpref{wxWindow::SetScrollRange}{wxwindowsetscrollpage},\rtfsp
\helpref{wxWindow::GetScrollPos}{wxwindowsetscrollpos},\rtfsp
\helpref{wxWindow::GetScrollPage}{wxwindowsetscrollpage},\rtfsp
\helpref{wxWindow::GetScrollRange}{wxwindowsetscrollrange},\rtfsp
\helpref{wxWindow::GetScrollPage}{wxwindowsetscrollrange},\rtfsp
\helpref{wxScrollBar}{wxscrollbar}, \helpref{wxScrolledWindow}{wxscrolledwindow}
\end{comment}
@@ -1702,7 +1615,8 @@ application to take note of scrollbar attributes and redraw contents accordingly
\helpref{wxWindow::SetScrollbar}{wxwindowsetscrollbar},\rtfsp
\helpref{wxWindow::GetScrollPos}{wxwindowsetscrollpos},\rtfsp
\helpref{wxWindow::GetScrollThumb}{wxwindowgetscrollthumb},\rtfsp
\helpref{wxWindow::GetScrollRange}{wxwindowsetscrollrange},\rtfsp
\helpref{wxWindow::GetScrollThumb}{wxwindowsetscrollthumb},\rtfsp
\helpref{wxScrollBar}{wxscrollbar}, \helpref{wxScrolledWindow}{wxscrolledwindow}
\begin{comment}
@@ -1733,7 +1647,8 @@ and usually the scrollbar will be automatically hidden.
\helpref{wxWindow::SetScrollPos}{wxwindowsetscrollpos},\rtfsp
\helpref{wxWindow::SetScrollPage}{wxwindowsetscrollpage},\rtfsp
\helpref{wxWindow::GetScrollPos}{wxwindowsetscrollpos},\rtfsp
\helpref{wxWindow::GetScrollPage}{wxwindowsetscrollpage},\rtfsp
\helpref{wxWindow::GetScrollRange}{wxwindowsetscrollrange},\rtfsp
\helpref{wxWindow::GetScrollPage}{wxwindowsetscrollrange},\rtfsp
\helpref{wxScrollBar}{wxscrollbar}, \helpref{wxScrolledWindow}{wxscrolledwindow}
\end{comment}

View File

@@ -19,7 +19,7 @@ just before the first call to display something.
\wxheading{See also}
\helpref{wxHelpControllerBase}{wxhelpcontrollerbase}
\helpref{wxHelpControllerBase}{wxwinhelpcontrollerbase}
\wxheading{Include file}

View File

@@ -1,9 +1,15 @@
; This file is maintained by HCW. Do not modify this file directly.
[OPTIONS]
COMPRESS=HIGH
HCW=0
COMPRESS=60 Hall Zeck
LCID=0x809 0x0 0x0 ;English (United Kingdom)
REPORT=Yes
CONTENTS=Contents
TITLE=wxWindows Manual
BMROOT=..\..\..\..\wxwind~1\docs\latex\wx
BMROOT=Assume that bitmaps are where the source is
HLP=.\wx.hlp
[FILES]
wx.rtf

View File

@@ -1,525 +1,593 @@
\section{\class{wxString}}\label{wxstring}
\wxheading{Derived from}
None
\wxheading{See also}
\overview{Overview}{wxstringoverview}
\latexignore{\rtfignore{\wxheading{Members}}}
\helpref{Member functions by category}{wxstringcategories}
{\bf CAVE:} The description of the memberfunctions is very
sparse in the moment. It will be extended in the next
version of the help file. The list of memberfunctions
is complete.
\membersection{wxString::wxString}\label{wxstringconstruct}
\func{}{wxString}{\void}
\func{void}{wxString}{\param{void}{}}\\
\func{void}{wxString}{\param{const wxString\&}{ x}}\\
\func{void}{wxString}{\param{const wxSubString\&}{ x}}\\
\func{void}{wxString}{\param{const char*}{ t}}\\
\func{void}{wxString}{\param{const char*}{ t}, \param{int}{ len}}\\
\func{void}{wxString}{\param{char}{ c}}
Default constructor.
\func{}{wxString}{\param{const wxString\&}{ x}}
Copy constructor.
\func{}{wxString}{\param{char}{ ch}, \param{size\_t}{ n = 1}}
Constructs a string of {\it n} copies of character {\it ch}.
\func{}{wxString}{\param{const char*}{ psz}, \param{size\_t}{ nLength = STRING\_MAXLEN}}
Takes first {\it nLength} characters from the C string {\it psz}.
The default value of STRING\_MAXLEN means take all the string.
\func{}{wxString}{\param{const unsigned char*}{ psz}, \param{size\_t}{ nLength = STRING\_MAXLEN}}
For compilers using unsigned char: takes first {\it nLength} characters from the C string {\it psz}.
The default value of STRING\_MAXLEN means take all the string.
\func{}{wxString}{\param{const wchar\_t*}{ psz}}
Constructs a string from the wide (UNICODE) string.
Constructors.
\membersection{wxString::\destruct{wxString}}\label{wxstringdestruct}
\func{}{\destruct{wxString}}{\void}
\func{void}{\destruct{wxString}}{\void}
String destructor. Note that this is not virtual, so wxString must not be inherited from.
String destructor.
\membersection{wxString::Alloc}\label{wxstringAlloc}
\func{void}{Alloc}{\param{uint}{ newsize}}
\func{void}{Alloc}{\param{int}{ newsize}}
Preallocate some space for wxString. Only works if the data of this string is not shared.
Preallocate some space for wxString.
\membersection{wxString::Allocation}\label{wxstringAllocation}
\func{int}{Allocation}{\param{void}{}} \param{ const}{}
Report current allocation (not length!).
\membersection{wxString::Append}\label{wxstringAppend}
\func{wxString\&}{Append}{\param{const char*}{ psz}}
\func{wxString\&}{Append}{\param{const char*}{ cs}}\\
\func{wxString\&}{Append}{\param{const wxString\&}{ s}}
Concatenates {\it psz} to this string, returning a reference to it.
Concatenation.
\func{wxString\&}{Append}{\param{char}{ ch}, \param{int}{ count = 1}}
\func{wxString\&}{Append}{\param{char}{ c}, \param{int}{ rep = 1}}
Concatenates character {\it ch} to this string, {\it count} times, returning a reference
to it.
Append {\it c}, {\it rep} times
\membersection{wxString::After}\label{wxstringAfter}
\constfunc{wxString}{After}{\param{char}{ ch}}
\func{wxSubString}{After}{\param{int}{ pos}}\\
\func{wxSubString}{After}{\param{const wxString\&}{ x}, \param{int}{ startpos = 0}}\\
\func{wxSubString}{After}{\param{const wxSubString\&}{ x}, \param{int}{ startpos = 0}}\\
\func{wxSubString}{After}{\param{const char*}{ t}, \param{int}{ startpos = 0}}\\
\func{wxSubString}{After}{\param{char}{ c}, \param{int}{ startpos = 0}}\\
\func{wxSubString}{After}{\param{const wxRegex\&}{ r}, \param{int}{ startpos = 0}}
Gets all the characters after the first occurence of {\it ch}.
Returns the empty string if {\it ch} is not found.
\membersection{wxString::At}\label{wxstringAt}
\func{wxSubString}{At}{\param{int}{ pos}, \param{int}{ len}}\\
\func{wxSubString}{operator ()}{\param{int}{ pos}, \param{int}{ len}}\\
\func{wxSubString}{At}{\param{const wxString\&}{ x}, \param{int}{ startpos = 0}}\\
\func{wxSubString}{At}{\param{const wxSubString\&}{ x}, \param{int}{ startpos = 0}}\\
\func{wxSubString}{At}{\param{const char*}{ t}, \param{int}{ startpos = 0}}\\
\func{wxSubString}{At}{\param{char}{ c}, \param{int}{ startpos = 0}}\\
\func{wxSubString}{At}{\param{const wxRegex\&}{ r}, \param{int}{ startpos = 0}}
wxSubString extraction.
Note that you can't take a substring of a const wxString, since
this leaves open the possiblility of indirectly modifying the
wxString through the wxSubString.
\membersection{wxString::Before}\label{wxstringBefore}
\constfunc{wxString}{Before}{\param{char}{ ch}}
\func{wxSubString}{Before}{\param{int}{ pos}}\\
\func{wxSubString}{Before}{\param{const wxString\&}{ x}, \param{int}{ startpos = 0}}\\
\func{wxSubString}{Before}{\param{const wxSubString\&}{ x}, \param{int}{ startpos = 0}}\\
\func{wxSubString}{Before}{\param{const char*}{ t}, \param{int}{ startpos = 0}}\\
\func{wxSubString}{Before}{\param{char}{ c}, \param{int}{ startpos = 0}}\\
\func{wxSubString}{Before}{\param{const wxRegex\&}{ r}, \param{int}{ startpos = 0}}
Gets all characters before the last occurence of {\it ch}.
Returns empty string if {\it ch} is not found.
\membersection{wxString::Capitalize}\label{wxstringCapitalize}
\membersection{wxString::Cmp}\label{wxstringcmp}
\func{void}{Capitalize}{\param{void}{}}\\
\func{friend wxString}{Capitalize}{\param{wxString\&}{ x}}
\constfunc{int}{Cmp}{\param{const char*}{ psz}}
\membersection{wxString::Cat}\label{wxstringCat}
Case-sensitive comparison.
\func{friend void}{Cat}{\param{const wxString\&}{ a}, \param{const wxString\&}{ b}, \param{wxString\&}{ c}}\\
\func{friend void}{Cat}{\param{const wxString\&}{ a}, \param{const wxSubString\&}{ b}, \param{wxString\&}{ c}}\\
\func{friend void}{Cat}{\param{const wxString\&}{ a}, \param{const char*}{ b}, \param{wxString\&}{ c}}\\
\func{friend void}{Cat}{\param{const wxString\&}{ a}, \param{char}{ b}, \param{wxString\&}{ c}}\\
\func{friend void}{Cat}{\param{const wxSubString\&}{ a}, \param{const wxString\&}{ b}, \param{wxString\&}{ c}}\\
\func{friend void}{Cat}{\param{const wxSubString\&}{ a}, \param{const wxSubString\&}{ b}, \param{wxString\&}{ c}}\\
\func{friend void}{Cat}{\param{const wxSubString\&}{ a}, \param{const char*}{ b}, \param{wxString\&}{ c}}\\
\func{friend void}{Cat}{\param{const wxSubString\&}{ a}, \param{char}{ b}, \param{wxString\&}{ c}}\\
\func{friend void}{Cat}{\param{const char*}{ a}, \param{const wxString\&}{ b}, \param{wxString\&}{ c}}\\
\func{friend void}{Cat}{\param{const char*}{ a}, \param{const wxSubString\&}{ b}, \param{wxString\&}{ c}}\\
\func{friend void}{Cat}{\param{const char*}{ a}, \param{const char*}{ b}, \param{wxString\&}{ c}}\\
\func{friend void}{Cat}{\param{const char*}{ a}, \param{char}{ b}, \param{wxString\&}{ c}}
Returns 0 if equal, +1 if greater or -1 if less.
Concatenate first two arguments, store the result in the last argument.
See also CmpNoCase, IsSameAs.
\func{friend void}{Cat}{\param{const wxString\&}{ a}, \param{const wxString\&}{ b}, \param{const wxString\&}{ c}, \param{wxString\&}{ d}}\\
\func{friend void}{Cat}{\param{const wxString\&}{ a}, \param{const wxString\&}{ b}, \param{const wxSubString\&}{ c}, \param{wxString\&}{ d}}\\
\func{friend void}{Cat}{\param{const wxString\&}{ a}, \param{const wxString\&}{ b}, \param{const char*}{ c}, \param{wxString\&}{ d}}\\
\func{friend void}{Cat}{\param{const wxString\&}{ a}, \param{const wxString\&}{ b}, \param{char}{ c}, \param{wxString\&}{ d}}\\
\func{friend void}{Cat}{\param{const wxString\&}{ a}, \param{const wxSubString\&}{ b}, \param{const wxString\&}{ c}, \param{wxString\&}{ d}}\\
\func{friend void}{Cat}{\param{const wxString\&}{ a}, \param{const wxSubString\&}{ b}, \param{const wxSubString\&}{ c}, \param{wxString\&}{ d}}\\
\func{friend void}{Cat}{\param{const wxString\&}{ a}, \param{const wxSubString\&}{ b}, \param{const char*}{ c}, \param{wxString\&}{ d}}\\
\func{friend void}{Cat}{\param{const wxString\&}{ a}, \param{const wxSubString\&}{ b}, \param{char}{ c}, \param{wxString\&}{ d}}\\
\func{friend void}{Cat}{\param{const wxString\&}{ a}, \param{const char*}{ b}, \param{const wxString\&}{ c}, \param{wxString\&}{ d}}\\
\func{friend void}{Cat}{\param{const wxString\&}{ a}, \param{const char*}{ b}, \param{const wxSubString\&}{ c}, \param{wxString\&}{ d}}\\
\func{friend void}{Cat}{\param{const wxString\&}{ a}, \param{const char*}{ b}, \param{const char*}{ c}, \param{wxString\&}{ d}}\\
\func{friend void}{Cat}{\param{const wxString\&}{ a}, \param{const char*}{ b}, \param{char}{ c}, \param{wxString\&}{ d}}
\membersection{wxString::CmpNoCase}\label{wxstringcmpnocase}
\func{friend void}{Cat}{\param{const char*}{ a}, \param{const wxString\&}{ b}, \param{const wxString\&}{ c}, \param{wxString\&}{ d}}\\
\func{friend void}{Cat}{\param{const char*}{ a}, \param{const wxString\&}{ b}, \param{const wxSubString\&}{ c}, \param{wxString\&}{ d}}\\
\func{friend void}{Cat}{\param{const char*}{ a}, \param{const wxString\&}{ b}, \param{const char*}{ c}, \param{wxString\&}{ d}}\\
\func{friend void}{Cat}{\param{const char*}{ a}, \param{const wxString\&}{ b}, \param{char}{ c}, \param{wxString\&}{ d}}\\
\func{friend void}{Cat}{\param{const char*}{ a}, \param{const wxSubString\&}{ b}, \param{const wxString\&}{ c}, \param{wxString\&}{ d}}\\
\func{friend void}{Cat}{\param{const char*}{ a}, \param{const wxSubString\&}{ b}, \param{const wxSubString\&}{ c}, \param{wxString\&}{ d}}\\
\func{friend void}{Cat}{\param{const char*}{ a}, \param{const wxSubString\&}{ b}, \param{const char*}{ c}, \param{wxString\&}{ d}}\\
\func{friend void}{Cat}{\param{const char*}{ a}, \param{const wxSubString\&}{ b}, \param{char}{ c}, \param{wxString\&}{ d}}\\
\func{friend void}{Cat}{\param{const char*}{ a}, \param{const char*}{ b}, \param{const wxString\&}{ c}, \param{wxString\&}{ d}}\\
\func{friend void}{Cat}{\param{const char*}{ a}, \param{const char*}{ b}, \param{const wxSubString\&}{ c}, \param{wxString\&}{ d}}\\
\func{friend void}{Cat}{\param{const char*}{ a}, \param{const char*}{ b}, \param{const char*}{ c}, \param{wxString\&}{ d}}\\
\func{friend void}{Cat}{\param{const char*}{ a}, \param{const char*}{ b}, \param{char}{ c}, \param{wxString\&}{ d}}
\constfunc{int}{CmpNoCase}{\param{const char*}{ psz}}
Double concatenation, by request. (Yes, there are too many versions,
but if one is supported, then the others should be too).
Concatenate the first 3 args, store the result in the last argument.
Case-insensitive comparison.
\membersection{wxString::Chars}\label{wxstringChars}
Returns 0 if equal, +1 if greater or -1 if less.
\func{const char*}{Chars}{\param{void}{}} \param{ const}{}
See also Cmp, IsSameAs.
Conversion.
\membersection{wxString::CompareTo}\label{wxstringCompareTo}
\begin{verbatim}
#define NO_POS ((int)(-1)) // undefined position
enum caseCompare {exact, ignoreCase};
enum CaseCompare {exact, ignoreCase};
\end{verbatim}
\constfunc{int}{CompareTo}{\param{const char*}{ psz}, \param{caseCompare}{ cmp = exact}}
Case-sensitive comparison. Returns 0 if equal, 1 if greater or -1 if less.
\func{int}{CompareTo}{\param{const char*}{ cs}, \param{CaseCompare}{ cmp = exact}} \param{ const}{}\\
\func{int}{CompareTo}{\param{const wxString\&}{ cs}, \param{CaseCompare}{ cmp = exact}} \param{ const}{}
\membersection{wxString::Contains}\label{wxstringContains}
\func{bool}{Contains}{\param{const wxString\&}{ str}}
\func{bool}{Contains}{\param{char}{ c}} \param{ const}{}\\
\func{bool}{Contains}{\param{const wxString\&}{ y}} \param{ const}{}\\
\func{bool}{Contains}{\param{const wxSubString\&}{ y}} \param{ const}{}\\
\func{bool}{Contains}{\param{const char*}{ t}} \param{ const}{}\\
\func{bool}{Contains}{\param{const wxRegex\&}{ r}} \param{ const}{}
Returns 1 if target appears anyhere in wxString; else 0.
Return 1 if target appears anyhere in wxString; else 0.
\membersection{wxString::Empty}\label{wxstringempty}
\func{bool}{Contains}{\param{const char*}{ pat}, \param{CaseCompare}{ cmp}} \param{ const}{}\\
\func{bool}{Contains}{\param{const wxString\&}{ pat}, \param{CaseCompare}{ cmp}} \param{ const}{}
\func{void}{Empty}{\void}
Case dependent/independent variation .
Reinitializes the string and frees the data.
\func{bool}{Contains}{\param{char}{ c}, \param{int}{ pos}} \param{ const}{}\\
\func{bool}{Contains}{\param{const wxString\&}{ y}, \param{int}{ pos}} \param{ const}{}\\
\func{bool}{Contains}{\param{const wxSubString\&}{ y}, \param{int}{ pos}} \param{ const}{}\\
\func{bool}{Contains}{\param{const char*}{ t}, \param{int}{ pos}} \param{ const}{}\\
\func{bool}{Contains}{\param{const wxRegex\&}{ r}, \param{int}{ pos}} \param{ const}{}
\membersection{wxString::Find}\label{wxstringfind}
Return 1 if the target appears anywhere after position {\it pos} (or
before, if {\it pos} is negative) in wxString; else 0.
\constfunc{int}{Find}{\param{char}{ ch}, \param{bool}{ fromEnd = FALSE}}
\membersection{wxString::Copy}\label{wxstringCopy}
Searches for the given character. Returns the starting index, or -1 if not found.
\func{wxString}{Copy}{\param{void}{}} \param{ const}{}
\constfunc{int}{Find}{\param{const char*}{ sz}}
Duplication.
Searches for the given string. Returns the starting index, or -1 if not found.
\membersection{wxString::Del}\label{wxstringDel}
\membersection{wxString::First}\label{wxstringfirst}
\func{wxString\&}{Del}{\param{int}{ pos}, \param{int}{ len}}
\func{size\_t}{First}{\param{char}{ c}}
Delete {\it len} characters starting at {\it pos}.
\constfunc{size\_t}{First}{\param{const char*}{ psz}}
\func{wxString\&}{Del}{\param{const wxString\&}{ y}, \param{int}{ startpos = 0}}\\
\func{wxString\&}{Del}{\param{const wxSubString\&}{ y}, \param{int}{ startpos = 0}}\\
\func{wxString\&}{Del}{\param{const char*}{ t}, \param{int}{ startpos = 0}}\\
\func{wxString\&}{Del}{\param{char}{ c}, \param{int}{ startpos = 0}}\\
\func{wxString\&}{Del}{\param{const wxRegex\&}{ r}, \param{int}{ startpos = 0}}
\constfunc{size\_t}{First}{\param{const wxString\&}{ str}}
Delete the first occurrence of target after {\it startpos}.
\constfunc{size\_t}{First}{\param{const char}{ ch}}
\membersection{wxString::DownCase}\label{wxstringDownCase}
Returns the first occurrence of the item.
\func{void}{Downcase}{\param{void}{}}\\
\func{friend wxString}{Downcase}{\param{wxString\&}{ x}}
\membersection{wxString::GetChar}\label{wxstringgetchar}
\membersection{wxString::Elem}\label{wxstringElem}
\constfunc{char}{GetChar}{\param{size\_t}{ n}}
\func{char}{Elem}{\param{int}{ i}} \param{ const}{}
Returns the character at position {\it n} (read-only).
Element extraction.
\membersection{wxString::Empty}\label{wxstringEmpty}
\func{int}{Empty}{\param{void}{}} \param{ const}{}
\membersection{wxString::Error}\label{wxstringError}
\func{void}{Error}{\param{const char*}{ msg}} \param{ const}{}
\membersection{wxString::First}\label{wxstringFirst}
\func{int}{First}{\param{char}{ c}} \param{ const}{}\\
\func{int}{First}{\param{const char*}{ cs}} \param{ const}{}\\
\func{int}{First}{\param{const wxString\&}{ cs}} \param{ const}{}
Return first or last occurrence of item.
\membersection{wxString::Firstchar}\label{wxstringFirstchar}
\func{char}{Firstchar}{\param{void}{}} \param{ const}{}
Element extraction.
\membersection{wxString::Freq}\label{wxstringFreq}
\func{int}{Freq}{\param{char}{ c}} \param{ const}{}\\
\func{int}{Freq}{\param{const wxString\&}{ y}} \param{ const}{}\\
\func{int}{Freq}{\param{const wxSubString\&}{ y}} \param{ const}{}\\
\func{int}{Freq}{\param{const char*}{ t}} \param{ const}{}
Return number of occurrences of target in wxString.
\membersection{wxString::From}\label{wxstringFrom}
\func{wxSubString}{From}{\param{int}{ pos}}\\
\func{wxSubString}{From}{\param{const wxString\&}{ x}, \param{int}{ startpos = 0}}\\
\func{wxSubString}{From}{\param{const wxSubString\&}{ x}, \param{int}{ startpos = 0}}\\
\func{wxSubString}{From}{\param{const char*}{ t}, \param{int}{ startpos = 0}}\\
\func{wxSubString}{From}{\param{char}{ c}, \param{int}{ startpos = 0}}\\
\func{wxSubString}{From}{\param{const wxRegex\&}{ r}, \param{int}{ startpos = 0}}
\membersection{wxString::GetData}\label{wxstringGetData}
\constfunc{const char*}{GetData}{\void}
\func{char*}{GetData}{\param{void}{}}
wxWindows compatibility conversion. Returns a constant pointer to the data in the string.
wxWindows compatibility conversion.
\membersection{wxString::GetWritableChar}\label{wxstringgetwritablechar}
\membersection{wxString::GSub}\label{wxstringGSub}
\func{int}{GSub}{\param{const wxString\&}{ pat}, \param{const wxString\&}{ repl}}\\
\func{int}{GSub}{\param{const wxSubString\&}{ pat}, \param{const wxString\&}{ repl}}\\
\func{int}{GSub}{\param{const char*}{ pat}, \param{const wxString\&}{ repl}}\\
\func{int}{GSub}{\param{const char*}{ pat}, \param{const char*}{ repl}}\\
\func{int}{GSub}{\param{const wxRegex\&}{ pat}, \param{const wxString\&}{ repl}}
\func{char\&}{GetWritableChar}{\param{size\_t}{ n}}
Returns a reference to the character at position {\it n}.
\membersection{wxString::GetWriteBuf}\label{wxstringgetwritebuf}
\func{char*}{GetWriteBuf}{\param{uint}{ len}}
Returns a writable buffer of at least {\it len} bytes.
Call \helpref{wxString::UngetWriteBuf}{wxstringungetwritebuf} as soon as possible
to put the string back into a reasonable state.
Global substitution: substitute all occurrences of {\it pat} with {\it repl},
returning the number of matches.
\membersection{wxString::Index}\label{wxstringIndex}
\constfunc{size\_t}{Index}{\param{char}{ ch}, \param{int}{ startpos = 0}}
\func{int}{Index}{\param{char}{ c}, \param{int}{ startpos = 0}} \param{ const}{}\\
\func{int}{Index}{\param{const wxString\&}{ y}, \param{int}{ startpos = 0}} \param{ const}{}\\
\func{int}{Index}{\param{const wxString\&}{ y}, \param{int}{ startpos}, \param{CaseCompare}{ cmp}} \param{ const}{}\\
\func{int}{Index}{\param{const wxSubString\&}{ y}, \param{int}{ startpos = 0}} \param{ const}{}\\
\func{int}{Index}{\param{const char*}{ t}, \param{int}{ startpos = 0}} \param{ const}{}\\
\func{int}{Index}{\param{const char*}{ t}, \param{int}{ startpos}, \param{CaseCompare}{ cmp}} \param{ const}{}\\
\func{int}{Index}{\param{const wxRegex\&}{ r}, \param{int}{ startpos = 0}} \param{ const}{}
Same as \helpref{wxString::Find}{wxstringfind}.
\constfunc{size\_t}{Index}{\param{const char*}{ sz}}
Same as \helpref{wxString::Find}{wxstringfind}.
\constfunc{size\_t}{Index}{\param{const char*}{ sz}, \param{bool}{ caseSensitive = TRUE}, \param{bool}{ fromEnd = FALSE}}
Search the element in the array, starting from either side.
If {\it fromEnd} is TRUE, reverse search direction.
If {\bf caseSensitive}, comparison is case sensitive (the default).
Returns the index of the first item matched, or NOT\_FOUND.
Return the position of target in string, or -1 for failure.
\membersection{wxString::Insert}\label{wxstringInsert}
\func{void}{Insert}{\param{const wxString\&}{ str}, \param{uint}{ index}}
\func{wxString\&}{Insert}{\param{int}{ pos}, \param{const char*}{ s}}\\
\func{wxString\&}{Insert}{\param{int}{ pos}, \param{const wxString\&}{ s}}
Add new element at the given position.
Insertion.
\membersection{wxString::IsAscii}\label{wxstringIsAscii}
\constfunc{bool}{IsAscii}{\void}
\func{int}{IsAscii}{\param{void}{}} \param{ const}{}
Returns TRUE if the string is ASCII.
Classification (should be capital, because of ctype.h macros).
\membersection{wxString::IsEmpty}\label{wxstringisempty}
\membersection{wxString::IsDefined}\label{wxstringIsDefined}
\constfunc{bool}{IsEmpty}{\void}
\func{int}{IsDefined}{\param{void}{}} \param{ const}{}
Returns TRUE if the string is NULL.
Classification (should be capital, because of ctype.h macros).
\membersection{wxString::IsNull}\label{wxstringIsNull}
\constfunc{bool}{IsNull}{\void}
\func{int}{IsNull}{\param{void}{}} \param{ const}{}
Returns TRUE if the string is NULL (same as IsEmpty).
Classification (should be capital, because of ctype.h macros).
\membersection{wxString::IsNumber}\label{wxstringIsNumber}
\constfunc{bool}{IsNumber}{\void}
\func{int}{IsNumber}{\param{void}{}} \param{ const}{}
Returns TRUE if the string is a number.
\membersection{wxString::IsSameAs}\label{wxstringissameas}
\constfunc{bool}{IsSameAs}{\param{const char*}{ psz}, \param{bool}{ caseSensitive = TRUE}}
Test for string equality, case-sensitive (default) or not.
caseSensitive is TRUE by default (case matters).
Returns TRUE if strings are equal, FALSE otherwise.
See also Cmp, CmpNoCase.
Classification (should be capital, because of ctype.h macros).
\membersection{wxString::IsWord}\label{wxstringIsWord}
\constfunc{bool}{IsWord}{\void}
\func{int}{IsWord}{\param{void}{}} \param{ const}{}
Returns TRUE if the string is a word. TODO: what's the definition of a word?
Classification (should be capital, because of ctype.h macros).
\membersection{wxString::Last}\label{wxstringLast}
\constfunc{char}{Last}{\void}
\func{int}{Last}{\param{char}{ c}} \param{ const}{}\\
\func{int}{Last}{\param{const char*}{ cs}} \param{ const}{}\\
\func{int}{Last}{\param{const wxString\&}{ cs}} \param{ const}{}
Returns the last character.
First or last occurrence of item.
\func{char\&}{Last}{\void}
\membersection{wxString::Lastchar}\label{wxstringLastchar}
Returns a reference to the last character (writable).
\func{char}{Lastchar}{\param{void}{}} \param{ const}{}
\membersection{wxString::Left}\label{wxstringleft}
Element extraction.
\constfunc{wxString}{Left}{\param{size\_t}{ count}}
\membersection{wxString::Length}\label{wxstringLength}
Returns the first {\it count} characters.
\constfunc{wxString}{Left}{\param{char}{ ch}}
Returns all characters before the first occurence of {\it ch}.
Returns the whole string if {\it ch} is not found.
\membersection{wxString::Len}\label{wxstringlen}
\constfunc{size\_t}{Len}{\void}
Returns the length of the string.
\membersection{wxString::Length}\label{wxstringlength}
\constfunc{size\_t}{Length}{\void}
Returns the length of the string (same as Len).
\func{unsigned int}{Length}{\param{void}{}} \param{ const}{}
\membersection{wxString::LowerCase}\label{wxstringLowerCase}
\func{void}{LowerCase}{\void}
Same as MakeLower.
\membersection{wxString::MakeLower}\label{wxstringmakelower}
\func{void}{MakeLower}{\void}
Converts all characters to lower case.
\membersection{wxString::MakeUpper}\label{wxstringmakeupper}
\func{void}{MakeUpper}{\void}
Converts all characters to upper case.
\func{void}{LowerCase}{\param{void}{}}
\membersection{wxString::Matches}\label{wxstringMatches}
\constfunc{bool}{Matches}{\param{const char*}{ szMask}}
\func{bool}{Matches}{\param{char}{ c}, \param{int}{ pos = 0}} \param{ const}{}\\
\func{bool}{Matches}{\param{const wxString\&}{ y}, \param{int}{ pos = 0}} \param{ const}{}\\
\func{bool}{Matches}{\param{const wxSubString\&}{ y}, \param{int}{ pos = 0}} \param{ const}{}\\
\func{bool}{Matches}{\param{const char*}{ t}, \param{int}{ pos = 0}} \param{ const}{}\\
\func{bool}{Matches}{\param{const wxRegex\&}{ r}, \param{int}{ pos = 0}} \param{ const}{}
Returns TRUE if the string contents matches a mask containing '*' and '?'.
Return 1 if target appears at position {\it pos} in wxString; else 0.
\membersection{wxString::Mid}\label{wxstringmid}
\membersection{wxString::OK}\label{wxstringOK}
\constfunc{wxString}{Mid}{\param{size\_t}{ first}, \param{size\_t}{ count = STRING\_MAXLEN}}
Returns a substring starting at {\it first}, with length {\it count}, or the rest of
the string if {\it count} is the default value.
\membersection{wxString::Pad}\label{wxstringpad}
\func{wxString\&}{Pad}{\param{size\_t}{ count}, \param{char}{ pad = ' '}, \param{bool}{ fromRight = TRUE}}
Adds {\it count} copies of {\it pad} to the beginning, or to the end of the string (the default).
Removes spaces from the left or from the right (default).
\func{int}{OK}{\param{void}{}} \param{ const}{}
\membersection{wxString::Prepend}\label{wxstringPrepend}
\func{wxString\&}{Prepend}{\param{const wxString\&}{ str}}
\func{wxString\&}{Prepend}{\param{const wxString\&}{ y}}\\
\func{wxString\&}{Prepend}{\param{const wxSubString\&}{ y}}\\
\func{wxString\&}{Prepend}{\param{const char*}{ t}}\\
\func{wxString\&}{Prepend}{\param{char}{ c}}
Prepends {\it str} to this string, returning a reference to this string.
Prepend.
\membersection{wxString::Printf}\label{wxstringprintf}
\func{wxString\&}{Prepend}{\param{char}{ c}, \param{int}{ rep=1}}
\func{int}{Printf}{\param{const char* }{pszFormat}, \param{}{...}}
Prepend {\it c}, {\it rep} times.
Similar to sprintf. Returns the number of characters written, or an integer less than zero
on error.
\membersection{wxString::Readline}\label{wxstringReadline}
\membersection{wxString::PrintfV}\label{wxstringprintfv}
\func{int}{PrintfV}{\param{const char* }{pszFormat}, \param{va\_list}{ argPtr}}
Similar to vprintf. Returns the number of characters written, or an integer less than zero
on error.
\func{friend int}{Readline}{\param{istream\&}{ s}, \param{wxString\&}{ x},
\param{char}{ terminator = '$\backslash$n'},
\param{int}{ discard\_terminator = 1}}\\
\func{friend int}{Readline}{\param{FILE *}{ f}, \param{wxString\&}{ x},
\param{char}{ terminator = '$\backslash$n'},
\param{int}{ discard\_terminator = 1}}
\membersection{wxString::Remove}\label{wxstringRemove}
\func{wxString\&}{Remove}{\param{size\_t}{ pos}}
\func{wxString\&}{RemoveLast}{\param{void}{}}\\
\func{wxString\&}{Remove}{\param{int}{ pos}}\\
\func{wxString\&}{Remove}{\param{int}{ pos}, \param{int}{ len}}
Same as Truncate. Removes the portion from {\it pos} to the end of the string.
\func{wxString\&}{Remove}{\param{size\_t}{ pos}, \param{size\_t}{ len}}
Removes the last {\it len} characters from the string, starting at {\it pos}.
\membersection{wxString::RemoveLast}\label{wxstringremovelast}
\func{wxString\&}{RemoveLast}{\void}
Removes the last character.
Remove {\it pos} to end of string.
\membersection{wxString::Replace}\label{wxstringReplace}
\func{uint}{Replace}{\param{const char*}{ szOld}, \param{const char*}{ szNew}, \param{bool}{ replaceAll}}
\func{wxString\&}{Replace}{\param{int}{ pos}, \param{int}{ n}, \param{const char*}{ s}}\\
\func{wxString\&}{Replace}{\param{int}{ pos}, \param{int}{ n}, \param{const wxString\&}{ s}}
Replace first (or all) occurences of substring with another one.
\membersection{wxString::Replicate}\label{wxstringReplicate}
{\it replaceAll}: global replace (default), or only the first occurence.
\func{friend wxString}{Replicate}{\param{char}{ c}, \param{int}{ n}}\\
\func{friend wxString}{Replicate}{\param{const wxString\&}{ y}, \param{int}{ n}}
Returns the number of replacements made.
Replication.
\membersection{wxString::Right}\label{wxstringright}
\membersection{wxString::Reverse}\label{wxstringReverse}
\constfunc{wxString}{Right}{\param{size\_t}{ count}}
Returns the last {\it count} characters.
\constfunc{wxString}{Right}{\param{char}{ ch}}
Returns all characters after the last occurence of {\it ch}.
Returns the whole string if {\it ch} is not found.
\membersection{wxString::SetChar}\label{wxstringsetchar}
\func{void}{SetChar}{\param{size\_t}{ n}, \param{char}{ch}}
Sets the character at position {\it n}.
\membersection{wxString::Shrink}\label{wxstringshrink}
\func{void}{Shrink}{\void}
Minimizes the string's memory. Only works if the data of this string is not shared.
\func{void}{Reverse}{\param{void}{}}\\
\func{friend wxString}{Reverse}{\param{wxString\&}{ x}}
\membersection{wxString::sprintf}\label{wxstringsprintf}
\func{void}{sprintf}{\param{const wxString\& }{ fmt}}
\func{void}{sprintf}{\param{const char* }{ fmt}}
Formatted assignment. We do not use the 'sprintf' constructor anymore,
because with that constructor, every initialisation with a string would
go through sprintf and this is not desirable, because sprintf
interprets some characters. With the above function we can write:
The same as Printf.
\begin{verbatim}
wxString msg; msg.sprintf("Processing item %d\n", count);
\end{verbatim}
\membersection{wxString::Strip}\label{wxstringStrip}
\begin{verbatim}
enum stripType {leading = 0x1, trailing = 0x2, both = 0x3};
enumStripType {leading = 0x1, trailing = 0x2, both = 0x3};
\end{verbatim}
\constfunc{wxString}{Strip}{\param{stripType}{ s = trailing}}
\func{wxSubString}{Strip}{\param{StripType}{ s = trailing}, \param{char}{ c = ' '}}
Strip characters at the front and/or end. The same as Trim except that it
doesn't change this string.
Strip characterss at the front and/or end.
StripType is defined for bitwise ORing.
\membersection{wxString::Trim}\label{wxstringtrim}
\membersection{wxString::SubString}\label{wxstringSubString}
\func{wxString\&}{Trim}{\param{bool}{ fromRight = TRUE}}
\func{wxString}{SubString}{\param{int}{ from}, \param{int}{ to}}
Removes spaces from the left or from the right (default).
Edward Zimmermann's additions.
\membersection{wxString::Truncate}\label{wxstringtruncate}
\membersection{wxString::Through}\label{wxstringThrough}
\func{wxString\&}{Truncate}{\param{size\_t}{ len}}
\func{wxSubString}{Through}{\param{int}{ pos}}\\
\func{wxSubString}{Through}{\param{const wxString\&}{ x}, \param{int}{ startpos = 0}}\\
\func{wxSubString}{Through}{\param{const wxSubString\&}{ x}, \param{int}{ startpos = 0}}\\
\func{wxSubString}{Through}{\param{const char*}{ t}, \param{int}{ startpos = 0}}\\
\func{wxSubString}{Through}{\param{char}{ c}, \param{int}{ startpos = 0}}\\
\func{wxSubString}{Through}{\param{const wxRegex\&}{ r}, \param{int}{ startpos = 0}}
Truncate the string to the given length.
\membersection{wxString::Upcase}\label{wxstringUpcase}
\membersection{wxString::UngetWriteBuf}\label{wxstringungetwritebuf}
\func{void}{UngetWriteBuf}{\void}
Puts the string back into a reasonable state, after
\rtfsp\helpref{wxString::GetWriteBuf}{wxstringgetwritebuf} was called.
\func{void}{Upcase}{\param{void}{}}\\
\func{friend wxString}{Upcase}{\param{wxString\&}{ x}}
\membersection{wxString::UpperCase}\label{wxstringUpperCase}
\func{void}{UpperCase}{\void}
The same as MakeUpper.
\func{void}{UpperCase}{\param{void}{}}\\
\membersection{wxString::operator $=$}\label{wxstringoperatorassign}
\func{wxString\&}{operator $=$}{\param{const wxString\&}{ str}}
\func{wxString\&}{operator $=$}{\param{const char*}{ psz}}
\func{wxString\&}{operator $=$}{\param{char}{ c}}
\func{wxString\&}{operator $=$}{\param{const unsigned char*}{ psz}}
\func{wxString\&}{operator $=$}{\param{const wchar\_t*}{ pwz}}
\func{wxString\&}{operator $=$}{\param{const wxString\&}{ y}}\\
\func{wxString\&}{operator $=$}{\param{const char*}{ y}}\\
\func{wxString\&}{operator $=$}{\param{char}{ c}}\\
\func{wxString\&}{operator $=$}{\param{const wxSubString\&}{ y}}
Assignment.
\membersection{operator wxString::$+$}\label{wxstringoperatorplus}
Concatenation.
\func{wxString}{operator $+$}{\param{const wxString\&}{ x}, \param{const wxString\&}{ y}}
\func{wxString}{operator $+$}{\param{const wxString\&}{ x}, \param{const char*}{ y}}
\func{wxString}{operator $+$}{\param{const wxString\&}{ x}, \param{char}{ y}}
\func{wxString}{operator $+$}{\param{const char*}{ x}, \param{const wxString\&}{ y}}
\membersection{wxString::operator $+=$}\label{wxstringPlusEqual}
\func{void}{operator $+=$}{\param{const wxString\&}{ str}}
\func{void}{operator $+=$}{\param{const char*}{ psz}}
\func{void}{operator $+=$}{\param{char}{ c}}
\func{wxString\&}{operator $+=$}{\param{const wxString\&}{ y}}\\
\func{wxString\&}{operator $+=$}{\param{const wxSubString\&}{ y}}\\
\func{wxString\&}{operator $+=$}{\param{const char*}{ t}}\\
\func{wxString\&}{operator $+=$}{\param{char}{ c}}
Concatenation.
\membersection{wxString::operator []}\label{wxstringoperatorbracket}
\func{char\&}{operator []}{\param{size\_t}{ i}}
\func{char}{operator []}{\param{size\_t}{ i}}
\func{char}{operator []}{\param{int}{ i}}
\func{char\&}{operator []}{\param{int}{ i}}
Element extraction.
\membersection{wxString::operator ()}\label{wxstringoperatorparenth}
\func{wxString}{operator ()}{\param{size\_t}{ start}, \param{size\_t}{ len}}
Same as Mid (substring extraction).
\func{char\&}{operator ()}{\param{int}{ i}}
\membersection{wxString::operator \cinsert}\label{wxstringoperatorout}
\func{wxString\&}{operator \cinsert}{\\param{const wxString\&}{ str}}
\func{wxString\&}{operator \cinsert}{\\param{const char*}{ psz}}
\func{wxString\&}{operator \cinsert}{\\param{char }{ch}}
Same as $+=$.
\func{friend ostream\&}{operator \cinsert}{\param{ostream\&}{ s}, \param{const wxString\&}{ x}}\\
\func{friend ostream\&}{operator \cinsert}{\param{ostream\&}{ s}, \param{const wxSubString\&}{ x}}
\membersection{wxString::operator \cextract}\label{wxstringoperatorin}
\func{friend istream\&}{operator \cextract}{\param{istream\&}{ is}, \param{wxString\&}{ str}}
Extraction from a stream.
\func{friend istream\&}{operator \cextract}{\param{istream\&}{ s}, \param{wxString\&}{ x}}
\membersection{wxString::operator const char*}\label{wxstringoperatorconstcharpt}
\constfunc{}{operator const char*}{\param{void}{}}
\constfunc{}{operator const char*}{\void}
Conversion.
Implicit conversion to a C string.
\membersection{wxCHARARG}\label{wxstringwxCHARARG}
\begin{verbatim}
#define wxCHARARG(s) ((const wxString\& )(s).Chars())
\end{verbatim}
Here is a very, very, very ugly macro, but it makes things more
transparent in cases, where a library function requires a
(const wxString\& ) argument. This is especially the case in wxWindows,
where all char-arguments are (const wxString\& ) and not (const char* ).
This macro should only be used in such cases and NOT to
modify the internal data.
The conventional way would be 'function((char*)string.Chars())'.
With the wxCHARARG macro, this can be achieved by 'function(wxCHARARG(string))'.
This makes it clearer that the usage should be confined
to arguments.
\membersection{CommonPrefix}\label{wxstringCommonPrefix}
\func{friend wxString}{CommonPrefix}{\param{const wxString\&}{ x}, \param{const wxString\&}{ y},\\
\param{int}{ startpos = 0}}\\
\membersection{CommonSuffix}\label{wxstringCommonSuffix}
\func{friend wxString}{CommonSuffix}{\param{const wxString\&}{ x}, \param{const wxString\&}{ y},\\
\param{int}{ startpos = -1}}
\membersection{Compare}\label{wxstringCompare}
\func{int}{Compare}{\param{const wxString\&}{ x}, \param{const wxString\&}{ y}}\\
\func{int}{Compare}{\param{const wxString\&}{ x}, \param{const wxSubString\&}{ y}}\\
\func{int}{Compare}{\param{const wxString\&}{ x}, \param{const char*}{ y}}\\
\func{int}{Compare}{\param{const wxSubString\&}{ x}, \param{const wxString\&}{ y}}\\
\func{int}{Compare}{\param{const wxSubString\&}{ x}, \param{const wxSubString\&}{ y}}\\
\func{int}{Compare}{\param{const wxSubString\&}{ x}, \param{const char*}{ y}}
Case dependent comparison. Returns 0 if the match succeeded.
\membersection{FCompare}\label{wxstringFCompare}
\func{int}{FCompare}{\param{const wxString\&}{ x}, \param{const wxString\&}{ y}}
Case independent comparison. Returns 0 if the match succeeded.
\membersection{Comparison operators}\label{wxstringComparison}
\func{bool}{operator $==$}{\param{const wxString\&}{ x}, \param{const wxString\&}{ y}}
\func{int}{operator $==$}{\param{const wxString\&}{ x}, \param{const wxString\&}{ y}}\\
\func{int}{operator $!=$}{\param{const wxString\&}{ x}, \param{const wxString\&}{ y}}\\
\func{int}{operator $>$}{\param{const wxString\&}{ x}, \param{const wxString\&}{ y}}\\
\func{int}{operator $>=$}{\param{const wxString\&}{ x}, \param{const wxString\&}{ y}}\\
\func{int}{operator $<$}{\param{const wxString\&}{ x}, \param{const wxString\&}{ y}}\\
\func{int}{operator $<=$}{\param{const wxString\&}{ x}, \param{const wxString\&}{ y}}\\
\func{int}{operator $==$}{\param{const wxString\&}{ x}, \param{const wxSubString\&}{ y}}\\
\func{int}{operator $!=$}{\param{const wxString\&}{ x}, \param{const wxSubString\&}{ y}}\\
\func{int}{operator $>$}{\param{const wxString\&}{ x}, \param{const wxSubString\&}{ y}}\\
\func{int}{operator $>=$}{\param{const wxString\&}{ x}, \param{const wxSubString\&}{ y}}\\
\func{int}{operator $<$}{\param{const wxString\&}{ x}, \param{const wxSubString\&}{ y}}\\
\func{int}{operator $<=$}{\param{const wxString\&}{ x}, \param{const wxSubString\&}{ y}}\\
\func{int}{operator $==$}{\param{const wxString\&}{ x}, \param{const char*}{ t}}\\
\func{int}{operator $!=$}{\param{const wxString\&}{ x}, \param{const char*}{ t}}\\
\func{int}{operator $>$}{\param{const wxString\&}{ x}, \param{const char*}{ t}}\\
\func{int}{operator $>=$}{\param{const wxString\&}{ x}, \param{const char*}{ t}}\\
\func{int}{operator $<$}{\param{const wxString\&}{ x}, \param{const char*}{ t}}\\
\func{int}{operator $<=$}{\param{const wxString\&}{ x}, \param{const char*}{ t}}\\
\func{int}{operator $==$}{\param{const wxSubString\&}{ x}, \param{const wxString\&}{ y}}\\
\func{int}{operator $!=$}{\param{const wxSubString\&}{ x}, \param{const wxString\&}{ y}}\\
\func{int}{operator $>$}{\param{const wxSubString\&}{ x}, \param{const wxString\&}{ y}}\\
\func{int}{operator $>=$}{\param{const wxSubString\&}{ x}, \param{const wxString\&}{ y}}\\
\func{int}{operator $<$}{\param{const wxSubString\&}{ x}, \param{const wxString\&}{ y}}\\
\func{int}{operator $<=$}{\param{const wxSubString\&}{ x}, \param{const wxString\&}{ y}}\\
\func{int}{operator $==$}{\param{const wxSubString\&}{ x}, \param{const wxSubString\&}{ y}}\\
\func{int}{operator $!=$}{\param{const wxSubString\&}{ x}, \param{const wxSubString\&}{ y}}\\
\func{int}{operator $>$}{\param{const wxSubString\&}{ x}, \param{const wxSubString\&}{ y}}\\
\func{int}{operator $>=$}{\param{const wxSubString\&}{ x}, \param{const wxSubString\&}{ y}}\\
\func{int}{operator $<$}{\param{const wxSubString\&}{ x}, \param{const wxSubString\&}{ y}}\\
\func{int}{operator $<=$}{\param{const wxSubString\&}{ x}, \param{const wxSubString\&}{ y}}\\
\func{int}{operator $==$}{\param{const wxSubString\&}{ x}, \param{const char*}{ t}}\\
\func{int}{operator $!=$}{\param{const wxSubString\&}{ x}, \param{const char*}{ t}}\\
\func{int}{operator $>$}{\param{const wxSubString\&}{ x}, \param{const char*}{ t}}\\
\func{int}{operator $>=$}{\param{const wxSubString\&}{ x}, \param{const char*}{ t}}\\
\func{int}{operator $<$}{\param{const wxSubString\&}{ x}, \param{const char*}{ t}}\\
\func{int}{operator $<=$}{\param{const wxSubString\&}{ x}, \param{const char*}{ t}}
\func{bool}{operator $==$}{\param{const wxString\&}{ x}, \param{const char*}{ t}}
\membersection{operator $+$}\label{wxstringoperatorplus}
\func{bool}{operator $!=$}{\param{const wxString\&}{ x}, \param{const wxString\&}{ y}}
\func{wxString}{operator $+$}{\param{const wxString\&}{ x}, \param{const wxString\&}{ y}}\\
\func{wxString}{operator $+$}{\param{const wxString\&}{ x}, \param{const wxSubString\&}{ y}}\\
\func{wxString}{operator $+$}{\param{const wxString\&}{ x}, \param{const char*}{ y}}\\
\func{wxString}{operator $+$}{\param{const wxString\&}{ x}, \param{char}{ y}}\\
\func{wxString}{operator $+$}{\param{const wxSubString\&}{ x}, \param{const wxString\&}{ y}}\\
\func{wxString}{operator $+$}{\param{const wxSubString\&}{ x}, \param{const wxSubString\&}{ y}}\\
\func{wxString}{operator $+$}{\param{const wxSubString\&}{ x}, \param{const char*}{ y}}\\
\func{wxString}{operator $+$}{\param{const wxSubString\&}{ x}, \param{char}{ y}}\\
\func{wxString}{operator $+$}{\param{const char*}{ x}, \param{const wxString\&}{ y}}\\
\func{wxString}{operator $+$}{\param{const char*}{ x}, \param{const wxSubString\&}{ y}}
\func{bool}{operator $!=$}{\param{const wxString\&}{ x}, \param{const char*}{ t}}
\membersection{Join}\label{wxstringJoin}
\func{bool}{operator $>$}{\param{const wxString\&}{ x}, \param{const wxString\&}{ y}}
\func{friend wxString}{Join}{\param{wxString}{ src[]}, \param{int}{ n}, \param{const wxString\&}{ sep}}
\func{bool}{operator $>$}{\param{const wxString\&}{ x}, \param{const char*}{ t}}
\membersection{Split}\label{wxstringSplit}
\func{bool}{operator $>=$}{\param{const wxString\&}{ x}, \param{const wxString\&}{ y}}
\func{friend int}{Split}{\param{const wxString\&}{ x}, \param{wxString}{ res[]}, \param{int}{ maxn},\\
\param{const wxString\&}{ sep}}\\
\func{friend int}{Split}{\param{const wxString\&}{ x}, \param{wxString}{ res[]}, \param{int}{ maxn},\\
\param{const wxRegex\&}{ sep}}\\
Split string into array res at separators; return number of elements
\func{bool}{operator $>=$}{\param{const wxString\&}{ x}, \param{const char*}{ t}}
\func{bool}{operator $<$}{\param{const wxString\&}{ x}, \param{const wxString\&}{ y}}
\func{bool}{operator $<$}{\param{const wxString\&}{ x}, \param{const char*}{ t}}
\func{bool}{operator $<=$}{\param{const wxString\&}{ x}, \param{const wxString\&}{ y}}
\func{bool}{operator $<=$}{\param{const wxString\&}{ x}, \param{const char*}{ t}}
\wxheading{Remarks}
These comparisons are case-sensitive.

View File

@@ -11,7 +11,7 @@ This licence is intended to protect wxWindows, its developers,
and its users, so that the considerable investment it represents
is not abused.
Unlike the L-GPL licence, you as a user are not obliged to
Unlike the wxWindows licence, you as a user are not obliged to
distribute wxWindows source code with your products. However,
you are prevented from selling the code without permission from
the authors, or denying others the rights to use or distribute

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