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
1638 changed files with 26765 additions and 220881 deletions

View File

@@ -1,4 +0,0 @@
system.list
bin
.gdb_history
Test

View File

@@ -58,7 +58,7 @@ user::
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

@@ -9,9 +9,6 @@ docs/todo.txt
docs/licence.txt
docs/symbols.txt
src/*.inc
src/mkdir
src/common/*.cpp
src/common/dosyacc.c
src/common/doslex.c
@@ -51,7 +48,6 @@ src/zlib/*.3
src/zlib/*.mms
include/wx/*.h
include/wx/*.cpp
include/wx/wx_setup.vms
include/wx/common/*.h
include/wx/generic/*.h
@@ -88,7 +84,6 @@ utils/wxhelp/src/*.cpp
utils/wxhelp/src/*.h
utils/wxhelp/src/makefile.*
utils/wxhelp/src/*.xbm
utils/wxhelp/src/*.xpm
utils/wxhelp/src/*.txt
utils/wxhelp/src/*.ico
utils/wxhelp/src/*.def
@@ -99,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
@@ -117,7 +111,6 @@ utils/wxtree/src/*.cpp
utils/wxtree/src/*.h
utils/wxtree/src/makefile.*
utils/wxtree/src/*.xbm
utils/wxtree/src/*.xpm
utils/wxtree/lib/dummy
utils/wxtree/src/*.ico
utils/wxtree/src/*.def
@@ -128,7 +121,6 @@ utils/wxgraph/src/*.c
utils/wxgraph/src/*.h
utils/wxgraph/src/makefile.*
utils/wxgraph/src/*.xbm
utils/wxgraph/src/*.xpm
utils/wxgraph/lib/dummy
utils/wxgraph/src/*.ico
utils/wxgraph/src/*.def
@@ -151,7 +143,6 @@ utils/rcparser/src/*.c
utils/rcparser/src/*.h
utils/rcparser/src/makefile.*
utils/rcparser/src/*.xbm
utils/rcparser/src/*.xpm
utils/rcparser/lib/dummy
utils/rcparser/src/*.ico
utils/rcparser/src/*.def
@@ -164,7 +155,6 @@ utils/colours/*.def
utils/colours/*.rc
utils/colours/makefile.*
utils/colours/*.xbm
utils/colours/*.xpm
utils/colours/*.txt
utils/wxprop/src/*.h
@@ -173,21 +163,18 @@ utils/wxprop/src/*.def
utils/wxprop/src/*.rc
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/src/bitmaps/*.xbm
utils/dialoged/src/bitmaps/*.xpm
utils/dialoged/src/*.h
utils/dialoged/src/*.cpp
utils/dialoged/src/*.def
utils/dialoged/src/*.rc
utils/dialoged/src/makefile.*
utils/dialoged/src/*.xbm
utils/dialoged/src/*.xpm
utils/dialoged/src/*.txt
utils/dialoged/src/*.inf
utils/dialoged/test/*.h
@@ -208,24 +195,22 @@ utils/dialoged/test/*.bmp
samples/*.txt
samples/makefile.*
samples/config/*.cpp
samples/config/*.h
samples/config/*.def
samples/config/makefile*.*
samples/config/*.xbm
samples/config/*.xpm
samples/config/*.txt
samples/config/*.ico
samples/config/*.bmp
samples/config/*.rc
samples/config/*.wav
samples/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
@@ -235,9 +220,8 @@ samples/dynamic/*.wav
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
@@ -246,9 +230,8 @@ 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
@@ -257,9 +240,8 @@ samples/types/*.h
samples/types/*.def
samples/types/*.rc
samples/types/*.txt
samples/types/makefile*.*
samples/types/makefile.*
samples/types/*.xbm
samples/types/*.xpm
samples/types/*.ico
samples/resource/*.cpp
@@ -268,26 +250,23 @@ 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
@@ -296,18 +275,16 @@ samples/mdi/bitmaps/*.ico
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
@@ -315,55 +292,73 @@ samples/controls/*.rc
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
@@ -372,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
@@ -383,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
@@ -409,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
@@ -423,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
@@ -435,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
@@ -447,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
@@ -458,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
@@ -473,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
@@ -488,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
@@ -499,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
@@ -510,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
@@ -523,42 +505,35 @@ 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/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

View File

@@ -1,69 +0,0 @@
install-sh
Makefile
template.mak
TODO.txt
docs/gtk/*.html
src/mkdirs
src/Makefile
src/Makefile.in
src/*.inc
src/gtk/*.cpp
src/gtk/*.c
src/gtk/*.inc
src/gtk/*.xbm
src/gtk/setup/*.hin
src/gtk/setup/*.in
src/gtk/setup/rules/*
src/gtk/setup/rules/generic/*
src/gtk/setup/rules/linux/*
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
install/gtk/*
misc/afm/*
misc/gs_afm/*
misc/imlib/*
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

View File

@@ -1,5 +1,4 @@
docs/msw/*.txt
docs/licence.txt
src/makeb32.env
src/makebcc.env

View File

@@ -1,29 +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\wx200gen.zip, %dest\wx200doc.zip, %dest\wx200msw.zip, %dest\wx200ps.zip, %dest\wx200hlp.zip, %dest\wx200htm.zip, %dest\wx200pdf.zip
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\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
cd %dest
cd %2
echo wxWindows archived.
goto end

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

@@ -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.
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.
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.
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

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

@@ -32,9 +32,21 @@ The following are a variety of windows that are derived from wxWindow.
\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 (undocumented)}
\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}}
@@ -319,7 +331,6 @@ product.
\twocolitem{\helpref{wxTimer}{wxtimer}}{Timer class}
\twocolitem{\helpref{wxSystemSettings}{wxsystemsettings}}{System settings class}
\twocolitem{\helpref{wxWinHelpController}{wxwinhelpcontroller}}{Controls WinHelp instances}
\twocolitem{\helpref{wxConfig}{wxconfigbase}}{Classes for configuration reading/writing}
\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

@@ -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

@@ -46,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
@@ -62,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
@@ -97,7 +94,6 @@ $$\image{14cm;0cm}{wxclass.ps}$$
\input listbox.tex
\input listctrl.tex
\input listevt.tex
% \input log.tex
\input mask.tex
\input mdi.tex
\input menu.tex
@@ -148,7 +144,7 @@ $$\image{14cm;0cm}{wxclass.ps}$$
\input statbox.tex
\input stattext.tex
\input statusbr.tex
\input wxstring.tex
%\input wxstring.tex
\input strlist.tex
\input sysclevt.tex
\input settings.tex
@@ -176,8 +172,3 @@ $$\image{14cm;0cm}{wxclass.ps}$$
\input function.tex
%%% Local Variables:
%%% mode: latex
%%% TeX-master: "referenc"
%%% End:

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,612 +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}{configoverview} 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}{configoverview}, 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

@@ -91,7 +91,7 @@ Returns the name of the database associated with the current connection.
\func{wxString}{GetDataSource}{\void}
Returns the name of the connected data source.
\membersection{wxDatabase::GetErrorClass}
\func{wxString}{GetErrorClass}{\void}
@@ -141,7 +141,7 @@ Returns the current ODBC database handle.
\func{HENV}{GetHENV}{\void}
Returns the ODBC environment handle.
\membersection{wxDatabase::GetInfo}
\func{bool}{GetInfo}{\param{long}{ infoType}, \param{long *}{buf}}
@@ -219,7 +219,7 @@ source. The parameters exclusive and readOnly are not used.
\func{void}{OnSetOptions}{\param{wxRecordSet *}{recordSet}}
Not implemented.
\membersection{wxDatabase::OnWaitForDataSource}
\func{void}{OnWaitForDataSource}{\param{bool}{ stillExecuting}}
@@ -237,13 +237,13 @@ Sends a rollback to the ODBC driver. Not implemented.
\func{void}{SetDataSource}{\param{const wxString\& }{s}}
Sets the name of the data source. Not implemented.
\membersection{wxDatabase::SetLoginTimeout}
\func{void}{SetLoginTimeout}{\param{long}{ seconds}}
Sets the time to wait for an user login. Not implemented.
\membersection{wxDatabase::SetPassword}
\func{void}{SetPassword}{\param{const wxString\& }{s}}
@@ -262,7 +262,7 @@ mode is supported, so this function has no effect.
\func{void}{SetQueryTimeout}{\param{long}{ seconds}}
Sets the time to wait for a response to a query. Not implemented.
\membersection{wxDatabase::SetUsername}
\func{void}{SetUsername}{\param{const wxString\& }{s}}

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

@@ -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

@@ -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

@@ -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

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

@@ -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

@@ -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,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{July 31st 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

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

@@ -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

@@ -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{July 31st 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

@@ -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

@@ -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

@@ -188,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

@@ -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

@@ -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,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

@@ -8,6 +8,7 @@ This chapter contains a selection of topic overviews.
\input tbitmap.tex
\input tdialog.tex
\input tfont.tex
\input tstring.tex
\input tsplittr.tex
\input ttreectl.tex
\input tlistctl.tex
@@ -32,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}}

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

@@ -1585,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}
@@ -1613,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}
@@ -1644,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.
\membersection{wxString::Readline}\label{wxstringReadline}
Similar to sprintf. Returns the number of characters written, or an integer less than zero
on error.
\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

View File

@@ -2,19 +2,6 @@
wxWindows 2.0 for Windows Change Log
------------------------------------
Alpha 14, July 31st 1998
------------------------
- Toolbar API has been simplified, and now
wxFrame::GetClientArea returns the available client
area when toolbar, status bar etc. have been accounted for.
wxFrame::CreateToolBar added in line with CreateStatusBar.
- Documentation updates, incl. for wxToolBar.
- New wxAcceleratorTable class plus wxFrame::SetAcceleratorTable.
- Various additions from other folk, e.g. streams, wxConfig
changes, wxNotebook.
- Added wxDocMDIParentFrame, wxDocMDIChildFrame for doc/view.
Alpha 13, July 8th 1998
-----------------------

View File

@@ -5,6 +5,8 @@ Todo on wxWin 2.0, Windows platform
HIGH PRIORITY
-------------
Integrate Robert's wxGrid enhancements.
Find/add wxThread sample - Arthur T-D?
wxControl dimensions should be optionally based on dialog font
@@ -12,12 +14,15 @@ size for portability (dialog units as per Windows).
Implement wxDC floating point transformations.
Remove transformation from device to logical coordinates from
events e.g. mouse events.
Add wxDC::DeviceToLogical -> wxPoint etc (convenience accessors).
Revamp Dialog Editor for new controls and properties (e.g.
window id).
Tidy wxConfig API.
Registry classes (check out wxConfig class - see issues.txt).
Change DnD classes to use global symbols, and wxString.
@@ -42,20 +47,18 @@ Update manual.
wxListBox changes (for ownerdraw functionality)
wxThread DONE (except for topic overview)
wxHelpController classes DONE (except for Unix ones)
wxString PARTLY DONE
wxString
wxTString
Drag and drop (change API if required, e.g. const).
wxCheckListBox
wxAcceleratorTable
wxBaseArray, other arrays
(wxOwnerDrawn)
Document the include file for each class
Macros, e.g. wxASSERT
Stream classes
Functions
Write tutorial.
A wxDC function (or two) for drawing 3D edges.
Other static classes.
Makefiles for other compilers. Generic makefiles?
Rewrite makefiles to maintain simultaneous debug/release
@@ -65,15 +68,31 @@ More wxSystemSettings (see comment in settings.cpp).
wxSocket integration.
Convert remaining utilities e.g. (GLCanvas; wxGraphLayout) and samples
wxListCtrl, wxTreeCtrl, wxImageList integration with Robert
Roebling's classes.
Convert OGL, other utilities and samples.
Check TODO entries.
Change #include "wx/xxx.h" to #include <wx/xxx.h>
Tidy code further, e.g. formatting from DevStudio, plus
standard header.
Shell function to invoke a document with open, print, whatever...
wxTextCtrl (and wxMultiText/wxTextWindow in wxWin 1.xx) - differences between Edit
and RichEdit controls.
Make use of Vadim's gettext implementation throughout wxWin code.
Document it.
Change wxUpdateIterator to use wxRegion; or scrap
wxUpdateIterator? See wxGTK.
Check WXWIN_COMPATIBILITY mode, remove any unnecessary #ifdefs.
Retain callback functions; have semi-compatible callback function prototypes
for all controls, at least in WXWIN_COMPATIBLE mode, but
retain (Set)Callback for all compilations. This is following a
@@ -81,13 +100,18 @@ panicky response to losing callbacks.
Merge dib.cpp, dibutils.cpp.
Simplify the toolbar samples.
Add a wxTabCtrl sample.
Improve printing. More API functions for printer DCs (to get
printer characteristics) and more reliable printing framework.
Add GetIcon, GetBitmap to wxImageList. Perhaps store bitmaps
in image list so we can get them later.
EVT_ENTER/LEAVE_WINDOW: Perhaps one approach to reliable implementation of
EVT_LEAVE_WINDOW is to set a flag when the mouse pointer is in a window,
then in idle time, check this window.
If the flag is set but the mouse pointer is outside the window, then
it's time to generate an EVT_LEAVE_WINDOW. This would be necessary at
least for the case when the mouse cursor goes off the application windows,
and no motion event was generated (i.e. you moved the mouse quickly!).
If it goes from one app window to another, you could generate the event sooner.
LOW PRIORITY
------------
@@ -108,8 +132,12 @@ BS_BITMAP, SS_BITMAP - but this may not allow wxBitmap
argument, so instead just allow controls loaded from native
resource to deal with this style and call default processing.
Completion of drag and drop support (Vadim).
Better clipboard support.
Toolbars: use event tables not virtual functions.
wxWizard class?
Doc/view - have some standard views/docs e.g. wxTextView.
@@ -125,6 +153,10 @@ Integrate existing multimedia classes.
Rich text class?
Optimize size further.
wxThread integration.
Look at WinCE stuff incl. database classes.
Improve conversion guide, compatibility classes, tools?

View File

@@ -4,22 +4,17 @@ GUIs:
-----
__X__ any X, but not GTK
__WXMOTIF__ Motif
__WXXT__ Xt; mutually exclusive with WX_MOTIF (?)
__WXGTK__ GTK
__WXMSW__ Any Windows
__WXMAC__ MacOS
__MOTIF__ Motif
__XT__ Xt; mutually exclusive with WX_MOTIF (?)
__GTK__ GTK
__XVIEW__ Obsolete!
__WINDOWS__ Any Windows
__MAC__ MacOS
__UNIX__ any Unix
__WINDOWS__ any Windows
__WIN95__ GUI for Windows 95 and above; NT 4.0 and above.
__WIN32__ WIN32 API
__NT__ Windows NT
__WXCURSES__ CURSES
__WXSTUBS__ Stubbed version ('template' wxWin implementation)
In fact, they should better all start with __WX instead of __ only.
The only GUIs implemented for 2.0 are __WXGTK__, __WXMSW__ and __WXMOTIF__
yet. Any new ones, please start the define with __WX.
__CURSES__ CURSES
OSes/machines:
@@ -56,6 +51,6 @@ __XLC__ ?? compiler
wxWindows modes:
----------------
__WXDEBUG__ usage: #ifdef __DEBUG__ (=> debug mode, else => release)
__DEBUG__ usage: #ifdef __DEBUG__ (=> debug mode, else => release)
WXDEBUG usage: #if DEBUG (0: release, 1: minimal debug code, ...)

Binary file not shown.

View File

@@ -1,70 +0,0 @@
$Id$
<br>
<H1>Proposal for a port of wxWindows to Qt - wxQt</H1>
<p>
Following the recent discussions
and flamewars about KDE vs Gnome, we got worried that we'll see a
repetition of the same damaging infighting from which Unix has
suffered before. Competition is a good thing, but the current
situation leaves application developers with a difficult decision to
make: Write for KDE, using qt/harmony or write for Gnome, using GTK?
Whatever happens to these projects, we will end up with a lot of
duplicated efforts and a mix of applications written for either of the
two environments. The result will not be the consistent look and feel
that both projects aim for.
<p>
The people on the wxWindows developers team thought that we might have
a solution for this problem, if we can get some outside help to get it
done. Let us explain: wxWindows is a cross-platform development
toolkit, a library of C++ classes which provide GUI concepts as well
as other cross-platform issues such as container classes, debug
features or configuration management. It has been around since 1992
and started by supporting Motif, XView and MS-Windows, with a direct
X11/Xt port added later. Last year, a major rewrite was started and we
now have a much advanced library, available for MS Windows, with a
Motif port under construction. Later last year, Robert Roebling set
out on a one-man project to build wxGTK, a gtk-based implementation of
wxWindows which in less than a year has become sufficiently stable to
use it as the main development platform of rather large
applications. The wxWindows license is a variant of the LGPL,
which should meet no objections from the free software community. In
fact, this has been an open source project long before the term became
commonly used.
<p>
Our idea is, that if this is good enough to work across different
operating systems (a MacOS port is under construction, too), it could
easily bridge the gap between KDE and Gnome. The quick evolution of
wxGTK has shown that a new port based on an existing widget set or
toolkit can easily be created by a small team within a few
months. Therefore, we would like to start a project for a Qt/Harmony
based wxWindow library, wxQt. It would then be possible for
application developers to write the same source and compile it either
for KDE, Gnome or even any of the other supported systems.
<p>
But for this we need help. The core developers are all pretty busy on
the existing ports, but we could provide significant help and support
for any such effort. A wxQt port could also recycle lots of existing
code from the other ports.
Please, join us in this effort and, if you feel that you could
contribute, join the wxWindows developers mailing list for further
discussions. Just send a mail containing "<tt>subscribe</tt>" to
<tt>wxwin-developers-request@wx.dent.med.uni-muenchen.de</tt>
<p>
You can find some more information about wxWindows at the following places:
<ul>
<li>The <a href="http://web.ukonline.co.uk/julian.smart/wxwin/">wxWindows homepage</a>.
<li>The <a href="http://www.freiburg.linux.de/~wxxt/">wxGTK homepage</a>
<li>The <a
href="http://Ballueder.home.ml.org/wxWindows/wxQt.html">wxQt
proposal</a>(this text)
<li>The <a href="http://Ballueder.home.ml.org/M/">home of <em>M</em></a>, an email client developed using wxGTK, showing several <a href="http://Ballueder.home.ml.org/M/screenshots/">screenshots</a> of how it actually looks like.
</ul>
<p>
<hr>
Karsten Ballueder <tt><a
href="mailto:Ballueder@usa.net">Ballueder@usa.net</a> <a
href="http://Ballueder.home.ml.org/">http://Ballueder.home.ml.org/</a></tt>

View File

@@ -1,19 +0,0 @@
#ifndef _WX_ACCEL_H_BASE_
#define _WX_ACCEL_H_BASE_
#if defined(__WXMSW__)
#include "wx/msw/accel.h"
#elif defined(__WXMOTIF__)
#include "wx/motif/accel.h"
#elif defined(__WXGTK__)
#include "wx/gtk/accel.h"
#elif defined(__WXQT__)
#include "wx/qt/accel.h"
#elif defined(__WXMAC__)
#include "wx/mac/accel.h"
#elif defined(__WXSTUBS__)
#include "wx/stubs/accel.h"
#endif
#endif
// _WX_ACCEL_H_BASE_

View File

@@ -9,34 +9,29 @@
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifndef _WX_APP_H_BASE_
#define _WX_APP_H_BASE_
#ifndef __APPH_BASE__
#define __APPH_BASE__
#ifdef __WXMSW__
#ifndef __GTK__
class WXDLLEXPORT wxApp;
typedef wxApp* (*wxAppInitializerFunction) (void);
#endif
#include "wx/object.h"
#ifndef __WXMSW__
#ifdef __GTK__
typedef wxObject* (*wxAppInitializerFunction) (void); // returning wxApp* won't work with gcc
#endif
#if defined(__WXMSW__)
#if defined(__WINDOWS__)
#include "wx/msw/app.h"
#elif defined(__WXMOTIF__)
#include "wx/motif/app.h"
#elif defined(__WXQT__)
#include "wx/qt/app.h"
#elif defined(__WXGTK__)
#elif defined(__MOTIF__)
#include "wx/xt/app.h"
#elif defined(__GTK__)
#include "wx/gtk/app.h"
#elif defined(__WXMAC__)
#include "wx/mac/app.h"
#elif defined(__WXSTUBS__)
#include "wx/stubs/app.h"
#endif
// Having a global instance of this class allows
// wxApp to be aware of the app creator function.
// wxApp can then call this function to create a new
@@ -75,4 +70,4 @@ int main(int argc, char *argv[]) { return wxEntry(argc, argv); }
#endif
// _WX_APP_H_BASE_
// __APPH_BASE__

View File

@@ -1,19 +1,13 @@
#ifndef _WX_BITMAP_H_BASE_
#define _WX_BITMAP_H_BASE_
#ifndef __BITMAPH_BASE__
#define __BITMAPH_BASE__
#if defined(__WXMSW__)
#if defined(__WINDOWS__)
#include "wx/msw/bitmap.h"
#elif defined(__WXMOTIF__)
#include "wx/motif/bitmap.h"
#elif defined(__WXGTK__)
#elif defined(__MOTIF__)
#include "wx/xt/bitmap.h"
#elif defined(__GTK__)
#include "wx/gtk/bitmap.h"
#elif defined(__WXQT__)
#include "wx/qt/bitmap.h"
#elif defined(__WXMAC__)
#include "wx/mac/bitmap.h"
#elif defined(__WXSTUBS__)
#include "wx/stubs/bitmap.h"
#endif
#endif
// _WX_BITMAP_H_BASE_
// __BITMAPH_BASE__

View File

@@ -1,18 +1,12 @@
#ifndef _WX_BMPBUTTON_H_BASE_
#define _WX_BMPBUTTON_H_BASE_
#ifndef __BMPBUTTONH_BASE__
#define __BMPBUTTONH_BASE__
#if defined(__WXMSW__)
#if defined(__WINDOWS__)
#include "wx/msw/bmpbuttn.h"
#elif defined(__WXMOTIF__)
#include "wx/motif/bmpbuttn.h"
#elif defined(__WXGTK__)
#elif defined(__MOTIF__)
#include "wx/xt/bmpbuttn.h"
#elif defined(__GTK__)
#include "wx/gtk/bmpbuttn.h"
#elif defined(__WXQT__)
#include "wx/qt/bmpbuttn.h"
#elif defined(__WXMAC__)
#include "wx/mac/bmpbuttn.h"
#elif defined(__WXSTUBS__)
#include "wx/stubs/bmpbuttn.h"
#endif
#endif

View File

@@ -1,19 +1,13 @@
#ifndef _WX_BRUSH_H_BASE_
#define _WX_BRUSH_H_BASE_
#ifndef __BRUSHH_BASE__
#define __BRUSHH_BASE__
#if defined(__WXMSW__)
#if defined(__WINDOWS__)
#include "wx/msw/brush.h"
#elif defined(__WXMOTIF__)
#include "wx/motif/brush.h"
#elif defined(__WXGTK__)
#elif defined(__MOTIF__)
#include "wx/xt/brush.h"
#elif defined(__GTK__)
#include "wx/gtk/brush.h"
#elif defined(__WXQT__)
#include "wx/qt/brush.h"
#elif defined(__WXMAC__)
#include "wx/mac/brush.h"
#elif defined(__WXSTUBS__)
#include "wx/stubs/brush.h"
#endif
#endif
// _WX_BRUSH_H_BASE_
// __BRUSHH_BASE__

View File

@@ -1,19 +1,13 @@
#ifndef _WX_BUTTON_H_BASE_
#define _WX_BUTTON_H_BASE_
#ifndef __BUTTONH_BASE__
#define __BUTTONH_BASE__
#if defined(__WXMSW__)
#if defined(__WINDOWS__)
#include "wx/msw/button.h"
#elif defined(__WXMOTIF__)
#include "wx/motif/button.h"
#elif defined(__WXGTK__)
#elif defined(__MOTIF__)
#include "wx/xt/button.h"
#elif defined(__GTK__)
#include "wx/gtk/button.h"
#elif defined(__WXQT__)
#include "wx/qt/button.h"
#elif defined(__WXMAC__)
#include "wx/mac/button.h"
#elif defined(__WXSTUBS__)
#include "wx/stubs/button.h"
#endif
#endif
// _WX_BUTTON_H_BASE_
// __BUTTONH_BASE__

View File

@@ -1,19 +1,13 @@
#ifndef _WX_CHECKBOX_H_BASE_
#define _WX_CHECKBOX_H_BASE_
#ifndef __CHECKBOXH_BASE__
#define __CHECKBOXH_BASE__
#if defined(__WXMSW__)
#if defined(__WINDOWS__)
#include "wx/msw/checkbox.h"
#elif defined(__WXMOTIF__)
#include "wx/motif/checkbox.h"
#elif defined(__WXGTK__)
#elif defined(__MOTIF__)
#include "wx/xt/checkbox.h"
#elif defined(__GTK__)
#include "wx/gtk/checkbox.h"
#elif defined(__WXQT__)
#include "wx/qt/checkbox.h"
#elif defined(__WXMAC__)
#include "wx/mac/checkbox.h"
#elif defined(__WXSTUBS__)
#include "wx/stubs/checkbox.h"
#endif
#endif
// _WX_CHECKBOX_H_BASE_
// __CHECKBOXH_BASE__

View File

@@ -1,19 +0,0 @@
#ifndef _WX_CHECKLST_H_BASE_
#define _WX_CHECKLST_H_BASE_
#if defined(__WXMSW__)
#include "wx/msw/checklst.h"
#elif defined(__WXMOTIF__)
#include "wx/motif/checklst.h"
#elif defined(__WXGTK__)
#include "wx/gtk/checklst.h"
#elif defined(__WXQT__)
#include "wx/qt/checklst.h"
#elif defined(__WXMAC__)
#include "wx/mac/checklst.h"
#elif defined(__WXSTUBS__)
#include "wx/stubs/checklst.h"
#endif
#endif
// _WX_CHECKLST_H_BASE_

View File

@@ -1,7 +1,7 @@
#ifndef _WX_CHOICDLG_H_BASE_
#define _WX_CHOICDLG_H_BASE_
#ifndef __CHOICDLGH_BASE__
#define __CHOICDLGH_BASE__
#include "wx/generic/choicdgg.h"
#endif
// _WX_CHOICDLG_H_BASE_
// __CHOICDLGH_BASE__

View File

@@ -1,19 +1,13 @@
#ifndef _WX_CHOICE_H_BASE_
#define _WX_CHOICE_H_BASE_
#ifndef __CHOICEH_BASE__
#define __CHOICEH_BASE__
#if defined(__WXMSW__)
#if defined(__WINDOWS__)
#include "wx/msw/choice.h"
#elif defined(__WXMOTIF__)
#include "wx/motif/choice.h"
#elif defined(__WXGTK__)
#elif defined(__MOTIF__)
#include "wx/xt/choice.h"
#elif defined(__GTK__)
#include "wx/gtk/choice.h"
#elif defined(__WXQT__)
#include "wx/qt/choice.h"
#elif defined(__WXMAC__)
#include "wx/mac/choice.h"
#elif defined(__WXSTUBS__)
#include "wx/stubs/choice.h"
#endif
#endif
// _WX_CHOICE_H_BASE_
// __CHOICEH_BASE__

View File

@@ -1,19 +1,13 @@
#ifndef _WX_CLIPBRD_H_BASE_
#define _WX_CLIPBRD_H_BASE_
#ifndef __CLIPBRDH_BASE__
#define __CLIPBRDH_BASE__
#if defined(__WXMSW__)
#if defined(__WINDOWS__)
#include "wx/msw/clipbrd.h"
#elif defined(__WXMOTIF__)
#include "wx/motif/clipbrd.h"
#elif defined(__WXGTK__)
#elif defined(__MOTIF__)
#include "wx/xt/clipbrd.h"
#elif defined(__GTK__)
#include "wx/gtk/clipbrd.h"
#elif defined(__WXQT__)
#include "wx/gtk/clipbrd.h"
#elif defined(__WXMAC__)
#include "wx/mac/clipbrd.h"
#elif defined(__WXSTUBS__)
#include "wx/stubs/clipbrd.h"
#endif
#endif
// _WX_CLIPBRD_H_BASE_
// __CLIPBRDH_BASE__

View File

@@ -9,16 +9,13 @@
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifndef _WX_CMNDATA_H_BASE_
#define _WX_CMNDATA_H_BASE_
#ifndef __CMNDATAH_BASE__
#define __CMNDATAH_BASE__
#ifdef __GNUG__
#pragma interface "cmndata.h"
#endif
#include "wx/font.h"
#include "wx/colour.h"
class WXDLLEXPORT wxColourData: public wxObject
{
DECLARE_DYNAMIC_CLASS(wxColourData)
@@ -85,7 +82,7 @@ class WXDLLEXPORT wxPrintData: public wxObject
DECLARE_DYNAMIC_CLASS(wxPrintData)
public:
#ifdef __WXMSW__
#ifdef __WINDOWS__
void *printData;
#endif
int printFromPage;
@@ -140,7 +137,7 @@ class WXDLLEXPORT wxPrintData: public wxObject
void operator=(const wxPrintData& data);
#ifdef __WXMSW__
#ifdef __WINDOWS__
// Convert to/from the PRINTDLG structure
void ConvertToNative(void);
void ConvertFromNative(void);
@@ -223,4 +220,4 @@ class WXDLLEXPORT wxPageSetupData: public wxObject
#endif
// _WX_CMNDATA_H_BASE_
// __CMNDATAH_BASE__

View File

@@ -1,19 +1,13 @@
#ifndef _WX_COLORDLG_H_BASE_
#define _WX_COLORDLG_H_BASE_
#ifndef __COLORDLGH_BASE__
#define __COLORDLGH_BASE__
#if defined(__WXMSW__)
#if defined(__WINDOWS__)
#include "wx/msw/colordlg.h"
#elif defined(__WXMOTIF__)
#elif defined(__MOTIF__)
#include "wx/generic/colrdlgg.h"
#elif defined(__WXGTK__)
#include "wx/generic/colrdlgg.h"
#elif defined(__WXQT__)
#include "wx/generic/colrdlgg.h"
#elif defined(__WXMAC__)
#include "wx/generic/colrdlgg.h"
#elif defined(__WXSTUBS__)
#elif defined(__GTK__)
#include "wx/generic/colrdlgg.h"
#endif
#endif
// _WX_COLORDLG_H_BASE_
// __COLORDLGH_BASE__

View File

@@ -1,19 +0,0 @@
#ifndef _WX_COLOUR_H_BASE_
#define _WX_COLOUR_H_BASE_
#if defined(__WXMSW__)
#include "wx/msw/colour.h"
#elif defined(__WXMOTIF__)
#include "wx/motif/colour.h"
#elif defined(__WXGTK__)
#include "wx/gtk/colour.h"
#elif defined(__WXQT__)
#include "wx/qt/colour.h"
#elif defined(__WXMAC__)
#include "wx/mac/colour.h"
#elif defined(__WXSTUBS__)
#include "wx/stubs/colour.h"
#endif
#endif
// _WX_COLOUR_H_BASE_

View File

@@ -1,19 +1,13 @@
#ifndef _WX_COMBOBOX_H_BASE_
#define _WX_COMBOBOX_H_BASE_
#ifndef __COMBOBOXH_BASE__
#define __COMBOBOXH_BASE__
#if defined(__WXMSW__)
#if defined(__WINDOWS__)
#include "wx/msw/combobox.h"
#elif defined(__WXMOTIF__)
#include "wx/motif/combobox.h"
#elif defined(__WXGTK__)
#elif defined(__MOTIF__)
#include "wx/xt/combobox.h"
#elif defined(__GTK__)
#include "wx/gtk/combobox.h"
#elif defined(__WXQT__)
#include "wx/qt/combobox.h"
#elif defined(__WXMAC__)
#include "wx/mac/combobox.h"
#elif defined(__WXSTUBS__)
#include "wx/stubs/combobox.h"
#endif
#endif
// _WX_COMBOBOX_H_BASE_
// __COMBOBOXH_BASE__

View File

@@ -1,292 +0,0 @@
///////////////////////////////////////////////////////////////////////////////
// Name: confbase.h
// Purpose: declaration of the base class of all config implementations
// (see also: fileconf.h and msw/regconf.h)
// Author: Karsten Ball<6C>der & Vadim Zeitlin
// Modified by:
// Created: 07.04.98 (adapted from appconf.h)
// RCS-ID: $Id$
// Copyright: (c) 1997 Karsten Ball<6C>der Ballueder@usa.net
// Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
// Licence: wxWindows license
///////////////////////////////////////////////////////////////////////////////
#ifndef _WX_CONFBASE_H_
#define _WX_CONFBASE_H_
#ifdef __GNUG__
#pragma interface "confbase.h"
#endif
// ----------------------------------------------------------------------------
// compile options
// ----------------------------------------------------------------------------
// it won't compile without it anyhow
#ifndef USE_CONFIG
#error "Please define USE_CONFIG or remove config.cpp from your makefile"
#endif // USE_CONFIG
// ----------------------------------------------------------------------------
// constants
// ----------------------------------------------------------------------------
/// shall we be case sensitive in parsing variable names?
#ifndef wxCONFIG_CASE_SENSITIVE
#define wxCONFIG_CASE_SENSITIVE FALSE
#endif
/// separates group and entry names (probably shouldn't be changed)
#ifndef wxCONFIG_PATH_SEPARATOR
#define wxCONFIG_PATH_SEPARATOR '/'
#endif
/// introduces immutable entries
// (i.e. the ones which can't be changed from the local config file)
#ifndef wxCONFIG_IMMUTABLE_PREFIX
#define wxCONFIG_IMMUTABLE_PREFIX '!'
#endif
/// should we use registry instead of configuration files under Win32?
// (i.e. whether wxConfigBase::Create() will create a wxFileConfig (if it's
// FALSE) or wxRegConfig (if it's true and we're under Win32) or wxIniConfig
// (under Win16))
#ifndef wxCONFIG_WIN32_NATIVE
#define wxCONFIG_WIN32_NATIVE TRUE
#endif
// Style flags for constructor style parameter
#define wxCONFIG_USE_LOCAL_FILE 1
#define wxCONFIG_USE_GLOBAL_FILE 2
// ----------------------------------------------------------------------------
// various helper global functions
// ----------------------------------------------------------------------------
/*
Replace environment variables ($SOMETHING) with their values. The format is
$VARNAME or ${VARNAME} where VARNAME contains alphanumeric characters and
'_' only. '$' must be escaped ('\$') in order to be taken literally.
*/
extern wxString wxExpandEnvVars(const wxString &sz);
/*
Split path into parts removing '..' in progress
*/
extern void wxSplitPath(wxArrayString& aParts, const char *sz);
// ----------------------------------------------------------------------------
// abstract base class wxConfigBase which defines the interface for derived
// classes
//
// wxConfig organizes the items in a tree-like structure (modeled after the
// Unix/Dos filesystem). There are groups (directories) and keys (files).
// There is always one current group given by the current path.
//
// Keys are pairs "key_name = value" where value may be of string or integer
// (long) type (@@@ doubles and other types such as wxDate coming soon).
// ----------------------------------------------------------------------------
class wxConfigBase
{
public:
// static functions
// sets the config object, returns the previous pointer
static wxConfigBase *Set(wxConfigBase *pConfig);
// get the config object, creates it on demand unless DontCreateOnDemand
// was called
static wxConfigBase *Get() { if ( !ms_pConfig ) Create(); return ms_pConfig; }
// create a new config object: this function will create the "best"
// implementation of wxConfig available for the current platform, see
// comments near definition wxCONFIG_WIN32_NATIVE for details. It returns
// the created object and also sets it as ms_pConfig.
static wxConfigBase *Create();
// should Get() try to create a new log object if the current one is NULL?
static void DontCreateOnDemand() { ms_bAutoCreate = FALSE; }
// ctor & virtual dtor
// environment variable expansion is on by default
// wxConfigBase() { m_bExpandEnvVars = TRUE; m_bRecordDefaults = FALSE; }
// ctor
// Not all args will always be used by derived classes, but
// including them all in each class ensures compatibility.
// If appName is empty, uses wxApp name
wxConfigBase(const wxString& appName = "", const wxString& vendorName = "",
const wxString& localFilename = "", const wxString& globalFilename = "",
long style = 0);
// empty but ensures that dtor of all derived classes is virtual
virtual ~wxConfigBase() { }
// path management
// 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.
virtual void SetPath(const wxString& strPath) = 0;
// retrieve the current path (always as absolute path)
virtual const wxString& GetPath() const = 0;
// enumeration: all functions here return false when there are no more items.
// you must pass the same lIndex to GetNext and GetFirst (don't modify it)
// enumerate subgroups
virtual bool GetFirstGroup(wxString& str, long& lIndex) const = 0;
virtual bool GetNextGroup (wxString& str, long& lIndex) const = 0;
// enumerate entries
virtual bool GetFirstEntry(wxString& str, long& lIndex) const = 0;
virtual bool GetNextEntry (wxString& str, long& lIndex) const = 0;
// get number of entries/subgroups in the current group, with or without
// it's subgroups
virtual size_t GetNumberOfEntries(bool bRecursive = FALSE) const = 0;
virtual size_t GetNumberOfGroups(bool bRecursive = FALSE) const = 0;
// tests of existence
// returns TRUE if the group by this name exists
virtual bool HasGroup(const wxString& strName) const = 0;
// same as above, but for an entry
virtual bool HasEntry(const wxString& strName) const = 0;
// returns TRUE if either a group or an entry with a given name exist
bool Exists(const wxString& strName) const
{ return HasGroup(strName) || HasEntry(strName); }
// key access: returns TRUE if value was really read, FALSE if default used
// (and if the key is not found the default value is returned.)
// read a string from the key
virtual bool Read(const wxString& key, wxString *pStr) const = 0;
virtual bool Read(const wxString& key, wxString *pStr, const wxString& defVal) const;
virtual wxString Read(const wxString& key, const wxString& defVal = "") const;
virtual bool Read(const wxString& key, long *pl) const = 0;
virtual bool Read(const wxString& key, long *pl, long defVal) const;
virtual long Read(const wxString& strKey, long defVal) const
{ long l; Read(strKey, &l, defVal); return l; }
// Convenience functions that are built on other forms
// double
virtual bool Read(const wxString& key, double* val) const;
virtual bool Read(const wxString& key, double* val, double defVal) const;
// bool
virtual bool Read(const wxString& key, bool* val) const;
virtual bool Read(const wxString& key, bool* val, bool defVal) const;
// write the value (return true on success)
virtual bool Write(const wxString& key, const wxString& value) = 0;
virtual bool Write(const wxString& key, long value) = 0;
// Convenience functions
virtual bool Write(const wxString& key, double value);
virtual bool Write(const wxString& key, bool value);
// permanently writes all changes
virtual bool Flush(bool bCurrentOnly = FALSE) = 0;
// delete entries/groups
// deletes the specified entry and the group it belongs to if
// it was the last key in it and the second parameter is true
virtual bool DeleteEntry(const wxString& key,
bool bDeleteGroupIfEmpty = TRUE) = 0;
// delete the group (with all subgroups)
virtual bool DeleteGroup(const wxString& key) = 0;
// delete the whole underlying object (disk file, registry key, ...)
// primarly for use by desinstallation routine.
virtual bool DeleteAll() = 0;
// options
// we can automatically expand environment variables in the config entries
// (this option is on by default, you can turn it on/off at any time)
bool IsExpandingEnvVars() const { return m_bExpandEnvVars; }
void SetExpandEnvVars(bool bDoIt = TRUE) { m_bExpandEnvVars = bDoIt; }
// recording of default values
void SetRecordDefaults(bool bDoIt = TRUE) { m_bRecordDefaults = bDoIt; }
bool IsRecordingDefaults() const { return m_bRecordDefaults; }
// does expansion only if needed
wxString ExpandEnvVars(const wxString& str) const
{
wxString tmp; // Required for BC++
if (IsExpandingEnvVars())
tmp = wxExpandEnvVars(str);
else
tmp = str;
return tmp;
}
// misc accessors
inline wxString GetAppName() const { return m_appName; }
inline wxString GetVendorName() const { return m_vendorName; }
inline void SetAppName(const wxString& appName) { m_appName = appName; }
inline void SetVendorName(const wxString& vendorName) { m_vendorName = vendorName; }
inline void SetStyle(long style) { m_style = style; }
inline long GetStyle() const { return m_style; }
protected:
static bool IsImmutable(const wxString& key)
{ return key[0] == wxCONFIG_IMMUTABLE_PREFIX; }
private:
// are we doing automatic environment variable expansion?
bool m_bExpandEnvVars;
// do we record default values?
bool m_bRecordDefaults;
// static variables
static wxConfigBase *ms_pConfig;
static bool ms_bAutoCreate;
// Application name and organisation name
wxString m_appName;
wxString m_vendorName;
// Style flag
long m_style;
};
// a handy little class which changes current path to the path of given entry
// and restores it in dtor: so if you declare a local variable of this type,
// you work in the entry directory and the path is automatically restored
// when the function returns
// Taken out of wxConfig since not all compilers can cope with nested classes.
class wxConfigPathChanger
{
public:
// ctor/dtor do path changing/restorin
wxConfigPathChanger(const wxConfigBase *pContainer, const wxString& strEntry);
~wxConfigPathChanger();
// get the key name
const wxString& Name() const { return m_strName; }
private:
wxConfigBase *m_pContainer; // object we live in
wxString m_strName, // name of entry (i.e. name only)
m_strOldPath; // saved path
bool m_bChanged; // was the path changed?
};
// ----------------------------------------------------------------------------
// the native wxConfigBase implementation
// ----------------------------------------------------------------------------
// under Windows we prefer to use the native implementation
#if defined(__WXMSW__) && wxCONFIG_WIN32_NATIVE
#ifdef __WIN32__
#define wxConfig wxRegConfig
#define classwxConfig classwxRegConfig
#else //WIN16
#define wxConfig wxIniConfig
#define classwxConfig classwxIniConfig
#endif
#else // either we're under Unix or wish to use files even under Windows
#define wxConfig wxFileConfig
#define classwxConfig classwxFileConfig
#endif
#endif // _WX_CONFIG_H_

