Compare commits
372 Commits
OLD_CONFIG
...
M_REFERENC
Author | SHA1 | Date | |
---|---|---|---|
|
fad893ed70 | ||
|
184b5d99a5 | ||
|
c2cde53a09 | ||
|
e0e9b65eaa | ||
|
bd5e2346d3 | ||
|
56194595d5 | ||
|
6b037754f5 | ||
|
25331334d4 | ||
|
deb907884a | ||
|
3bc755fc89 | ||
|
2243eed573 | ||
|
6fb26ea3b3 | ||
|
ee5e802571 | ||
|
4259a48e0b | ||
|
90aa629a92 | ||
|
e23d0e958e | ||
|
41dee9d0ce | ||
|
62bd087498 | ||
|
faf3cb3590 | ||
|
f57fe24c63 | ||
|
43a1889865 | ||
|
940c60c813 | ||
|
f536880994 | ||
|
8e18907799 | ||
|
e380f72b45 | ||
|
4832f7c06c | ||
|
8aa04e8bf1 | ||
|
892dbe9961 | ||
|
7615330240 | ||
|
0133ee9316 | ||
|
265898fd79 | ||
|
8ef6a930da | ||
|
55acd85e71 | ||
|
fb1585ae85 | ||
|
0f358732e4 | ||
|
e5d7a5b37b | ||
|
6dae83beef | ||
|
60e05667cb | ||
|
630d84f26f | ||
|
de5c0ba745 | ||
|
e9aad10ab7 | ||
|
917e533ba8 | ||
|
5b766d236b | ||
|
e8fdc26406 | ||
|
e6b5bdedf8 | ||
|
a462d1343f | ||
|
4d6306eb4d | ||
|
ea57084d10 | ||
|
605c9c8318 | ||
|
f9e02ac76b | ||
|
3dd4e4e05c | ||
|
d18ed59a36 | ||
|
87d1e11fd4 | ||
|
df875e593f | ||
|
f5e27805de | ||
|
ed7174bafe | ||
|
c33534e597 | ||
|
fd0eed647d | ||
|
3572173c01 | ||
|
5de9c45c5d | ||
|
76c5df2420 | ||
|
8f9d397616 | ||
|
910276d73f | ||
|
e471e2d054 | ||
|
386af6a2fa | ||
|
64d315544f | ||
|
6ca41e57f4 | ||
|
c55bc98ef7 | ||
|
4464bbee9c | ||
|
dc86cb34c3 | ||
|
8c65b36ad7 | ||
|
e1dc4cc687 | ||
|
9905086c2d | ||
|
e4d068605f | ||
|
c9d9f242e4 | ||
|
e895ec4513 | ||
|
de646ed1f5 | ||
|
7bce6aec99 | ||
|
5db1a502b4 | ||
|
f9f950fcd4 | ||
|
1950b38c35 | ||
|
96849c75a7 | ||
|
71317c5b30 | ||
|
a5e13868ca | ||
|
dce85cd4e7 | ||
|
0208334d5d | ||
|
fee0429537 | ||
|
58614078c4 | ||
|
3ebf240158 | ||
|
5a43154b56 | ||
|
84b46c356e | ||
|
7749df1f41 | ||
|
3efb01df7b | ||
|
cbb8c1d34c | ||
|
e5403d7c57 | ||
|
c67d86184d | ||
|
0280030162 | ||
|
31811e1aca | ||
|
a81258bee4 | ||
|
b926666447 | ||
|
a7e594b239 | ||
|
0b4d4194a2 | ||
|
f135ff73b4 | ||
|
4b5f3fe655 | ||
|
f4a4bd13d4 | ||
|
dbf858b5d6 | ||
|
f96aa4d9eb | ||
|
019bf1286f | ||
|
62b8502b43 | ||
|
07071479f2 | ||
|
db828ab4cb | ||
|
42c5812dbf | ||
|
0b4f9ee3d0 | ||
|
3a5a2f56f2 | ||
|
32e9da8bfa | ||
|
0e6c619a1a | ||
|
01111366c9 | ||
|
0ab4b99cdf | ||
|
e21a504837 | ||
|
321db4b6bf | ||
|
0d559d69c8 | ||
|
a316819695 | ||
|
1a3ac83faf | ||
|
ef366d323b | ||
|
06e38c8e2e | ||
|
fc54776e31 | ||
|
0d57be4594 | ||
|
b0f1bdde5a | ||
|
3349fe9210 | ||
|
df9c33a482 | ||
|
607d79b82b | ||
|
4e937c4d52 | ||
|
87832b70c5 | ||
|
4d94751752 | ||
|
e1822f7053 | ||
|
e4a81a2e96 | ||
|
9c1f7241c0 | ||
|
8f0c8a8093 | ||
|
2faefb26a4 | ||
|
19ae5cf071 | ||
|
ec45f8ee19 | ||
|
735c6572dc | ||
|
78bba745fc | ||
|
4d1d77e8f6 | ||
|
d5c9047acf | ||
|
e0a09ce419 | ||
|
c0ac1c32a4 | ||
|
100af5a812 | ||
|
8704bf74fb | ||
|
68dda78574 | ||
|
be6bf94bf0 | ||
|
08b7c251c4 | ||
|
1195ec4251 | ||
|
a4294b7832 | ||
|
02847e5984 | ||
|
ddbbbdd486 | ||
|
c96fd235be | ||
|
89c7e96229 | ||
|
520e470fdd | ||
|
2b165e9905 | ||
|
8d5e303441 | ||
|
49884e3e0d | ||
|
6dd2244b9d | ||
|
eda26cebb1 | ||
|
38a489ae36 | ||
|
2910dac85f | ||
|
645e44e364 | ||
|
07e88e448d | ||
|
07e80bdd10 | ||
|
78322206b8 | ||
|
a3b466481e | ||
|
124e17387c | ||
|
287c43c105 | ||
|
678f4bdc88 | ||
|
203feea888 | ||
|
d47631c8f5 | ||
|
ea13954cd2 | ||
|
48df9992ad | ||
|
47bc106012 | ||
|
85ee3474b7 | ||
|
8ef062da8f | ||
|
0075bd5d43 | ||
|
7cf98a658a | ||
|
5f31d8628c | ||
|
08ee50db7c | ||
|
8a9523f25d | ||
|
2aa45cc919 | ||
|
a24ce62235 | ||
|
d56894a83d | ||
|
77e3eac5f2 | ||
|
c085e33398 | ||
|
2d0a075d90 | ||
|
75ed1d15d0 | ||
|
1b19f0560f | ||
|
ff5a1c54e8 | ||
|
1075543838 | ||
|
4c7e33c5ea | ||
|
c3939f625e | ||
|
8a60ae88fb | ||
|
da36f5446f | ||
|
0ed9fce61a | ||
|
387a3b02e0 | ||
|
03f38c58fd | ||
|
fbc535ff08 | ||
|
66de8e7a1b | ||
|
fd71308fc8 | ||
|
c39d4bcf2b | ||
|
42d819d67e | ||
|
9d9355c60c | ||
|
a65f3e5499 | ||
|
42ff6409d9 | ||
|
7cacdad3e2 | ||
|
b26e2dc41d | ||
|
e86d366cab | ||
|
1b826605f5 | ||
|
32cbeff4c3 | ||
|
fb4e5803ed | ||
|
418955322b | ||
|
8d950bdb57 | ||
|
b8d3a4f1a1 | ||
|
3ad0023f59 | ||
|
09ee8e72b2 | ||
|
2c3b684c2b | ||
|
524bf39144 | ||
|
dfad059924 | ||
|
9c039d08bf | ||
|
d1c74ca98b | ||
|
9e4b2f1c57 | ||
|
d4b67f95d2 | ||
|
297a3fece1 | ||
|
217e13fa85 | ||
|
b80dc5febe | ||
|
2d5249297d | ||
|
30d9011f40 | ||
|
ac9390a0bc | ||
|
9ee2d31ccc | ||
|
c89a610604 | ||
|
8248314dbd | ||
|
851b94590a | ||
|
1c3d41800c | ||
|
d9692df7a3 | ||
|
f97c985452 | ||
|
23e09f1115 | ||
|
7ce404dd7b | ||
|
e4b19d9b20 | ||
|
126eb09b0f | ||
|
27fc802d5c | ||
|
47d67540a0 | ||
|
d069d02e1e | ||
|
f51f94ea2e | ||
|
76626af21b | ||
|
d0dc2fe891 | ||
|
e97f20a0f2 | ||
|
16c1f7f345 | ||
|
dcf40a56e7 | ||
|
ecadfc3f5a | ||
|
1c4a764c98 | ||
|
803bf1c581 | ||
|
dfc5454127 | ||
|
b112d15289 | ||
|
a4876ea44c | ||
|
e79848acfe | ||
|
e096774dd1 | ||
|
02e8b2f9fb | ||
|
a5e0e655cb | ||
|
dfcb1ae09d | ||
|
23d1d521c8 | ||
|
3093cef829 | ||
|
50414e24a7 | ||
|
2319d2b09a | ||
|
9b6dbb0974 | ||
|
4bb6408c26 | ||
|
c9d22ba77c | ||
|
5f3cd8a22a | ||
|
9da0d96f87 | ||
|
856d2e527d | ||
|
46ccb5107f | ||
|
9fdf3c3877 | ||
|
054889057e | ||
|
3c024cc22f | ||
|
589f0e3e60 | ||
|
7f555861b7 | ||
|
f93ce4dadc | ||
|
335a8b43e9 | ||
|
86411736c3 | ||
|
fbcb41664b | ||
|
8fdca65cf2 | ||
|
84efdbf195 | ||
|
cfb88c5569 | ||
|
8cb50e4b46 | ||
|
341287bf49 | ||
|
cb43b372fb | ||
|
e55ad60e19 | ||
|
384b4373c7 | ||
|
b7db6f0b6d | ||
|
0c32066b58 | ||
|
d8c838755a | ||
|
ab346a0c3f | ||
|
337d7956cc | ||
|
5a2055fa9b | ||
|
cb17fe41ee | ||
|
27529614c2 | ||
|
f395c809b5 | ||
|
a665764c39 | ||
|
c058d77142 | ||
|
c740f49634 | ||
|
6f5f3ca0fe | ||
|
d6d1892b89 | ||
|
6987a6c3d0 | ||
|
61607c3641 | ||
|
d84eb08384 | ||
|
b8c631bb29 | ||
|
e22036dc39 | ||
|
a60c99e6a9 | ||
|
c9dac6640f | ||
|
774e843c03 | ||
|
83058c584f | ||
|
b4071e913e | ||
|
a6d7030871 | ||
|
97b3455a6d | ||
|
8ed57d9312 | ||
|
88db66e373 | ||
|
3e64d4e1e5 | ||
|
743e0a66f6 | ||
|
040f0110fc | ||
|
fd2daa68f4 | ||
|
27fda0b6a1 | ||
|
252eb8fd71 | ||
|
a7ee134340 | ||
|
10310d8322 | ||
|
7c3c5eccb2 | ||
|
4c84fa8d91 | ||
|
fcc6dddd1f | ||
|
d3904ceb9a | ||
|
13439807d3 | ||
|
3f659fd6b1 | ||
|
f4ada56822 | ||
|
560b92f577 | ||
|
acb62b847b | ||
|
3bdd13763c | ||
|
72212c2879 | ||
|
3972fb4919 | ||
|
68278f98be | ||
|
2e5ed787e9 | ||
|
868a28262c | ||
|
1573d8ed98 | ||
|
e1e955e14c | ||
|
42871d3819 | ||
|
11bc0805de | ||
|
f3cb6592e9 | ||
|
5b011451bd | ||
|
25c70b07e6 | ||
|
f05df5a85a | ||
|
94a0f3ce22 | ||
|
66c135f346 | ||
|
741fd2033e | ||
|
dd7f2a6c52 | ||
|
db5d183b03 | ||
|
cf7a7e133b | ||
|
24d20a8f73 | ||
|
2cb21a4540 | ||
|
c487af252d | ||
|
a83ffecb67 | ||
|
9dbd8eb8f1 | ||
|
b3031762e8 | ||
|
c98f04213e | ||
|
e96ddf25ad | ||
|
9a648dc916 | ||
|
7b46ecac64 | ||
|
bcf1fa6bb4 | ||
|
8429bec1e8 | ||
|
2f2aa6287b |
@@ -2,3 +2,10 @@ system.list
|
||||
bin
|
||||
.gdb_history
|
||||
Test
|
||||
config.cache
|
||||
config.status
|
||||
system.list
|
||||
linux.system.cache
|
||||
wx-config
|
||||
config.log
|
||||
linux-gnu.system.cache
|
||||
|
8
Makefile
8
Makefile
@@ -53,12 +53,18 @@ user::
|
||||
@echo "entering directory user building all"
|
||||
@cd user; ${MAKE} all
|
||||
|
||||
install::
|
||||
@echo "entering directory src for installing"
|
||||
@cd src; ${MAKE} install
|
||||
@echo "entering directory utils for installing"
|
||||
@cd utils; ${MAKE} install
|
||||
|
||||
# the following ones recreate all Makefiles.
|
||||
|
||||
makefiles:: recreate
|
||||
Makefiles:: recreate
|
||||
recreate::
|
||||
@install/unix/setup/general/createall
|
||||
@setup/general/createall
|
||||
|
||||
# the following ones define what needs to be done to distribute the
|
||||
# library and its components
|
||||
|
58
TODO.txt
58
TODO.txt
@@ -1,52 +1,42 @@
|
||||
********************* TODO list for wxWindows 2 ******************************
|
||||
|
||||
The items are grouped by platform (generic, MSW, GTK...) and inside by
|
||||
subject. The first 2 columns containg the following codes:
|
||||
|
||||
Priority classification: Amount of work expected:
|
||||
9 next point release q quick fix
|
||||
8 next release s small change
|
||||
7 as soon as possible l a little work
|
||||
6 soon w some work
|
||||
5 should be included b big change
|
||||
4 nice to have m major change
|
||||
3 consider including ? don't know how to fix
|
||||
2 maybe not - unclassified
|
||||
1 probably not
|
||||
- unclassified
|
||||
|
||||
After the subject the name in brackets indicates the person who is going to do
|
||||
it.
|
||||
|
||||
=============================== common ========================================
|
||||
|
||||
4w wxString optimization (VZ)
|
||||
allocate more memory than needed to avoid reallocation each time when
|
||||
operator+ or += is used.
|
||||
wxSocket, wxTCP etc..
|
||||
|
||||
6b stream classes (VZ)
|
||||
wxMultiMedia
|
||||
|
||||
=============================== generic ======================================
|
||||
|
||||
7s wxTreeCtrl root item (RR)
|
||||
root item is not shown currently (unlike in MSW version)
|
||||
wxTreeCtrl keyboard handling
|
||||
wxTreeCtrl icon support
|
||||
|
||||
5w wxImageList
|
||||
it's not implemented currently, to do (assuming that all images have the
|
||||
same size - no resizing should be done to simplify the job)
|
||||
wxListCtrl icon support in list mode
|
||||
|
||||
================================ MSW ==========================================
|
||||
|
||||
7w consistent keyboard interface and focus behaviour (VZ)
|
||||
Consistent keyboard interface and focus behaviour
|
||||
currently, the focus is lost all the time (after a MessageBox, for example)
|
||||
and sometimes TABbing through controls doesn't work
|
||||
|
||||
================================ GTK ==========================================
|
||||
|
||||
9m keyboard interface (RR)
|
||||
TAB traversal, Alt-letter accelerators for the controls and accelerators
|
||||
for menu items - TODO.
|
||||
Add support Set colour/baclgroundcolour in GTK widgets
|
||||
Correct tab navigation (seems to be a GTK feature)
|
||||
Finish DnD
|
||||
Add Clipboard
|
||||
Help system (not sure about this one)
|
||||
Show accelerator in menus
|
||||
More controls with bitmaps
|
||||
Speed up bitmap saving
|
||||
Add wxBitmapHandler
|
||||
Fix printing of bitmaps
|
||||
Implement wxRadioBox layout
|
||||
Finish wxTextCtrl
|
||||
Finish native wxTreeCtrl
|
||||
Implement wxPalette
|
||||
Implement wxDirDialog
|
||||
Support cooperation between Qt and wxWindows
|
||||
Fix toolbar tips
|
||||
TrueType support (just kidding)
|
||||
|
||||
3b wxTreeCtrl native implementation?
|
||||
GTK has a GtkCTree widget which seems to be quite close to the Windows
|
||||
standard control - what about writing a native wxTreeCtrl based on it?
|
||||
|
0
install/unix/config.sub → config.sub
vendored
0
install/unix/config.sub → config.sub
vendored
3112
install/unix/configure → configure
vendored
3112
install/unix/configure → configure
vendored
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,4 +1,5 @@
|
||||
distrib/*.*
|
||||
distrib/msw/*.rsp
|
||||
distrib/msw/*.bat
|
||||
|
||||
docs/readme.txt
|
||||
docs/install.txt
|
||||
@@ -8,6 +9,7 @@ docs/upgrade.txt
|
||||
docs/todo.txt
|
||||
docs/licence.txt
|
||||
docs/symbols.txt
|
||||
docs/*.html
|
||||
|
||||
src/*.inc
|
||||
src/mkdir
|
||||
@@ -28,7 +30,7 @@ src/generic/*.inc
|
||||
|
||||
src/png/*.c
|
||||
src/png/*.h
|
||||
src/png/makefile.*
|
||||
src/png/makefile*
|
||||
src/png/INSTALL
|
||||
src/png/CHANGES
|
||||
src/png/README
|
||||
@@ -45,12 +47,13 @@ src/zlib/README
|
||||
src/zlib/ChangeLog
|
||||
src/zlib/configure
|
||||
src/zlib/*.txt
|
||||
src/zlib/makefile.*
|
||||
src/zlib/makefile*
|
||||
src/zlib/*.com
|
||||
src/zlib/*.3
|
||||
src/zlib/*.mms
|
||||
|
||||
include/wx/*.h
|
||||
include/wx/protocol/*.h
|
||||
include/wx/*.cpp
|
||||
include/wx/wx_setup.vms
|
||||
include/wx/common/*.h
|
||||
@@ -73,9 +76,9 @@ bitmaps/ico/32x32/*.*
|
||||
afm/*.*
|
||||
|
||||
utils/*.txt
|
||||
utils/make*.*
|
||||
utils/make*
|
||||
|
||||
utils/xpmshow/src/makefile.*
|
||||
utils/xpmshow/src/makefile*
|
||||
utils/xpmshow/src/*.cpp
|
||||
utils/xpmshow/src/*.h
|
||||
utils/xpmshow/src/*.def
|
||||
@@ -86,7 +89,7 @@ utils/xpmshow/src/*.ico
|
||||
|
||||
utils/wxhelp/src/*.cpp
|
||||
utils/wxhelp/src/*.h
|
||||
utils/wxhelp/src/makefile.*
|
||||
utils/wxhelp/src/makefile*
|
||||
utils/wxhelp/src/*.xbm
|
||||
utils/wxhelp/src/*.xpm
|
||||
utils/wxhelp/src/*.txt
|
||||
@@ -115,7 +118,7 @@ utils/tex2rtf/tools/tcheck/*.bat
|
||||
|
||||
utils/wxtree/src/*.cpp
|
||||
utils/wxtree/src/*.h
|
||||
utils/wxtree/src/makefile.*
|
||||
utils/wxtree/src/makefile*
|
||||
utils/wxtree/src/*.xbm
|
||||
utils/wxtree/src/*.xpm
|
||||
utils/wxtree/lib/dummy
|
||||
@@ -126,7 +129,7 @@ utils/wxtree/src/*.rc
|
||||
utils/wxgraph/src/*.cpp
|
||||
utils/wxgraph/src/*.c
|
||||
utils/wxgraph/src/*.h
|
||||
utils/wxgraph/src/makefile.*
|
||||
utils/wxgraph/src/makefile*
|
||||
utils/wxgraph/src/*.xbm
|
||||
utils/wxgraph/src/*.xpm
|
||||
utils/wxgraph/lib/dummy
|
||||
@@ -138,7 +141,7 @@ utils/mfutils/src/*.cpp
|
||||
utils/mfutils/src/*.h
|
||||
utils/mfutils/src/*.rc
|
||||
utils/mfutils/src/*.def
|
||||
utils/mfutils/src/makefile.*
|
||||
utils/mfutils/src/makefile*
|
||||
utils/mfutils/src/*.txt
|
||||
utils/mfutils/lib/dummy
|
||||
utils/mfutils/src/*.ico
|
||||
@@ -149,7 +152,7 @@ utils/mfutils/src/*.ico
|
||||
utils/rcparser/src/*.cpp
|
||||
utils/rcparser/src/*.c
|
||||
utils/rcparser/src/*.h
|
||||
utils/rcparser/src/makefile.*
|
||||
utils/rcparser/src/makefile*
|
||||
utils/rcparser/src/*.xbm
|
||||
utils/rcparser/src/*.xpm
|
||||
utils/rcparser/lib/dummy
|
||||
@@ -162,16 +165,26 @@ utils/colours/*.h
|
||||
utils/colours/*.cpp
|
||||
utils/colours/*.def
|
||||
utils/colours/*.rc
|
||||
utils/colours/makefile.*
|
||||
utils/colours/makefile*
|
||||
utils/colours/*.xbm
|
||||
utils/colours/*.xpm
|
||||
utils/colours/*.txt
|
||||
|
||||
utils/serialize/*.h
|
||||
utils/serialize/*.cpp
|
||||
utils/serialize/*.def
|
||||
utils/serialize/*.rc
|
||||
utils/serialize/makefile*
|
||||
utils/serialize/*.xbm
|
||||
utils/serialize/*.xpm
|
||||
utils/serialize/*.txt
|
||||
|
||||
utils/wxprop/Makefile
|
||||
utils/wxprop/src/*.h
|
||||
utils/wxprop/src/*.cpp
|
||||
utils/wxprop/src/*.def
|
||||
utils/wxprop/src/*.rc
|
||||
utils/wxprop/src/makefile.*
|
||||
utils/wxprop/src/makefile*
|
||||
utils/wxprop/src/*.xbm
|
||||
utils/wxprop/src/*.xpm
|
||||
utils/wxprop/src/*.txt
|
||||
@@ -179,13 +192,14 @@ utils/wxprop/src/*.ico
|
||||
utils/wxprop/src/*.bmp
|
||||
utils/wxprop/lib/dummy
|
||||
|
||||
utils/dialoged/Makefile
|
||||
utils/dialoged/src/bitmaps/*.xbm
|
||||
utils/dialoged/src/bitmaps/*.xpm
|
||||
utils/dialoged/src/*.h
|
||||
utils/dialoged/src/*.cpp
|
||||
utils/dialoged/src/*.def
|
||||
utils/dialoged/src/*.rc
|
||||
utils/dialoged/src/makefile.*
|
||||
utils/dialoged/src/makefile*
|
||||
utils/dialoged/src/*.xbm
|
||||
utils/dialoged/src/*.xpm
|
||||
utils/dialoged/src/*.txt
|
||||
@@ -199,19 +213,66 @@ utils/dialoged/src/bitmaps/*.ico
|
||||
utils/dialoged/test/*.cpp
|
||||
utils/dialoged/test/*.def
|
||||
utils/dialoged/test/*.rc
|
||||
utils/dialoged/test/makefile.*
|
||||
utils/dialoged/test/makefile*
|
||||
utils/dialoged/lib/dummy
|
||||
utils/dialoged/test/*.ico
|
||||
utils/dialoged/test/*.prj
|
||||
utils/dialoged/test/*.bmp
|
||||
|
||||
utils/glcanvas/Makefile
|
||||
utils/glcanvas/win/*.h
|
||||
utils/glcanvas/win/*.cpp
|
||||
utils/glcanvas/win/*.def
|
||||
utils/glcanvas/win/*.rc
|
||||
utils/glcanvas/win/makefile*
|
||||
utils/glcanvas/win/*.xbm
|
||||
utils/glcanvas/win/*.xpm
|
||||
utils/glcanvas/win/*.txt
|
||||
utils/glcanvas/win/*.ico
|
||||
utils/glcanvas/win/*.bmp
|
||||
utils/glcanvas/src/*.h
|
||||
utils/glcanvas/src/*.cpp
|
||||
utils/glcanvas/src/*.def
|
||||
utils/glcanvas/src/*.rc
|
||||
utils/glcanvas/src/makefile*
|
||||
utils/glcanvas/src/*.xbm
|
||||
utils/glcanvas/src/*.xpm
|
||||
utils/glcanvas/src/*.txt
|
||||
utils/glcanvas/src/*.ico
|
||||
utils/glcanvas/src/*.bmp
|
||||
utils/glcanvas/samples/cube/*.h
|
||||
utils/glcanvas/samples/cube/*.cpp
|
||||
utils/glcanvas/samples/cube/*.def
|
||||
utils/glcanvas/samples/cube/*.rc
|
||||
utils/glcanvas/samples/cube/makefile*
|
||||
utils/glcanvas/samples/cube/*.xbm
|
||||
utils/glcanvas/samples/cube/*.xpm
|
||||
utils/glcanvas/samples/cube/*.txt
|
||||
utils/glcanvas/samples/cube/*.ico
|
||||
utils/glcanvas/samples/cube/*.bmp
|
||||
utils/glcanvas/samples/isosurf/*.h
|
||||
utils/glcanvas/samples/isosurf/*.cpp
|
||||
utils/glcanvas/samples/isosurf/*.def
|
||||
utils/glcanvas/samples/isosurf/*.rc
|
||||
utils/glcanvas/samples/isosurf/makefile*
|
||||
utils/glcanvas/samples/isosurf/*.xbm
|
||||
utils/glcanvas/samples/isosurf/*.xpm
|
||||
utils/glcanvas/samples/isosurf/*.txt
|
||||
utils/glcanvas/samples/isosurf/*.ico
|
||||
utils/glcanvas/samples/isosurf/*.bmp
|
||||
utils/glcanvas/samples/isosurf/*.gz
|
||||
utils/glcanvas/docs/*.tex
|
||||
utils/glcanvas/docs/*.txt
|
||||
utils/glcanvas/docs/*.bmp
|
||||
utils/glcanvas/docs/*.gif
|
||||
|
||||
samples/*.txt
|
||||
samples/makefile.*
|
||||
samples/makefile*
|
||||
|
||||
samples/config/*.cpp
|
||||
samples/config/*.h
|
||||
samples/config/*.def
|
||||
samples/config/makefile*.*
|
||||
samples/config/makefile*
|
||||
samples/config/*.xbm
|
||||
samples/config/*.xpm
|
||||
samples/config/*.txt
|
||||
@@ -223,7 +284,7 @@ samples/config/*.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
|
||||
@@ -232,10 +293,35 @@ samples/dynamic/*.bmp
|
||||
samples/dynamic/*.rc
|
||||
samples/dynamic/*.wav
|
||||
|
||||
samples/wxsocket/*.cpp
|
||||
samples/wxsocket/*.h
|
||||
samples/wxsocket/*.def
|
||||
samples/wxsocket/makefile*
|
||||
samples/wxsocket/*.xbm
|
||||
samples/wxsocket/*.xpm
|
||||
samples/wxsocket/*.ico
|
||||
samples/wxsocket/*.rc
|
||||
|
||||
samples/help/*.cpp
|
||||
samples/help/*.h
|
||||
samples/help/*.def
|
||||
samples/help/makefile*
|
||||
samples/help/*.xbm
|
||||
samples/help/*.xpm
|
||||
samples/help/*.ico
|
||||
samples/help/*.rc
|
||||
samples/help/doc/*.html
|
||||
samples/help/doc/*.htm
|
||||
samples/help/doc/*.class
|
||||
samples/help/doc/*.db
|
||||
samples/help/doc/*.tex
|
||||
samples/help/doc/*.gif
|
||||
samples/help/doc/*.map
|
||||
|
||||
samples/bombs/*.cpp
|
||||
samples/bombs/*.h
|
||||
samples/bombs/*.def
|
||||
samples/bombs/makefile*.*
|
||||
samples/bombs/makefile*
|
||||
samples/bombs/*.xbm
|
||||
samples/bombs/*.xpm
|
||||
samples/bombs/*.txt
|
||||
@@ -246,21 +332,31 @@ samples/bombs/*.rc
|
||||
samples/ipc/*.cpp
|
||||
samples/ipc/*.h
|
||||
samples/ipc/*.def
|
||||
samples/ipc/makefile*.*
|
||||
samples/ipc/makefile*
|
||||
samples/ipc/*.xbm
|
||||
samples/ipc/*.xpm
|
||||
samples/ipc/*.ico
|
||||
samples/ipc/*.rc
|
||||
|
||||
samples/types/*.cpp
|
||||
samples/types/*.h
|
||||
samples/types/*.def
|
||||
samples/types/*.rc
|
||||
samples/types/*.txt
|
||||
samples/types/makefile*.*
|
||||
samples/types/*.xbm
|
||||
samples/types/*.xpm
|
||||
samples/types/*.ico
|
||||
samples/typetest/*.cpp
|
||||
samples/typetest/*.h
|
||||
samples/typetest/*.def
|
||||
samples/typetest/*.rc
|
||||
samples/typetest/*.txt
|
||||
samples/typetest/makefile*
|
||||
samples/typetest/*.xbm
|
||||
samples/typetest/*.xpm
|
||||
samples/typetest/*.ico
|
||||
|
||||
samples/sashtest/*.cpp
|
||||
samples/sashtest/*.h
|
||||
samples/sashtest/*.def
|
||||
samples/sashtest/*.rc
|
||||
samples/sashtest/*.txt
|
||||
samples/sashtest/makefile*
|
||||
samples/sashtest/*.xbm
|
||||
samples/sashtest/*.xpm
|
||||
samples/sashtest/*.ico
|
||||
|
||||
samples/resource/*.cpp
|
||||
samples/resource/*.h
|
||||
@@ -268,7 +364,7 @@ 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
|
||||
@@ -276,7 +372,7 @@ 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
|
||||
@@ -285,18 +381,20 @@ samples/animate/*.rc
|
||||
samples/mdi/*.cpp
|
||||
samples/mdi/*.h
|
||||
samples/mdi/*.def
|
||||
samples/mdi/makefile*.*
|
||||
samples/mdi/makefile*
|
||||
samples/mdi/*.xbm
|
||||
samples/mdi/*.xpm
|
||||
samples/mdi/*.ico
|
||||
samples/mdi/*.rc
|
||||
samples/mdi/bitmaps/*.bmp
|
||||
samples/mdi/bitmaps/*.ico
|
||||
samples/mdi/bitmaps/*.xpm
|
||||
samples/mdi/bitmaps/*.xbm
|
||||
|
||||
samples/minimal/*.cpp
|
||||
samples/minimal/*.h
|
||||
samples/minimal/*.def
|
||||
samples/minimal/makefile*.*
|
||||
samples/minimal/makefile*
|
||||
samples/minimal/*.xbm
|
||||
samples/minimal/*.xpm
|
||||
samples/minimal/*.ico
|
||||
@@ -305,17 +403,18 @@ samples/minimal/*.rc
|
||||
samples/controls/*.cpp
|
||||
samples/controls/*.h
|
||||
samples/controls/*.def
|
||||
samples/controls/makefile*.*
|
||||
samples/controls/makefile*
|
||||
samples/controls/*.xbm
|
||||
samples/controls/*.xpm
|
||||
samples/controls/*.ico
|
||||
samples/controls/*.bmp
|
||||
samples/controls/*.rc
|
||||
samples/controls/icons/*
|
||||
|
||||
samples/fractal/*.cpp
|
||||
samples/fractal/*.h
|
||||
samples/fractal/*.def
|
||||
samples/fractal/makefile*.*
|
||||
samples/fractal/makefile*
|
||||
samples/fractal/*.xbm
|
||||
samples/fractal/*.xpm
|
||||
samples/fractal/*.ico
|
||||
@@ -324,7 +423,7 @@ 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
|
||||
@@ -334,7 +433,7 @@ samples/layout/*.bmp
|
||||
samples/printing/*.cpp
|
||||
samples/printing/*.h
|
||||
samples/printing/*.def
|
||||
samples/printing/makefile*.*
|
||||
samples/printing/makefile*
|
||||
samples/printing/*.xbm
|
||||
samples/printing/*.xpm
|
||||
samples/printing/*.txt
|
||||
@@ -346,7 +445,7 @@ samples/printing/*.afm
|
||||
samples/toolbar/*.cpp
|
||||
samples/toolbar/*.h
|
||||
samples/toolbar/*.def
|
||||
samples/toolbar/makefile*.*
|
||||
samples/toolbar/makefile*
|
||||
samples/toolbar/*.txt
|
||||
samples/toolbar/*.xbm
|
||||
samples/toolbar/*.xpm
|
||||
@@ -361,7 +460,7 @@ 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
|
||||
@@ -372,7 +471,7 @@ 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
|
||||
@@ -383,7 +482,7 @@ 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
|
||||
@@ -396,7 +495,7 @@ 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
|
||||
@@ -409,7 +508,7 @@ 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
|
||||
@@ -423,7 +522,7 @@ 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
|
||||
@@ -435,7 +534,7 @@ 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
|
||||
@@ -447,7 +546,7 @@ 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
|
||||
@@ -458,7 +557,7 @@ 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
|
||||
@@ -473,7 +572,7 @@ 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
|
||||
@@ -488,7 +587,7 @@ 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
|
||||
@@ -499,7 +598,7 @@ 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
|
||||
@@ -510,7 +609,7 @@ 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
|
||||
@@ -523,7 +622,7 @@ 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
|
||||
@@ -531,7 +630,7 @@ samples/checklst/*.bmp
|
||||
|
||||
samples/dnd/*.cpp
|
||||
samples/dnd/*.h
|
||||
samples/dnd/makefile*.*
|
||||
samples/dnd/makefile*
|
||||
samples/dnd/*.rc
|
||||
samples/dnd/*.def
|
||||
samples/dnd/*.bmp
|
||||
@@ -542,7 +641,7 @@ samples/dnd/*.txt
|
||||
|
||||
samples/tab/*.cpp
|
||||
samples/tab/*.h
|
||||
samples/tab/makefile*.*
|
||||
samples/tab/makefile*
|
||||
samples/tab/*.rc
|
||||
samples/tab/*.def
|
||||
samples/tab/*.bmp
|
||||
@@ -551,9 +650,20 @@ samples/tab/*.xpm
|
||||
samples/tab/*.ico
|
||||
samples/tab/*.txt
|
||||
|
||||
samples/notebook/*.cpp
|
||||
samples/notebook/*.h
|
||||
samples/notebook/makefile*
|
||||
samples/notebook/*.rc
|
||||
samples/notebook/*.def
|
||||
samples/notebook/*.bmp
|
||||
samples/notebook/*.xbm
|
||||
samples/notebook/*.xpm
|
||||
samples/notebook/*.ico
|
||||
samples/notebook/*.txt
|
||||
|
||||
samples/png/*.cpp
|
||||
samples/png/*.h
|
||||
samples/png/makefile*.*
|
||||
samples/png/makefile*
|
||||
samples/png/*.rc
|
||||
samples/png/*.def
|
||||
samples/png/*.bmp
|
||||
@@ -563,3 +673,27 @@ samples/png/*.ico
|
||||
samples/png/*.txt
|
||||
samples/png/*.png
|
||||
|
||||
samples/image/*.cpp
|
||||
samples/image/*.h
|
||||
samples/image/makefile*
|
||||
samples/image/*.rc
|
||||
samples/image/*.def
|
||||
samples/image/*.bmp
|
||||
samples/image/*.xpm
|
||||
samples/image/*.xbm
|
||||
samples/image/*.png
|
||||
samples/image/*.ico
|
||||
samples/image/*.txt
|
||||
|
||||
samples/thread/*.cpp
|
||||
samples/thread/*.h
|
||||
samples/thread/makefile*
|
||||
samples/thread/*.rc
|
||||
samples/thread/*.def
|
||||
samples/thread/*.bmp
|
||||
samples/thread/*.xpm
|
||||
samples/thread/*.xbm
|
||||
samples/thread/*.png
|
||||
samples/thread/*.ico
|
||||
samples/thread/*.txt
|
||||
|
||||
|
@@ -2,10 +2,17 @@ install-sh
|
||||
Makefile
|
||||
template.mak
|
||||
TODO.txt
|
||||
configure.in
|
||||
config.guess
|
||||
config.sub
|
||||
wx-config.in
|
||||
mkinstalldirs
|
||||
|
||||
docs/gtk/*.html
|
||||
docs/gtk/*.txt
|
||||
|
||||
include/wx/gtk/*.h
|
||||
|
||||
src/mkdirs
|
||||
src/Makefile
|
||||
src/Makefile.in
|
||||
src/*.inc
|
||||
@@ -15,12 +22,6 @@ 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
|
||||
@@ -41,11 +42,57 @@ src/iodbc/build
|
||||
src/iodbc/Changes.log
|
||||
src/iodbc/postgres/*.h
|
||||
|
||||
install/gtk/*
|
||||
setup/*.in
|
||||
setup/*.hin
|
||||
|
||||
misc/afm/*
|
||||
misc/gs_afm/*
|
||||
misc/imlib/*
|
||||
setup/general/createall
|
||||
setup/general/jointar
|
||||
setup/general/makeapp
|
||||
setup/general/makedirs
|
||||
setup/general/makedoc
|
||||
setup/general/mygrep
|
||||
setup/general/needed
|
||||
|
||||
setup/rules/bin
|
||||
setup/rules/bin2
|
||||
setup/rules/doc
|
||||
setup/rules/gbin
|
||||
setup/rules/gbin2
|
||||
setup/rules/glib
|
||||
setup/rules/glibbin
|
||||
setup/rules/glibgbin
|
||||
setup/rules/gslib
|
||||
setup/rules/lib
|
||||
setup/rules/libbin
|
||||
setup/rules/libgbin
|
||||
|
||||
setup/rules/generic/bin1
|
||||
setup/rules/generic/bin1gen
|
||||
setup/rules/generic/bin2
|
||||
setup/rules/generic/bin2gen
|
||||
setup/rules/generic/depend
|
||||
setup/rules/generic/globals
|
||||
setup/rules/generic/lib
|
||||
setup/rules/generic/needed
|
||||
setup/rules/generic/obj
|
||||
setup/rules/generic/slib
|
||||
setup/rules/generic/sobj
|
||||
|
||||
setup/shared/sharedAIX
|
||||
setup/shared/sharedBsd
|
||||
setup/shared/sharedDgux
|
||||
setup/shared/sharedHpux
|
||||
setup/shared/sharedIrix
|
||||
setup/shared/sharedLinux
|
||||
setup/shared/sharedOSF
|
||||
setup/shared/sharedSolaris2
|
||||
setup/shared/sharedSunos4
|
||||
setup/shared/sharedSysV
|
||||
|
||||
misc/afm/*.afm
|
||||
misc/gs_afm/*.afm
|
||||
misc/imlib/imrc
|
||||
misc/imlib/*.pal
|
||||
|
||||
user/Makefile
|
||||
|
||||
@@ -67,3 +114,10 @@ user/wxTest/Makefile.in
|
||||
user/wxTest/*.xpm
|
||||
user/wxTest/*.png
|
||||
|
||||
user/wxLayout/*.cpp
|
||||
user/wxLayout/*.h
|
||||
user/wxLayout/Makefile
|
||||
user/wxLayout/Makefile.in
|
||||
user/wxLayout/*.xpm
|
||||
user/wxLayout/*.png
|
||||
|
||||
|
96
distrib/msw/motif.rsp
Normal file
96
distrib/msw/motif.rsp
Normal file
@@ -0,0 +1,96 @@
|
||||
install-sh
|
||||
Makefile
|
||||
template.mak
|
||||
configure.in
|
||||
config.guess
|
||||
config.sub
|
||||
wx-config.in
|
||||
mkinstalldirs
|
||||
src/Makefile
|
||||
src/Makefile.in
|
||||
src/*.inc
|
||||
|
||||
setup/*.in
|
||||
setup/*.hin
|
||||
|
||||
setup/general/createall
|
||||
setup/general/jointar
|
||||
setup/general/makeapp
|
||||
setup/general/makedirs
|
||||
setup/general/makedoc
|
||||
setup/general/mygrep
|
||||
setup/general/needed
|
||||
|
||||
setup/rules/bin
|
||||
setup/rules/bin2
|
||||
setup/rules/doc
|
||||
setup/rules/gbin
|
||||
setup/rules/gbin2
|
||||
setup/rules/glib
|
||||
setup/rules/glibbin
|
||||
setup/rules/glibgbin
|
||||
setup/rules/gslib
|
||||
setup/rules/lib
|
||||
setup/rules/libbin
|
||||
setup/rules/libgbin
|
||||
|
||||
setup/rules/generic/bin1
|
||||
setup/rules/generic/bin1gen
|
||||
setup/rules/generic/bin2
|
||||
setup/rules/generic/bin2gen
|
||||
setup/rules/generic/depend
|
||||
setup/rules/generic/globals
|
||||
setup/rules/generic/lib
|
||||
setup/rules/generic/needed
|
||||
setup/rules/generic/obj
|
||||
setup/rules/generic/slib
|
||||
setup/rules/generic/sobj
|
||||
|
||||
setup/shared/sharedAIX
|
||||
setup/shared/sharedBsd
|
||||
setup/shared/sharedDgux
|
||||
setup/shared/sharedHpux
|
||||
setup/shared/sharedIrix
|
||||
setup/shared/sharedLinux
|
||||
setup/shared/sharedOSF
|
||||
setup/shared/sharedSolaris2
|
||||
setup/shared/sharedSunos4
|
||||
setup/shared/sharedSysV
|
||||
|
||||
misc/afm/*.afm
|
||||
|
||||
src/motif/*.cpp
|
||||
src/motif/*.c
|
||||
src/motif/*.h
|
||||
src/motif/makefile*
|
||||
src/motif/*.inc
|
||||
src/motif/*.xbm
|
||||
src/motif/xmcombo/*.c
|
||||
src/motif/xmcombo/*.h
|
||||
src/motif/xmcombo/*.doc
|
||||
src/motif/xmcombo/*.man
|
||||
src/motif/xmcombo/*.txt
|
||||
src/motif/mdi/COPYRIGHT
|
||||
src/motif/mdi/Imakefile
|
||||
src/motif/mdi/Readme
|
||||
src/motif/mdi/config/C++.rules
|
||||
src/motif/mdi/config/MDI.tmpl
|
||||
src/motif/mdi/doc/*.html
|
||||
src/motif/mdi/doc/pics/*.gif
|
||||
src/motif/mdi/lib/*.C
|
||||
src/motif/mdi/lib/*.h
|
||||
src/motif/mdi/lib/*.xbm
|
||||
src/motif/mdi/lib/Imakefile
|
||||
src/motif/mdi/test/*.C
|
||||
src/motif/mdi/test/Imakefile
|
||||
|
||||
src/make.env
|
||||
src/makeprog.env
|
||||
|
||||
include/wx/motif/*.h
|
||||
|
||||
docs/motif/*.*
|
||||
|
||||
lib/dummy
|
||||
|
||||
|
@@ -1,6 +1,9 @@
|
||||
docs/msw/*.txt
|
||||
docs/licence.txt
|
||||
|
||||
distrib/msw/*.rsp
|
||||
distrib/msw/*.bat
|
||||
|
||||
src/makeb32.env
|
||||
src/makebcc.env
|
||||
src/makemsw.env
|
||||
|
14
distrib/msw/stubs.rsp
Normal file
14
distrib/msw/stubs.rsp
Normal file
@@ -0,0 +1,14 @@
|
||||
src/stubs/*.cpp
|
||||
src/stubs/*.h
|
||||
src/stubs/makefile*
|
||||
src/stubs/*.inc
|
||||
|
||||
src/make.env
|
||||
src/makeprog.env
|
||||
|
||||
include/wx/stubs/*.h
|
||||
include/wx/stubs/*.rc
|
||||
|
||||
lib/dummy
|
||||
|
||||
|
@@ -6,7 +6,7 @@ if "%src" == "" goto usage
|
||||
if "%dest" == "" 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 To %dest
|
||||
echo CTRL-C if this is not correct.
|
||||
pause
|
||||
|
||||
@@ -17,12 +17,16 @@ echo Zipping...
|
||||
zip32 -@ %dest\wx200gen.zip < %src\distrib\msw\generic.rsp
|
||||
zip32 -@ %dest\wx200msw.zip < %src\distrib\msw\msw.rsp
|
||||
zip32 -@ %dest\wx200gtk.zip < %src\distrib\msw\gtk.rsp
|
||||
zip32 -@ %dest\wx200stubs.zip < %src\distrib\msw\stubs.rsp
|
||||
zip32 -@ %dest\wx200mot.zip < %src\distrib\msw\motif.rsp
|
||||
zip32 -@ %dest\wx200doc.zip < %src\distrib\msw\docsrc.rsp
|
||||
|
||||
zip32 -@ %dest\wx200hlp.zip < %src\distrib\msw\wx_hlp.rsp
|
||||
zip32 -@ %dest\wx200htm.zip < %src\distrib\msw\wx_html.rsp
|
||||
zip32 -@ %dest\wx200pdf.zip < %src\distrib\msw\wx_pdf.rsp
|
||||
|
||||
zip32 -@ %dest\ogl3.zip < %src\utils\ogl\distrib\ogl.rsp
|
||||
|
||||
cd %dest
|
||||
|
||||
echo wxWindows archived.
|
||||
|
481
docs/gtk/COPYING.LIB
Normal file
481
docs/gtk/COPYING.LIB
Normal file
@@ -0,0 +1,481 @@
|
||||
GNU LIBRARY GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1991 Free Software Foundation, Inc.
|
||||
675 Mass Ave, Cambridge, MA 02139, USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
[This is the first released version of the library GPL. It is
|
||||
numbered 2 because it goes with version 2 of the ordinary GPL.]
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
Licenses are intended to guarantee your freedom to share and change
|
||||
free software--to make sure the software is free for all its users.
|
||||
|
||||
This license, the Library General Public License, applies to some
|
||||
specially designated Free Software Foundation software, and to any
|
||||
other libraries whose authors decide to use it. You can use it for
|
||||
your libraries, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if
|
||||
you distribute copies of the library, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of the library, whether gratis
|
||||
or for a fee, you must give the recipients all the rights that we gave
|
||||
you. You must make sure that they, too, receive or can get the source
|
||||
code. If you link a program with the library, you must provide
|
||||
complete object files to the recipients so that they can relink them
|
||||
with the library, after making changes to the library and recompiling
|
||||
it. And you must show them these terms so they know their rights.
|
||||
|
||||
Our method of protecting your rights has two steps: (1) copyright
|
||||
the library, and (2) offer you this license which gives you legal
|
||||
permission to copy, distribute and/or modify the library.
|
||||
|
||||
Also, for each distributor's protection, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
library. If the library is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original
|
||||
version, so that any problems introduced by others will not reflect on
|
||||
the original authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that companies distributing free
|
||||
software will individually obtain patent licenses, thus in effect
|
||||
transforming the program into proprietary software. To prevent this,
|
||||
we have made it clear that any patent must be licensed for everyone's
|
||||
free use or not licensed at all.
|
||||
|
||||
Most GNU software, including some libraries, is covered by the ordinary
|
||||
GNU General Public License, which was designed for utility programs. This
|
||||
license, the GNU Library General Public License, applies to certain
|
||||
designated libraries. This license is quite different from the ordinary
|
||||
one; be sure to read it in full, and don't assume that anything in it is
|
||||
the same as in the ordinary license.
|
||||
|
||||
The reason we have a separate public license for some libraries is that
|
||||
they blur the distinction we usually make between modifying or adding to a
|
||||
program and simply using it. Linking a program with a library, without
|
||||
changing the library, is in some sense simply using the library, and is
|
||||
analogous to running a utility program or application program. However, in
|
||||
a textual and legal sense, the linked executable is a combined work, a
|
||||
derivative of the original library, and the ordinary General Public License
|
||||
treats it as such.
|
||||
|
||||
Because of this blurred distinction, using the ordinary General
|
||||
Public License for libraries did not effectively promote software
|
||||
sharing, because most developers did not use the libraries. We
|
||||
concluded that weaker conditions might promote sharing better.
|
||||
|
||||
However, unrestricted linking of non-free programs would deprive the
|
||||
users of those programs of all benefit from the free status of the
|
||||
libraries themselves. This Library General Public License is intended to
|
||||
permit developers of non-free programs to use free libraries, while
|
||||
preserving your freedom as a user of such programs to change the free
|
||||
libraries that are incorporated in them. (We have not seen how to achieve
|
||||
this as regards changes in header files, but we have achieved it as regards
|
||||
changes in the actual functions of the Library.) The hope is that this
|
||||
will lead to faster development of free libraries.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow. Pay close attention to the difference between a
|
||||
"work based on the library" and a "work that uses the library". The
|
||||
former contains code derived from the library, while the latter only
|
||||
works together with the library.
|
||||
|
||||
Note that it is possible for a library to be covered by the ordinary
|
||||
General Public License rather than by this special one.
|
||||
|
||||
GNU LIBRARY GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License Agreement applies to any software library which
|
||||
contains a notice placed by the copyright holder or other authorized
|
||||
party saying it may be distributed under the terms of this Library
|
||||
General Public License (also called "this License"). Each licensee is
|
||||
addressed as "you".
|
||||
|
||||
A "library" means a collection of software functions and/or data
|
||||
prepared so as to be conveniently linked with application programs
|
||||
(which use some of those functions and data) to form executables.
|
||||
|
||||
The "Library", below, refers to any such software library or work
|
||||
which has been distributed under these terms. A "work based on the
|
||||
Library" means either the Library or any derivative work under
|
||||
copyright law: that is to say, a work containing the Library or a
|
||||
portion of it, either verbatim or with modifications and/or translated
|
||||
straightforwardly into another language. (Hereinafter, translation is
|
||||
included without limitation in the term "modification".)
|
||||
|
||||
"Source code" for a work means the preferred form of the work for
|
||||
making modifications to it. For a library, complete source code means
|
||||
all the source code for all modules it contains, plus any associated
|
||||
interface definition files, plus the scripts used to control compilation
|
||||
and installation of the library.
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running a program using the Library is not restricted, and output from
|
||||
such a program is covered only if its contents constitute a work based
|
||||
on the Library (independent of the use of the Library in a tool for
|
||||
writing it). Whether that is true depends on what the Library does
|
||||
and what the program that uses the Library does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Library's
|
||||
complete source code as you receive it, in any medium, provided that
|
||||
you conspicuously and appropriately publish on each copy an
|
||||
appropriate copyright notice and disclaimer of warranty; keep intact
|
||||
all the notices that refer to this License and to the absence of any
|
||||
warranty; and distribute a copy of this License along with the
|
||||
Library.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy,
|
||||
and you may at your option offer warranty protection in exchange for a
|
||||
fee.
|
||||
|
||||
2. You may modify your copy or copies of the Library or any portion
|
||||
of it, thus forming a work based on the Library, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) The modified work must itself be a software library.
|
||||
|
||||
b) You must cause the files modified to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
c) You must cause the whole of the work to be licensed at no
|
||||
charge to all third parties under the terms of this License.
|
||||
|
||||
d) If a facility in the modified Library refers to a function or a
|
||||
table of data to be supplied by an application program that uses
|
||||
the facility, other than as an argument passed when the facility
|
||||
is invoked, then you must make a good faith effort to ensure that,
|
||||
in the event an application does not supply such function or
|
||||
table, the facility still operates, and performs whatever part of
|
||||
its purpose remains meaningful.
|
||||
|
||||
(For example, a function in a library to compute square roots has
|
||||
a purpose that is entirely well-defined independent of the
|
||||
application. Therefore, Subsection 2d requires that any
|
||||
application-supplied function or table used by this function must
|
||||
be optional: if the application does not supply it, the square
|
||||
root function must still compute square roots.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Library,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Library, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote
|
||||
it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Library.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Library
|
||||
with the Library (or with a work based on the Library) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may opt to apply the terms of the ordinary GNU General Public
|
||||
License instead of this License to a given copy of the Library. To do
|
||||
this, you must alter all the notices that refer to this License, so
|
||||
that they refer to the ordinary GNU General Public License, version 2,
|
||||
instead of to this License. (If a newer version than version 2 of the
|
||||
ordinary GNU General Public License has appeared, then you can specify
|
||||
that version instead if you wish.) Do not make any other change in
|
||||
these notices.
|
||||
|
||||
Once this change is made in a given copy, it is irreversible for
|
||||
that copy, so the ordinary GNU General Public License applies to all
|
||||
subsequent copies and derivative works made from that copy.
|
||||
|
||||
This option is useful when you wish to copy part of the code of
|
||||
the Library into a program that is not a library.
|
||||
|
||||
4. You may copy and distribute the Library (or a portion or
|
||||
derivative of it, under Section 2) in object code or executable form
|
||||
under the terms of Sections 1 and 2 above provided that you accompany
|
||||
it with the complete corresponding machine-readable source code, which
|
||||
must be distributed under the terms of Sections 1 and 2 above on a
|
||||
medium customarily used for software interchange.
|
||||
|
||||
If distribution of object code is made by offering access to copy
|
||||
from a designated place, then offering equivalent access to copy the
|
||||
source code from the same place satisfies the requirement to
|
||||
distribute the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
5. A program that contains no derivative of any portion of the
|
||||
Library, but is designed to work with the Library by being compiled or
|
||||
linked with it, is called a "work that uses the Library". Such a
|
||||
work, in isolation, is not a derivative work of the Library, and
|
||||
therefore falls outside the scope of this License.
|
||||
|
||||
However, linking a "work that uses the Library" with the Library
|
||||
creates an executable that is a derivative of the Library (because it
|
||||
contains portions of the Library), rather than a "work that uses the
|
||||
library". The executable is therefore covered by this License.
|
||||
Section 6 states terms for distribution of such executables.
|
||||
|
||||
When a "work that uses the Library" uses material from a header file
|
||||
that is part of the Library, the object code for the work may be a
|
||||
derivative work of the Library even though the source code is not.
|
||||
Whether this is true is especially significant if the work can be
|
||||
linked without the Library, or if the work is itself a library. The
|
||||
threshold for this to be true is not precisely defined by law.
|
||||
|
||||
If such an object file uses only numerical parameters, data
|
||||
structure layouts and accessors, and small macros and small inline
|
||||
functions (ten lines or less in length), then the use of the object
|
||||
file is unrestricted, regardless of whether it is legally a derivative
|
||||
work. (Executables containing this object code plus portions of the
|
||||
Library will still fall under Section 6.)
|
||||
|
||||
Otherwise, if the work is a derivative of the Library, you may
|
||||
distribute the object code for the work under the terms of Section 6.
|
||||
Any executables containing that work also fall under Section 6,
|
||||
whether or not they are linked directly with the Library itself.
|
||||
|
||||
6. As an exception to the Sections above, you may also compile or
|
||||
link a "work that uses the Library" with the Library to produce a
|
||||
work containing portions of the Library, and distribute that work
|
||||
under terms of your choice, provided that the terms permit
|
||||
modification of the work for the customer's own use and reverse
|
||||
engineering for debugging such modifications.
|
||||
|
||||
You must give prominent notice with each copy of the work that the
|
||||
Library is used in it and that the Library and its use are covered by
|
||||
this License. You must supply a copy of this License. If the work
|
||||
during execution displays copyright notices, you must include the
|
||||
copyright notice for the Library among them, as well as a reference
|
||||
directing the user to the copy of this License. Also, you must do one
|
||||
of these things:
|
||||
|
||||
a) Accompany the work with the complete corresponding
|
||||
machine-readable source code for the Library including whatever
|
||||
changes were used in the work (which must be distributed under
|
||||
Sections 1 and 2 above); and, if the work is an executable linked
|
||||
with the Library, with the complete machine-readable "work that
|
||||
uses the Library", as object code and/or source code, so that the
|
||||
user can modify the Library and then relink to produce a modified
|
||||
executable containing the modified Library. (It is understood
|
||||
that the user who changes the contents of definitions files in the
|
||||
Library will not necessarily be able to recompile the application
|
||||
to use the modified definitions.)
|
||||
|
||||
b) Accompany the work with a written offer, valid for at
|
||||
least three years, to give the same user the materials
|
||||
specified in Subsection 6a, above, for a charge no more
|
||||
than the cost of performing this distribution.
|
||||
|
||||
c) If distribution of the work is made by offering access to copy
|
||||
from a designated place, offer equivalent access to copy the above
|
||||
specified materials from the same place.
|
||||
|
||||
d) Verify that the user has already received a copy of these
|
||||
materials or that you have already sent this user a copy.
|
||||
|
||||
For an executable, the required form of the "work that uses the
|
||||
Library" must include any data and utility programs needed for
|
||||
reproducing the executable from it. However, as a special exception,
|
||||
the source code distributed need not include anything that is normally
|
||||
distributed (in either source or binary form) with the major
|
||||
components (compiler, kernel, and so on) of the operating system on
|
||||
which the executable runs, unless that component itself accompanies
|
||||
the executable.
|
||||
|
||||
It may happen that this requirement contradicts the license
|
||||
restrictions of other proprietary libraries that do not normally
|
||||
accompany the operating system. Such a contradiction means you cannot
|
||||
use both them and the Library together in an executable that you
|
||||
distribute.
|
||||
|
||||
7. You may place library facilities that are a work based on the
|
||||
Library side-by-side in a single library together with other library
|
||||
facilities not covered by this License, and distribute such a combined
|
||||
library, provided that the separate distribution of the work based on
|
||||
the Library and of the other library facilities is otherwise
|
||||
permitted, and provided that you do these two things:
|
||||
|
||||
a) Accompany the combined library with a copy of the same work
|
||||
based on the Library, uncombined with any other library
|
||||
facilities. This must be distributed under the terms of the
|
||||
Sections above.
|
||||
|
||||
b) Give prominent notice with the combined library of the fact
|
||||
that part of it is a work based on the Library, and explaining
|
||||
where to find the accompanying uncombined form of the same work.
|
||||
|
||||
8. You may not copy, modify, sublicense, link with, or distribute
|
||||
the Library except as expressly provided under this License. Any
|
||||
attempt otherwise to copy, modify, sublicense, link with, or
|
||||
distribute the Library is void, and will automatically terminate your
|
||||
rights under this License. However, parties who have received copies,
|
||||
or rights, from you under this License will not have their licenses
|
||||
terminated so long as such parties remain in full compliance.
|
||||
|
||||
9. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Library or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Library (or any work based on the
|
||||
Library), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Library or works based on it.
|
||||
|
||||
10. Each time you redistribute the Library (or any work based on the
|
||||
Library), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute, link with or modify the Library
|
||||
subject to these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
11. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Library at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Library by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Library.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under any
|
||||
particular circumstance, the balance of the section is intended to apply,
|
||||
and the section as a whole is intended to apply in other circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
12. If the distribution and/or use of the Library is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Library under this License may add
|
||||
an explicit geographical distribution limitation excluding those countries,
|
||||
so that distribution is permitted only in or among countries not thus
|
||||
excluded. In such case, this License incorporates the limitation as if
|
||||
written in the body of this License.
|
||||
|
||||
13. The Free Software Foundation may publish revised and/or new
|
||||
versions of the Library General Public License from time to time.
|
||||
Such new versions will be similar in spirit to the present version,
|
||||
but may differ in detail to address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Library
|
||||
specifies a version number of this License which applies to it and
|
||||
"any later version", you have the option of following the terms and
|
||||
conditions either of that version or of any later version published by
|
||||
the Free Software Foundation. If the Library does not specify a
|
||||
license version number, you may choose any version ever published by
|
||||
the Free Software Foundation.
|
||||
|
||||
14. If you wish to incorporate parts of the Library into other free
|
||||
programs whose distribution conditions are incompatible with these,
|
||||
write to the author to ask for permission. For software which is
|
||||
copyrighted by the Free Software Foundation, write to the Free
|
||||
Software Foundation; we sometimes make exceptions for this. Our
|
||||
decision will be guided by the two goals of preserving the free status
|
||||
of all derivatives of our free software and of promoting the sharing
|
||||
and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
|
||||
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
|
||||
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
|
||||
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
|
||||
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
|
||||
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
|
||||
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
|
||||
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
|
||||
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
|
||||
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
|
||||
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
|
||||
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
|
||||
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
|
||||
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
|
||||
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
|
||||
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
|
||||
DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
Appendix: How to Apply These Terms to Your New Libraries
|
||||
|
||||
If you develop a new library, and you want it to be of the greatest
|
||||
possible use to the public, we recommend making it free software that
|
||||
everyone can redistribute and change. You can do so by permitting
|
||||
redistribution under these terms (or, alternatively, under the terms of the
|
||||
ordinary General Public License).
|
||||
|
||||
To apply these terms, attach the following notices to the library. It is
|
||||
safest to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least the
|
||||
"copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the library's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with this library; if not, write to the Free
|
||||
Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the library, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the
|
||||
library `Frob' (a library for tweaking knobs) written by James Random Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1990
|
||||
Ty Coon, President of Vice
|
||||
|
||||
That's all there is to it!
|
@@ -1,90 +1,87 @@
|
||||
* The most simple case
|
||||
-----------------------
|
||||
|
||||
If you compile wxWindows on Unix for the first time and don't like
|
||||
to read install instructions just do (in the base dir):
|
||||
|
||||
./configure --without-threads
|
||||
make
|
||||
|
||||
and drink 10 coffees. Then you may log in as root and type
|
||||
|
||||
make install
|
||||
|
||||
You can leave out the --without-threads option if you have a NEW
|
||||
Linux distribution based on glibc (e.g. RedHat 5.1 or Debian 2.0)
|
||||
or any other Unix that comes with Posix threads or SGI threads.
|
||||
|
||||
Now create your super-application myfoo.app and compile anywhere with
|
||||
|
||||
g++ myfoo.cpp `wx-config --libs` `wx-config --cflags` -o myfoo
|
||||
|
||||
* General
|
||||
----------
|
||||
-----------------------
|
||||
|
||||
The Unix variants of wxWindows use GNU configure. If you have problems
|
||||
with your make use GNU make instead.
|
||||
|
||||
Read my homepage at
|
||||
|
||||
http://www.freiburg.linux.de/~wxxt
|
||||
http://wesley.informatik.uni-freiburg.de/~wxxt
|
||||
|
||||
for newest information.
|
||||
|
||||
* GUI libraries
|
||||
-----------------------
|
||||
|
||||
wxWindows requires a GUI toolkit to be installed. Does that make
|
||||
sense? So far only the GTK is supported, but we hope to provide
|
||||
the choice between GTK, Qt, Motif/Lesstif in the not so distant
|
||||
future.
|
||||
wxWindows/GTK requires the GTK+ library to be installed on your system.
|
||||
It has to be a stable version, preferebly version 1.0.6. When using
|
||||
a version previous to 1.0.6 you'll get crashes here and there. This
|
||||
is certain to happen with colors in native widgets.
|
||||
|
||||
You can get the newest version of the GTK from the GTK homepage
|
||||
You can get the newest version of the GTK+ from the GTK homepage
|
||||
at
|
||||
http://www.gtk.org
|
||||
|
||||
The newest versin of Qt can be downloaded for free from the Trolltec's
|
||||
site at
|
||||
http://www.troll.no
|
||||
|
||||
Lesstif can be downloaded from their site
|
||||
at
|
||||
http://www.lesstif.org
|
||||
|
||||
If you want to develop using Motif, you need to buy it, unless it comes
|
||||
with your operating system such as all commercial Unices, as well as
|
||||
RedHat's, SuSe's and probably other's Linux Motif editions.
|
||||
|
||||
We also mirror GTK+ 1.0.6 at our ftp site. You'll find information
|
||||
about downloading at my homepage.
|
||||
|
||||
* Additional libraries
|
||||
-----------------------
|
||||
|
||||
There will be a few more features of wxWindows, which will
|
||||
require further libraries (on some platforms). These
|
||||
features will be optional. I hope to teach configure
|
||||
to check that out automatically.
|
||||
wxWindows/Gtk requires a thread library and X libraries
|
||||
known to work with threads. This is the case on all
|
||||
commercial Unix-Variants and all Linux-Versions that
|
||||
are based on glibc 2 except RedHat 5.0 which is broken
|
||||
in many aspects. As of writing this, these Linux
|
||||
distributions have correct glibc 2 support:
|
||||
|
||||
Thread support:
|
||||
- RedHat 5.1
|
||||
- Debian 2.0
|
||||
- Stampede
|
||||
|
||||
The next major version of SuSE will also support glibc 2,
|
||||
but version 5.X does not. Also Caldera and Slackware
|
||||
don't yet support glibc 2.
|
||||
|
||||
Requires pthreads under Linux with glibc 2. pthreads are
|
||||
always present on such systems, so just compile, unless
|
||||
you have RedHat 5.0, which has a broken combination of
|
||||
glibc 2 and X. In this case, you have to run configure
|
||||
with "--without-threads".
|
||||
On IRIX you can also use SGI threads if Posix-Threads
|
||||
are not present. The SGI threads will be detected by
|
||||
configure automatically.
|
||||
|
||||
You can always disable thread support by running
|
||||
|
||||
./configure "--without-threads"
|
||||
make clean
|
||||
make
|
||||
|
||||
Requires PCthreads under Linux with libc 5. If you
|
||||
haven't installed pcthreads, there will be no thread
|
||||
support in wxWindows, but the library will compile.
|
||||
|
||||
Requires Posix threads on commercial Unix system,
|
||||
which are always present. Just compile.
|
||||
|
||||
On SGI Irix we first look for sprocs, then pthreads and
|
||||
use the last one found.
|
||||
|
||||
Python scripting language support:
|
||||
|
||||
Requires Python. Soon to come.
|
||||
|
||||
* Other things to do
|
||||
-----------------------------
|
||||
|
||||
wxGTK and wxMotif/wxLesstif require the built-in
|
||||
ImLib/GdkImlib to be configured. For that purpose
|
||||
copy the two files from /misc/imlib to your
|
||||
home directory and rename "imrc" -> ".imrc".
|
||||
You may also edit imrc by hand as you like.
|
||||
The palette file is required when using
|
||||
wxWindows in 256-colour mode.
|
||||
|
||||
If you want to use wxWindows's ODBC support, you'll have
|
||||
to create a .odbc.ini file. The readme file in
|
||||
~/src/iodbc tells you what to do.
|
||||
|
||||
NB: I included thread support in wxWindows/Gtk, as this
|
||||
problem will disappear in the near future when all major
|
||||
Linux Variants have moved to glibc 2. Also, the Linux
|
||||
Base Standard will include glibc 2.
|
||||
|
||||
* Create your configuration
|
||||
-----------------------------
|
||||
|
||||
This must be done in /install/unix
|
||||
|
||||
Usage:
|
||||
./configure options
|
||||
|
||||
@@ -131,8 +128,10 @@ not been defined. And Make in some circumstances as well...
|
||||
* General options
|
||||
-------------------
|
||||
|
||||
Obviously, you have to choose a toolkit. You must do this by
|
||||
running configure with either of
|
||||
Normally, you won't have to choose a toolkit, because when
|
||||
you download wxGTK, it will default to --with-gtk etc. But
|
||||
if you use all of our CVS repository you have to choose a
|
||||
toolkit. You must do this by running configure with either of:
|
||||
|
||||
--with-gtk Use the GIMP ToolKit (GTK)
|
||||
|
||||
@@ -145,7 +144,7 @@ The following options handle the kind of library you want to build.
|
||||
|
||||
--without-threads Compile without thread support.
|
||||
|
||||
--with-shared Create shared libraries.
|
||||
--without-shared Do not create shared libraries.
|
||||
|
||||
--without-optimise Do not optimise the code.
|
||||
|
||||
@@ -167,48 +166,41 @@ The following options handle the kind of library you want to build.
|
||||
* Feature Options
|
||||
-------------------
|
||||
|
||||
When using the Windows version of wxWindows, it is possible
|
||||
to edit the file /include/wx/msw/setup.h in order to enable
|
||||
or disable some features of wxWindows so that the resulting
|
||||
binaries get smaller.
|
||||
|
||||
As I don't yet care for binary size and target mainly at
|
||||
producing a shared library, wxWindows's configure system auto-
|
||||
matically enables all features, as long as they are already
|
||||
implemented.
|
||||
implemented. It is currently NOT possible to disable these
|
||||
options (in contrast to what configure tells you).
|
||||
|
||||
* Compiling
|
||||
-------------
|
||||
|
||||
The following must be done in the base directory (e.g. ~/wxGTK
|
||||
or ~/wxWin)
|
||||
or ~/wxWin or whatever)
|
||||
|
||||
First you have to create all makefiles in all subdirectories:
|
||||
|
||||
make Makefiles
|
||||
|
||||
Dependencies are generated automatically using
|
||||
|
||||
make depend
|
||||
|
||||
(For some reason, this doesn't seem to work completely.)
|
||||
|
||||
Now the makefiles are created you can compile everything is as simple
|
||||
as typing:
|
||||
Now the makefiles are created and you can compile everything
|
||||
by typing:
|
||||
|
||||
make
|
||||
|
||||
make yourself some coffee, as it will try to compile
|
||||
ALL the files in this distribution.
|
||||
make yourself some coffee, as it will try to compile ALL the
|
||||
files in this distribution. During compilation, you'll get
|
||||
a few warning messages.
|
||||
|
||||
if you want to be more selective:
|
||||
|
||||
make src will build only the base libraries
|
||||
make utils will build the utils
|
||||
make samples will build the samples
|
||||
make other will build the other samples
|
||||
make user will build the files in the directory other
|
||||
make other will build everything in other
|
||||
make user will build everything in user
|
||||
|
||||
Then you may install the library and it's header files under
|
||||
/usr/local/include/wx and /usr/local/lib respectively. You
|
||||
have to log in as root (i.e. run "su" and enter the root
|
||||
password) and type
|
||||
|
||||
make install
|
||||
|
||||
Depending on the configuration of some files, the libraries
|
||||
and binaries will be placed in different directories.
|
||||
The "global" binaries and libraries will be placed in:
|
||||
@@ -232,8 +224,34 @@ will do the work for you.
|
||||
* Creating a new Project
|
||||
--------------------------
|
||||
|
||||
I propose to put all contributed programs in the directory
|
||||
"~/wxWin/user", with a directory of its own.
|
||||
There are two ways to create your own project:
|
||||
|
||||
1) The first way uses the installed libraries and header files
|
||||
automatically using wx-config
|
||||
|
||||
g++ myfoo.cpp `wx-config --libs` `wx-config --cflags` -o myfoo
|
||||
|
||||
Using this way, a make file for the minimal sample would look
|
||||
like this
|
||||
|
||||
CC = g++
|
||||
|
||||
minimal: minimal.o
|
||||
$(CC) -o minimal minimal.o `wx-config --libs`
|
||||
|
||||
minimal.o: minimal.cpp mondrian.xpm
|
||||
$(CC) `wx-config --cflags` -c minimal.cpp -o minimal.o
|
||||
|
||||
clean:
|
||||
rm -f *.o minimal
|
||||
|
||||
This is certain to become the standard way unless we decide
|
||||
to sitch to tmake.
|
||||
|
||||
2) The other way creates a project within the source code
|
||||
directories of wxWindows: In this case I propose to put
|
||||
all contributed programs in the directory "/user", with a
|
||||
directory of its own.
|
||||
|
||||
This directory then should include the following files:
|
||||
|
||||
@@ -248,12 +266,13 @@ Makefile.in (This is the base application-Makefile template, from
|
||||
put ALL your source code along with all the other stuff you need for
|
||||
your application in this directory (subdirectories are welcome).
|
||||
|
||||
|
||||
** Something about Makefiles
|
||||
------------------------------
|
||||
|
||||
On general principle it should only contain ONE line, which is as follows:
|
||||
|
||||
include ../../src/unix/setup/general/makeapp
|
||||
include ../../setup/general/makeapp
|
||||
|
||||
this will include all the necessary definitions for creating the applications
|
||||
|
||||
@@ -272,7 +291,7 @@ to the Makefile.
|
||||
So it would look like this:
|
||||
|
||||
DISTRIBUTE_ADDITIONAL=README.TheApp
|
||||
include ../../src/unix/setup/general/makeapp
|
||||
include ../../setup/general/makeapp
|
||||
|
||||
As we have already talked about distribution the command to create a
|
||||
distribution is:
|
56
docs/gtk/licence.txt
Normal file
56
docs/gtk/licence.txt
Normal file
@@ -0,0 +1,56 @@
|
||||
|
||||
|
||||
wxWindows Library License, Version 3
|
||||
====================================
|
||||
|
||||
Copyright (C) 1998 Julian Smart, Robert Roebling et al.
|
||||
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
WXWINDOWS LIBRARY LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
This library is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU Library General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or (at
|
||||
your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHAN-
|
||||
TABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public License
|
||||
along with this software, usually in a file named COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
||||
Boston, MA 02111-1307 USA.
|
||||
|
||||
EXCEPTION NOTICE
|
||||
|
||||
1. As a special exception, the copyright holders of this library give
|
||||
permission for additional uses of the text contained in this release of
|
||||
the library as licensed under the wxWindows Library License, applying
|
||||
either version 3 of the License, or (at your option) any later version of
|
||||
the License as published by the copyright holders of version 3 of the
|
||||
License document.
|
||||
|
||||
2. The exception is that you may create binary object code versions of any
|
||||
works using this library or based on this library, and use, copy, modify,
|
||||
link and distribute such binary object code files unrestricted under terms
|
||||
of your choice.
|
||||
|
||||
3. If you copy code from files distributed under the terms of the GNU
|
||||
General Public License or the GNU Library General Public License into a
|
||||
copy of this library, as this license permits, the exception does not
|
||||
apply to the code that you add in this way. To avoid misleading anyone as
|
||||
to the status of such modified files, you must delete this exception
|
||||
notice from such code and/or adjust the licensing conditions notice
|
||||
accordingly.
|
||||
|
||||
4. If you write modifications of your own for this library, it is your
|
||||
choice whether to permit this exception to apply to your modifications.
|
||||
If you do not wish that, you must delete the exception notice from such
|
||||
code and/or adjust the licensing conditions notice accordingly.
|
||||
|
||||
|
36
docs/gtk/readme.txt
Normal file
36
docs/gtk/readme.txt
Normal file
@@ -0,0 +1,36 @@
|
||||
|
||||
Welcome to wxWindows/Gtk,
|
||||
|
||||
you have downloaded version 1.96 of the GTK+ port of C++ library
|
||||
wxWindows. Information on how to install can be found in the
|
||||
file install.txt, but if you cannot wait, this should work on
|
||||
all systems
|
||||
|
||||
configure --without-threads
|
||||
make
|
||||
su (PASSWORD)
|
||||
make install
|
||||
|
||||
wxWindows/Gtk is still in development and you can have a look
|
||||
at the todo.txt to see what's missing before an official beta
|
||||
and - more important - before we can aim at binary compatibility.
|
||||
|
||||
More information is available from my homepage at
|
||||
|
||||
http://wesley.informatik.uni-freiburg.de/~wxxt
|
||||
|
||||
Please send problems concerning installation, feature requests,
|
||||
bug reports or comments to either the wxGTK mailing list or to
|
||||
the wxWindows developers list. Information on how to subscribe
|
||||
is available from my homepage.
|
||||
|
||||
wxWindows/Gtk comes with no guarantee whatsoever. It might crash
|
||||
your harddisk or destroy your monitor. It doesn't claim to be
|
||||
suitable for any special purpose.
|
||||
|
||||
Regards,
|
||||
|
||||
Robert Roebling
|
||||
|
||||
|
||||
|
38
docs/gtk/todo.txt
Normal file
38
docs/gtk/todo.txt
Normal file
@@ -0,0 +1,38 @@
|
||||
|
||||
-------------------- High priority ---------------------
|
||||
|
||||
wxTreeCtrl
|
||||
-> Keyboard handling.
|
||||
|
||||
wxClipboard
|
||||
-> On the way, but not functional yet.
|
||||
|
||||
Fix printing of bitmaps
|
||||
-> No idea.
|
||||
|
||||
OwnerDraw for wxListCtrl and others
|
||||
-> That is a big one.
|
||||
|
||||
DnD
|
||||
-> Must be rewritten for GTK+ 1.1.3
|
||||
|
||||
-------------------- Low priority ---------------------
|
||||
|
||||
wxDebugContext <-> wxLogXXX functions
|
||||
-> Remove either
|
||||
|
||||
Implement wxPalette
|
||||
-> I never understood that. Postponed.
|
||||
|
||||
Implement wxDirDialog
|
||||
-> Not heard of. Postponed.
|
||||
|
||||
Show accelerator in menus
|
||||
-> Changed in GTK 1.1.X. Postponed.
|
||||
|
||||
Correct tab navigation
|
||||
-> seems to be broken in GTK. Postponed.
|
||||
|
||||
Cooperation with Qt
|
||||
-> Would be nice.
|
||||
|
190
docs/latex/wx/accel.tex
Normal file
190
docs/latex/wx/accel.tex
Normal file
@@ -0,0 +1,190 @@
|
||||
\section{\class{wxAcceleratorEntry}}\label{wxacceleratorentry}
|
||||
|
||||
An object used by an application wishing to create an \helpref{accelerator table}{wxacceleratortable}.
|
||||
|
||||
\wxheading{Derived from}
|
||||
|
||||
None
|
||||
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{wxAcceleratorTable}{wxacceleratortable}, \helpref{wxWindow::SetAcceleratorTable}{wxwindowsetacceleratortable}
|
||||
|
||||
\latexignore{\rtfignore{\wxheading{Members}}}
|
||||
|
||||
\membersection{wxAcceleratorEntry::wxAcceleratorEntry}\label{wxacceleratorentryconstr}
|
||||
|
||||
\func{}{wxAcceleratorEntry}{\void}
|
||||
|
||||
Default constructor.
|
||||
|
||||
\func{}{wxAcceleratorEntry}{\param{int}{ flags}, \param{int}{ keyCode}, \param{int}{ cmd}}
|
||||
|
||||
Constructor.
|
||||
|
||||
\wxheading{Parameters}
|
||||
|
||||
\docparam{flags}{One of wxACCEL\_SHIFT, wxACCEL\_CTRL and wxACCEL\_NORMAL. Indicates
|
||||
which modifier key is held down.}
|
||||
|
||||
\docparam{keyCode}{The keycode to be detected. See \helpref{Keycodes}{keycodes} for a full list of keycodes.}
|
||||
|
||||
\docparam{cmd}{The menu or control command identifier.}
|
||||
|
||||
\membersection{wxAcceleratorEntry::GetCommand}\label{wxacceleratorentrygetcommand}
|
||||
|
||||
\constfunc{int}{GetCommand}{\void}
|
||||
|
||||
Returns the command identifier for the accelerator table entry.
|
||||
|
||||
\membersection{wxAcceleratorEntry::GetFlags}\label{wxacceleratorentrygetflags}
|
||||
|
||||
\constfunc{int}{GetFlags}{\void}
|
||||
|
||||
Returns the flags for the accelerator table entry.
|
||||
|
||||
\membersection{wxAcceleratorEntry::GetKeyCode}\label{wxacceleratorentrygetkeycode}
|
||||
|
||||
\constfunc{int}{GetKeyCode}{\void}
|
||||
|
||||
Returns the keycode for the accelerator table entry.
|
||||
|
||||
\membersection{wxAcceleratorEntry::Set}\label{wxacceleratorentryset}
|
||||
|
||||
\func{void}{Set}{\param{int}{ flags}, \param{int}{ keyCode}, \param{int}{ cmd}}
|
||||
|
||||
Sets the accelerator entry parameters.
|
||||
|
||||
\wxheading{Parameters}
|
||||
|
||||
\docparam{flags}{One of wxACCEL\_SHIFT, wxACCEL\_CTRL and wxACCEL\_NORMAL. Indicates
|
||||
which modifier key is held down.}
|
||||
|
||||
\docparam{keyCode}{The keycode to be detected. See \helpref{Keycodes}{keycodes} for a full list of keycodes.}
|
||||
|
||||
\docparam{cmd}{The menu or control command identifier.}
|
||||
|
||||
\section{\class{wxAcceleratorTable}}\label{wxacceleratortable}
|
||||
|
||||
An accelerator table allows the application to specify a table of keyboard shortcuts for
|
||||
menus or other commands. On Windows, menu or button commands are supported; on GTK,
|
||||
only menu commands are supported.
|
||||
|
||||
The object {\bf wxNullAcceleratorTable} is defined to be a table with no data, and is the
|
||||
initial accelerator table for a window.
|
||||
|
||||
\wxheading{Derived from}
|
||||
|
||||
\helpref{wxObject}{wxobject}
|
||||
|
||||
\wxheading{Example}
|
||||
|
||||
{\small%
|
||||
\begin{verbatim}
|
||||
wxAcceleratorEntry entries[4];
|
||||
entries[0].Set(wxACCEL_CTRL, (int) 'N', ID_NEW_WINDOW);
|
||||
entries[1].Set(wxACCEL_CTRL, (int) 'X', wxID_EXIT);
|
||||
entries[2].Set(wxACCEL_SHIFT, (int) 'A', ID_ABOUT);
|
||||
entries[3].Set(wxACCEL_NONE, WXK_DELETE, wxID_CUT);
|
||||
wxAcceleratorTable accel(4, entries);
|
||||
frame->SetAcceleratorTable(accel);
|
||||
\end{verbatim}
|
||||
}
|
||||
|
||||
\wxheading{Remarks}
|
||||
|
||||
An accelerator takes precedence over normal processing and can be a convenient way to program some event handling.
|
||||
For example, you can use an accelerator table to enable a dialog with a multi-line text control to
|
||||
accept CTRL-Enter as meaning 'OK' (but not in GTK at present).
|
||||
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{wxAcceleratorEntry}{wxacceleratorentry}, \helpref{wxWindow::SetAcceleratorTable}{wxwindowsetacceleratortable}
|
||||
|
||||
\latexignore{\rtfignore{\wxheading{Members}}}
|
||||
|
||||
\membersection{wxAcceleratorTable::wxAcceleratorTable}\label{wxacceleratortableconstr}
|
||||
|
||||
\func{}{wxAcceleratorTable}{\void}
|
||||
|
||||
Default constructor.
|
||||
|
||||
\func{}{wxAcceleratorTable}{\param{const wxAcceleratorTable\& }{bitmap}}
|
||||
|
||||
Copy constructor.
|
||||
|
||||
\func{}{wxAcceleratorTable}{\param{int}{ n}, \param{wxAcceleratorEntry}{ entries[]}}
|
||||
|
||||
Creates from an array of \helpref{wxAcceleratorEntry}{wxacceleratorentry} objects.
|
||||
|
||||
\func{}{wxAcceleratorTable}{\param{const wxString\&}{ resource}}
|
||||
|
||||
Loads the accelerator table from a Windows resource (Windows only).
|
||||
|
||||
\wxheading{Parameters}
|
||||
|
||||
\docparam{n}{Number of accelerator entries.}
|
||||
|
||||
\docparam{entries}{The array of entries.}
|
||||
|
||||
\docparam{resource}{Name of a Windows accelerator.}
|
||||
|
||||
\membersection{wxAcceleratorTable::\destruct{wxAcceleratorTable}}
|
||||
|
||||
\func{}{\destruct{wxAcceleratorTable}}{\void}
|
||||
|
||||
Destroys the wxAcceleratorTable object.
|
||||
|
||||
\membersection{wxAcceleratorTable::Ok}\label{wxacceleratortableok}
|
||||
|
||||
\constfunc{bool}{Ok}{\void}
|
||||
|
||||
Returns TRUE if the accelerator table is valid.
|
||||
|
||||
\membersection{wxAcceleratorTable::operator $=$}
|
||||
|
||||
\func{wxAcceleratorTable\& }{operator $=$}{\param{const wxAcceleratorTable\& }{accel}}
|
||||
|
||||
Assignment operator. This operator does not copy any data, but instead
|
||||
passes a pointer to the data in {\it accel} and increments a reference
|
||||
counter. It is a fast operation.
|
||||
|
||||
\wxheading{Parameters}
|
||||
|
||||
\docparam{accel}{Accelerator table to assign.}
|
||||
|
||||
\wxheading{Return value}
|
||||
|
||||
Returns 'this' object.
|
||||
|
||||
\membersection{wxAcceleratorTable::operator $==$}
|
||||
|
||||
\func{bool}{operator $==$}{\param{const wxAcceleratorTable\& }{accel}}
|
||||
|
||||
Equality operator. This operator tests whether the internal data pointers are
|
||||
equal (a fast test).
|
||||
|
||||
\wxheading{Parameters}
|
||||
|
||||
\docparam{accel}{Accelerator table to compare with 'this'}
|
||||
|
||||
\wxheading{Return value}
|
||||
|
||||
Returns TRUE if the accelerator tables were effectively equal, FALSE otherwise.
|
||||
|
||||
\membersection{wxAcceleratorTable::operator $!=$}
|
||||
|
||||
\func{bool}{operator $!=$}{\param{const wxAcceleratorTable\& }{accel}}
|
||||
|
||||
Inequality operator. This operator tests whether the internal data pointers are
|
||||
unequal (a fast test).
|
||||
|
||||
\wxheading{Parameters}
|
||||
|
||||
\docparam{accel}{Accelerator table to compare with 'this'}
|
||||
|
||||
\wxheading{Return value}
|
||||
|
||||
Returns TRUE if the accelerator tables were unequal, FALSE otherwise.
|
||||
|
||||
|
@@ -38,7 +38,7 @@ or a frame becomes inactivate resulting in all application frames being inactive
|
||||
|
||||
\membersection{wxActivateEvent::wxActivateEvent}
|
||||
|
||||
\func{}{wxActivateEvent}{\param{WXTYPE }{eventType = 0}, \param{int }{id = 0}}
|
||||
\func{}{wxActivateEvent}{\param{WXTYPE }{eventType = 0}, \param{bool}{ active = TRUE}, \param{int }{id = 0}}
|
||||
|
||||
Constructor.
|
||||
|
||||
|
@@ -238,6 +238,32 @@ goes idle again, when OnIdle is called, and so on.
|
||||
\helpref{wxWindow::OnIdle}{wxwindowonidle}, \helpref{wxIdleEvent}{wxidleevent},\rtfsp
|
||||
\helpref{wxWindow::SendIdleEvents}{wxappsendidleevents}
|
||||
|
||||
\membersection{wxApp::OnEndSession}\label{wxapponendsession}
|
||||
|
||||
\func{void}{OnEndSession}{\param{wxCloseEvent\& }{event}}
|
||||
|
||||
This is an event handler function called when the operating system or GUI session is
|
||||
about to close down. The application has a chance to silently save information,
|
||||
and can optionally close itself.
|
||||
|
||||
Use the EVT\_END\_SESSION event table macro to handle query end session events.
|
||||
|
||||
The default handler calls \helpref{wxWindow::Close}{wxwindowclose} with a TRUE argument
|
||||
(forcing the application to close itself silently).
|
||||
|
||||
\wxheading{Remarks}
|
||||
|
||||
Under X, OnEndSession is called in response to the 'die' event.
|
||||
|
||||
Under Windows, OnEndSession is called in response to the WM\_ENDSESSION message.
|
||||
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{wxWindow::Close}{wxwindowclose},\rtfsp
|
||||
\helpref{wxWindow::OnCloseWindow}{wxwindowonclosewindow},\rtfsp
|
||||
\helpref{wxCloseEvent}{wxcloseevent},\rtfsp
|
||||
\helpref{wxApp::OnQueryEndSession}{wxapponqueryendsession}
|
||||
|
||||
\membersection{wxApp::OnInit}\label{wxapponinit}
|
||||
|
||||
\func{bool}{OnInit}{\void}
|
||||
@@ -247,16 +273,43 @@ application's main window, calling \helpref{wxApp::SetTopWindow}{wxappsettopwind
|
||||
|
||||
Return TRUE to continue processing, FALSE to exit the application.
|
||||
|
||||
\membersection{wxApp::Pending}\label{wxapppending}
|
||||
\membersection{wxApp::OnQueryEndSession}\label{wxapponqueryendsession}
|
||||
|
||||
\func{bool}{Pending}{\void}
|
||||
\func{void}{OnQueryEndSession}{\param{wxCloseEvent\& }{event}}
|
||||
|
||||
Returns TRUE if unprocessed events are in the window system event queue
|
||||
(MS Windows and Motif).
|
||||
This is an event handler function called when the operating system or GUI session is
|
||||
about to close down. Typically, an application will try to save unsaved documents
|
||||
at this point.
|
||||
|
||||
If \helpref{wxCloseEvent::CanVeto}{wxcloseeventcanveto} returns TRUE, the application
|
||||
is allowed to veto the shutdown by calling \helpref{wxCloseEvent::Veto}{wxcloseeventveto}.
|
||||
The application might veto the shutdown after prompting for documents to be saved, and the
|
||||
user has cancelled the save.
|
||||
|
||||
Use the EVT\_QUERY\_END\_SESSION event table macro to handle query end session events.
|
||||
|
||||
You should check whether the application is forcing the deletion of the window
|
||||
using \helpref{wxCloseEvent::GetForce}{wxcloseeventgetforce}. If this is TRUE,
|
||||
destroy the window using \helpref{wxWindow::Destroy}{wxwindowdestroy}.
|
||||
If not, it is up to you whether you respond by destroying the window.
|
||||
|
||||
The default handler calls \helpref{wxWindow::Close}{wxwindowclose} on the top-level window,
|
||||
and vetoes the shutdown if Close returns FALSE. This will be sufficient for many applications.
|
||||
|
||||
\wxheading{Remarks}
|
||||
|
||||
Under X, OnQueryEndSession is called in response to the 'save session' event.
|
||||
|
||||
Under Windows, OnQueryEndSession is called in response to the WM\_QUERYENDSESSION message.
|
||||
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{wxApp::Dispatch}{wxappdispatch}
|
||||
\helpref{wxWindow::Close}{wxwindowclose},\rtfsp
|
||||
\helpref{wxWindow::OnCloseWindow}{wxwindowonclosewindow},\rtfsp
|
||||
\helpref{wxCloseEvent}{wxcloseevent},\rtfsp
|
||||
\helpref{wxApp::OnEndSession}{wxapponendsession}
|
||||
|
||||
\membersection{wxWindow::OnScroll}\label{wxwindowonscroll}
|
||||
|
||||
\membersection{wxApp::ProcessMessage}\label{wxappprocessmessage}
|
||||
|
||||
@@ -282,6 +335,17 @@ BOOL CTheApp::PreTranslateMessage(MSG *msg)
|
||||
}
|
||||
\end{verbatim}
|
||||
|
||||
\membersection{wxApp::Pending}\label{wxapppending}
|
||||
|
||||
\func{bool}{Pending}{\void}
|
||||
|
||||
Returns TRUE if unprocessed events are in the window system event queue
|
||||
(MS Windows and Motif).
|
||||
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{wxApp::Dispatch}{wxappdispatch}
|
||||
|
||||
\membersection{wxApp::SendIdleEvents}\label{wxappsendidleevents}
|
||||
|
||||
\func{bool}{SendIdleEvents}{\void}
|
||||
|
@@ -728,7 +728,7 @@ Use .wrc (wxWindows resource files) where possible, because they can be easily c
|
||||
independently of source code. Bitmap resources can be set up to load different
|
||||
kinds of bitmap depending on platform (see the section on resource files).
|
||||
|
||||
\section{Strategies for debugging}
|
||||
\section{Strategies for debugging}\label{debugstrategies}
|
||||
|
||||
\subsection{Positive thinking}
|
||||
|
||||
@@ -757,49 +757,35 @@ to go from functioning to non-functioning state. This should give a clue
|
||||
to the problem. In some cases though, such as memory leaks or wrong
|
||||
deallocation, this can still give totally spurious results!
|
||||
|
||||
\subsection{Genetic mutation}
|
||||
|
||||
If we had sophisticated genetic algorithm tools that could be applied
|
||||
to programming, we could use them. Until then, a common -- if rather irrational --
|
||||
technique is to just make arbitrary changes to the code until something
|
||||
different happens. You may have an intuition why a change will make a difference;
|
||||
otherwise, just try altering the order of code, comment lines out, anything
|
||||
to get over an impasse. Obviously, this is usually a last resort.
|
||||
|
||||
\subsection{Use a debugger}
|
||||
|
||||
This sounds like facetious advice, but it's surprising how often people
|
||||
don't use a debugger. Often it's an overhead to install or learn how to
|
||||
use a debugger, but it really is essential for anything but the most
|
||||
trivial programs. Some platforms don't allow for debugging, such
|
||||
as WIN32s under Windows 3.x. In this case, you might be advised to
|
||||
debug under 16-bit Windows and when you're confident, compile for
|
||||
WIN32s. In fact WIN32s can be very strict about bad memory handling,
|
||||
so testing out under WIN32s is a good thing to do even if you're
|
||||
not going to distribute this version. (Unless you've got a good memory checking,
|
||||
utility, of course!) Tracking bugs under WIN32s can involve a lot of debug message
|
||||
insertion and relinking, so make sure your compiler has a fast linker
|
||||
(e.g. Watcom, Symantec).
|
||||
trivial programs.
|
||||
|
||||
\subsection{Use tracing code}
|
||||
\subsection{Use logging functions}
|
||||
|
||||
You can use wxDebugMsg statements (or the wxDebugStreamBuf class) to
|
||||
output to a debugging window such as DBWIN under Windows, or standard
|
||||
error under X. If compiling in DEBUG mode, you can use TRACE statements
|
||||
that will be compiled out of the final build of your application.
|
||||
There is a variety of logging functions that you can use in your program:
|
||||
see \helpref{Logging functions}{logfunctions}.
|
||||
|
||||
Using tracing statements may be more convenient than using the debugger
|
||||
in some circumstances (such as when your debugger doesn't support a lot
|
||||
of debugging code, or you wish to print a bunch of variables).
|
||||
|
||||
\subsection{Use wxObject::Dump and the wxDebugContext class}
|
||||
\subsection{Use the wxWindows debugging facilities}
|
||||
|
||||
It's good practice to implement the Dump member function for all
|
||||
classes derived from wxObject. You can then make use of wxDebugContext
|
||||
to dump out information on all objects in the program, if DEBUG is
|
||||
defined to be more than zero. You can use wxDebugContext to check for
|
||||
memory leaks and corrupt memory. See the debugging topic in the
|
||||
reference manual for more information.
|
||||
You can use wxDebugContext to check for
|
||||
memory leaks and corrupt memory: in fact in debugging mode, wxWindows will
|
||||
automatically check for memory leaks at the end of the program if wxWindows is suitably
|
||||
configured. Depending on the operating system and compiler, more or less
|
||||
specific information about the problem will be logged.
|
||||
|
||||
You should also use \helpref{debug macros}{debugmacros} as part of a `defensive programming' strategy,
|
||||
scattering wxASSERTs liberally to test for problems in your code as early as possible. Forward thinking
|
||||
will save a surprising amount of time in the long run.
|
||||
|
||||
See the \helpref{debugging overview}{debuggingoverview} for further information.
|
||||
|
||||
\subsection{Check Windows debug messages}
|
||||
|
||||
@@ -812,3 +798,14 @@ more problems. However, I doubt it's worth the hassle for most
|
||||
applications. wxWindows is designed to minimize the possibility of such
|
||||
errors, but they can still happen occasionally, slipping through unnoticed
|
||||
because they are not severe enough to cause a crash.
|
||||
|
||||
\subsection{Genetic mutation}
|
||||
|
||||
If we had sophisticated genetic algorithm tools that could be applied
|
||||
to programming, we could use them. Until then, a common -- if rather irrational --
|
||||
technique is to just make arbitrary changes to the code until something
|
||||
different happens. You may have an intuition why a change will make a difference;
|
||||
otherwise, just try altering the order of code, comment lines out, anything
|
||||
to get over an impasse. Obviously, this is usually a last resort.
|
||||
|
||||
|
||||
|
60
docs/latex/wx/calclevt.tex
Normal file
60
docs/latex/wx/calclevt.tex
Normal file
@@ -0,0 +1,60 @@
|
||||
\section{\class{wxCalculateLayoutEvent}}\label{wxcalculatelayoutevent}
|
||||
|
||||
This event is sent by \helpref{wxLayoutAlgorithm}{wxlayoutalgorithm} to
|
||||
calculate the amount of the remaining client area that the window should
|
||||
occupy.
|
||||
|
||||
\wxheading{Derived from}
|
||||
|
||||
\helpref{wxEvent}{wxevent}\\
|
||||
\helpref{wxObject}{wxobject}
|
||||
|
||||
\wxheading{Event table macros}
|
||||
|
||||
\twocolwidtha{7cm}%
|
||||
\begin{twocollist}\itemsep=0pt
|
||||
\twocolitem{{\bf EVT\_CALCULATE\_LAYOUT(func)}}{Process a wxEVT\_CALCULATE\_LAYOUT event,
|
||||
which asks the window to take a 'bite' out of a rectangle provided by the algorithm.}
|
||||
\end{twocollist}
|
||||
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{wxQueryLayoutInfoEvent}{wxquerylayoutinfoevent},\rtfsp
|
||||
\helpref{wxSashLayoutWindow}{wxsashlayoutwindow},\rtfsp
|
||||
\helpref{wxLayoutAlgorithm}{wxlayoutalgorithm}.
|
||||
|
||||
\latexignore{\rtfignore{\wxheading{Members}}}
|
||||
|
||||
\membersection{wxCalculateLayoutEvent::wxCalculateLayoutEvent}
|
||||
|
||||
\func{}{wxCalculateLayoutEvent}{\param{wxWindowID }{id = 0}}
|
||||
|
||||
Constructor.
|
||||
|
||||
\membersection{wxCalculateLayoutEvent::GetFlags}\label{wxcalculatelayouteventgetflags}
|
||||
|
||||
\constfunc{int}{GetFlags}{\void}
|
||||
|
||||
Returns the flags associated with this event. Not currently used.
|
||||
|
||||
\membersection{wxCalculateLayoutEvent::GetRect}\label{wxcalculatelayouteventgetrect}
|
||||
|
||||
\constfunc{wxRect}{GetRect}{\void}
|
||||
|
||||
Before the event handler is entered, returns the remaining parent client area that the window
|
||||
could occupy. When the event handler returns, this should contain the remaining parent client rectangle,
|
||||
after the event handler has subtracted the area that its window occupies.
|
||||
|
||||
\membersection{wxCalculateLayoutEvent::SetFlags}\label{wxcalculatelayouteventsetflags}
|
||||
|
||||
\func{void}{SetFlags}{\param{int }{flags}}
|
||||
|
||||
Sets the flags associated with this event. Not currently used.
|
||||
|
||||
\membersection{wxCalculateLayoutEvent::SetRect}\label{wxcalculatelayouteventsetrect}
|
||||
|
||||
\func{void}{SetRect}{\param{const wxRect\& }{rect}}
|
||||
|
||||
Call this to specify the new remaining parent client area, after the space occupied by the
|
||||
window has been subtracted.
|
||||
|
@@ -29,12 +29,14 @@ The following are a variety of windows that are derived from wxWindow.
|
||||
\begin{twocollist}\itemsep=0pt
|
||||
\twocolitem{\helpref{wxGrid}{wxgrid}}{A grid (table) window}
|
||||
\twocolitem{\helpref{wxPanel}{wxpanel}}{A window whose colour changes according to current user settings}
|
||||
\twocolitem{\helpref{wxSashWindow}{wxsashwindow}}{Window with four optional sashes that can be dragged}
|
||||
\twocolitem{\helpref{wxSashLayoutWindow}{wxsashlayoutwindow}}{Window that can be involved in an IDE-like layout arrangement}
|
||||
\twocolitem{\helpref{wxScrolledWindow}{wxscrolledwindow}}{Window with automatically managed scrollbars}
|
||||
\twocolitem{\helpref{wxSplitterWindow}{wxsplitterwindow}}{Window which can be split vertically or horizontally}
|
||||
\twocolitem{\helpref{wxStatusBar}{wxstatusbar}}{Implements the status bar on a frame}
|
||||
\twocolitem{\helpref{wxToolBar}{wxtoolbar}}{Toolbar class}
|
||||
\twocolitem{\helpref{wxTabbedPanel}{wxtabbedpanel}}{Tabbed panel (to be replaced with wxNotebook)}
|
||||
\twocolitem{\helpref{wxNotebook}{wxnotebook}}{Notebook class (undocumented)}
|
||||
%\twocolitem{\helpref{wxTabbedPanel}{wxtabbedpanel}}{Tabbed panel (to be replaced with wxNotebook)}
|
||||
\twocolitem{\helpref{wxNotebook}{wxnotebook}}{Notebook class}
|
||||
\end{twocollist}
|
||||
|
||||
{\large {\bf Common dialogs}}
|
||||
@@ -158,6 +160,7 @@ An event object contains information about a specific event. Event handlers
|
||||
|
||||
\begin{twocollist}\itemsep=0pt
|
||||
\twocolitem{\helpref{wxActivateEvent}{wxactivateevent}}{A window or application activation event}
|
||||
\twocolitem{\helpref{wxCalculateLayoutEvent}{wxcalculatelayoutevent}}{Used to calculate window layout}
|
||||
\twocolitem{\helpref{wxCloseEvent}{wxcloseevent}}{A close window or end session event}
|
||||
\twocolitem{\helpref{wxCommandEvent}{wxcommandevent}}{An event from a variety of standard controls}
|
||||
\twocolitem{\helpref{wxDropFilesEvent}{wxdropfilesevent}}{A drop files event}
|
||||
@@ -172,9 +175,12 @@ An event object contains information about a specific event. Event handlers
|
||||
\twocolitem{\helpref{wxMenuEvent}{wxmenuevent}}{A menu event}
|
||||
\twocolitem{\helpref{wxMouseEvent}{wxmouseevent}}{A mouse event}
|
||||
\twocolitem{\helpref{wxMoveEvent}{wxmoveevent}}{A move event}
|
||||
\twocolitem{\helpref{wxNotebookEvent}{wxnotebookevent}}{A notebook control event}
|
||||
\twocolitem{\helpref{wxPaintEvent}{wxpaintevent}}{A paint event}
|
||||
%\twocolitem{\helpref{wxSessionEvent}{wxsessionevent}}{A session ending event}
|
||||
\twocolitem{\helpref{wxProcessEvent}{wxprocessevent}}{A process ending event}
|
||||
\twocolitem{\helpref{wxQueryLayoutInfoEvent}{wxquerylayoutinfoevent}}{Used to query layout information}
|
||||
\twocolitem{\helpref{wxSizeEvent}{wxsizeevent}}{A size event}
|
||||
\twocolitem{\helpref{wxSocketEvent}{wxsocketevent}}{A socket event}
|
||||
\twocolitem{\helpref{wxSysColourChangedEvent}{wxsyscolourchangedevent}}{A system colour change event}
|
||||
\twocolitem{\helpref{wxTabEvent}{wxtabevent}}{A tab control event}
|
||||
\twocolitem{\helpref{wxTreeEvent}{wxtreeevent}}{A tree control event}
|
||||
@@ -183,6 +189,8 @@ An event object contains information about a specific event. Event handlers
|
||||
|
||||
{\large {\bf Validators}}
|
||||
|
||||
\overview{Overview}{validatoroverview}
|
||||
|
||||
These are the window validators, used for filtering and validating
|
||||
user input.
|
||||
|
||||
@@ -235,14 +243,16 @@ wxWindows supports some aspects of debugging an application through
|
||||
classes, functions and macros.
|
||||
|
||||
\begin{twocollist}\itemsep=0pt
|
||||
\twocolitem{\helpref{wxDebugContext}{wxdebugcontext}}{Provides various debugging facilities}
|
||||
\twocolitem{\helpref{wxDebugStreamBuf}{wxdebugstreambuf}}{A stream buffer writing to the debug stream}
|
||||
\twocolitem{\helpref{wxObject}{wxobject}}{Provides optional debugging versions of {\bf new} and {\bf delete}}
|
||||
\twocolitem{\helpref{wxTrace}{wxtrace}}{Tracing facility}
|
||||
\twocolitem{\helpref{wxTraceLevel}{wxtracelevel}}{Tracing facility with levels}
|
||||
\twocolitem{\helpref{wxDebugContext}{wxdebugcontext}}{Provides memory-checking facilities}
|
||||
%\twocolitem{\helpref{wxDebugStreamBuf}{wxdebugstreambuf}}{A stream buffer writing to the debug stream}
|
||||
\twocolitem{\helpref{wxLog}{wxlog}}{Logging facility}
|
||||
\twocolitem{\helpref{Log functions}{logfunctions}}{Error and warning logging functions}
|
||||
\twocolitem{\helpref{Debugging macros}{debugmacros}}{Debug macros for assertion and checking}
|
||||
%\twocolitem{\helpref{wxTrace}{wxtrace}}{Tracing facility}
|
||||
%\twocolitem{\helpref{wxTraceLevel}{wxtracelevel}}{Tracing facility with levels}
|
||||
\twocolitem{\helpref{WXDEBUG\_NEW}{debugnew}}{Use this macro to give further debugging information}
|
||||
\twocolitem{\helpref{WXTRACE}{trace}}{Trace macro}
|
||||
\twocolitem{\helpref{WXTRACELEVEL}{tracelevel}}{Trace macro with levels}
|
||||
%\twocolitem{\helpref{WXTRACE}{trace}}{Trace macro}
|
||||
%\twocolitem{\helpref{WXTRACELEVEL}{tracelevel}}{Trace macro with levels}
|
||||
\end{twocollist}
|
||||
|
||||
{\large {\bf Interprocess communication}}
|
||||
@@ -256,6 +266,9 @@ based on DDE.
|
||||
\twocolitem{\helpref{wxDDEClient}{wxddeclient}}{Represents a client}
|
||||
\twocolitem{\helpref{wxDDEConnection}{wxddeconnection}}{Represents the connection between a client and a server}
|
||||
\twocolitem{\helpref{wxDDEServer}{wxddeserver}}{Represents a server}
|
||||
\twocolitem{\helpref{wxSocketClient}{wxsocketclient}}{Represents a socket client}
|
||||
\twocolitem{\helpref{wxSocketHandler}{wxsockethandler}}{Represents a socket handler}
|
||||
\twocolitem{\helpref{wxSocketServer}{wxsocketserver}}{Represents a socket server}
|
||||
\end{twocollist}
|
||||
|
||||
{\large {\bf Document/view framework}}
|
||||
@@ -265,9 +278,6 @@ based on DDE.
|
||||
wxWindows supports a document/view framework which provides
|
||||
housekeeping for a document-centric application.
|
||||
|
||||
TODO: MDI frame classes for documents; make it unnecessary to convert
|
||||
between streams and files (overridable method that uses filenames instead of streams).
|
||||
|
||||
\begin{twocollist}\itemsep=0pt
|
||||
\twocolitem{\helpref{wxDocument}{wxdocument}}{Represents a document}
|
||||
\twocolitem{\helpref{wxView}{wxview}}{Represents a view}
|
||||
@@ -275,6 +285,8 @@ between streams and files (overridable method that uses filenames instead of str
|
||||
\twocolitem{\helpref{wxDocManager}{wxdocmanager}}{Manages the documents and views in an application}
|
||||
\twocolitem{\helpref{wxDocChildFrame}{wxdocchildframe}}{A child frame for showing a document view}
|
||||
\twocolitem{\helpref{wxDocParentFrame}{wxdocparentframe}}{A parent frame to contain views}
|
||||
%\twocolitem{\helpref{wxMDIDocChildFrame}{wxmdidocchildframe}}{An MDI child frame for showing a document view}
|
||||
%\twocolitem{\helpref{wxMDIDocParentFrame}{wxmdidocparentframe}}{An MDI parent frame to contain views}
|
||||
\end{twocollist}
|
||||
|
||||
{\large {\bf Printing framework}}
|
||||
@@ -314,12 +326,14 @@ product.
|
||||
{\large {\bf Miscellaneous}}
|
||||
|
||||
\begin{twocollist}\itemsep=0pt
|
||||
\twocolitem{\helpref{wxAcceleratorTable}{wxacceleratortable}}{Accelerator table}
|
||||
\twocolitem{\helpref{wxApp}{wxapp}}{Application class}
|
||||
\twocolitem{\helpref{wxHelpControllerBase}{wxhelpcontrollerbase}}{Base class for help controllers}
|
||||
\twocolitem{\helpref{wxConfig}{wxconfigbase}}{Classes for configuration reading/writing}
|
||||
\twocolitem{\helpref{wxHelpController}{wxhelpcontroller}}{Family of classes for controlling help windows}
|
||||
\twocolitem{\helpref{wxLayoutAlgorithm}{wxlayoutalgorithm}}{An alternative window layout facility}
|
||||
\twocolitem{\helpref{wxProcess}{wxprocess}}{Process class}
|
||||
\twocolitem{\helpref{wxTimer}{wxtimer}}{Timer class}
|
||||
\twocolitem{\helpref{wxSystemSettings}{wxsystemsettings}}{System settings class}
|
||||
\twocolitem{\helpref{wxWinHelpController}{wxwinhelpcontroller}}{Controls WinHelp instances}
|
||||
\twocolitem{\helpref{wxConfig}{wxconfigbase}}{Classes for configuration reading/writing}
|
||||
\end{twocollist}
|
||||
|
||||
|
||||
|
95
docs/latex/wx/checklst.tex
Normal file
95
docs/latex/wx/checklst.tex
Normal file
@@ -0,0 +1,95 @@
|
||||
\section{\class{wxCheckListBox}}\label{wxchecklistbox}
|
||||
|
||||
A checklistbox is like a listbox, but allows items to be checked or unchecked.
|
||||
|
||||
This class is currently only implemented under Windows, and wxWindows must be
|
||||
compiled with USE\_OWNER\_DRAWN set to 1.
|
||||
|
||||
Only the new functions for this class are documented; see also \helpref{wxListBox}{wxlistbox}.
|
||||
|
||||
\wxheading{Derived from}
|
||||
|
||||
\helpref{wxListBox}{wxlistbox}\\
|
||||
\helpref{wxControl}{wxcontrol}\\
|
||||
\helpref{wxWindow}{wxwindow}\\
|
||||
\helpref{wxEvtHandler}{wxevthandler}\\
|
||||
\helpref{wxObject}{wxobject}
|
||||
|
||||
\wxheading{Window styles}
|
||||
|
||||
See \helpref{wxListBox}{wxlistbox}.
|
||||
|
||||
\wxheading{Event handling}
|
||||
|
||||
See \helpref{wxListBox}{wxlistbox}.
|
||||
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{wxListBox}{wxlistbox}, \helpref{wxChoice}{wxchoice}, \helpref{wxComboBox}{wxcombobox}, \helpref{wxListCtrl}{wxlistctrl},
|
||||
\rtfsp\helpref{wxCommandEvent}{wxcommandevent}
|
||||
|
||||
\latexignore{\rtfignore{\wxheading{Members}}}
|
||||
|
||||
\membersection{wxCheckListBox::wxCheckListBox}\label{wxchecklistboxconstr}
|
||||
|
||||
\func{}{wxCheckListBox}{\void}
|
||||
|
||||
Default constructor.
|
||||
|
||||
\func{}{wxCheckListBox}{\param{wxWindow*}{ parent}, \param{wxWindowID}{ id},\rtfsp
|
||||
\param{const wxPoint\&}{ pos = wxDefaultPosition}, \param{const wxSize\&}{ size = wxDefaultSize},\rtfsp
|
||||
\param{int}{ n}, \param{const wxString }{choices[] = NULL},\rtfsp
|
||||
\param{long}{ style = 0}, \param{const wxValidator\& }{validator = wxDefaultValidator}, \param{const wxString\& }{name = ``listBox"}}
|
||||
|
||||
Constructor, creating and showing a list box.
|
||||
|
||||
\wxheading{Parameters}
|
||||
|
||||
\docparam{parent}{Parent window. Must not be NULL.}
|
||||
|
||||
\docparam{id}{Window identifier. A value of -1 indicates a default value.}
|
||||
|
||||
\docparam{pos}{Window position.}
|
||||
|
||||
\docparam{size}{Window size. If the default size (-1, -1) is specified then the window is sized
|
||||
appropriately.}
|
||||
|
||||
\docparam{n}{Number of strings with which to initialise the control.}
|
||||
|
||||
\docparam{choices}{An array of strings with which to initialise the control.}
|
||||
|
||||
\docparam{style}{Window style. See \helpref{wxCheckListBox}{wxchecklistbox}.}
|
||||
|
||||
\docparam{validator}{Window validator.}
|
||||
|
||||
\docparam{name}{Window name.}
|
||||
|
||||
\membersection{wxCheckListBox::\destruct{wxCheckListBox}}
|
||||
|
||||
\func{void}{\destruct{wxCheckListBox}}{\void}
|
||||
|
||||
Destructor, destroying the list box.
|
||||
|
||||
\membersection{wxCheckListBox::Check}\label{wxchecklistboxcheck}
|
||||
|
||||
\func{void}{Check}{\param{int }{item}, \param{bool}{ check = TRUE}}
|
||||
|
||||
Checks the given item.
|
||||
|
||||
\wxheading{Parameters}
|
||||
|
||||
\docparam{item}{Index of item to check.}
|
||||
|
||||
\docparam{check}{TRUE if the item is to be checked, FALSE otherwise.}
|
||||
|
||||
\membersection{wxCheckListBox::IsChecked}\label{wxchecklistboxischecked}
|
||||
|
||||
\constfunc{bool}{IsChecked}{\param{int}{ item}}
|
||||
|
||||
Returns TRUE if the given item is checked, FALSE otherwise.
|
||||
|
||||
\wxheading{Parameters}
|
||||
|
||||
\docparam{item}{Index of item whose check status is to be returned.}
|
||||
|
||||
|
@@ -27,13 +27,16 @@ $$\image{14cm;0cm}{wxclass.ps}$$
|
||||
}}
|
||||
\end{comment}
|
||||
|
||||
\input accel.tex
|
||||
\input activevt.tex
|
||||
\input app.tex
|
||||
\input button.tex
|
||||
\input bitmap.tex
|
||||
\input bbutton.tex
|
||||
\input brush.tex
|
||||
\input calclevt.tex
|
||||
\input checkbox.tex
|
||||
\input checklst.tex
|
||||
\input choice.tex
|
||||
\input clasinfo.tex
|
||||
\input clientdc.tex
|
||||
@@ -92,12 +95,13 @@ $$\image{14cm;0cm}{wxclass.ps}$$
|
||||
\input joystick.tex
|
||||
\input joyevent.tex
|
||||
\input keyevent.tex
|
||||
\input layalgor.tex
|
||||
\input layout.tex
|
||||
\input list.tex
|
||||
\input listbox.tex
|
||||
\input listctrl.tex
|
||||
\input listevt.tex
|
||||
% \input log.tex
|
||||
\input log.tex
|
||||
\input mask.tex
|
||||
\input mdi.tex
|
||||
\input menu.tex
|
||||
@@ -113,6 +117,8 @@ $$\image{14cm;0cm}{wxclass.ps}$$
|
||||
\input mltchdlg.tex
|
||||
\input mutex.tex
|
||||
\input node.tex
|
||||
\input notebook.tex
|
||||
\input noteevt.tex
|
||||
\input object.tex
|
||||
\input pagedlg.tex
|
||||
\input paintdc.tex
|
||||
@@ -123,17 +129,22 @@ $$\image{14cm;0cm}{wxclass.ps}$$
|
||||
\input pathlist.tex
|
||||
\input pen.tex
|
||||
\input point.tex
|
||||
\input postscpt.tex
|
||||
\input prevwin.tex
|
||||
\input print.tex
|
||||
\input process.tex
|
||||
\input postscpt.tex
|
||||
\input procevt.tex
|
||||
\input query.tex
|
||||
\input qylayevt.tex
|
||||
\input radiobox.tex
|
||||
\input radiobut.tex
|
||||
\input realpoin.tex
|
||||
\input rect.tex
|
||||
\input recrdset.tex
|
||||
\input region.tex
|
||||
\input sashevt.tex
|
||||
\input sashlayw.tex
|
||||
\input sashwin.tex
|
||||
\input screendc.tex
|
||||
\input scrolbar.tex
|
||||
\input scrolevt.tex
|
||||
@@ -142,6 +153,8 @@ $$\image{14cm;0cm}{wxclass.ps}$$
|
||||
\input size.tex
|
||||
\input sizeevt.tex
|
||||
\input slider.tex
|
||||
\input sckaddr.tex
|
||||
\input socket.tex
|
||||
\input spinbutt.tex
|
||||
\input splitter.tex
|
||||
\input statbmp.tex
|
||||
@@ -165,16 +178,16 @@ $$\image{14cm;0cm}{wxclass.ps}$$
|
||||
\input toolbar.tex
|
||||
\input treectrl.tex
|
||||
\input treeevt.tex
|
||||
\input upditer.tex
|
||||
\input upduievt.tex
|
||||
\input url.tex
|
||||
\input validatr.tex
|
||||
\input view.tex
|
||||
\input wave.tex
|
||||
\input window.tex
|
||||
\input windowdc.tex
|
||||
\input winhelp.tex
|
||||
|
||||
\input function.tex
|
||||
\input keycode.tex
|
||||
|
||||
|
||||
%%% Local Variables:
|
||||
|
@@ -13,13 +13,20 @@ functions that take a wxCloseEvent argument.
|
||||
|
||||
\twocolwidtha{7cm}
|
||||
\begin{twocollist}\itemsep=0pt
|
||||
\twocolitem{{\bf EVT\_CLOSE(func)}}{Process a close event, supplying the member function.}
|
||||
\twocolitem{{\bf EVT\_CLOSE(func)}}{Process a close event, supplying the member function. This
|
||||
event applies to wxFrame and wxDialog classes.}
|
||||
\twocolitem{{\bf EVT\_QUERY\_END\_SESSION(func)}}{Process a query end session event, supplying the member function.
|
||||
This event applies to wxApp only.}
|
||||
\twocolitem{{\bf EVT\__END\_SESSION(func)}}{Process an end session event, supplying the member function.
|
||||
This event applies to wxApp only.}
|
||||
\end{twocollist}%
|
||||
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{wxWindow::OnCloseWindow}{wxwindowonclosewindow},\rtfsp
|
||||
\helpref{wxWindow::Close}{wxwindowclose},\rtfsp
|
||||
\helpref{wxApp::OnQueryEndSession}{wxapponqueryendsession},\rtfsp
|
||||
\helpref{wxApp::OnEndSession}{wxapponendsession},\rtfsp
|
||||
\helpref{Window deletion overview}{windowdeletionoverview}
|
||||
|
||||
\latexignore{\rtfignore{\wxheading{Members}}}
|
||||
@@ -30,6 +37,14 @@ functions that take a wxCloseEvent argument.
|
||||
|
||||
Constructor.
|
||||
|
||||
\membersection{wxCloseEvent::CanVeto}\label{wxcloseeventcanveto}
|
||||
|
||||
\func{bool}{CanVeto}{\void}
|
||||
|
||||
Returns TRUE if you can veto a system shutdown or a window close event.
|
||||
Vetoing a window close event is not possible if the calling code wishes to
|
||||
force the application to exit, and so this function must be called to check this.
|
||||
|
||||
\membersection{wxCloseEvent::GetLoggingOff}\label{wxcloseeventgetloggingoff}
|
||||
|
||||
\constfunc{bool}{GetLoggingOff}{\void}
|
||||
@@ -44,14 +59,37 @@ Returns TRUE if the session is ending.
|
||||
|
||||
\membersection{wxCloseEvent::GetForce}\label{wxcloseeventgetforce}
|
||||
|
||||
\constfunc{void}{GetForce}{\void}
|
||||
\constfunc{bool}{GetForce}{\void}
|
||||
|
||||
Returns TRUE if the application wishes to force the window to close.
|
||||
This will shortly be obsolete, replaced by CanVeto.
|
||||
|
||||
\membersection{wxCloseEvent::SetCanVeto}\label{wxcloseeventsetcanveto}
|
||||
|
||||
\func{void}{SetCanVeto}{\param{bool}{ canVeto}}
|
||||
|
||||
Sets the 'can veto' flag.
|
||||
|
||||
\membersection{wxCloseEvent::SetForce}\label{wxcloseeventsetforce}
|
||||
|
||||
\constfunc{void}{SetForce}{\param{bool}{ force}}
|
||||
|
||||
Sets the 'force' flag.
|
||||
|
||||
\membersection{wxCloseEvent::SetLoggingOff}\label{wxcloseeventsetloggingoff}
|
||||
|
||||
\constfunc{void}{SetLoggingOff}{\param{bool}{ loggingOff}}
|
||||
|
||||
Sets the 'logging off' flag.
|
||||
|
||||
\membersection{wxCloseEvent::Veto}\label{wxcloseeventveto}
|
||||
|
||||
\func{void}{Veto}{\void}
|
||||
\func{void}{Veto}{\param{bool}{ veto = TRUE}}
|
||||
|
||||
Call this from your event handler to veto a system shutdown.
|
||||
Call this from your event handler to veto a system shutdown or to signal
|
||||
to the calling application that a window close did not happen.
|
||||
|
||||
You can only veto a shutdown if \helpref{wxCloseEvent::CanVeto}{wxcloseeventcanveto} returns
|
||||
TRUE.
|
||||
|
||||
|
||||
|
@@ -2,8 +2,7 @@
|
||||
|
||||
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.
|
||||
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
|
||||
@@ -15,7 +14,7 @@ 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
|
||||
See \helpref{config overview}{wxconfigoverview} for the descriptions of all
|
||||
features of this class.
|
||||
|
||||
\wxheading{Derived from}
|
||||
@@ -98,7 +97,7 @@ disable this behaviour {\it DontCreateOnDemand()} is provided.
|
||||
|
||||
\membersection{Path management}
|
||||
|
||||
As explained in \helpref{config overview}{configoverview}, the config classes
|
||||
As explained in \helpref{config overview}{wxconfigoverview}, the config classes
|
||||
support a file system-like hierarchy of keys (files) and groups (directories).
|
||||
As in the file system case, to specify a key in the config class you must use
|
||||
a path to it. Config classes also support the notion of the current group,
|
||||
@@ -315,35 +314,38 @@ The following functions control this option:
|
||||
\param{const wxString\& }{globalFilename = wxEmptyString},
|
||||
\param{long}{ style = 0}}
|
||||
|
||||
This is the default and only constructor of the wxConfigBase class, and derived classes.
|
||||
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{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{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{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.}
|
||||
\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.
|
||||
By default, environment variable expansion is on and recording defaults is
|
||||
off.
|
||||
|
||||
\membersection{wxConfigBase::\destruct{wxConfigBase}}\label{wxconfigbasedtor}
|
||||
|
||||
@@ -356,9 +358,9 @@ Empty but ensures that dtor of all derived classes is virtual.
|
||||
\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.
|
||||
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}
|
||||
|
||||
@@ -377,10 +379,11 @@ for use by desinstallation routine.
|
||||
|
||||
\membersection{wxConfigBase::DeleteEntry}\label{wxconfigbasedeleteentry}
|
||||
|
||||
\func{bool}{DeleteEntry}{\param{const wxString\& }{ key}, \param{bool}{ bDeleteGroupIfEmpty = TRUE}}
|
||||
\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.
|
||||
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}
|
||||
|
||||
@@ -416,25 +419,29 @@ Returns the application name.
|
||||
|
||||
\membersection{wxConfigBase::GetFirstGroup}\label{wxconfigbasegetfirstgroup}
|
||||
|
||||
\constfunc{bool}{GetFirstGroup}{\param{wxString\& }{str}, \param{long\&}{ index}}
|
||||
\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}}
|
||||
\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}}
|
||||
\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}}
|
||||
\constfunc{bool}{GetNextEntry}{\param{wxString\& }{str}, \param{long\&}{
|
||||
index}}
|
||||
|
||||
Gets the next entry.
|
||||
|
||||
@@ -446,8 +453,8 @@ Gets the next entry.
|
||||
|
||||
\constfunc{uint}{GetNumberOfGroups}{\param{bool }{bRecursive = FALSE}}
|
||||
|
||||
Get number of entries/subgroups in the current group, with or without
|
||||
its subgroups.
|
||||
Get number of entries/subgroups in the current group, with or without its
|
||||
subgroups.
|
||||
|
||||
\membersection{wxConfigBase::GetPath}\label{wxconfigbasegetpath}
|
||||
|
||||
@@ -487,71 +494,72 @@ 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}}
|
||||
\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.
|
||||
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}}
|
||||
\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.
|
||||
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}}
|
||||
\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.
|
||||
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}}
|
||||
\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.
|
||||
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}}
|
||||
\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.
|
||||
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}
|
||||
}
|
||||
{\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:
|
||||
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}
|
||||
}
|
||||
{\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.
|
||||
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}}
|
||||
\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.
|
||||
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.
|
||||
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}}
|
||||
\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.
|
||||
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}
|
||||
|
||||
@@ -577,8 +585,8 @@ Determine whether we wish to expand environment variables in key values.
|
||||
\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.
|
||||
otherwise it's a relative path. '..' is supported. If the strPath doesn't
|
||||
exist it is created.
|
||||
|
||||
\membersection{wxConfigBase::SetRecordDefaults}\label{wxconfigbasesetrecorddefaults}
|
||||
|
||||
@@ -586,9 +594,9 @@ doesn't exist it is created.
|
||||
|
||||
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.
|
||||
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}
|
||||
|
||||
@@ -598,7 +606,8 @@ 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{const wxString\& }{
|
||||
value}}
|
||||
|
||||
\func{bool}{Write}{\param{const wxString\& }{ key}, \param{long}{ value}}
|
||||
|
||||
@@ -606,7 +615,7 @@ Sets the vendor name.
|
||||
|
||||
\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.
|
||||
These functions write the specified value to the config file and return TRUE
|
||||
on success.
|
||||
|
||||
|
||||
|
@@ -74,6 +74,8 @@ the WXTRACELEVEL macro to specify how detailed the trace information is; setting
|
||||
a different level will only have an effect if trace statements in the application
|
||||
specify a value other than one.
|
||||
|
||||
This is obsolete, replaced by \helpref{wxLog}{wxlog} functionality.
|
||||
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{wxDebugContext::SetLevel}{wxdebugcontextsetlevel}
|
||||
@@ -84,6 +86,8 @@ specify a value other than one.
|
||||
|
||||
Returns the output stream associated with the debug context.
|
||||
|
||||
This is obsolete, replaced by \helpref{wxLog}{wxlog} functionality.
|
||||
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{wxDebugContext::SetStream}{wxdebugcontextsetstream}
|
||||
@@ -96,6 +100,8 @@ Returns a pointer to the output stream buffer associated with the debug context.
|
||||
There may not necessarily be a stream buffer if the stream has been set
|
||||
by the user.
|
||||
|
||||
This is obsolete, replaced by \helpref{wxLog}{wxlog} functionality.
|
||||
|
||||
\membersection{wxDebugContext::HasStream}\label{wxdebugcontexthasstream}
|
||||
|
||||
\func{bool}{HasStream}{\void}
|
||||
@@ -103,6 +109,8 @@ by the user.
|
||||
Returns TRUE if there is a stream currently associated
|
||||
with the debug context.
|
||||
|
||||
This is obsolete, replaced by \helpref{wxLog}{wxlog} functionality.
|
||||
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{wxDebugContext::SetStream}{wxdebugcontextsetstream}, \helpref{wxDebugContext::GetStream}{wxdebugcontextgetstream}
|
||||
@@ -195,6 +203,8 @@ the WXTRACELEVEL macro to specify how detailed the trace information is; setting
|
||||
a different level will only have an effect if trace statements in the application
|
||||
specify a value other than one.
|
||||
|
||||
This is obsolete, replaced by \helpref{wxLog}{wxlog} functionality.
|
||||
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{wxDebugContext::GetLevel}{wxdebugcontextgetlevel}
|
||||
@@ -206,6 +216,8 @@ specify a value other than one.
|
||||
Sets the debugging stream to be the debugger (Windows) or standard error (other platforms).
|
||||
This is the default setting. The existing stream will be flushed and deleted.
|
||||
|
||||
This is obsolete, replaced by \helpref{wxLog}{wxlog} functionality.
|
||||
|
||||
\membersection{wxDebugContext::SetStream}\label{wxdebugcontextsetstream}
|
||||
|
||||
\func{void}{SetStream}{\param{ostream* }{stream}, \param{streambuf* }{streamBuf = NULL}}
|
||||
@@ -213,6 +225,8 @@ This is the default setting. The existing stream will be flushed and deleted.
|
||||
Sets the stream and optionally, stream buffer associated with the debug context.
|
||||
This operation flushes and deletes the existing stream (and stream buffer if any).
|
||||
|
||||
This is obsolete, replaced by \helpref{wxLog}{wxlog} functionality.
|
||||
|
||||
\wxheading{Parameters}
|
||||
|
||||
\docparam{stream}{Stream to associate with the debug context. Do not set this to NULL.}
|
||||
@@ -231,6 +245,8 @@ Windows, an ostream constructed with this buffer outputs
|
||||
to the debugger, or other program that intercepts debugging
|
||||
output. On other platforms, the output goes to standard error (cerr).
|
||||
|
||||
This is soon to be obsolete, replaced by \helpref{wxLog}{wxlog} functionality.
|
||||
|
||||
\wxheading{Derived from}
|
||||
|
||||
streambuf
|
||||
|
@@ -12,7 +12,7 @@ and \helpref{wxDocTemplate}{wxdoctemplate} classes.
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{wxDocManager overview}{wxdocmanageroverview}, \helpref{wxDocument}{wxdocument},\rtfsp
|
||||
\helpref{wxView}{wxview}, \helpref{wxDocTemplate}{wxdoctemplate}
|
||||
\helpref{wxView}{wxview}, \helpref{wxDocTemplate}{wxdoctemplate}, \helpref{wxFileHistory}{wxfilehistory}
|
||||
|
||||
\latexignore{\rtfignore{\wxheading{Members}}}
|
||||
|
||||
@@ -139,28 +139,54 @@ of view is presented to the user.
|
||||
|
||||
Removes the template from the list of templates.
|
||||
|
||||
\membersection{wxDocManager::FileHistoryLoad}
|
||||
\membersection{wxDocManager::FileHistoryAddFilesToMenu}\label{wxdocmanagerfilehistoryaddfilestomenu}
|
||||
|
||||
\func{void}{FileHistoryLoad}{\param{const wxString\& }{resourceFile}, \param{const wxString\& }{sectionName}}
|
||||
\func{void}{FileHistoryAddFilesToMenu}{\void}
|
||||
|
||||
Loads the file history from a resource file, using the given section. This must be called
|
||||
Appends the files in the history list, to all menus managed by the file history object.
|
||||
|
||||
\func{void}{FileHistoryAddFilesToMenu}{\param{wxMenu*}{ menu}}
|
||||
|
||||
Appends the files in the history list, to the given menu only.
|
||||
|
||||
\membersection{wxDocManager::FileHistoryLoad}\label{wxdocmanagerfilehistoryload}
|
||||
|
||||
\func{void}{FileHistoryLoad}{\param{wxConfigBase\& }{config}}
|
||||
|
||||
Loads the file history from a config object.
|
||||
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{wxConfig}{wxconfigbase}
|
||||
|
||||
\membersection{wxDocManager::FileHistoryRemoveMenu}\label{wxdocmanagerfilehistoryremovemenu}
|
||||
|
||||
\func{void}{FileHistoryRemoveMenu}{\param{wxMenu*}{ menu}}
|
||||
|
||||
Removes the given menu from the list of menus managed by the file history object.
|
||||
|
||||
\membersection{wxDocManager::FileHistorySave}\label{wxdocmanagerfilehistorysave}
|
||||
|
||||
\func{void}{FileHistorySave}{\param{wxConfigBase\& }{resourceFile}}
|
||||
|
||||
Saves the file history into a config object. This must be called
|
||||
explicitly by the application.
|
||||
|
||||
\membersection{wxDocManager::FileHistorySave}
|
||||
\wxheading{See also}
|
||||
|
||||
\func{void}{FileHistorySave}{\param{const wxString\& }{resourceFile}, \param{const wxString\& }{sectionName}}
|
||||
\helpref{wxConfig}{wxconfigbase}
|
||||
|
||||
Saves the file history into a resource file, using the given section. This must be called
|
||||
explicitly by the application.
|
||||
\membersection{wxDocManager::FileHistoryUseMenu}\label{wxdocmanagerfilehistoryusemenu}
|
||||
|
||||
\membersection{wxDocManager::FileHistoryUseMenu}
|
||||
|
||||
\func{void}{FileHistoryUseMenu}{\param{wxMenu *}{menu}}
|
||||
\func{void}{FileHistoryUseMenu}{\param{wxMenu*}{ menu}}
|
||||
|
||||
Use this menu for appending recently-visited document filenames, for convenient
|
||||
access. Calling this function with a valid menu pointer enables the history
|
||||
list functionality.
|
||||
|
||||
Note that you can add multiple menus using this function, to be managed by the
|
||||
file history object.
|
||||
|
||||
\membersection{wxDocManager::FindTemplateForPath}
|
||||
|
||||
\func{wxDocTemplate *}{FindTemplateForPath}{\param{const wxString\& }{path}}
|
||||
|
@@ -324,4 +324,8 @@ Sets the title for this document. The document title is used for an associated
|
||||
frame (if any), and is usually constructed by the framework from
|
||||
the filename.
|
||||
|
||||
\membersection{wxDocument::UpdateAllViews}\label{wxdocumentupdateallviews}
|
||||
|
||||
\func{void}{UpdateAllViews}{\param{wxView* }{sender = NULL}}
|
||||
|
||||
Updates all views. If {\it sender} is non-NULL, does not update this view.
|
||||
|
@@ -3,13 +3,17 @@
|
||||
The wxFileHistory encapsulates a user interface convenience, the
|
||||
list of most recently visited files as shown on a menu (usually the File menu).
|
||||
|
||||
wxFileHistory can manage one or more file menus. More than one menu may be required
|
||||
in an MDI application, where the file history should appear on each MDI child menu
|
||||
as well as the MDI parent frame.
|
||||
|
||||
\wxheading{Derived from}
|
||||
|
||||
\helpref{wxObject}{wxobject}
|
||||
|
||||
\wxheading{See also}
|
||||
|
||||
\overview{wxFileHistory overview}{wxfilehistoryoverview}
|
||||
\helpref{wxFileHistory overview}{wxfilehistoryoverview}, \helpref{wxDocManager}{wxdocmanager}
|
||||
|
||||
\latexignore{\rtfignore{\wxheading{Members}}}
|
||||
|
||||
@@ -56,38 +60,65 @@ Destructor.
|
||||
|
||||
Adds a file to the file history list, if the object has a pointer to an appropriate file menu.
|
||||
|
||||
\membersection{wxFileHistory::FileHistoryLoad}
|
||||
\membersection{wxFileHistory::AddFilesToMenu}\label{wxfilehistoryaddfilestomenu}
|
||||
|
||||
\func{void}{FileHistoryLoad}{\param{const wxString\& }{resourceFile}, \param{const wxString\& }{sectionName}}
|
||||
\func{void}{AddFilesToMenu}{\void}
|
||||
|
||||
Loads the file history from a resource file, using the given section. This must be called
|
||||
explicitly by the application.
|
||||
Appends the files in the history list, to all menus managed by the file history object.
|
||||
|
||||
\membersection{wxFileHistory::FileHistorySave}
|
||||
\func{void}{AddFilesToMenu}{\param{wxMenu*}{ menu}}
|
||||
|
||||
\func{void}{FileHistorySave}{\param{const wxString\& }{resourceFile}, \param{const wxString\& }{sectionName}}
|
||||
Appends the files in the history list, to the given menu only.
|
||||
|
||||
Saves the file history into a resource file, using the given section. This must be called
|
||||
explicitly by the application.
|
||||
\membersection{wxFileHistory::GetHistoryFile}\label{wxfilehistorygethistoryfile}
|
||||
|
||||
\membersection{wxFileHistory::FileHistoryUseMenu}
|
||||
\constfunc{wxString}{GetHistoryFile}{\param{int}{ index}}
|
||||
|
||||
\func{void}{FileHistoryUseMenu}{\param{wxMenu* }{menu}}
|
||||
|
||||
Use this menu for appending recently-visited document filenames, for convenient
|
||||
access. Calling this function with a valid menu pointer enables the history
|
||||
list functionality.
|
||||
Returns the file at this index (zero-based).
|
||||
|
||||
\membersection{wxFileHistory::GetMaxFiles}
|
||||
|
||||
\func{int}{GetMaxFiles}{\void}
|
||||
\constfunc{int}{GetMaxFiles}{\void}
|
||||
|
||||
Returns the maximum number of files that can be stored.
|
||||
|
||||
\membersection{wxFileHistory::GetNoHistoryFiles}
|
||||
|
||||
\func{int}{GetNoHistoryFiles}{\void}
|
||||
\constfunc{int}{GetNoHistoryFiles}{\void}
|
||||
|
||||
Returns the number of files currently stored in the file history.
|
||||
|
||||
\membersection{wxFileHistory::Load}
|
||||
|
||||
\func{void}{Load}{\param{wxConfigBase\& }{config}}
|
||||
|
||||
Loads the file history from the given config object. This function should be called explicitly by the application.
|
||||
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{wxConfig}{wxconfigbase}
|
||||
|
||||
\membersection{wxFileHistory::RemoveMenu}
|
||||
|
||||
\func{void}{RemoveMenu}{\param{wxMenu* }{menu}}
|
||||
|
||||
Removes this menu from the list of those managed by this object.
|
||||
|
||||
\membersection{wxFileHistory::Save}
|
||||
|
||||
\func{void}{Save}{\param{wxConfigBase\& }{config}}
|
||||
|
||||
Saves the file history into the given config object. This must be called
|
||||
explicitly by the application.
|
||||
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{wxConfig}{wxconfigbase}
|
||||
|
||||
\membersection{wxFileHistory::UseMenu}
|
||||
|
||||
\func{void}{UseMenu}{\param{wxMenu* }{menu}}
|
||||
|
||||
Adds this menu to the list of those managed by this object.
|
||||
|
||||
|
||||
|
@@ -750,6 +750,8 @@ each wxDebugMsg call. wxDebugMsg seems to be broken under WIN32s
|
||||
(at least for Watcom C++): preformat your messages and use OutputDebugString
|
||||
instead.
|
||||
|
||||
This function is now obsolete, replaced by \helpref{Log functions}{logfunctions}.
|
||||
|
||||
\membersection{::wxDisplaySize}
|
||||
|
||||
\func{void}{wxDisplaySize}{\param{int *}{width}, \param{int *}{height}}
|
||||
@@ -1121,6 +1123,8 @@ Converts the character to upper case. This is implemented as a macro for efficie
|
||||
Takes printf-style variable argument syntax. Output
|
||||
is directed to the current output stream (see \helpref{wxDebugContext}{wxdebugcontextoverview}).
|
||||
|
||||
This function is now obsolete, replaced by \helpref{Log functions}{logfunctions}.
|
||||
|
||||
\membersection{::wxTraceLevel}\label{wxtracelevel}
|
||||
|
||||
\func{void}{wxTraceLevel}{\param{int}{ level}, \param{const wxString\& }{fmt}, \param{...}{}}
|
||||
@@ -1131,6 +1135,8 @@ The first argument should be the level at which this information is appropriate.
|
||||
It will only be output if the level returned by wxDebugContext::GetLevel is equal to or greater than
|
||||
this value.
|
||||
|
||||
This function is now obsolete, replaced by \helpref{Log functions}{logfunctions}.
|
||||
|
||||
\membersection{::wxWriteResource}\label{wxwriteresource}
|
||||
|
||||
\func{bool}{wxWriteResource}{\param{const wxString\& }{section}, \param{const wxString\& }{entry},
|
||||
@@ -1355,6 +1361,8 @@ base classes.
|
||||
Calls wxTrace with printf-style variable argument syntax. Output
|
||||
is directed to the current output stream (see \helpref{wxDebugContext}{wxdebugcontextoverview}).
|
||||
|
||||
This macro is now obsolete, replaced by \helpref{Log functions}{logfunctions}.
|
||||
|
||||
\membersection{WXTRACELEVEL}\label{tracelevel}
|
||||
|
||||
\func{}{WXTRACELEVEL}{level, formatString, ...}
|
||||
@@ -1365,6 +1373,8 @@ The first argument should be the level at which this information is appropriate.
|
||||
It will only be output if the level returned by wxDebugContext::GetLevel is equal to or greater than
|
||||
this value.
|
||||
|
||||
This function is now obsolete, replaced by \helpref{Log functions}{logfunctions}.
|
||||
|
||||
\section{wxWindows resource functions}\label{resourcefuncs}
|
||||
|
||||
\overview{wxWindows resource system}{resourceformats}
|
||||
@@ -1560,3 +1570,148 @@ is no connection between names used in resources, and the global bitmap data.
|
||||
|
||||
Another name for \helpref{wxResourceRegisterBitmapData}{registerbitmapdata}.
|
||||
|
||||
\section{Log functions}\label{logfunctions}
|
||||
|
||||
These functions provide a variety of logging functions: see \helpref{Log classes overview}{wxlogoverview} for
|
||||
further information.
|
||||
|
||||
\membersection{::wxLogError}\label{wxlogerror}
|
||||
|
||||
\func{void}{wxLogError}{\param{const char*}{ formatString}, \param{...}{}}
|
||||
|
||||
The function to use for error messages, i.e. the
|
||||
messages that must be shown to the user. The default processing is to pop up a
|
||||
message box to inform the user about it.
|
||||
|
||||
\membersection{::wxLogFatalError}\label{wxlogfatalerror}
|
||||
|
||||
\func{void}{wxLogFatalError}{\param{const char*}{ formatString}, \param{...}{}}
|
||||
|
||||
Like \helpref{wxLogError}{wxlogerror}, but also
|
||||
terminates the program with the exit code 3. Using {\it abort()} standard
|
||||
function also terminates the program with this exit code.
|
||||
|
||||
\membersection{::wxLogWarning}\label{wxlogwarning}
|
||||
|
||||
\func{void}{wxLogWarning}{\param{const char*}{ formatString}, \param{...}{}}
|
||||
|
||||
For warnings - they are also normally shown to the
|
||||
user, but don't interrupt the program work.
|
||||
|
||||
\membersection{::wxLogMessage}\label{wxlogmessage}
|
||||
|
||||
\func{void}{wxLogMessage}{\param{const char*}{ formatString}, \param{...}{}}
|
||||
|
||||
for all normal, informational messages. They also
|
||||
appear in a message box by default (but it can be changed). Notice
|
||||
that the standard behaviour is to not show informational messages if there are
|
||||
any errors later - the logic being that the later error messages make the
|
||||
informational messages preceding them meaningless.
|
||||
|
||||
\membersection{::wxLogVerbose}\label{wxlogverbose}
|
||||
|
||||
\func{void}{wxLogVerbose}{\param{const char*}{ formatString}, \param{...}{}}
|
||||
|
||||
For verbose output. Normally, it's suppressed, but
|
||||
might be activated if the user wishes to know more details about the program
|
||||
progress (another, but possibly confusing name for the same function is {\bf wxLogInfo}).
|
||||
|
||||
\membersection{::wxLogStatus}\label{wxlogstatus}
|
||||
|
||||
\func{void}{wxLogStatus}{\param{const char*}{ formatString}, \param{...}{}}
|
||||
|
||||
For status messages - they will go into the status
|
||||
bar of the active or specified (as the first argument) \helpref{wxFrame}{wxframe} if it has one.
|
||||
|
||||
\membersection{::wxLogSysError}\label{wxlogsyserror}
|
||||
|
||||
\func{void}{wxLogSysError}{\param{const char*}{ formatString}, \param{...}{}}
|
||||
|
||||
Mostly used by wxWindows itself, but might be
|
||||
handy for logging errors after system call (API function) failure. It logs the
|
||||
specified message text as well as the last system error code ({\it errno} or {\it ::GetLastError()} depending
|
||||
on the platform) and the corresponding error
|
||||
message. The second form of this function takes the error code explitly as the
|
||||
first argument.
|
||||
|
||||
\membersection{::wxLogDebug}\label{wxlogdebug}
|
||||
|
||||
\func{void}{wxLogDebug}{\param{const char*}{ formatString}, \param{...}{}}
|
||||
|
||||
The right function for debug output. It only
|
||||
does anything at all in the debug mode (when the preprocessor symbol \_\_WXDEBUG\_\_ is defined)
|
||||
and expands to nothing in release mode (otherwise).
|
||||
|
||||
\membersection{::wxLogTrace}\label{wxlogtrace}
|
||||
|
||||
\func{void}{wxLogTrace}{\param{const char*}{ formatString}, \param{...}{}}
|
||||
|
||||
\func{void}{wxLogTrace}{\param{wxTraceMask}{ mask}, \param{const char*}{ formatString}, \param{...}{}}
|
||||
|
||||
As {\bf wxLogDebug}, only does something in debug
|
||||
build. The reason for making it a separate function from it is that usually
|
||||
there are a lot of trace messages, so it might make sense to separate them
|
||||
from other debug messages which would be flooded in them. Moreover, the second
|
||||
version of this function takes a trace mask as the first argument which allows
|
||||
to further restrict the amount of messages generated. The value of {\it mask} can be:
|
||||
|
||||
\begin{itemize}\itemsep=0pt
|
||||
\item wxTraceMemAlloc: trace memory allocation (new/delete)
|
||||
\item wxTraceMessages: trace window messages/X callbacks
|
||||
\item wxTraceResAlloc: trace GDI resource allocation
|
||||
\item wxTraceRefCount: trace various ref counting operations
|
||||
\end{itemize}
|
||||
|
||||
\section{Debugging macros and functions}\label{debugmacros}
|
||||
|
||||
Useful macros and functins for error checking and defensive programming. ASSERTs are only
|
||||
compiled if \_\_WXDEBUG\_\_ is defined, whereas CHECK macros stay in release
|
||||
builds.
|
||||
|
||||
\membersection{::wxOnAssert}\label{wxonassert}
|
||||
|
||||
\func{void}{wxOnAssert}{\param{const char*}{ fileName}, \param{int}{ lineNumber}, \param{const char*}{ msg = NULL}}
|
||||
|
||||
This function may be redefined to do something non trivial and is called
|
||||
whenever one of debugging macros fails (i.e. condition is false in an
|
||||
assertion). TODO: this should probably be an overridable in wxApp.
|
||||
|
||||
\membersection{wxASSERT}\label{wxassert}
|
||||
|
||||
\func{}{wxASSERT}{\param{}{condition}}
|
||||
|
||||
Assert macro. An error message will be generated if the condition is FALSE.
|
||||
|
||||
\membersection{wxASSERT\_MSG}\label{wxassertmsg}
|
||||
|
||||
\func{}{wxASSERT\_MSG}{\param{}{condition}, \param{}{msg}}
|
||||
|
||||
Assert macro with message. An error message will be generated if the condition is FALSE.
|
||||
|
||||
\membersection{wxFAIL}\label{wxfail}
|
||||
|
||||
\func{}{wxFAIL}{\param{}{condition}}
|
||||
|
||||
Will always generate an assert error if this code is reached (in debug mode).
|
||||
|
||||
\membersection{wxFAIL\_MSG}\label{wxfailmsg}
|
||||
|
||||
\func{}{wxFAIL\_MSG}{\param{}{condition}, \param{}{msg}}
|
||||
|
||||
Will always generate an assert error with specified message if this code is reached (in debug mode).
|
||||
|
||||
\membersection{wxCHECK}\label{wxcheck}
|
||||
|
||||
\func{}{wxCHECK}{\param{}{condition}, \param{}{retValue}}
|
||||
|
||||
Checks that the condition is true, returns with the given return value if not (FAILs in debug mode).
|
||||
This check is done even in release mode.
|
||||
|
||||
\membersection{wxCHECK\_MSG}\label{wxcheckmsg}
|
||||
|
||||
\func{}{wxCHECK\_MSG}{\param{}{condition}, \param{}{retValue}, \param{}{msg}}
|
||||
|
||||
Checks that the condition is true, returns with the given return value if not (FAILs in debug mode).
|
||||
This check is done even in release mode.
|
||||
|
||||
|
||||
|
@@ -1,11 +1,8 @@
|
||||
\section{\class{wxHelpControllerBase}}\label{wxhelpcontrollerbase}
|
||||
\section{\class{wxHelpController}}\label{wxhelpcontroller}
|
||||
|
||||
This class defines the interface by which
|
||||
This is a family of classes by which
|
||||
applications may invoke a help viewer to provide on-line help.
|
||||
|
||||
Other classes derive from this class to provide actual implementations
|
||||
of help controllers.
|
||||
|
||||
A help controller allows an application to display help, at the contents
|
||||
or at a particular topic, and shut the help program down on termination.
|
||||
This avoids proliferation of many instances of the help viewer whenever the
|
||||
@@ -16,36 +13,42 @@ when it starts, and immediately call {\bf Initialize}\rtfsp
|
||||
to associate a filename with it. The help viewer will only get run, however,
|
||||
just before the first call to display something.
|
||||
|
||||
Although all help controller classes actually derive from wxHelpControllerBase and have
|
||||
names of the form wxXXXHelpController, the
|
||||
appropriate class is aliased to the name wxHelpController for each platform.
|
||||
|
||||
There are currently the following help controller classes defined:
|
||||
|
||||
\begin{itemize}\itemsep=0
|
||||
\item wxWinHelpController, for controlling Windows Help.
|
||||
\item wxExtHelpController, for controlling external browsers under Unix.
|
||||
The default browser is Netscape Navigator.
|
||||
\end{itemize}
|
||||
|
||||
\wxheading{Derivation}
|
||||
|
||||
wxHelpControllerBase\\
|
||||
\helpref{wxObject}{wxobject}
|
||||
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{wxWinHelpController}{wxwinhelpcontroller}
|
||||
|
||||
\wxheading{Include file}
|
||||
|
||||
{\tt <wx/helpbase.h>} (for just wxHelpControllerBase)
|
||||
|
||||
{\tt <wx/help.h>} (to include the platform-specific controller, e.g. wxWinHelpController)
|
||||
|
||||
{\tt <wx/help.h>}
|
||||
|
||||
\latexignore{\rtfignore{\wxheading{Members}}}
|
||||
|
||||
\membersection{wxHelpControllerBase::wxHelpControllerBase}
|
||||
\membersection{wxHelpController::wxHelpController}
|
||||
|
||||
\func{}{wxHelpControllerBase}{\void}
|
||||
\func{}{wxHelpController}{\void}
|
||||
|
||||
Constructs a help instance object, but does not invoke the help viewer.
|
||||
|
||||
\membersection{wxHelpControllerBase::\destruct{wxHelpControllerBase}}
|
||||
\membersection{wxHelpController::\destruct{wxHelpController}}
|
||||
|
||||
\func{}{\destruct{wxHelpControllerBase}}{\void}
|
||||
\func{}{\destruct{wxHelpController}}{\void}
|
||||
|
||||
Destroys the help instance, closing down the viewer if it is running.
|
||||
|
||||
\membersection{wxHelpControllerBase::Initialize}\label{wxhelpcontrollerbaseinitialize}
|
||||
\membersection{wxHelpController::Initialize}\label{wxhelpcontrollerinitialize}
|
||||
|
||||
\func{virtual void}{Initialize}{\param{const wxString\& }{file}}
|
||||
|
||||
@@ -58,7 +61,7 @@ any attempts to communicate with the viewer.
|
||||
|
||||
You may omit the file extension and a suitable one will be chosen.
|
||||
|
||||
\membersection{wxHelpControllerBase::DisplayBlock}\label{wxhelpcontrollerbasedisplayblock}
|
||||
\membersection{wxHelpController::DisplayBlock}\label{wxhelpcontrollerdisplayblock}
|
||||
|
||||
\func{virtual bool}{DisplayBlock}{\param{long}{ blockNo}}
|
||||
|
||||
@@ -66,14 +69,14 @@ If the help viewer is not running, runs it and displays the file at the given bl
|
||||
The interpretation of {\it blockNo} differs between help viewers. If using Windows Help, this
|
||||
refers to the context number. If wxHelp, this is the wxHelp block number.
|
||||
|
||||
\membersection{wxHelpControllerBase::DisplayContents}\label{wxhelpcontrollerbasedisplaycontents}
|
||||
\membersection{wxHelpController::DisplayContents}\label{wxhelpcontrollerdisplaycontents}
|
||||
|
||||
\func{virtual bool}{DisplayContents}{\void}
|
||||
|
||||
If the help viewer is not running, runs it and displays the
|
||||
contents.
|
||||
|
||||
\membersection{wxHelpControllerBase::DisplaySection}\label{wxhelpcontrollerbasedisplaysection}
|
||||
\membersection{wxHelpController::DisplaySection}\label{wxhelpcontrollerdisplaysection}
|
||||
|
||||
\func{virtual bool}{DisplaySection}{\param{int}{ sectionNo}}
|
||||
|
||||
@@ -84,7 +87,7 @@ For wxHelp, section numbers may be viewed by running wxHelp in edit mode.
|
||||
|
||||
DisplaySection does not apply to WinHelp.
|
||||
|
||||
\membersection{wxHelpControllerBase::KeywordSearch}\label{wxhelpcontrollerbasekeywordsearch}
|
||||
\membersection{wxHelpController::KeywordSearch}\label{wxhelpcontrollerkeywordsearch}
|
||||
|
||||
\func{virtual bool}{KeywordSearch}{\param{const wxString\& }{keyWord}}
|
||||
|
||||
@@ -93,7 +96,7 @@ match is found, the file is displayed at this section. If more than one
|
||||
match is found, the Search dialog is displayed with the matches (wxHelp)
|
||||
or the first topic is displayed (Windows Help).
|
||||
|
||||
\membersection{wxHelpControllerBase::LoadFile}\label{wxhelpcontrollerbaseloadfile}
|
||||
\membersection{wxHelpController::LoadFile}\label{wxhelpcontrollerloadfile}
|
||||
|
||||
\func{virtual bool}{LoadFile}{\param{const wxString\& }{file = NULL}}
|
||||
|
||||
@@ -104,15 +107,15 @@ already displaying the specified file, it will not be reloaded. This
|
||||
member function may be used before each display call in case the user
|
||||
has opened another file.
|
||||
|
||||
\membersection{wxHelpControllerBase::OnQuit}\label{wxhelpcontrollerbaseonquit}
|
||||
\membersection{wxHelpController::OnQuit}\label{wxhelpcontrolleronquit}
|
||||
|
||||
\func{virtual bool}{OnQuit}{\void}
|
||||
|
||||
Overridable member called when this application's viewer is quit by the user.
|
||||
|
||||
This only works for wxXLPHelpController.
|
||||
This does not work for all help controllers.
|
||||
|
||||
\membersection{wxHelpControllerBase::Quit}\label{wxhelpcontrollerbasequit}
|
||||
\membersection{wxHelpController::Quit}\label{wxhelpcontrollerquit}
|
||||
|
||||
\func{virtual bool}{Quit}{\void}
|
||||
|
||||
|
84
docs/latex/wx/keycode.tex
Normal file
84
docs/latex/wx/keycode.tex
Normal file
@@ -0,0 +1,84 @@
|
||||
\section{Keycodes}\label{keycodes}
|
||||
|
||||
Keypresses are represented by an enumerated type, wxKeyCode. The possible values
|
||||
are the ASCII character codes, plus the following:
|
||||
|
||||
{\small
|
||||
\begin{verbatim}
|
||||
WXK_BACK = 8
|
||||
WXK_TAB = 9
|
||||
WXK_RETURN = 13
|
||||
WXK_ESCAPE = 27
|
||||
WXK_SPACE = 32
|
||||
WXK_DELETE = 127
|
||||
|
||||
WXK_START = 300
|
||||
WXK_LBUTTON
|
||||
WXK_RBUTTON
|
||||
WXK_CANCEL
|
||||
WXK_MBUTTON
|
||||
WXK_CLEAR
|
||||
WXK_SHIFT
|
||||
WXK_CONTROL
|
||||
WXK_MENU
|
||||
WXK_PAUSE
|
||||
WXK_CAPITAL
|
||||
WXK_PRIOR
|
||||
WXK_NEXT
|
||||
WXK_END
|
||||
WXK_HOME
|
||||
WXK_LEFT
|
||||
WXK_UP
|
||||
WXK_RIGHT
|
||||
WXK_DOWN
|
||||
WXK_SELECT
|
||||
WXK_PRINT
|
||||
WXK_EXECUTE
|
||||
WXK_SNAPSHOT
|
||||
WXK_INSERT
|
||||
WXK_HELP
|
||||
WXK_NUMPAD0
|
||||
WXK_NUMPAD1
|
||||
WXK_NUMPAD2
|
||||
WXK_NUMPAD3
|
||||
WXK_NUMPAD4
|
||||
WXK_NUMPAD5
|
||||
WXK_NUMPAD6
|
||||
WXK_NUMPAD7
|
||||
WXK_NUMPAD8
|
||||
WXK_NUMPAD9
|
||||
WXK_MULTIPLY
|
||||
WXK_ADD
|
||||
WXK_SEPARATOR
|
||||
WXK_SUBTRACT
|
||||
WXK_DECIMAL
|
||||
WXK_DIVIDE
|
||||
WXK_F1
|
||||
WXK_F2
|
||||
WXK_F3
|
||||
WXK_F4
|
||||
WXK_F5
|
||||
WXK_F6
|
||||
WXK_F7
|
||||
WXK_F8
|
||||
WXK_F9
|
||||
WXK_F10
|
||||
WXK_F11
|
||||
WXK_F12
|
||||
WXK_F13
|
||||
WXK_F14
|
||||
WXK_F15
|
||||
WXK_F16
|
||||
WXK_F17
|
||||
WXK_F18
|
||||
WXK_F19
|
||||
WXK_F20
|
||||
WXK_F21
|
||||
WXK_F22
|
||||
WXK_F23
|
||||
WXK_F24
|
||||
WXK_NUMLOCK
|
||||
WXK_SCROLL
|
||||
\end{verbatim}
|
||||
}
|
||||
|
@@ -35,84 +35,7 @@ TRUE if control is pressed down.
|
||||
|
||||
\member{long}{m\_keyCode}
|
||||
|
||||
Virtual keycode. An enumerated type, one of:
|
||||
|
||||
\begin{verbatim}
|
||||
WXK_BACK = 8
|
||||
WXK_TAB = 9
|
||||
WXK_RETURN = 13
|
||||
WXK_ESCAPE = 27
|
||||
WXK_SPACE = 32
|
||||
WXK_DELETE = 127
|
||||
|
||||
WXK_START = 300
|
||||
WXK_LBUTTON
|
||||
WXK_RBUTTON
|
||||
WXK_CANCEL
|
||||
WXK_MBUTTON
|
||||
WXK_CLEAR
|
||||
WXK_SHIFT
|
||||
WXK_CONTROL
|
||||
WXK_MENU
|
||||
WXK_PAUSE
|
||||
WXK_CAPITAL
|
||||
WXK_PRIOR
|
||||
WXK_NEXT
|
||||
WXK_END
|
||||
WXK_HOME
|
||||
WXK_LEFT
|
||||
WXK_UP
|
||||
WXK_RIGHT
|
||||
WXK_DOWN
|
||||
WXK_SELECT
|
||||
WXK_PRINT
|
||||
WXK_EXECUTE
|
||||
WXK_SNAPSHOT
|
||||
WXK_INSERT
|
||||
WXK_HELP
|
||||
WXK_NUMPAD0
|
||||
WXK_NUMPAD1
|
||||
WXK_NUMPAD2
|
||||
WXK_NUMPAD3
|
||||
WXK_NUMPAD4
|
||||
WXK_NUMPAD5
|
||||
WXK_NUMPAD6
|
||||
WXK_NUMPAD7
|
||||
WXK_NUMPAD8
|
||||
WXK_NUMPAD9
|
||||
WXK_MULTIPLY
|
||||
WXK_ADD
|
||||
WXK_SEPARATOR
|
||||
WXK_SUBTRACT
|
||||
WXK_DECIMAL
|
||||
WXK_DIVIDE
|
||||
WXK_F1
|
||||
WXK_F2
|
||||
WXK_F3
|
||||
WXK_F4
|
||||
WXK_F5
|
||||
WXK_F6
|
||||
WXK_F7
|
||||
WXK_F8
|
||||
WXK_F9
|
||||
WXK_F10
|
||||
WXK_F11
|
||||
WXK_F12
|
||||
WXK_F13
|
||||
WXK_F14
|
||||
WXK_F15
|
||||
WXK_F16
|
||||
WXK_F17
|
||||
WXK_F18
|
||||
WXK_F19
|
||||
WXK_F20
|
||||
WXK_F21
|
||||
WXK_F22
|
||||
WXK_F23
|
||||
WXK_F24
|
||||
WXK_NUMLOCK
|
||||
WXK_SCROLL
|
||||
\end{verbatim}
|
||||
Virtual keycode. See \helpref{Keycodes}{keycodes} for a list of identifiers.
|
||||
|
||||
\membersection{wxKeyEvent::m\_metaDown}
|
||||
|
||||
@@ -174,7 +97,7 @@ Returns the Y position of the event.
|
||||
|
||||
Returns the virtual key code. ASCII events return normal ASCII values,
|
||||
while non-ASCII events return values such as {\bf WXK\_LEFT} for the
|
||||
left cursor key. See {\tt wx\_defs.h} for a full list of the virtual key codes.
|
||||
left cursor key. See \helpref{Keycodes}{keycodes} for a full list of the virtual key codes.
|
||||
|
||||
\membersection{wxKeyEvent::MetaDown}
|
||||
|
||||
|
133
docs/latex/wx/layalgor.tex
Normal file
133
docs/latex/wx/layalgor.tex
Normal file
@@ -0,0 +1,133 @@
|
||||
\section{\class{wxLayoutAlgorithm}}\label{wxlayoutalgorithm}
|
||||
|
||||
wxLayoutAlgorithm implements layout of subwindows in MDI or SDI frames.
|
||||
It sends a wxCalculateLayoutEvent event
|
||||
to children of the frame, asking them for information about
|
||||
their size. For MDI parent frames, the algorithm allocates
|
||||
the remaining space to the MDI client window (which contains the MDI child frames).
|
||||
For SDI (normal) frames, a 'main' window is specified as taking up the
|
||||
remaining space.
|
||||
|
||||
Because the event system is used, this technique can be applied to any windows,
|
||||
which are not necessarily 'aware' of the layout classes (no virtual functions
|
||||
in wxWindow refer to wxLayoutAlgorithm or its events). However, you
|
||||
may wish to use \helpref{wxSashLayoutWindow}{wxsashlayoutwindow} for your subwindows
|
||||
since this class provides handlers for the required events, and accessors
|
||||
to specify the desired size of the window. The sash behaviour in the base class
|
||||
can be used, optionally, to make the windows user-resizable.
|
||||
|
||||
wxLayoutAlgorithm is typically used in IDE (integrated development environment) applications,
|
||||
where there are several resizable windows in addition to the MDI client window, or
|
||||
other primary editing window. Resizable windows might include toolbars, a project
|
||||
window, and a window for displaying error and warning messages.
|
||||
|
||||
When a window receives an OnCalculateLayout event, it should call SetRect in
|
||||
the given event object, to be the old supplied rectangle minus whatever space the
|
||||
window takes up. It should also set its own size accordingly.
|
||||
wxSashLayoutWindow::OnCalculateLayout generates an OnQueryLayoutInfo event
|
||||
which it sends to itself to determine the orientation, alignment and size of the window,
|
||||
which it gets from internal member variables set by the application.
|
||||
|
||||
The algorithm works by starting off with a rectangle equal to the whole frame client area.
|
||||
It iterates through the frame children, generating OnCalculateLayout events which subtract
|
||||
the window size and return the remaining rectangle for the next window to process. It
|
||||
is assumed (by wxSashLayoutWindow::OnCalculateLayout) that a window stretches the full dimension
|
||||
of the frame client, according to the orientation it specifies. For example, a horizontal window
|
||||
will stretch the full width of the remaining portion of the frame client area.
|
||||
In the other orientation, the window will be fixed to whatever size was specified by
|
||||
OnQueryLayoutInfo. An alignment setting will make the window 'stick' to the left, top, right or
|
||||
bottom of the remaining client area. This scheme implies that order of window creation is important.
|
||||
Say you wish to have an extra toolbar at the top of the frame, a project window to the left of
|
||||
the MDI client window, and an output window above the status bar. You should therefore create
|
||||
the windows in this order: toolbar, output window, project window. This ensures that the toolbar and
|
||||
output window take up space at the top and bottom, and then the remaining height inbetween is used for
|
||||
the project window.
|
||||
|
||||
wxLayoutAlgorithm is quite independent of the way in which
|
||||
OnCalculateLayout chooses to interpret a window's size and alignment. Therefore you
|
||||
could implement a different window class with a new OnCalculateLayout event handler,
|
||||
that has a more sophisticated way of laying out the windows. It might allow
|
||||
specification of whether stretching occurs in the specified orientation, for example,
|
||||
rather than always assuming stretching. (This could, and probably should, be added to the existing
|
||||
implementation).
|
||||
|
||||
{\it Note:} wxLayoutAlgorithm has nothing to do with wxLayoutConstraints. It is an alternative
|
||||
way of specifying layouts for which the normal constraint system is unsuitable.
|
||||
|
||||
\wxheading{Derived from}
|
||||
|
||||
\helpref{wxObject}{wxobject}
|
||||
|
||||
\wxheading{Event handling}
|
||||
|
||||
The algorithm object does not respond to events, but itself generates the
|
||||
following events in order to calculate window sizes.
|
||||
|
||||
\twocolwidtha{7cm}%
|
||||
\begin{twocollist}\itemsep=0pt
|
||||
\twocolitem{{\bf EVT\_QUERY\_LAYOUT\_INFO(func)}}{Process a wxEVT\_QUERY\_LAYOUT\_INFO event,
|
||||
to get size, orientation and alignment from a window. See \helpref{wxQueryLayoutInfoEvent}{wxquerylayoutinfoevent}.}
|
||||
\twocolitem{{\bf EVT\_CALCULATE\_LAYOUT(func)}}{Process a wxEVT\_CALCULATE\_LAYOUT event,
|
||||
which asks the window to take a 'bite' out of a rectangle provided by the algorithm.
|
||||
See \helpref{wxCalculateLayoutEvent}{wxcalculatelayoutevent}.}
|
||||
\end{twocollist}
|
||||
|
||||
\wxheading{Data types}
|
||||
|
||||
{\small
|
||||
\begin{verbatim}
|
||||
enum wxLayoutOrientation {
|
||||
wxLAYOUT_HORIZONTAL,
|
||||
wxLAYOUT_VERTICAL
|
||||
};
|
||||
|
||||
enum wxLayoutAlignment {
|
||||
wxLAYOUT_NONE,
|
||||
wxLAYOUT_TOP,
|
||||
wxLAYOUT_LEFT,
|
||||
wxLAYOUT_RIGHT,
|
||||
wxLAYOUT_BOTTOM,
|
||||
};
|
||||
\end{verbatim}
|
||||
}
|
||||
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{wxSashEvent}{wxsashevent}, \helpref{wxSashLayoutWindow}{wxsashlayoutwindow}, \helpref{Event handling overview}{eventhandlingoverview}
|
||||
|
||||
\helpref{wxCalculateLayoutEvent}{wxcalculatelayoutevent},\rtfsp
|
||||
\helpref{wxQueryLayoutInfoEvent}{wxquerylayoutinfoevent},\rtfsp
|
||||
\helpref{wxSashLayoutWindow}{wxsashlayoutwindow},\rtfsp
|
||||
\helpref{wxSashWindow}{wxsashwindow}
|
||||
|
||||
\latexignore{\rtfignore{\wxheading{Members}}}
|
||||
|
||||
\membersection{wxLayoutAlgorithm::wxLayoutAlgorithm}
|
||||
|
||||
\func{}{wxLayoutAlgorithm}{\void}
|
||||
|
||||
Default constructor.
|
||||
|
||||
\membersection{wxLayoutAlgorithm::\destruct{wxLayoutAlgorithm}}
|
||||
|
||||
\func{}{\destruct{wxLayoutAlgorithm}}{\void}
|
||||
|
||||
Destructor.
|
||||
|
||||
\membersection{wxLayoutAlgorithm::LayoutMDIFrame}\label{wxlayoutalgorithmlayoutmdiframe}
|
||||
|
||||
\constfunc{bool}{LayoutMDIFrame}{\param{wxMDIParentFrame* }{frame}, \param{wxRect*}{ rect = NULL}}
|
||||
|
||||
Lays out the children of an MDI parent frame. If {\it rect} is non-NULL, the
|
||||
given rectangle will be used as a starting point instead of the frame's client area.
|
||||
|
||||
The MDI client window is set to occupy the remaining space.
|
||||
|
||||
\membersection{wxLayoutAlgorithm::LayoutFrame}\label{wxlayoutalgorithmlayoutframe}
|
||||
|
||||
\constfunc{bool}{LayoutFrame}{\param{wxFrame* }{frame}, \param{wxWindow*}{ mainWindow}}
|
||||
|
||||
Lays out the children of a normal frame.
|
||||
|
||||
{\it mainWindow} is set to occupy the remaining space.
|
||||
|
186
docs/latex/wx/log.tex
Normal file
186
docs/latex/wx/log.tex
Normal file
@@ -0,0 +1,186 @@
|
||||
\section{\class{wxLog}}\label{wxlog}
|
||||
|
||||
wxLog class defines the interface for the {\it log targets} used by wxWindows
|
||||
logging functions as explained in the \helpref{wxLog overview}{wxlogoverview}.
|
||||
The only situations when you need to directly use this class is when you want
|
||||
to derive your own log target because the existing ones don't satisfy your
|
||||
needs. Another case is if you wish to customize the behaviour of the standard
|
||||
logging classes (all of which respect the wxLog settings): for example, set
|
||||
which trace messages are logged and which are not or change (or even remove
|
||||
completely) the timestamp on the messages.
|
||||
|
||||
Otherwise, it is completely hidden behind the {\it wxLogXXX()} functions and
|
||||
you may not even know about its existence.
|
||||
|
||||
See \helpref{log overview}{wxlogoverview} for the descriptions of wxWindows
|
||||
logging facilities.
|
||||
|
||||
\wxheading{Derived from}
|
||||
|
||||
No base class
|
||||
|
||||
\latexignore{\rtfignore{\wxheading{Function groups}}}
|
||||
|
||||
\membersection{Static functions}
|
||||
|
||||
The functions in this section work with and manipulate the active log target.
|
||||
The {\it OnLog()} is called by the {\it wxLogXXX()} functions and invokes the
|
||||
{\it DoLog()} of the active log target if any. Get/Set methods are used to
|
||||
install/query the current active target and, finally, {\it
|
||||
DontCreateOnDemand()} disables the automatic creation of a standard log target
|
||||
if none actually exists. It is only useful when the application is terminating
|
||||
and shouldn't be used in other situations because it may easily lead to a loss
|
||||
of messages.
|
||||
|
||||
\helpref{OnLog}{wxlogonlog}\\
|
||||
\helpref{GetActiveTarget}{wxloggetactivetarget}\\
|
||||
\helpref{SetActiveTarget}{wxlogsetactivetarget}\\
|
||||
\helpref{DontCreateOnDemand}{wxlogdontcreateondemand}
|
||||
|
||||
\membersection{Message buffering}
|
||||
|
||||
Some of wxLog implementations, most notably the standard
|
||||
wxLogGui class, buffer the messages (for example, to avoid
|
||||
showing the user a zillion of modal message boxes one after another - which
|
||||
would be really annoying). {\it Flush()} shows them all and clears the buffer
|
||||
contents. Although this function doesn't do anything if the buffer is already
|
||||
empty, {\it HasPendingMessages()} is also provided which allows to explicitly
|
||||
verify it.
|
||||
|
||||
\helpref{Flush}{wxlogflush}\\
|
||||
\helpref{HasPendingMessages}{haspendingmessages}
|
||||
|
||||
\membersection{Customization}\label{wxlogcustomization}
|
||||
|
||||
The functions below allow some limited customization of wxLog behaviour
|
||||
without writing a new log target class (which, aside of being a matter of
|
||||
several minutes, allows you to do anything you want).
|
||||
|
||||
The verbose messages are the trace messages which are not disabled in the
|
||||
release mode and are generated by {\it wxLogVerbose()}. They are not normally
|
||||
shown to the user because they present little interest, but may be activated,
|
||||
for example, in order to help the user find some program problem.
|
||||
|
||||
As for the (real) trace messages, they come in different kinds:
|
||||
|
||||
\begin{itemize}\itemsep=0pt
|
||||
\item{wxTraceMemAlloc} for the messages about creating and deleting objects
|
||||
\item{wxTraceMessages} for tracing the windowing system messages/events
|
||||
\item{wxTraceResAlloc} for allocating and releasing the system ressources
|
||||
\item{wxTraceRefCount} for reference counting related messages
|
||||
\item{wxTraceOleCalls} for the OLE (or COM) method invocations (wxMSW only)
|
||||
\item{other} the remaining bits are free for user-defined trace levels
|
||||
\end{itemize}
|
||||
|
||||
The trace mask is a bit mask which tells which (if any) of these trace
|
||||
messages are going to be actually logged. For the trace message to appear
|
||||
somewhere, all the bits in the mask used in the call to {\it wxLogTrace()}
|
||||
function must be set in the current trace mask. For example,
|
||||
\begin{verbatim}
|
||||
wxLogTrace(wxTraceRefCount | wxTraceOle, "Active object ref count: %d", nRef);
|
||||
\end{verbatim}
|
||||
will do something only if the current trace mask contains both wxTraceRefCount
|
||||
and wxTraceOle.
|
||||
|
||||
Finally, the {\it wxLog::DoLog()} function automatically prepends a time stamp
|
||||
to all the messages. The format of the time stamp may be changed: it can be
|
||||
any string with \% specificators fully described in the documentation of the
|
||||
standard {\it strftime()} function. For example, the default format is
|
||||
"[\%d/\%b/\%y \%H:\%M:\%S] " which gives something like "[17/Sep/98 22:10:16] "
|
||||
(without quotes) for the current date. Setting an empty string as the time
|
||||
format disables timestamping of the messages completely.
|
||||
|
||||
\helpref{SetVerbose}{wxlogsetverbose}\\
|
||||
\helpref{GetVerbose}{wxloggetverbose}\\
|
||||
\helpref{SetTimeStampFormat}{wxlogsettimestampformat}\\
|
||||
\helpref{GetTimeStampFormat}{wxloggettimestampformat}\\
|
||||
\helpref{SetTraceMask}{wxlogsettracemask}\\
|
||||
\helpref{GetTraceMask}{wxloggettracemask}
|
||||
|
||||
%%%%% MEMBERS HERE %%%%%
|
||||
\helponly{\insertatlevel{2}{
|
||||
|
||||
\wxheading{Members}
|
||||
|
||||
}}
|
||||
|
||||
\membersection{wxLog::OnLog}\label{wxlogonlog}
|
||||
|
||||
\func{static void}{OnLog}{\param{wxLogLevel }{ level}, \param{const char * }{ message}}
|
||||
|
||||
Forwards the message at specified level to the {\it DoLog()} function of the
|
||||
active log target if there is any, does nothing otherwise.
|
||||
|
||||
\membersection{wxLog::GetActiveTarget}\label{wxloggetactivetarget}
|
||||
|
||||
\func{static wxLog *}{GetActiveTarget}{\void}
|
||||
|
||||
Returns the pointer to the active log target (may be NULL).
|
||||
|
||||
\membersection{wxLog::SetActiveTarget}\label{wxlogsetactivetarget}
|
||||
|
||||
\func{static wxLog *}{SetActiveTarget}{\param{wxLog * }{ logtarget}}
|
||||
|
||||
Sets the specified log target as the active one. Returns the pointer to the
|
||||
previous active log target (may be NULL).
|
||||
|
||||
\membersection{wxLog::DontCreateOnDemand}\label{wxlogdontcreateondemand}
|
||||
|
||||
\func{static void}{DontCreateOnDemand}{\void}
|
||||
|
||||
Instructs wxLog to not create new log targets on the fly if there is none
|
||||
currently. (Almost) for internal use only.
|
||||
|
||||
\membersection{wxLog::Flush}\label{wxlogflush}
|
||||
|
||||
\func{virtual void}{Flush}{\void}
|
||||
|
||||
Shows all the messages currently in buffer and clears it. If the buffer
|
||||
is already empty, nothing happens.
|
||||
|
||||
\membersection{wxLog::HasPendingMessages}\label{haspendingmessages}
|
||||
|
||||
\constfunc{bool}{HasPendingMessages}{\void}
|
||||
|
||||
Returns true if there are any messages in the buffer (not yet shown to the
|
||||
user). (Almost) for internal use only.
|
||||
|
||||
\membersection{wxLog::SetVerbose}\label{wxlogsetverbose}
|
||||
|
||||
\func{void}{SetVerbose}{\param{bool }{ verbose = TRUE}}
|
||||
|
||||
Activates or desactivates verbose mode in which the verbose messages are
|
||||
logged as the normal ones instead of being silently dropped.
|
||||
|
||||
\membersection{wxLog::GetVerbose}\label{wxloggetverbose}
|
||||
|
||||
\constfunc{bool}{GetVerbose}{\void}
|
||||
|
||||
Returns whether the verbose mode is currently active.
|
||||
|
||||
\membersection{wxLog::SetTimeStampFormat}\label{wxlogsettimestampformat}
|
||||
|
||||
\func{void}{SetTimeStampFormat}{\param{const char * }{ format}}
|
||||
|
||||
Sets the timestamp format prepended by the default log targets to all
|
||||
messages. The string may contain any normal characters as well as \%
|
||||
prefixed format specificators, see {\it strftime()} manual for details.
|
||||
Passing an empty string to this function disables message timestamping.
|
||||
|
||||
\membersection{wxLog::GetTimeStampFormat}\label{wxloggettimestampformat}
|
||||
|
||||
\constfunc{const char *}{GetTimeStampFormat}{\void}
|
||||
|
||||
Returns the current timestamp format string.
|
||||
|
||||
\membersection{wxLog::SetTraceMask}\label{wxlogsettracemask}
|
||||
|
||||
\func{static void}{SetTraceMask}{\param{wxTraceMask }{ mask}}
|
||||
|
||||
Sets the trace mask, see \helpref{Customization}{wxlogcustomization}
|
||||
section for details.
|
||||
|
||||
\membersection{wxLog::GetTraceMask}\label{wxloggettracemask}
|
||||
|
||||
Returns the current trace mask, see \helpref{Customization}{wxlogcustomization} section
|
||||
for details.
|
@@ -30,7 +30,7 @@
|
||||
%\winhelponly{\\$$\image{1cm;0cm}{wxwin.wmf}$$}
|
||||
}}
|
||||
\winhelpignore{\author{Julian Smart}
|
||||
\date{July 31st 1998}
|
||||
\date{November 4th 1998}
|
||||
}
|
||||
\makeindex
|
||||
\begin{document}
|
||||
|
@@ -525,6 +525,18 @@ Use only after the menubar has been associated with a frame.
|
||||
|
||||
\helpref{wxMenuBar::SetLabelTop}{wxmenubarsetlabeltop}
|
||||
|
||||
\membersection{wxMenuBar::GetMenu}\label{wxmenubargetmenu}
|
||||
|
||||
\constfunc{wxMenu*}{GetMenu}{\param{int}{ menuIndex}}
|
||||
|
||||
Returns the menu at {\it menuIndex} (zero-based).
|
||||
|
||||
\membersection{wxMenuBar::GetMenuCount}\label{wxmenubargetmenucount}
|
||||
|
||||
\constfunc{int}{GetMenuCount}{\void}
|
||||
|
||||
Returns the number of menus in this menubar.
|
||||
|
||||
\membersection{wxMenuBar::IsChecked}\label{wxmenubarischecked}
|
||||
|
||||
\constfunc{bool}{IsChecked}{\param{int}{ id}}
|
||||
|
@@ -58,7 +58,7 @@ need for an application to call it.
|
||||
|
||||
\membersection{wxModule::OnExit}\label{wxmoduleonexit}
|
||||
|
||||
\func{virtual bool}{OnExit}{\void}
|
||||
\func{virtual void}{OnExit}{\void}
|
||||
|
||||
Provide this function with appropriate cleanup for your module.
|
||||
|
||||
|
259
docs/latex/wx/notebook.tex
Normal file
259
docs/latex/wx/notebook.tex
Normal file
@@ -0,0 +1,259 @@
|
||||
\section{\class{wxNotebook}}\label{wxnotebook}
|
||||
|
||||
This class represents a notebook control, which manages multiple windows with associated tabs.
|
||||
|
||||
To use the class, create a wxNotebook object and call \helpref{AddPage}{wxnotebookaddpage} or \helpref{InsertPage}{wxnotebookinsertpage},
|
||||
passing a window to be used as the page. Do not explicitly delete the window for a page that is currently
|
||||
managed by wxNotebook.
|
||||
|
||||
{\bf wxNotebookPage} is a typedef for wxWindow.
|
||||
|
||||
\wxheading{Derived from}
|
||||
|
||||
\helpref{wxControl}{wxcontrol}\\
|
||||
\helpref{wxWindow}{wxwindow}\\
|
||||
\helpref{wxEvtHandler}{wxevthandler}\\
|
||||
\helpref{wxObject}{wxobject}
|
||||
|
||||
\wxheading{Event handling}
|
||||
|
||||
To process input from a notebook control, use the following event handler macros to direct input to member
|
||||
functions that take a \helpref{wxNotebookEvent}{wxnotebookevent} argument.
|
||||
|
||||
\twocolwidtha{7cm}
|
||||
\begin{twocollist}\itemsep=0pt
|
||||
\twocolitem{{\bf EVT\_NOTEBOOK\_PAGE\_CHANGED(id, func)}}{The page selection was changed. Processes a
|
||||
wxEVT\_COMMAND\_NOTEBOOK\_PAGE\_CHANGED event.}
|
||||
\twocolitem{{\bf EVT\_NOTEBOOK\_PAGE\_CHANGING(id, func)}}{The page selection is about to be changed.
|
||||
Processes a wxEVT\_COMMAND\_NOTEBOOK\_PAGE\_CHANGING event.}
|
||||
\end{twocollist}%
|
||||
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{wxNotebookEvent}{wxnotebookevent}, \helpref{wxImageList}{wximagelist},\rtfsp
|
||||
\helpref{wxTabCtrl}{wxtabctrl}
|
||||
|
||||
\latexignore{\rtfignore{\wxheading{Members}}}
|
||||
|
||||
\membersection{wxNotebook::wxNotebook}\label{wxnotebookconstr}
|
||||
|
||||
\func{}{wxNotebook}{\void}
|
||||
|
||||
Default constructor.
|
||||
|
||||
\func{}{wxNotebook}{\param{wxWindow*}{ parent}, \param{wxWindowID }{id}, \param{const wxPoint\&}{ pos = wxDefaultPosition},
|
||||
\param{const wxSize\&}{ size}, \param{long}{ style = 0}, \param{const wxString\& }{name = "notebook"}}
|
||||
|
||||
Constructs a notebook control.
|
||||
|
||||
\wxheading{Parameters}
|
||||
|
||||
\docparam{parent}{The parent window. Must be non-NULL.}
|
||||
|
||||
\docparam{id}{The window identifier.}
|
||||
|
||||
\docparam{pos}{The window position.}
|
||||
|
||||
\docparam{size}{The window size.}
|
||||
|
||||
\docparam{style}{The window style. Its value is a bit list of zero or more of {\bf wxTC\_MULTILINE},
|
||||
{\bf wxTC\_RIGHTJUSTIFY}, {\bf wxTC\_FIXEDWIDTH} and {\bf wxTC\_OWNERDRAW}.}
|
||||
|
||||
\membersection{wxNotebook::\destruct{wxNotebook}}
|
||||
|
||||
\func{}{\destruct{wxNotebook}}{\void}
|
||||
|
||||
Destroys the wxNotebook object.
|
||||
|
||||
\membersection{wxNotebook::AddPage}\label{wxnotebookaddpage}
|
||||
|
||||
\func{bool}{AddPage}{\param{wxNotebookPage*}{ page},
|
||||
\param{const wxString\&}{ text},
|
||||
\param{bool}{ select = FALSE},
|
||||
\param{int}{ imageId = -1}}
|
||||
|
||||
Adds a new page.
|
||||
|
||||
\wxheading{Parameters}
|
||||
|
||||
\docparam{page}{Specifies the new page.}
|
||||
|
||||
\docparam{text}{Specifies the text for the new page.}
|
||||
|
||||
\docparam{select}{Specifies whether the page should be selected.}
|
||||
|
||||
\docparam{imageId}{Specifies the optional image index for the new page.}
|
||||
|
||||
\wxheading{Return value}
|
||||
|
||||
TRUE if successful, FALSE otherwise.
|
||||
|
||||
\wxheading{Remarks}
|
||||
|
||||
Do not delete the page, it will be deleted by the notebook.
|
||||
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{wxNotebook::InsertPage}{wxnotebookinsertpage}
|
||||
|
||||
\membersection{wxNotebook::AdvanceSelection}\label{wxnotebookadvanceselection}
|
||||
|
||||
\func{void}{AdvanceSelection}{\param{bool}{ forward = TRUE}}
|
||||
|
||||
Cycles through the tabs.
|
||||
|
||||
\membersection{wxNotebook::Create}\label{wxnotebookcreate}
|
||||
|
||||
\func{bool}{Create}{\param{wxWindow*}{ parent}, \param{wxWindowID }{id}, \param{const wxPoint\&}{ pos = wxDefaultPosition},
|
||||
\param{const wxSize\&}{ size}, \param{long}{ style = 0}, \param{const wxString\& }{name = "notebook"}}
|
||||
|
||||
Creates a notebook control. See \helpref{wxNotebook::wxNotebook}{wxnotebookconstr} for a description
|
||||
of the parameters.
|
||||
|
||||
\membersection{wxNotebook::DeleteAllPages}\label{wxnotebookdeleteallpages}
|
||||
|
||||
\func{bool}{DeleteAllPages}{\void}
|
||||
|
||||
Deletes all pages.
|
||||
|
||||
\membersection{wxNotebook::DeletePage}\label{wxnotebookdeletepage}
|
||||
|
||||
\func{bool}{DeletePage}{\param{int}{ page}}
|
||||
|
||||
Deletes the specified page.
|
||||
|
||||
\membersection{wxNotebook::GetImageList}\label{wxnotebookgetimagelist}
|
||||
|
||||
\constfunc{wxImageList*}{GetImageList}{\void}
|
||||
|
||||
Returns the associated image list.
|
||||
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{wxImageList}{wximagelist}, \helpref{wxNotebook::SetImageList}{wxnotebooksetimagelist}
|
||||
|
||||
\membersection{wxNotebook::GetPage}\label{wxnotebookgetpage}
|
||||
|
||||
\func{wxNotebookPage*}{GetPage}{\param{int}{ page}}
|
||||
|
||||
Returns the window at the given page position.
|
||||
|
||||
\membersection{wxNotebook::GetPageCount}\label{wxnotebookgetpagecount}
|
||||
|
||||
\constfunc{int}{GetPageCount}{\void}
|
||||
|
||||
Returns the number of pages in the notebook control.
|
||||
|
||||
\membersection{wxNotebook::GetPageImage}\label{wxnotebookgetpageimage}
|
||||
|
||||
\constfunc{int}{GetPageImage}{\void}
|
||||
|
||||
Returns the image index for the given page.
|
||||
|
||||
\membersection{wxNotebook::GetPageText}\label{wxnotebookgetpagetext}
|
||||
|
||||
\constfunc{wxString}{GetPageText}{\void}
|
||||
|
||||
Returns the string for the given page.
|
||||
|
||||
\membersection{wxNotebook::GetRowCount}\label{wxnotebookgetrowcount}
|
||||
|
||||
\constfunc{int}{GetRowCount}{\void}
|
||||
|
||||
Returns the number of rows in the notebook control.
|
||||
|
||||
\membersection{wxNotebook::GetSelection}\label{wxnotebookgetselection}
|
||||
|
||||
\constfunc{int}{GetSelection}{\void}
|
||||
|
||||
Returns the currently selected page, or -1 if none was selected.
|
||||
|
||||
\membersection{wxNotebook::InsertPage}\label{wxnotebookinsertpage}
|
||||
|
||||
\func{bool}{InsertPage}{\param{int}{ index}, \param{wxNotebookPage*}{ page},
|
||||
\param{const wxString\&}{ text},
|
||||
\param{bool}{ select = FALSE},
|
||||
\param{int}{ imageId = -1}}
|
||||
|
||||
Inserts a new page at the specified position.
|
||||
|
||||
\wxheading{Parameters}
|
||||
|
||||
\docparam{index}{Specifies the position for the new page.}
|
||||
|
||||
\docparam{page}{Specifies the new page.}
|
||||
|
||||
\docparam{text}{Specifies the text for the new page.}
|
||||
|
||||
\docparam{select}{Specifies whether the page should be selected.}
|
||||
|
||||
\docparam{imageId}{Specifies the optional image index for the new page.}
|
||||
|
||||
\wxheading{Return value}
|
||||
|
||||
TRUE if successful, FALSE otherwise.
|
||||
|
||||
\wxheading{Remarks}
|
||||
|
||||
Do not delete the page, it will be deleted by the notebook.
|
||||
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{wxNotebook::AddPage}{wxnotebookaddpage}
|
||||
|
||||
\membersection{wxNotebook::OnSelChange}\label{wxnotebookonselchange}
|
||||
|
||||
\func{void}{OnSelChange}{\param{wxNotebookEvent\&}{ event}}
|
||||
|
||||
An event handler function, called when the page selection is changed.
|
||||
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{wxNotebookEvent}{wxnotebookevent}
|
||||
|
||||
\membersection{wxNotebook::SetImageList}\label{wxnotebooksetimagelist}
|
||||
|
||||
\func{void}{SetImageList}{\param{wxImageList*}{ imageList}}
|
||||
|
||||
Sets the image list for the page control.
|
||||
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{wxImageList}{wximagelist}
|
||||
|
||||
\membersection{wxNotebook::SetPadding}\label{wxnotebooksetpadding}
|
||||
|
||||
\func{void}{SetPadding}{\param{const wxSize\&}{ padding}}
|
||||
|
||||
Sets the amount of space around each page's icon and label, in pixels.
|
||||
|
||||
\membersection{wxNotebook::SetPageSize}\label{wxnotebooksetpagesize}
|
||||
|
||||
\func{void}{SetPageSize}{\param{const wxSize\&}{ size}}
|
||||
|
||||
Sets the width and height of the pages.
|
||||
|
||||
\membersection{wxNotebook::SetPageImage}\label{wxnotebooksetpageimage}
|
||||
|
||||
\func{bool}{SetPageImage}{\param{int}{ page}, \param{int }{image}}
|
||||
|
||||
Sets the image index for the given page. {\it image} is an index into
|
||||
the image list which was set with \helpref{wxNotebook::SetImageList}{wxnotebooksetimagelist}.
|
||||
|
||||
\membersection{wxNotebook::SetPageText}\label{wxnotebooksetpagetext}
|
||||
|
||||
\func{bool}{SetPageText}{\param{int}{ page}, \param{const wxString\& }{text}}
|
||||
|
||||
Sets the text for the given page.
|
||||
|
||||
\membersection{wxNotebook::SetSelection}\label{wxnotebooksetselection}
|
||||
|
||||
\func{int}{SetSelection}{\param{int}{ page}}
|
||||
|
||||
Sets the selection for the given page, returning the previous selection.
|
||||
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{wxNotebook::GetSelection}{wxnotebookgetselection}
|
||||
|
||||
|
66
docs/latex/wx/noteevt.tex
Normal file
66
docs/latex/wx/noteevt.tex
Normal file
@@ -0,0 +1,66 @@
|
||||
\section{\class{wxNotebookEvent}}\label{wxnotebookevent}
|
||||
|
||||
This class represents the events generated by a notebook control.
|
||||
|
||||
\wxheading{Derived from}
|
||||
|
||||
\helpref{wxCommandEvent}{wxcommandevent}\\
|
||||
\helpref{wxEvent}{wxevent}\\
|
||||
\helpref{wxEvtHandler}{wxevthandler}\\
|
||||
\helpref{wxObject}{wxobject}
|
||||
|
||||
\wxheading{Event table macros}
|
||||
|
||||
To process a notebook event, use these event handler macros to direct input to member
|
||||
functions that take a wxNotebookEvent argument.
|
||||
|
||||
\twocolwidtha{7cm}
|
||||
\begin{twocollist}\itemsep=0pt
|
||||
\twocolitem{{\bf EVT\_NOTEBOOK_PAGE_CHANGED(id, func)}}{The page selection was changed. Processes a
|
||||
wxEVT\_COMMAND\_NOTEBOOK\_PAGE\_CHANGED event.}
|
||||
\twocolitem{{\bf EVT\_NOTEBOOK_PAGE_CHANGING(id, func)}}{The page selection is about to be changed.
|
||||
Processes a wxEVT\_COMMAND\_NOTEBOOK\_PAGE\_CHANGING event.}
|
||||
\end{twocollist}%
|
||||
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{wxNotebook}{wxnotebook}, \helpref{wxTabCtrl}{wxtabctrl}, \helpref{wxTabEvent}{wxtabevent}
|
||||
|
||||
\latexignore{\rtfignore{\wxheading{Members}}}
|
||||
|
||||
\membersection{wxNotebookEvent::wxNotebookEvent}\label{wxnotebookeventconstr}
|
||||
|
||||
\func{}{wxNotebookEvent}{\param{wxEventType}{ eventType = wxEVT\_NULL},
|
||||
\param{int}{ id = 0}, \param{int}{ sel = -1}, \param{int}{ oldSel = -1}}
|
||||
|
||||
Constructor.
|
||||
|
||||
\membersection{wxNotebookEvent::GetOldSelection}\label{wxnotebookeventgetoldselection}
|
||||
|
||||
\constfunc{int}{GetOldSelection}{\void}
|
||||
|
||||
Returns the page that was selected before the change, -1 if none was selected.
|
||||
|
||||
\membersection{wxNotebookEvent::GetSelection}\label{wxnotebookeventgetselection}
|
||||
|
||||
\constfunc{int}{GetSelection}{\void}
|
||||
|
||||
Returns the currently selected page, or -1 if none was selected.
|
||||
|
||||
\membersection{wxNotebookEvent::SetOldSelection}\label{wxnotebookeventsetoldselection}
|
||||
|
||||
\func{void}{SetOldSelection}{\param{int}{ page}}
|
||||
|
||||
Sets the id of the page selected before the change.
|
||||
|
||||
\membersection{wxNotebookEvent::SetSelection}\label{wxnotebookeventsetselection}
|
||||
|
||||
\func{void}{SetSelection}{\param{int}{ page}}
|
||||
|
||||
Sets the selection member variable.
|
||||
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{wxNotebookEvent::GetSelection}{wxnotebookeventgetselection}
|
||||
|
||||
|
@@ -15,7 +15,8 @@ isn't overriden.
|
||||
\func{}{wxProcess}{\param{wxEvtHandler *}{ parent = NULL}, \param{int}{ id = -1}}
|
||||
|
||||
Constructs a process object. {\it id} is only used in the case you want to
|
||||
use wxWindows events.
|
||||
use wxWindows events. It identifies this object, or another window that will
|
||||
receive the event.
|
||||
|
||||
\wxheading{Parameters}
|
||||
|
||||
@@ -37,3 +38,4 @@ It is called when the process with the pid {\it pid} finishes.
|
||||
It raises a wxWindows event when it isn't overriden.
|
||||
|
||||
\docparam{pid}{The pid of the process which ends.}
|
||||
|
||||
|
52
docs/latex/wx/procevt.tex
Normal file
52
docs/latex/wx/procevt.tex
Normal file
@@ -0,0 +1,52 @@
|
||||
\section{\class{wxProcessEvent}}\label{wxprocessevent}
|
||||
|
||||
A process event is sent when a process is terminated.
|
||||
|
||||
\wxheading{Derived from}
|
||||
|
||||
\helpref{wxEvent}{wxevent}\\
|
||||
\helpref{wxObject}{wxobject}
|
||||
|
||||
\wxheading{Event table macros}
|
||||
|
||||
To process a wxProcessEvent, use these event handler macros to direct input to a member
|
||||
function that takes a wxProcessEvent argument.
|
||||
|
||||
\twocolwidtha{7cm}
|
||||
\begin{twocollist}\itemsep=0pt
|
||||
\twocolitem{{\bf EVT\_END\_PROCESS(id, func)}}{Process a wxEVT\_END\_PROCESS event.
|
||||
{\it id} is the identifier of the process object (the id passed to the wxProcess constructor)
|
||||
or a window to receive the event.}
|
||||
\end{twocollist}%
|
||||
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{wxProcess}{wxprocess},\rtfsp
|
||||
\helpref{Event handling overview}{eventhandlingoverview}
|
||||
|
||||
\latexignore{\rtfignore{\wxheading{Members}}}
|
||||
|
||||
\membersection{wxProcessEvent::wxProcessEvent}
|
||||
|
||||
\func{}{wxProcessEvent}{\param{int }{id = 0}, \param{int }{pid = 0}}
|
||||
|
||||
Constructor. Takes a wxProcessObject or window id, and a process id.
|
||||
|
||||
\membersection{wxProcessEvent::m\_pid}
|
||||
|
||||
\member{int}{m\_pid}
|
||||
|
||||
Contains the process id.
|
||||
|
||||
\membersection{wxProcessEvent::GetPid}\label{wxprocesseventgetpid}
|
||||
|
||||
\constfunc{int}{GetPid}{\void}
|
||||
|
||||
Returns the process id.
|
||||
|
||||
\membersection{wxProcessEvent::SetPid}\label{wxprocesseventsetpid}
|
||||
|
||||
\func{void}{SetPid}{\param{int}{ pid}}
|
||||
|
||||
Sets the process id.
|
||||
|
118
docs/latex/wx/qylayevt.tex
Normal file
118
docs/latex/wx/qylayevt.tex
Normal file
@@ -0,0 +1,118 @@
|
||||
\section{\class{wxQueryLayoutInfoEvent}}\label{wxquerylayoutinfoevent}
|
||||
|
||||
This event is sent when \helpref{wxLayoutAlgorithm}{wxlayoutalgorithm} wishes to get
|
||||
the size, orientation and alignment of a window. More precisely, the event is sent
|
||||
by the OnCalculateLayout handler which is itself invoked by wxLayoutAlgorithm.
|
||||
|
||||
\wxheading{Derived from}
|
||||
|
||||
\helpref{wxEvent}{wxevent}\\
|
||||
\helpref{wxObject}{wxobject}
|
||||
|
||||
\wxheading{Event table macros}
|
||||
|
||||
\twocolwidtha{7cm}%
|
||||
\begin{twocollist}\itemsep=0pt
|
||||
\twocolitem{{\bf EVT\_QUERY\_LAYOUT\_INFO(func)}}{Process a wxEVT\_QUERY\_LAYOUT\_INFO event,
|
||||
to get size, orientation and alignment from a window.}
|
||||
\end{twocollist}
|
||||
|
||||
\wxheading{Data structures}
|
||||
|
||||
{\small
|
||||
\begin{verbatim}
|
||||
enum wxLayoutOrientation {
|
||||
wxLAYOUT_HORIZONTAL,
|
||||
wxLAYOUT_VERTICAL
|
||||
};
|
||||
|
||||
enum wxLayoutAlignment {
|
||||
wxLAYOUT_NONE,
|
||||
wxLAYOUT_TOP,
|
||||
wxLAYOUT_LEFT,
|
||||
wxLAYOUT_RIGHT,
|
||||
wxLAYOUT_BOTTOM,
|
||||
};
|
||||
\end{verbatim}
|
||||
}
|
||||
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{wxCalculateLayoutEvent}{wxcalculatelayoutevent},\rtfsp
|
||||
\helpref{wxSashLayoutWindow}{wxsashlayoutwindow},\rtfsp
|
||||
\helpref{wxLayoutAlgorithm}{wxlayoutalgorithm}.
|
||||
|
||||
\latexignore{\rtfignore{\wxheading{Members}}}
|
||||
|
||||
\membersection{wxQueryLayoutInfoEvent::wxQueryLayoutInfoEvent}
|
||||
|
||||
\func{}{wxQueryLayoutInfoEvent}{\param{wxWindowID }{id = 0}}
|
||||
|
||||
Constructor.
|
||||
|
||||
\membersection{wxQueryLayoutInfoEvent::GetAlignment}\label{wxquerylayoutinfoeventgetalignment}
|
||||
|
||||
\constfunc{void}{GetAlignment}{\void}
|
||||
|
||||
Specifies the alignment of the window (which side of the remaining parent client area
|
||||
the window sticks to). One of wxLAYOUT\_TOP, wxLAYOUT\_LEFT, wxLAYOUT\_RIGHT, wxLAYOUT\_BOTTOM.
|
||||
|
||||
\membersection{wxQueryLayoutInfoEvent::GetFlags}\label{wxquerylayoutinfoeventgetflags}
|
||||
|
||||
\constfunc{int}{GetFlags}{\void}
|
||||
|
||||
Returns the flags associated with this event. Not currently used.
|
||||
|
||||
\membersection{wxQueryLayoutInfoEvent::GetOrientation}\label{wxquerylayoutinfoeventgetorientation}
|
||||
|
||||
\constfunc{wxLayoutOrientation}{GetOrientation}{\void}
|
||||
|
||||
Returns the orientation that the event handler specified to the event object. May be one of wxLAYOUT\_HORIZONTAL,
|
||||
wxLAYOUT\_VERTICAL.
|
||||
|
||||
\membersection{wxQueryLayoutInfoEvent::GetRequestedLength}\label{wxquerylayoutinfoeventgetrequestedlength}
|
||||
|
||||
\constfunc{int}{GetRequestedLength}{\void}
|
||||
|
||||
Returns the requested length of the window in the direction of the window orientation. This information
|
||||
is not yet used.
|
||||
|
||||
\membersection{wxQueryLayoutInfoEvent::GetSize}\label{wxquerylayoutinfoeventgetsize}
|
||||
|
||||
\constfunc{wxSize}{GetSize}{\void}
|
||||
|
||||
Returns the size that the event handler specified to the event object as being the requested size of the window.
|
||||
|
||||
\membersection{wxQueryLayoutInfoEvent::SetAlignment}\label{wxquerylayoutinfoeventsetalignment}
|
||||
|
||||
\func{void}{SetAlignment}{\param{wxLayoutAlignment }{alignment}}
|
||||
|
||||
Call this to specify the alignment of the window (which side of the remaining parent client area
|
||||
the window sticks to). May be one of wxLAYOUT\_TOP, wxLAYOUT\_LEFT, wxLAYOUT\_RIGHT, wxLAYOUT\_BOTTOM.
|
||||
|
||||
\membersection{wxQueryLayoutInfoEvent::SetFlags}\label{wxquerylayoutinfoeventsetflags}
|
||||
|
||||
\func{void}{SetFlags}{\param{int }{flags}}
|
||||
|
||||
Sets the flags associated with this event. Not currently used.
|
||||
|
||||
\membersection{wxQueryLayoutInfoEvent::SetOrientation}\label{wxquerylayoutinfoeventsetorientation}
|
||||
|
||||
\func{void}{SetOrientation}{\param{wxLayoutOrientation }{orientation}}
|
||||
|
||||
Call this to specify the orientation of the window. May be one of wxLAYOUT\_HORIZONTAL,
|
||||
wxLAYOUT\_VERTICAL.
|
||||
|
||||
\membersection{wxQueryLayoutInfoEvent::SetRequestedLength}\label{wxquerylayoutinfoeventsetrequestedlength}
|
||||
|
||||
\func{void}{SetRequestedLength}{\param{int}{ length}}
|
||||
|
||||
Sets the requested length of the window in the direction of the window orientation. This information
|
||||
is not yet used.
|
||||
|
||||
\membersection{wxQueryLayoutInfoEvent::SetSize}\label{wxquerylayoutinfoeventsetsize}
|
||||
|
||||
\func{void}{SetSize}{\param{const wxSize\& }{size}}
|
||||
|
||||
Call this to let the calling code know what the size of the window is.
|
||||
|
@@ -18,7 +18,7 @@
|
||||
\parindent=0pt
|
||||
\title{Reference Manual for wxWindows 2.0: a portable C++ GUI toolkit}
|
||||
\author{Julian Smart}
|
||||
\date{July 31st 1998}
|
||||
\date{November 4th 1998}
|
||||
|
||||
\makeindex
|
||||
\begin{document}
|
||||
|
@@ -8,6 +8,10 @@ reference counting, so copying and assignment operations are fast.
|
||||
\helpref{wxGDIObject}{wxgdiobject}\\
|
||||
\helpref{wxObject}{wxobject}
|
||||
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{wxRegionIterator}{wxregioniterator}
|
||||
|
||||
\latexignore{\rtfignore{\wxheading{Members}}}
|
||||
|
||||
\membersection{wxRegion::wxRegion}\label{wxregionconstr}
|
||||
@@ -179,4 +183,105 @@ for any overlapping areas. The result is stored in this region.
|
||||
|
||||
Copies {\it region} by reference counting.
|
||||
|
||||
\section{\class{wxRegionIterator}}\label{wxregioniterator}
|
||||
|
||||
This class is used to iterate through the rectangles in a region,
|
||||
typically when examining the damaged regions of a window within an OnPaint call.
|
||||
|
||||
To use it, construct an iterator object on the stack and loop through the
|
||||
regions, testing the object and incrementing the iterator at the end of the loop.
|
||||
|
||||
See \helpref{wxWindow::OnPaint}{wxwindowonpaint} for an example of use.
|
||||
|
||||
\wxheading{Derived from}
|
||||
|
||||
\helpref{wxObject}{wxobject}
|
||||
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{wxWindow::OnPaint}{wxwindowonpaint}
|
||||
|
||||
\latexignore{\rtfignore{\wxheading{Members}}}
|
||||
|
||||
\membersection{wxRegionIterator::wxRegionIterator}
|
||||
|
||||
\func{}{wxRegionIterator}{\void}
|
||||
|
||||
Default constructor.
|
||||
|
||||
\func{}{wxRegionIterator}{\param{const wxRegion\&}{ region}}
|
||||
|
||||
Creates an iterator object given a region.
|
||||
|
||||
\membersection{wxRegionIterator::GetX}
|
||||
|
||||
\constfunc{long}{GetX}{\void}
|
||||
|
||||
Returns the x value for the current region.
|
||||
|
||||
\membersection{wxRegionIterator::GetY}
|
||||
|
||||
\constfunc{long}{GetY}{\void}
|
||||
|
||||
Returns the y value for the current region.
|
||||
|
||||
\membersection{wxRegionIterator::GetW}
|
||||
|
||||
\constfunc{long}{GetW}{\void}
|
||||
|
||||
An alias for GetWidth.
|
||||
|
||||
\membersection{wxRegionIterator::GetWidth}
|
||||
|
||||
\constfunc{long}{GetWidth}{\void}
|
||||
|
||||
Returns the width value for the current region.
|
||||
|
||||
\membersection{wxRegionIterator::GetH}
|
||||
|
||||
\constfunc{long}{GetH}{\void}
|
||||
|
||||
An alias for GetHeight.
|
||||
|
||||
\membersection{wxRegionIterator::GetHeight}
|
||||
|
||||
\constfunc{long}{GetWidth}{\void}
|
||||
|
||||
Returns the width value for the current region.
|
||||
|
||||
\membersection{wxRegionIterator::GetRect}
|
||||
|
||||
\constfunc{wxRect}{GetRect}{\void}
|
||||
|
||||
Returns the current rectangle.
|
||||
|
||||
\membersection{wxRegionIterator::HaveRects}
|
||||
|
||||
\constfunc{bool}{HaveRects}{\void}
|
||||
|
||||
Returns TRUE if there are still some rectangles; otherwise returns FALSE.
|
||||
|
||||
\membersection{wxRegionIterator::Reset}
|
||||
|
||||
\func{void}{Reset}{\void}
|
||||
|
||||
Resets the iterator to the beginning of the rectangles.
|
||||
|
||||
\func{void}{Reset}{\param{const wxRegion\&}{ region}}
|
||||
|
||||
Resets the iterator to the given region.
|
||||
|
||||
\membersection{wxRegionIterator::operator $++$}
|
||||
|
||||
\func{void}{operator $++$}{\void}
|
||||
|
||||
Increment operator. Increments the iterator to the next region.
|
||||
|
||||
\membersection{wxRegionIterator::operator bool}
|
||||
|
||||
\constfunc{}{operator bool}{\void}
|
||||
|
||||
Returns TRUE if there are still some rectangles; otherwise returns FALSE.
|
||||
|
||||
You can use this to test the iterator object as if it were of type bool.
|
||||
|
||||
|
85
docs/latex/wx/sashevt.tex
Normal file
85
docs/latex/wx/sashevt.tex
Normal file
@@ -0,0 +1,85 @@
|
||||
\section{\class{wxSashEvent}}\label{wxsashevent}
|
||||
|
||||
A sash event is sent when the sash of a \helpref{wxSashWindow}{wxsashwindow} has been
|
||||
dragged by the user.
|
||||
|
||||
\wxheading{Derived from}
|
||||
|
||||
\helpref{wxCommandEvent}{wxcommandevent}\\
|
||||
\helpref{wxEvent}{wxevent}\\
|
||||
\helpref{wxObject}{wxobject}
|
||||
|
||||
\wxheading{Event table macros}
|
||||
|
||||
To process an activate event, use these event handler macros to direct input to a member
|
||||
function that takes a wxSashEvent argument.
|
||||
|
||||
\twocolwidtha{7cm}%
|
||||
\begin{twocollist}\itemsep=0pt
|
||||
\twocolitem{{\bf EVT\_SASH\_DRAGGED(id, func)}}{Process a wxEVT\_SASH\_DRAGGED event,
|
||||
when the user has finished dragging a sash.}
|
||||
\twocolitem{{\bf EVT\_SASH\_DRAGGED\_RANGE(id1, id2, func)}}{Process a wxEVT\_SASH\_DRAGGED\_RANGE event,
|
||||
when the user has finished dragging a sash. The event handler is called when windows with ids in the
|
||||
given range have their sashes dragged.}
|
||||
\end{twocollist}
|
||||
|
||||
\wxheading{Data structures}
|
||||
|
||||
{\small
|
||||
\begin{verbatim}
|
||||
enum wxSashDragStatus
|
||||
{
|
||||
wxSASH_STATUS_OK,
|
||||
wxSASH_STATUS_OUT_OF_RANGE
|
||||
};
|
||||
\end{verbatim}
|
||||
}
|
||||
|
||||
\wxheading{Remarks}
|
||||
|
||||
When a sash belonging to a sash window is dragged by the user, and then released,
|
||||
this event is sent to the window, where it may be processed by an event table
|
||||
entry in a derived class, a plug-in event handler or an ancestor class.
|
||||
|
||||
Note that the wxSashWindow doesn't change the window's size itself. It relies on the application's
|
||||
event handler to do that. This is because the application may have to handle other consequences
|
||||
of the resize, or it may wish to veto it altogether. The event handler should
|
||||
look at the drag rectangle: see \helpref{wxSashEvent::GetDragRect}{wxsasheventgetdragrect} to see
|
||||
what the new size of the window would be if the resize were to be applied. It should
|
||||
also call \helpref{wxSashEvent::GetDragStatus}{wxsasheventgetdragstatus} to see whether the
|
||||
drag was OK or out of the current allowed range.
|
||||
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{wxSashWindow}{wxsashwindow},\rtfsp
|
||||
\helpref{Event handling overview}{eventhandlingoverview}
|
||||
|
||||
\latexignore{\rtfignore{\wxheading{Members}}}
|
||||
|
||||
\membersection{wxSashEvent::wxSashEvent}
|
||||
|
||||
\func{}{wxSashEvent}{\param{int }{id = 0}, \param{wxSashEdgePosition}{ edge = wxSASH\_NONE}}
|
||||
|
||||
Constructor.
|
||||
|
||||
\membersection{wxSashEvent::GetEdge}\label{wxsasheventgetedge}
|
||||
|
||||
\constfunc{wxSashEdgePosition}{GetEdge}{\void}
|
||||
|
||||
Returns the dragged edge. The return value is one of wxSASH\_TOP, wxSASH\_RIGHT, wxSASH\_BOTTOM, wxSASH\_LEFT.
|
||||
|
||||
\membersection{wxSashEvent::GetDragRect}\label{wxsasheventgetdragrect}
|
||||
|
||||
\constfunc{wxRect}{GetDragRect}{\void}
|
||||
|
||||
Returns the rectangle representing the new size the window would be if the resize was applied. It is
|
||||
up to the application to set the window size if required.
|
||||
|
||||
\membersection{wxSashEvent::GetDragStatus}\label{wxsasheventgetdragstatus}
|
||||
|
||||
\constfunc{wxSashDragStatus}{GetDragStatus}{\void}
|
||||
|
||||
Returns the status of the sash: one of wxSASH\_STATUS\_OK, wxSASH\_STATUS\_OUT\_OF\_RANGE.
|
||||
If the drag caused the notional bounding box of the window to flip over, for example, the drag will be out of rage.
|
||||
|
||||
|
128
docs/latex/wx/sashlayw.tex
Normal file
128
docs/latex/wx/sashlayw.tex
Normal file
@@ -0,0 +1,128 @@
|
||||
\section{\class{wxSashLayoutWindow}}\label{wxsashlayoutwindow}
|
||||
|
||||
wxSashLayoutWindow responds to OnCalculateLayout events generated
|
||||
by \helpref{wxLayoutAlgorithm}{wxlayoutalgorithm}. It allows the
|
||||
application to use simple accessors to specify how the window should be
|
||||
laid out, rather than having to respond to events. The fact that
|
||||
the class derives from wxSashWindow allows sashes to be used if required,
|
||||
to allow the windows to be user-resizable.
|
||||
|
||||
The documentation for \helpref{wxLayoutAlgorithm}{wxlayoutalgorithm} explains
|
||||
the purpose of this class in more detail.
|
||||
|
||||
\wxheading{Derived from}
|
||||
|
||||
\helpref{wxSashWindow}{wxsashwindow}\\
|
||||
\helpref{wxWindow}{wxwindow}\\
|
||||
\helpref{wxEvtHandler}{wxevthandler}\\
|
||||
\helpref{wxObject}{wxobject}
|
||||
|
||||
\wxheading{Window styles}
|
||||
|
||||
See \helpref{wxSashWindow}{wxsashwindow}.
|
||||
|
||||
\wxheading{Event handling}
|
||||
|
||||
This class handles the EVT\_QUERY\_LAYOUT\_INFO and EVT\_CALCULATE\_LAYOUT events
|
||||
for you. However, if you use sashes, see \helpref{wxSashWindow}{wxsashwindow} for
|
||||
relevant event information.
|
||||
|
||||
See also \helpref{wxLayoutAlgorithm}{wxlayoutalgorithm} for information
|
||||
about the layout events.
|
||||
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{wxLayoutAlgorithm}{wxlayoutalgorithm}, \helpref{wxSashWindow}{wxsashwindow}, \helpref{Event handling overview}{eventhandlingoverview}
|
||||
|
||||
\latexignore{\rtfignore{\wxheading{Members}}}
|
||||
|
||||
\membersection{wxSashLayoutWindow::wxSashLayoutWindow}
|
||||
|
||||
\func{}{wxSashLayoutWindow}{\void}
|
||||
|
||||
Default constructor.
|
||||
|
||||
\func{}{wxSashLayoutWindow}{\param{wxSashLayoutWindow*}{ parent}, \param{wxSashLayoutWindowID }{id},
|
||||
\param{const wxPoint\& }{pos = wxDefaultPosition},
|
||||
\param{const wxSize\& }{size = wxDefaultSize},
|
||||
\param{long }{style = wxCLIP\_CHILDREN \pipe wxSW\_3D},
|
||||
\param{const wxString\& }{name = "layoutWindow"}}
|
||||
|
||||
Constructs a sash layout window, which can be a child of a frame, dialog or any other non-control window.
|
||||
|
||||
\wxheading{Parameters}
|
||||
|
||||
\docparam{parent}{Pointer to a parent window.}
|
||||
|
||||
\docparam{id}{Window identifier. If -1, will automatically create an identifier.}
|
||||
|
||||
\docparam{pos}{Window position. wxDefaultPosition is (-1, -1) which indicates that wxSashLayoutWindows
|
||||
should generate a default position for the window. If using the wxSashLayoutWindow class directly, supply
|
||||
an actual position.}
|
||||
|
||||
\docparam{size}{Window size. wxDefaultSize is (-1, -1) which indicates that wxSashLayoutWindows
|
||||
should generate a default size for the window.}
|
||||
|
||||
\docparam{style}{Window style. For window styles, please see \helpref{wxSashLayoutWindow}{wxsashlayoutwindow}.}
|
||||
|
||||
\docparam{name}{Window name.}
|
||||
|
||||
\membersection{wxSashLayoutWindow::\destruct{wxSashLayoutWindow}}
|
||||
|
||||
\func{}{\destruct{wxSashLayoutWindow}}{\void}
|
||||
|
||||
Destructor.
|
||||
|
||||
\membersection{wxSashLayoutWindow::GetAlignment}\label{wxsashlayoutwindowgetalignment}
|
||||
|
||||
\constfunc{wxLayoutAlignment}{GetAlignment}{\void}
|
||||
|
||||
Returns the alignment of the window: one of wxLAYOUT\_TOP, wxLAYOUT\_LEFT, wxLAYOUT\_RIGHT, wxLAYOUT\_BOTTOM.
|
||||
|
||||
\membersection{wxSashLayoutWindow::GetOrientation}\label{wxsashlayoutwindowgetorientation}
|
||||
|
||||
\constfunc{wxLayoutOrientation}{GetOrientation}{\void}
|
||||
|
||||
Returns the orientation of the window: one of wxLAYOUT\_HORIZONTAL, wxLAYOUT\_VERTICAL.
|
||||
|
||||
\membersection{wxSashLayoutWindow::OnCalculateLayout}\label{wxsashlayoutwindowoncalculatelayout}
|
||||
|
||||
\func{void}{OnCalculateLayout}{\param{wxCalculateLayoutEvent\&}{ event}}
|
||||
|
||||
The default handler for the event that is generated by wxLayoutAlgorithm. The implementation
|
||||
of this function calls wxCalculateLayoutEvent::SetRect to shrink the provided size according to
|
||||
how much space this window takes up. For further details,
|
||||
see \helpref{wxLayoutAlgorithm}{wxlayoutalgorithm} and \helpref{wxCalculateLayoutEvent}{wxcalculatelayoutevent}.
|
||||
|
||||
\membersection{wxSashLayoutWindow::OnQueryLayoutInfo}\label{wxsashlayoutwindowonquerylayoutinfo}
|
||||
|
||||
\func{void}{OnQueryLayoutInfo}{\param{wxQueryLayoutInfoEvent\&}{ event}}
|
||||
|
||||
The default handler for the event that is generated by OnCalculateLayout to get
|
||||
size, alignment and orientation information for the window. The implementation
|
||||
of this function uses member variables as set by accessors called by the application.
|
||||
For further details, see \helpref{wxLayoutAlgorithm}{wxlayoutalgorithm} and \helpref{wxQueryLayoutInfoEvent}{wxquerylayoutinfoevent}.
|
||||
|
||||
\membersection{wxSashLayoutWindow::SetAlignment}\label{wxsashlayoutwindowsetalignment}
|
||||
|
||||
\func{void}{SetAlignment}{\param{wxLayoutAlignment}{ alignment}}
|
||||
|
||||
Sets the alignment of the window (which edge of the available parent client area the window
|
||||
is attached to). {\it alignment} is one of wxLAYOUT\_TOP, wxLAYOUT\_LEFT, wxLAYOUT\_RIGHT, wxLAYOUT\_BOTTOM.
|
||||
|
||||
\membersection{wxSashLayoutWindow::SetDefaultSize}\label{wxsashlayoutwindowsetdefaultsize}
|
||||
|
||||
\func{void}{SetDefaultSize}{\param{const wxSize\& }{size}}
|
||||
|
||||
Sets the default dimensions of the window. The dimension other than the orientation will be fixed to this
|
||||
value, and the orientation dimension will be ignored and the window stretched to fit the available space.
|
||||
|
||||
\membersection{wxSashLayoutWindow::SetOrientation}\label{wxsashlayoutwindowsetorientation}
|
||||
|
||||
\func{void}{SetOrientation}{\param{wxLayoutOrientation}{ orientation}}
|
||||
|
||||
Sets the orientation of the window (the direction the window will stretch in, to fill the available
|
||||
parent client area). {\it orientation} is one of wxLAYOUT\_HORIZONTAL, wxLAYOUT\_VERTICAL.
|
||||
|
||||
|
||||
|
203
docs/latex/wx/sashwin.tex
Normal file
203
docs/latex/wx/sashwin.tex
Normal file
@@ -0,0 +1,203 @@
|
||||
\section{\class{wxSashWindow}}\label{wxsashwindow}
|
||||
|
||||
wxSashWindow allows any of its edges to have a sash which can be dragged
|
||||
to resize the window. The actual content window will be created by the application
|
||||
as a child of wxSashWindow. The window (or an ancestor) will be notified of a drag
|
||||
via a \helpref{wxSashEvent}{wxsashevent} notification.
|
||||
|
||||
\wxheading{Derived from}
|
||||
|
||||
\helpref{wxWindow}{wxwindow}\\
|
||||
\helpref{wxEvtHandler}{wxevthandler}\\
|
||||
\helpref{wxObject}{wxobject}
|
||||
|
||||
\wxheading{Window styles}
|
||||
|
||||
The following styles apply in addition to the normal wxWindow styles.
|
||||
|
||||
\twocolwidtha{5cm}%
|
||||
\begin{twocollist}\itemsep=0pt
|
||||
\twocolitem{\windowstyle{wxSW\_3D}}{Draws the sashes in 3D.}
|
||||
\end{twocollist}
|
||||
|
||||
See also \helpref{window styles overview}{windowstyles}.
|
||||
|
||||
\wxheading{Event handling}
|
||||
|
||||
\twocolwidtha{7cm}%
|
||||
\begin{twocollist}\itemsep=0pt
|
||||
\twocolitem{{\bf EVT\_SASH\_DRAGGED(id, func)}}{Process a wxEVT\_SASH\_DRAGGED event,
|
||||
when the user has finished dragging a sash.}
|
||||
\twocolitem{{\bf EVT\_SASH\_DRAGGED\_RANGE(id1, id2, func)}}{Process a wxEVT\_SASH\_DRAGGED\_RANGE event,
|
||||
when the user has finished dragging a sash. The event handler is called when windows with ids in the
|
||||
given range have their sashes dragged.}
|
||||
\end{twocollist}
|
||||
|
||||
\wxheading{Data types}
|
||||
|
||||
{\small
|
||||
\begin{verbatim}
|
||||
enum wxSashEdgePosition {
|
||||
wxSASH_TOP = 0,
|
||||
wxSASH_RIGHT,
|
||||
wxSASH_BOTTOM,
|
||||
wxSASH_LEFT,
|
||||
wxSASH_NONE = 100
|
||||
};
|
||||
\end{verbatim}
|
||||
}
|
||||
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{wxSashEvent}{wxsashevent}, \helpref{wxSashLayoutWindow}{wxsashlayoutwindow}, \helpref{Event handling overview}{eventhandlingoverview}
|
||||
|
||||
\latexignore{\rtfignore{\wxheading{Members}}}
|
||||
|
||||
\membersection{wxSashWindow::wxSashWindow}
|
||||
|
||||
\func{}{wxSashWindow}{\void}
|
||||
|
||||
Default constructor.
|
||||
|
||||
\func{}{wxSashWindow}{\param{wxSashWindow*}{ parent}, \param{wxSashWindowID }{id},
|
||||
\param{const wxPoint\& }{pos = wxDefaultPosition},
|
||||
\param{const wxSize\& }{size = wxDefaultSize},
|
||||
\param{long }{style = wxCLIP\_CHILDREN \pipe wxSW\_3D},
|
||||
\param{const wxString\& }{name = "sashWindow"}}
|
||||
|
||||
Constructs a sash window, which can be a child of a frame, dialog or any other non-control window.
|
||||
|
||||
\wxheading{Parameters}
|
||||
|
||||
\docparam{parent}{Pointer to a parent window.}
|
||||
|
||||
\docparam{id}{Window identifier. If -1, will automatically create an identifier.}
|
||||
|
||||
\docparam{pos}{Window position. wxDefaultPosition is (-1, -1) which indicates that wxSashWindows
|
||||
should generate a default position for the window. If using the wxSashWindow class directly, supply
|
||||
an actual position.}
|
||||
|
||||
\docparam{size}{Window size. wxDefaultSize is (-1, -1) which indicates that wxSashWindows
|
||||
should generate a default size for the window.}
|
||||
|
||||
\docparam{style}{Window style. For window styles, please see \helpref{wxSashWindow}{wxsashwindow}.}
|
||||
|
||||
\docparam{name}{Window name.}
|
||||
|
||||
\membersection{wxSashWindow::\destruct{wxSashWindow}}
|
||||
|
||||
\func{}{\destruct{wxSashWindow}}{\void}
|
||||
|
||||
Destructor.
|
||||
|
||||
\membersection{wxSashWindow::GetSashVisible}\label{wxsashwindowgetsashvisible}
|
||||
|
||||
\constfunc{bool}{GetSashVisible}{\param{wxSashEdgePosition }{edge}}
|
||||
|
||||
Returns TRUE if a sash is visible on the given edge, FALSE otherwise.
|
||||
|
||||
\wxheading{Parameters}
|
||||
|
||||
\docparam{edge}{Edge. One of wxSASH\_TOP, wxSASH\_RIGHT, wxSASH\_BOTTOM, wxSASH\_LEFT.}
|
||||
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{wxSashWindow::SetSashVisible}{wxsashwindowsetsashvisible}
|
||||
|
||||
\membersection{wxSashWindow::GetMaximumSizeX}\label{wxsashwindowgetmaximumsizex}
|
||||
|
||||
\constfunc{int}{GetMaximumSizeX}{\void}
|
||||
|
||||
Gets the maximum window size in the x direction.
|
||||
|
||||
\membersection{wxSashWindow::GetMaximumSizeY}\label{wxsashwindowgetmaximumsizey}
|
||||
|
||||
\constfunc{int}{GetMaximumSizeY}{\void}
|
||||
|
||||
Gets the maximum window size in the y direction.
|
||||
|
||||
\membersection{wxSashWindow::GetMinimumSizeX}\label{wxsashwindowgetminimumsizex}
|
||||
|
||||
\func{int}{GetMinimumSizeX}{\void}
|
||||
|
||||
Gets the minimum window size in the x direction.
|
||||
|
||||
\membersection{wxSashWindow::GetMinimumSizeY}\label{wxsashwindowgetminimumsizey}
|
||||
|
||||
\constfunc{int}{GetMinimumSizeY}{\param{int}{ min}}
|
||||
|
||||
Gets the minimum window size in the y direction.
|
||||
|
||||
\membersection{wxSashWindow::HasBorder}\label{wxsashwindowhasborder}
|
||||
|
||||
\constfunc{bool}{HasBorder}{\param{wxSashEdgePosition }{edge}}
|
||||
|
||||
Returns TRUE if the sash has a border, FALSE otherwise.
|
||||
|
||||
\wxheading{Parameters}
|
||||
|
||||
\docparam{edge}{Edge. One of wxSASH\_TOP, wxSASH\_RIGHT, wxSASH\_BOTTOM, wxSASH\_LEFT.}
|
||||
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{wxSashWindow::SetSashBorder}{wxsashwindowsetsashborder}
|
||||
|
||||
\membersection{wxSashWindow::SetMaximumSizeX}\label{wxsashwindowsetmaximumsizex}
|
||||
|
||||
\func{void}{SetMaximumSizeX}{\param{int}{ min}}
|
||||
|
||||
Sets the maximum window size in the x direction.
|
||||
|
||||
\membersection{wxSashWindow::SetMaximumSizeY}\label{wxsashwindowsetmaximumsizey}
|
||||
|
||||
\func{void}{SetMaximumSizeY}{\param{int}{ min}}
|
||||
|
||||
Sets the maximum window size in the y direction.
|
||||
|
||||
\membersection{wxSashWindow::SetMinimumSizeX}\label{wxsashwindowsetminimumsizex}
|
||||
|
||||
\func{void}{SetMinimumSizeX}{\param{int}{ min}}
|
||||
|
||||
Sets the minimum window size in the x direction.
|
||||
|
||||
\membersection{wxSashWindow::SetMinimumSizeY}\label{wxsashwindowsetminimumsizey}
|
||||
|
||||
\func{void}{SetMinimumSizeY}{\param{int}{ min}}
|
||||
|
||||
Sets the minimum window size in the y direction.
|
||||
|
||||
\membersection{wxSashWindow::SetSashVisible}\label{wxsashwindowsetsashvisible}
|
||||
|
||||
\func{void}{SetSashVisible}{\param{wxSashEdgePosition }{edge}, \param{bool}{ visible}}
|
||||
|
||||
Call this function to make a sash visible or invisible on a particular edge.
|
||||
|
||||
\wxheading{Parameters}
|
||||
|
||||
\docparam{edge}{Edge to change. One of wxSASH\_TOP, wxSASH\_RIGHT, wxSASH\_BOTTOM, wxSASH\_LEFT.}
|
||||
|
||||
\docparam{visible}{TRUE to make the sash visible, FALSE to make it invisible.}
|
||||
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{wxSashWindow::GetSashVisible}{wxsashwindowgetsashvisible}
|
||||
|
||||
// Set whether there's a border in this position
|
||||
inline void SetSashBorder(wxSashEdgePosition edge, bool border) { m_sashes[edge].m_border = border; }
|
||||
|
||||
\membersection{wxSashWindow::SetSashBorder}\label{wxsashwindowsetsashborder}
|
||||
|
||||
\func{void}{SetSashBorder}{\param{wxSashEdgePosition }{edge}, \param{bool}{ hasBorder}}
|
||||
|
||||
Call this function to give the sash a border, or remove the border.
|
||||
|
||||
\wxheading{Parameters}
|
||||
|
||||
\docparam{edge}{Edge to change. One of wxSASH\_TOP, wxSASH\_RIGHT, wxSASH\_BOTTOM, wxSASH\_LEFT.}
|
||||
|
||||
\docparam{hasBorder}{TRUE to give the sash a border visible, FALSE to remove it.}
|
||||
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{wxSashWindow::HashBorder}{wxsashwindowhasborder}
|
||||
|
155
docs/latex/wx/sckaddr.tex
Normal file
155
docs/latex/wx/sckaddr.tex
Normal file
@@ -0,0 +1,155 @@
|
||||
% ----------------------------------------------------------------------------
|
||||
% CLASS: wxSockAddress
|
||||
% ----------------------------------------------------------------------------
|
||||
\section{\class{wxSockAddress}}\label{wxsockaddress}
|
||||
|
||||
\wxheading{Derived from}
|
||||
|
||||
\helpref{wxObject}{wxobject}
|
||||
|
||||
{\bf Actually, you don't have to use these functions: only wxSocketBase use it.}
|
||||
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{wxSocketBase}{wxsocketbase}\\
|
||||
\helpref{wxIPV4address}{wxipv4address}\\
|
||||
\helpref{wxIPV6address}{wxipv6address}\\
|
||||
\helpref{wxunixaddress}{wxunixaddress}
|
||||
|
||||
% ----------------------------------------------------------------------------
|
||||
% Members
|
||||
% ----------------------------------------------------------------------------
|
||||
|
||||
\latexignore{\rtfignore{\wxheading{Members}}}
|
||||
|
||||
%
|
||||
% ctor/dtor
|
||||
%
|
||||
|
||||
\membersection{wxSockAddress::wxSockAddress}
|
||||
\func{}{wxSockAddress}{\void}
|
||||
|
||||
Default constructor.
|
||||
|
||||
\membersection{wxSockAddress::\destruct{wxSockAddress}}
|
||||
\func{}{\destruct{wxSockAddress}}{\void}
|
||||
|
||||
Default destructor.
|
||||
|
||||
%
|
||||
% Clear
|
||||
%
|
||||
\membersection{wxSockAddress::Clear}
|
||||
\func{void}{Clear}{\void}
|
||||
|
||||
Delete all informations about the address.
|
||||
|
||||
%
|
||||
% Build
|
||||
%
|
||||
\membersection{wxSockAddress::Build}
|
||||
\func{void}{Build}{\param{struct sockaddr *\&}{ addr}, \param{size\_t\&}{ len}}
|
||||
|
||||
Build a coded socket address.
|
||||
|
||||
%
|
||||
% Disassemble
|
||||
%
|
||||
\membersection{wxSockAddress::Disassemble}
|
||||
\func{void}{Disassemble}{\param{struct sockaddr *}{addr}, \param{size\_t}{ len}}
|
||||
|
||||
Decode a socket address. {\bf Actually, you don't have to use this
|
||||
function: only wxSocketBase use it.}
|
||||
|
||||
%
|
||||
% SockAddrLen
|
||||
%
|
||||
\membersection{wxSockAddress::SockAddrLen}
|
||||
\func{int}{SockAddrLen}{\void};
|
||||
|
||||
Returns the length of the socket address.
|
||||
|
||||
% ----------------------------------------------------------------------------
|
||||
% CLASS: wxIPV4address
|
||||
% ----------------------------------------------------------------------------
|
||||
\section{\class{wxIPV4address}}\label{wxipv4address}
|
||||
|
||||
\wxheading{Derived from}
|
||||
|
||||
\helpref{wxSockAddress}{wxsockaddress}
|
||||
|
||||
% ----------------------------------------------------------------------------
|
||||
% MEMBERS
|
||||
% ----------------------------------------------------------------------------
|
||||
|
||||
\latexignore{\rtfignore{\wxheading{Members}}}
|
||||
|
||||
%
|
||||
% Hostname
|
||||
%
|
||||
|
||||
\membersection{wxIPV4address::Hostname}
|
||||
\func{bool}{Hostname}{\param{const wxString\&}{ hostname}}
|
||||
|
||||
Use the specified {\it hostname} for the address.
|
||||
|
||||
\wxheading{Return value}
|
||||
|
||||
Returns FALSE if something bad happens (invalid hostname, invalid IP address).
|
||||
|
||||
%
|
||||
% Hostname
|
||||
%
|
||||
|
||||
\membersection{wxIPV4address::Hostname}
|
||||
\func{wxString}{Hostname}{\void}
|
||||
|
||||
Returns the hostname which matches the IP address.
|
||||
|
||||
%
|
||||
% Service
|
||||
%
|
||||
|
||||
\membersection{wxIPV4address::Service}
|
||||
\func{bool}{Service}{\param{const wxString\&}{ service}}
|
||||
|
||||
Use the specified {\it service} string for the address.
|
||||
|
||||
\wxheading{Return value}
|
||||
|
||||
Returns FALSE if something bad happens (invalid service).
|
||||
|
||||
%
|
||||
% Service
|
||||
%
|
||||
|
||||
\membersection{wxIPV4address::Service}
|
||||
\func{bool}{Service}{\param{unsigned short}{ service}}
|
||||
|
||||
Use the specified {\it service} for the address.
|
||||
|
||||
\wxheading{Return value}
|
||||
|
||||
Returns FALSE if something bad happens (invalid service).
|
||||
|
||||
%
|
||||
% Service
|
||||
%
|
||||
|
||||
\membersection{wxIPV4address::Service}
|
||||
\func{unsigned short}{Service}{\void}
|
||||
|
||||
Returns the current service.
|
||||
|
||||
%
|
||||
% LocalHost
|
||||
%
|
||||
|
||||
\membersection{wxIPV4address::LocalHost}
|
||||
\func{bool}{LocalHost}{\void}
|
||||
|
||||
Initialize peer host to local host.
|
||||
|
||||
\wxheading{Return value}
|
||||
|
||||
Returns FALSE if something bad happens.
|
768
docs/latex/wx/socket.tex
Normal file
768
docs/latex/wx/socket.tex
Normal file
@@ -0,0 +1,768 @@
|
||||
\section{\class{wxSocketBase}}\label{wxsocketbase}
|
||||
|
||||
\wxheading{Derived from}
|
||||
|
||||
\helpref{wxEvtHandler}{wxevthandler}
|
||||
|
||||
% ---------------------------------------------------------------------------
|
||||
% Event handling
|
||||
% ---------------------------------------------------------------------------
|
||||
\wxheading{Event handling}
|
||||
|
||||
To process events from a socket, use the following event handler macro to direct
|
||||
input to member
|
||||
functions that take a \helpref{wxSocketEvent}{wxsocketevent} argument.
|
||||
|
||||
\twocolwidtha{7cm}%
|
||||
\begin{twocollist}\itemsep=0pt
|
||||
\twocolitem{{\bf EVT\_SOCKET(id, func)}}{A socket event occured.}
|
||||
\end{twocollist}%
|
||||
|
||||
% ---------------------------------------------------------------------------
|
||||
% See also ...
|
||||
% ---------------------------------------------------------------------------
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{wxSocketEvent}{wxsocketevent}, \helpref{wxSocketClient}{wxsocketclient}, \helpref{wxSocketServer}{wxsocketserver}
|
||||
|
||||
% ---------------------------------------------------------------------------
|
||||
% Members
|
||||
% ---------------------------------------------------------------------------
|
||||
\latexignore{\rtfignore{\wxheading{Members}}}
|
||||
|
||||
\membersection{wxSocketBase::wxSocketBase}
|
||||
|
||||
\func{}{wxSocketBase}{\void}
|
||||
|
||||
Default constructor but don't use it, you must use \helpref{wxSocketClient}{wxsocketclient}
|
||||
or \helpref{wxSocketServer}{wxsocketserver}.
|
||||
|
||||
\membersection{wxSocketBase::\destruct{wxSocketBase}}
|
||||
|
||||
\func{}{\destruct{wxSocketBase}}{\void}
|
||||
|
||||
Destroys the wxSocketBase object.
|
||||
|
||||
% ---------------------------------------------------------------------------
|
||||
% State functions
|
||||
% ---------------------------------------------------------------------------
|
||||
|
||||
\membersection{wxSocketBase::Ok}\label{wxsocketbaseok}
|
||||
|
||||
\constfunc{bool}{Ok}{\void}
|
||||
|
||||
Returns TRUE if the socket is initialized and ready and FALSE in other
|
||||
cases.
|
||||
|
||||
\membersection{wxSocketBase::Error}\label{wxsocketbaseerror}
|
||||
|
||||
\constfunc{bool}{Error}{\void}
|
||||
|
||||
Returns TRUE if an error occured.
|
||||
|
||||
\membersection{wxSocketBase::IsConnected}\label{wxsocketbaseconnected}
|
||||
|
||||
\constfunc{bool}{IsConnected}{\void}
|
||||
|
||||
Returns TRUE if the socket is connected.
|
||||
|
||||
\membersection{wxSocketBase::IsData}\label{wxsocketbaseisdata}
|
||||
|
||||
\constfunc{bool}{IsData}{\void}
|
||||
|
||||
Returns TRUE if some data is arrived on the socket.
|
||||
|
||||
\membersection{wxSocketBase::IsDisconnected}\label{wxsocketbasedisconnected}
|
||||
|
||||
\constfunc{bool}{IsDisconnected}{\void}
|
||||
|
||||
Returns TRUE if the socket is disconnected.
|
||||
|
||||
\membersection{wxSocketBase::IsNoWait}\label{wxsocketbasenowait}
|
||||
|
||||
\constfunc{bool}{IsNoWait}{\void}
|
||||
|
||||
Returns TRUE if the socket mustn't wait.
|
||||
|
||||
\membersection{wxSocketBase::LastCount}\label{wxsocketbaselastcount}
|
||||
|
||||
\constfunc{size\_t}{LastCount}{\void}
|
||||
|
||||
Returns the number of bytes read or written by the last IO call.
|
||||
|
||||
\membersection{wxSocketBase::LastError}\label{wxsocketbaselasterror}
|
||||
|
||||
\constfunc{int}{LastError}{\void}
|
||||
|
||||
Returns an error in the errno format (see your C programmer's guide).
|
||||
|
||||
% ---------------------------------------------------------------------------
|
||||
% IO calls
|
||||
% ---------------------------------------------------------------------------
|
||||
%
|
||||
% Peek
|
||||
%
|
||||
\membersection{wxSocketBase::Peek}\label{wxsocketbasepeek}
|
||||
|
||||
\func{wxSocketBase\&}{Peek}{\param{char *}{ buffer}, \param{size\_t}{ nbytes}}
|
||||
|
||||
This function peeks a buffer of {\it nbytes} bytes from the socket. Peeking a buffer
|
||||
doesn't delete it from the system socket in-queue.
|
||||
|
||||
\wxheading{Parameters}
|
||||
|
||||
\docparam{buffer}{Buffer where to put peeked data.}
|
||||
|
||||
\docparam{nbytes}{Number of bytes.}
|
||||
|
||||
\wxheading{Return value}
|
||||
|
||||
Returns a reference to the current object.
|
||||
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{wxSocketBase::Error}{wxsocketbaseerror},
|
||||
\helpref{wxSocketBase::LastCount}{wxsocketbaselastcount},
|
||||
\helpref{wxSocketBase::LastError}{wxsocketbaselasterror}
|
||||
|
||||
%
|
||||
% Read
|
||||
%
|
||||
\membersection{wxSocketBase::Read}\label{wxsocketbaseread}
|
||||
|
||||
\func{wxSocketBase\&}{Read}{\param{char *}{ buffer}, \param{size\_t}{ nbytes}}
|
||||
|
||||
This function reads a buffer of {\it nbytes} bytes from the socket.
|
||||
|
||||
\wxheading{Parameters}
|
||||
|
||||
\docparam{buffer}{Buffer where to put read data.}
|
||||
|
||||
\docparam{nbytes}{Number of bytes.}
|
||||
|
||||
\wxheading{Return value}
|
||||
|
||||
Returns a reference to the current object.
|
||||
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{wxSocketBase::Error}{wxsocketbaseerror},
|
||||
\helpref{wxSocketBase::LastCount}{wxsocketbaselastcount},
|
||||
\helpref{wxSocketBase::LastError}{wxsocketbaselasterror}
|
||||
|
||||
\membersection{wxSocketBase::SetFlags}\label{wxsocketbasesetflags}
|
||||
|
||||
\func{void}{SetFlags}{\param{wxSockFlags}{ flags}}
|
||||
|
||||
TODO
|
||||
|
||||
%
|
||||
% Read
|
||||
%
|
||||
\membersection{wxSocketBase::Write}\label{wxsocketbasewrite}
|
||||
|
||||
\func{wxSocketBase\&}{Write}{\param{const char *}{ buffer}, \param{size\_t}{ nbytes}}
|
||||
|
||||
This function writes a buffer of {\it nbytes} bytes from the socket.
|
||||
|
||||
\wxheading{Parameters}
|
||||
|
||||
\docparam{buffer}{Buffer where to get the data to write.}
|
||||
|
||||
\docparam{nbytes}{Number of bytes.}
|
||||
|
||||
\wxheading{Return value}
|
||||
|
||||
Returns a reference to the current object.
|
||||
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{wxSocketBase::Error}{wxsocketbaseerror},
|
||||
\helpref{wxSocketBase::LastCount}{wxsocketbaselastcount},
|
||||
\helpref{wxSocketBase::LastError}{wxsocketbaselasterror}
|
||||
|
||||
%
|
||||
% WriteMsg
|
||||
%
|
||||
\membersection{wxSocketBase::WriteMsg}\label{wxsocketbasewritemsg}
|
||||
|
||||
\func{wxSocketBase\&}{WriteMsg}{\param{const char *}{ buffer}, \param{size\_t}{ nbytes}}
|
||||
|
||||
This function writes a buffer of {\it nbytes} bytes from the socket. But it
|
||||
writes a short header before so that ReadMsg can alloc the right size for
|
||||
the buffer. So a buffer sent with WriteMsg {\bf must} be read with ReadMsg.
|
||||
|
||||
\wxheading{Parameters}
|
||||
|
||||
\docparam{buffer}{Buffer where to put data peeked.}
|
||||
|
||||
\docparam{nbytes}{Number of bytes.}
|
||||
|
||||
\wxheading{Return value}
|
||||
|
||||
Returns a reference to the current object.
|
||||
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{wxSocketBase::Error}{wxsocketbaseerror},
|
||||
\helpref{wxSocketBase::LastCount}{wxsocketbaselastcount},
|
||||
\helpref{wxSocketBase::LastError}{wxsocketbaselasterror},
|
||||
\helpref{wxSocketBase::ReadMsg}{wxsocketbasereadmsg}
|
||||
|
||||
%
|
||||
% ReadMsg
|
||||
%
|
||||
\membersection{wxSocketBase::ReadMsg}\label{wxsocketbasereadmsg}
|
||||
|
||||
\func{wxSocketBase\&}{ReadMsg}{\param{char *}{ buffer}, \param{size\_t}{ nbytes}}
|
||||
|
||||
This function reads a buffer sent by WriteMsg on a socket. If the buffer passed
|
||||
to the function isn't big enough, the function filled it and then discard the
|
||||
bytes left. This function always wait for the buffer to be entirely filled.
|
||||
|
||||
\wxheading{Parameters}
|
||||
|
||||
\docparam{buffer}{Buffer where to put read data.}
|
||||
|
||||
\docparam{nbytes}{Number of bytes allocated for the buffer.}
|
||||
|
||||
\wxheading{Return value}
|
||||
|
||||
Returns a reference to the current object.
|
||||
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{wxSocketBase::Error}{wxsocketbaseerror},
|
||||
\helpref{wxSocketBase::LastCount}{wxsocketbaselastcount},
|
||||
\helpref{wxSocketBase::LastError}{wxsocketbaselasterror},
|
||||
\helpref{wxSocketBase::WriteMsg}{wxsocketbasewritemsg}
|
||||
|
||||
%
|
||||
% Unread
|
||||
%
|
||||
\membersection{wxSocketBase::UnRead}\label{wxsocketbaseunread}
|
||||
|
||||
\func{wxSocketBase\&}{UnRead}{\param{const char *}{ buffer}, \param{size\_t}{ nbytes}}
|
||||
|
||||
This function unreads a buffer. It means that the buffer is put in the top
|
||||
of the incoming queue. But, it is put also at the end of all unread buffers.
|
||||
It is useful for sockets because we can't seek it.
|
||||
|
||||
\wxheading{Parameters}
|
||||
|
||||
\docparam{buffer}{Buffer to be unread.}
|
||||
|
||||
\docparam{nbytes}{Number of bytes.}
|
||||
|
||||
\wxheading{Return value}
|
||||
|
||||
Returns a reference to the current object.
|
||||
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{wxSocketBase::Error}{wxsocketbaseerror},
|
||||
\helpref{wxSocketBase::LastCount}{wxsocketbaselastcount},
|
||||
\helpref{wxSocketBase::LastError}{wxsocketbaselasterror}
|
||||
|
||||
%
|
||||
% Discard
|
||||
%
|
||||
\membersection{wxSocketBase::Discard}\label{wxsocketbasediscard}
|
||||
|
||||
\func{wxSocketBase\&}{Discard}{\void}
|
||||
|
||||
This function simply deletes all bytes in the incoming queue. This function
|
||||
doesn't wait.
|
||||
|
||||
% ---------------------------------------------------------------------------
|
||||
% Wait functions
|
||||
% ---------------------------------------------------------------------------
|
||||
\membersection{wxSocketBase::Wait}\label{wxsocketbasewait}
|
||||
|
||||
\func{bool}{Wait}{\param{long}{ seconds = -1}, \param{long}{ microsecond = 0}}
|
||||
|
||||
This function waits for an event: it could be an incoming byte, the possibility
|
||||
for the client to write, a lost connection, an incoming connection, an
|
||||
established connection.
|
||||
|
||||
\wxheading{Parameters}
|
||||
|
||||
\docparam{seconds}{Number of seconds to wait. By default, it waits infinitely.}
|
||||
|
||||
\docparam{microsecond}{Number of microseconds to wait.}
|
||||
|
||||
\wxheading{Return value}
|
||||
|
||||
Returns TRUE if an event occured, FALSE if the timeout was reached.
|
||||
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{wxSocketBase::WaitForRead}{wxsocketbasewaitforread},
|
||||
\helpref{wxSocketBase::WaitForWrite}{wxsocketbasewaitforwrite},
|
||||
\helpref{wxSocketBase::WaitForLost}{wxsocketbasewaitforlost}
|
||||
|
||||
%
|
||||
% WaitForRead
|
||||
%
|
||||
\membersection{wxSocketBase::WaitForRead}\label{wxsocketbasewaitforread}
|
||||
|
||||
\func{bool}{WaitForRead}{\param{long}{ seconds = -1}, \param{long}{ microsecond = 0}}
|
||||
|
||||
This function waits for a read event.
|
||||
|
||||
\wxheading{Parameters}
|
||||
|
||||
\docparam{seconds}{Number of seconds to wait. By default, it waits infinitely.}
|
||||
|
||||
\docparam{microsecond}{Number of microseconds to wait.}
|
||||
|
||||
\wxheading{Return value}
|
||||
|
||||
Returns TRUE if a byte arrived, FALSE if the timeout was reached.
|
||||
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{wxSocketBase::Wait}{wxsocketbasewait},
|
||||
\helpref{wxSocketBase::WaitForWrite}{wxsocketbasewaitforwrite},
|
||||
\helpref{wxSocketBase::WaitForLost}{wxsocketbasewaitforlost}
|
||||
|
||||
%
|
||||
% WaitForWrite
|
||||
%
|
||||
\membersection{wxSocketBase::WaitForWrite}\label{wxsocketbasewaitforwrite}
|
||||
|
||||
\func{bool}{WaitForWrite}{\param{long}{ seconds = -1}, \param{long}{ microsecond = 0}}
|
||||
|
||||
This function waits for a write event.
|
||||
|
||||
\wxheading{Parameters}
|
||||
|
||||
\docparam{seconds}{Number of seconds to wait. By default, it waits infinitely.}
|
||||
|
||||
\docparam{microsecond}{Number of microseconds to wait.}
|
||||
|
||||
\wxheading{Return value}
|
||||
|
||||
Returns TRUE if a write event occured, FALSE if the timeout was reached.
|
||||
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{wxSocketBase::Wait}{wxsocketbasewait},
|
||||
\helpref{wxSocketBase::WaitForRead}{wxsocketbasewaitforread},
|
||||
\helpref{wxSocketBase::WaitForLost}{wxsocketbasewaitforlost}
|
||||
|
||||
%
|
||||
% WaitForLost
|
||||
%
|
||||
\membersection{wxSocketBase::WaitForLost}\label{wxsocketbasewaitforlost}
|
||||
|
||||
\func{bool}{Wait}{\param{long}{ seconds = -1}, \param{long}{ microsecond = 0}}
|
||||
|
||||
This function waits for a "lost" event. For instance, the peer may have closed
|
||||
the connection, or the connection may have been broken.
|
||||
|
||||
\wxheading{Parameters}
|
||||
|
||||
\docparam{seconds}{Number of seconds to wait. By default, it waits infinitely.}
|
||||
|
||||
\docparam{microsecond}{Number of microseconds to wait.}
|
||||
|
||||
\wxheading{Return value}
|
||||
|
||||
Returns TRUE if a "lost" event occured, FALSE if the timeout was reached.
|
||||
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{wxSocketBase::WaitForRead}{wxsocketbasewaitforread},
|
||||
\helpref{wxSocketBase::WaitForWrite}{wxsocketbasewaitforwrite},
|
||||
\helpref{wxSocketBase::WaitForLost}{wxsocketbasewaitforlost}
|
||||
|
||||
%
|
||||
% RestoreState
|
||||
%
|
||||
\membersection{wxSocketBase::RestoreState}\label{wxsocketbaserestorestate}
|
||||
|
||||
\func{void}{RestoreState}{\void}
|
||||
|
||||
This function restores a previously saved state.
|
||||
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{wxSocketBase::SaveState}{wxsocketbasesavestate}
|
||||
|
||||
% ---------------------------------------------------------------------------
|
||||
% Socket state
|
||||
% ---------------------------------------------------------------------------
|
||||
%
|
||||
% SaveState
|
||||
%
|
||||
\membersection{wxSocketBase::SaveState}\label{wxsocketbasesavestate}
|
||||
|
||||
\func{void}{SaveState}{\void}
|
||||
|
||||
This function saves the current state of the socket object in a stack:
|
||||
actually it saves all flags and the state of the asynchronous callbacks.
|
||||
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{wxSocketBase::RestoreState}{wxsocketbaserestorestate}
|
||||
|
||||
% ---------------------------------------------------------------------------
|
||||
% Socket callbacks
|
||||
% ---------------------------------------------------------------------------
|
||||
\membersection{wxSocketBase::SetEventHandler}\label{wxsocketbaseseteventhandler}
|
||||
|
||||
\func{void}{SetEventHandler}{\param{wxEvtHandler\&}{ evt\_hdlr}, \param{int}{ id = -1}}
|
||||
|
||||
Sets an event handler to be called when a socket event occured.
|
||||
|
||||
\wxheading{Parameters}
|
||||
|
||||
\docparam{evt\_hdlr}{Specifies the event handler you want to use.}
|
||||
|
||||
\docparam{id}{The id of socket event.}
|
||||
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{wxSocketEvent}{wxsocketevent}
|
||||
|
||||
% ---------------------------------------------------------------------------
|
||||
% CLASS wxSocketClient
|
||||
% ---------------------------------------------------------------------------
|
||||
\section{\class{wxSocketClient}}\label{wxsocketclient}
|
||||
|
||||
\wxheading{Derived from}
|
||||
|
||||
\helpref{wxSocketBase}{wxsocketbase}
|
||||
|
||||
% ---------------------------------------------------------------------------
|
||||
% Members
|
||||
% ---------------------------------------------------------------------------
|
||||
%
|
||||
% wxSocketClient
|
||||
%
|
||||
\membersection{wxSocketClient::wxSocketClient}
|
||||
|
||||
\func{}{wxSocketClient}{\param{wxSockFlags}{ flags = wxSocketBase::NONE}}
|
||||
|
||||
Constructs a new wxSocketClient.
|
||||
|
||||
{\bf Warning !} The created socket client needs to be registered to a socket handler (See \helpref{wxSocketHandler}{wxsockethandler}).
|
||||
|
||||
\wxheading{Parameters}
|
||||
|
||||
\docparam{flags}{Socket flags (See \helpref{wxSocketBase::SetFlags}{wxsocketbasesetflags})}
|
||||
|
||||
%
|
||||
% ~wxSocketClient
|
||||
%
|
||||
\membersection{wxSocketClient::\destruct{wxSocketClient}}
|
||||
|
||||
\func{}{\destruct{wxSocketClient}}{\void}
|
||||
|
||||
Destructs a wxSocketClient object.
|
||||
|
||||
%
|
||||
% Connect
|
||||
%
|
||||
\membersection{wxSocketClient::Connect}\label{wxsocketclientconnect}
|
||||
|
||||
\func{bool}{Connect}{\param{wxSockAddress\&}{ address}, \param{bool}{ wait = TRUE}}
|
||||
|
||||
Connects to a server using the specified address. If {\it wait} is TRUE, Connect
|
||||
will wait for the socket ready to send or receive data.
|
||||
|
||||
\wxheading{Parameters}
|
||||
|
||||
\docparam{address}{Address of the server.}
|
||||
|
||||
\docparam{wait}{If true, waits for the connection to be ready.}
|
||||
|
||||
\wxheading{Return value}
|
||||
|
||||
Returns TRUE if the connection is established and no error occurs.
|
||||
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{wxSocketClient::WaitOnConnect}{wxsocketclientwaitonconnect}
|
||||
|
||||
%
|
||||
% WaitOnConnect
|
||||
%
|
||||
\membersection{wxSocketClient::WaitOnConnect}\label{wxsocketclientwaitonconnect}
|
||||
|
||||
\func{bool}{WaitOnConnect}{\param{long}{ seconds = -1}, \param{long}{ microseconds = 0}}
|
||||
|
||||
Wait for a "connect" event.
|
||||
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{wxSocketBase::Wait}{wxsocketbasewait} for a detailed description.
|
||||
|
||||
% ---------------------------------------------------------------------------
|
||||
% CLASS: wxSocketEvent
|
||||
% ---------------------------------------------------------------------------
|
||||
\section{\class{wxSocketEvent}}\label{wxsocketevent}
|
||||
|
||||
This event class contains information about socket events.
|
||||
|
||||
\wxheading{Derived from}
|
||||
|
||||
\helpref{wxEvent}{wxevent}
|
||||
|
||||
\wxheading{Event table macros}
|
||||
|
||||
To process a socket event, use these event handler macros to direct input to member
|
||||
functions that take a wxSocketEvent argument.
|
||||
|
||||
\twocolwidtha{7cm}
|
||||
\begin{twocollist}\itemsep=0pt
|
||||
\twocolitem{{\bf EVT\_SOCKET(id, func)}}{Process a socket event, supplying the member function.}
|
||||
\end{twocollist}%
|
||||
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{wxSocketHandler}{wxsockethandler},\rtfsp
|
||||
\helpref{wxSocketBase}{wxsocketbase},\rtfsp
|
||||
\helpref{wxSocketClient}{wxsocketclient},\rtfsp
|
||||
\helpref{wxSocketServer}{wxsocketserver}
|
||||
|
||||
\latexignore{\rtfignore{\wxheading{Members}}}
|
||||
|
||||
\membersection{wxSocketEvent::wxSocketEvent}
|
||||
|
||||
\func{}{wxSocketEvent}{\param{int}{ id = 0}}
|
||||
|
||||
Constructor.
|
||||
|
||||
\membersection{wxSocketEvent::SocketEvent}\label{wxsocketeventsocketevent}
|
||||
|
||||
\constfunc{wxSocketBase::wxRequestEvent}{SocketEvent}{\void}
|
||||
|
||||
Returns the socket event type.
|
||||
|
||||
% ---------------------------------------------------------------------------
|
||||
% CLASS: wxSocketHandler
|
||||
% ---------------------------------------------------------------------------
|
||||
\section{\class{wxSocketHandler}}\label{wxsockethandler}
|
||||
|
||||
\wxheading{Derived from}
|
||||
|
||||
\helpref{wxObject}{wxobject}
|
||||
|
||||
% ---------------------------------------------------------------------------
|
||||
% Members
|
||||
% ---------------------------------------------------------------------------
|
||||
\latexignore{\rtfignore{\wxheading{Members}}}
|
||||
|
||||
%
|
||||
% wxSocketHandler
|
||||
%
|
||||
\membersection{wxSocketHandler::wxSocketHandler}
|
||||
|
||||
\func{}{wxSocketHandler}{\void}
|
||||
|
||||
Constructs a new wxSocketHandler.
|
||||
|
||||
It is advised to use \helpref{wxSocketHandler::Master}{wxsockethandlermaster} to
|
||||
get a socket handler. But creating a socket handler is useful to group
|
||||
many sockets.
|
||||
|
||||
%
|
||||
% ~wxSocketHandler
|
||||
%
|
||||
\membersection{wxSocketHandler::\destruct{wxSocketHandler}}
|
||||
|
||||
\func{}{\destruct{wxSocketHandler}}{\void}
|
||||
|
||||
Destructs a wxSocketHandler object.
|
||||
|
||||
%
|
||||
% Register
|
||||
%
|
||||
\membersection{wxSocketHandler::Register}
|
||||
|
||||
\func{void}{Register}{\param{wxSocketBase *}{socket}}
|
||||
|
||||
Register a socket: if it is already registered in this handler it will just
|
||||
return immediately.
|
||||
|
||||
\wxheading{Parameters}
|
||||
|
||||
\docparam{socket}{Socket to be registered.}
|
||||
|
||||
%
|
||||
% UnRegister
|
||||
%
|
||||
\membersection{wxSocketHandler::UnRegister}
|
||||
|
||||
\func{void}{UnRegister}{\param{wxSocketBase *}{socket}}
|
||||
|
||||
UnRegister a socket: if it isn't registered in this handler it will just
|
||||
return.
|
||||
|
||||
\wxheading{Parameters}
|
||||
|
||||
\docparam{socket}{Socket to be unregistered.}
|
||||
|
||||
%
|
||||
% Count
|
||||
%
|
||||
\membersection{wxSocketHandler::Count}
|
||||
|
||||
\constfunc{unsigned long}{Count}{\void}
|
||||
|
||||
Returns the number of sockets registered in the handler.
|
||||
|
||||
\wxheading{Return value}
|
||||
|
||||
Number of sockets registered.
|
||||
|
||||
%
|
||||
% CreateServer
|
||||
%
|
||||
\membersection{wxSocketHandler::CreateServer}
|
||||
|
||||
\func{wxSocketServer *}{CreateServer}{\param{wxSockAddress\&}{ address}, \param{wxSocketBase::wxSockFlags}{ flags = wxSocketbase::NONE}}
|
||||
|
||||
Creates a new wxSocketServer object. The object is automatically registered
|
||||
to the current socket handler.
|
||||
For a detailed description of the parameters, see \helpref{wxSocketServer::wxSocketServer}{wxsocketserverconstr}.
|
||||
|
||||
\wxheading{Return value}
|
||||
|
||||
Returns a new socket server.
|
||||
|
||||
%
|
||||
% CreateClient
|
||||
%
|
||||
\membersection{wxSocketHandler::CreateClient}
|
||||
|
||||
\func{wxSocketServer *}{CreateClient}{\param{wxSocketBase::wxSockFlags}{ flags = wxSocketbase::NONE}}
|
||||
|
||||
Creates a new wxSocketClient object. The object is automatically registered
|
||||
to the current socket handler.
|
||||
|
||||
For a detailed description of the parameters, see \helpref{wxSocketClient::Connect}{wxsocketclientconnect}.
|
||||
|
||||
\wxheading{Return value}
|
||||
|
||||
Returns a new socket client.
|
||||
|
||||
%
|
||||
% Master
|
||||
%
|
||||
\membersection{wxSocketHandler::Master}\label{wxsockethandlermaster}
|
||||
|
||||
\func{static wxSocketHandler\&}{Master}{\void}
|
||||
|
||||
Returns a default socket handler.
|
||||
|
||||
%
|
||||
% Wait
|
||||
%
|
||||
\membersection{wxSocketHandler::Wait}
|
||||
|
||||
\func{int}{Wait}{\param{long}{ seconds},\param{long}{ microseconds}}
|
||||
|
||||
Wait for an event on all registered sockets.
|
||||
|
||||
\wxheading{Parameters}
|
||||
|
||||
\docparam{seconds}{Number of seconds to wait. By default, it waits infinitely.}
|
||||
|
||||
\docparam{microsecond}{Number of microseconds to wait.}
|
||||
|
||||
\wxheading{Return value}
|
||||
|
||||
Returns 0 if a timeout occured, else the number of events detected.
|
||||
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{wxSocketBase::Wait}{wxsocketbasewait}
|
||||
|
||||
%
|
||||
% YieldSock
|
||||
%
|
||||
\membersection{wxSocketHandler::YieldSock}
|
||||
|
||||
\func{void}{YieldSock}{\void}
|
||||
|
||||
Execute pending requests in all registered sockets.
|
||||
% ---------------------------------------------------------------------------
|
||||
% CLASS: wxSocketServer
|
||||
% ---------------------------------------------------------------------------
|
||||
\section{\class{wxSocketServer}}\label{wxsocketserver}
|
||||
|
||||
\wxheading{Derived from}
|
||||
|
||||
\helpref{wxSocketBase}{wxsocketbase}
|
||||
|
||||
% ---------------------------------------------------------------------------
|
||||
% Members
|
||||
% ---------------------------------------------------------------------------
|
||||
\latexignore{\rtfignore{\wxheading{Members}}}
|
||||
|
||||
%
|
||||
% wxSocketServer
|
||||
%
|
||||
\membersection{wxSocketServer::wxSocketServer}\label{wxsocketserverconstr}
|
||||
|
||||
\func{}{wxSocketServer}{\param{wxSockAddress\&}{ address}, \param{wxSockFlags}{ flags = wxSocketBase::NONE}}
|
||||
|
||||
Constructs a new wxSocketServer.
|
||||
|
||||
{\bf Warning !} The created object needs to be registered to a socket handler
|
||||
(see \helpref{wxSocketHandler}{wxsockethandler}).
|
||||
|
||||
\wxheading{Parameters}
|
||||
|
||||
\docparam{address}{Specifies the local address for the server (e.g. port number).}
|
||||
|
||||
\docparam{flags}{Socket flags (See \helpref{wxSocketBase::SetFlags}{wxsocketbasesetflags})}
|
||||
|
||||
%
|
||||
% ~wxSocketServer
|
||||
%
|
||||
\membersection{wxSocketServer::\destruct{wxSocketServer}}
|
||||
|
||||
\func{}{\destruct{wxSocketServer}}{\void}
|
||||
|
||||
Destructs a wxSocketServer object (it doesn't close the accepted connection).
|
||||
|
||||
%
|
||||
% Accept
|
||||
%
|
||||
\membersection{wxSocketServer::Accept}
|
||||
|
||||
\func{wxSocketBase *}{Accept}{\void}
|
||||
|
||||
Creates a new object wxSocketBase and accepts an incoming connection. {\bf Warning !} This function will block the GUI.
|
||||
|
||||
\wxheading{Return value}
|
||||
|
||||
Returns an opened socket connection.
|
||||
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{wxSocketServer::AcceptWith}{wxsocketserveracceptwith}
|
||||
|
||||
%
|
||||
% AcceptWith
|
||||
%
|
||||
\membersection{wxSocketServer::AcceptWith}\label{wxsocketserveracceptwith}
|
||||
|
||||
\func{bool}{AcceptWith}{\param{wxSocketBase\&}{ socket}}
|
||||
|
||||
Accept an incoming connection using the specified socket object.
|
||||
This is useful when someone wants to inherit wxSocketBase.
|
||||
|
||||
\wxheading{Parameters}
|
||||
|
||||
\docparam{socket}{Socket to be initialized}
|
||||
|
||||
\wxheading{Return value}
|
||||
|
||||
Returns TRUE if no error occurs, else FALSE.
|
||||
|
||||
|
@@ -143,7 +143,7 @@ This should be called if you wish to initially view only a single pane in the sp
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{wxSplitterWindow::SplitVertically}{wxsplitterwindowsplitvertically},\rtfsp
|
||||
\helpref{wxSplitterWindow::SplitHorizontally}{wxsplitterwindowsplithorizontally}.
|
||||
\helpref{wxSplitterWindow::SplitHorizontally}{wxsplitterwindowsplithorizontally}
|
||||
|
||||
\membersection{wxSplitterWindow::IsSplit}\label{wxsplitterwindowissplit}
|
||||
|
||||
@@ -189,9 +189,25 @@ programmatically or using the wxSplitterWindow user interface.
|
||||
The default implementation of this function simply hides {\it removed}. You
|
||||
may wish to delete the window.
|
||||
|
||||
\membersection{wxSplitterWindow::OnSashPositionChange}\label{wxsplitterwindowonsashpositionchange}
|
||||
|
||||
\func{virtual bool}{OnSashPositionChange}{\param{int }{newSashPosition}}
|
||||
|
||||
Application-overridable function called when the sash position is changed by
|
||||
user. It may return FALSE to prevent the change or TRUE to allow it.
|
||||
|
||||
\wxheading{Parameters}
|
||||
|
||||
\docparam{newSashPosition}{The new sash position (always positive or zero)}
|
||||
|
||||
\wxheading{Remarks}
|
||||
|
||||
The default implementation of this function verifies that the sizes of both
|
||||
panes of the splitter are greater than minimum pane size.
|
||||
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{wxSplitterWindow::Unsplit}{wxsplitterwindowunsplit}
|
||||
\helpref{wxSplitterWindow::GetMinimumPaneSize}{wxsplitterwindowgetminimumpanesize}
|
||||
|
||||
\membersection{wxSplitterWindow::SetSashPosition}\label{wxsplitterwindowsetsashposition}
|
||||
|
||||
@@ -255,7 +271,7 @@ Only sets the internal variable; does not update the display.
|
||||
\membersection{wxSplitterWindow::SplitHorizontally}\label{wxsplitterwindowsplithorizontally}
|
||||
|
||||
\func{bool}{SplitHorizontally}{\param{wxWindow* }{window1}, \param{wxWindow* }{window2},
|
||||
\param{int}{ sashPosition = -1}}
|
||||
\param{int}{ sashPosition = 0}}
|
||||
|
||||
Initializes the top and bottom panes of the splitter window.
|
||||
|
||||
@@ -265,8 +281,10 @@ Initializes the top and bottom panes of the splitter window.
|
||||
|
||||
\docparam{window2}{The bottom pane.}
|
||||
|
||||
\docparam{sashPosition}{The initial position of the sash. If the value is -1, a default position
|
||||
is chosen.}
|
||||
\docparam{sashPosition}{The initial position of the sash. If this value is
|
||||
positive, it specifies the size of the upper pane. If it's negative, it's
|
||||
absolute value gives the size of the lower pane. Finally, specify 0 (default)
|
||||
to choose the default position (half of the total window height).}
|
||||
|
||||
\wxheading{Return value}
|
||||
|
||||
@@ -274,18 +292,19 @@ TRUE if successful, FALSE otherwise (the window was already split).
|
||||
|
||||
\wxheading{Remarks}
|
||||
|
||||
This should be called if you wish to initially view two panes. It can also be called at any subsequent time,
|
||||
but the application should check that the window is not currently split using \helpref{IsSplit}{wxsplitterwindowissplit}.
|
||||
This should be called if you wish to initially view two panes. It can also be
|
||||
called at any subsequent time, but the application should check that the
|
||||
window is not currently split using \helpref{IsSplit}{wxsplitterwindowissplit}.
|
||||
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{wxSplitterWindow::SplitVertically}{wxsplitterwindowsplitvertically}, \helpref{wxSplitterWindow::IsSplit}{wxsplitterwindowissplit},\rtfsp
|
||||
\helpref{wxSplitterWindow::Unsplit}{wxsplitterwindowunsplit}.
|
||||
\helpref{wxSplitterWindow::Unsplit}{wxsplitterwindowunsplit}
|
||||
|
||||
\membersection{wxSplitterWindow::SplitVertically}\label{wxsplitterwindowsplitvertically}
|
||||
|
||||
\func{bool}{SplitVertically}{\param{wxWindow* }{window1}, \param{wxWindow* }{window2},
|
||||
\param{int}{ sashPosition = -1}}
|
||||
\param{int}{ sashPosition = 0}}
|
||||
|
||||
Initializes the left and right panes of the splitter window.
|
||||
|
||||
@@ -295,8 +314,10 @@ Initializes the left and right panes of the splitter window.
|
||||
|
||||
\docparam{window2}{The right pane.}
|
||||
|
||||
\docparam{sashPosition}{The initial position of the sash. If the value is -1, a default position
|
||||
is chosen.}
|
||||
\docparam{sashPosition}{The initial position of the sash. If this value is
|
||||
positive, it specifies the size of the left pane. If it's negative, it's
|
||||
absolute value gives the size of the right pane. Finally, specify 0 (default)
|
||||
to choose the default position (half of the total window width).}
|
||||
|
||||
\wxheading{Return value}
|
||||
|
||||
|
@@ -39,6 +39,12 @@ Deletes string list, deallocating strings.
|
||||
|
||||
Adds string to list, allocating memory.
|
||||
|
||||
\membersection{wxStringList::Clear}
|
||||
|
||||
\func{void}{Clear}{\void}
|
||||
|
||||
Clears all strings from the list.
|
||||
|
||||
\membersection{wxStringList::Delete}
|
||||
|
||||
\func{void}{Delete}{\param{const wxString\& }{s}}
|
||||
|
@@ -11,7 +11,8 @@ This class represents a tab control, which manages multiple tabs.
|
||||
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{wxTabEvent}{wxtabevent}, \helpref{wxImageList}{wximagelist}
|
||||
\helpref{wxTabEvent}{wxtabevent}, \helpref{wxImageList}{wximagelist},\rtfsp
|
||||
\helpref{wxNotebook}{wxnotebook}
|
||||
|
||||
\latexignore{\rtfignore{\wxheading{Members}}}
|
||||
|
||||
@@ -117,7 +118,7 @@ Returns the string for the given tab.
|
||||
|
||||
\membersection{wxTabCtrl::GetRowCount}\label{wxtabctrlgetrowcount}
|
||||
|
||||
\constfunc{bool}{GetRowCount}{\void}
|
||||
\constfunc{int}{GetRowCount}{\void}
|
||||
|
||||
Returns the number of rows in the tab control.
|
||||
|
||||
|
48
docs/latex/wx/tconfig.tex
Normal file
48
docs/latex/wx/tconfig.tex
Normal file
@@ -0,0 +1,48 @@
|
||||
\section{Config classes overview}\label{wxconfigoverview}
|
||||
|
||||
Classes: \helpref{wxConfig}{wxconfigbase}
|
||||
|
||||
This overview briefly describes what the config classes are and what are the
|
||||
for. All the details about how to use them may be found in the description of
|
||||
the \helpref{wxConfigBase}{wxconfigbase} class and the documentation of the
|
||||
file, registry and INI file based implementations mentions all the
|
||||
features/limitations specific to each one of these versions.
|
||||
|
||||
The config classes provide a way to store some application configuration
|
||||
information. They were especially designed for this usage and, although may
|
||||
probably be used for many other things as well, should be limited to it. It
|
||||
means that this information should be:
|
||||
\begin{itemize}
|
||||
\item{1.} Typed, i.e. strings or numbers for the moment. You can not store
|
||||
binary data, for example.
|
||||
\item{2.} Small. For instance, it is not recommended to use the Windows
|
||||
registry for amounts of data more than a couple of kilobytes.
|
||||
\item{3.} Not performance critical, neither from speed nor from memory
|
||||
consumption point of view.
|
||||
\end{itemize}
|
||||
|
||||
On the other hand, the provided features make them very useful for storing all
|
||||
kind of small to medioum volumes of hierarchically organized heterogenous
|
||||
data. In short, this is a place where you can conveniently stuff all your data
|
||||
(numbers and strings) organizing it in a tree where you use the
|
||||
filesystem-like paths to specify the location of a piece of data. In
|
||||
particular, these classes were designed to be as easy to use as possible.
|
||||
|
||||
From another point of view, they provide an interface which hides the
|
||||
differences between the Windows registry and the standard Unix text format
|
||||
configuration files. Other (future) implementations of wxConfigBase might also
|
||||
understand GTK ressource files or their analogues on the KDE side.
|
||||
|
||||
In any case, each implementation of wxConfigBase does its best (although due
|
||||
to the limitations of the underlying physical storage as in the case of
|
||||
wxIniConfigs it may not implement 100\% of the base class functionality) to
|
||||
make the data look the same way everywhere. So you have the groups of entries
|
||||
and the entries themselves. Each entry contains either a string or a number
|
||||
(or a boolean value... support for other types of data such as dates or
|
||||
timestamps is planned) and is identified by the full path to it: something
|
||||
like /MyApp/UserPreferences/Colors/Foreground. The previous elements in the
|
||||
path are the group names, each name may contain an arbitrary number of entries
|
||||
and subgroups. The path components are {\bf always} separated with a slash,
|
||||
even though some implementations use the backslash internally. The further
|
||||
details (including how to read/write these entries) may be found in
|
||||
\helpref{wxConfigBase}{wxconfigbase} documentation.
|
@@ -1,56 +1,84 @@
|
||||
\section{Debugging overview}\label{debuggingoverview}
|
||||
|
||||
Classes: \helpref{wxDebugContext}{wxdebugcontext}, \helpref{wxDebugStreamBuf}{wxdebugstreambuf},
|
||||
\rtfsp\helpref{wxObject}{wxobject}
|
||||
Classes, functions and macros: \helpref{wxDebugContext}{wxdebugcontext}, \helpref{wxObject}{wxobject}, \helpref{wxLog}{wxlog},
|
||||
\rtfsp\helpref{Log functions}{logfunctions}, \helpref{Debug macros}{debugmacros}
|
||||
|
||||
Various classes, functions and macros are provided in wxWindows to help you debug
|
||||
your application. Most of these are only available if you compile both wxWindows,
|
||||
your application and {\it all} libraries that use wxWindows with the DEBUG flag
|
||||
set to 1 or more.
|
||||
your application and {\it all} libraries that use wxWindows with the \_\_WXDEBUG\_\_ symbol
|
||||
defined. You can also test the \_\_WXDEBUG\_\_ symbol in your own applications to execute
|
||||
code that should be active only in debug mode.
|
||||
|
||||
wxDebugContext is a class that never gets instantiated, but ties together
|
||||
various functions and variables. It allows you to set the debugging stream, dump
|
||||
all objects to that stream, write statistics about object allocation, and
|
||||
\wxheading{wxDebugContext}
|
||||
|
||||
\helpref{wxDebugContext}{wxdebugcontext} is a class that never gets instantiated, but ties together
|
||||
various static functions and variables. It allows you to dump all objects to that stream, write statistics about object allocation, and
|
||||
check memory for errors.
|
||||
|
||||
You can use the \helpref{WXTRACE}{trace} macro to output debugging information in DEBUG mode;
|
||||
it will be defined to nothing for non-debugging code.
|
||||
|
||||
It is good practice to define a Dump member function for each class you derive
|
||||
from a wxWindows class, so that wxDebugContext::Dump can call it and
|
||||
It is good practice to define a \helpref{wxObject::Dump}{wxobjectdump} member function for each class you derive
|
||||
from a wxWindows class, so that \helpref{wxDebugContext::Dump}{wxdebugcontextdump} can call it and
|
||||
give valuable information about the state of the application.
|
||||
|
||||
If you have difficulty tracking down a memory leak, recompile
|
||||
in debugging mode and call \helpref{wxDebugContext::Dump}{wxdebugcontextdump} and \helpref{wxDebugContext::PrintStatistics}{wxdebugcontextprintstatistics} at
|
||||
appropriate places. They will tell you what objects have not yet been
|
||||
deleted, and what kinds of object they are. In fact, in debug mode wxWindows will automatically
|
||||
detect memory leaks when your application is about to exit, and if there are any leaks,
|
||||
will give you information about the problem. (How much information depends on the operating system
|
||||
and compiler -- some systems don't allow all memory logging to be enabled). See the
|
||||
memcheck sample for example of usage.
|
||||
|
||||
For wxDebugContext to do its work, the {\it new} and {\it delete}\rtfsp
|
||||
operators for wxObject have been redefined to store extra information
|
||||
about dynamically allocated objects (but not statically declared
|
||||
objects). This slows down a debugging version of an application, but can
|
||||
in theory find difficult-to-detect memory leaks (objects are not
|
||||
find difficult-to-detect memory leaks (objects are not
|
||||
deallocated), overwrites (writing past the end of your object) and
|
||||
underwrites (writing to memory in front of the object).
|
||||
|
||||
If you have difficulty tracking down a memory leak, recompile
|
||||
in debugging mode and call wxDebugContext::Dump and wxDebugContext::Statistics
|
||||
at appropriate places. They will tell you what objects have not yet been
|
||||
deleted, and what kinds of object they are.
|
||||
|
||||
If you use the macro WXDEBUG\_NEW instead of the normal 'new', the debugging
|
||||
output (and error messages reporting memory problems) will also tell you what
|
||||
file and on what line you allocated the object.
|
||||
|
||||
To avoid the need for replacing existing new operators with WXDEBUG\_NEW, you
|
||||
can write this at the top of each application file:
|
||||
If debugging mode is on and the symbol wxUSE\_GLOBAL\_MEMORY\_OPERATORS is set
|
||||
to 1 in setup.h, 'new' is defined to be:
|
||||
|
||||
{\small
|
||||
\begin{verbatim}
|
||||
#define new WXDEBUG\_NEW
|
||||
#define new new(__FILE__,__LINE__)
|
||||
\end{verbatim}
|
||||
}%
|
||||
|
||||
In non-debugging mode, this will revert to the usual interpretation
|
||||
of new. Note that for this not to mess up new-based allocation of non-wxObject derived classes and
|
||||
built-in types, there are global definitions of new and delete which match
|
||||
the syntax required for storing filename and line numbers. These merely
|
||||
call malloc and free, and so do not do anything interesting. The definitions
|
||||
may possibly cause multiple symbol problems for some compilers and so might
|
||||
need to be omitted by setting the USE\_GLOBAL\_MEMORY\_OPERATORS to 0 in wx\_setup.h
|
||||
All occurrences of 'new' in wxWindows and your own application will use
|
||||
the overridden form of the operator with two extra arguments. This means that the debugging
|
||||
output (and error messages reporting memory problems) will tell you what
|
||||
file and on what line you allocated the object. Unfortunately not all
|
||||
compilers allow this definition to work properly, but most do.
|
||||
|
||||
\wxheading{Debug macros}
|
||||
|
||||
You should also use \helpref{debug macros}{debugmacros} as part of a `defensive programming' strategy,
|
||||
scattering wxASSERTs liberally to test for problems in your code as early as possible. Forward thinking
|
||||
will save a surprising amount of time in the long run.
|
||||
|
||||
\helpref{wxASSERT}{wxassert} is used to pop up an error message box when a condition
|
||||
is not true. You can also use \helpref{wxASSERT\_MSG}{wxassertmsg} to supply your
|
||||
own helpful error message. For example:
|
||||
|
||||
{\small
|
||||
\begin{verbatim}
|
||||
void MyClass::MyFunction(wxObject* object)
|
||||
{
|
||||
wxASSERT_MSG( (object != NULL), "object should not be NULL in MyFunction!" );
|
||||
|
||||
...
|
||||
};
|
||||
\end{verbatim}
|
||||
}
|
||||
|
||||
The message box allows you to continue execution or abort the program. If you are running
|
||||
the application inside a debugger, you will be able to see exactly where the problem was.
|
||||
|
||||
\wxheading{Logging functions}
|
||||
|
||||
You can use the \helpref{wxLogDebug}{wxlogdebug} and \helpref{wxLogTrace}{wxlogtrace} functions to output debugging information in debug mode;
|
||||
it will do nothing for non-debugging code.
|
||||
|
||||
\subsection{wxDebugContext overview}\label{wxdebugcontextoverview}
|
||||
|
||||
@@ -59,8 +87,7 @@ need to be omitted by setting the USE\_GLOBAL\_MEMORY\_OPERATORS to 0 in wx\_set
|
||||
Class: \helpref{wxDebugContext}{wxdebugcontext}
|
||||
|
||||
wxDebugContext is a class for performing various debugging and memory tracing
|
||||
operations. wxDebugContext, and the related macros and function WXTRACE and
|
||||
wxTrace, are only present if USE\_DEBUG\_CONTEXT is used.
|
||||
operations.
|
||||
|
||||
This class has only static data and function members, and there should be
|
||||
no instances. Probably the most useful members are SetFile (for directing output
|
||||
@@ -70,35 +97,26 @@ Dump (for dumping the dynamically allocated objects) and PrintStatistics
|
||||
Check to check memory blocks for integrity.
|
||||
|
||||
Here's an example of use. The SetCheckpoint ensures that only the
|
||||
allocations done after the checkpoint will be dumped. Unfortunately
|
||||
the define of new to WXDEBUG\_NEW does not work for Borland C++ (and
|
||||
perhaps other compilers) because it fails to find the correct overloaded
|
||||
operator for non-object usage of new. Instead, you need to use WXDEBUG\_NEW
|
||||
explicitly if there are any examples of non-object new usage in the file.
|
||||
allocations done after the checkpoint will be dumped.
|
||||
|
||||
\begin{verbatim}
|
||||
#define new WXDEBUG_NEW
|
||||
|
||||
wxDebugContext::SetCheckpoint();
|
||||
|
||||
wxDebugContext::SetFile("c:\\temp\\debug.log");
|
||||
|
||||
wxString *thing = new wxString;
|
||||
|
||||
// Proves that defining 'new' to be 'WXDEBUG_NEW' doesn't mess up
|
||||
// non-object allocation. Doesn't work for Borland C++.
|
||||
char *ordinaryNonObject = new char[1000];
|
||||
|
||||
wxDebugContext::Dump();
|
||||
wxDebugContext::PrintStatistics();
|
||||
\end{verbatim}
|
||||
|
||||
You can use wxDebugContext if DEBUG is 1 or more, or you can use it
|
||||
at any other time (if USE\_DEBUG\_CONTEXT is 1). It is not disabled
|
||||
for DEBUG = 1 (as in earlier versions of wxWindows) because you
|
||||
may not wish to recompile wxWindows and your entire application
|
||||
just to make use of the error logging facility. This is especially
|
||||
true in a Windows NT or Windows 95 environment, where you cannot
|
||||
easily output to a debug window: wxDebugContext can be used to
|
||||
write to log files instead.
|
||||
You can use wxDebugContext if \_\_WXDEBUG\_\_ is defined, or you can use it
|
||||
at any other time (if wxUSE\_DEBUG\_CONTEXT is set to 1 in setup.h). It is not disabled
|
||||
in non-debug mode because you may not wish to recompile wxWindows and your entire application
|
||||
just to make use of the error logging facility.
|
||||
|
||||
Note: wxDebugContext::SetFile has a problem at present, so use the default stream instead.
|
||||
Eventually the logging will be done through the wxLog facilities instead.
|
||||
|
||||
|
@@ -38,8 +38,8 @@ These might override predefined event handlers such as \helpref{wxWindow::OnChar
|
||||
\rtfsp\helpref{wxWindow::OnMouseEvent}{wxwindowonmouseevent}.
|
||||
|
||||
Most modern applications will have an on-line, hypertext help system; for this, you
|
||||
need wxHelp and the \helpref{wxHelpControllerBase}{wxhelpcontrollerbase} class to control
|
||||
wxHelp. To add sparkle, you might use the wxToolBar class (documented separately)
|
||||
need wxHelp and the \helpref{wxHelpController}{wxhelpcontroller} class to control
|
||||
wxHelp. To add sparkle, you might use the wxToolBar class
|
||||
which makes heavy use of the \helpref{wxBitmap}{wxbitmap}.
|
||||
|
||||
GUI applications aren't all graphical wizardry. List and hash table needs are
|
||||
|
146
docs/latex/wx/tlog.tex
Normal file
146
docs/latex/wx/tlog.tex
Normal file
@@ -0,0 +1,146 @@
|
||||
\section{Log classes overview}\label{wxlogoverview}
|
||||
|
||||
Classes: \helpref{wxLog}{wxlog}
|
||||
%\helpref{wxLogStderr}{wxlogstderr},%
|
||||
%\helpref{wxLogOstream}{wxlogostream}, \helpref{wxLogTextCtrl}{wxlogtextctrl},%
|
||||
%\helpref{wxLogWindow}{wxlogwindow}, \helpref{wxLogGui}{wxloggui},%
|
||||
%\helpref{wxLogNull}{wxlognull}%
|
||||
|
||||
This is a general overview of logging classes provided by wxWindows. The word
|
||||
logging here has a broad sense, including all of the program output, not only
|
||||
non interactive messages. The logging facilities included in wxWindows provide
|
||||
the base {\it wxLog} class which defines the standard interface for a {\it log
|
||||
target} as well as several standard implementations of it and a family of
|
||||
functions to use with them.
|
||||
|
||||
First of all, no knowledge of {\it wxLog} classes is needed to use them. For
|
||||
this, you should only know about {\it wxLogXXX()} functions. All of them have
|
||||
the same syntax as {\it printf()}, i.e. they take the format string as the
|
||||
first argument and a variable number of arguments. Here are all of them:
|
||||
|
||||
\begin{itemize}\itemsep=0pt
|
||||
\item{\bf wxLogFatalError} which is like {\it wxLogError}, but also
|
||||
terminates the program with the exit code 3 (using {\it abort()} standard
|
||||
function also terminates the program with this exit code).
|
||||
\item{\bf wxLogError} is the function to use for error messages, i.e. the
|
||||
messages that must be shown to the user. The default processing is to pop up a
|
||||
message box to inform the user about it.
|
||||
\item{\bf wxLogWarning} for warnings - they are also normally shown to the
|
||||
user, but don't interrupt the program work.
|
||||
\item{\bf wxLogMessage} is for all normal, informational messages. They also
|
||||
appear in a message box by default (but it can be changed, see below). Notice
|
||||
that the standard behaviour is to not show informational messages if there are
|
||||
any errors later - the logic being that the later error messages make the
|
||||
informational messages preceding them meaningless.
|
||||
\item{\bf wxLogVerbose} is for verbose output. Normally, it's suppressed, but
|
||||
might be activated if the user wishes to know more details about the program
|
||||
progress (another, but possibly confusing name for the same function is {\bf
|
||||
wxLogInfo}).
|
||||
\item{\bf wxLogStatus} is for status messages - they will go into the status
|
||||
bar of the active or specified (as the first argument) \helpref{wxFrame}{wxframe} if it has one.
|
||||
\item{\bf wxLogSysError} is mostly used by wxWindows itself, but might be
|
||||
handy for logging errors after system call (API function) failure. It logs the
|
||||
specified message text as well as the last system error
|
||||
code ({\it errno} or {\it ::GetLastError()} depending on the platform) and the corresponding error
|
||||
message. The second form of this function takes the error code explitly as the
|
||||
first argument.
|
||||
\item{\bf wxLogDebug} is {\bf the} right function for debug output. It only
|
||||
does anything at all in the debug mode (when the preprocessor symbol
|
||||
\_\_WXDEBUG\_\_ is defined) and expands to nothing in release mode (otherwise).
|
||||
\item{\bf wxLogTrace} as {\bf wxLogDebug} only does something in debug
|
||||
build. The reason for making it a separate function from it is that usually
|
||||
there are a lot of trace messages, so it might make sense to separate them
|
||||
from other debug messages which would be flooded in them. Moreover, the second
|
||||
version of this function takes a trace mask as the first argument which allows
|
||||
to further restrict the amount of messages generated.
|
||||
\end{itemize}
|
||||
|
||||
The usage of these functions should be fairly straightforward, however it may
|
||||
be asked why not use the other logging facilities, such as C standard stdio
|
||||
functions or C++ streams. The short answer is that they're all very good
|
||||
generic mechanisms, but are not really adapted for wxWindows, while the log
|
||||
classes are. Some of advantages in using wxWindows log functions are:
|
||||
|
||||
\begin{itemize}\itemsep=0pt
|
||||
\item{\bf Portability} It's a common practice to use {\it printf()} statements or
|
||||
cout/cerr C++ streams for writing out some (debug or otherwise) information.
|
||||
Although it works just fine under Unix, these messages go strictly nowhere
|
||||
under Windows where the stdout of GUI programs is not assigned to anything.
|
||||
Thus, you might view {\it wxLogMessage()} as a simple substitute for {\it
|
||||
printf()}.
|
||||
\item{\bf Flexibility} The output of wxLog functions can be redirected or
|
||||
suppressed entirely based on their importance, which is either impossible or
|
||||
difficult to do with traditional methods. For example, only error messages, or
|
||||
only error messages and warnings might be logged, filtering out all
|
||||
informational messages.
|
||||
\item{\bf Completeness} Usually, an error message should be presented to the user
|
||||
when some operation fails. Let's take a quite simple but common case of a file
|
||||
error: suppose that you're writing your data file on disk and there is not
|
||||
enough space. The actual error might have been detected inside wxWindows code
|
||||
(say, in {\it wxFile::Write}), so the calling function doesn't really know the
|
||||
exact reason of the failure, it only knows that the data file couldn't be
|
||||
written to the disk. However, as wxWindows uses {\it wxLogError()} in this
|
||||
situation, the exact error code (and the corresponding error message) will be
|
||||
given to the user together with "high level" message about data file writing
|
||||
error.
|
||||
\end{itemize}
|
||||
|
||||
After having enumerated all the functions which are normally used to log the
|
||||
messages, and why would you want to use them we now describe how all this
|
||||
works.
|
||||
|
||||
wxWindows has the notion of a {\it log target}: it's just a class deriving
|
||||
from \helpref{wxLog}{wxlog}. As such, it implements the virtual functions of
|
||||
the base class which are called when a message is logged. Only one log target
|
||||
is {\it active} at any moment, this is the one used by \it{wxLogXXX()}
|
||||
functions. The normal usage of a log object (i.e. object of a class derived
|
||||
from wxLog) is to install it as the active target with a call to {\it
|
||||
SetActiveTarget()} and it will be used automatically by all subsequent calls
|
||||
to {\it wxLogXXX()} functions.
|
||||
|
||||
To create a new log target class you only need to derive it from wxLog and
|
||||
implement one (or both) of {\it DoLog()} and {\it DoLogString()} in it. The
|
||||
second one is enough if you're happy with the standard wxLog message
|
||||
formatting (prepending "Error:" or "Warning:", timestamping \&c) but just want
|
||||
to send the messages somewhere else. The first one may be overridden to do
|
||||
whatever you want but you have to distinguish between the different message
|
||||
types yourself.
|
||||
|
||||
There are some predefined classes deriving from wxLog and which might be
|
||||
helpful to see how you can create a new log target class and, of course, may
|
||||
also be used without any change. There are:
|
||||
|
||||
\begin{itemize}\itemsep=0pt
|
||||
\item{\bf wxLogStderr} This class logs messages to a {\it FILE *}, using
|
||||
stderr by default as its name suggests.
|
||||
\item{\bf wxLogStream} This class has the same functionality as wxLogStderr,
|
||||
but uses {\it ostream} and cerr instead of {\it FILE *} and stderr.
|
||||
\item{\bf wxLogGui} This is the standard log target for wxWindows
|
||||
applications (it's used by default if you don't do anything) and provides the
|
||||
most reasonable handling of all types of messages for given platform.
|
||||
\item{\bf wxLogWindow} This log target provides a "log console" which
|
||||
collects all messages generated by the application and also passes them to the
|
||||
previous active log target. The log window frame has a menu allowing user to
|
||||
clear the log, close it completely or save all messages to file.
|
||||
\item{\bf wxLogNull} The last log class is quite particular: it doesn't do
|
||||
anything. The objects of this class may be instantiated to (temporarily)
|
||||
suppress output of {\it wxLogXXX()} functions. As an example, trying to open a
|
||||
non-existing file will usually provoke an error message, but if you for some
|
||||
reason it's unwanted, just use this construction:
|
||||
|
||||
{\small
|
||||
\begin{verbatim}
|
||||
wxFile file;
|
||||
|
||||
// wxFile.Open() normally complains if file can't be opened, we don't want it
|
||||
{
|
||||
wxLogNull logNo;
|
||||
if ( !file.Open("bar") )
|
||||
... process error ourselves ...
|
||||
} // ~wxLogNull called, old log sink restored
|
||||
|
||||
wxLogMessage("..."); // ok
|
||||
\end{verbatim}
|
||||
}
|
||||
\end{itemize}
|
||||
|
@@ -5,6 +5,8 @@
|
||||
This chapter contains a selection of topic overviews.
|
||||
|
||||
\input tapp.tex
|
||||
\input tlog.tex
|
||||
\input tconfig.tex
|
||||
\input tbitmap.tex
|
||||
\input tdialog.tex
|
||||
\input tfont.tex
|
||||
|
@@ -8,10 +8,13 @@ Another is that instances of a class cannot be created just by knowing the name
|
||||
which makes facilities such as persistent storage hard to implement.
|
||||
|
||||
Most C++ GUI frameworks overcome these limitations by means of a set of
|
||||
macros and functions and wxWindows (from version 1.62) is no exception.
|
||||
macros and functions and wxWindows is no exception.
|
||||
Each class that you wish to be known the type system should have
|
||||
a macro such as DECLARE\_DYNAMIC\_CLASS just inside the class declaration.
|
||||
The macro IMPLEMENT\_DYNAMIC\_CLASS should be in the implementation file.
|
||||
Note that these are entirely optional; use them if you wish to check object
|
||||
types, or create instances of classes using the class name. However,
|
||||
it is good to get into the habit of adding these macros for all classes.
|
||||
|
||||
Variations on these \helpref{macros}{macros} are used for multiple inheritance, and abstract
|
||||
classes that cannot be instantiated dynamically or otherwise.
|
||||
|
119
docs/latex/wx/url.tex
Normal file
119
docs/latex/wx/url.tex
Normal file
@@ -0,0 +1,119 @@
|
||||
\section{\class{wxURL}}\label{wxurl}
|
||||
|
||||
\wxheading{Derived from}
|
||||
|
||||
\helpref{wxObject}{wxobject}
|
||||
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{wxSocketBase}{wxsocketbase}, \helpref{wxProtocol}{wxprotocol}
|
||||
|
||||
% ----------------------------------------------------------------------------
|
||||
% Members
|
||||
% ----------------------------------------------------------------------------
|
||||
|
||||
\latexignore{\rtfignore{\membersection{Members}}}
|
||||
|
||||
\membersection{wxURL::wxURL}\label{wxurlconstr}
|
||||
|
||||
\func{}{wxURL}{\param{const wxString\&}{ url}}
|
||||
|
||||
Constructs an URL object from the string.
|
||||
|
||||
\wxheading{Parameters}
|
||||
|
||||
\docparam{url}{Url string to parse.}
|
||||
|
||||
\membersection{wxURL::\destruct{wxURL}}
|
||||
|
||||
\func{}{\destruct{wxURL}}{\void}
|
||||
|
||||
Destroys the URL object.
|
||||
|
||||
%
|
||||
% GetProtocolName
|
||||
%
|
||||
\membersection{wxURL::GetProtocolName}
|
||||
|
||||
\constfunc{wxString}{GetProtocolName}{\void}
|
||||
|
||||
Returns the name of the protocol which will be used to get the URL.
|
||||
|
||||
%
|
||||
% GetProtocol
|
||||
%
|
||||
\membersection{wxURL::GetProtocol}
|
||||
|
||||
\func{wxProtocol\&}{GetProtocol}{\void}
|
||||
|
||||
Returns a reference to the protocol which will be used to get the URL.
|
||||
|
||||
%
|
||||
% GetError
|
||||
%
|
||||
\membersection{wxURL::GetError}
|
||||
|
||||
\constfunc{wxURLError}{GetError}{\void}
|
||||
|
||||
Returns the last error. This error refers to the URL parsing or to the protocol.
|
||||
It can be one of these errors:
|
||||
|
||||
\twocolwidtha{7cm}
|
||||
\begin{twocollist}\itemsep=0pt
|
||||
\twocolitem{{\bf wxURL\_NOERR}}{No error.}
|
||||
\twocolitem{{\bf wxURL\_SNTXERR}}{Syntax error in the URL string.}
|
||||
\twocolitem{{\bf wxURL\_NOPROTO}}{Found no protocol which can get this URL.}
|
||||
\twocolitem{{\bf wxURL\_NOHOST}}{An host name is required for this protocol.}
|
||||
\twocolitem{{\bf wxURL\_NOPATH}}{A path is required for this protocol.}
|
||||
\twocolitem{{\bf wxURL\_CONNERR}}{Connection error.}
|
||||
\twocolitem{{\bf wxURL\_PROTOERR}}{An error occured during negotiation.}
|
||||
\end{twocollist}%
|
||||
|
||||
%
|
||||
% GetInputStream
|
||||
%
|
||||
\membersection{wxURL::GetInputStream}
|
||||
|
||||
\func{wxInputStream *}{GetInputStream}{\void}
|
||||
|
||||
Initializes the protocol and opens the input stream.
|
||||
|
||||
\wxheading{Return value}
|
||||
|
||||
It returns a read-only wxStream.
|
||||
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{wxInputStream}{wxinputstream}
|
||||
|
||||
%
|
||||
% SetDefaultProxy
|
||||
%
|
||||
\membersection{wxURL::SetDefaultProxy}\label{wxurlsetdefaultproxy}
|
||||
|
||||
\func{static void}{SetDefaultProxy}{\param{const wxString\&}{ url\_proxy}}
|
||||
|
||||
Sets the default proxy server to use to get the URL. The string specifies
|
||||
the proxy like this: <hostname>:<port number>.
|
||||
|
||||
\wxheading{Parameters}
|
||||
|
||||
\docparam{url\_proxy}{Specifies the proxy to use}
|
||||
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{wxURL::SetProxy}{wxurlsetproxy}
|
||||
|
||||
%
|
||||
% SetProxy
|
||||
%
|
||||
\membersection{wxURL::SetProxy}\label{wxurlsetproxy}
|
||||
|
||||
\func{void}{SetProxy}{\param{const wxString\&}{ url\_proxy}}
|
||||
|
||||
Sets the proxy to use for this URL.
|
||||
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{wxURL::SetDefaultProxy}{wxurlsetdefaultproxy}
|
||||
|
@@ -185,6 +185,60 @@ Applies to managed windows (wxFrame and wxDialog classes) only.
|
||||
\helpref{wxWindow::Destroy}{wxwindowdestroy},\rtfsp
|
||||
\helpref{wxCloseEvent}{wxcloseevent}
|
||||
|
||||
\membersection{wxWindow::ConvertDialogToPixels}\label{wxwindowconvertdialogtopixels}
|
||||
|
||||
\func{wxPoint}{ConvertDialogToPixels}{\param{const wxPoint\&}{ pt}}
|
||||
|
||||
\func{wxSize}{ConvertDialogToPixels}{\param{const wxSize\&}{ sz}}
|
||||
|
||||
Converts a point or size from dialog units to pixels.
|
||||
|
||||
For the x dimension, the dialog units are multiplied by the average character width
|
||||
and then divided by 4.
|
||||
|
||||
For the y dimension, the dialog units are multiplied by the average character height
|
||||
and then divided by 8.
|
||||
|
||||
\wxheading{Remarks}
|
||||
|
||||
Dialog units are used for maintaining a dialog's proportions even if the font changes.
|
||||
Dialogs created using Dialog Editor optionally use dialog units.
|
||||
|
||||
You can also use these functions programmatically. A convenience macro is defined:
|
||||
|
||||
{\small
|
||||
\begin{verbatim}
|
||||
#define wxDLG_UNIT(parent, pt) parent->ConvertDialogToPixels(pt)
|
||||
\end{verbatim}
|
||||
}
|
||||
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{wxWindow::ConvertPixelsToDialog}{wxwindowconvertpixelstodialog}
|
||||
|
||||
\membersection{wxWindow::ConvertPixelsToDialog}\label{wxwindowconvertpixelstodialog}
|
||||
|
||||
\func{wxPoint}{ConvertPixelsToDialog}{\param{const wxPoint\&}{ pt}}
|
||||
|
||||
\func{wxSize}{ConvertPixelsToDialog}{\param{const wxSize\&}{ sz}}
|
||||
|
||||
Converts a point or size from pixels to dialog units.
|
||||
|
||||
For the x dimension, the pixels are multiplied by 4 and then divided by the average
|
||||
character width.
|
||||
|
||||
For the y dimension, the pixels are multipled by 8 and then divided by the average
|
||||
character height.
|
||||
|
||||
\wxheading{Remarks}
|
||||
|
||||
Dialog units are used for maintaining a dialog's proportions even if the font changes.
|
||||
Dialogs created using Dialog Editor optionally use dialog units.
|
||||
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{wxWindow::ConvertDialogToPixels}{wxwindowconvertdialogtopixels}
|
||||
|
||||
\membersection{wxWindow::Destroy}\label{wxwindowdestroy}
|
||||
|
||||
\func{virtual bool}{Destroy}{\void}
|
||||
@@ -278,6 +332,16 @@ Note that this is a static function, so it can be called without needing a wxWin
|
||||
|
||||
\helpref{wxWindow::SetFocus}{wxwindowsetfocus}
|
||||
|
||||
\membersection{wxWindow::FindWindow}\label{wxwindowfindwindow}
|
||||
|
||||
\func{wxWindow*}{FindWindow}{\param{long}{ id}}
|
||||
|
||||
Find a child of this window, by identifier.
|
||||
|
||||
\func{wxWindow*}{FindWindow}{\param{const wxString\&}{ name}}
|
||||
|
||||
Find a child of this window, by name.
|
||||
|
||||
\membersection{wxWindow::Fit}\label{wxwindowfit}
|
||||
|
||||
\func{virtual void}{Fit}{\void}
|
||||
@@ -556,6 +620,17 @@ Gets the window's title. Applicable only to frames and dialogs.
|
||||
|
||||
\helpref{wxWindow::SetTitle}{wxwindowsettitle}
|
||||
|
||||
\membersection{wxWindow::GetUpdateRegion}\label{wxwindowgetupdateregion}
|
||||
|
||||
\constfunc{virtual wxRegion}{GetUpdateRegion}{\void}
|
||||
|
||||
Returns the region specifying which parts of the window have been damaged. Should
|
||||
only be called within an \helpref{OnPaint}{wxwindowonpaint} event handler.
|
||||
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{wxRegion}{wxregion}, \helpref{wxRegionIterator}{wxregioniterator}, \helpref{wxWindow::OnPaint}{wxwindowonpaint}
|
||||
|
||||
\membersection{wxWindow::GetWindowStyleFlag}
|
||||
|
||||
\constfunc{long}{GetWindowStyleFlag}{\void}
|
||||
@@ -801,7 +876,7 @@ you may delete other windows.
|
||||
|
||||
\wxheading{Remarks}
|
||||
|
||||
Derive your own class to handle this message. The default handler returns FALSE.
|
||||
Derive your own class to handle this message. The default handler returns TRUE.
|
||||
|
||||
\wxheading{See also}
|
||||
|
||||
@@ -826,6 +901,14 @@ using \helpref{wxCloseEvent::GetForce}{wxcloseeventgetforce}. If this is TRUE,
|
||||
destroy the window using \helpref{wxWindow::Destroy}{wxwindowdestroy}.
|
||||
If not, it is up to you whether you respond by destroying the window.
|
||||
|
||||
(Note: GetForce is now superceded by CanVeto. So to test whether forced destruction of
|
||||
the window is required, test for the negative of CanVeto. If CanVeto returns FALSE,
|
||||
it is not possible to skip window deletion.)
|
||||
|
||||
If you don't destroy the window, you should call \helpref{wxCloseEvent::Veto}{wxcloseeventveto} to
|
||||
let the calling code know that you did not destroy the window. This allows the \helpref{wxWindow::Close}{wxwindowclose} function
|
||||
to return TRUE or FALSE depending on whether the close instruction was honoured or not.
|
||||
|
||||
\wxheading{Remarks}
|
||||
|
||||
The \helpref{wxWindow::OnClose}{wxwindowonclose} virtual function remains
|
||||
@@ -839,7 +922,9 @@ destroying the window if it returns TRUE or if the close is being forced.
|
||||
\helpref{wxWindow::Close}{wxwindowclose},\rtfsp
|
||||
\helpref{wxWindow::OnClose}{wxwindowonclose},\rtfsp
|
||||
\helpref{wxWindow::Destroy}{wxwindowdestroy},\rtfsp
|
||||
\helpref{wxCloseEvent}{wxcloseevent}
|
||||
\helpref{wxCloseEvent}{wxcloseevent},\rtfsp
|
||||
\helpref{wxApp::OnQueryEndSession}{wxapponqueryendsession},\rtfsp
|
||||
\helpref{wxApp::OnEndSession}{wxapponendsession}
|
||||
|
||||
\membersection{wxWindow::OnDropFiles}\label{wxwindowondropfiles}
|
||||
|
||||
@@ -1072,7 +1157,7 @@ terms of the client area, and are unscrolled, so you will need to do
|
||||
some calculations using the current view position to obtain logical,
|
||||
scrolled units.
|
||||
|
||||
Here is an example of using the \helpref{wxUpdateIterator}{wxupdateiterator} class:
|
||||
Here is an example of using the \helpref{wxRegionIterator}{wxregioniterator} class:
|
||||
|
||||
{\small%
|
||||
\begin{verbatim}
|
||||
@@ -1086,7 +1171,7 @@ void MyWindow::OnPaint(wxPaintEvent& event)
|
||||
ViewStart(&vbX,&vbY);
|
||||
|
||||
int vX,vY,vW,vH; // Dimensions of client area in pixels
|
||||
wxUpdateIterator upd(this); // get the update rect list
|
||||
wxRegionIterator upd(GetUpdateRegion()); // get the update rect list
|
||||
|
||||
while (upd)
|
||||
{
|
||||
@@ -1114,8 +1199,6 @@ void MyWindow::OnPaint(wxPaintEvent& event)
|
||||
\helpref{wxPaintDC}{wxpaintdc},\rtfsp
|
||||
\helpref{Event handling overview}{eventhandlingoverview}
|
||||
|
||||
\membersection{wxWindow::OnScroll}\label{wxwindowonscroll}
|
||||
|
||||
\func{void}{OnScroll}{\param{wxScrollEvent\& }{event}}
|
||||
|
||||
Called when a scroll event is received from one of the window's built-in scrollbars.
|
||||
@@ -1347,6 +1430,12 @@ Available only under Windows.
|
||||
Use this function to optimise your scrolling implementations, to minimise the area that must be
|
||||
redrawn.
|
||||
|
||||
\membersection{wxWindow::SetAcceleratorTable}\label{wxwindowsetacceleratortable}
|
||||
|
||||
\func{virtual void}{SetAcceleratorTable}{\param{const wxAcceleratorTable\&}{ accel}}
|
||||
|
||||
Sets the accelerator table for this window. See \helpref{wxAcceleratorTable}{wxacceleratortable}.
|
||||
|
||||
\membersection{wxWindow::SetAutoLayout}\label{wxwindowsetautolayout}
|
||||
|
||||
\func{void}{SetAutoLayout}{\param{const bool}{ autoLayout}}
|
||||
|
36
docs/motif/changes.txt
Normal file
36
docs/motif/changes.txt
Normal file
@@ -0,0 +1,36 @@
|
||||
wxMotif CHANGES
|
||||
---------------
|
||||
|
||||
21/9/98
|
||||
-------
|
||||
|
||||
Julian:
|
||||
|
||||
- Made makefiles for wxMotif source directory and minimal sample.
|
||||
|
||||
- First go at wxApp, wxWindow, wxDialog, wxPen, wxBrush, wxFont,
|
||||
wxColour, wxButton, wxCheckBox, wxTextCtrl, wxStaticText,
|
||||
wxMenu, wxMenuItem, wxMenuBar
|
||||
|
||||
12/11/98
|
||||
--------
|
||||
|
||||
It's a long time since I updated this file. Previously done:
|
||||
|
||||
- wxFrame, wxDialog done.
|
||||
- wxScrolledWindow done (but backing pixmap not used at present).
|
||||
- wxBitmap done though could be tidied it up at some point.
|
||||
- Most basic controls are there, if not rigorously tested.
|
||||
- Some MDI support (menus appear on child frames at present).
|
||||
- wxNotebook almost done.
|
||||
- wxToolBar done (horizontal only, which would be easy to extend
|
||||
to vertical toolbars).
|
||||
|
||||
More recently:
|
||||
|
||||
- Colour and font changing done (question mark over what happens
|
||||
to scrollbars).
|
||||
- Accelerators done (for menu items and buttons). Also event loop
|
||||
tidied up in wxApp so that events are filtered through ProcessXEvent.
|
||||
- wxWindow::GetUpdateRegion should now work.
|
||||
|
70
docs/motif/install.txt
Normal file
70
docs/motif/install.txt
Normal file
@@ -0,0 +1,70 @@
|
||||
wxWindows 2.0 for Motif installation
|
||||
------------------------------------
|
||||
|
||||
- Prerequisites: Motif 1.2 or above, or
|
||||
Lesstif (not yet tested).
|
||||
|
||||
- Download the files wx200gen.zip and wx200mot.zip, and
|
||||
documentation in a preferred format, such as wx200htm.zip
|
||||
or wx200pdf.zip.
|
||||
|
||||
- Make a directory such as ~/wx and unzip the files into this
|
||||
directory. Use the -a option if available to convert the ASCII
|
||||
files to Unix format. Don't worry about files being
|
||||
overwritten: they should be identical anyway.
|
||||
|
||||
- Edit src/make.env to change options according to your local
|
||||
environment. In particular, change WXDIR to where wxWindows is
|
||||
found on your system.
|
||||
Later, there will be a better makefile system
|
||||
and/or alternate make.env files as per wxWindows 1.68.
|
||||
Please feel free to contribute settings files for your environment.
|
||||
|
||||
- Change directory to src/motif and type:
|
||||
|
||||
make -f makefile.unx motif
|
||||
|
||||
This should make the library libwx_motif.a in the lib
|
||||
directory.
|
||||
|
||||
- Make a sample, such as the minimal sample:
|
||||
|
||||
cd samples/minimal
|
||||
make -f makefile.unx motif
|
||||
|
||||
and run the resulting minimal_motif binary.
|
||||
|
||||
Notes:
|
||||
------
|
||||
|
||||
- Better installation and makefile systems are
|
||||
required. I didn't use the wxGTK system because I couldn't
|
||||
understand it or make it work with wxMotif. Also I think
|
||||
we should use something that can be made to work easily
|
||||
with applications outside the wxWindows hierarchy.
|
||||
|
||||
- Debugging mode is switched on by default. To compile in non-debug
|
||||
mode, remove the -D__WXDEBUG__ switch in make.env.
|
||||
|
||||
- Some classes can be switched off in include/wx/motif/setup.h,
|
||||
if you are having trouble with a particular file. However,
|
||||
I'd prefer you to fix the problem and send the fix to me :-) or at
|
||||
least let me know about it.
|
||||
|
||||
- If you run into problems with a missing X11/Xpm.h header, you
|
||||
need to install the XPM package. It can be obtained from:
|
||||
|
||||
ftp://ftp.x.org/contrib/libraries/xpm-3.4k.tar.gz
|
||||
|
||||
Alternatively, edit include/motif/setup.h, set wxUSE_XPM
|
||||
to 0, and recompile. You will not be able to load any XPMs,
|
||||
though (currently the only supported colour bitmap format).
|
||||
|
||||
- Please send bug reports with a description of your environment,
|
||||
compiler and the error message(s) to the wxwin-users mailing list at:
|
||||
|
||||
wxwin-users@wx.dent.med.uni-muenchen.de
|
||||
|
||||
|
||||
Julian Smart, November 1998.
|
||||
julian.smart@ukonline.co.uk
|
145
docs/motif/todo.txt
Normal file
145
docs/motif/todo.txt
Normal file
@@ -0,0 +1,145 @@
|
||||
wxMotif TODO
|
||||
------------
|
||||
|
||||
Updated: 12/11/98
|
||||
|
||||
-------------------------------o-------------------------
|
||||
|
||||
General comment: see the following site for useful Motif widgets.
|
||||
ftp://ftp.x.org/contrib/widgets/motif
|
||||
|
||||
Also, grep for TODO comments in source.
|
||||
|
||||
High Priority
|
||||
-------------
|
||||
|
||||
- Work out why XFreeFont in font.cpp produces a segv. This is
|
||||
currently commented out, which presumably causes a memory leak.
|
||||
|
||||
- Colour setting in widgets (almost done). Should scrollbars take
|
||||
on the background colour? Not right for e.g. wxScrolledWindows,
|
||||
so maybe have wxSystemSettings value for scrollbar colour, and/or
|
||||
ability to set scrollbar colour independently.
|
||||
|
||||
- Optimize wxWindow OnPaint to avoid flicker, collapsing Expose events
|
||||
as per flicker fix in 1.68. It will be tricky to avoid
|
||||
interfering with non-wxScrolledWindow widgets except by
|
||||
explicitly testing for wxScrolledWindow.
|
||||
|
||||
- Implementation of OnEraseBackground. How? Call OnEraseBackground
|
||||
just before OnPaint? Will duplicate Xlib's own erase of the background.
|
||||
However, this is usually OK, because the default wxWindow::OnEraseBackground
|
||||
can do nothing (SetBackgroundColour will make the background look OK).
|
||||
And if a custom OnEraseBackground uses the same colour as the window
|
||||
background, no flicker will be seen. If it does something else, such as
|
||||
painting a tiled bitmap, then a slight flicker might be seen unless
|
||||
X can be persuaded not to repaint the window background by default.
|
||||
|
||||
- Finish wxNotebook.
|
||||
|
||||
- wxSpinButton
|
||||
|
||||
- Tidy dialogs such as the colour and font selectors.
|
||||
|
||||
- Use generic wxTreeCtrl, wxListCtrl: debug and enhance these.
|
||||
|
||||
- Find out why modal dialogs give a grab warning.
|
||||
|
||||
- wxSystemSettings. Eventually, should have control panel-like utility
|
||||
to change colours/fonts but meanwhile should maybe read them
|
||||
from a file.
|
||||
|
||||
- wxThread (hopefully, similar to wxGTK)
|
||||
|
||||
- wxGrid: scrollbars don't hide; problem with cell selection.
|
||||
|
||||
- MDI: seems to be broken for a more complex application I'm testing.
|
||||
Frame decorations don't draw properly, and a child window doesn't
|
||||
process events properly. So probably we should have an alternative
|
||||
implementation that uses tabs, a la wxGTK. The system menu could
|
||||
be implemented using a pop-up menu that applies to the currently
|
||||
active window.
|
||||
|
||||
- Controls in a wxToolBar don't work. Probably due to form layout
|
||||
problems; the workaround is to use a separate panel for controls.
|
||||
|
||||
- Miscellaneous events.
|
||||
|
||||
- Write makefiles for all samples and utilities.
|
||||
|
||||
- Create some samples for testing.
|
||||
|
||||
Low Priority
|
||||
------------
|
||||
|
||||
- Better makefile system that can put objects in different dirs.
|
||||
Use wxGTK config system? It's really complex to debug and
|
||||
doesn't offer a way of compiling apps outside the wxWin
|
||||
hierarchy.
|
||||
|
||||
- Extra wxBitmap formats: PNG, BMP. Could use old wxWin 1.68
|
||||
wxImage code (derived from XV) for BMP/GIF but it's very bloated. However,
|
||||
when implemented as extra bitmap handlers, the code won't be linked
|
||||
unless needed.
|
||||
|
||||
- Print/preview framework in print.cpp (see wxGTK).
|
||||
|
||||
- Enhance event handling such that you override e.g. left-click
|
||||
and unless you call the base OnMouseEvent, the click won't be
|
||||
sent to the button. Required for Dialog Editor.
|
||||
|
||||
- Get Dialog Editor working under Motif.
|
||||
|
||||
- New wxHelp version: try using the XmHTML widget at
|
||||
http://www.xs4all.nl/~ripley/XmHTML/.
|
||||
|
||||
We need to:
|
||||
- make a minimal distribution under wx/src/xmhtml, just enough
|
||||
to compile the source.
|
||||
- add XMHTML_C_SRC to src/motif/makefile.unx with the source files
|
||||
listed.
|
||||
- make sure we can compile the sources, passing the correct
|
||||
flags for zlib/png compilation.
|
||||
- make a wxHTMLWindow class from e.g. examples/example_2.c. Should
|
||||
probably make the cache and history facilities part of the class.
|
||||
- add the driver code to src/motif/helphtml.cpp (a frame, toolbar,
|
||||
history list).
|
||||
|
||||
- Optimize screen refresh for non-native widgets, e.g. wxWindow
|
||||
created with Create(), using technique in flicker patch for 1.68
|
||||
(see JACS for latest patch).
|
||||
|
||||
- Copy and paste, drag and drop. Use a standard X drag
|
||||
and drop standard - see http://www.cco.caltech.edu/~jafl/xdnd/
|
||||
or use Motif drag and drop as described here:
|
||||
http://www.motifzone.com/tmd/articles/DnD/dnd.html
|
||||
|
||||
- Optimize colour management so we don't get clashes when e.g.
|
||||
Netscape is running. See:
|
||||
http://www.motifzone.com/tmd/articles/John_Cwikla/index.html
|
||||
|
||||
- wxRCConfig (a config class using X .rc files). Could simply
|
||||
implement it in terms of current wxGet/WriteResource functions.
|
||||
|
||||
- wxCheckBoxList
|
||||
|
||||
- wxBitmapCheckBox, wxBitmapRadioButton
|
||||
|
||||
- Reimplement combobox using Lesstif's widget (avoiding GPL'ed
|
||||
widget currently used).
|
||||
|
||||
- Write generic wxDirDialog (directory selector)
|
||||
|
||||
- Use native Motif dialogs for wxMessageBox
|
||||
|
||||
- Miscellaneous classes e.g. wxJoystick (identical to GTK's one for
|
||||
Linux)
|
||||
|
||||
- Blit scaling
|
||||
|
||||
- Could eventually alter the MDI widgets to be more Windows-like
|
||||
-- currently it's half-hearted (menus are on children, whereas
|
||||
they should replace the main parent frame menu).
|
||||
|
||||
- Get ODBC classes and sample working.
|
||||
|
@@ -2,6 +2,42 @@
|
||||
wxWindows 2.0 for Windows Change Log
|
||||
------------------------------------
|
||||
|
||||
Alpha 17, November 22nd 1998
|
||||
----------------------------
|
||||
|
||||
- More documentation updates, especially for
|
||||
wxLayoutWindow classes and debugging facilities.
|
||||
- Changed wxDebugContext to use wxDebugLog instead
|
||||
of wxTrace.
|
||||
- Now supports VC++ 6.0, and hopefully BC++ 5.0.
|
||||
However, DLL support may be broken for BC++ since
|
||||
VC++ 6 required changing of WXDLLEXPORT keyword
|
||||
position.
|
||||
- Numerous miscellaneous changes.
|
||||
|
||||
Alpha 16, September 8th 1998
|
||||
----------------------------
|
||||
|
||||
- Added wxSashWindow, wxSashLayoutWindow classes, and sashtest
|
||||
sample.
|
||||
- Guilhem's socket classes added, plus wxsocket sample.
|
||||
- A few more makefiles added.
|
||||
- GnuWin32/BC++ compatibility mods.
|
||||
- Further doc updates.
|
||||
- wxProp updates for correct working with wxGTK.
|
||||
|
||||
Alpha 15, August 31st 1998
|
||||
--------------------------
|
||||
|
||||
- wxBitmap debugged.
|
||||
- wxDC::GetDepth added.
|
||||
- Contribution added whereby wxBitmap will be
|
||||
converted to DC depth if they don't match.
|
||||
- wxConfig API improved, documentation updated.
|
||||
- Printing classes name conventions cleaned up.
|
||||
- wxUpdateUIEvent now derives from wxCommandEvent
|
||||
so event can travel up the window hierachy.
|
||||
|
||||
Alpha 14, July 31st 1998
|
||||
------------------------
|
||||
|
||||
|
@@ -116,6 +116,9 @@ Gotchas:
|
||||
- install.exe doesn't have built-in decompression because lzexpand.lib
|
||||
isn't available with Gnu-Win32. However, you can use it with external
|
||||
decompression utilities.
|
||||
- Doesn't compile socket-related files due to a syntax error in
|
||||
GnuWin32's Sockets.h.
|
||||
- Doesn't compile src/msw/ole files, so no drag and drop.
|
||||
|
||||
References:
|
||||
|
||||
|
@@ -32,40 +32,6 @@ wxDebugStreamBuf it might help, but I don't know how to do that -
|
||||
I've redefined 'new' throughout as WXDEBUG_NEW (which is itself
|
||||
defined as the 3-argument operator).
|
||||
|
||||
Config/registry classes
|
||||
-----------------------
|
||||
|
||||
Problems with Karsten's/Vadim's existing AppConfig classes:
|
||||
|
||||
- use char* a lot instead of wxString
|
||||
- rather hard to understand
|
||||
- will need fairly substantial rewrite
|
||||
- no native .ini functions (?) for guaranteed Windows
|
||||
compatibility
|
||||
- new wxWin docs required
|
||||
|
||||
Good things:
|
||||
|
||||
- exists!
|
||||
- FileConfig independent of OS
|
||||
- specifying a base class that will meet nearly all needs for
|
||||
derived classes
|
||||
- enumerator
|
||||
|
||||
Other features we should probably have:
|
||||
|
||||
- ability to specify vendor name/app name in constructor
|
||||
- under Windows, ability to read/write all areas of registry
|
||||
as an option
|
||||
|
||||
Options:
|
||||
|
||||
- rewrite AppConfig
|
||||
- start from own CRegistry class
|
||||
- take elements from both
|
||||
- do the Windows stuff, let someone else write/adapt the
|
||||
non-Windows classes
|
||||
|
||||
Owner-draw menus
|
||||
----------------
|
||||
|
||||
|
@@ -7,9 +7,6 @@ HIGH PRIORITY
|
||||
|
||||
Find/add wxThread sample - Arthur T-D?
|
||||
|
||||
wxControl dimensions should be optionally based on dialog font
|
||||
size for portability (dialog units as per Windows).
|
||||
|
||||
Implement wxDC floating point transformations.
|
||||
|
||||
Add wxDC::DeviceToLogical -> wxPoint etc (convenience accessors).
|
||||
@@ -17,10 +14,6 @@ Add wxDC::DeviceToLogical -> wxPoint etc (convenience accessors).
|
||||
Revamp Dialog Editor for new controls and properties (e.g.
|
||||
window id).
|
||||
|
||||
Tidy wxConfig API.
|
||||
|
||||
Change DnD classes to use global symbols, and wxString.
|
||||
|
||||
Update manual.
|
||||
wxApp changes DONE
|
||||
wxMenu changes DONE
|
||||
@@ -33,9 +26,10 @@ Update manual.
|
||||
wxTaskBarIcon DONE
|
||||
wxMsgCatalog etc.
|
||||
wxLog
|
||||
wxConfig, wxRegKey
|
||||
wxConfig DONE
|
||||
wxRegKey
|
||||
wxTabCtrl DONE
|
||||
wxNotebook
|
||||
wxNotebook DONE (some more explanation required)
|
||||
wxWave DONE
|
||||
wxJoystick DONE
|
||||
wxStatusBar95 and wxFrame status bar functions
|
||||
@@ -44,8 +38,8 @@ Update manual.
|
||||
wxHelpController classes DONE (except for Unix ones)
|
||||
wxString PARTLY DONE
|
||||
Drag and drop (change API if required, e.g. const).
|
||||
wxCheckListBox
|
||||
wxAcceleratorTable
|
||||
wxCheckListBox DONE
|
||||
wxAcceleratorTable DONE
|
||||
wxBaseArray, other arrays
|
||||
(wxOwnerDrawn)
|
||||
Document the include file for each class
|
||||
@@ -63,8 +57,6 @@ objects.
|
||||
|
||||
More wxSystemSettings (see comment in settings.cpp).
|
||||
|
||||
wxSocket integration.
|
||||
|
||||
Convert remaining utilities e.g. (GLCanvas; wxGraphLayout) and samples
|
||||
|
||||
Check TODO entries.
|
||||
@@ -79,7 +71,7 @@ for all controls, at least in WXWIN_COMPATIBLE mode, but
|
||||
retain (Set)Callback for all compilations. This is following a
|
||||
panicky response to losing callbacks.
|
||||
|
||||
Merge dib.cpp, dibutils.cpp.
|
||||
Merge dib.cpp, dibutils.cpp (see also some DIB code in bitmap.cpp).
|
||||
|
||||
Add a wxTabCtrl sample.
|
||||
|
||||
@@ -89,6 +81,14 @@ printer characteristics) and more reliable printing framework.
|
||||
Add GetIcon, GetBitmap to wxImageList. Perhaps store bitmaps
|
||||
in image list so we can get them later.
|
||||
|
||||
Add centring, right justify styles to wxStaticText.
|
||||
|
||||
Synchronize drawing functions on all platforms, using Chris's
|
||||
code to test them.
|
||||
|
||||
Extend wxSystemSettings to get symbols for current nationality,
|
||||
e.g. ',' instead of '.' for decimal points.
|
||||
|
||||
LOW PRIORITY
|
||||
------------
|
||||
|
||||
@@ -151,7 +151,9 @@ substituting static text for obsolete labels).
|
||||
|
||||
Improve and expand wxSizer classes.
|
||||
|
||||
Write more validators.
|
||||
Write more validators. Also, how do they work if loading the
|
||||
dialog from a .wxr? Could call SetValidator from within
|
||||
InitDialog for all controls, then call TransferDataToWindow.
|
||||
|
||||
Classes for file/OS utility functions.
|
||||
|
||||
@@ -181,3 +183,5 @@ more efficient).
|
||||
|
||||
Perhaps rewrite wxFile to use FILE* descriptors, so Eof and Flush
|
||||
can work.
|
||||
|
||||
Find out how to set wxFileSelector position.
|
||||
|
@@ -56,6 +56,6 @@ __XLC__ ?? compiler
|
||||
wxWindows modes:
|
||||
----------------
|
||||
|
||||
__WXDEBUG__ usage: #ifdef __DEBUG__ (=> debug mode, else => release)
|
||||
__WXDEBUG__ usage: #ifdef __WXDEBUG__ (=> debug mode, else => release)
|
||||
WXDEBUG usage: #if DEBUG (0: release, 1: minimal debug code, ...)
|
||||
|
||||
|
@@ -15,5 +15,10 @@
|
||||
#include "wx/generic/colrdlgg.h"
|
||||
#endif
|
||||
|
||||
#ifndef __WXMSW__
|
||||
#define wxColourDialog wxGenericColourDialog
|
||||
#define sm_classwxColourDialog sm_classwxColourDialog
|
||||
#endif
|
||||
|
||||
#endif
|
||||
// _WX_COLORDLG_H_BASE_
|
||||
|
@@ -15,5 +15,7 @@
|
||||
#include "wx/stubs/colour.h"
|
||||
#endif
|
||||
|
||||
#define wxColor wxColour
|
||||
|
||||
#endif
|
||||
// _WX_COLOUR_H_BASE_
|
||||
|
@@ -23,9 +23,9 @@
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
// 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
|
||||
#ifndef wxUSE_CONFIG
|
||||
#error "Please define wxUSE_CONFIG or remove config.cpp from your makefile"
|
||||
#endif // wxUSE_CONFIG
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// constants
|
||||
@@ -112,9 +112,9 @@ public:
|
||||
// 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 = wxEmptyString, const wxString& vendorName = wxEmptyString,
|
||||
const wxString& localFilename = wxEmptyString, const wxString& globalFilename = wxEmptyString,
|
||||
long style = 0);
|
||||
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() { }
|
||||
@@ -155,7 +155,7 @@ public:
|
||||
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 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;
|
||||
@@ -164,6 +164,11 @@ public:
|
||||
{ long l; Read(strKey, &l, defVal); return l; }
|
||||
|
||||
// Convenience functions that are built on other forms
|
||||
|
||||
// int
|
||||
virtual bool Read(const wxString& key, int *pi) const;
|
||||
virtual bool Read(const wxString& key, int *pi, int defVal) const;
|
||||
|
||||
// double
|
||||
virtual bool Read(const wxString& key, double* val) const;
|
||||
virtual bool Read(const wxString& key, double* val, double defVal) const;
|
||||
@@ -276,14 +281,14 @@ private:
|
||||
#if defined(__WXMSW__) && wxCONFIG_WIN32_NATIVE
|
||||
#ifdef __WIN32__
|
||||
#define wxConfig wxRegConfig
|
||||
#define classwxConfig classwxRegConfig
|
||||
#define sm_classwxConfig sm_classwxRegConfig
|
||||
#else //WIN16
|
||||
#define wxConfig wxIniConfig
|
||||
#define classwxConfig classwxIniConfig
|
||||
#define sm_classwxConfig sm_classwxIniConfig
|
||||
#endif
|
||||
#else // either we're under Unix or wish to use files even under Windows
|
||||
#define wxConfig wxFileConfig
|
||||
#define classwxConfig classwxFileConfig
|
||||
#define sm_classwxConfig sm_classwxFileConfig
|
||||
#endif
|
||||
|
||||
|
||||
|
@@ -20,7 +20,7 @@
|
||||
#include "wx/object.h"
|
||||
#include "wx/string.h"
|
||||
|
||||
#if USE_TIMEDATE
|
||||
#if wxUSE_TIMEDATE
|
||||
|
||||
enum wxdate_format_type {wxMDY, wxDAY, wxMONTH, wxFULL, wxEUROPEAN};
|
||||
|
||||
|
@@ -18,7 +18,7 @@
|
||||
|
||||
#include <wx/stream.h>
|
||||
|
||||
class wxDataInputStream: public wxFilterInputStream {
|
||||
class WXDLLEXPORT wxDataInputStream: public wxFilterInputStream {
|
||||
public:
|
||||
wxDataInputStream(wxInputStream& s);
|
||||
virtual ~wxDataInputStream();
|
||||
@@ -31,7 +31,7 @@ public:
|
||||
wxString ReadString();
|
||||
};
|
||||
|
||||
class wxDataOutputStream: public wxFilterOutputStream {
|
||||
class WXDLLEXPORT wxDataOutputStream: public wxFilterOutputStream {
|
||||
public:
|
||||
wxDataOutputStream(wxOutputStream& s);
|
||||
virtual ~wxDataOutputStream();
|
||||
|
@@ -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 __WXDEBUG__ 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.
|
||||
@@ -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 WXDLLEXPORT wxOnAssert(const char *szFile, int nLine, const char *szMsg = (const char *) NULL);
|
||||
|
||||
/// generic assert macro
|
||||
#define wxASSERT(cond) if ( !(cond) ) wxOnAssert(__FILE__, __LINE__)
|
||||
@@ -62,12 +62,12 @@
|
||||
// no more bugs ;-)
|
||||
#define wxASSERT(cond)
|
||||
#define wxASSERT_MSG(x, m)
|
||||
#endif //WXDEBUG
|
||||
#endif //__WXDEBUG__
|
||||
|
||||
/// special form of assert: always triggers it (in debug mode)
|
||||
#define wxFAIL wxASSERT(0)
|
||||
#define wxFAIL wxASSERT(wxFalse)
|
||||
/// FAIL with some message
|
||||
#define wxFAIL_MSG(msg) wxASSERT_MSG(0, msg)
|
||||
#define wxFAIL_MSG(msg) wxASSERT_MSG(wxFalse, msg)
|
||||
//@}
|
||||
|
||||
// NB: these macros work also in release mode!
|
||||
|
@@ -21,6 +21,7 @@
|
||||
#include "glib.h"
|
||||
#include "gdk/gdk.h"
|
||||
#include "gtk/gtk.h"
|
||||
#include "wx/gtk/win_gtk.h"
|
||||
|
||||
#endif
|
||||
|
||||
@@ -30,11 +31,11 @@
|
||||
#include "wx/version.h"
|
||||
|
||||
// Helps SGI compilation, apparently
|
||||
#if defined(__SGI__)
|
||||
#if defined(__SGI__)
|
||||
#if 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
|
||||
/* 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
|
||||
@@ -104,6 +105,10 @@
|
||||
typedef unsigned int bool;
|
||||
#endif
|
||||
|
||||
#if defined(_MSC_VER) && (_MSC_VER == 1020)
|
||||
#define bool unsigned int
|
||||
#endif
|
||||
|
||||
#if ( defined(_MSC_VER) && (_MSC_VER <= 800) ) || defined(__GNUWIN32__)
|
||||
#define byte unsigned char
|
||||
#endif
|
||||
@@ -145,7 +150,7 @@ typedef int wxWindowID;
|
||||
# ifdef WXMAKINGDLL
|
||||
# define WXDLLEXPORT __declspec( dllexport )
|
||||
# define WXDLLEXPORT_DATA(type) __declspec( dllexport ) type
|
||||
# define WXDLLEXPORT_CTORFN __declspec( dllexport )
|
||||
# define WXDLLEXPORT_CTORFN // __declspec( dllexport )
|
||||
# elif defined(WXUSINGDLL)
|
||||
# define WXDLLEXPORT __declspec( dllimport )
|
||||
# define WXDLLEXPORT_DATA(type) __declspec( dllimport ) type
|
||||
@@ -206,13 +211,13 @@ enum ErrCode
|
||||
// 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
|
||||
// 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)
|
||||
// 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
|
||||
@@ -230,12 +235,16 @@ enum ErrCode
|
||||
/// size of statically declared array
|
||||
#define WXSIZEOF(array) (sizeof(array)/sizeof(array[0]))
|
||||
|
||||
// Use of these suppresses some compiler warnings
|
||||
WXDLLEXPORT_DATA(extern const bool) wxTrue;
|
||||
WXDLLEXPORT_DATA(extern const bool) wxFalse;
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// compiler and OS identification
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
// OS
|
||||
#if defined(__HPUX__) || defined(____SVR4____) || defined(__LINUX__) || defined(__sgi )
|
||||
#if defined(__HPUX__) || defined(____SVR4____) || defined(__LINUX__) || defined(__sgi ) || defined(__unix__)
|
||||
#ifndef __UNIX__
|
||||
#define __UNIX__
|
||||
#endif
|
||||
@@ -262,7 +271,7 @@ enum ErrCode
|
||||
// warnings just must be disabled
|
||||
#ifdef __VISUALC__
|
||||
#pragma warning(disable: 4514) // unreferenced inline func has been removed
|
||||
/*
|
||||
/*
|
||||
you might be tempted to disable this one also: triggered by CHECK and FAIL
|
||||
macros in debug.h, but it's, overall, is a rather useful one, so I leave it
|
||||
and will try to find some way to disable this warning just for CHECK/FAIL.
|
||||
@@ -272,6 +281,19 @@ enum ErrCode
|
||||
|
||||
#endif // VC++
|
||||
|
||||
#if _MSC_VER > 1010
|
||||
#undef try
|
||||
#undef except
|
||||
#undef finally
|
||||
#define except(x) catch(...)
|
||||
#endif
|
||||
|
||||
// where should i put this? we need to make sure of this as it breaks
|
||||
// the <iostream> code.
|
||||
#if !wxUSE_IOSTREAMH && defined(__WXDEBUG__)
|
||||
#undef __WXDEBUG__
|
||||
#endif
|
||||
|
||||
// Callback function type definition
|
||||
typedef void (*wxFunction) (wxObject&, wxEvent&);
|
||||
|
||||
@@ -286,7 +308,7 @@ typedef void (*wxFunction) (wxObject&, wxEvent&);
|
||||
* Window (cross-group) styles now take up the first half
|
||||
* of the flag, and control-specific styles the
|
||||
* second half.
|
||||
*
|
||||
*
|
||||
*/
|
||||
|
||||
/*
|
||||
@@ -365,7 +387,7 @@ typedef void (*wxFunction) (wxObject&, wxEvent&);
|
||||
/*
|
||||
* wxToolBar style flags
|
||||
*/
|
||||
|
||||
|
||||
#define wxTB_3DBUTTONS 0x8000
|
||||
#define wxTB_HORIZONTAL 0x0002
|
||||
#define wxTB_VERTICAL 0x0004
|
||||
@@ -375,7 +397,7 @@ typedef void (*wxFunction) (wxObject&, wxEvent&);
|
||||
/*
|
||||
* Apply to all panel items
|
||||
*/
|
||||
|
||||
|
||||
#define wxCOLOURED 0x0800
|
||||
// Alignment for panel item labels: replaces characters with zeros
|
||||
// when creating label, so spaces can be included in string for alignment.
|
||||
@@ -437,7 +459,7 @@ typedef void (*wxFunction) (wxObject&, wxEvent&);
|
||||
/*
|
||||
* wxSlider flags
|
||||
*/
|
||||
|
||||
|
||||
#define wxSL_HORIZONTAL wxHORIZONTAL
|
||||
#define wxSL_VERTICAL wxVERTICAL
|
||||
// The next one is obsolete - use scroll events instead
|
||||
@@ -455,7 +477,7 @@ typedef void (*wxFunction) (wxObject&, wxEvent&);
|
||||
/*
|
||||
* wxScrollBar flags
|
||||
*/
|
||||
|
||||
|
||||
#define wxSB_HORIZONTAL wxHORIZONTAL
|
||||
#define wxSB_VERTICAL wxVERTICAL
|
||||
|
||||
@@ -686,7 +708,7 @@ enum wxDataFormat
|
||||
|
||||
// Virtual keycodes
|
||||
|
||||
enum _Virtual_keycodes {
|
||||
enum wxKeyCode {
|
||||
WXK_BACK = 8,
|
||||
WXK_TAB = 9,
|
||||
WXK_RETURN = 13,
|
||||
@@ -820,6 +842,8 @@ enum {
|
||||
#define wxID_PASTE 5032
|
||||
#define wxID_CLEAR 5033
|
||||
#define wxID_FIND 5034
|
||||
#define wxID_DUPLICATE 5035
|
||||
#define wxID_SELECTALL 5036
|
||||
|
||||
#define wxID_FILE1 5050
|
||||
#define wxID_FILE2 5051
|
||||
@@ -838,6 +862,11 @@ enum {
|
||||
#define wxID_NO 5104
|
||||
#define wxID_STATIC 5105
|
||||
|
||||
#define wxID_HIGHEST 5999
|
||||
|
||||
// Shortcut for easier dialog-unit-to-pixel conversion
|
||||
#define wxDLG_UNIT(parent, pt) parent->ConvertDialogToPixels(pt)
|
||||
|
||||
#ifdef __WXMSW__
|
||||
// Stand-ins for Windows types, to avoid
|
||||
// #including all of windows.h
|
||||
@@ -868,6 +897,7 @@ typedef void * WXRGNDATA;
|
||||
typedef void * WXMSG;
|
||||
typedef unsigned long WXHCONV;
|
||||
typedef unsigned long WXHKEY;
|
||||
typedef unsigned long WXHTREEITEM;
|
||||
typedef void * WXDRAWITEMSTRUCT;
|
||||
typedef void * WXMEASUREITEMSTRUCT;
|
||||
typedef void * WXLPCREATESTRUCT;
|
||||
@@ -879,5 +909,24 @@ typedef int (__stdcall *WXFARPROC)();
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef __WXMOTIF__
|
||||
// Stand-ins for X/Xt/Motif types
|
||||
typedef void* WXWindow;
|
||||
typedef void* WXWidget;
|
||||
typedef void* WXAppContext;
|
||||
typedef void* WXColormap;
|
||||
typedef void WXDisplay;
|
||||
typedef void WXEvent;
|
||||
typedef void* WXCursor;
|
||||
typedef void* WXPixmap;
|
||||
typedef void* WXFontStructPtr;
|
||||
typedef void* WXGC;
|
||||
typedef void* WXRegion;
|
||||
typedef void* WXFont;
|
||||
typedef void* WXImage;
|
||||
typedef void* WXCursor;
|
||||
typedef void* WXFontList;
|
||||
#endif
|
||||
|
||||
#endif
|
||||
// _WX_DEFS_H_
|
||||
|
@@ -6,6 +6,7 @@
|
||||
#include "wx/msw/ole/droptgt.h"
|
||||
#include "wx/msw/ole/dataobj.h"
|
||||
#elif defined(__WXMOTIF__)
|
||||
#include "wx/motif/dnd.h"
|
||||
#elif defined(__WXGTK__)
|
||||
#include "wx/gtk/dnd.h"
|
||||
#elif defined(__WXQT__)
|
||||
|
@@ -31,7 +31,6 @@ class wxDocMDIParentFrame: public wxMDIParentFrame
|
||||
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);
|
||||
|
||||
@@ -39,6 +38,7 @@ class wxDocMDIParentFrame: public wxMDIParentFrame
|
||||
|
||||
void OnExit(wxCommandEvent& event);
|
||||
void OnMRUFile(wxCommandEvent& event);
|
||||
void OnCloseWindow(wxCloseEvent& event);
|
||||
|
||||
protected:
|
||||
wxDocManager *m_docManager;
|
||||
@@ -61,11 +61,11 @@ class WXDLLEXPORT wxDocMDIChildFrame: public wxMDIChildFrame
|
||||
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);
|
||||
void OnCloseWindow(wxCloseEvent& event);
|
||||
|
||||
inline wxDocument *GetDocument(void) const { return m_childDocument; }
|
||||
inline wxView *GetView(void) const { return m_childView; }
|
||||
|
@@ -21,7 +21,7 @@
|
||||
#include "wx/cmndata.h"
|
||||
#include "wx/string.h"
|
||||
|
||||
#if USE_PRINTING_ARCHITECTURE
|
||||
#if wxUSE_PRINTING_ARCHITECTURE
|
||||
#include "wx/print.h"
|
||||
#endif
|
||||
|
||||
@@ -34,9 +34,18 @@ class WXDLLEXPORT wxPrintInfo;
|
||||
class WXDLLEXPORT wxCommand;
|
||||
class WXDLLEXPORT wxCommandProcessor;
|
||||
class WXDLLEXPORT wxFileHistory;
|
||||
class WXDLLEXPORT wxConfigBase;
|
||||
|
||||
class WXDLLIMPORT ostream;
|
||||
class WXDLLIMPORT istream;
|
||||
#if wxUSE_IOSTREAMH
|
||||
// N.B. BC++ doesn't have istream.h, ostream.h
|
||||
# include <iostream.h>
|
||||
#else
|
||||
# include <istream>
|
||||
# include <ostream>
|
||||
# ifdef _MSC_VER
|
||||
using namespace std;
|
||||
# endif
|
||||
#endif
|
||||
|
||||
// Document manager flags
|
||||
#define wxDOC_SDI 1
|
||||
@@ -188,7 +197,7 @@ class WXDLLEXPORT wxView: public wxEvtHandler
|
||||
|
||||
inline wxDocManager *GetDocumentManager(void) const { return m_viewDocument->GetDocumentManager(); }
|
||||
|
||||
#if USE_PRINTING_ARCHITECTURE
|
||||
#if wxUSE_PRINTING_ARCHITECTURE
|
||||
virtual wxPrintout *OnCreatePrintout(void);
|
||||
#endif
|
||||
|
||||
@@ -332,8 +341,11 @@ class WXDLLEXPORT wxDocManager: public wxEvtHandler
|
||||
virtual int GetNoHistoryFiles(void) const;
|
||||
virtual wxString GetHistoryFile(int i) const;
|
||||
virtual void FileHistoryUseMenu(wxMenu *menu);
|
||||
virtual void FileHistoryLoad(const wxString& resourceFile, const wxString& section);
|
||||
virtual void FileHistorySave(const wxString& resourceFile, const wxString& section);
|
||||
virtual void FileHistoryRemoveMenu(wxMenu *menu);
|
||||
virtual void FileHistoryLoad(wxConfigBase& config);
|
||||
virtual void FileHistorySave(wxConfigBase& config);
|
||||
virtual void FileHistoryAddFilesToMenu();
|
||||
virtual void FileHistoryAddFilesToMenu(wxMenu* menu);
|
||||
protected:
|
||||
long m_flags;
|
||||
int m_defaultDocumentNameCounter;
|
||||
@@ -360,12 +372,11 @@ class WXDLLEXPORT wxDocChildFrame: public wxFrame
|
||||
long type = wxDEFAULT_FRAME_STYLE, const wxString& name = "frame");
|
||||
~wxDocChildFrame(void);
|
||||
|
||||
bool OnClose(void);
|
||||
// Extend event processing to search the view's event table
|
||||
virtual bool ProcessEvent(wxEvent& event);
|
||||
|
||||
// void OldOnMenuCommand(int id);
|
||||
void OnActivate(wxActivateEvent& event);
|
||||
void OnCloseWindow(wxCloseEvent& event);
|
||||
|
||||
inline wxDocument *GetDocument(void) const { return m_childDocument; }
|
||||
inline wxView *GetView(void) const { return m_childView; }
|
||||
@@ -391,15 +402,14 @@ class WXDLLEXPORT wxDocParentFrame: public wxFrame
|
||||
const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize,
|
||||
long type = wxDEFAULT_FRAME, const wxString& name = "frame");
|
||||
|
||||
bool OnClose(void);
|
||||
// Extend event processing to search the document manager's event table
|
||||
virtual bool ProcessEvent(wxEvent& event);
|
||||
|
||||
// void OldOnMenuCommand(int id);
|
||||
wxDocManager *GetDocumentManager(void) const { return m_docManager; }
|
||||
|
||||
void OnExit(wxCommandEvent& event);
|
||||
void OnMRUFile(wxCommandEvent& event);
|
||||
void OnCloseWindow(wxCloseEvent& event);
|
||||
|
||||
protected:
|
||||
wxDocManager *m_docManager;
|
||||
@@ -411,7 +421,7 @@ DECLARE_EVENT_TABLE()
|
||||
* Provide simple default printing facilities
|
||||
*/
|
||||
|
||||
#if USE_PRINTING_ARCHITECTURE
|
||||
#if wxUSE_PRINTING_ARCHITECTURE
|
||||
class WXDLLEXPORT wxDocPrintout: public wxPrintout
|
||||
{
|
||||
DECLARE_DYNAMIC_CLASS(wxDocPrintout)
|
||||
@@ -465,7 +475,8 @@ class WXDLLEXPORT wxCommandProcessor: public wxObject
|
||||
virtual bool Submit(wxCommand *command, bool storeIt = TRUE);
|
||||
virtual bool Undo(void);
|
||||
virtual bool Redo(void);
|
||||
virtual bool CanUndo(void);
|
||||
virtual bool CanUndo(void) const;
|
||||
virtual bool CanRedo(void) const;
|
||||
|
||||
// Call this to manage an edit menu.
|
||||
inline void SetEditMenu(wxMenu *menu) { m_commandEditMenu = menu; }
|
||||
@@ -484,6 +495,8 @@ class WXDLLEXPORT wxCommandProcessor: public wxObject
|
||||
wxMenu* m_commandEditMenu;
|
||||
};
|
||||
|
||||
// File history management
|
||||
|
||||
class WXDLLEXPORT wxFileHistory: public wxObject
|
||||
{
|
||||
DECLARE_DYNAMIC_CLASS(wxFileHistory)
|
||||
@@ -491,21 +504,36 @@ class WXDLLEXPORT wxFileHistory: public wxObject
|
||||
wxFileHistory(int maxFiles = 9);
|
||||
~wxFileHistory(void);
|
||||
|
||||
// File history management
|
||||
// Operations
|
||||
virtual void AddFileToHistory(const wxString& file);
|
||||
inline virtual int GetNoHistoryFiles(void) const { return m_fileHistoryN; }
|
||||
virtual wxString GetHistoryFile(int i) const;
|
||||
virtual int GetMaxFiles(void) const { return m_fileMaxFiles; }
|
||||
virtual void FileHistoryUseMenu(wxMenu *menu);
|
||||
virtual void FileHistoryLoad(const wxString& resourceFile, const wxString& section);
|
||||
virtual void FileHistorySave(const wxString& resourceFile, const wxString& section);
|
||||
virtual void UseMenu(wxMenu *menu);
|
||||
|
||||
// Remove menu from the list (MDI child may be closing)
|
||||
virtual void RemoveMenu(wxMenu *menu);
|
||||
|
||||
virtual void Load(wxConfigBase& config);
|
||||
virtual void Save(wxConfigBase& config);
|
||||
|
||||
virtual void AddFilesToMenu();
|
||||
virtual void AddFilesToMenu(wxMenu* menu); // Single menu
|
||||
|
||||
// Accessors
|
||||
virtual wxString GetHistoryFile(int i) const;
|
||||
|
||||
// A synonym for GetNoHistoryFiles
|
||||
virtual int GetCount() const { return m_fileHistoryN; }
|
||||
inline int GetNoHistoryFiles(void) const { return m_fileHistoryN; }
|
||||
|
||||
inline wxList& GetMenus() const { return (wxList&) m_fileMenus; }
|
||||
|
||||
protected:
|
||||
// Last n files
|
||||
char** m_fileHistory;
|
||||
// Number of files saved
|
||||
int m_fileHistoryN;
|
||||
// Menu to maintain
|
||||
wxMenu* m_fileMenu;
|
||||
// Menus to maintain (may need several for an MDI app)
|
||||
wxList m_fileMenus;
|
||||
// Max files to maintain
|
||||
int m_fileMaxFiles;
|
||||
};
|
||||
|
@@ -64,7 +64,7 @@ typedef int (CMPFUNC_CONV *CMPFUNC)(const void* pItem1, const void* pItem2);
|
||||
@memo Base class for template array and list classes
|
||||
*/
|
||||
// ----------------------------------------------------------------------------
|
||||
class wxBaseArray
|
||||
class WXDLLEXPORT wxBaseArray
|
||||
{
|
||||
public:
|
||||
/** @name ctors and dtor */
|
||||
@@ -86,19 +86,22 @@ public:
|
||||
/** @name memory management */
|
||||
//@{
|
||||
/// empties the list, but doesn't release memory
|
||||
void Empty() { m_uiCount = 0; }
|
||||
void Empty() { m_nCount = 0; }
|
||||
/// empties the list and releases memory
|
||||
void Clear();
|
||||
/// preallocates memory for given number of items
|
||||
void Alloc(size_t uiSize);
|
||||
/// minimizes the memory used by the array (frees unused memory)
|
||||
void Shrink();
|
||||
//@}
|
||||
|
||||
/** @name simple accessors */
|
||||
//@{
|
||||
/// number of elements in the array
|
||||
size_t Count() const { return m_uiCount; }
|
||||
size_t Count() const { return m_nCount; }
|
||||
size_t GetCount() const { return m_nCount; }
|
||||
/// is it empty?
|
||||
bool IsEmpty() const { return m_uiCount == 0; }
|
||||
bool IsEmpty() const { return m_nCount == 0; }
|
||||
//@}
|
||||
|
||||
protected:
|
||||
@@ -110,7 +113,7 @@ protected:
|
||||
//@{
|
||||
/// get item at position uiIndex (range checking is done in debug version)
|
||||
long& Item(size_t uiIndex) const
|
||||
{ wxASSERT( uiIndex < m_uiCount ); return m_pItems[uiIndex]; }
|
||||
{ wxASSERT( uiIndex < m_nCount ); return m_pItems[uiIndex]; }
|
||||
/// same as Item()
|
||||
long& operator[](size_t uiIndex) const { return Item(uiIndex); }
|
||||
//@}
|
||||
@@ -144,8 +147,8 @@ protected:
|
||||
private:
|
||||
void Grow(); // makes array bigger if needed
|
||||
|
||||
size_t m_uiSize, // current size of the array
|
||||
m_uiCount; // current number of elements
|
||||
size_t m_nSize, // current size of the array
|
||||
m_nCount; // current number of elements
|
||||
|
||||
long *m_pItems; // pointer to data
|
||||
};
|
||||
@@ -162,7 +165,7 @@ private:
|
||||
// ----------------------------------------------------------------------------
|
||||
#define _WX_DEFINE_ARRAY(T, name) \
|
||||
typedef int (CMPFUNC_CONV *CMPFUNC##T)(T *pItem1, T *pItem2); \
|
||||
class name : public wxBaseArray \
|
||||
class WXDLLEXPORTLOCAL name : public wxBaseArray \
|
||||
{ \
|
||||
public: \
|
||||
name() \
|
||||
@@ -172,9 +175,9 @@ public: \
|
||||
{ ((wxBaseArray *)this)->operator=((const wxBaseArray&)src); \
|
||||
return *this; } \
|
||||
\
|
||||
T& operator[](size_t uiIndex) const \
|
||||
T& operator[](size_t uiIndex) const \
|
||||
{ return (T&)(wxBaseArray::Item(uiIndex)); } \
|
||||
T& Item(size_t uiIndex) const \
|
||||
T& Item(size_t uiIndex) const \
|
||||
{ return (T&)(wxBaseArray::Item(uiIndex)); } \
|
||||
T& Last() const \
|
||||
{ return (T&)(wxBaseArray::Item(Count() - 1)); } \
|
||||
@@ -184,10 +187,10 @@ public: \
|
||||
\
|
||||
void Add(T Item) \
|
||||
{ wxBaseArray::Add((long)Item); } \
|
||||
void Insert(T Item, size_t uiIndex) \
|
||||
void Insert(T Item, size_t uiIndex) \
|
||||
{ wxBaseArray::Insert((long)Item, uiIndex) ; } \
|
||||
\
|
||||
void Remove(size_t uiIndex) { wxBaseArray::Remove(uiIndex); } \
|
||||
void Remove(size_t uiIndex) { wxBaseArray::Remove(uiIndex); } \
|
||||
void Remove(T Item) \
|
||||
{ int iIndex = Index(Item); \
|
||||
wxCHECK2_MSG( iIndex != NOT_FOUND, return, \
|
||||
@@ -216,7 +219,7 @@ public: \
|
||||
// ----------------------------------------------------------------------------
|
||||
#define _WX_DEFINE_SORTED_ARRAY(T, name) \
|
||||
typedef int (CMPFUNC_CONV *SCMPFUNC##T)(T pItem1, T pItem2); \
|
||||
class name : public wxBaseArray \
|
||||
class WXDLLEXPORTLOCAL name : public wxBaseArray \
|
||||
{ \
|
||||
public: \
|
||||
name(SCMPFUNC##T fn) \
|
||||
@@ -227,9 +230,9 @@ public: \
|
||||
m_fnCompare = src.m_fnCompare; \
|
||||
return *this; } \
|
||||
\
|
||||
T& operator[](size_t uiIndex) const \
|
||||
T& operator[](size_t uiIndex) const \
|
||||
{ return (T&)(wxBaseArray::Item(uiIndex)); } \
|
||||
T& Item(size_t uiIndex) const \
|
||||
T& Item(size_t uiIndex) const \
|
||||
{ return (T&)(wxBaseArray::Item(uiIndex)); } \
|
||||
T& Last() const \
|
||||
{ return (T&)(wxBaseArray::Item(Count() - 1)); } \
|
||||
@@ -240,12 +243,12 @@ public: \
|
||||
void Add(T Item) \
|
||||
{ wxBaseArray::Add((long)Item, (CMPFUNC)m_fnCompare); } \
|
||||
\
|
||||
void Remove(size_t uiIndex) { wxBaseArray::Remove(uiIndex); } \
|
||||
void Remove(size_t uiIndex) { wxBaseArray::Remove(uiIndex); } \
|
||||
void Remove(T Item) \
|
||||
{ int iIndex = Index(Item); \
|
||||
wxCHECK2_MSG( iIndex != NOT_FOUND, return, \
|
||||
"removing inexisting element in wxArray::Remove" ); \
|
||||
wxBaseArray::Remove((size_t)iIndex); } \
|
||||
wxBaseArray::Remove((size_t)iIndex); } \
|
||||
\
|
||||
private: \
|
||||
SCMPFUNC##T m_fnCompare; \
|
||||
@@ -256,7 +259,7 @@ private: \
|
||||
// ----------------------------------------------------------------------------
|
||||
#define _WX_DECLARE_LIST(T, name) \
|
||||
typedef int (CMPFUNC_CONV *CMPFUNC##T)(T** pItem1, T** pItem2); \
|
||||
class name : public wxBaseArray \
|
||||
class WXDLLEXPORTLOCAL name : public wxBaseArray \
|
||||
{ \
|
||||
public: \
|
||||
name() { } \
|
||||
@@ -265,9 +268,9 @@ public: \
|
||||
\
|
||||
~name(); \
|
||||
\
|
||||
T& operator[](size_t uiIndex) const \
|
||||
T& operator[](size_t uiIndex) const \
|
||||
{ return *(T*)wxBaseArray::Item(uiIndex); } \
|
||||
T& Item(size_t uiIndex) const \
|
||||
T& Item(size_t uiIndex) const \
|
||||
{ return *(T*)wxBaseArray::Item(uiIndex); } \
|
||||
T& Last() const \
|
||||
{ return *(T*)(wxBaseArray::Item(Count() - 1)); } \
|
||||
@@ -278,16 +281,16 @@ public: \
|
||||
void Add(const T* pItem) \
|
||||
{ wxBaseArray::Add((long)pItem); } \
|
||||
\
|
||||
void Insert(const T& Item, size_t uiIndex); \
|
||||
void Insert(const T* pItem, size_t uiIndex) \
|
||||
void Insert(const T& Item, size_t uiIndex); \
|
||||
void Insert(const T* pItem, size_t uiIndex) \
|
||||
{ wxBaseArray::Insert((long)pItem, uiIndex); } \
|
||||
\
|
||||
void Empty(); \
|
||||
\
|
||||
T* Detach(size_t uiIndex) \
|
||||
T* Detach(size_t uiIndex) \
|
||||
{ T* p = (T*)wxBaseArray::Item(uiIndex); \
|
||||
wxBaseArray::Remove(uiIndex); return p; } \
|
||||
void Remove(size_t uiIndex); \
|
||||
void Remove(size_t uiIndex); \
|
||||
\
|
||||
void Sort(CMPFUNC##T fCmp) { wxBaseArray::Sort((CMPFUNC)fCmp); } \
|
||||
\
|
||||
@@ -392,6 +395,8 @@ private: \
|
||||
// # overhead if not used?
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
#define WXDLLEXPORTLOCAL WXDLLEXPORT
|
||||
|
||||
//@{
|
||||
/** @name ArrayInt */
|
||||
WX_DEFINE_ARRAY(int, wxArrayInt);
|
||||
@@ -403,5 +408,8 @@ WX_DEFINE_ARRAY(void *, wxArrayPtrVoid);
|
||||
|
||||
//@}
|
||||
|
||||
#undef WXDLLEXPORTLOCAL
|
||||
#define WXDLLEXPORTLOCAL
|
||||
|
||||
#endif // _DYNARRAY_H
|
||||
|
||||
|
@@ -10,6 +10,10 @@
|
||||
#include <wx/dynarray.h>
|
||||
#include <wx/hash.h>
|
||||
|
||||
#ifdef LoadLibrary
|
||||
#undef LoadLibrary
|
||||
#endif
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
// wxLibrary
|
||||
|
||||
@@ -35,7 +39,7 @@ class wxLibrary: public wxObject {
|
||||
void MergeWithSystem();
|
||||
|
||||
protected:
|
||||
void PrepareClasses(wxClassInfo **first);
|
||||
void PrepareClasses(wxClassInfo *first);
|
||||
};
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
@@ -61,9 +65,9 @@ extern wxLibraries wxTheLibraries;
|
||||
// Interesting defines
|
||||
|
||||
#define WXDLL_ENTRY_FUNCTION() \
|
||||
extern "C" wxClassInfo **wxGetClassFirst(); \
|
||||
wxClassInfo **wxGetClassFirst() { \
|
||||
return &wxClassInfo::first; \
|
||||
extern "C" wxClassInfo *wxGetClassFirst(); \
|
||||
wxClassInfo *wxGetClassFirst() { \
|
||||
return wxClassInfo::GetFirst(); \
|
||||
}
|
||||
|
||||
#endif
|
||||
|
@@ -186,6 +186,8 @@ const wxEventType wxEVT_COMMAND_TAB_SEL_CHANGING = wxEVT_FIRST + 801;
|
||||
const wxEventType wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED = wxEVT_FIRST + 802;
|
||||
const wxEventType wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING = wxEVT_FIRST + 803;
|
||||
|
||||
const wxEventType wxEVT_USER_FIRST = wxEVT_FIRST + 2000;
|
||||
|
||||
// Compatibility
|
||||
|
||||
#if WXWIN_COMPATIBILITY
|
||||
@@ -294,6 +296,8 @@ public:
|
||||
wxEVT_COMMAND_COMBOBOX_SELECTED
|
||||
*/
|
||||
|
||||
class WXDLLEXPORT wxClientData;
|
||||
|
||||
class WXDLLEXPORT wxCommandEvent: public wxEvent
|
||||
{
|
||||
DECLARE_DYNAMIC_CLASS(wxCommandEvent)
|
||||
@@ -306,9 +310,13 @@ class WXDLLEXPORT wxCommandEvent: public wxEvent
|
||||
*
|
||||
*/
|
||||
|
||||
// Set/Get listbox/choice client data
|
||||
inline void SetClientData(char* clientData) { m_clientData = clientData; }
|
||||
inline char *GetClientData() const { return m_clientData; }
|
||||
// Set/Get client data from controls
|
||||
inline void SetClientData(void* clientData) { m_clientData = clientData; }
|
||||
inline void *GetClientData() const { return m_clientData; }
|
||||
|
||||
// Set/Get client object from controls
|
||||
inline void SetClientObject(wxClientData* clientObject) { m_clientObject = clientObject; }
|
||||
inline void *GetClientObject() const { return m_clientObject; }
|
||||
|
||||
// Get listbox selection if single-choice
|
||||
inline int GetSelection() const { return m_commandInt; }
|
||||
@@ -332,8 +340,9 @@ class WXDLLEXPORT wxCommandEvent: public wxEvent
|
||||
public:
|
||||
char* m_commandString; // String event argument
|
||||
int m_commandInt;
|
||||
long m_extraLong; // Additional information (e.g. select/deselect)
|
||||
char* m_clientData; // Arbitrary client data
|
||||
long m_extraLong; // Additional information (e.g. select/deselect)
|
||||
void* m_clientData; // Arbitrary client data
|
||||
wxClientData* m_clientObject; // Arbitrary client object
|
||||
};
|
||||
|
||||
// Scroll event class
|
||||
@@ -678,22 +687,27 @@ class WXDLLEXPORT wxCloseEvent: public wxEvent
|
||||
public:
|
||||
|
||||
inline wxCloseEvent(wxEventType type = wxEVT_NULL, int id = 0)
|
||||
{ m_eventType = type; m_sessionEnding = TRUE; m_loggingOff = TRUE; m_veto = FALSE;
|
||||
m_id = id; m_force = FALSE; }
|
||||
{ m_eventType = type; m_loggingOff = TRUE; m_veto = FALSE;
|
||||
m_id = id; m_force = FALSE; m_canVeto = FALSE; }
|
||||
|
||||
inline bool GetSessionEnding(void) const { return m_sessionEnding; }
|
||||
inline void SetLoggingOff(bool logOff) { m_loggingOff = logOff; }
|
||||
inline bool GetLoggingOff(void) const { return m_loggingOff; }
|
||||
inline void Veto(bool veto = TRUE) { m_veto = veto; }
|
||||
inline void SetCanVeto(bool canVeto) { m_canVeto = canVeto; }
|
||||
inline bool CanVeto() const { return m_canVeto; }
|
||||
inline bool GetVeto(void) const { return m_veto; }
|
||||
|
||||
// This is probably obsolete now, since we use CanVeto instead, in
|
||||
// both OnCloseWindow and OnQueryEndSession.
|
||||
// m_force == ! m_canVeto i.e., can't veto means we must force it to close.
|
||||
inline void SetForce(bool force) { m_force = force; }
|
||||
inline bool GetForce(void) const { return m_force; }
|
||||
|
||||
protected:
|
||||
bool m_sessionEnding;
|
||||
bool m_loggingOff;
|
||||
bool m_veto;
|
||||
bool m_force;
|
||||
|
||||
bool m_canVeto;
|
||||
};
|
||||
|
||||
/*
|
||||
@@ -972,7 +986,7 @@ public:
|
||||
// the child which has the focus currently (may be NULL - use
|
||||
// wxWindow::FindFocus then)
|
||||
wxWindow* GetCurrentFocus() const { return (wxWindow *)m_clientData; }
|
||||
void SetCurrentFocus(wxWindow *win) { m_clientData = (char *)win; }
|
||||
void SetCurrentFocus(wxWindow *win) { m_clientData = (void *)win; }
|
||||
};
|
||||
|
||||
/* TODO
|
||||
@@ -1035,9 +1049,6 @@ class WXDLLEXPORT wxEvtHandler: public wxObject
|
||||
|
||||
virtual bool OnClose(void);
|
||||
|
||||
inline char *GetClientData(void) const { return m_clientData; }
|
||||
inline void SetClientData(char *clientData) { m_clientData = clientData; }
|
||||
|
||||
virtual bool ProcessEvent(wxEvent& event);
|
||||
virtual bool SearchEventTable(wxEventTable& table, wxEvent& event);
|
||||
|
||||
@@ -1056,7 +1067,6 @@ protected:
|
||||
protected:
|
||||
wxEvtHandler* m_nextHandler;
|
||||
wxEvtHandler* m_previousHandler;
|
||||
char* m_clientData; // Any user client data
|
||||
bool m_enabled; // Is event handler enabled?
|
||||
wxList* m_dynamicEvents;
|
||||
|
||||
@@ -1119,6 +1129,8 @@ const wxEventTableEntry theClass::sm_eventTableEntries[] = { \
|
||||
#define EVT_SIZE(func) { wxEVT_SIZE, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxSizeEventFunction) & func, (wxObject *) NULL },
|
||||
#define EVT_MOVE(func) { wxEVT_MOVE, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxMoveEventFunction) & func, (wxObject *) NULL },
|
||||
#define EVT_CLOSE(func) { wxEVT_CLOSE_WINDOW, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxCloseEventFunction) & func, (wxObject *) NULL },
|
||||
#define EVT_END_SESSION(func) { wxEVT_END_SESSION, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxCloseEventFunction) & func, (wxObject *) NULL },
|
||||
#define EVT_QUERY_END_SESSION(func) { wxEVT_QUERY_END_SESSION, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxCloseEventFunction) & func, (wxObject *) NULL },
|
||||
#define EVT_PAINT(func) { wxEVT_PAINT, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxPaintEventFunction) & func, (wxObject *) NULL },
|
||||
#define EVT_ERASE_BACKGROUND(func) { wxEVT_ERASE_BACKGROUND, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxEraseEventFunction) & func, (wxObject *) NULL },
|
||||
#define EVT_CHAR(func) { wxEVT_CHAR, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxCharEventFunction) & func, (wxObject *) NULL },
|
||||
@@ -1172,7 +1184,7 @@ const wxEventTableEntry theClass::sm_eventTableEntries[] = { \
|
||||
|
||||
// EVT_COMMAND
|
||||
#define EVT_COMMAND(id, cmd, fn) { cmd, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) & fn, (wxObject *) NULL },
|
||||
#define EVT_COMMAND_RANGE(id1, id2, cmd, fn) { cmd, id1, id2, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) & fn, N(wxObject *) ULL },
|
||||
#define EVT_COMMAND_RANGE(id1, id2, cmd, fn) { cmd, id1, id2, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) & fn, (wxObject *) NULL },
|
||||
|
||||
// Scrolling
|
||||
#define EVT_SCROLL(func) \
|
||||
|
@@ -120,7 +120,7 @@ public:
|
||||
bool Error() const { return m_error; }
|
||||
|
||||
// dtor closes the file if opened
|
||||
virtual ~wxFile(); // Temporally virtual because of wxFileStream: I'll change back in a near future.
|
||||
~wxFile();
|
||||
|
||||
private:
|
||||
// copy ctor and assignment operator are private because
|
||||
|
@@ -26,9 +26,9 @@
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
// it won't compile without it anyhow
|
||||
#ifndef USE_WXCONFIG
|
||||
#error "Please define USE_WXCONFIG or remove fileconf.cpp from your makefile"
|
||||
#endif // USE_WXCONFIG
|
||||
#ifndef wxUSE_CONFIG
|
||||
#error "Please define wxUSE_CONFIG or remove fileconf.cpp from your makefile"
|
||||
#endif // wxUSE_CONFIG
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// wxFileConfig
|
||||
@@ -133,9 +133,9 @@ public:
|
||||
|
||||
// New constructor: one size fits all. Specify wxCONFIG_USE_LOCAL_FILE
|
||||
// or wxCONFIG_USE_GLOBAL_FILE to say which files should be used.
|
||||
wxFileConfig(const wxString& appName, const wxString& vendorName = wxEmptyString,
|
||||
const wxString& localFilename = wxEmptyString, const wxString& globalFilename = wxEmptyString,
|
||||
long style = wxCONFIG_USE_LOCAL_FILE);
|
||||
wxFileConfig(const wxString& appName, const wxString& vendorName = "",
|
||||
const wxString& localFilename = "", const wxString& globalFilename = "",
|
||||
long style = wxCONFIG_USE_LOCAL_FILE);
|
||||
|
||||
// dtor will save unsaved data
|
||||
virtual ~wxFileConfig();
|
||||
@@ -155,18 +155,6 @@ public:
|
||||
virtual bool HasGroup(const wxString& strName) const;
|
||||
virtual bool HasEntry(const wxString& strName) const;
|
||||
|
||||
#if 0
|
||||
virtual bool Read(wxString *pstr, const char *szKey,
|
||||
const char *szDefault = 0) const;
|
||||
virtual const char *Read(const char *szKey,
|
||||
const char *szDefault = 0) const;
|
||||
virtual bool Read(long *pl, const char *szKey, long lDefault) const;
|
||||
virtual long Read(const char *szKey, long lDefault) const
|
||||
{ return wxConfigBase::Read(szKey, lDefault); }
|
||||
virtual bool Write(const char *szKey, const char *szValue);
|
||||
virtual bool Write(const char *szKey, long lValue);
|
||||
#endif
|
||||
|
||||
virtual bool Read(const wxString& key, wxString *pStr) const;
|
||||
virtual bool Read(const wxString& key, wxString *pStr, const wxString& defValue) const;
|
||||
virtual bool Read(const wxString& key, long *pl) const;
|
||||
@@ -178,6 +166,10 @@ public:
|
||||
{ return wxConfigBase::Read(key, pl, defVal); }
|
||||
long Read(const wxString& key, long defVal) const
|
||||
{ return wxConfigBase::Read(key, defVal); }
|
||||
bool Read(const wxString& key, int *pi, int defVal) const
|
||||
{ return wxConfigBase::Read(key, pi, defVal); }
|
||||
bool Read(const wxString& key, int *pi) const
|
||||
{ return wxConfigBase::Read(key, pi); }
|
||||
bool Read(const wxString& key, double* val) const
|
||||
{ return wxConfigBase::Read(key, val); }
|
||||
bool Read(const wxString& key, double* val, double defVal) const
|
||||
|
@@ -40,101 +40,101 @@ typedef enum {
|
||||
// ----------------------------------------------------------------------------
|
||||
// functions
|
||||
// ----------------------------------------------------------------------------
|
||||
bool WXDLLEXPORT wxFileExists(const wxString& filename);
|
||||
WXDLLEXPORT bool wxFileExists(const wxString& filename);
|
||||
#define FileExists wxFileExists
|
||||
|
||||
// does the path exist? (may have or not '/' or '\\' at the end)
|
||||
bool WXDLLEXPORT wxPathExists(const char *pszPathName);
|
||||
WXDLLEXPORT bool wxPathExists(const char *pszPathName);
|
||||
|
||||
#define wxDirExists wxPathExists
|
||||
#define DirExists wxDirExists
|
||||
|
||||
bool WXDLLEXPORT wxIsAbsolutePath(const wxString& filename);
|
||||
WXDLLEXPORT bool wxIsAbsolutePath(const wxString& filename);
|
||||
#define IsAbsolutePath wxIsAbsolutePath
|
||||
|
||||
// Get filename
|
||||
char* WXDLLEXPORT wxFileNameFromPath(char *path);
|
||||
wxString WXDLLEXPORT wxFileNameFromPath(const wxString& path);
|
||||
WXDLLEXPORT char* wxFileNameFromPath(char *path);
|
||||
WXDLLEXPORT wxString wxFileNameFromPath(const wxString& path);
|
||||
#define FileNameFromPath wxFileNameFromPath
|
||||
|
||||
// Get directory
|
||||
char* WXDLLEXPORT wxPathOnly(char *path);
|
||||
wxString WXDLLEXPORT wxPathOnly(const wxString& path);
|
||||
WXDLLEXPORT char* wxPathOnly(char *path);
|
||||
WXDLLEXPORT wxString wxPathOnly(const wxString& path);
|
||||
#define PathOnly wxPathOnly
|
||||
|
||||
// wxString version
|
||||
wxString WXDLLEXPORT wxRealPath(const wxString& path);
|
||||
WXDLLEXPORT wxString wxRealPath(const wxString& path);
|
||||
|
||||
void WXDLLEXPORT wxDos2UnixFilename(char *s);
|
||||
WXDLLEXPORT void wxDos2UnixFilename(char *s);
|
||||
#define Dos2UnixFilename wxDos2UnixFilename
|
||||
|
||||
void WXDLLEXPORT wxUnix2DosFilename(char *s);
|
||||
WXDLLEXPORT void wxUnix2DosFilename(char *s);
|
||||
#define Unix2DosFilename wxUnix2DosFilename
|
||||
|
||||
// Strip the extension, in situ
|
||||
void WXDLLEXPORT wxStripExtension(char *buffer);
|
||||
void WXDLLEXPORT wxStripExtension(wxString& buffer);
|
||||
WXDLLEXPORT void wxStripExtension(char *buffer);
|
||||
WXDLLEXPORT void wxStripExtension(wxString& buffer);
|
||||
|
||||
// Get a temporary filename, opening and closing the file.
|
||||
char* WXDLLEXPORT wxGetTempFileName(const wxString& prefix, char *buf = (char *) NULL);
|
||||
WXDLLEXPORT char* wxGetTempFileName(const wxString& prefix, char *buf = (char *) NULL);
|
||||
|
||||
// Expand file name (~/ and ${OPENWINHOME}/ stuff)
|
||||
char* WXDLLEXPORT wxExpandPath(char *dest, const char *path);
|
||||
WXDLLEXPORT char* wxExpandPath(char *dest, const char *path);
|
||||
|
||||
// Contract w.r.t environment (</usr/openwin/lib, OPENWHOME> -> ${OPENWINHOME}/lib)
|
||||
// and make (if under the home tree) relative to home
|
||||
// [caller must copy-- volatile]
|
||||
char* WXDLLEXPORT wxContractPath (const wxString& filename,
|
||||
WXDLLEXPORT char* wxContractPath (const wxString& filename,
|
||||
const wxString& envname = "", const wxString& user = "");
|
||||
|
||||
// Destructive removal of /./ and /../ stuff
|
||||
char* WXDLLEXPORT wxRealPath(char *path);
|
||||
WXDLLEXPORT char* wxRealPath(char *path);
|
||||
|
||||
// Allocate a copy of the full absolute path
|
||||
char* WXDLLEXPORT wxCopyAbsolutePath(const wxString& path);
|
||||
WXDLLEXPORT char* wxCopyAbsolutePath(const wxString& path);
|
||||
|
||||
// Get first file name matching given wild card.
|
||||
// Flags are reserved for future use.
|
||||
#define wxFILE 1
|
||||
#define wxDIR 2
|
||||
char* WXDLLEXPORT wxFindFirstFile(const char *spec, int flags = wxFILE);
|
||||
char* WXDLLEXPORT wxFindNextFile(void);
|
||||
WXDLLEXPORT char* wxFindFirstFile(const char *spec, int flags = wxFILE);
|
||||
WXDLLEXPORT char* wxFindNextFile(void);
|
||||
|
||||
// Does the pattern contain wildcards?
|
||||
bool WXDLLEXPORT wxIsWild(const wxString& pattern);
|
||||
WXDLLEXPORT bool wxIsWild(const wxString& pattern);
|
||||
|
||||
// Does the pattern match the text (usually a filename)?
|
||||
// If dot_special is TRUE, doesn't match * against . (eliminating
|
||||
// `hidden' dot files)
|
||||
bool WXDLLEXPORT wxMatchWild(const wxString& pattern, const wxString& text, bool dot_special = TRUE);
|
||||
WXDLLEXPORT bool wxMatchWild(const wxString& pattern, const wxString& text, bool dot_special = TRUE);
|
||||
|
||||
// Concatenate two files to form third
|
||||
bool WXDLLEXPORT wxConcatFiles(const wxString& file1, const wxString& file2, const wxString& file3);
|
||||
WXDLLEXPORT bool wxConcatFiles(const wxString& file1, const wxString& file2, const wxString& file3);
|
||||
|
||||
// Copy file1 to file2
|
||||
bool WXDLLEXPORT wxCopyFile(const wxString& file1, const wxString& file2);
|
||||
WXDLLEXPORT bool wxCopyFile(const wxString& file1, const wxString& file2);
|
||||
|
||||
// Remove file
|
||||
bool WXDLLEXPORT wxRemoveFile(const wxString& file);
|
||||
WXDLLEXPORT bool wxRemoveFile(const wxString& file);
|
||||
|
||||
// Rename file
|
||||
bool WXDLLEXPORT wxRenameFile(const wxString& file1, const wxString& file2);
|
||||
WXDLLEXPORT bool wxRenameFile(const wxString& file1, const wxString& file2);
|
||||
|
||||
// Get current working directory.
|
||||
// If buf is NULL, allocates space using new, else
|
||||
// copies into buf.
|
||||
// IMPORTANT NOTE getcwd is know not to work under some releases
|
||||
// of Win32s 1.3, according to MS release notes!
|
||||
char* WXDLLEXPORT wxGetWorkingDirectory(char *buf = (char *) NULL, int sz = 1000);
|
||||
WXDLLEXPORT char* wxGetWorkingDirectory(char *buf = (char *) NULL, int sz = 1000);
|
||||
|
||||
// Set working directory
|
||||
bool WXDLLEXPORT wxSetWorkingDirectory(const wxString& d);
|
||||
WXDLLEXPORT bool wxSetWorkingDirectory(const wxString& d);
|
||||
|
||||
// Make directory
|
||||
bool WXDLLEXPORT wxMkdir(const wxString& dir);
|
||||
WXDLLEXPORT bool wxMkdir(const wxString& dir);
|
||||
|
||||
// Remove directory. Flags reserved for future use.
|
||||
bool WXDLLEXPORT wxRmdir(const wxString& dir, int flags = 0);
|
||||
WXDLLEXPORT bool wxRmdir(const wxString& dir, int flags = 0);
|
||||
|
||||
// separators in file names
|
||||
#define FILE_SEP_EXT '.'
|
||||
@@ -169,17 +169,17 @@ inline bool wxIsPathSeparator(char c)
|
||||
{ return c == FILE_SEP_PATH_DOS || c == FILE_SEP_PATH_UNIX; }
|
||||
|
||||
// does the string ends with path separator?
|
||||
bool WXDLLEXPORT wxEndsWithPathSeparator(const char *pszFileName);
|
||||
WXDLLEXPORT bool wxEndsWithPathSeparator(const char *pszFileName);
|
||||
|
||||
// split the full path into path (including drive for DOS), name and extension
|
||||
// (understands both '/' and '\\')
|
||||
void WXDLLEXPORT wxSplitPath(const char *pszFileName,
|
||||
WXDLLEXPORT void wxSplitPath(const char *pszFileName,
|
||||
wxString *pstrPath,
|
||||
wxString *pstrName,
|
||||
wxString *pstrExt);
|
||||
|
||||
// find a file in a list of directories, returns false if not found
|
||||
bool WXDLLEXPORT wxFindFileInPath(wxString *pStr, const char *pszPath, const char *pszFile);
|
||||
WXDLLEXPORT bool wxFindFileInPath(wxString *pStr, const char *pszPath, const char *pszFile);
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// classes
|
||||
|
@@ -6,23 +6,23 @@
|
||||
#elif defined(__WXMOTIF__)
|
||||
#include "wx/generic/fontdlgg.h"
|
||||
# define wxFontDialog wxGenericFontDialog
|
||||
# define classwxFontDialog classwxGenericFontDialog
|
||||
# define sm_classwxFontDialog sm_classwxGenericFontDialog
|
||||
#elif defined(__WXGTK__)
|
||||
#include "wx/generic/fontdlgg.h"
|
||||
# define wxFontDialog wxGenericFontDialog
|
||||
# define classwxFontDialog classwxGenericFontDialog
|
||||
# define sm_classwxFontDialog sm_classwxGenericFontDialog
|
||||
#elif defined(__WXQT__)
|
||||
#include "wx/generic/fontdlgg.h"
|
||||
# define wxFontDialog wxGenericFontDialog
|
||||
# define classwxFontDialog classwxGenericFontDialog
|
||||
# define sm_classwxFontDialog sm_classwxGenericFontDialog
|
||||
#elif defined(__WXMAC__)
|
||||
#include "wx/generic/fontdlgg.h"
|
||||
# define wxFontDialog wxGenericFontDialog
|
||||
# define classwxFontDialog classwxGenericFontDialog
|
||||
# define sm_classwxFontDialog sm_classwxGenericFontDialog
|
||||
#elif defined(__WXSTUBS__)
|
||||
#include "wx/generic/fontdlgg.h"
|
||||
# define wxFontDialog wxGenericFontDialog
|
||||
# define classwxFontDialog classwxGenericFontDialog
|
||||
# define sm_classwxFontDialog sm_classwxGenericFontDialog
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
@@ -8,36 +8,47 @@
|
||||
// Copyright: (c) Guilhem Lavaux
|
||||
// Licence: wxWindows licence
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef _WX_WXFSTREAM_H__
|
||||
#define _WX_WXFSTREAM_H__
|
||||
|
||||
#ifdef __GNUG__
|
||||
#pragma interface "fstream.h"
|
||||
#endif
|
||||
|
||||
#include <wx/object.h>
|
||||
#include <wx/string.h>
|
||||
#include <wx/stream.h>
|
||||
#include <wx/file.h>
|
||||
|
||||
class wxFileInputStream: public wxInputStream, virtual public wxFile {
|
||||
class wxFileInputStream: public wxInputStream {
|
||||
public:
|
||||
wxFileInputStream(const wxString& fileName);
|
||||
wxFileInputStream(const wxString& ifileName);
|
||||
wxFileInputStream(wxFile& file);
|
||||
wxFileInputStream(int fd);
|
||||
virtual ~wxFileInputStream();
|
||||
|
||||
virtual char Peek();
|
||||
|
||||
virtual bool Eof() const { return wxFile::Eof(); }
|
||||
|
||||
bool Ok() const { return wxFile::IsOpened(); }
|
||||
bool Ok() const { return m_file->IsOpened(); }
|
||||
|
||||
protected:
|
||||
wxFileInputStream() {}
|
||||
wxFileInputStream();
|
||||
|
||||
size_t DoRead(void *buffer, size_t size);
|
||||
off_t DoSeekInput(off_t pos, wxSeekMode mode);
|
||||
off_t DoTellInput() const;
|
||||
size_t OnSysRead(void *buffer, size_t size);
|
||||
off_t OnSysSeek(off_t pos, wxSeekMode mode);
|
||||
off_t OnSysTell() const;
|
||||
|
||||
protected:
|
||||
wxFile *m_file;
|
||||
bool m_file_destroy;
|
||||
};
|
||||
|
||||
class wxFileOutputStream: public wxOutputStream, virtual public wxFile {
|
||||
class wxFileOutputStream: public wxOutputStream {
|
||||
public:
|
||||
wxFileOutputStream(const wxString& fileName);
|
||||
wxFileOutputStream(wxFile& file);
|
||||
wxFileOutputStream(int fd);
|
||||
virtual ~wxFileOutputStream();
|
||||
|
||||
// To solve an ambiguity on GCC
|
||||
@@ -46,20 +57,18 @@ class wxFileOutputStream: public wxOutputStream, virtual public wxFile {
|
||||
|
||||
void Sync();
|
||||
|
||||
bool Ok() const { return wxFile::IsOpened(); }
|
||||
bool Ok() const { return m_file->IsOpened(); }
|
||||
|
||||
protected:
|
||||
wxFileOutputStream() {}
|
||||
wxFileOutputStream();
|
||||
|
||||
size_t DoWrite(const void *buffer, size_t size);
|
||||
off_t DoSeekOutput(off_t pos, wxSeekMode mode);
|
||||
off_t DoTellOutput() const;
|
||||
};
|
||||
size_t OnSysWrite(const void *buffer, size_t size);
|
||||
off_t OnSysSeek(off_t pos, wxSeekMode mode);
|
||||
off_t OnSysTell() const;
|
||||
|
||||
class wxFileStream: public wxFileInputStream, public wxFileOutputStream {
|
||||
public:
|
||||
wxFileStream(const wxString& fileName);
|
||||
virtual ~wxFileStream();
|
||||
protected:
|
||||
wxFile *m_file;
|
||||
bool m_file_destroy;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@@ -25,6 +25,7 @@
|
||||
|
||||
// Standard cursors
|
||||
typedef enum {
|
||||
wxCURSOR_NONE = 0,
|
||||
wxCURSOR_ARROW = 1,
|
||||
wxCURSOR_BULLSEYE,
|
||||
wxCURSOR_CHAR,
|
||||
@@ -57,7 +58,7 @@ typedef enum {
|
||||
wxCURSOR_BASED_ARROW_UP,
|
||||
wxCURSOR_BASED_ARROW_DOWN
|
||||
#endif
|
||||
} _standard_cursors_t;
|
||||
} wxStockCursor;
|
||||
|
||||
class WXDLLEXPORT wxSize
|
||||
{
|
||||
@@ -198,7 +199,6 @@ class WXDLLEXPORT wxPenList: public wxList
|
||||
void AddPen(wxPen *pen);
|
||||
void RemovePen(wxPen *pen);
|
||||
wxPen *FindOrCreatePen(const wxColour& colour, int width, int style);
|
||||
wxPen *FindOrCreatePen(const wxString& colour, int width, int style);
|
||||
};
|
||||
|
||||
class WXDLLEXPORT wxBrushList: public wxList
|
||||
@@ -211,7 +211,6 @@ class WXDLLEXPORT wxBrushList: public wxList
|
||||
void AddBrush(wxBrush *brush);
|
||||
void RemoveBrush(wxBrush *brush);
|
||||
wxBrush *FindOrCreateBrush(const wxColour& colour, int style);
|
||||
wxBrush *FindOrCreateBrush(const wxString& colour, int style);
|
||||
};
|
||||
|
||||
WXDLLEXPORT_DATA(extern const char*) wxEmptyString;
|
||||
@@ -326,21 +325,27 @@ extern wxSize WXDLLEXPORT wxGetDisplaySize();
|
||||
|
||||
extern void WXDLLEXPORT wxSetCursor(const wxCursor& cursor);
|
||||
|
||||
// Useful macro for create icons portably
|
||||
// Useful macro for creating icons portably
|
||||
|
||||
#ifdef __WXMSW__
|
||||
# define wxICON(X) wxIcon(X##_icon);
|
||||
#elif defined(__X__)
|
||||
# define wxICON(X) wxIcon(X##_bits, X##_width, X##_height);
|
||||
// Load from a resource
|
||||
# define wxICON(X) wxIcon("" #X "")
|
||||
|
||||
#elif defined(__WXGTK__)
|
||||
// Initialize from an included XPM
|
||||
# define wxICON(X) wxIcon(X##_xpm)
|
||||
#else
|
||||
# define wxICON wxIcon
|
||||
|
||||
// This will usually mean something on any platform
|
||||
# define wxICON(X) wxIcon("" #X "")
|
||||
#endif
|
||||
|
||||
/*
|
||||
Example:
|
||||
#define wxbuild_icon "wxbuild"
|
||||
|
||||
wxIcon *icon = new wxICON(wxbuild);
|
||||
wxIcon *icon = new wxICON(mondrian);
|
||||
expands into:
|
||||
wxIcon *icon = new wxIcon("mondrian"); // On wxMSW
|
||||
wxIcon *icon = new wxIcon(mondrian_xpm); // On wxGTK
|
||||
*/
|
||||
|
||||
class WXDLLEXPORT wxResourceCache: public wxList
|
||||
|
@@ -56,43 +56,43 @@ protected:
|
||||
char* m_clientData;
|
||||
};
|
||||
|
||||
wxString WXDLLEXPORT wxGetSingleChoice(const wxString& message, const wxString& caption,
|
||||
WXDLLEXPORT wxString wxGetSingleChoice(const wxString& message, const wxString& caption,
|
||||
int n, const wxString *choices, wxWindow *parent = (wxWindow *) NULL,
|
||||
int x = -1, int y = -1, bool centre = TRUE,
|
||||
int width = wxCHOICE_WIDTH, int height = wxCHOICE_HEIGHT);
|
||||
|
||||
wxString WXDLLEXPORT wxGetSingleChoice(const wxString& message, const wxString& caption,
|
||||
WXDLLEXPORT wxString wxGetSingleChoice(const wxString& message, const wxString& caption,
|
||||
int n, char *choices[], wxWindow *parent = (wxWindow *) NULL,
|
||||
int x = -1, int y = -1, bool centre = TRUE,
|
||||
int width = wxCHOICE_WIDTH, int height = wxCHOICE_HEIGHT);
|
||||
|
||||
// Same as above but gets position in list of strings, instead of string,
|
||||
// or -1 if no selection
|
||||
int WXDLLEXPORT wxGetSingleChoiceIndex(const wxString& message, const wxString& caption,
|
||||
WXDLLEXPORT int wxGetSingleChoiceIndex(const wxString& message, const wxString& caption,
|
||||
int n, const wxString *choices, wxWindow *parent = (wxWindow *) NULL,
|
||||
int x = -1, int y = -1, bool centre = TRUE,
|
||||
int width = wxCHOICE_WIDTH, int height = wxCHOICE_HEIGHT);
|
||||
|
||||
int WXDLLEXPORT wxGetSingleChoiceIndex(const wxString& message, const wxString& caption,
|
||||
WXDLLEXPORT int wxGetSingleChoiceIndex(const wxString& message, const wxString& caption,
|
||||
int n, char *choices[], wxWindow *parent = (wxWindow *) NULL,
|
||||
int x = -1, int y = -1, bool centre = TRUE,
|
||||
int width = wxCHOICE_WIDTH, int height = wxCHOICE_HEIGHT);
|
||||
|
||||
// Return client data instead
|
||||
char* WXDLLEXPORT wxGetSingleChoiceData(const wxString& message, const wxString& caption,
|
||||
WXDLLEXPORT char* wxGetSingleChoiceData(const wxString& message, const wxString& caption,
|
||||
int n, const wxString *choices, char **client_data,
|
||||
wxWindow *parent = (wxWindow *) NULL, int x = -1, int y = -1,
|
||||
bool centre = TRUE,
|
||||
int width = wxCHOICE_WIDTH, int height = wxCHOICE_HEIGHT);
|
||||
|
||||
char* WXDLLEXPORT wxGetSingleChoiceData(const wxString& message, const wxString& caption,
|
||||
WXDLLEXPORT char* wxGetSingleChoiceData(const wxString& message, const wxString& caption,
|
||||
int n, char *choices[], char **client_data,
|
||||
wxWindow *parent = (wxWindow *) NULL, int x = -1, int y = -1,
|
||||
bool centre = TRUE,
|
||||
int width = wxCHOICE_WIDTH, int height = wxCHOICE_HEIGHT);
|
||||
|
||||
/*
|
||||
int WXDLLEXPORT wxGetMultipleChoice(const wxString& message, const wxString& caption,
|
||||
WXDLLEXPORT int wxGetMultipleChoice(const wxString& message, const wxString& caption,
|
||||
int n, const wxString *choices,
|
||||
int nsel, int * selection,
|
||||
wxWindow *parent = NULL, int x = -1 , int y = -1, bool centre = TRUE,
|
||||
|
140
include/wx/generic/helpext.h
Normal file
140
include/wx/generic/helpext.h
Normal file
@@ -0,0 +1,140 @@
|
||||
/*-*- c++ -*-********************************************************
|
||||
* exthlp.h - an external help controller for wxWindows *
|
||||
* *
|
||||
* (C) 1998 by Karsten Ball<6C>der (Ballueder@usa.net) *
|
||||
* *
|
||||
* $Id$
|
||||
*******************************************************************/
|
||||
#ifndef WXXHELP_H
|
||||
#define WXXHELP_H
|
||||
|
||||
#if wxUSE_HELP
|
||||
|
||||
#ifdef __GNUG__
|
||||
# pragma interface "wxexthlp.h"
|
||||
#endif
|
||||
|
||||
#include "wx/helpbase.h"
|
||||
|
||||
/// Name for map file.
|
||||
#define WXEXTHELP_MAPFILE "wxhelp.map"
|
||||
/// Path separator.
|
||||
#define WXEXTHELP_SEPARATOR '/'
|
||||
#ifndef WXEXTHELP_DEFAULTBROWSER
|
||||
/// Default browser name.
|
||||
# define WXEXTHELP_DEFAULTBROWSER "netscape"
|
||||
/// Is default browse a variant of netscape?
|
||||
# define WXEXTHELP_DEFAULTBROWSER_IS_NETSCAPE TRUE
|
||||
#endif
|
||||
/// Name of environment variable to set help browser.
|
||||
#define WXEXTHELP_ENVVAR_BROWSER "WX_HELPBROWSER"
|
||||
/// Is browser a netscape browser?
|
||||
#define WXEXTHELP_ENVVAR_BROWSERISNETSCAPE "WX_HELPBROWSER_NS"
|
||||
/// Maximum line length in map file.
|
||||
#define WXEXTHELP_BUFLEN 512
|
||||
/// Character introducing comments/documentation field in map file.
|
||||
#define WXEXTHELP_COMMENTCHAR ';'
|
||||
|
||||
class wxExtHelpMapList;
|
||||
|
||||
|
||||
/**
|
||||
This class implements help via an external browser.
|
||||
It requires the name of a directory containing the documentation
|
||||
and a file mapping numerical Section numbers to relative URLS.
|
||||
|
||||
The map file contains two or three fields per line:
|
||||
numeric_id relative_URL [; comment/documentation]
|
||||
|
||||
The numeric_id is the id used to look up the entry in
|
||||
DisplaySection()/DisplayBlock(). The relative_URL is a filename of
|
||||
an html file, relative to the help directory. The optional
|
||||
comment/documentation field (after a ';') is used for keyword
|
||||
searches, so some meaningful text here does not hurt.
|
||||
If the documentation itself contains a ';', only the part before
|
||||
that will be displayed in the listbox, but all of it used for search.
|
||||
|
||||
Lines starting with ';' will be ignored.
|
||||
*/
|
||||
|
||||
class wxExtHelpController : public wxHelpControllerBase
|
||||
{
|
||||
DECLARE_CLASS(wxExtHelpController)
|
||||
public:
|
||||
wxExtHelpController(void);
|
||||
virtual ~wxExtHelpController(void);
|
||||
|
||||
/** This must be called to tell the controller where to find the
|
||||
documentation.
|
||||
@param file - NOT a filename, but a directory name.
|
||||
@return true on success
|
||||
*/
|
||||
virtual bool Initialize(const wxString& file, int WXUNUSED(server))
|
||||
{ return Initialize(file); }
|
||||
|
||||
/** This must be called to tell the controller where to find the
|
||||
documentation.
|
||||
@param file - NOT a filename, but a directory name.
|
||||
@return true on success
|
||||
*/
|
||||
virtual bool Initialize(const wxString& file);
|
||||
|
||||
/** If file is "", reloads file given in Initialize.
|
||||
@file Name of help directory.
|
||||
@return true on success
|
||||
*/
|
||||
virtual bool LoadFile(const wxString& file = "");
|
||||
|
||||
/** Display list of all help entries.
|
||||
@return true on success
|
||||
*/
|
||||
virtual bool DisplayContents(void);
|
||||
/** Display help for id sectionNo.
|
||||
@return true on success
|
||||
*/
|
||||
virtual bool DisplaySection(int sectionNo);
|
||||
/** Display help for id sectionNo -- identical with DisplaySection().
|
||||
@return true on success
|
||||
*/
|
||||
virtual bool DisplayBlock(long blockNo);
|
||||
/** Search comment/documentation fields in map file and present a
|
||||
list to chose from.
|
||||
@key k string to search for, empty string will list all entries
|
||||
@return true on success
|
||||
*/
|
||||
virtual bool KeywordSearch(const wxString& k);
|
||||
|
||||
/// does nothing
|
||||
virtual bool Quit(void);
|
||||
/// does nothing
|
||||
virtual void OnQuit(void);
|
||||
|
||||
/** Tell it which browser to use.
|
||||
The Netscape support will check whether Netscape is already
|
||||
running (by looking at the .netscape/lock file in the user's
|
||||
home directory) and tell it to load the page into the existing
|
||||
window.
|
||||
@param browsername The command to call a browser/html viewer.
|
||||
@param isNetscape Set this to TRUE if the browser is some variant of Netscape.
|
||||
*/
|
||||
void SetBrowser(wxString const & browsername = WXEXTHELP_DEFAULTBROWSER,
|
||||
bool isNetscape = WXEXTHELP_DEFAULTBROWSER_IS_NETSCAPE);
|
||||
private:
|
||||
/// Filename of currently active map file.
|
||||
wxString m_MapFile;
|
||||
/// How many entries do we have in the map file?
|
||||
int m_NumOfEntries;
|
||||
/// A list containing all id,url,documentation triples.
|
||||
wxList *m_MapList;
|
||||
/// How to call the html viewer.
|
||||
wxString m_BrowserName;
|
||||
/// Is the viewer a variant of netscape?
|
||||
bool m_BrowserIsNetscape;
|
||||
/// Call the browser using a relative URL.
|
||||
bool CallBrowser(wxString const &);
|
||||
/// Deletes the list and all objects.
|
||||
void DeleteList(void);
|
||||
};
|
||||
|
||||
#endif
|
||||
#endif
|
@@ -21,7 +21,7 @@
|
||||
#include <stdio.h>
|
||||
#include "wx/wx.h"
|
||||
|
||||
#if USE_HELP
|
||||
#if wxUSE_HELP
|
||||
|
||||
#include "wx/helpbase.h"
|
||||
|
||||
@@ -122,6 +122,6 @@ class WXDLLEXPORT wxXLPHelpController: public wxHelpControllerBase
|
||||
wxXLPHelpClient helpClient;
|
||||
};
|
||||
|
||||
#endif // USE_HELP
|
||||
#endif // wxUSE_HELP
|
||||
#endif
|
||||
// __HELPXLPH__
|
||||
|
@@ -59,7 +59,7 @@ class wxImageList: public wxObject
|
||||
bool Create();
|
||||
int GetImageCount() const;
|
||||
int Add( const wxBitmap &bitmap );
|
||||
wxBitmap *GetBitmap(int index);
|
||||
const wxBitmap *GetBitmap(int index) const;
|
||||
bool Replace( int index, const wxBitmap &bitmap );
|
||||
bool Remove( int index );
|
||||
bool RemoveAll();
|
||||
|
181
include/wx/generic/laywin.h
Normal file
181
include/wx/generic/laywin.h
Normal file
@@ -0,0 +1,181 @@
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// Name: laywin.h
|
||||
// Purpose: Implements a simple layout algorithm, plus
|
||||
// wxSashLayoutWindow which is an example of a window with
|
||||
// layout-awareness (via event handlers). This is suited to
|
||||
// IDE-style window layout.
|
||||
// Author: Julian Smart
|
||||
// Modified by:
|
||||
// Created: 04/01/98
|
||||
// RCS-ID: $Id$
|
||||
// Copyright: (c) Julian Smart
|
||||
// Licence: wxWindows licence
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef _WX_LAYWIN_H_G_
|
||||
#define _WX_LAYWIN_H_G_
|
||||
|
||||
#ifdef __GNUG__
|
||||
#pragma interface "laywin.h"
|
||||
#endif
|
||||
|
||||
#include "wx/sashwin.h"
|
||||
|
||||
const wxEventType wxEVT_QUERY_LAYOUT_INFO = wxEVT_FIRST + 1500;
|
||||
const wxEventType wxEVT_CALCULATE_LAYOUT = wxEVT_FIRST + 1501;
|
||||
|
||||
enum wxLayoutOrientation {
|
||||
wxLAYOUT_HORIZONTAL,
|
||||
wxLAYOUT_VERTICAL
|
||||
};
|
||||
|
||||
enum wxLayoutAlignment {
|
||||
wxLAYOUT_NONE,
|
||||
wxLAYOUT_TOP,
|
||||
wxLAYOUT_LEFT,
|
||||
wxLAYOUT_RIGHT,
|
||||
wxLAYOUT_BOTTOM,
|
||||
};
|
||||
|
||||
// Not sure this is necessary
|
||||
// Tell window which dimension we're sizing on
|
||||
#define wxLAYOUT_LENGTH_Y 0x0008
|
||||
#define wxLAYOUT_LENGTH_X 0x0000
|
||||
|
||||
// Use most recently used length
|
||||
#define wxLAYOUT_MRU_LENGTH 0x0010
|
||||
|
||||
// Only a query, so don't actually move it.
|
||||
#define wxLAYOUT_QUERY 0x0100
|
||||
|
||||
/*
|
||||
* This event is used to get information about window alignment,
|
||||
* orientation and size.
|
||||
*/
|
||||
|
||||
class wxQueryLayoutInfoEvent: public wxEvent
|
||||
{
|
||||
DECLARE_DYNAMIC_CLASS(wxQueryLayoutInfoEvent)
|
||||
public:
|
||||
|
||||
wxQueryLayoutInfoEvent(wxWindowID id = 0)
|
||||
{
|
||||
SetEventType(wxEVT_QUERY_LAYOUT_INFO);
|
||||
m_requestedLength = 0;
|
||||
m_flags = 0;
|
||||
m_id = id;
|
||||
m_alignment = wxLAYOUT_TOP;
|
||||
m_orientation = wxLAYOUT_HORIZONTAL;
|
||||
}
|
||||
// Read by the app
|
||||
inline void SetRequestedLength(int length) { m_requestedLength = length; }
|
||||
inline int GetRequestedLength() const { return m_requestedLength; }
|
||||
|
||||
inline void SetFlags(int flags) { m_flags = flags; }
|
||||
inline int GetFlags() const { return m_flags; }
|
||||
|
||||
// Set by the app
|
||||
inline void SetSize(const wxSize& size) { m_size = size; }
|
||||
inline wxSize GetSize() const { return m_size; }
|
||||
|
||||
inline void SetOrientation(wxLayoutOrientation orient) { m_orientation = orient; }
|
||||
inline wxLayoutOrientation GetOrientation() const { return m_orientation; }
|
||||
|
||||
inline void SetAlignment(wxLayoutAlignment align) { m_alignment = align; }
|
||||
inline wxLayoutAlignment GetAlignment() const { return m_alignment; }
|
||||
protected:
|
||||
int m_flags;
|
||||
int m_requestedLength;
|
||||
wxSize m_size;
|
||||
wxLayoutOrientation m_orientation;
|
||||
wxLayoutAlignment m_alignment;
|
||||
|
||||
};
|
||||
|
||||
typedef void (wxEvtHandler::*wxQueryLayoutInfoEventFunction)(wxQueryLayoutInfoEvent&);
|
||||
|
||||
#define EVT_QUERY_LAYOUT_INFO(func) { wxEVT_QUERY_LAYOUT_INFO, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxQueryLayoutInfoEventFunction) & func, NULL },
|
||||
|
||||
/*
|
||||
* This event is used to take a bite out of the available client area.
|
||||
*/
|
||||
|
||||
class wxCalculateLayoutEvent: public wxEvent
|
||||
{
|
||||
DECLARE_DYNAMIC_CLASS(wxCalculateLayoutEvent)
|
||||
public:
|
||||
wxCalculateLayoutEvent(wxWindowID id = 0)
|
||||
{
|
||||
SetEventType(wxEVT_CALCULATE_LAYOUT);
|
||||
m_flags = 0;
|
||||
m_id = id;
|
||||
}
|
||||
// Read by the app
|
||||
inline void SetFlags(int flags) { m_flags = flags; }
|
||||
inline int GetFlags() const { return m_flags; }
|
||||
|
||||
// Set by the app
|
||||
inline void SetRect(const wxRect& rect) { m_rect = rect; }
|
||||
inline wxRect GetRect() const { return m_rect; }
|
||||
protected:
|
||||
int m_flags;
|
||||
wxRect m_rect;
|
||||
};
|
||||
|
||||
typedef void (wxEvtHandler::*wxCalculateLayoutEventFunction)(wxCalculateLayoutEvent&);
|
||||
|
||||
#define EVT_CALCULATE_LAYOUT(func) { wxEVT_CALCULATE_LAYOUT, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxCalculateLayoutEventFunction) & func, NULL },
|
||||
|
||||
// This is window that can remember alignment/orientation, does its own layout,
|
||||
// and can provide sashes too. Useful for implementing docked windows with sashes in
|
||||
// an IDE-style interface.
|
||||
class wxSashLayoutWindow: public wxSashWindow
|
||||
{
|
||||
DECLARE_CLASS(wxSashLayoutWindow)
|
||||
public:
|
||||
wxSashLayoutWindow(wxWindow *parent, wxWindowID id = -1, const wxPoint& pos = wxDefaultPosition,
|
||||
const wxSize& size = wxDefaultSize, long style = wxSW_3D|wxCLIP_CHILDREN, const wxString& name = "layoutWindow");
|
||||
|
||||
// Accessors
|
||||
inline wxLayoutAlignment GetAlignment() const { return m_alignment; };
|
||||
inline wxLayoutOrientation GetOrientation() const { return m_orientation; };
|
||||
|
||||
inline void SetAlignment(wxLayoutAlignment align) { m_alignment = align; };
|
||||
inline void SetOrientation(wxLayoutOrientation orient) { m_orientation = orient; };
|
||||
|
||||
// Give the window default dimensions
|
||||
inline void SetDefaultSize(const wxSize& size) { m_defaultSize = size; }
|
||||
|
||||
// Event handlers
|
||||
// Called by layout algorithm to allow window to take a bit out of the
|
||||
// client rectangle, and size itself if not in wxLAYOUT_QUERY mode.
|
||||
void OnCalculateLayout(wxCalculateLayoutEvent& event);
|
||||
|
||||
// Called by layout algorithm to retrieve information about the window.
|
||||
void OnQueryLayoutInfo(wxQueryLayoutInfoEvent& event);
|
||||
protected:
|
||||
wxLayoutAlignment m_alignment;
|
||||
wxLayoutOrientation m_orientation;
|
||||
wxSize m_defaultSize;
|
||||
|
||||
DECLARE_EVENT_TABLE()
|
||||
};
|
||||
|
||||
class WXDLLEXPORT wxMDIParentFrame;
|
||||
class WXDLLEXPORT wxFrame;
|
||||
|
||||
// This class implements the layout algorithm
|
||||
class wxLayoutAlgorithm: public wxObject
|
||||
{
|
||||
public:
|
||||
wxLayoutAlgorithm() {}
|
||||
|
||||
// The MDI client window is sized to whatever's left over.
|
||||
bool LayoutMDIFrame(wxMDIParentFrame* frame, wxRect* rect = (wxRect*) NULL);
|
||||
|
||||
// mainWindow is sized to whatever's left over.
|
||||
bool LayoutFrame(wxFrame* frame, wxWindow* mainWindow);
|
||||
};
|
||||
|
||||
#endif
|
||||
// _WX_LAYWIN_H_G_
|
@@ -232,7 +232,7 @@ class wxListItemData : public wxObject
|
||||
{
|
||||
DECLARE_DYNAMIC_CLASS(wxListItemData);
|
||||
|
||||
protected:
|
||||
public:
|
||||
wxString m_text;
|
||||
int m_image;
|
||||
long m_data;
|
||||
@@ -306,7 +306,7 @@ class wxListLineData : public wxObject
|
||||
{
|
||||
DECLARE_DYNAMIC_CLASS(wxListLineData);
|
||||
|
||||
protected:
|
||||
public:
|
||||
wxList m_items;
|
||||
wxRectangle m_bound_all;
|
||||
wxRectangle m_bound_label;
|
||||
@@ -359,6 +359,10 @@ class wxListHeaderWindow : public wxWindow
|
||||
wxListMainWindow *m_owner;
|
||||
wxCursor *m_currentCursor;
|
||||
wxCursor *m_resizeCursor;
|
||||
bool m_isDraging;
|
||||
int m_column;
|
||||
int m_minX;
|
||||
int m_currentX;
|
||||
|
||||
public:
|
||||
wxListHeaderWindow( void );
|
||||
@@ -367,6 +371,7 @@ class wxListHeaderWindow : public wxWindow
|
||||
long style = 0, const wxString &name = "columntitles" );
|
||||
void DoDrawRect( wxPaintDC *dc, int x, int y, int w, int h );
|
||||
void OnPaint( wxPaintEvent &event );
|
||||
void DrawCurrent();
|
||||
void OnMouse( wxMouseEvent &event );
|
||||
void OnSetFocus( wxFocusEvent &event );
|
||||
|
||||
@@ -430,7 +435,6 @@ class wxListMainWindow: public wxScrolledWindow
|
||||
int m_visibleLines;
|
||||
wxBrush *m_hilightBrush;
|
||||
wxColour *m_hilightColour;
|
||||
wxFont *m_myFont;
|
||||
int m_xScroll,m_yScroll;
|
||||
bool m_dirty;
|
||||
wxImageList *m_small_image_list;
|
||||
@@ -474,7 +478,6 @@ class wxListMainWindow: public wxScrolledWindow
|
||||
void OnSetFocus( wxFocusEvent &event );
|
||||
void OnKillFocus( wxFocusEvent &event );
|
||||
void OnSize( wxSizeEvent &event );
|
||||
wxFont *GetMyFont( void );
|
||||
void DrawImage( int index, wxPaintDC *dc, int x, int y );
|
||||
void GetImageSize( int index, int &width, int &height );
|
||||
int GetIndexOfLine( const wxListLineData *line );
|
||||
@@ -531,13 +534,18 @@ class wxListCtrl: public wxControl
|
||||
public:
|
||||
|
||||
wxListCtrl(void);
|
||||
wxListCtrl( wxWindow *parent, wxWindowID id,
|
||||
wxListCtrl( wxWindow *parent, wxWindowID id = -1,
|
||||
const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize,
|
||||
long style = 0, const wxString &name = "listctrl" );
|
||||
long style = wxLC_ICON, const wxValidator& validator = wxDefaultValidator,
|
||||
const wxString &name = "listctrl" )
|
||||
{
|
||||
Create(parent, id, pos, size, style, validator, name);
|
||||
}
|
||||
~wxListCtrl(void);
|
||||
bool Create( wxWindow *parent, wxWindowID id,
|
||||
bool Create( wxWindow *parent, wxWindowID id = -1,
|
||||
const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize,
|
||||
long style = 0, const wxString &name = "listctrl" );
|
||||
long style = wxLC_ICON, const wxValidator& validator = wxDefaultValidator,
|
||||
const wxString &name = "listctrl" );
|
||||
void OnSize( wxSizeEvent &event );
|
||||
bool GetColumn( int col, wxListItem& item );
|
||||
bool SetColumn( int col, wxListItem& item );
|
||||
@@ -596,6 +604,10 @@ class wxListCtrl: public wxControl
|
||||
|
||||
// We have to hand down a few functions
|
||||
|
||||
void SetBackgroundColour( const wxColour &colour );
|
||||
void SetForegroundColour( const wxColour &colour );
|
||||
void SetFont( const wxFont &font );
|
||||
|
||||
void SetDropTarget( wxDropTarget *dropTarget )
|
||||
{ m_mainWin->SetDropTarget( dropTarget ); }
|
||||
wxDropTarget *GetDropTarget() const
|
||||
@@ -604,16 +616,12 @@ class wxListCtrl: public wxControl
|
||||
{ m_mainWin->SetCursor( cursor); }
|
||||
wxColour GetBackgroundColour() const
|
||||
{ return m_mainWin->GetBackgroundColour(); }
|
||||
void SetBackgroundColour( const wxColour &colour )
|
||||
{ m_mainWin->SetBackgroundColour( colour ); }
|
||||
wxColour GetForegroundColour() const
|
||||
{ return m_mainWin->GetForegroundColour(); }
|
||||
void SetForegroundColour( const wxColour &colour )
|
||||
{ m_mainWin->SetForegroundColour( colour ); }
|
||||
bool PopupMenu( wxMenu *menu, int x, int y )
|
||||
{ return m_mainWin->PopupMenu( menu, x, y ); }
|
||||
|
||||
protected:
|
||||
// implementation
|
||||
|
||||
// wxListTextCtrl m_textCtrl;
|
||||
wxImageList *m_imageListNormal;
|
||||
|
@@ -64,7 +64,7 @@ public:
|
||||
void OnSysColourChanged(wxSysColourChangedEvent& event);
|
||||
// Process a keyboard navigation message (Tab traversal)
|
||||
void OnNavigationKey(wxNavigationKeyEvent& event);
|
||||
|
||||
|
||||
protected:
|
||||
bool SetFocusToNextChild(wxNode *nodeCurrent = (wxNode *) NULL, bool bForward = TRUE);
|
||||
|
||||
|
214
include/wx/generic/sashwin.h
Normal file
214
include/wx/generic/sashwin.h
Normal file
@@ -0,0 +1,214 @@
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// Name: sashwin.h
|
||||
// Purpose: wxSashWindow implementation. A sash window has an optional
|
||||
// sash on each edge, allowing it to be dragged. An event
|
||||
// is generated when the sash is released.
|
||||
// Author: Julian Smart
|
||||
// Modified by:
|
||||
// Created: 01/02/97
|
||||
// RCS-ID: $Id$
|
||||
// Copyright: (c) Julian Smart
|
||||
// Licence: wxWindows license
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef _WX_SASHWIN_H_G_
|
||||
#define _WX_SASHWIN_H_G_
|
||||
|
||||
#ifdef __GNUG__
|
||||
#pragma interface "sashwin.h"
|
||||
#endif
|
||||
|
||||
#include "wx/defs.h"
|
||||
#include "wx/window.h"
|
||||
#include "wx/string.h"
|
||||
|
||||
#define wxSASH_DRAG_NONE 0
|
||||
#define wxSASH_DRAG_DRAGGING 1
|
||||
#define wxSASH_DRAG_LEFT_DOWN 2
|
||||
|
||||
enum wxSashEdgePosition {
|
||||
wxSASH_TOP = 0,
|
||||
wxSASH_RIGHT,
|
||||
wxSASH_BOTTOM,
|
||||
wxSASH_LEFT,
|
||||
wxSASH_NONE = 100
|
||||
};
|
||||
|
||||
/*
|
||||
* wxSashEdge represents one of the four edges of a window.
|
||||
*/
|
||||
|
||||
class WXDLLEXPORT wxSashEdge
|
||||
{
|
||||
public:
|
||||
wxSashEdge() { m_show = FALSE; m_border = FALSE; m_margin = 0; }
|
||||
|
||||
bool m_show; // Is the sash showing?
|
||||
bool m_border; // Do we draw a border?
|
||||
int m_margin; // The margin size
|
||||
};
|
||||
|
||||
/*
|
||||
* wxSashWindow flags
|
||||
*/
|
||||
|
||||
#define wxSW_3D 0x0004
|
||||
|
||||
/*
|
||||
* wxSashWindow allows any of its edges to have a sash which can be dragged
|
||||
* to resize the window. The actual content window will be created as a child
|
||||
* of wxSashWindow.
|
||||
*/
|
||||
|
||||
class WXDLLEXPORT wxSashWindow: public wxWindow
|
||||
{
|
||||
DECLARE_DYNAMIC_CLASS(wxSashWindow)
|
||||
|
||||
public:
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////
|
||||
// Public API
|
||||
|
||||
// Default constructor
|
||||
wxSashWindow();
|
||||
|
||||
// Normal constructor
|
||||
wxSashWindow(wxWindow *parent, wxWindowID id = -1, const wxPoint& pos = wxDefaultPosition,
|
||||
const wxSize& size = wxDefaultSize, long style = wxSW_3D|wxCLIP_CHILDREN, const wxString& name = "sashWindow");
|
||||
~wxSashWindow();
|
||||
|
||||
// Set whether there's a sash in this position
|
||||
void SetSashVisible(wxSashEdgePosition edge, bool sash);
|
||||
|
||||
// Get whether there's a sash in this position
|
||||
inline bool GetSashVisible(wxSashEdgePosition edge) const { return m_sashes[edge].m_show; }
|
||||
|
||||
// Set whether there's a border in this position
|
||||
inline void SetSashBorder(wxSashEdgePosition edge, bool border) { m_sashes[edge].m_border = border; }
|
||||
|
||||
// Get whether there's a border in this position
|
||||
inline bool HasBorder(wxSashEdgePosition edge) const { return m_sashes[edge].m_border; }
|
||||
|
||||
// Get border size
|
||||
inline int GetEdgeMargin(wxSashEdgePosition edge) const { return m_sashes[edge].m_margin; }
|
||||
|
||||
// Sets the default sash border size
|
||||
inline void SetDefaultBorderSize(int width) { m_borderSize = width; }
|
||||
|
||||
// Gets the default sash border size
|
||||
inline int GetDefaultBorderSize() const { return m_borderSize; }
|
||||
|
||||
// Sets the addition border size between child and sash window
|
||||
inline void SetExtraBorderSize(int width) { m_extraBorderSize = width; }
|
||||
|
||||
// Gets the addition border size between child and sash window
|
||||
inline int GetExtraBorderSize() const { return m_extraBorderSize; }
|
||||
|
||||
virtual void SetMinimumSizeX(int min) { m_minimumPaneSizeX = min; }
|
||||
virtual void SetMinimumSizeY(int min) { m_minimumPaneSizeY = min; }
|
||||
virtual int GetMinimumSizeX() const { return m_minimumPaneSizeX; }
|
||||
virtual int GetMinimumSizeY() const { return m_minimumPaneSizeY; }
|
||||
|
||||
virtual void SetMaximumSizeX(int max) { m_maximumPaneSizeX = max; }
|
||||
virtual void SetMaximumSizeY(int max) { m_maximumPaneSizeY = max; }
|
||||
virtual int GetMaximumSizeX() const { return m_maximumPaneSizeX; }
|
||||
virtual int GetMaximumSizeY() const { return m_maximumPaneSizeY; }
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////
|
||||
// Implementation
|
||||
|
||||
// Paints the border and sash
|
||||
void OnPaint(wxPaintEvent& event);
|
||||
|
||||
// Handles mouse events
|
||||
void OnMouseEvent(wxMouseEvent& ev);
|
||||
|
||||
// Adjusts the panes
|
||||
void OnSize(wxSizeEvent& event);
|
||||
|
||||
// Draws borders
|
||||
void DrawBorders(wxDC& dc);
|
||||
|
||||
// Draws the sashes
|
||||
void DrawSash(wxSashEdgePosition edge, wxDC& dc);
|
||||
|
||||
// Draws the sashes
|
||||
void DrawSashes(wxDC& dc);
|
||||
|
||||
// Draws the sash tracker (for whilst moving the sash)
|
||||
void DrawSashTracker(wxSashEdgePosition edge, int x, int y);
|
||||
|
||||
// Tests for x, y over sash
|
||||
wxSashEdgePosition SashHitTest(int x, int y, int tolerance = 2);
|
||||
|
||||
// Resizes subwindows
|
||||
void SizeWindows();
|
||||
|
||||
// Initialize colours
|
||||
void InitColours();
|
||||
|
||||
protected:
|
||||
wxSashEdge m_sashes[4];
|
||||
int m_dragMode;
|
||||
wxSashEdgePosition m_draggingEdge;
|
||||
int m_oldX;
|
||||
int m_oldY;
|
||||
int m_borderSize;
|
||||
int m_extraBorderSize;
|
||||
int m_firstX;
|
||||
int m_firstY;
|
||||
int m_minimumPaneSizeX;
|
||||
int m_minimumPaneSizeY;
|
||||
int m_maximumPaneSizeX;
|
||||
int m_maximumPaneSizeY;
|
||||
wxCursor* m_sashCursorWE;
|
||||
wxCursor* m_sashCursorNS;
|
||||
wxColour m_lightShadowColour;
|
||||
wxColour m_mediumShadowColour;
|
||||
wxColour m_darkShadowColour;
|
||||
wxColour m_hilightColour;
|
||||
wxColour m_faceColour;
|
||||
|
||||
DECLARE_EVENT_TABLE()
|
||||
};
|
||||
|
||||
#define wxEVT_SASH_DRAGGED (wxEVT_FIRST + 1200)
|
||||
|
||||
enum wxSashDragStatus
|
||||
{
|
||||
wxSASH_STATUS_OK,
|
||||
wxSASH_STATUS_OUT_OF_RANGE
|
||||
};
|
||||
|
||||
class WXDLLEXPORT wxSashEvent: public wxCommandEvent
|
||||
{
|
||||
DECLARE_DYNAMIC_CLASS(wxSashEvent)
|
||||
|
||||
public:
|
||||
inline wxSashEvent(int id = 0, wxSashEdgePosition edge = wxSASH_NONE) {
|
||||
m_eventType = (wxEventType) wxEVT_SASH_DRAGGED; m_id = id; m_edge = edge; }
|
||||
|
||||
inline void SetEdge(wxSashEdgePosition edge) { m_edge = edge; }
|
||||
inline wxSashEdgePosition GetEdge() const { return m_edge; }
|
||||
|
||||
//// The rectangle formed by the drag operation
|
||||
inline void SetDragRect(const wxRect& rect) { m_dragRect = rect; }
|
||||
inline wxRect GetDragRect() const { return m_dragRect; }
|
||||
|
||||
//// Whether the drag caused the rectangle to be reversed (e.g.
|
||||
//// dragging the top below the bottom)
|
||||
inline void SetDragStatus(wxSashDragStatus status) { m_dragStatus = status; }
|
||||
inline wxSashDragStatus GetDragStatus() const { return m_dragStatus; }
|
||||
private:
|
||||
wxSashEdgePosition m_edge;
|
||||
wxRect m_dragRect;
|
||||
wxSashDragStatus m_dragStatus;
|
||||
};
|
||||
|
||||
typedef void (wxEvtHandler::*wxSashEventFunction)(wxSashEvent&);
|
||||
|
||||
#define EVT_SASH_DRAGGED(id, fn) { wxEVT_SASH_DRAGGED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxSashEventFunction) & fn, NULL },
|
||||
#define EVT_SASH_DRAGGED_RANGE(id1, id2, fn) { wxEVT_SASH_DRAGGED, id1, id2, (wxObjectEventFunction) (wxEventFunction) (wxSashEventFunction) & fn, NULL },
|
||||
|
||||
#endif
|
||||
// _WX_SASHWIN_H_G_
|
@@ -6,7 +6,7 @@
|
||||
// Created: 01/02/97
|
||||
// RCS-ID: $Id$
|
||||
// Copyright: (c) Julian Smart and Markus Holzem
|
||||
// Licence: wxWindows license
|
||||
// Licence: wxWindows license
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef __SPLITTERH_G__
|
||||
@@ -46,32 +46,33 @@
|
||||
|
||||
class WXDLLEXPORT wxSplitterWindow: public wxWindow
|
||||
{
|
||||
DECLARE_DYNAMIC_CLASS(wxSplitterWindow)
|
||||
|
||||
public:
|
||||
public:
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////
|
||||
// Public API
|
||||
|
||||
// Default constructor
|
||||
wxSplitterWindow(void);
|
||||
wxSplitterWindow();
|
||||
|
||||
// Normal constructor
|
||||
wxSplitterWindow(wxWindow *parent, wxWindowID id = -1, const wxPoint& pos = wxDefaultPosition,
|
||||
const wxSize& size = wxDefaultSize, long style = wxSP_3D|wxCLIP_CHILDREN, const wxString& name = "splitter");
|
||||
~wxSplitterWindow(void);
|
||||
wxSplitterWindow(wxWindow *parent, wxWindowID id = -1,
|
||||
const wxPoint& pos = wxDefaultPosition,
|
||||
const wxSize& size = wxDefaultSize,
|
||||
long style = wxSP_3D|wxCLIP_CHILDREN,
|
||||
const wxString& name = "splitter");
|
||||
~wxSplitterWindow();
|
||||
|
||||
// Gets the only or left/top pane
|
||||
inline wxWindow *GetWindow1(void) { return m_windowOne; }
|
||||
wxWindow *GetWindow1() const { return m_windowOne; }
|
||||
|
||||
// Gets the right/bottom pane
|
||||
inline wxWindow *GetWindow2(void) { return m_windowTwo; }
|
||||
wxWindow *GetWindow2() const { return m_windowTwo; }
|
||||
|
||||
// Sets the split mode
|
||||
inline void SetSplitMode(int mode) { m_splitMode = mode; }
|
||||
void SetSplitMode(int mode) { m_splitMode = mode; }
|
||||
|
||||
// Gets the split mode
|
||||
inline int GetSplitMode(void) const { return m_splitMode; };
|
||||
int GetSplitMode() const { return m_splitMode; };
|
||||
|
||||
// Initialize with one window
|
||||
void Initialize(wxWindow *window);
|
||||
@@ -79,38 +80,49 @@ class WXDLLEXPORT wxSplitterWindow: public wxWindow
|
||||
// Associates the given window with window 2, drawing the appropriate sash
|
||||
// and changing the split mode.
|
||||
// Does nothing and returns FALSE if the window is already split.
|
||||
// A sashPosition of -1 means choose a default sash position.
|
||||
bool SplitVertically(wxWindow *window1, wxWindow *window2, int sashPosition = -1);
|
||||
bool SplitHorizontally(wxWindow *window1, wxWindow *window2, int sashPosition = -1);
|
||||
// A sashPosition of 0 means choose a default sash position,
|
||||
// negative sashPosition specifies the size of right/lower pane as it's
|
||||
// absolute value rather than the size of left/upper pane.
|
||||
bool SplitVertically(wxWindow *window1,
|
||||
wxWindow *window2,
|
||||
int sashPosition = 0);
|
||||
bool SplitHorizontally(wxWindow *window1,
|
||||
wxWindow *window2,
|
||||
int sashPosition = 0);
|
||||
|
||||
// Removes the specified (or second) window from the view
|
||||
// Doesn't actually delete the window.
|
||||
bool Unsplit(wxWindow *toRemove = (wxWindow *) NULL);
|
||||
|
||||
// Is the window split?
|
||||
inline bool IsSplit(void) const { return (m_windowTwo != NULL); }
|
||||
bool IsSplit() const { return (m_windowTwo != NULL); }
|
||||
|
||||
// Sets the sash size
|
||||
inline void SetSashSize(int width) { m_sashSize = width; }
|
||||
void SetSashSize(int width) { m_sashSize = width; }
|
||||
|
||||
// Sets the border size
|
||||
inline void SetBorderSize(int width) { m_borderSize = width; }
|
||||
void SetBorderSize(int width) { m_borderSize = width; }
|
||||
|
||||
// Gets the sash size
|
||||
inline int GetSashSize(void) const { return m_sashSize; }
|
||||
int GetSashSize() const { return m_sashSize; }
|
||||
|
||||
// Gets the border size
|
||||
inline int GetBorderSize(void) const { return m_borderSize; }
|
||||
int GetBorderSize() const { return m_borderSize; }
|
||||
|
||||
// Set the sash position
|
||||
void SetSashPosition(int position, bool redaw = TRUE);
|
||||
|
||||
// Gets the sash position
|
||||
inline int GetSashPosition(void) const { return m_sashPosition; }
|
||||
int GetSashPosition() const { return m_sashPosition; }
|
||||
|
||||
// If this is zero, we can remove panes by dragging the sash.
|
||||
inline void SetMinimumPaneSize(int min) { m_minimumPaneSize = min; }
|
||||
inline int GetMinimumPaneSize(void) const { return m_minimumPaneSize; }
|
||||
void SetMinimumPaneSize(int min) { m_minimumPaneSize = min; }
|
||||
int GetMinimumPaneSize() const { return m_minimumPaneSize; }
|
||||
|
||||
// Called when the sash position is about to be changed, return
|
||||
// FALSE from here to prevent the change from taking place.
|
||||
// newSashPosition here is always positive or zero.
|
||||
virtual bool OnSashPositionChange(int newSashPosition);
|
||||
|
||||
// If the sash is moved to an extreme position, a subwindow
|
||||
// is removed from the splitter window, and the app is
|
||||
@@ -147,12 +159,12 @@ class WXDLLEXPORT wxSplitterWindow: public wxWindow
|
||||
bool SashHitTest(int x, int y, int tolerance = 2);
|
||||
|
||||
// Resizes subwindows
|
||||
void SizeWindows(void);
|
||||
void SizeWindows();
|
||||
|
||||
// Initialize colours
|
||||
void InitColours(void);
|
||||
void InitColours();
|
||||
|
||||
protected:
|
||||
protected:
|
||||
int m_splitMode;
|
||||
wxWindow* m_windowOne;
|
||||
wxWindow* m_windowTwo;
|
||||
@@ -174,7 +186,10 @@ class WXDLLEXPORT wxSplitterWindow: public wxWindow
|
||||
wxPen* m_hilightPen;
|
||||
wxBrush* m_faceBrush;
|
||||
wxPen* m_facePen;
|
||||
DECLARE_EVENT_TABLE()
|
||||
|
||||
private:
|
||||
DECLARE_DYNAMIC_CLASS(wxSplitterWindow)
|
||||
DECLARE_EVENT_TABLE()
|
||||
};
|
||||
|
||||
#endif
|
||||
#endif // __SPLITTERH_G__
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user