View File

@@ -1,17 +1,186 @@
#ifndef _WX_CONFIG_H_BASE_
#define _WX_CONFIG_H_BASE_
///////////////////////////////////////////////////////////////////////////////
// Name: config.h
// Purpose: declaration of the base class of all config implementations
// (see also: fileconf.h and msw/regconf.h)
// Author: Karsten Ball<6C>der & Vadim Zeitlin
// Modified by:
// Created: 07.04.98 (adapted from appconf.h)
// RCS-ID: $Id$
// Copyright: (c) 1997 Karsten Ball<6C>der Ballueder@usa.net
// Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
// Licence: wxWindows license
///////////////////////////////////////////////////////////////////////////////
#include "wx/confbase.h"
#ifndef _APPCONF_H
#define _APPCONF_H
#if defined(__WXMSW__) && defined(wxCONFIG_WIN32_NATIVE)
# ifdef __WIN32__
# include "wx/msw/regconf.h"
#else
# include "wx/msw/iniconf.h"
# endif
#else
# include "wx/fileconf.h"
#ifdef __GNUG__
#pragma interface "config.h"
#endif
// ----------------------------------------------------------------------------
// compile options
// ----------------------------------------------------------------------------
// it won't compile without it anyhow
#ifndef USE_WXCONFIG
#error "Please define USE_WXCONFIG or remove config.cpp from your makefile"
#endif // USE_WXCONFIG
// ----------------------------------------------------------------------------
// constants
// ----------------------------------------------------------------------------
/// shall we be case sensitive in parsing variable names?
#ifndef APPCONF_CASE_SENSITIVE
#define APPCONF_CASE_SENSITIVE FALSE
#endif
// _WX_CONFIG_H_BASE_
/// separates group and entry names
#ifndef APPCONF_PATH_SEPARATOR
#define APPCONF_PATH_SEPARATOR '/'
#endif
/// introduces immutable entries
#ifndef APPCONF_IMMUTABLE_PREFIX
#define APPCONF_IMMUTABLE_PREFIX '!'
#endif
/// should we use registry instead of configuration files under Win32?
#ifndef APPCONF_WIN32_NATIVE
#define APPCONF_WIN32_NATIVE TRUE
#endif
// ----------------------------------------------------------------------------
// various helper global functions
// ----------------------------------------------------------------------------
/*
Replace environment variables ($SOMETHING) with their values. The format is
$VARNAME or ${VARNAME} where VARNAME contains alphanumeric characters and
'_' only. '$' must be escaped ('\$') in order to be taken literally.
*/
extern wxString ExpandEnvVars(const wxString& str);
/*
Split path into parts removing '..' in progress
*/
extern void SplitPath(wxArrayString& aParts, const char *sz);
// ----------------------------------------------------------------------------
// abstract base class wxConfig which defines the interface for derived classes
//
// wxConfig organizes the items in a tree-like structure (modeled after the
// Unix/Dos filesystem). There are groups (directories) and keys (files).
// There is always one current group given by the current path.
//
// Keys are pairs "key_name = value" where value may be of string or integer
// (long) type (@@@ doubles and other types such as wxDate coming soon).
// ----------------------------------------------------------------------------
class wxConfig
{
public:
// static functions
// sets the config object, returns the previous pointer
static wxConfig *Set(wxConfig *pConfig);
// get the config object, creates it on demand
static wxConfig *Get() { if ( !ms_pConfig ) Create(); return ms_pConfig; }
// create a new config object
static void Create();
// ctor & virtual dtor
wxConfig() { }
virtual ~wxConfig();
// path management
// 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.
virtual void SetPath(const wxString& strPath) = 0;
// retrieve the current path (always as absolute path)
virtual const wxString& GetPath() const = 0;
// enumeration: all functions here return false when there are no more items.
// you must pass the same lIndex to GetNext and GetFirst (don't modify it)
// enumerate subgroups
virtual bool GetFirstGroup(wxString& str, long& lIndex) = 0;
virtual bool GetNextGroup (wxString& str, long& lIndex) = 0;
// enumerate entries
virtual bool GetFirstEntry(wxString& str, long& lIndex) = 0;
virtual bool GetNextEntry (wxString& str, long& lIndex) = 0;
// tests of existence
// returns TRUE if the group by this name exists
virtual bool HasGroup(const wxString& strName) const = 0;
// same as above, but for an entry
virtual bool HasEntry(const wxString& strName) const = 0;
// returns TRUE if either a group or an entry with a given name exist
bool Exists(const wxString& strName) const
{ return HasGroup(strName) || HasEntry(strName); }
// key access: returns TRUE if value was really read, FALSE if default used
// (and if the key is not found the default value is returned.)
// read a string from the key
virtual bool Read(wxString *pStr, const char *szKey,
const char *szDefault = NULL) const = 0;
// another version using statis buffer - it means it will be overwritten
// after each call to this function!
virtual const char *Read(const char *szKey,
const char *szDefault = NULL) const;
// the same for longs
virtual long Read(const char *szKey, long lDefault) const
{ long l; Read(&l, szKey, lDefault); return l; }
// and another version: returns true if default value is returned
virtual bool Read(long *pl, const char *szKey, long lDefault = 0) const = 0;
// write the value (return true on success)
virtual bool Write(const char *szKey, const char *szValue) = 0;
virtual bool Write(const char *szKey, long lValue) = 0;
// permanently writes all changes
virtual bool Flush(bool bCurrentOnly = FALSE) = 0;
// delete entries/groups
// deletes the specified entry and the group it belongs to if
// it was the last key in it and the second parameter is true
virtual bool DeleteEntry(const char *szKey,
bool bDeleteGroupIfEmpty = TRUE) = 0;
// delete the group (with all subgroups)
virtual bool DeleteGroup(const char *szKey) = 0;
// delete the whole underlying object (disk file, registry key, ...)
// primarly for use by desinstallation routine.
virtual bool DeleteAll() = 0;
protected:
static bool IsImmutable(const char *szKey)
{ return *szKey == APPCONF_IMMUTABLE_PREFIX; }
// a handy little class which changes current path to the path of given entry
// and restores it in dtor: so if you declare a local variable of this type,
// you work in the entry directory and the path is automatically restored
// when function returns
class PathChanger
{
public:
// ctor/dtor do path changing/restorin
PathChanger(const wxConfig *pContainer, const wxString& strEntry);
~PathChanger();
// get the key name
const wxString& Name() const { return m_strName; }
private:
wxConfig *m_pContainer; // object we live in
wxString m_strName, // name of entry (i.e. name only)
m_strOldPath; // saved path
bool m_bChanged; // was the path changed?
};
// are we doing automatic environment variable expansion?
bool m_bExpandEnvVars;
// static variables
static wxConfig *ms_pConfig;
};
#endif //_APPCONF_H

View File

@@ -1,19 +1,13 @@
#ifndef _WX_CONTROL_H_BASE_
#define _WX_CONTROL_H_BASE_
#ifndef __CONTROLH_BASE__
#define __CONTROLH_BASE__
#if defined(__WXMSW__)
#if defined(__WINDOWS__)
#include "wx/msw/control.h"
#elif defined(__WXMOTIF__)
#include "wx/motif/control.h"
#elif defined(__WXGTK__)
#elif defined(__MOTIF__)
#include "wx/xt/control.h"
#elif defined(__GTK__)
#include "wx/gtk/control.h"
#elif defined(__WXQT__)
#include "wx/qt/control.h"
#elif defined(__WXMAC__)
#include "wx/mac/control.h"
#elif defined(__WXSTUBS__)
#include "wx/stubs/control.h"
#endif
#endif
// _WX_CONTROL_H_BASE_
// __CONTROLH_BASE__

View File

@@ -1,19 +1,13 @@
#ifndef _WX_CURSOR_H_BASE_
#define _WX_CURSOR_H_BASE_
#ifndef __CURSORH_BASE__
#define __CURSORH_BASE__
#if defined(__WXMSW__)
#if defined(__WINDOWS__)
#include "wx/msw/cursor.h"
#elif defined(__WXMOTIF__)
#include "wx/motif/cursor.h"
#elif defined(__WXGTK__)
#elif defined(__MOTIF__)
#include "wx/xt/cursor.h"
#elif defined(__GTK__)
#include "wx/gtk/cursor.h"
#elif defined(__WXQT__)
#include "wx/qt/cursor.h"
#elif defined(__WXMAC__)
#include "wx/mac/cursor.h"
#elif defined(__WXSTUBS__)
#include "wx/stubs/cursor.h"
#endif
#endif
// _WX_CURSOR_H_BASE_
// __CURSORH_BASE__

View File

@@ -10,8 +10,8 @@
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifndef _WX_DATE_H_
#define _WX_DATE_H_
#ifndef __WXDATEH__
#define __WXDATEH__
#ifdef __GNUG__
#pragma interface "date.h"
@@ -128,4 +128,4 @@ class WXDLLEXPORT wxDate: public wxObject
#endif
#endif
// _WX_DATE_H_
// __WXDATEH__

View File

@@ -9,19 +9,22 @@
// Licence: wxWindows license
/////////////////////////////////////////////////////////////////////////////
#ifndef _WX_DATSTREAM_H_
#define _WX_DATSTREAM_H_
#ifndef __DATSTREAMH__
#define __DATSTREAMH__
#ifdef __GNUG__
#pragma interface "datstrm.h"
#endif
#include <wx/stream.h>
#include "wx/wx.h"
class wxDataInputStream: public wxFilterInputStream {
class wxDataStream {
public:
wxDataInputStream(wxInputStream& s);
virtual ~wxDataInputStream();
wxDataStream(iostream& s);
wxDataStream(istream& s);
wxDataStream(ostream& s);
virtual ~wxDataStream();
unsigned long Read32();
unsigned short Read16();
@@ -29,12 +32,6 @@ public:
double ReadDouble();
wxString ReadLine();
wxString ReadString();
};
class wxDataOutputStream: public wxFilterOutputStream {
public:
wxDataOutputStream(wxOutputStream& s);
virtual ~wxDataOutputStream();
void Write32(unsigned long i);
void Write16(unsigned short i);
@@ -42,7 +39,10 @@ class wxDataOutputStream: public wxFilterOutputStream {
void WriteDouble(double d);
void WriteLine(const wxString& line);
void WriteString(const wxString& string);
protected:
istream *m_istream;
ostream *m_ostream;
};
#endif
// _WX_DATSTREAM_H_
// __HELPBASEH__

View File

@@ -1,362 +0,0 @@
///////////////////////////////////////////////////////////////////////////////
// Name: db.h
// Purpose: Header file wxDB class. The wxDB class represents a connection
// to an ODBC data source. The wxDB class allows operations on the data
// source such as opening and closing the data source.
// Author: Doug Card
// Modified by:
// Created: 9.96
// RCS-ID: $Id$
// Copyright: (c) 1996 Remstar International, Inc.
// Licence: wxWindows licence, plus:
// Notice: This class library and its intellectual design are free of charge for use,
// modification, enhancement, debugging under the following conditions:
// 1) These classes may only be used as part of the implementation of a
// wxWindows-based application
// 2) All enhancements and bug fixes are to be submitted back to the wxWindows
// user groups free of all charges for use with the wxWindows library.
// 3) These classes may not be distributed as part of any other class library,
// DLL, text (written or electronic), other than a complete distribution of
// the wxWindows GUI development toolkit.
///////////////////////////////////////////////////////////////////////////////
/*
// SYNOPSIS START
// SYNOPSIS STOP
*/
#ifndef DB_DOT_H
#define DB_DOT_H
#ifdef __GNUG__
#pragma interface "db.h"
#endif
#if defined(wx_msw) || defined(WIN32)
#include <windows.h>
#endif
#define ODBCVER 0x0250
#include <sql.h>
#include <sqlext.h>
enum enumDummy {enumDum1};
#define SQL_C_BOOLEAN (sizeof(int) == 2 ? SQL_C_USHORT : SQL_C_ULONG)
#define SQL_C_ENUM (sizeof(enumDummy) == 2 ? SQL_C_USHORT : SQL_C_ULONG) //glt 2-21-97
/*
#ifndef Bool
#define Bool int
#endif
#ifndef TRUE
#define TRUE 1
#endif
#ifndef FALSE
#define FALSE 0
#endif
*/
// Database Globals
const DB_TYPE_NAME_LEN = 40;
const DB_MAX_STATEMENT_LEN = 2048;
const DB_MAX_WHERE_CLAUSE_LEN = 1024;
const DB_MAX_ERROR_MSG_LEN = 512;
const DB_MAX_ERROR_HISTORY = 5;
const DB_MAX_TABLE_NAME_LEN = 128;
const DB_MAX_COLUMN_NAME_LEN = 128;
const DB_DATA_TYPE_VARCHAR = 1;
const DB_DATA_TYPE_INTEGER = 2;
const DB_DATA_TYPE_FLOAT = 3;
const DB_DATA_TYPE_DATE = 4;
const DB_SELECT_KEYFIELDS = 1;
const DB_SELECT_WHERE = 2;
const DB_SELECT_MATCHING = 3;
const DB_SELECT_STATEMENT = 4;
const DB_UPD_KEYFIELDS = 1;
const DB_UPD_WHERE = 2;
const DB_DEL_KEYFIELDS = 1;
const DB_DEL_WHERE = 2;
const DB_DEL_MATCHING = 3;
const DB_WHERE_KEYFIELDS = 1;
const DB_WHERE_MATCHING = 2;
const DB_CURSOR0 = 0;
const DB_CURSOR1 = 1;
const DB_CURSOR2 = 2;
//const DB_CURSOR3 = 3;
//const DB_CURSOR4 = 4;
//const DB_CURSOR5 = 5;
const DB_GRANT_SELECT = 1;
const DB_GRANT_INSERT = 2;
const DB_GRANT_UPDATE = 4;
const DB_GRANT_DELETE = 8;
const DB_GRANT_ALL = DB_GRANT_SELECT | DB_GRANT_INSERT | DB_GRANT_UPDATE | DB_GRANT_DELETE;
// ODBC Error codes (derived from ODBC SqlState codes)
enum ODBC_ERRORS
{
DB_FAILURE = 0,
DB_SUCCESS = 1,
DB_ERR_NOT_IN_USE,
DB_ERR_GENERAL_WARNING, // SqlState = '01000'
DB_ERR_DISCONNECT_ERROR, // SqlState = '01002'
DB_ERR_DATA_TRUNCATED, // SqlState = '01004'
DB_ERR_PRIV_NOT_REVOKED, // SqlState = '01006'
DB_ERR_INVALID_CONN_STR_ATTR, // SqlState = '01S00'
DB_ERR_ERROR_IN_ROW, // SqlState = '01S01'
DB_ERR_OPTION_VALUE_CHANGED, // SqlState = '01S02'
DB_ERR_NO_ROWS_UPD_OR_DEL, // SqlState = '01S03'
DB_ERR_MULTI_ROWS_UPD_OR_DEL, // SqlState = '01S04'
DB_ERR_WRONG_NO_OF_PARAMS, // SqlState = '07001'
DB_ERR_DATA_TYPE_ATTR_VIOL, // SqlState = '07006'
DB_ERR_UNABLE_TO_CONNECT, // SqlState = '08001'
DB_ERR_CONNECTION_IN_USE, // SqlState = '08002'
DB_ERR_CONNECTION_NOT_OPEN, // SqlState = '08003'
DB_ERR_REJECTED_CONNECTION, // SqlState = '08004'
DB_ERR_CONN_FAIL_IN_TRANS, // SqlState = '08007'
DB_ERR_COMM_LINK_FAILURE, // SqlState = '08S01'
DB_ERR_INSERT_VALUE_LIST_MISMATCH, // SqlState = '21S01'
DB_ERR_DERIVED_TABLE_MISMATCH, // SqlState = '21S02'
DB_ERR_STRING_RIGHT_TRUNC, // SqlState = '22001'
DB_ERR_NUMERIC_VALUE_OUT_OF_RNG, // SqlState = '22003'
DB_ERR_ERROR_IN_ASSIGNMENT, // SqlState = '22005'
DB_ERR_DATETIME_FLD_OVERFLOW, // SqlState = '22008'
DB_ERR_DIVIDE_BY_ZERO, // SqlState = '22012'
DB_ERR_STR_DATA_LENGTH_MISMATCH, // SqlState = '22026'
DB_ERR_INTEGRITY_CONSTRAINT_VIOL, // SqlState = '23000'
DB_ERR_INVALID_CURSOR_STATE, // SqlState = '24000'
DB_ERR_INVALID_TRANS_STATE, // SqlState = '25000'
DB_ERR_INVALID_AUTH_SPEC, // SqlState = '28000'
DB_ERR_INVALID_CURSOR_NAME, // SqlState = '34000'
DB_ERR_SYNTAX_ERROR_OR_ACCESS_VIOL, // SqlState = '37000'
DB_ERR_DUPLICATE_CURSOR_NAME, // SqlState = '3C000'
DB_ERR_SERIALIZATION_FAILURE, // SqlState = '40001'
DB_ERR_SYNTAX_ERROR_OR_ACCESS_VIOL2, // SqlState = '42000'
DB_ERR_OPERATION_ABORTED, // SqlState = '70100'
DB_ERR_UNSUPPORTED_FUNCTION, // SqlState = 'IM001'
DB_ERR_NO_DATA_SOURCE, // SqlState = 'IM002'
DB_ERR_DRIVER_LOAD_ERROR, // SqlState = 'IM003'
DB_ERR_SQLALLOCENV_FAILED, // SqlState = 'IM004'
DB_ERR_SQLALLOCCONNECT_FAILED, // SqlState = 'IM005'
DB_ERR_SQLSETCONNECTOPTION_FAILED, // SqlState = 'IM006'
DB_ERR_NO_DATA_SOURCE_DLG_PROHIB, // SqlState = 'IM007'
DB_ERR_DIALOG_FAILED, // SqlState = 'IM008'
DB_ERR_UNABLE_TO_LOAD_TRANSLATION_DLL, // SqlState = 'IM009'
DB_ERR_DATA_SOURCE_NAME_TOO_LONG, // SqlState = 'IM010'
DB_ERR_DRIVER_NAME_TOO_LONG, // SqlState = 'IM011'
DB_ERR_DRIVER_KEYWORD_SYNTAX_ERROR, // SqlState = 'IM012'
DB_ERR_TRACE_FILE_ERROR, // SqlState = 'IM013'
DB_ERR_TABLE_OR_VIEW_ALREADY_EXISTS, // SqlState = 'S0001'
DB_ERR_TABLE_NOT_FOUND, // SqlState = 'S0002'
DB_ERR_INDEX_ALREADY_EXISTS, // SqlState = 'S0011'
DB_ERR_INDEX_NOT_FOUND, // SqlState = 'S0012'
DB_ERR_COLUMN_ALREADY_EXISTS, // SqlState = 'S0021'
DB_ERR_COLUMN_NOT_FOUND, // SqlState = 'S0022'
DB_ERR_NO_DEFAULT_FOR_COLUMN, // SqlState = 'S0023'
DB_ERR_GENERAL_ERROR, // SqlState = 'S1000'
DB_ERR_MEMORY_ALLOCATION_FAILURE, // SqlState = 'S1001'
DB_ERR_INVALID_COLUMN_NUMBER, // SqlState = 'S1002'
DB_ERR_PROGRAM_TYPE_OUT_OF_RANGE, // SqlState = 'S1003'
DB_ERR_SQL_DATA_TYPE_OUT_OF_RANGE, // SqlState = 'S1004'
DB_ERR_OPERATION_CANCELLED, // SqlState = 'S1008'
DB_ERR_INVALID_ARGUMENT_VALUE, // SqlState = 'S1009'
DB_ERR_FUNCTION_SEQUENCE_ERROR, // SqlState = 'S1010'
DB_ERR_OPERATION_INVALID_AT_THIS_TIME, // SqlState = 'S1011'
DB_ERR_INVALID_TRANS_OPERATION_CODE, // SqlState = 'S1012'
DB_ERR_NO_CURSOR_NAME_AVAIL, // SqlState = 'S1015'
DB_ERR_INVALID_STR_OR_BUF_LEN, // SqlState = 'S1090'
DB_ERR_DESCRIPTOR_TYPE_OUT_OF_RANGE, // SqlState = 'S1091'
DB_ERR_OPTION_TYPE_OUT_OF_RANGE, // SqlState = 'S1092'
DB_ERR_INVALID_PARAM_NO, // SqlState = 'S1093'
DB_ERR_INVALID_SCALE_VALUE, // SqlState = 'S1094'
DB_ERR_FUNCTION_TYPE_OUT_OF_RANGE, // SqlState = 'S1095'
DB_ERR_INF_TYPE_OUT_OF_RANGE, // SqlState = 'S1096'
DB_ERR_COLUMN_TYPE_OUT_OF_RANGE, // SqlState = 'S1097'
DB_ERR_SCOPE_TYPE_OUT_OF_RANGE, // SqlState = 'S1098'
DB_ERR_NULLABLE_TYPE_OUT_OF_RANGE, // SqlState = 'S1099'
DB_ERR_UNIQUENESS_OPTION_TYPE_OUT_OF_RANGE, // SqlState = 'S1100'
DB_ERR_ACCURACY_OPTION_TYPE_OUT_OF_RANGE, // SqlState = 'S1101'
DB_ERR_DIRECTION_OPTION_OUT_OF_RANGE, // SqlState = 'S1103'
DB_ERR_INVALID_PRECISION_VALUE, // SqlState = 'S1104'
DB_ERR_INVALID_PARAM_TYPE, // SqlState = 'S1105'
DB_ERR_FETCH_TYPE_OUT_OF_RANGE, // SqlState = 'S1106'
DB_ERR_ROW_VALUE_OUT_OF_RANGE, // SqlState = 'S1107'
DB_ERR_CONCURRENCY_OPTION_OUT_OF_RANGE, // SqlState = 'S1108'
DB_ERR_INVALID_CURSOR_POSITION, // SqlState = 'S1109'
DB_ERR_INVALID_DRIVER_COMPLETION, // SqlState = 'S1110'
DB_ERR_INVALID_BOOKMARK_VALUE, // SqlState = 'S1111'
DB_ERR_DRIVER_NOT_CAPABLE, // SqlState = 'S1C00'
DB_ERR_TIMEOUT_EXPIRED // SqlState = 'S1T00'
};
struct DbStuff
{
HENV Henv;
char Dsn[SQL_MAX_DSN_LENGTH+1]; // Data Source Name
char Uid[20]; // User ID
char AuthStr[20]; // Authorization string (password)
};
typedef struct
{
char TypeName[DB_TYPE_NAME_LEN];
int FsqlType;
long Precision;
short CaseSensitive;
// short MinimumScale;
short MaximumScale;
} SqlTypeInfo;
class CcolInf
{
public:
char tableName[DB_MAX_TABLE_NAME_LEN+1];
char colName[DB_MAX_COLUMN_NAME_LEN+1];
int sqlDataType;
};
class wxDB
{
private:
// Private data
bool dbIsOpen;
char *dsn; // Data source name
char *uid; // User ID
char *authStr; // Authorization string (password)
// Private member functions
bool getDbInfo(void);
bool getDataTypeInfo(SWORD fSqlType, SqlTypeInfo &structSQLTypeInfo);
bool setConnectionOptions(void);
void logError(char *errMsg, char *SQLState);
public:
// The following structure contains database information gathered from the
// datasource when the datasource is first opened.
struct
{
char dbmsName[40]; // Name of the dbms product
char dbmsVer[20]; // Version # of the dbms product
char driverName[40]; // Driver name
char odbcVer[20]; // ODBC version of the driver
char drvMgrOdbcVer[20]; // ODBC version of the driver manager
char driverVer[40]; // Driver version
char serverName[40]; // Server Name, typically a connect string
char databaseName[128]; // Database filename
char outerJoins[2]; // Indicates whether the data source supports outer joins
char procedureSupport[2]; // Indicates whether the data source supports stored procedures
UWORD maxConnections; // Maximum # of connections the data source supports
UWORD maxStmts; // Maximum # of HSTMTs per HDBC
UWORD apiConfLvl; // ODBC API conformance level
UWORD cliConfLvl; // Indicates whether the data source is SAG compliant
UWORD sqlConfLvl; // SQL conformance level
UWORD cursorCommitBehavior; // Indicates how cursors are affected by a db commit
UWORD cursorRollbackBehavior; // Indicates how cursors are affected by a db rollback
UWORD supportNotNullClause; // Indicates if data source supports NOT NULL clause
char supportIEF[2]; // Integrity Enhancement Facility (Referential Integrity)
UDWORD txnIsolation; // Default transaction isolation level supported by the driver
UDWORD txnIsolationOptions; // Transaction isolation level options available
UDWORD fetchDirections; // Fetch directions supported
UDWORD lockTypes; // Lock types supported in SQLSetPos
UDWORD posOperations; // Position operations supported in SQLSetPos
UDWORD posStmts; // Position statements supported
UDWORD scrollConcurrency; // Concurrency control options supported for scrollable cursors
UDWORD scrollOptions; // Scroll Options supported for scrollable cursors
UDWORD staticSensitivity; // Indicates if additions, deletions and updates can be detected
UWORD txnCapable; // Indicates if the data source supports transactions
UDWORD loginTimeout; // Number seconds to wait for a login request
} dbInf;
// ODBC handles
HENV henv; // ODBC Environment handle
HDBC hdbc; // ODBC DB Connection handle
HSTMT hstmt; // ODBC Statement handle
// ODBC Error Inf.
char sqlState[20];
SDWORD nativeError;
char errorMsg[SQL_MAX_MESSAGE_LENGTH];
SWORD cbErrorMsg;
char errorList[DB_MAX_ERROR_HISTORY][DB_MAX_ERROR_MSG_LEN];
int DB_STATUS;
//Error reporting mode
bool silent;
// Inf. about logical data types VARCHAR, INTEGER, FLOAT and DATE.
// This inf. is obtained from the ODBC driver by use of the
// SQLGetTypeInfo() function. The key piece of inf. is the
// type name the data source uses for each logical data type.
// e.g. VARCHAR; Oracle calls it VARCHAR2.
SqlTypeInfo typeInfVarchar, typeInfInteger, typeInfFloat, typeInfDate;
// Public member functions
wxDB(HENV &aHenv);
bool Open(char *Dsn, char *Uid, char *AuthStr); // Data Source Name, User ID, Password
void Close(void);
bool CommitTrans(void);
bool RollbackTrans(void);
bool DispAllErrors(HENV aHenv, HDBC aHdbc = SQL_NULL_HDBC, HSTMT aHstmt = SQL_NULL_HSTMT);
bool GetNextError(HENV aHenv, HDBC aHdbc = SQL_NULL_HDBC, HSTMT aHstmt = SQL_NULL_HSTMT);
void DispNextError(void);
bool CreateView(char *viewName, char *colList, char *pSqlStmt);
bool ExecSql(char *pSqlStmt);
bool Grant(int privileges, char *tableName, char *userList = "PUBLIC");
int TranslateSqlState(char *SQLState);
CcolInf *GetColumns(char *tableName[]);
char *GetDatabaseName(void) {return dbInf.dbmsName;}
char *GetDataSource(void) {return dsn;}
char *GetUsername(void) {return uid;}
char *GetPassword(void) {return authStr;}
bool IsOpen(void) {return dbIsOpen;}
HENV GetHENV(void) {return henv;}
HDBC GetHDBC(void) {return hdbc;}
HSTMT GetHSTMT(void) {return hstmt;}
bool TableExists(char *tableName); // Table name can refer to a table, view, alias or synonym
void LogError(char *errMsg, char *SQLState = 0) {logError(errMsg, SQLState);}
}; // wxDB
// This structure forms a node in a linked list. The linked list of "DbList" objects
// keeps track of allocated database connections. This allows the application to
// open more than one database connection through ODBC for multiple transaction support
// or for multiple database support.
struct DbList
{
DbList *PtrPrev; // Pointer to previous item in the list
char Dsn[SQL_MAX_DSN_LENGTH+1]; // Data Source Name
wxDB *PtrDb; // Pointer to the wxDB object
bool Free; // Is item free or in use?
DbList *PtrNext; // Pointer to next item in the list
};
// The following routines allow a user to get new database connections, free them
// for other code segments to use, or close all of them when the application has
// completed.
wxDB *GetDbConnection(DbStuff *pDbStuff);
bool FreeDbConnection(wxDB *pDb);
void CloseDbConnections(void);
int NumberDbConnectionsInUse(void);
// This routine allows you to query a driver manager
// for a list of available datasources. Call this routine
// the first time using SQL_FETCH_FIRST. Continue to call it
// using SQL_FETCH_NEXT until you've exhausted the list.
bool GetDataSource(HENV henv, char *Dsn, SWORD DsnMax, char *DsDesc, SWORD DsDescMax,
UWORD direction = SQL_FETCH_NEXT);
#endif

View File

@@ -1,165 +0,0 @@
///////////////////////////////////////////////////////////////////////////////
// Name: table.h
// Purpose: Declaration of the wxTable class.
// Author: Doug Card
// Modified by:
// Created: 9.96
// RCS-ID: $Id$
// Copyright: (c) 1996 Remstar International, Inc.
// Licence: wxWindows licence, plus:
// Notice: This class library and its intellectual design are free of charge for use,
// modification, enhancement, debugging under the following conditions:
// 1) These classes may only be used as part of the implementation of a
// wxWindows-based application
// 2) All enhancements and bug fixes are to be submitted back to the wxWindows
// user groups free of all charges for use with the wxWindows library.
// 3) These classes may not be distributed as part of any other class library,
// DLL, text (written or electronic), other than a complete distribution of
// the wxWindows GUI development toolkit.
///////////////////////////////////////////////////////////////////////////////
/*
// SYNOPSIS START
// SYNOPSIS STOP
*/
#ifndef TABLE_DOT_H
#define TABLE_DOT_H
#ifdef __GNUG__
#pragma interface "dbtable.h"
#endif
#include "wx/db.h"
const ROWID_LEN = 24; // 18 is the max, 24 is in case it gets larger
// The following class is used to define a column of a table.
// The wxTable constructor will dynamically allocate as many of
// these as there are columns in the table. The class derived
// from wxTable must initialize these column definitions in it's
// constructor. These column definitions provide inf. to the
// wxTable class which allows it to create a table in the data
// source, exchange data between the data source and the C++
// object, and so on.
class CcolDef
{
public:
char ColName[DB_MAX_COLUMN_NAME_LEN+1]; // Column Name glt 4/19/97 added one for the null terminator
int DbDataType; // Logical Data Type; e.g. DB_DATA_TYPE_INTEGER
int SqlCtype; // C data type; e.g. SQL_C_LONG
void *PtrDataObj; // Address of the data object
int SzDataObj; // Size, in bytes, of the data object
bool KeyField; // TRUE if this column is part of the PRIMARY KEY to the table; Date fields should NOT be KeyFields.
bool Updateable; // Specifies whether this column is updateable
bool InsertAllowed; // Specifies whether this column should be included in an INSERT statement
bool DerivedCol; // Specifies whether this column is a derived value
SDWORD CbValue; // Internal use only!!!
}; // CcolDef
// This structure is used when creating secondary indexes.
class CidxDef
{
public:
char ColName[DB_MAX_COLUMN_NAME_LEN+1]; // Column Name glt 4/19/97 added one for the null terminator
bool Ascending;
}; // CidxDef
class wxTable
{
private:
// Private member variables
int currCursorNo;
// Private member functions
bool bindInsertParams(void);
bool bindUpdateParams(void);
bool bindCols(HSTMT cursor);
bool getRec(UWORD fetchType);
bool execDelete(char *pSqlStmt);
bool execUpdate(char *pSqlStmt);
bool query(int queryType, bool forUpdate, bool distinct, char *pSqlStmt = 0);
public:
// Pointer to the database object this table belongs to
wxDB *pDb;
// ODBC Handles
HENV henv; // ODBC Environment handle
HDBC hdbc; // ODBC DB Connection handle
HSTMT hstmt; // ODBC Statement handle
// HSTMT c0, c1, c2, c3, c4, c5; // Cursors 0 through 5
HSTMT c0, c1, c2; // Limited to Cursors 0 through 2 for now
HSTMT hstmtInsert; // ODBC Statement handle used specifically for inserts
HSTMT hstmtDelete; // ODBC Statement handle used specifically for deletes
HSTMT hstmtUpdate; // ODBC Statement handle used specifically for updates
HSTMT hstmtCount; // ODBC Statement handle used specifically for COUNT(*)
// Table Inf.
char tableName[DB_MAX_TABLE_NAME_LEN+1]; // Table name
char queryTableName[DB_MAX_TABLE_NAME_LEN+1]; // Query Table Name
int noCols; // # of columns in the table
// Column Definitions
CcolDef *colDefs; // Array of CcolDef structures
// Where and Order By clauses
char *where; // Standard SQL where clause, minus the word WHERE
char *orderBy; // Standard SQL order by clause, minus the ORDER BY
// Flags
bool selectForUpdate;
// Public member functions
wxTable(wxDB *pwxDB, const char *tblName, const int nCols, const char *qryTblName = 0);
~wxTable();
bool Open(void);
bool CreateTable(void);
bool CreateIndex(char * idxName, bool unique, int noIdxCols, CidxDef *pIdxDefs);
bool CloseCursor(HSTMT cursor);
int Insert(void);
bool Update(void);
bool Update(char *pSqlStmt);
bool UpdateWhere(char *pWhereClause);
bool Delete(void);
bool DeleteWhere(char *pWhereClause);
bool DeleteMatching(void);
bool Query(bool forUpdate = FALSE, bool distinct = FALSE);
bool QueryBySqlStmt(char *pSqlStmt);
bool QueryMatching(bool forUpdate = FALSE, bool distinct = FALSE);
bool QueryOnKeyFields(bool forUpdate = FALSE, bool distinct = FALSE);
bool GetNext(void) { return(getRec(SQL_FETCH_NEXT)); }
bool operator++(int) { return(getRec(SQL_FETCH_NEXT)); }
#ifndef FWD_ONLY_CURSORS
bool GetPrev(void) { return(getRec(SQL_FETCH_PRIOR)); }
bool operator--(int) { return(getRec(SQL_FETCH_PRIOR)); }
bool GetFirst(void) { return(getRec(SQL_FETCH_FIRST)); }
bool GetLast(void) { return(getRec(SQL_FETCH_LAST)); }
#endif
bool IsCursorClosedOnCommit(void);
bool IsColNull(int colNo);
UWORD GetRowNum(void);
void GetSelectStmt(char *pSqlStmt, int typeOfSelect, bool distinct);
void GetDeleteStmt(char *pSqlStmt, int typeOfDel, char *pWhereClause = 0);
void GetUpdateStmt(char *pSqlStmt, int typeOfUpd, char *pWhereClause = 0);
void GetWhereClause(char *pWhereClause, int typeOfWhere);
bool CanSelectForUpdate(void);
bool CanUpdByROWID(void);
void ClearMemberVars(void);
bool SetQueryTimeout(UDWORD nSeconds);
void SetColDefs (int index, char *fieldName, int dataType, void *pData, int cType,
int size, bool keyField = FALSE, bool upd = TRUE,
bool insAllow = TRUE, bool derivedCol = FALSE);
bool SetCursor(int cursorNo = DB_CURSOR0);
int GetCursor(void) { return(currCursorNo); }
ULONG Count(void);
int DB_STATUS(void) { return(pDb->DB_STATUS); }
bool Refresh(void);
}; // wxTable
#endif

View File

@@ -1,19 +1,13 @@
#ifndef _WX_DC_H_BASE_
#define _WX_DC_H_BASE_
#ifndef __DCH_BASE__
#define __DCH_BASE__
#if defined(__WXMSW__)
#if defined(__WINDOWS__)
#include "wx/msw/dc.h"
#elif defined(__WXMOTIF__)
#include "wx/motif/dc.h"
#elif defined(__WXGTK__)
#elif defined(__MOTIF__)
#include "wx/xt/dc.h"
#elif defined(__GTK__)
#include "wx/gtk/dc.h"
#elif defined(__WXQT__)
#include "wx/qt/dc.h"
#elif defined(__WXMAC__)
#include "wx/mac/dc.h"
#elif defined(__WXSTUBS__)
#include "wx/stubs/dc.h"
#endif
#endif
// _WX_DC_H_BASE_
// __DCH_BASE__

View File

@@ -1,19 +1,13 @@
#ifndef _WX_DCCLIENT_H_BASE_
#define _WX_DCCLIENT_H_BASE_
#ifndef __DCCLIENTH_BASE__
#define __DCCLIENTH_BASE__
#if defined(__WXMSW__)
#if defined(__WINDOWS__)
#include "wx/msw/dcclient.h"
#elif defined(__WXMOTIF__)
#include "wx/motif/dcclient.h"
#elif defined(__WXGTK__)
#elif defined(__MOTIF__)
#include "wx/xt/dcclient.h"
#elif defined(__GTK__)
#include "wx/gtk/dcclient.h"
#elif defined(__WXQT__)
#include "wx/qt/dcclient.h"
#elif defined(__WXMAC__)
#include "wx/mac/dcclient.h"
#elif defined(__WXSTUBS__)
#include "wx/stubs/dcclient.h"
#endif
#endif
// _WX_DCCLIENT_H_BASE_
// __DCCLIENTH_BASE__

View File

@@ -1,19 +1,13 @@
#ifndef _WX_DCMEMORY_H_BASE_
#define _WX_DCMEMORY_H_BASE_
#ifndef __DCMEMORYH_BASE__
#define __DCMEMORYH_BASE__
#if defined(__WXMSW__)
#if defined(__WINDOWS__)
#include "wx/msw/dcmemory.h"
#elif defined(__WXMOTIF__)
#include "wx/motif/dcmemory.h"
#elif defined(__WXGTK__)
#elif defined(__MOTIF__)
#include "wx/xt/dcmemory.h"
#elif defined(__GTK__)
#include "wx/gtk/dcmemory.h"
#elif defined(__WXQT__)
#include "wx/qt/dcmemory.h"
#elif defined(__WXMAC__)
#include "wx/mac/dcmemory.h"
#elif defined(__WXSTUBS__)
#include "wx/stubs/dcmemory.h"
#endif
#endif
// _WX_DCMEMORY_H_BASE_
// __DCMEMORYH_BASE__

View File

@@ -1,9 +1,9 @@
#ifndef _WX_DCPRINT_H_BASE_
#define _WX_DCPRINT_H_BASE_
#ifndef __DCPRINTH_BASE__
#define __DCPRINTH_BASE__
#if defined(__WXMSW__)
#if defined(__WINDOWS__)
#include "wx/msw/dcprint.h"
#endif
#endif
// _WX_DCPRINT_H_BASE_
// __DCPRINTH_BASE__

View File

@@ -1,19 +1,13 @@
#ifndef _WX_DCSCREEN_H_BASE_
#define _WX_DCSCREEN_H_BASE_
#ifndef __DCSCREENH_BASE__
#define __DCSCREENH_BASE__
#if defined(__WXMSW__)
#if defined(__WINDOWS__)
#include "wx/msw/dcscreen.h"
#elif defined(__WXMOTIF__)
#include "wx/motif/dcscreen.h"
#elif defined(__WXGTK__)
#elif defined(__MOTIF__)
#include "wx/xt/dcscreen.h"
#elif defined(__GTK__)
#include "wx/gtk/dcscreen.h"
#elif defined(__WXQT__)
#include "wx/qt/dcscreen.h"
#elif defined(__WXMAC__)
#include "wx/mac/dcscreen.h"
#elif defined(__WXSTUBS__)
#include "wx/stubs/dcscreen.h"
#endif
#endif
// _WX_DCSCREEN_H_BASE_
// __DCSCREENH_BASE__

View File

@@ -1,19 +1,13 @@
#ifndef _WX_DDE_H_BASE_
#define _WX_DDE_H_BASE_
#ifndef __DDEH_BASE__
#define __DDEH_BASE__
#if defined(__WXMSW__)
#if defined(__WINDOWS__)
#include "wx/msw/dde.h"
#elif defined(__WXMOTIF__)
#include "wx/motif/dde.h"
#elif defined(__WXGTK__)
#elif defined(__MOTIF__)
#include "wx/xt/dde.h"
#elif defined(__GTK__)
#include "wx/gtk/dde.h"
#elif defined(__WXQT__)
#include "wx/qt/dde.h"
#elif defined(__WXMAC__)
#include "wx/mac/dde.h"
#elif defined(__WXSTUBS__)
#include "wx/stubs/dde.h"
#endif
#endif
// _WX_DDE_H_BASE_
// __DDEH_BASE__

View File

@@ -9,8 +9,8 @@
// Licence: wxWindows license
/////////////////////////////////////////////////////////////////////////////
#ifndef _WX_DEBUG_H_
#define _WX_DEBUG_H_
#ifndef __DEBUGH__
#define __DEBUGH__
#include <assert.h>
@@ -31,7 +31,7 @@
<BR>
<BR>
Extensive use of these macros is recommended! Remember that ASSERTs are
disabled in final (without WXDEBUG defined) build, so they add strictly
disabled in final (without DEBUG defined) build, so they add strictly
nothing to your program's code. On the other hand, CHECK macros do stay
even in release builds, but in general are not much of a burden, while
a judicious use of them might increase your program's stability.
@@ -43,7 +43,7 @@
/** @name Macros which are completely disabled in 'release' mode */
//@{
#ifdef __WXDEBUG__
#ifdef __DEBUG__
/**
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
@@ -51,7 +51,7 @@
@param szFile and nLine - file name and line number of the ASSERT
szMsg - optional message explaining the reason
*/
void wxOnAssert(const char *szFile, int nLine, const char *szMsg = (const char *) NULL);
void wxOnAssert(const char *szFile, int nLine, const char *szMsg = NULL);
/// generic assert macro
#define wxASSERT(cond) if ( !(cond) ) wxOnAssert(__FILE__, __LINE__)
@@ -62,7 +62,7 @@
// no more bugs ;-)
#define wxASSERT(cond)
#define wxASSERT_MSG(x, m)
#endif //WXDEBUG
#endif //DEBUG
/// special form of assert: always triggers it (in debug mode)
#define wxFAIL wxASSERT(0)
@@ -99,5 +99,5 @@
//@}
#endif // _WX_DEBUG_H_
#endif // __DEBUGH__

View File

@@ -9,14 +9,14 @@
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifndef _WX_DEFS_H_
#define _WX_DEFS_H_
#ifndef __DEFSH__
#define __DEFSH__
#ifdef __GNUG__
#pragma interface "defs.h"
#endif
#ifdef __WXGTK__
#ifdef __GTK__
#include "glib.h"
#include "gdk/gdk.h"
@@ -30,14 +30,8 @@
#include "wx/version.h"
// Helps SGI compilation, apparently
#if defined(__SGI__)
#if defined(__GNUG__)
#if defined(__SGI__) && defined(__GNUG__)
#define __need_wchar_t
#else
/* Note I use the term __SGI_CC__ for both cc and CC, its not a good idea to
* mix gcc and cc/CC, the name mangling is different */
#define __SGI_CC__
#endif
#endif
// Eliminate double/float warnings
@@ -49,15 +43,19 @@
//////////////////////////////////////////////////////////////////////////////////
// Currently Only MS-Windows/NT, XView and Motif are supported
//
#if defined(__HPUX__) && !defined(__WXMOTIF__)
# define __WXMOTIF__
#if defined(__HPUX__) && !defined(__MOTIF__)
# define __MOTIF__
#endif
#if defined(__WXMOTIF__)
#if defined(__MOTIF__)
# define __X__
#elif defined(__WINDOWS__) || defined(__WINDOWS_386__) || defined(__NT__) || defined(__MSDOS__)
# ifndef __WINDOWS__
# define __WINDOWS__
# endif
#endif
// wxWindows checks for WIN32, not __WIN32__
#if ((defined(WIN32) || defined(__NT__)) && !defined(__WIN32__) && !defined(__WXSTUBS__))
#if ((defined(WIN32) || defined(__NT__)) && !defined(__WIN32__))
#define __WIN32__
#endif
@@ -70,14 +68,13 @@
#endif
// Make sure the environment is set correctly
#if defined(__WXMSW__) && defined(__X__)
#if defined(__WINDOWS__) && defined(__X__)
# error "Target can't be both X and Windows"
#elif !defined(__WXMOTIF__) && !defined(__WXMSW__) && !defined(__WXGTK__) && \
!defined(__WXMAC__) && !defined(__X__) && !defined(__WXQT__) && !defined(__WXSTUBS__)
#error "No Target! Use -D[__WXMOTIF__|__WXGTK__|__WXMSW__|__WXMAC__|__WXQT__|__WXSTUBS__]"
#elif !defined(__MOTIF__) && !defined(__WINDOWS__) && !defined(__GTK__) && !defined(__MAC__) && !defined(__X__)
#error "No Target! Use -D[__MOTIF__|__GTK__|__WINDOWS__|__MAC__]"
#endif
#if defined(__WXMOTIF__) || defined(__WXGTK__) || defined(__WXQT__) || defined(__WXSTUBS__)
#if defined(__MOTIF__) || defined(__GTK__)
// Bool is now obsolete, use bool instead
// typedef int Bool;
@@ -88,7 +85,7 @@
# define Bool_DEFINED
#endif
#elif defined(__WXMSW__)
#elif defined(__WINDOWS__)
#ifndef TRUE
# define TRUE 1
@@ -122,7 +119,7 @@ typedef int wxWindowID;
* Making or using wxWindows as a Windows DLL
*/
#ifdef __WXMSW__
#ifdef __WINDOWS__
#ifdef __BORLANDC__
@@ -175,9 +172,22 @@ typedef int wxWindowID;
class WXDLLEXPORT wxObject;
class WXDLLEXPORT wxEvent;
/** symbolic constant used by all Find()-like functions returning positive
// Vadim's types - check whether we need them all
/// the type for various indexes (string, arrays, ...)
typedef unsigned int uint;
/// extended boolean type: { yes, no, may be }
typedef signed int EBool;
/// with TRUE and FALSE is a possible value for a "3-state" boolean var
#define UNKNOWN (-1)
/** symbolic constant used by all Find()-like functions returning positive
integer on success as failure indicator */
#define NOT_FOUND (-1)
/** useful for Windows programmers: makes somewhat more clear all these
zeroes being passed to Windows APIs */
#define RESERVED (NULL)
// ----------------------------------------------------------------------------
// Error codes
@@ -200,32 +210,10 @@ enum ErrCode
/** @name Very common macros */
// ----------------------------------------------------------------------------
//@{
/// delete pointer if it is not NULL and NULL it afterwards
// (checking that it's !NULL before passing it to delete is just a
// a question of style, because delete will do it itself anyhow, but it might
// be considered as an error by some overzealous debugging implementations of
// the library, so we do it ourselves)
#if defined(__SGI_CC__)
// Okay this is bad styling, but the native SGI compiler is very picky, it
// wont let you compare/assign between a NULL (void *) and another pointer
// type. To be really clean we'd need to pass in another argument, the type
// of p.
// Also note the use of 0L, this would allow future possible 64bit support
// (as yet untested) by ensuring that we zero all the bits in a pointer
// (which is always the same length as a long (at least with the LP64 standard)
// --- offer aug 98
#define wxDELETE(p) if ( (p) ) { delete (p); p = 0L; }
#else
#define wxDELETE(p) if ( (p) != NULL ) { delete p; p = NULL; }
#endif /* __SGI__CC__ */
// delete an array and NULL it (see comments above)
#if defined(__SGI_CC__)
// see above comment.
#define wxDELETEA(p) if ( (p) ) { delete [] (p); p = 0L; }
#else
#define wxDELETEA(p) if ( ((void *) (p)) != NULL ) { delete [] p; p = NULL; }
#endif /* __SGI__CC__ */
/// delete pointer if it is not NULL
#define DELETEP(p) if ( (p) != NULL ) delete (p)
/// delete array pointer if it is not NULL
#define DELETEA(p) if ( (p) != NULL ) delete [] (p)
/// size of statically declared array
#define WXSIZEOF(array) (sizeof(array)/sizeof(array[0]))
@@ -235,13 +223,17 @@ enum ErrCode
// ----------------------------------------------------------------------------
// OS
#if defined(__HPUX__) || defined(____SVR4____) || defined(__LINUX__) || defined(__sgi )
#if defined(__HPUX__) || defined(____SVR4____) || defined(__LINUX__)
#ifndef __UNIX__
#define __UNIX__
#endif
#endif
#ifndef __UNIX__ // Windows
#ifndef __WINDOWS__
#define __WINDOWS__
#endif
#if defined(_MSC_VER)
#define __VISUALC__
#elif defined(__BCPLUSPLUS__) && !defined(__BORLANDC__)
@@ -254,6 +246,14 @@ enum ErrCode
#endif // OS
#if defined(__UNIX__)
#define FILE_PATH_SEPARATOR ('/')
#elif defined(__WINDOWS__)
#define FILE_PATH_SEPARATOR ('\\')
#else
#error "don't know path separator for this platform"
#endif
// ----------------------------------------------------------------------------
// compiler specific settings
// ----------------------------------------------------------------------------
@@ -367,10 +367,8 @@ typedef void (*wxFunction) (wxObject&, wxEvent&);
*/
#define wxTB_3DBUTTONS 0x8000
#define wxTB_HORIZONTAL 0x0002
#define wxTB_VERTICAL 0x0004
// Flatbar/Coolbar under Win98
#define wxTB_FLAT 0x0008
#define wxTB_FLAT 0x0002
/*
* Apply to all panel items
@@ -389,14 +387,21 @@ typedef void (*wxFunction) (wxObject&, wxEvent&);
* Styles for wxListBox
*/
// In wxListBox style flag
#define wxSB_MASK 0x0008
#define wxNEEDED_SB 0x0000
#define wxALWAYS_SB 0x0008
// New naming convention
#define wxLB_NEEDED_SB wxNEEDED_SB
#define wxLB_ALWAYS_SB wxALWAYS_SB
#define wxLB_SORT 0x0010
#define wxLB_SINGLE 0x0020
// These duplicate the styles in the Multiple argument
#define wxLB_SINGLE 0x0000
#define wxLB_MULTIPLE 0x0040
#define wxLB_EXTENDED 0x0080
// wxLB_OWNERDRAW is Windows-only
#define wxLB_OWNERDRAW 0x0100
#define wxLB_NEEDED_SB 0x0200
#define wxLB_ALWAYS_SB 0x0400
#define wxLB_HSCROLL wxHSCROLL
/*
@@ -409,16 +414,19 @@ typedef void (*wxFunction) (wxObject&, wxEvent&);
#define wxTE_READONLY 0x0010
#define wxTE_MULTILINE 0x0020
// MSW-only
#define wxTE_RICHTEXT 0x0020
// TODO For backward compatibility, need wxOLD_READONLY
#define wxREADONLY wxTE_READONLY
#define wxEDITABLE 0
// #define wxTE_RICHTEXT 0x0020
/*
* wxComboBox style flags
*/
#define wxCB_SIMPLE 0x0004
#define wxCB_DROPDOWN 0x0000
#define wxCB_SORT 0x0008
#define wxCB_READONLY 0x0010
#define wxCB_DROPDOWN 0x0020
#define wxCB_READONLY wxREADONLY
/*
* wxRadioBox/wxRadioButton style flags
@@ -657,35 +665,26 @@ typedef enum {
// Possible SetSize flags
// Use internally-calculated width if -1
#define wxSIZE_AUTO_WIDTH 0x0001
#define wxSIZE_AUTO_WIDTH 1
// Use internally-calculated height if -1
#define wxSIZE_AUTO_HEIGHT 0x0002
#define wxSIZE_AUTO_HEIGHT 2
// Use internally-calculated width and height if each is -1
#define wxSIZE_AUTO (wxSIZE_AUTO_WIDTH|wxSIZE_AUTO_HEIGHT)
#define wxSIZE_AUTO 3
// Ignore missing (-1) dimensions (use existing).
// For readability only: test for wxSIZE_AUTO_WIDTH/HEIGHT in code.
#define wxSIZE_USE_EXISTING 0x0000
#define wxSIZE_USE_EXISTING 0
// Allow -1 as a valid position
#define wxSIZE_ALLOW_MINUS_ONE 0x0004
// Don't do parent client adjustments (for implementation only)
#define wxSIZE_NO_ADJUSTMENTS 0x0008
#define wxSIZE_ALLOW_MINUS_ONE 4
// Data format for drag & drop and clipboard operations
// numbers as per winuser.h
enum wxDataFormat
{
wxDF_TEXT = 1, /* CF_TEXT */
wxDF_BITMAP = 2, /* CF_BITMAP */
wxDF_METAFILE = 3, /* CF_METAFILEPICT */
wxDF_DIB = 8, /* CF_DIB */
wxDF_OEMTEXT = 7, /* CF_OEMTEXT */
wxDF_FILENAME = 15 /* CF_HDROP */
};
// Clipboard formats
// Numbers as per winuser.h
# define wxCF_TEXT 1 /* CF_TEXT */
# define wxCF_BITMAP 2 /* CF_BITMAP */
# define wxCF_METAFILE 3 /* CF_METAFILEPICT */
# define wxCF_DIB 8 /* CF_DIB */
# define wxCF_OEMTEXT 7 /* CF_OEMTEXT */
// Virtual keycodes
enum _Virtual_keycodes {
WXK_BACK = 8,
WXK_TAB = 9,
@@ -770,23 +769,20 @@ enum _Virtual_keycodes {
// OS mnemonics -- Identify the running OS (useful for Windows)
// [Not all platforms are currently available or supported]
enum {
wxUNKNOWN_PLATFORM,
wxCURSES, // Text-only CURSES
wxCURSES,
wxXVIEW_X, // Sun's XView OpenLOOK toolkit
wxMOTIF_X, // OSF Motif 1.x.x
wxCOSE_X, // OSF Common Desktop Environment
wxCOSE_X, // OSF Common Desktop Environment
wxNEXTSTEP, // NeXTStep
wxMACINTOSH, // Apple System 7
wxGTK, // GTK
wxQT, // Qt
wxGEOS, // GEOS
wxOS2_PM, // OS/2 Workplace
wxGEOS, // GEOS
wxOS2_PM, // OS/2 Workplace
wxWINDOWS, // Windows or WfW
wxPENWINDOWS, // Windows for Pen Computing
wxWINDOWS_NT, // Windows NT
wxWIN32S, // Windows 32S API
wxWIN95, // Windows 95
wxWIN386 // Watcom 32-bit supervisor modus
wxWIN32S, // Windows 32S API
wxWIN95, // Windows 95
wxWIN386 // Watcom 32-bit supervisor modus
};
// Printing
@@ -836,9 +832,8 @@ enum {
#define wxID_APPLY 5102
#define wxID_YES 5103
#define wxID_NO 5104
#define wxID_STATIC 5105
#ifdef __WXMSW__
#ifdef __WINDOWS__
// Stand-ins for Windows types, to avoid
// #including all of windows.h
@@ -852,7 +847,6 @@ typedef unsigned long WXHBRUSH;
typedef unsigned long WXHPALETTE;
typedef unsigned long WXHCURSOR;
typedef unsigned long WXHRGN;
typedef unsigned long WXHACCEL;
typedef unsigned long WXHINSTANCE;
typedef unsigned long WXHBITMAP;
typedef unsigned long WXHIMAGELIST;
@@ -864,20 +858,19 @@ typedef unsigned short WXWORD;
typedef unsigned int WXWPARAM;
typedef long WXLPARAM;
typedef unsigned long WXCOLORREF;
typedef void * WXRGN;
typedef void * WXRGNDATA;
typedef void * WXMSG;
typedef unsigned long WXHCONV;
typedef unsigned long WXHKEY;
typedef void * WXDRAWITEMSTRUCT;
typedef void * WXMEASUREITEMSTRUCT;
typedef void * WXLPCREATESTRUCT;
#ifdef __GNUWIN32__
typedef int (*WXFARPROC)();
#else
typedef int (__stdcall *WXFARPROC)();
#endif
#endif
// for drag & drop and clipboard operations
typedef unsigned short wxDataFormat;
#endif
// _WX_DEFS_H_
// __WXDEFSH__

View File

@@ -1,19 +1,13 @@
#ifndef _WX_DIALOG_H_BASE_
#define _WX_DIALOG_H_BASE_
#ifndef __DIALOGH_BASE__
#define __DIALOGH_BASE__
#if defined(__WXMSW__)
#if defined(__WINDOWS__)
#include "wx/msw/dialog.h"
#elif defined(__WXMOTIF__)
#include "wx/motif/dialog.h"
#elif defined(__WXGTK__)
#elif defined(__MOTIF__)
#include "wx/xt/dialog.h"
#elif defined(__GTK__)
#include "wx/gtk/dialog.h"
#elif defined(__WXQT__)
#include "wx/qt/dialog.h"
#elif defined(__WXMAC__)
#include "wx/mac/dialog.h"
#elif defined(__WXSTUBS__)
#include "wx/stubs/dialog.h"
#endif
#endif
// _WX_DIALOG_H_BASE_
// __DIALOGH_BASE__

View File

@@ -1,19 +1,13 @@
#ifndef _WX_DIRDLG_H_BASE_
#define _WX_DIRDLG_H_BASE_
#ifndef __DIRDLGH_BASE__
#define __DIRDLGH_BASE__
#if defined(__WXMSW__)
#if defined(__WINDOWS__)
#include "wx/msw/dirdlg.h"
#elif defined(__WXMOTIF__)
#include "wx/motif/dirdlg.h"
#elif defined(__WXGTK__)
#elif defined(__MOTIF__)
#include "wx/xt/dirdlg.h"
#elif defined(__GTK__)
#include "wx/gtk/dirdlg.h"
#elif defined(__WXQT__)
#include "wx/qt/dirdlg.h"
#elif defined(__WXMAC__)
#include "wx/mac/dirdlg.h"
#elif defined(__WXSTUBS__)
#include "wx/stubs/dirdlg.h"
#endif
#endif
// _WX_DIRDLG_H_BASE_
// __DIRDLGH_BASE__

View File

@@ -1,20 +1,14 @@
#ifndef _WX_DND_H_BASE_
#define _WX_DND_H_BASE_
#ifndef __DNDH_BASE__
#define __DNDH_BASE__
#if defined(__WXMSW__)
#if defined(__WINDOWS__)
#include "wx/msw/ole/dropsrc.h"
#include "wx/msw/ole/droptgt.h"
#include "wx/msw/ole/dataobj.h"
#elif defined(__WXMOTIF__)
#elif defined(__WXGTK__)
#elif defined(__MOTIF__)
#elif defined(__GTK__)
#include "wx/gtk/dnd.h"
#elif defined(__WXQT__)
#include "wx/qt/dnd.h"
#elif defined(__WXMAC__)
#include "wx/mac/dnd.h"
#elif defined(__WXSTUBS__)
#include "wx/stubs/dnd.h"
#endif
#endif
// _WX_DND_H_BASE_
// __DNDH_BASE__

View File

@@ -1,83 +0,0 @@
/////////////////////////////////////////////////////////////////////////////
// Name: docmdi.h
// Purpose: Frame classes for MDI document/view applications
// Author: Julian Smart
// Modified by:
// Created: 01/02/97
// RCS-ID: $Id$
// Copyright: (c)
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifndef _WX_DOCMDI_H_
#define _WX_DOCMDI_H_
#ifdef __GNUG__
#pragma interface "docmdi.h"
#endif
#include "wx/docview.h"
#include "wx/mdi.h"
/*
* Use this instead of wxMDIParentFrame
*/
class wxDocMDIParentFrame: public wxMDIParentFrame
{
DECLARE_CLASS(wxDocMDIParentFrame)
public:
wxDocMDIParentFrame(wxDocManager *manager, wxFrame *parent, wxWindowID id,
const wxString& title, const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize, long style = wxDEFAULT_FRAME_STYLE, const wxString& name = "frame");
bool OnClose(void);
// Extend event processing to search the document manager's event table
virtual bool ProcessEvent(wxEvent& event);
wxDocManager *GetDocumentManager(void) const { return m_docManager; }
void OnExit(wxCommandEvent& event);
void OnMRUFile(wxCommandEvent& event);
protected:
wxDocManager *m_docManager;
DECLARE_EVENT_TABLE()
};
/*
* Use this instead of wxMDIChildFrame
*/
class WXDLLEXPORT wxDocMDIChildFrame: public wxMDIChildFrame
{
DECLARE_CLASS(wxDocMDIChildFrame)
public:
wxDocMDIChildFrame(wxDocument *doc, wxView *view, wxMDIParentFrame *frame, wxWindowID id,
const wxString& title, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize,
long type = wxDEFAULT_FRAME_STYLE, const wxString& name = "frame");
~wxDocMDIChildFrame(void);
bool OnClose(void);
// Extend event processing to search the view's event table
virtual bool ProcessEvent(wxEvent& event);
void OnActivate(wxActivateEvent& event);
inline wxDocument *GetDocument(void) const { return m_childDocument; }
inline wxView *GetView(void) const { return m_childView; }
inline void SetDocument(wxDocument *doc) { m_childDocument = doc; }
inline void SetView(wxView *view) { m_childView = view; }
protected:
wxDocument* m_childDocument;
wxView* m_childView;
DECLARE_EVENT_TABLE()
};
#endif
// _WX_DOCMDI_H_

View File

@@ -9,8 +9,8 @@
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifndef _WX_DOCH__
#define _WX_DOCH__
#ifndef __DOCH__
#define __DOCH__
#ifdef __GNUG__
#pragma interface "docview.h"
@@ -56,7 +56,7 @@ class WXDLLEXPORT wxDocument : public wxEvtHandler
{
DECLARE_ABSTRACT_CLASS(wxDocument)
public:
wxDocument(wxDocument *parent = (wxDocument *) NULL);
wxDocument(wxDocument *parent = NULL);
~wxDocument(void);
void SetFilename(const wxString& filename, bool notifyViews = FALSE);
@@ -114,7 +114,7 @@ class WXDLLEXPORT wxDocument : public wxEvtHandler
inline wxList& GetViews(void) const { return (wxList&) m_documentViews; }
wxView *GetFirstView(void) const;
virtual void UpdateAllViews(wxView *sender = (wxView *) NULL, wxObject *hint = (wxObject *) NULL);
virtual void UpdateAllViews(wxView *sender = NULL, wxObject *hint = NULL);
// Remove all views (because we're closing the document)
virtual bool DeleteAllViews(void);
@@ -146,7 +146,7 @@ class WXDLLEXPORT wxView: public wxEvtHandler
{
DECLARE_ABSTRACT_CLASS(wxView)
public:
wxView(wxDocument *doc = (wxDocument *) NULL);
wxView(wxDocument *doc = NULL);
~wxView(void);
inline wxDocument *GetDocument(void) const { return m_viewDocument; }
@@ -161,7 +161,7 @@ class WXDLLEXPORT wxView: public wxEvtHandler
virtual void OnActivateView(bool activate, wxView *activeView, wxView *deactiveView);
virtual void OnDraw(wxDC *dc) = 0;
virtual void OnPrint(wxDC *dc, wxObject *info);
virtual void OnUpdate(wxView *sender, wxObject *hint = (wxObject *) NULL);
virtual void OnUpdate(wxView *sender, wxObject *hint = NULL);
virtual void OnChangeFilename(void);
// Called by framework if created automatically by the
@@ -212,7 +212,7 @@ class WXDLLEXPORT wxDocTemplate: public wxObject
// template/document type
wxDocTemplate(wxDocManager *manager, const wxString& descr, const wxString& filter, const wxString& dir,
const wxString& ext, const wxString& docTypeName, const wxString& viewTypeName,
wxClassInfo *docClassInfo = (wxClassInfo *) NULL, wxClassInfo *viewClassInfo = (wxClassInfo *)NULL,
wxClassInfo *docClassInfo = NULL, wxClassInfo *viewClassInfo = NULL,
long flags = wxDEFAULT_TEMPLATE_FLAGS);
~wxDocTemplate(void);
@@ -283,9 +283,9 @@ class WXDLLEXPORT wxDocManager: public wxEvtHandler
void OnUndo(wxCommandEvent& event);
void OnRedo(wxCommandEvent& event);
// Extend event processing to search the view's event table
virtual bool ProcessEvent(wxEvent& event);
#ifdef WXWIN_COMPATIBILITY
virtual wxDocument *CreateDocument(char *WXUNUSED(path), long WXUNUSED(flags = 0)) { return NULL; };
#endif
virtual wxDocument *CreateDocument(const wxString& path, long flags = 0);
virtual wxView *CreateView(wxDocument *doc, long flags = 0);
virtual void DeleteTemplate(wxDocTemplate *temp, long flags = 0);
@@ -317,7 +317,7 @@ class WXDLLEXPORT wxDocManager: public wxEvtHandler
// Views or windows should inform the document manager
// when a view is going in or out of focus
virtual void ActivateView(wxView *view, bool activate = TRUE, bool deleting = FALSE);
virtual wxView *GetCurrentView(void) const;
virtual inline wxView *GetCurrentView(void) const { return m_currentView; }
virtual inline wxList& GetDocuments(void) const { return (wxList&) m_docs; }
@@ -355,7 +355,7 @@ class WXDLLEXPORT wxDocChildFrame: public wxFrame
DECLARE_CLASS(wxDocChildFrame)
public:
wxDocChildFrame(wxDocument *doc, wxView *view, wxFrame *frame, wxWindowID id, const wxString& title,
wxDocChildFrame(wxDocument *doc, wxView *view, wxFrame *frame, const wxString& title,
const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize,
long type = wxDEFAULT_FRAME_STYLE, const wxString& name = "frame");
~wxDocChildFrame(void);
@@ -387,7 +387,7 @@ class WXDLLEXPORT wxDocParentFrame: public wxFrame
{
DECLARE_CLASS(wxDocParentFrame)
public:
wxDocParentFrame(wxDocManager *manager, wxFrame *frame, wxWindowID id, const wxString& title,
wxDocParentFrame(wxDocManager *manager, wxFrame *frame, const wxString& title,
const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize,
long type = wxDEFAULT_FRAME, const wxString& name = "frame");
@@ -416,7 +416,7 @@ class WXDLLEXPORT wxDocPrintout: public wxPrintout
{
DECLARE_DYNAMIC_CLASS(wxDocPrintout)
public:
wxDocPrintout(wxView *view = (wxView *) NULL, const wxString& title = "Printout");
wxDocPrintout(wxView *view = NULL, const wxString& title = "Printout");
bool OnPrintPage(int page);
bool HasPage(int page);
bool OnBeginDocument(int startPage, int endPage);

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