Compare commits
544 Commits
wxWINDOWS_
...
wxPy-2-1-4
Author | SHA1 | Date | |
---|---|---|---|
|
c5691153e4 | ||
|
064f8bf6f8 | ||
|
74697a5713 | ||
|
e87d60c93b | ||
|
a181ac202f | ||
|
e685e57bbd | ||
|
13971833d8 | ||
|
8f17924e73 | ||
|
f0261a7246 | ||
|
91233253ec | ||
|
f85afd4e46 | ||
|
10434f3c24 | ||
|
e442cc0d9d | ||
|
704d25e2a3 | ||
|
f0a56ab0c3 | ||
|
f7a11f8c8e | ||
|
fe8aa971c4 | ||
|
a20cd16ca0 | ||
|
aee3892569 | ||
|
d6d2b6ae8f | ||
|
27476f7368 | ||
|
1bd1d102fd | ||
|
73974df1f9 | ||
|
e90c1d2a19 | ||
|
9841339c74 | ||
|
1d61ebaca1 | ||
|
5e0201eaa1 | ||
|
c5342938e2 | ||
|
5b95b795cc | ||
|
f19d58d551 | ||
|
302aa842e9 | ||
|
4658cb18f1 | ||
|
d443da9d54 | ||
|
9b94d7f91e | ||
|
ef3ab00998 | ||
|
a61ddc4715 | ||
|
d676ebcf25 | ||
|
d57bf68500 | ||
|
fa3e4baf13 | ||
|
9b7e522ae9 | ||
|
a439ecef10 | ||
|
f35c265988 | ||
|
b714136483 | ||
|
f036b31cde | ||
|
2131a664df | ||
|
275abf24e1 | ||
|
c756f74260 | ||
|
24df4c19d9 | ||
|
a0b4c98b8a | ||
|
1949cd9c5c | ||
|
4cd056a7c1 | ||
|
5fd11f0971 | ||
|
1c8515f9ab | ||
|
6782163029 | ||
|
69941f0586 | ||
|
47f631042b | ||
|
ad1fa80802 | ||
|
5c15428b75 | ||
|
25a37c8cb1 | ||
|
df9cbfc2bf | ||
|
e8b04eb349 | ||
|
f1415824cc | ||
|
ce44c50e9b | ||
|
def6fb9bd8 | ||
|
83b1f35395 | ||
|
7cc391bd39 | ||
|
09884325fc | ||
|
7a903311aa | ||
|
0661ec3993 | ||
|
ddc8c2e3ab | ||
|
e1811a014b | ||
|
93ccaed869 | ||
|
d391a34510 | ||
|
e1393d82b3 | ||
|
5427610e6b | ||
|
1ccd74daf9 | ||
|
b9b3ccd9ea | ||
|
f85d901fcb | ||
|
483249fc1a | ||
|
75d684d9f7 | ||
|
5bb0807e96 | ||
|
96db102a93 | ||
|
8dc9904630 | ||
|
37f6a9770c | ||
|
60edeacfb7 | ||
|
e918362128 | ||
|
2ebcd5f5fd | ||
|
5e014a0c44 | ||
|
a9221a9508 | ||
|
e0f83017f5 | ||
|
36e2955a64 | ||
|
76e1c2debf | ||
|
2f90df854e | ||
|
2348eaee20 | ||
|
74b31181b3 | ||
|
4f3ac40926 | ||
|
f0599ea919 | ||
|
0c5d3e1ccd | ||
|
7a3ac80489 | ||
|
ab20a9a95a | ||
|
a3a7f8791c | ||
|
fdb7dadb6e | ||
|
4a0253b82b | ||
|
a77aa9d600 | ||
|
1b9315eb77 | ||
|
51c0a521a9 | ||
|
866592d872 | ||
|
172d3acb55 | ||
|
556921dc4e | ||
|
ba7ce6a0b7 | ||
|
23e4b7d824 | ||
|
0ba1a6f33c | ||
|
17023320be | ||
|
4486e1be1f | ||
|
269e82009d | ||
|
d57eb7b9b3 | ||
|
b5a4a47df5 | ||
|
6e58e01afa | ||
|
86de7616de | ||
|
22aed133d8 | ||
|
dd85fc6b89 | ||
|
77cff60663 | ||
|
9c3d0b59c4 | ||
|
a14e57f9f7 | ||
|
45fcbf3b7a | ||
|
0c0d686fe5 | ||
|
76f78a96ce | ||
|
9cce9de16f | ||
|
10534c0bb1 | ||
|
26197023a7 | ||
|
b2bc50e4ca | ||
|
9dea50fc65 | ||
|
90a53a3aed | ||
|
572d746108 | ||
|
a4c970041c | ||
|
ae8f576913 | ||
|
964688d8ec | ||
|
60df2e7d97 | ||
|
6e31e94063 | ||
|
45c94d784d | ||
|
d2682f231a | ||
|
07d4b94c3b | ||
|
ec6e0a192c | ||
|
014b0d064e | ||
|
1fa609b166 | ||
|
0b862e2069 | ||
|
c8c0e54c70 | ||
|
284b4c8866 | ||
|
7d5af6fa6b | ||
|
077968ca5e | ||
|
5aeeab1454 | ||
|
086c94af90 | ||
|
5d47c8a0d2 | ||
|
186005466d | ||
|
eb254be6df | ||
|
a419c3b116 | ||
|
0616b8382d | ||
|
2d0294308d | ||
|
0190e1faf8 | ||
|
e166644c53 | ||
|
2819545569 | ||
|
77cd51c3de | ||
|
af2fd9613a | ||
|
236ef8a966 | ||
|
a3daed0276 | ||
|
9f6af110ff | ||
|
0b26605d52 | ||
|
7183e38bec | ||
|
1e2c86ca5c | ||
|
1e8abce5e8 | ||
|
9fea1a5d62 | ||
|
a6f989f3db | ||
|
7fb233050c | ||
|
93840b31b9 | ||
|
455fadaa6a | ||
|
503f414edd | ||
|
2e4f15693a | ||
|
0ce742cf09 | ||
|
7c235f0914 | ||
|
17aa2bec08 | ||
|
68317b6d3f | ||
|
7c395bf3a1 | ||
|
c21b68f7dd | ||
|
3ef01ce5e3 | ||
|
4c2d8a30f6 | ||
|
2d996ed1c4 | ||
|
6627a4b049 | ||
|
0045dee3f4 | ||
|
d04d2fb520 | ||
|
eaac466a40 | ||
|
a98404cd24 | ||
|
91f491639e | ||
|
761a9d2b1f | ||
|
a65c6e1446 | ||
|
0f66a9f39d | ||
|
5b626e7f84 | ||
|
ec3e670f9f | ||
|
d426c97e9a | ||
|
389c55270a | ||
|
18ba9da6b9 | ||
|
d098a3572c | ||
|
c23bbc11ea | ||
|
2e39ec8448 | ||
|
7cb86a4c28 | ||
|
5454a9276b | ||
|
6b5286d112 | ||
|
0940bcf7f5 | ||
|
a19fb96bd0 | ||
|
28468136d0 | ||
|
46c6b9c0ec | ||
|
b31ba28885 | ||
|
c596875e23 | ||
|
ca8a9e603a | ||
|
c399c2de41 | ||
|
ea9a4296a2 | ||
|
7682a175b6 | ||
|
066f302c6c | ||
|
2c738dd87a | ||
|
ebb206a33d | ||
|
1cf27c6349 | ||
|
bfa2e032ef | ||
|
b661e6759e | ||
|
2bbf461836 | ||
|
f42b1601d6 | ||
|
e6a5dc94a4 | ||
|
fcd4694c3e | ||
|
a0250ba3e5 | ||
|
a097c93d4f | ||
|
93c95e18f4 | ||
|
90bb2919de | ||
|
8ec2b48446 | ||
|
a0378c28b8 | ||
|
4c28d606dd | ||
|
2f7c2af547 | ||
|
83802b0bd9 | ||
|
fade627a81 | ||
|
e9e3e3abaf | ||
|
56d8adc0c0 | ||
|
ef25e6386d | ||
|
483c6690e9 | ||
|
1235650ffb | ||
|
b730516c98 | ||
|
e91a9dfcc3 | ||
|
1afc06c2d8 | ||
|
922dc97681 | ||
|
3ab72185cb | ||
|
d559219f40 | ||
|
228b910aea | ||
|
9ab6ee851e | ||
|
2b98cb1f84 | ||
|
83b1bfaac9 | ||
|
83413d6d2d | ||
|
35809fe3d7 | ||
|
d80d1aba10 | ||
|
7be110e30d | ||
|
b9b32d5c4f | ||
|
6f349458f6 | ||
|
feeb816597 | ||
|
cb421e53cb | ||
|
a16d3c04d7 | ||
|
11235b74ce | ||
|
33bbfe4b23 | ||
|
0b1c443719 | ||
|
aa3981f2c6 | ||
|
2f85113366 | ||
|
b70ababc14 | ||
|
2618484fed | ||
|
881eba2c0d | ||
|
a9775f1f58 | ||
|
791b24c405 | ||
|
9bbd7ba3ea | ||
|
904ec517d3 | ||
|
2ef1f50a94 | ||
|
1a9469d7cb | ||
|
533c7161fc | ||
|
63dcfc151b | ||
|
fbb90f7f2b | ||
|
2f435842c5 | ||
|
24126cdde8 | ||
|
543f08a676 | ||
|
d87a962086 | ||
|
7e9a386e10 | ||
|
1044a386f0 | ||
|
ed75793627 | ||
|
aa6d970619 | ||
|
de3131e784 | ||
|
da4a658da4 | ||
|
aa8fb7a016 | ||
|
11d737b409 | ||
|
e951f847fa | ||
|
b387781ceb | ||
|
d84b1219a5 | ||
|
7a4b8f2770 | ||
|
765e386bfa | ||
|
da4b7ffc78 | ||
|
107e4716f2 | ||
|
aa855f21a8 | ||
|
2f78bd2c04 | ||
|
ac1edf3546 | ||
|
efc5f22463 | ||
|
27d6502f98 | ||
|
fd4ff3bf16 | ||
|
8a35299aa9 | ||
|
bc83ea24b4 | ||
|
6245e5b6e8 | ||
|
5ca24bf4e0 | ||
|
6a94433573 | ||
|
18027d49b9 | ||
|
babd4308f2 | ||
|
5360828db9 | ||
|
311227c3fe | ||
|
70bdacfc8e | ||
|
72aa4a9873 | ||
|
499f945e99 | ||
|
aeb50f8660 | ||
|
197dd9af26 | ||
|
c15d098cdf | ||
|
f0d922cf78 | ||
|
ba7c80a26c | ||
|
7aaacad553 | ||
|
771b931d92 | ||
|
7a50d5403c | ||
|
307959d652 | ||
|
ccc0d1f2b6 | ||
|
6319afe332 | ||
|
6cc24024d6 | ||
|
91ffcaf2f6 | ||
|
fb8b9da2ba | ||
|
b83290c3eb | ||
|
a2b8bd5537 | ||
|
2e36534843 | ||
|
4df78dc36e | ||
|
e08e239b43 | ||
|
8bb8ab39dd | ||
|
dfdc56a3b0 | ||
|
f3391ea5e0 | ||
|
ef3a5c9e09 | ||
|
75ceb69db0 | ||
|
6a2a235ba9 | ||
|
d39356d524 | ||
|
aa95f52ee7 | ||
|
0662cd3286 | ||
|
5b4f8dd5c0 | ||
|
d559158225 | ||
|
79bc2382e3 | ||
|
2ba3d4f0dd | ||
|
48c12cb129 | ||
|
cbd4be25b2 | ||
|
2080bf4f44 | ||
|
6523d1198f | ||
|
b9943f8e8f | ||
|
8a68d8b6c1 | ||
|
56c667557e | ||
|
cfcab3d203 | ||
|
d127d9360f | ||
|
1bd3e1efef | ||
|
9baf15cea6 | ||
|
3372145d9d | ||
|
a6f3598d2b | ||
|
b86de524c7 | ||
|
b164fb385a | ||
|
0ac77ef5c8 | ||
|
503aa33d55 | ||
|
641d87d868 | ||
|
45e726de6b | ||
|
6970c7b916 | ||
|
95814e4902 | ||
|
c60fc26d55 | ||
|
78fa90773a | ||
|
41435ed2e9 | ||
|
f1b34d5aa3 | ||
|
629e313037 | ||
|
77031c5a16 | ||
|
bfdafe6372 | ||
|
a35c976180 | ||
|
3c87527e89 | ||
|
bd2fdefea2 | ||
|
6dfaa4e5d9 | ||
|
8636aed896 | ||
|
799a341cc3 | ||
|
271cb474f8 | ||
|
5c3a94a62a | ||
|
233e355cdd | ||
|
f32bba383f | ||
|
0a98aa1a4d | ||
|
09eea162f7 | ||
|
2e76d51926 | ||
|
2996bcde9c | ||
|
d1bc9efeff | ||
|
2723cfeba2 | ||
|
f786a3b23d | ||
|
d50c81d3ad | ||
|
cc17753ff6 | ||
|
5148fc8e35 | ||
|
a8e3377c03 | ||
|
2f0062dfe4 | ||
|
325274bbf5 | ||
|
a353a0be68 | ||
|
3e0de8a570 | ||
|
a29cd6c0b0 | ||
|
a2241297df | ||
|
6de7caffec | ||
|
3f3cec484d | ||
|
1db46618f7 | ||
|
72ed7aae1d | ||
|
742af0714e | ||
|
0d63916894 | ||
|
80d895cd3f | ||
|
916d0b6165 | ||
|
65045edde4 | ||
|
e2acb9ae1c | ||
|
ac2def68ed | ||
|
4130b487dc | ||
|
ed58dbeab6 | ||
|
5586805bfa | ||
|
a2c75a028d | ||
|
585ae8cbc0 | ||
|
d9bd149456 | ||
|
b2a9d5b418 | ||
|
bd8aa7e059 | ||
|
9c8849722a | ||
|
03443829ac | ||
|
7750247f60 | ||
|
93dfff5ae6 | ||
|
f3b8ef890c | ||
|
2d0918205a | ||
|
e8ac7bf221 | ||
|
0828c0875e | ||
|
cae5359f18 | ||
|
772829164b | ||
|
b87654f3fd | ||
|
a8d9809fc0 | ||
|
bcc46c7559 | ||
|
3a3eed31f0 | ||
|
7b2471a060 | ||
|
895fc9cb8b | ||
|
e6daf79489 | ||
|
9ce29a28cd | ||
|
0b8558681e | ||
|
1d99702e4b | ||
|
661dc384df | ||
|
464122b639 | ||
|
21d72d1755 | ||
|
eb4642a989 | ||
|
def89c21b6 | ||
|
e841d48627 | ||
|
6c5e63761c | ||
|
8b17ba727c | ||
|
4540b0b60f | ||
|
7ac080a1c7 | ||
|
469eb89edc | ||
|
deb2fec01e | ||
|
40d4abbc70 | ||
|
a24657845b | ||
|
42b4e99e9a | ||
|
0b129e1a85 | ||
|
fd9811b137 | ||
|
c62d808272 | ||
|
5b96c684f3 | ||
|
66cd017c29 | ||
|
515da557f1 | ||
|
dc6c62a931 | ||
|
354616b046 | ||
|
622e48cbd2 | ||
|
a3736ef475 | ||
|
4c151c737e | ||
|
43427087aa | ||
|
526ddb13e2 | ||
|
f1f5976f1f | ||
|
b1683d3899 | ||
|
549c6f67f9 | ||
|
8fe0578285 | ||
|
8a5137d74a | ||
|
ac15e21dc7 | ||
|
a8efa9e391 | ||
|
d54ed754ae | ||
|
66635d688c | ||
|
d4feedcff1 | ||
|
d1c7850d7e | ||
|
27ea1d8aae | ||
|
4cb122de97 | ||
|
a4aad9613a | ||
|
e4b4d60e56 | ||
|
75ef19df59 | ||
|
e2a1679e71 | ||
|
c7527e3f21 | ||
|
ad9edf45f1 | ||
|
517a619dc3 | ||
|
eebe401675 | ||
|
265b457741 | ||
|
c32cfa3641 | ||
|
583a65787f | ||
|
a47ad26244 | ||
|
af23d90aa3 | ||
|
2aa887306b | ||
|
bf3e0fbd1f | ||
|
364c7f3c68 | ||
|
d2befda32f | ||
|
1a5e297c6b | ||
|
48b1d0ff4f | ||
|
b80c8d89d6 | ||
|
4107d4fdd1 | ||
|
144247aca9 | ||
|
4b123bb9cc | ||
|
05394a18d4 | ||
|
bed9b80689 | ||
|
c0854a089c | ||
|
92afa2b150 | ||
|
9635832dbd | ||
|
8e877c195b | ||
|
d5b08e7b07 | ||
|
e96ac54e83 | ||
|
5391f772be | ||
|
3a2490c684 | ||
|
0ae2df3052 | ||
|
073478b3d0 | ||
|
50bcd1ae77 | ||
|
a8cb1d29e7 | ||
|
d66d9d5bf0 | ||
|
dc26b37a91 | ||
|
7dee726c7e | ||
|
98781fa30e | ||
|
4b6f0b91ff | ||
|
3417c2cd3d | ||
|
d597fcb781 | ||
|
447a039fa3 | ||
|
956418ab76 | ||
|
77671fd2d6 | ||
|
61d514bb2f | ||
|
c62ac5b6e4 | ||
|
29672bf006 | ||
|
60811dc6cc | ||
|
2c997ad008 | ||
|
5279a24d25 | ||
|
6001e347ba | ||
|
3f1aaa1635 | ||
|
8e124873c5 | ||
|
cc345f7897 | ||
|
71f21f464f | ||
|
aea02638ea | ||
|
988238ab15 | ||
|
8f7173abc4 | ||
|
ea4f5235fc | ||
|
91c93c9927 |
@@ -3,6 +3,7 @@ bin
|
||||
.gdb_history
|
||||
Test
|
||||
config.cache
|
||||
configarg.cache
|
||||
config.status
|
||||
system.list
|
||||
linux.system.cache
|
||||
@@ -17,13 +18,12 @@ linux-gnu.system.cache
|
||||
*.ncb
|
||||
*.pro
|
||||
*.opt
|
||||
*.d
|
||||
Release
|
||||
Debug
|
||||
ReleaseDLL
|
||||
DebugDLL
|
||||
robert
|
||||
Makefile.in
|
||||
setup.h.in
|
||||
stamp-h.in
|
||||
Makefile
|
||||
configure
|
||||
|
132
BuildCVS.txt
132
BuildCVS.txt
@@ -5,15 +5,26 @@
|
||||
I) Windows using plain makefiles
|
||||
----------------------------------------
|
||||
|
||||
a) Using the GNU MinGW32 or GNU CygWin32 compilers
|
||||
a) If using Microsoft Visual C++ 5.0 or 6.0
|
||||
|
||||
Ensure that the command-line compiler and tools (including
|
||||
nmake) are installed and ready to run. Depending on your
|
||||
installation there may be a batch file (named something like
|
||||
VCVARS32.BAT) that needs to be run to set correct environment
|
||||
varaibles and PATH entries.
|
||||
|
||||
Continue with item c) below.
|
||||
|
||||
|
||||
b) If using the GNU MinGW32 or GNU CygWin32 compilers
|
||||
|
||||
You'll need the compiler itself which is available from
|
||||
|
||||
http://www.cygwin.com
|
||||
|
||||
When using MingW32 you'll need GNU make which is part of
|
||||
part of the CygWin32 toolchain and is also available as
|
||||
a stand alone port without the infamous Cygwin.dll from
|
||||
When using MingW32 you'll need GNU make which is a part
|
||||
of the CygWin32 toolchain and is also available as a stand
|
||||
alone port without the infamous Cygwin.dll from
|
||||
|
||||
http://agnes.dida.physik.uni-essen.de/~janjaap/mingw32
|
||||
|
||||
@@ -23,12 +34,17 @@ and its make.exe).
|
||||
|
||||
-> Set your path so that it includes the directory
|
||||
where your compiler and tools reside
|
||||
-> Assume that you installed the wxWindows sources
|
||||
|
||||
|
||||
c) Build instructions
|
||||
|
||||
-> Assumming that you installed the wxWindows sources
|
||||
into c:\wxWin
|
||||
-> Copy c:\wxWin\include\wx\msw\setup0.h
|
||||
-> Copy c:\wxWin\include\wx\msw\setup0.h
|
||||
to c:\wxWin\include\wx\msw\setup.h
|
||||
-> Edit c:\wxWin\include\wx\msw\setup.h so that
|
||||
most features are enabled (i.e. defined to 1) with
|
||||
#define wxUSE_ODBC 0
|
||||
#define wxUSE_SOCKETS 0
|
||||
#define wxUSE_HTML 1
|
||||
#define wxUSE_THREADS 1
|
||||
@@ -37,73 +53,61 @@ and its make.exe).
|
||||
#define wxUSE_BUSYINFO 1
|
||||
#define wxUSE_DYNLIB_CLASS 1
|
||||
#define wxUSE_ZIPSTREAM 1
|
||||
#define wxUSE_JPEGLIB 1
|
||||
#define wxUSE_PNGLIB 1
|
||||
#define wxUSE_LIBJPEG 1
|
||||
#define wxUSE_LIBPNG 1
|
||||
|
||||
and iostreams ares disabled with
|
||||
#define wxUSE_STD_IOSTREAM 0
|
||||
-> type: cd c:\wxWin\src\msw
|
||||
-> type: make -f makefile.g95
|
||||
-> type: make -f makefile.g95 (if using GNU tools)
|
||||
or type: make -f makefile.vc (if using MS VC++)
|
||||
|
||||
II) GTK port on Unix using plain makefiles.
|
||||
------------------------------------------
|
||||
|
||||
II) Unix ports
|
||||
--------------
|
||||
|
||||
Building wxGTK or wxMotif completely without configure
|
||||
won't ever work, but there is now a new makefile system
|
||||
that works without libtool and automake, using only
|
||||
configure to create what is needed.
|
||||
|
||||
In order to create configure, you need to have the
|
||||
GNU autoconf package (version 2.13 or 2.14) installed
|
||||
on your system and type run "autoconf" in the base
|
||||
directory (or run the autogen.sh script in the same
|
||||
directory, which just calls autoconf).
|
||||
|
||||
Set WXWIN environment variable to the base directory such
|
||||
as ~/wxWindows
|
||||
as ~/wxWindows (this is actually not really needed).
|
||||
|
||||
-> type: export WXWIN=~/wxWindows
|
||||
-> edit ~/wxWindows/src/gtk.env as you wish.
|
||||
-> type: cd ~/wxWindows/src/gtk
|
||||
-> type: cp ./setup0.h setup.h
|
||||
-> type: md mybuild
|
||||
-> type: cd mybuild
|
||||
-> type: ../configure --with-motif
|
||||
or type: ../configure --with-gtk
|
||||
-> type: make
|
||||
-> type: su <type root password>
|
||||
-> type: make install
|
||||
-> type: ldconfig
|
||||
-> type: exit
|
||||
|
||||
Call configure with --disable-shared to create a static
|
||||
library. Calling "make uninstall" will remove the installed
|
||||
library and "make dist" will create a distribution (not
|
||||
yet complete).
|
||||
|
||||
III) Windows using configure
|
||||
----------------------------------------
|
||||
|
||||
Take a look at Unix->Windows cross compiling. With minor
|
||||
modifications, this should work in Windows if you've got the cygnus
|
||||
utilities (bash, GNU make, etc) and either mingw32 or cygwin32 installed.
|
||||
utilities (bash, GNU make, etc) and either mingw32 or cygwin32 installed.
|
||||
See http://www.cygnus.com for these programs, or go straight to their
|
||||
ftp server at ftp://sourceware.cygnus.com/pub/cygwin/.
|
||||
ftp server at ftp://sourceware.cygnus.com/pub/cygwin/.
|
||||
|
||||
Of course, you can also build the library using plain makefiles (see
|
||||
Of course, you can also build the library using plain makefiles (see
|
||||
section I).
|
||||
|
||||
IV) Unix using configure
|
||||
----------------------------------------
|
||||
|
||||
a) You have all the newest and greatest GNU tools installed on your system
|
||||
and in the same directory hierachy (e.g. either all tools in /usr or all
|
||||
in /usr/local), these tools are:
|
||||
- GNU libtool 1.2e (1.3 doesn't work here)
|
||||
- GNU autoconf 2.13 (including autoheader 2.13)
|
||||
- GNU automake 1.4 (including aclocal 1.4)
|
||||
and possibly but not forcibly
|
||||
- GNU make 3.76.1
|
||||
- GNU C++ (EGCS)
|
||||
|
||||
-> Go to the base directory
|
||||
-> type: ./autogen.sh
|
||||
|
||||
b) You don't know what autos are and have no driver's licence anyway:
|
||||
|
||||
-> Go to the testconf directory
|
||||
-> type: ./apply
|
||||
|
||||
a+b) Then proceed in either case with:
|
||||
|
||||
-> Choose a directory name that seems fit for building wxWindows, e.g. mybuild
|
||||
-> Go the base directory
|
||||
-> type: mkdir mybuild
|
||||
-> type: cd mybuild
|
||||
-> type: ../configure --with-gtk
|
||||
or type: ../configure --with-motif
|
||||
or type: ../configure --with-wine
|
||||
-> type make
|
||||
-> drink lots of coffee and go shopping
|
||||
|
||||
|
||||
V) MacOS
|
||||
----------------------------------------
|
||||
|
||||
@@ -115,7 +119,7 @@ VII) Unix->Windows cross-compiling using configure
|
||||
|
||||
First you'll need a cross-compiler; linux glibc binaries of mingw32 and
|
||||
cygwin32 (both based on egcs) can be found at
|
||||
ftp://ftp.objsw.com/pub/crossgcc/linux-x-win32. Otherwise you can
|
||||
ftp://ftp.objsw.com/pub/crossgcc/linux-x-win32. Otherwise you can
|
||||
compile one yourself. Check the relevant FAQs.
|
||||
|
||||
[ A Note about cygwin32 and mingw32: the main difference is that cygwin32
|
||||
@@ -134,13 +138,14 @@ sure that your configure setup is basically sound.)
|
||||
|
||||
To cross compile the windows library, do
|
||||
-> cd win32
|
||||
(or whatever you called it)
|
||||
Now run configure. There are two ways to do this
|
||||
-> ../configure --host=i586-mingw32 --build=i586-linux --with-mingw \
|
||||
--enable-dnd=no
|
||||
where --build= should read whatever platform you're building on. Configure
|
||||
will notice that build and host platforms differ, and automatically prepend
|
||||
i586-mingw32- to gcc, ar, ld, etc (make sure they're in the PATH!).
|
||||
The other way to run configure is by specifying the names of the binaries
|
||||
i586-mingw32- to gcc, ar, ld, etc (make sure they're in the PATH!).
|
||||
The other way to run configure is by specifying the names of the binaries
|
||||
yourself:
|
||||
-> CC=i586-mingw32-gcc CXX=i586-mingw32-g++ RANLIB=i586-mingw32-ranlib \
|
||||
DLLTOOL=i586-mingw32-dlltool LD=i586-mingw32-ld NM=i586-mingw32-nm \
|
||||
@@ -149,15 +154,20 @@ yourself:
|
||||
(all assuming you're using mingw32)
|
||||
Drag'n'drop is disabled because mingw32 lacks (AFAIK) OLE headers.
|
||||
|
||||
[ Update: some new mingw32 versions now have a new set of windows header
|
||||
files, which apparently can handle ole. Untested at the moment ]
|
||||
|
||||
Configure will conclude that shared libraries are out of the question and
|
||||
opt for a static one. I haven't looked into DLL creation yet.
|
||||
|
||||
Type
|
||||
-> make -C src
|
||||
Type
|
||||
-> make
|
||||
and wait, wait, wait. Don't leave the room, because the minute you do there
|
||||
will be a compile error :-)
|
||||
|
||||
If this is successful, try building the minimal sample:
|
||||
If this is successful, you end up with a libwx_msw.a in win32/lib. Now try
|
||||
building the minimal sample:
|
||||
|
||||
-> cd samples/minimal
|
||||
-> make
|
||||
-> mv minimal minimal.exe
|
||||
@@ -168,13 +178,13 @@ and run it with wine, for example
|
||||
If all is well, do an install; from win32
|
||||
-> make install
|
||||
|
||||
Native and cross-compiled installations can co-exist peacefully
|
||||
(as long as their widget sets differ), except for wx-config. You might
|
||||
Native and cross-compiled installations can co-exist peacefully
|
||||
(as long as their widget sets differ), except for wx-config. You might
|
||||
want to rename the cross-compiled one to i586-mingw32-wx-config, or something.
|
||||
|
||||
Cross-compiling TODO:
|
||||
---------------------
|
||||
- resource compiling must be done manually for now (should/can we link the
|
||||
- resource compiling must be done manually for now (should/can we link the
|
||||
default wx resources into libwx_msw.a?) [ No we can't; the linker won't
|
||||
link it in... you have to supply an object file ]
|
||||
- dynamic libraries
|
||||
|
13
Makefile.am
13
Makefile.am
@@ -1,13 +0,0 @@
|
||||
|
||||
AUTOMAKE_OPTIONS = 1.3
|
||||
# no-dependencies
|
||||
|
||||
SUBDIRS = include src samples misc # utils user docs
|
||||
|
||||
bin_SCRIPTS = wx-config
|
||||
|
||||
configincludedir = $(libdir)/wx/include/wx/$(TOOLKIT_DIR)
|
||||
|
||||
configinclude_DATA = \
|
||||
setup.h
|
||||
|
2341
Makefile.in
Normal file
2341
Makefile.in
Normal file
File diff suppressed because it is too large
Load Diff
118
Mingw32-gcc295.patches
Normal file
118
Mingw32-gcc295.patches
Normal file
@@ -0,0 +1,118 @@
|
||||
*** \gcc-inc\basetyps.h Sat Jul 31 16:48:36 1999
|
||||
--- basetyps.h Fri Aug 06 11:14:36 1999
|
||||
***************
|
||||
*** 74,91 ****
|
||||
--- 74,97 ----
|
||||
STDMETHOD(Clone)(IENUM_THIS_(I) I**) PURE; \
|
||||
}
|
||||
#define DECLARE_ENUMERATOR(T) DECLARE_ENUMERATOR_(IEnum##T,T)
|
||||
|
||||
+ #ifndef GUID_DEFINED
|
||||
+ #define GUID_DEFINED
|
||||
typedef struct _GUID
|
||||
{
|
||||
unsigned long Data1;
|
||||
unsigned short Data2;
|
||||
unsigned short Data3;
|
||||
unsigned char Data4[8];
|
||||
} GUID;
|
||||
+ #endif /* GUID_DEFINED */
|
||||
typedef GUID *REFGUID;
|
||||
typedef GUID *LPGUID;
|
||||
+ #ifndef UUID_DEFINED
|
||||
+ #define UUID_DEFINED
|
||||
typedef GUID UUID;
|
||||
+ #endif /* UUID_DEFINED */
|
||||
typedef GUID IID;
|
||||
typedef GUID CLSID;
|
||||
typedef CLSID *LPCLSID;
|
||||
typedef IID *LPIID;
|
||||
|
||||
|
||||
*** \gcc-inc\oaidl.h Sat Jul 31 16:48:42 1999
|
||||
--- oaidl.h Fri Aug 06 13:18:48 1999
|
||||
***************
|
||||
*** 39,44 ****
|
||||
--- 39,53 ----
|
||||
#define IMPLTYPEFLAG_FRESTRICTED 4
|
||||
#define IMPLTYPEFLAG_FDEFAULTVTABLE 8
|
||||
|
||||
+ #define DISPID_UNKNOWN ( -1 )
|
||||
+ #define DISPID_VALUE ( 0 )
|
||||
+ #define DISPID_PROPERTYPUT ( -3 )
|
||||
+ #define DISPID_NEWENUM ( -4 )
|
||||
+ #define DISPID_EVALUATE ( -5 )
|
||||
+ #define DISPID_CONSTRUCTOR ( -6 )
|
||||
+ #define DISPID_DESTRUCTOR ( -7 )
|
||||
+ #define DISPID_COLLECT ( -8 )
|
||||
+
|
||||
typedef interface ITypeLib *LPTYPELIB;
|
||||
typedef interface ICreateTypeInfo *LPCREATETYPEINFO;
|
||||
typedef interface ICreateTypeInfo2 *LPCREATETYPEINFO2;
|
||||
***************
|
||||
*** 49,54 ****
|
||||
--- 58,73 ----
|
||||
typedef interface IDispatch *LPDISPATCH;
|
||||
typedef interface ICreateErrorInfo *LPCREATEERRORINFO;
|
||||
|
||||
+ extern "C" const IID IID_ITypeLib;
|
||||
+ extern "C" const IID IID_ICreateTypeInfo;
|
||||
+ extern "C" const IID IID_ICreateTypeInfo2;
|
||||
+ extern "C" const IID IID_ICreateTypeLib;
|
||||
+ extern "C" const IID IID_ICreateTypeLib2;
|
||||
+ extern "C" const IID IID_ITypeInfo;
|
||||
+ extern "C" const IID IID_IErrorInfo;
|
||||
+ extern "C" const IID IID_IDispatch;
|
||||
+ extern "C" const IID IID_ICreateErrorInfo;
|
||||
+
|
||||
typedef enum tagSYSKIND {
|
||||
SYS_WIN16,SYS_WIN32,SYS_MAC
|
||||
} SYSKIND;
|
||||
***************
|
||||
*** 375,382 ****
|
||||
STDMETHOD_(ULONG,Release)(THIS) PURE;
|
||||
STDMETHOD(GetTypeInfoCount)(THIS_ UINT*) PURE;
|
||||
STDMETHOD(GetTypeInfo)(THIS_ UINT,LCID,LPTYPEINFO*) PURE;
|
||||
! STDMETHOD(GetIDsOfNames)(THIS_ REFIID,LPOLESTR*,UINT,LCID,DISPID)
|
||||
PURE;
|
||||
! STDMETHOD(Invoked)(THIS_
|
||||
DISPID,REFIID,LCID,WORD,DISPPARAMS*,VARIANT*,EXCEPINFO*,UINT*) PURE;
|
||||
};
|
||||
|
||||
#ifdef __cplusplus
|
||||
--- 394,401 ----
|
||||
STDMETHOD_(ULONG,Release)(THIS) PURE;
|
||||
STDMETHOD(GetTypeInfoCount)(THIS_ UINT*) PURE;
|
||||
STDMETHOD(GetTypeInfo)(THIS_ UINT,LCID,LPTYPEINFO*) PURE;
|
||||
! STDMETHOD(GetIDsOfNames)(THIS_ REFIID,LPOLESTR*,UINT,LCID,DISPID*)
|
||||
PURE;
|
||||
! STDMETHOD(Invoke)(THIS_
|
||||
DISPID,REFIID,LCID,WORD,DISPPARAMS*,VARIANT*,EXCEPINFO*,UINT*) PURE;
|
||||
};
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
||||
|
||||
*** \gcc-inc\objidl.h Sat Jul 31 16:48:42 1999
|
||||
--- objidl.h Fri Aug 06 11:00:19 1999
|
||||
***************
|
||||
*** 627,633 ****
|
||||
STDMETHOD(QueryGetData)(THIS_ FORMATETC*) PURE;
|
||||
STDMETHOD(GetCanonicalFormatEtc)(THIS_ FORMATETC*,FORMATETC*) PURE;
|
||||
STDMETHOD(SetData)(THIS_ FORMATETC*,STGMEDIUM*,BOOL) PURE;
|
||||
! STDMETHOD(EnumFormatEtc)(THIS_ DWORD,IEnumFORMATETC*) PURE;
|
||||
STDMETHOD(DAdvise)(THIS_ FORMATETC*,DWORD,IAdviseSink*,PDWORD) PURE;
|
||||
STDMETHOD(DUnadvise)(THIS_ DWORD) PURE;
|
||||
STDMETHOD(EnumDAdvise)(THIS_ IEnumSTATDATA**);
|
||||
--- 627,633 ----
|
||||
STDMETHOD(QueryGetData)(THIS_ FORMATETC*) PURE;
|
||||
STDMETHOD(GetCanonicalFormatEtc)(THIS_ FORMATETC*,FORMATETC*) PURE;
|
||||
STDMETHOD(SetData)(THIS_ FORMATETC*,STGMEDIUM*,BOOL) PURE;
|
||||
! STDMETHOD(EnumFormatEtc)(THIS_ DWORD,IEnumFORMATETC**) PURE;
|
||||
STDMETHOD(DAdvise)(THIS_ FORMATETC*,DWORD,IAdviseSink*,PDWORD) PURE;
|
||||
STDMETHOD(DUnadvise)(THIS_ DWORD) PURE;
|
||||
STDMETHOD(EnumDAdvise)(THIS_ IEnumSTATDATA**);
|
||||
|
||||
|
||||
|
||||
|
423
acinclude.m4
423
acinclude.m4
@@ -1,423 +0,0 @@
|
||||
dnl ---------------------------------------------------------------------------
|
||||
dnl
|
||||
dnl Purpose: Cursom macros for autoconf configure script.
|
||||
dnl Author: Vadim Zeitlin
|
||||
dnl Created: 26.05.99
|
||||
dnl Version: $Id$
|
||||
dnl ---------------------------------------------------------------------------
|
||||
|
||||
dnl ===========================================================================
|
||||
dnl GKT+ version test
|
||||
dnl ===========================================================================
|
||||
|
||||
dnl ---------------------------------------------------------------------------
|
||||
dnl AM_PATH_GTK([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
|
||||
dnl Test for GTK, and define GTK_CFLAGS and GTK_LIBS. Uses variables
|
||||
dnl gtk_config_prefix and/or gtk_config_exec_prefix if defined.
|
||||
dnl ---------------------------------------------------------------------------
|
||||
dnl
|
||||
AC_DEFUN(AM_PATH_GTK,
|
||||
[
|
||||
if test x$gtk_config_exec_prefix != x ; then
|
||||
gtk_config_args="$gtk_config_args --exec-prefix=$gtk_config_exec_prefix"
|
||||
if test x${GTK_CONFIG+set} != xset ; then
|
||||
GTK_CONFIG=$gtk_config_exec_prefix/bin/gtk-config
|
||||
fi
|
||||
fi
|
||||
if test x$gtk_config_prefix != x ; then
|
||||
gtk_config_args="$gtk_config_args --prefix=$gtk_config_prefix"
|
||||
if test x${GTK_CONFIG+set} != xset ; then
|
||||
GTK_CONFIG=$gtk_config_prefix/bin/gtk-config
|
||||
fi
|
||||
fi
|
||||
|
||||
AC_PATH_PROG(GTK_CONFIG, gtk-config, no)
|
||||
min_gtk_version=ifelse([$1], ,0.99.7,$1)
|
||||
AC_MSG_CHECKING(for GTK - version >= $min_gtk_version)
|
||||
no_gtk=""
|
||||
if test "$GTK_CONFIG" != "no" ; then
|
||||
GTK_CFLAGS=`$GTK_CONFIG --cflags`
|
||||
GTK_LIBS=`$GTK_CONFIG --libs`
|
||||
ac_save_CFLAGS="$CFLAGS"
|
||||
ac_save_LIBS="$LIBS"
|
||||
CFLAGS="$CFLAGS $GTK_CFLAGS"
|
||||
LIBS="$LIBS $GTK_LIBS"
|
||||
dnl
|
||||
dnl Now check if the installed GTK is sufficiently new. (Also sanity
|
||||
dnl checks the results of gtk-config to some extent)
|
||||
dnl
|
||||
AC_TRY_RUN([
|
||||
#include <gtk/gtk.h>
|
||||
#include <stdio.h>
|
||||
|
||||
int
|
||||
main ()
|
||||
{
|
||||
int major, minor, micro;
|
||||
|
||||
if (sscanf("$min_gtk_version", "%d.%d.%d", &major, &minor, µ) != 3) {
|
||||
printf("%s, bad version string\n", "$min_gtk_version");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
if (gtk_minor_version == 1) return FALSE;
|
||||
|
||||
return !((gtk_major_version > major) ||
|
||||
((gtk_major_version == major) && (gtk_minor_version > minor)) ||
|
||||
((gtk_major_version == major) && (gtk_minor_version == minor) && (gtk_micro_version >= micro)));
|
||||
}
|
||||
],, no_gtk=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
|
||||
CFLAGS="$ac_save_CFLAGS"
|
||||
LIBS="$ac_save_LIBS"
|
||||
else
|
||||
no_gtk=yes
|
||||
fi
|
||||
if test "x$no_gtk" = x ; then
|
||||
AC_MSG_RESULT(yes)
|
||||
ifelse([$2], , :, [$2])
|
||||
else
|
||||
AC_MSG_RESULT(no)
|
||||
GTK_CFLAGS=""
|
||||
GTK_LIBS=""
|
||||
ifelse([$3], , :, [$3])
|
||||
fi
|
||||
AC_SUBST(GTK_CFLAGS)
|
||||
AC_SUBST(GTK_LIBS)
|
||||
])
|
||||
|
||||
dnl ===========================================================================
|
||||
dnl macros to find the a file in the list of include/lib paths
|
||||
dnl ===========================================================================
|
||||
|
||||
dnl ---------------------------------------------------------------------------
|
||||
dnl call WX_PATH_FIND_INCLUDES(search path, header name), sets ac_find_includes
|
||||
dnl to the full name of the file that was found or leaves it empty if not found
|
||||
dnl ---------------------------------------------------------------------------
|
||||
AC_DEFUN(WX_PATH_FIND_INCLUDES,
|
||||
[
|
||||
ac_find_includes=
|
||||
for ac_dir in $1;
|
||||
do
|
||||
if test -f "$ac_dir/$2"; then
|
||||
ac_find_includes=$ac_dir
|
||||
break
|
||||
fi
|
||||
done
|
||||
])
|
||||
|
||||
dnl ---------------------------------------------------------------------------
|
||||
dnl call WX_PATH_FIND_LIBRARIES(search path, header name), sets ac_find_includes
|
||||
dnl to the full name of the file that was found or leaves it empty if not found
|
||||
dnl ---------------------------------------------------------------------------
|
||||
AC_DEFUN(WX_PATH_FIND_LIBRARIES,
|
||||
[
|
||||
ac_find_libraries=
|
||||
for ac_dir in $1;
|
||||
do
|
||||
for ac_extension in a so sl; do
|
||||
if test -f "$ac_dir/lib$2.$ac_extension"; then
|
||||
ac_find_libraries=$ac_dir
|
||||
break 2
|
||||
fi
|
||||
done
|
||||
done
|
||||
])
|
||||
|
||||
dnl ---------------------------------------------------------------------------
|
||||
dnl Path to include, already defined
|
||||
dnl ---------------------------------------------------------------------------
|
||||
AC_DEFUN(WX_INCLUDE_PATH_EXIST,
|
||||
[
|
||||
ac_path_to_include=$1
|
||||
echo "$2" | grep "\-I$1" > /dev/null
|
||||
result=$?
|
||||
if test $result = 0; then
|
||||
ac_path_to_include=""
|
||||
else
|
||||
ac_path_to_include="-I$1"
|
||||
fi
|
||||
])
|
||||
|
||||
dnl ---------------------------------------------------------------------------
|
||||
dnl Path to link, already defined
|
||||
dnl ---------------------------------------------------------------------------
|
||||
AC_DEFUN(WX_LINK_PATH_EXIST,
|
||||
[
|
||||
echo "$2" | grep "\-L$1" > /dev/null
|
||||
result=$?
|
||||
if test $result = 0; then
|
||||
ac_path_to_link=""
|
||||
else
|
||||
ac_path_to_link="-L$1"
|
||||
fi
|
||||
])
|
||||
|
||||
dnl ===========================================================================
|
||||
dnl C++ features test
|
||||
dnl ===========================================================================
|
||||
|
||||
dnl ---------------------------------------------------------------------------
|
||||
dnl WX_CPP_NEW_HEADERS checks whether the compiler has "new" <iostream> header
|
||||
dnl or only the old <iostream.h> one - it may be generally assumed that if
|
||||
dnl <iostream> exists, the other "new" headers (without .h) exist too.
|
||||
dnl
|
||||
dnl call WX_CPP_NEW_HEADERS(actiof-if-true, action-if-false-or-cross-compiling)
|
||||
dnl ---------------------------------------------------------------------------
|
||||
|
||||
AC_DEFUN(WX_CPP_NEW_HEADERS,
|
||||
[
|
||||
if test "$cross_compiling" = "yes"; then
|
||||
ifelse([$2], , :, [$2])
|
||||
else
|
||||
AC_LANG_SAVE
|
||||
AC_LANG_CPLUSPLUS
|
||||
|
||||
AC_CHECK_HEADERS(iostream)
|
||||
|
||||
if test "x$HAVE_IOSTREAM" = x ; then
|
||||
ifelse([$2], , :, [$2])
|
||||
else
|
||||
ifelse([$1], , :, [$1])
|
||||
fi
|
||||
|
||||
AC_LANG_RESTORE
|
||||
fi
|
||||
])
|
||||
|
||||
dnl ---------------------------------------------------------------------------
|
||||
dnl WX_CPP_BOOL checks whether the C++ compiler has a built in bool type
|
||||
dnl
|
||||
dnl call WX_CPP_BOOL - will define HAVE_BOOL if the compiler supports bool
|
||||
dnl ---------------------------------------------------------------------------
|
||||
|
||||
AC_DEFUN(WX_CPP_BOOL,
|
||||
[
|
||||
AC_CACHE_CHECK([if C++ compiler supports bool], wx_cv_cpp_bool,
|
||||
[
|
||||
AC_LANG_SAVE
|
||||
AC_LANG_CPLUSPLUS
|
||||
|
||||
AC_TRY_RUN([
|
||||
int main()
|
||||
{
|
||||
bool b = true;
|
||||
|
||||
return 0;
|
||||
}
|
||||
],
|
||||
[
|
||||
AC_DEFINE(HAVE_BOOL)
|
||||
wx_cv_cpp_bool=yes
|
||||
],
|
||||
wx_cv_cpp_bool=no,
|
||||
wx_cv_cpp_bool=no
|
||||
)
|
||||
|
||||
AC_LANG_RESTORE
|
||||
])
|
||||
|
||||
if test "$wx_cv_cpp_bool" = "yes"; then
|
||||
AC_DEFINE(HAVE_BOOL)
|
||||
fi
|
||||
])
|
||||
|
||||
dnl ---------------------------------------------------------------------------
|
||||
dnl WX_CPP_SIZE_T_IS_NOT_INT checks whether size_t and int are different types,
|
||||
dnl i.e. whether we may overload operator[] on its argument type
|
||||
dnl ---------------------------------------------------------------------------
|
||||
|
||||
AC_DEFUN(WX_CPP_SIZE_T_IS_NOT_INT,
|
||||
[
|
||||
AC_CACHE_CHECK([if size_t and int are different types], wx_cv_cpp_sizet_not_int,
|
||||
[
|
||||
AC_LANG_SAVE
|
||||
AC_LANG_CPLUSPLUS
|
||||
|
||||
AC_TRY_RUN([
|
||||
#include <stdlib.h>
|
||||
|
||||
class S
|
||||
{
|
||||
public:
|
||||
S(char *s) { m_s = s; }
|
||||
|
||||
char operator[](size_t n) const { return m_s[n]; }
|
||||
char operator[](int n) const { return m_s[n]; }
|
||||
|
||||
private:
|
||||
char *m_s;
|
||||
};
|
||||
|
||||
int main()
|
||||
{
|
||||
S s("dummy");
|
||||
size_t n1 = 2;
|
||||
int n2 = 3;
|
||||
|
||||
return s[n1] == s[n2];
|
||||
}
|
||||
],
|
||||
AC_DEFINE(wxUSE_SIZE_T_STRING_OPERATOR) wx_cv_cpp_sizet_not_int=yes,
|
||||
wx_cv_cpp_sizet_not_int=no,
|
||||
wx_cv_cpp_sizet_not_int=no
|
||||
)
|
||||
|
||||
AC_LANG_RESTORE
|
||||
])
|
||||
])
|
||||
|
||||
dnl ---------------------------------------------------------------------------
|
||||
dnl a slightly better AC_C_BIGENDIAN macro which allows cross-compiling
|
||||
dnl ---------------------------------------------------------------------------
|
||||
|
||||
AC_DEFUN(WX_C_BIGENDIAN,
|
||||
[AC_CACHE_CHECK(whether byte ordering is bigendian, ac_cv_c_bigendian,
|
||||
[ac_cv_c_bigendian=unknown
|
||||
# See if sys/param.h defines the BYTE_ORDER macro.
|
||||
AC_TRY_COMPILE([#include <sys/types.h>
|
||||
#include <sys/param.h>], [
|
||||
#if !BYTE_ORDER || !BIG_ENDIAN || !LITTLE_ENDIAN
|
||||
bogus endian macros
|
||||
#endif], [# It does; now see whether it defined to BIG_ENDIAN or not.
|
||||
AC_TRY_COMPILE([#include <sys/types.h>
|
||||
#include <sys/param.h>], [
|
||||
#if BYTE_ORDER != BIG_ENDIAN
|
||||
not big endian
|
||||
#endif], ac_cv_c_bigendian=yes, ac_cv_c_bigendian=no)])
|
||||
if test $ac_cv_c_bigendian = unknown; then
|
||||
AC_TRY_RUN([main () {
|
||||
/* Are we little or big endian? From Harbison&Steele. */
|
||||
union
|
||||
{
|
||||
long l;
|
||||
char c[sizeof (long)];
|
||||
} u;
|
||||
u.l = 1;
|
||||
exit (u.c[sizeof (long) - 1] == 1);
|
||||
}], ac_cv_c_bigendian=no, ac_cv_c_bigendian=yes, ac_cv_c_bigendian=unknown)
|
||||
fi])
|
||||
if test $ac_cv_c_bigendian = unknown; then
|
||||
AC_MSG_WARN([Assuming little-endian target machine - this may be overriden by adding the line "ac_cv_c_bigendian=${ac_cv_c_bigendian='yes'}" to config.cache file])
|
||||
fi
|
||||
if test $ac_cv_c_bigendian = yes; then
|
||||
AC_DEFINE(WORDS_BIGENDIAN)
|
||||
fi
|
||||
])
|
||||
|
||||
dnl ---------------------------------------------------------------------------
|
||||
dnl override AC_ARG_ENABLE/WITH to cache the results in .cache file
|
||||
dnl ---------------------------------------------------------------------------
|
||||
|
||||
AC_DEFUN(WX_ARG_CACHE_INIT,
|
||||
[
|
||||
wx_arg_cache_file="configarg.cache"
|
||||
echo "loading argument cache $wx_arg_cache_file"
|
||||
rm -f ${wx_arg_cache_file}.tmp
|
||||
touch ${wx_arg_cache_file}.tmp
|
||||
touch ${wx_arg_cache_file}
|
||||
])
|
||||
|
||||
AC_DEFUN(WX_ARG_CACHE_FLUSH,
|
||||
[
|
||||
echo "saving argument cache $wx_arg_cache_file"
|
||||
mv ${wx_arg_cache_file}.tmp ${wx_arg_cache_file}
|
||||
])
|
||||
|
||||
dnl this macro checks for a command line argument and caches the result
|
||||
dnl usage: WX_ARG_WITH(option, helpmessage, variable-name)
|
||||
AC_DEFUN(WX_ARG_WITH,
|
||||
[
|
||||
AC_MSG_CHECKING("for --with-$1")
|
||||
no_cache=0
|
||||
AC_ARG_WITH($1, $2,
|
||||
[
|
||||
if test "$withval" = yes; then
|
||||
ac_cv_use_$1='$3=yes'
|
||||
else
|
||||
ac_cv_use_$1='$3=no'
|
||||
fi
|
||||
],
|
||||
[
|
||||
LINE=`grep "$3" ${wx_arg_cache_file}`
|
||||
if test "x$LINE" != x ; then
|
||||
eval "DEFAULT_$LINE"
|
||||
else
|
||||
no_cache=1
|
||||
fi
|
||||
|
||||
ac_cv_use_$1='$3='$DEFAULT_$3
|
||||
])
|
||||
|
||||
eval "$ac_cv_use_$1"
|
||||
if test "$no_cache" != 1; then
|
||||
echo $ac_cv_use_$1 >> ${wx_arg_cache_file}.tmp
|
||||
fi
|
||||
|
||||
if test "$$3" = yes; then
|
||||
AC_MSG_RESULT(yes)
|
||||
else
|
||||
AC_MSG_RESULT(no)
|
||||
fi
|
||||
])
|
||||
|
||||
dnl like WX_ARG_WITH but uses AC_ARG_ENABLE instead of AC_ARG_WITH
|
||||
dnl usage: WX_ARG_ENABLE(option, helpmessage, variable-name)
|
||||
AC_DEFUN(WX_ARG_ENABLE,
|
||||
[
|
||||
AC_MSG_CHECKING("for --enable-$1")
|
||||
no_cache=0
|
||||
AC_ARG_ENABLE($1, $2,
|
||||
[
|
||||
if test "$enableval" = yes; then
|
||||
ac_cv_use_$1='$3=yes'
|
||||
else
|
||||
ac_cv_use_$1='$3=no'
|
||||
fi
|
||||
],
|
||||
[
|
||||
LINE=`grep "$3" ${wx_arg_cache_file}`
|
||||
if test "x$LINE" != x ; then
|
||||
eval "DEFAULT_$LINE"
|
||||
else
|
||||
no_cache=1
|
||||
fi
|
||||
|
||||
ac_cv_use_$1='$3='$DEFAULT_$3
|
||||
])
|
||||
|
||||
eval "$ac_cv_use_$1"
|
||||
if test "$no_cache" != 1; then
|
||||
echo $ac_cv_use_$1 >> ${wx_arg_cache_file}.tmp
|
||||
fi
|
||||
|
||||
if test "$$3" = yes; then
|
||||
AC_MSG_RESULT(yes)
|
||||
else
|
||||
AC_MSG_RESULT(no)
|
||||
fi
|
||||
])
|
||||
|
||||
dnl -
|
||||
dnl - GNU libc extension (added by GL)
|
||||
dnl -
|
||||
|
||||
AC_DEFUN(WX_GNU_EXTENSIONS,
|
||||
[
|
||||
AC_MSG_CHECKING([if you need GNU extensions])
|
||||
AC_CACHE_VAL(wx_cv_gnu_extensions,[
|
||||
AC_TRY_COMPILE([#include <features.h>],[
|
||||
|
||||
#ifndef __GNU_LIBRARY__
|
||||
Compile error wanted
|
||||
#endif
|
||||
|
||||
],
|
||||
[wx_cv_gnu_extensions=yes],
|
||||
[wx_cv_gnu_extensions=no])
|
||||
])
|
||||
|
||||
AC_MSG_RESULT($wx_cv_gnu_extensions)
|
||||
if test "$wx_cv_gnu_extensions" = "yes"; then
|
||||
AC_DEFINE_UNQUOTED(_GNU_SOURCE)
|
||||
fi
|
||||
])
|
@@ -1,5 +1,2 @@
|
||||
#!/bin/sh
|
||||
aclocal -I .
|
||||
autoheader
|
||||
automake --foreign --verbose
|
||||
autoconf
|
||||
|
1203
configure.in
1203
configure.in
File diff suppressed because it is too large
Load Diff
@@ -15,23 +15,13 @@ echo Base dir..
|
||||
|
||||
cd ../..
|
||||
cp wxGTK.spec ~/wxgtk_dist/wxGTK
|
||||
cp Makefile.am ~/wxgtk_dist/wxGTK
|
||||
cp acconfig.h ~/wxgtk_dist/wxGTK
|
||||
cp acinclude.m4 ~/wxgtk_dist/wxGTK
|
||||
cp aclocal.m4 ~/wxgtk_dist/wxGTK
|
||||
cp configure.in ~/wxgtk_dist/wxGTK
|
||||
cp configure ~/wxgtk_dist/wxGTK
|
||||
cp config.sub ~/wxgtk_dist/wxGTK
|
||||
cp config.guess ~/wxgtk_dist/wxGTK
|
||||
cp install-sh ~/wxgtk_dist/wxGTK
|
||||
cp ltconfig ~/wxgtk_dist/wxGTK
|
||||
cp ltmain.sh ~/wxgtk_dist/wxGTK
|
||||
cp missing ~/wxgtk_dist/wxGTK
|
||||
cp mkinstalldirs ~/wxgtk_dist/wxGTK
|
||||
cp wx-config.in ~/wxgtk_dist/wxGTK
|
||||
cp makefile.unx.in ~/wxgtk_dist/wxGTK
|
||||
cp setup.h.in ~/wxgtk_dist/wxGTK
|
||||
cp stamp-h.in ~/wxgtk_dist/wxGTK
|
||||
cp Makefile.in ~/wxgtk_dist/wxGTK
|
||||
|
||||
echo Docs..
|
||||
|
@@ -15,23 +15,12 @@ echo Base dir..
|
||||
|
||||
cd ../..
|
||||
cp wxMotif.spec ~/wxmotif_dist/wxMotif
|
||||
cp Makefile.am ~/wxmotif_dist/wxMotif
|
||||
cp acconfig.h ~/wxmotif_dist/wxMotif
|
||||
cp acinclude.m4 ~/wxmotif_dist/wxMotif
|
||||
cp aclocal.m4 ~/wxmotif_dist/wxMotif
|
||||
cp configure.in ~/wxmotif_dist/wxMotif
|
||||
cp configure ~/wxmotif_dist/wxMotif
|
||||
cp config.sub ~/wxmotif_dist/wxMotif
|
||||
cp config.guess ~/wxmotif_dist/wxMotif
|
||||
cp install-sh ~/wxmotif_dist/wxMotif
|
||||
cp ltconfig ~/wxmotif_dist/wxMotif
|
||||
cp ltmain.sh ~/wxmotif_dist/wxMotif
|
||||
cp missing ~/wxmotif_dist/wxMotif
|
||||
cp mkinstalldirs ~/wxmotif_dist/wxMotif
|
||||
cp wx-config.in ~/wxmotif_dist/wxMotif
|
||||
cp makefile.unx.in ~/wxmotif_dist/wxMotif
|
||||
cp setup.h.in ~/wxmotif_dist/wxMotif
|
||||
cp stamp-h.in ~/wxmotif_dist/wxMotif
|
||||
cp Makefile.in ~/wxmotif_dist/wxMotif
|
||||
|
||||
echo Docs..
|
||||
|
@@ -97,6 +97,8 @@ del Makefile.in \wxmsw_dist\wxMSW\src\Makefile.in
|
||||
|
||||
cd msw
|
||||
md \wxmsw_dist\wxMSW\src\msw
|
||||
md \wxmsw_dist\wxMSW\src\msw\ole
|
||||
copy ole\*.cpp \wxmsw_dist\wxMSW\src\msw\ole
|
||||
copy *.cpp \wxmsw_dist\wxMSW\src\msw
|
||||
copy *.c \wxmsw_dist\wxMSW\src\msw
|
||||
copy *.def \wxmsw_dist\wxMSW\src\msw
|
||||
@@ -532,6 +534,7 @@ cd minifram
|
||||
md \wxmsw_dist\wxMSW\samples\minifram
|
||||
copy Makefile.* \wxmsw_dist\wxMSW\samples\minifram
|
||||
copy *.cpp \wxmsw_dist\wxMSW\samples\minifram
|
||||
copy *.h \wxmsw_dist\wxMSW\samples\minifram
|
||||
copy *.xpm \wxmsw_dist\wxMSW\samples\minifram
|
||||
copy *.ico \wxmsw_dist\wxMSW\samples\minifram
|
||||
copy *.def \wxmsw_dist\wxMSW\samples\minifram
|
||||
|
@@ -6,6 +6,7 @@ autogen.sh
|
||||
config.guess
|
||||
config.sub
|
||||
configure.in
|
||||
setup.h.in
|
||||
install-sh
|
||||
ltconfig
|
||||
ltmain.sh
|
||||
@@ -19,6 +20,12 @@ makefile.unx.in
|
||||
distrib/msw/*.rsp
|
||||
distrib/msw/*.bat
|
||||
distrib/msw/tardist
|
||||
distrib/msw/tmake/*.t
|
||||
distrib/msw/tmake/Makefile
|
||||
distrib/msw/tmake/filelist.txt
|
||||
distrib/msw/tmake/makeall.bat
|
||||
distrib/msw/tmake/makeall.sh
|
||||
distrib/msw/tmake/wxwin.pro
|
||||
distrib/gtk/*
|
||||
|
||||
locale/*.po
|
||||
@@ -36,9 +43,14 @@ docs/bugs.txt
|
||||
docs/*.htm
|
||||
docs/html/*.htm
|
||||
docs/html/*.gif
|
||||
docs/html/*.png
|
||||
|
||||
src/*.inc
|
||||
src/mkdir
|
||||
src/Makefile
|
||||
src/make.env.in
|
||||
src/makeprog.env.in
|
||||
src/makelib.env.in
|
||||
|
||||
src/common/*.cpp
|
||||
src/common/dosyacc.c
|
||||
@@ -46,6 +58,8 @@ src/common/doslex.c
|
||||
src/common/vmsyacc.c
|
||||
src/common/vmslex.c
|
||||
src/common/extended.c
|
||||
src/common/unzip.c
|
||||
src/common/unzip.h
|
||||
src/common/*.l
|
||||
src/common/*.y
|
||||
src/common/*.inc
|
||||
@@ -59,6 +73,7 @@ src/html/*.h
|
||||
src/html/bitmaps/*.xpm
|
||||
|
||||
src/unix/*.cpp
|
||||
src/unix/*.c
|
||||
|
||||
src/png/*.c
|
||||
src/png/*.h
|
||||
@@ -90,7 +105,12 @@ include/wx/protocol/*.h
|
||||
include/wx/wx_setup.vms
|
||||
include/wx/common/*.h
|
||||
include/wx/generic/*.h
|
||||
include/wx/generic/*.xpm
|
||||
include/wx/unix/*.h
|
||||
include/wx/html/*.h
|
||||
include/wx/html/msw/*.bmp
|
||||
include/wx/html/msw/*.ico
|
||||
include/wx/html/msw/*.rc
|
||||
lib/dummy
|
||||
|
||||
bin/*.*
|
||||
@@ -198,6 +218,20 @@ utils/dialoged/test/*.ico
|
||||
utils/dialoged/test/*.prj
|
||||
utils/dialoged/test/*.bmp
|
||||
|
||||
utils/wxMMedia2/makefile*
|
||||
utils/wxMMedia2/README
|
||||
utils/wxMMedia2/lib/*.h
|
||||
utils/wxMMedia2/lib/*.cpp
|
||||
utils/wxMMedia2/lib/*.def
|
||||
utils/wxMMedia2/lib/*.rc
|
||||
utils/wxMMedia2/lib/makefile*
|
||||
utils/wxMMedia2/sample/*.h
|
||||
utils/wxMMedia2/sample/*.cpp
|
||||
utils/wxMMedia2/sample/makefile*
|
||||
utils/wxMMedia2/sample/*.xbm
|
||||
utils/wxMMedia2/sample/*.xpm
|
||||
utils/wxMMedia2/sample/*.txt
|
||||
|
||||
samples/*.txt
|
||||
samples/makefile*
|
||||
|
||||
@@ -870,3 +904,15 @@ samples/text/*.png
|
||||
samples/text/*.ico
|
||||
samples/text/*.txt
|
||||
|
||||
samples/wizard/*.cpp
|
||||
samples/wizard/*.h
|
||||
samples/wizard/makefile*
|
||||
samples/wizard/*.rc
|
||||
samples/wizard/*.def
|
||||
samples/wizard/*.bmp
|
||||
samples/wizard/*.xpm
|
||||
samples/wizard/*.xbm
|
||||
samples/wizard/*.png
|
||||
samples/wizard/*.ico
|
||||
samples/wizard/*.txt
|
||||
|
||||
|
@@ -1,3 +1,4 @@
|
||||
utils/glcanvas/Makefile.in
|
||||
utils/glcanvas/docs/*.*
|
||||
utils/glcanvas/win/*.cpp
|
||||
utils/glcanvas/win/*.h
|
||||
|
@@ -1,3 +1,5 @@
|
||||
configure
|
||||
|
||||
distrib/gtk/copy_src
|
||||
distrib/gtk/README.txt
|
||||
distrib/gtk/Setup
|
||||
@@ -8,16 +10,17 @@ docs/gtk/COPYING.LIB
|
||||
docs/gtk/makewxgtk
|
||||
|
||||
include/wx/gtk/*.h
|
||||
include/wx/gtk/*.xpm
|
||||
include/install-sh
|
||||
include/wx/install-sh
|
||||
|
||||
src/Makefile
|
||||
src/Makefile.in
|
||||
src/gtk.inc
|
||||
src/make.env
|
||||
src/makelib.env
|
||||
src/makeprog.env
|
||||
|
||||
src/gtk/Makefile
|
||||
src/gtk/*.cpp
|
||||
src/gtk/*.c
|
||||
src/gtk/*.inc
|
||||
|
@@ -1,172 +1,75 @@
|
||||
samples/bombs/Makefile.in
|
||||
samples/bombs/Makefile
|
||||
samples/checklst/Makefile.in
|
||||
samples/checklst/Makefile
|
||||
samples/config/Makefile.in
|
||||
samples/config/Makefile
|
||||
samples/controls/Makefile.in
|
||||
samples/controls/Makefile
|
||||
samples/db/Makefile.in
|
||||
samples/db/Makefile
|
||||
samples/dde/Makefile.in
|
||||
samples/dde/Makefile
|
||||
samples/dialogs/Makefile.in
|
||||
samples/dialogs/Makefile
|
||||
samples/dnd/Makefile.in
|
||||
samples/dnd/Makefile
|
||||
samples/docview/Makefile.in
|
||||
samples/docview/Makefile
|
||||
samples/docvwmdi/Makefile.in
|
||||
samples/docvwmdi/Makefile
|
||||
samples/dynamic/Makefile.in
|
||||
samples/dynamic/Makefile
|
||||
samples/forty/Makefile.in
|
||||
samples/forty/Makefile
|
||||
samples/fractal/Makefile.in
|
||||
samples/fractal/Makefile
|
||||
samples/grid/Makefile.in
|
||||
samples/grid/Makefile
|
||||
samples/help/Makefile.in
|
||||
samples/help/Makefile
|
||||
samples/image/Makefile.in
|
||||
samples/image/Makefile
|
||||
samples/internat/Makefile.in
|
||||
samples/internat/Makefile
|
||||
samples/layout/Makefile.in
|
||||
samples/layout/Makefile
|
||||
samples/listctrl/Makefile.in
|
||||
samples/listctrl/Makefile
|
||||
samples/mdi/Makefile.in
|
||||
samples/mdi/Makefile
|
||||
samples/memcheck/Makefile.in
|
||||
samples/memcheck/Makefile
|
||||
samples/minifram/Makefile.in
|
||||
samples/minifram/Makefile
|
||||
samples/minimal/Makefile.in
|
||||
samples/minimal/Makefile
|
||||
samples/notebook/Makefile.in
|
||||
samples/notebook/Makefile
|
||||
samples/png/Makefile.in
|
||||
samples/png/Makefile
|
||||
samples/printing/Makefile.in
|
||||
samples/printing/Makefile
|
||||
samples/proplist/Makefile.in
|
||||
samples/proplist/Makefile
|
||||
samples/resource/Makefile.in
|
||||
samples/resource/Makefile
|
||||
samples/sashtest/Makefile.in
|
||||
samples/sashtest/Makefile
|
||||
samples/splitter/Makefile.in
|
||||
samples/splitter/Makefile
|
||||
samples/tab/Makefile.in
|
||||
samples/tab/Makefile
|
||||
samples/thread/Makefile.in
|
||||
samples/thread/Makefile
|
||||
samples/toolbar/Makefile.in
|
||||
samples/toolbar/Makefile
|
||||
samples/treectrl/Makefile.in
|
||||
samples/treectrl/Makefile
|
||||
samples/typetest/Makefile.in
|
||||
samples/typetest/Makefile
|
||||
samples/validate/Makefile.in
|
||||
samples/validate/Makefile
|
||||
samples/wxpoem/Makefile.in
|
||||
samples/wxpoem/Makefile
|
||||
samples/wxsocket/Makefile.in
|
||||
samples/wxsocket/Makefile
|
||||
samples/scroll/Makefile.in
|
||||
samples/scroll/Makefile
|
||||
samples/caret/Makefile.in
|
||||
samples/caret/Makefile
|
||||
samples/drawing/Makefile.in
|
||||
samples/drawing/Makefile
|
||||
samples/richedit/Makefile.in
|
||||
samples/richedit/Makefile
|
||||
samples/html/Makefile.in
|
||||
samples/html/Makefile
|
||||
src/Makefile.in
|
||||
Makefile.in
|
||||
src/Makefile
|
||||
utils/ogl/samples/ogledit/Makefile.in
|
||||
utils/ogl/samples/ogledit/Makefile
|
||||
utils/ogl/samples/studio/Makefile.in
|
||||
utils/ogl/samples/studio/Makefile
|
||||
utils/ogl/src/Makefile.in
|
||||
utils/ogl/src/Makefile
|
||||
|
||||
Makefile.am
|
||||
include/Makefile.am
|
||||
include/wx/Makefile.am
|
||||
include/wx/generic/Makefile.am
|
||||
include/wx/gtk/Makefile.am
|
||||
include/wx/html/Makefile.am
|
||||
include/wx/motif/Makefile.am
|
||||
locale/Makefile
|
||||
samples/Makefile.in
|
||||
samples/bombs/Makefile.in
|
||||
samples/caret/Makefile.in
|
||||
samples/checklst/Makefile.in
|
||||
samples/config/Makefile.in
|
||||
samples/controls/Makefile.in
|
||||
samples/dialogs/Makefile.in
|
||||
samples/dnd/Makefile.in
|
||||
samples/docview/Makefile.in
|
||||
samples/docvwmdi/Makefile.in
|
||||
samples/drawing/Makefile.in
|
||||
samples/dynamic/Makefile.in
|
||||
samples/genvalid/Makefile.in
|
||||
samples/html/Makefile.in
|
||||
samples/html/about/Makefile.in
|
||||
samples/html/help/Makefile.in
|
||||
samples/html/printing/Makefile.in
|
||||
samples/html/test/Makefile.in
|
||||
samples/html/virtual/Makefile.in
|
||||
samples/html/widget/Makefile.in
|
||||
samples/html/zip/Makefile.in
|
||||
samples/image/Makefile.in
|
||||
samples/layout/Makefile.in
|
||||
samples/listctrl/Makefile.in
|
||||
samples/mdi/Makefile.in
|
||||
samples/minifram/Makefile.in
|
||||
samples/minimal/Makefile.in
|
||||
samples/notebook/Makefile.in
|
||||
samples/printing/Makefile.in
|
||||
samples/proplist/Makefile.in
|
||||
samples/sashtest/Makefile.in
|
||||
samples/scroll/Makefile.in
|
||||
samples/splitter/Makefile.in
|
||||
samples/text/Makefile.in
|
||||
samples/thread/Makefile.in
|
||||
samples/toolbar/Makefile.in
|
||||
samples/treectrl/Makefile.in
|
||||
samples/typetest/Makefile.in
|
||||
samples/validate/Makefile.in
|
||||
samples/wizard/Makefile.in
|
||||
samples/wxpoem/Makefile.in
|
||||
samples/wxsocket/Makefile.in
|
||||
utils/Makefile.in
|
||||
utils/wxMMedia2/Makefile.in
|
||||
utils/wxMMedia2/lib/Makefile.in
|
||||
utils/wxMMedia2/sample/Makefile.in
|
||||
include/wx/msw/Makefile.am
|
||||
include/wx/msw/ctl3d/Makefile.am
|
||||
include/wx/msw/gnuwin32/Makefile.am
|
||||
include/wx/protocol/Makefile.am
|
||||
include/wx/unix/Makefile.am
|
||||
misc/Makefile.am
|
||||
misc/afm/Makefile.am
|
||||
misc/gs_afm/Makefile.am
|
||||
samples/Makefile.am
|
||||
samples/bombs/Makefile.am
|
||||
samples/caret/Makefile.am
|
||||
samples/checklst/Makefile.am
|
||||
samples/config/Makefile.am
|
||||
samples/controls/Makefile.am
|
||||
samples/animatn/Makefile.am
|
||||
samples/db/Makefile.am
|
||||
samples/dialogs/Makefile.am
|
||||
samples/dnd/Makefile.am
|
||||
samples/docview/Makefile.am
|
||||
samples/docvwmdi/Makefile.am
|
||||
samples/drawing/Makefile.am
|
||||
samples/dynamic/Makefile.am
|
||||
samples/forty/Makefile.am
|
||||
samples/fractal/Makefile.am
|
||||
samples/grid/Makefile.am
|
||||
samples/help/Makefile.am
|
||||
samples/html/Makefile.am
|
||||
samples/html/about/Makefile.am
|
||||
samples/html/help/Makefile.am
|
||||
samples/html/printing/Makefile.am
|
||||
samples/html/test/Makefile.am
|
||||
samples/html/virtual/Makefile.am
|
||||
samples/html/widget/Makefile.am
|
||||
samples/html/zip/Makefile.am
|
||||
samples/image/Makefile.am
|
||||
samples/internat/Makefile.am
|
||||
samples/joytest/Makefile.am
|
||||
samples/layout/Makefile.am
|
||||
samples/listctrl/Makefile.am
|
||||
samples/mdi/Makefile.am
|
||||
samples/memcheck/Makefile.am
|
||||
samples/mfc/Makefile.am
|
||||
samples/minifram/Makefile.am
|
||||
samples/minimal/Makefile.am
|
||||
samples/nativdlg/Makefile.am
|
||||
samples/notebook/Makefile.am
|
||||
samples/oleauto/Makefile.am
|
||||
samples/ownerdrw/Makefile.am
|
||||
samples/png/Makefile.am
|
||||
samples/printing/Makefile.am
|
||||
samples/proplist/Makefile.am
|
||||
samples/regtest/Makefile.am
|
||||
samples/resource/Makefile.am
|
||||
samples/richedit/Makefile.am
|
||||
samples/sashtest/Makefile.am
|
||||
samples/scroll/Makefile.am
|
||||
samples/splitter/Makefile.am
|
||||
samples/tab/Makefile.am
|
||||
samples/taskbar/Makefile.am
|
||||
samples/text/Makefile.am
|
||||
samples/thread/Makefile.am
|
||||
samples/toolbar/Makefile.am
|
||||
samples/treectrl/Makefile.am
|
||||
samples/typetest/Makefile.am
|
||||
samples/validate/Makefile.am
|
||||
samples/wxpoem/Makefile.am
|
||||
samples/wxsocket/Makefile.am
|
||||
src/Makefile.am
|
||||
src/gtk/Makefile.am
|
||||
src/motif/Makefile.am
|
||||
src/msw/Makefile.am
|
||||
|
@@ -15,7 +15,6 @@ src/makeprog.env
|
||||
src/makelib.env
|
||||
|
||||
src/Makefile
|
||||
src/Makefile.in
|
||||
src/motif.inc
|
||||
|
||||
src/motif/*.cpp
|
||||
|
@@ -5,7 +5,6 @@ docs/wine/COPYING.LIB
|
||||
|
||||
distrib/msw/*.rsp
|
||||
distrib/msw/*.bat
|
||||
distrib/msw/tmake/*.t
|
||||
|
||||
tools/gettext/xgettext.exe
|
||||
tools/gettext/msgfmt.exe
|
||||
@@ -52,6 +51,7 @@ src/msw/*.lst
|
||||
src/msw/*.def
|
||||
src/msw/*.inc
|
||||
src/msw/winestub.c
|
||||
src/msw/gsocket.c
|
||||
|
||||
src/msw/ctl3d/*.*
|
||||
src/msw/ctl3d/msvc/*.*
|
||||
|
@@ -1,3 +1,4 @@
|
||||
utils/ogl/Makefile.in
|
||||
utils/ogl/Makefile
|
||||
|
||||
utils/ogl/src/*.cpp
|
||||
|
44
distrib/msw/tmake/Makefile
Normal file
44
distrib/msw/tmake/Makefile
Normal file
@@ -0,0 +1,44 @@
|
||||
# FIXME we'll generate this makefile with configure later, but for now please
|
||||
# change it manually
|
||||
TMAKEDIR=/home/zeitlin/build/tmake
|
||||
TMAKE=$(TMAKEDIR)/bin/tmake
|
||||
|
||||
WXDIR=../../..
|
||||
MSW_MAKEFILES_DIR=$(WXDIR)/src/msw
|
||||
|
||||
all: $(MSW_MAKEFILES_DIR)/makefile.vc \
|
||||
$(MSW_MAKEFILES_DIR)/makefile.b32 \
|
||||
$(MSW_MAKEFILES_DIR)/makefile.dos \
|
||||
$(MSW_MAKEFILES_DIR)/makefile.bcc \
|
||||
$(MSW_MAKEFILES_DIR)/makefile.sc \
|
||||
$(MSW_MAKEFILES_DIR)/makefile.wat \
|
||||
$(MSW_MAKEFILES_DIR)/makefile.g95 \
|
||||
$(MSW_MAKEFILES_DIR)/makefile.g295 \
|
||||
$(WXDIR)/Makefile.in
|
||||
|
||||
$(MSW_MAKEFILES_DIR)/makefile.vc: filelist.txt wxwin.pro
|
||||
$(TMAKE) -t vc wxwin.pro -o $@
|
||||
|
||||
$(MSW_MAKEFILES_DIR)/makefile.b32: filelist.txt wxwin.pro
|
||||
$(TMAKE) -t b32 wxwin.pro -o $@
|
||||
|
||||
$(MSW_MAKEFILES_DIR)/makefile.dos: filelist.txt wxwin.pro
|
||||
$(TMAKE) -t dos wxwin.pro -o $@
|
||||
|
||||
$(MSW_MAKEFILES_DIR)/makefile.bcc: filelist.txt wxwin.pro
|
||||
$(TMAKE) -t bcc wxwin.pro -o $@
|
||||
|
||||
$(MSW_MAKEFILES_DIR)/makefile.sc: filelist.txt wxwin.pro
|
||||
$(TMAKE) -t sc wxwin.pro -o $@
|
||||
|
||||
$(MSW_MAKEFILES_DIR)/makefile.wat: filelist.txt wxwin.pro
|
||||
$(TMAKE) -t wat wxwin.pro -o $@
|
||||
|
||||
$(MSW_MAKEFILES_DIR)/makefile.g95: filelist.txt wxwin.pro
|
||||
$(TMAKE) -t g95 wxwin.pro -o $@
|
||||
|
||||
$(MSW_MAKEFILES_DIR)/makefile.g295: filelist.txt wxwin.pro g295.t
|
||||
$(TMAKE) -t g295 wxwin.pro -o $@
|
||||
|
||||
$(WXDIR)/Makefile.in: filelist.txt wxwin.pro
|
||||
$(TMAKE) -t unx wxwin.pro -o $@
|
@@ -38,6 +38,8 @@
|
||||
next;
|
||||
}
|
||||
|
||||
$isCFile = $file =~ /\.c$/;
|
||||
|
||||
my $isOleObj = $wxMSW{$file} =~ /\bO\b/;
|
||||
$file =~ s/cp?p?$/obj/;
|
||||
my $obj = "\$(MSWDIR)\\" . $file . " ";
|
||||
@@ -47,7 +49,7 @@
|
||||
#! remember that this file is in ole subdir
|
||||
$project{"WXOLEOBJS"} .= $obj;
|
||||
}
|
||||
|
||||
$project{"WXCOBJS"} .= $obj if $isCFile;
|
||||
}
|
||||
#$}
|
||||
|
||||
@@ -201,7 +203,8 @@ $(COMMDIR)\lex_yy.c: $(COMMDIR)\doslex.c
|
||||
foreach (@objs) {
|
||||
$text .= $_ . ": ";
|
||||
if ( $project{"WXOLEOBJS"} =~ /\Q$_/ ) { s/MSWDIR/OLEDIR/; }
|
||||
s/obj$/\$(SRCSUFF)/;
|
||||
$suffix = $project{"WXCOBJS"} =~ /\Q$_/ ? "c" : '$(SRCSUFF)';
|
||||
s/obj$/$suffix/;
|
||||
$text .= $_ . "\n\n";
|
||||
}
|
||||
#$}
|
||||
@@ -334,7 +337,10 @@ cleanall: clean
|
||||
|
||||
|
||||
MFTYPE=b32
|
||||
makefile.$(MFTYPE) : $(WXWIN)\distrib\msw\tmake\filelist.txt $(WXWIN)\distrib\msw\tmake\$(MFTYPE).t
|
||||
# Can't use this or we'll have to distribute all tmake files with wxWindows
|
||||
# makefile.$(MFTYPE) : $(WXWIN)\distrib\msw\tmake\filelist.txt $(WXWIN)\distrib\msw\tmake\$(MFTYPE).t
|
||||
|
||||
self:
|
||||
cd $(WXWIN)\distrib\msw\tmake
|
||||
tmake -t $(MFTYPE) wxwin.pro -o makefile.$(MFTYPE)
|
||||
copy makefile.$(MFTYPE) $(WXWIN)\src\msw
|
||||
|
@@ -42,8 +42,11 @@
|
||||
#! don't take files not appropriate for 16-bit Windows
|
||||
next if $wxMSW{$file} =~ /\b(32|O)\b/;
|
||||
|
||||
$isCFile = $file =~ /\.c$/;
|
||||
$file =~ s/cp?p?$/obj/;
|
||||
$project{"WXMSWOBJS"} .= "\$(MSWDIR)\\" . $file . " "
|
||||
$obj = "\$(MSWDIR)\\" . $file . " ";
|
||||
$project{"WXMSWOBJS"} .= $obj;
|
||||
$project{"WXCOBJS"} .= $obj if $isCFile;
|
||||
}
|
||||
#$}
|
||||
|
||||
@@ -162,7 +165,8 @@ $(COMMDIR)\lex_yy.c: $(COMMDIR)\doslex.c
|
||||
my @objs = split;
|
||||
foreach (@objs) {
|
||||
$text .= $_ . ": ";
|
||||
s/obj/\$(SRCSUFF)/;
|
||||
$suffix = $project{"WXCOBJS"} =~ /\Q$_/ ? "c" : '$(SRCSUFF)';
|
||||
s/obj/$suffix/;
|
||||
$text .= $_ . "\n\n";
|
||||
}
|
||||
#$}
|
||||
@@ -302,7 +306,10 @@ cleanall: clean
|
||||
|
||||
|
||||
MFTYPE=bcc
|
||||
makefile.$(MFTYPE) : $(WXWIN)\distrib\msw\tmake\filelist.txt $(WXWIN)\distrib\msw\tmake\$(MFTYPE).t
|
||||
# Can't use this or we'll have to distribute all tmake files with wxWindows
|
||||
#makefile.$(MFTYPE) : $(WXWIN)\distrib\msw\tmake\filelist.txt $(WXWIN)\distrib\msw\tmake\$(MFTYPE).t
|
||||
|
||||
self:
|
||||
cd $(WXWIN)\distrib\msw\tmake
|
||||
tmake -t $(MFTYPE) wxwin.pro -o makefile.$(MFTYPE)
|
||||
copy makefile.$(MFTYPE) $(WXWIN)\src\msw
|
||||
|
@@ -15,7 +15,7 @@
|
||||
#! now transform these hashes into $project tags
|
||||
foreach $file (sort keys %wxGeneric) {
|
||||
if ( $wxGeneric{$file} =~ /\b(PS|G|U)\b/ ) {
|
||||
#! this file for some reason was compiled for VC++ 1.52
|
||||
#! this file for some reason wasn't compiled for VC++ 1.52
|
||||
next unless $file =~ /^prntdlgg\./;
|
||||
}
|
||||
|
||||
@@ -27,8 +27,11 @@
|
||||
#! socket files don't compile under Win16 currently
|
||||
next if $wxCommon{$file} =~ /\b(32|S)\b/;
|
||||
|
||||
$isCFile = $file =~ /\.c$/;
|
||||
$file =~ s/cp?p?$/obj/;
|
||||
$project{"WXCOMMONOBJS"} .= "\$(COMMDIR)\\" . $file . " "
|
||||
$obj = "\$(COMMDIR)\\" . $file . " ";
|
||||
$project{"WXCOMMONOBJS"} .= $obj;
|
||||
$project{"WXCOBJS"} .= $obj if $isCFile;
|
||||
}
|
||||
|
||||
foreach $file (sort keys %wxMSW) {
|
||||
@@ -177,11 +180,20 @@ $(CPPFLAGS) /YcWX/WXPREC.H /c /Tp $*.$(SRCSUFF)
|
||||
$_ = $project{"WXMSWOBJS"} . $project{"WXCOMMONOBJS"} . $project{"WXGENERICOBJS"};
|
||||
my @objs = split;
|
||||
foreach (@objs) {
|
||||
s:\\:/:;
|
||||
$text .= $_ . ': $*.$(SRCSUFF)' . "\n" .
|
||||
' cl @<<' . "\n" .
|
||||
'$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)' . "\n" .
|
||||
"<<\n\n";
|
||||
if ( $project{"WXCOBJS"} =~ /\Q$_/ ) {
|
||||
s:\\:/:;
|
||||
$text .= $_ . ': $*.c' . "\n" .
|
||||
' cl @<<' . "\n" .
|
||||
'$(CPPFLAGS2) /Fo$@ /c /Tc $*.c' . "\n" .
|
||||
"<<\n\n";
|
||||
}
|
||||
else {
|
||||
s:\\:/:;
|
||||
$text .= $_ . ': $*.$(SRCSUFF)' . "\n" .
|
||||
' cl @<<' . "\n" .
|
||||
'$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)' . "\n" .
|
||||
"<<\n\n";
|
||||
}
|
||||
}
|
||||
#$}
|
||||
|
||||
|
@@ -39,14 +39,30 @@
|
||||
$wxGeneric{$fields[0]} = $fields[2];
|
||||
} elsif ( $fields[1] eq "M" ) {
|
||||
$wxMSW{$fields[0]} = $fields[2];
|
||||
} elsif ( $fields[1] eq "X" ) {
|
||||
$wxMOTIF{$fields[0]} = $fields[2];
|
||||
} elsif ( $fields[1] eq "R" ) {
|
||||
$wxGTK{$fields[0]} = $fields[2];
|
||||
} elsif ( $fields[1] eq "H" ) {
|
||||
$wxHTML{$fields[0]} = $fields[2];
|
||||
} elsif ( $fields[1] eq "U" ) {
|
||||
$wxUNIX{$fields[0]} = $fields[2];
|
||||
} elsif ( $fields[1] eq "I" ) {
|
||||
$wxINCLUDE{$fields[0]} = $fields[2];
|
||||
} elsif ( $fields[1] eq "W" ) {
|
||||
$wxWXINCLUDE{$fields[0]} = $fields[2];
|
||||
} elsif ( $fields[1] eq "P" ) {
|
||||
$wxPROTOCOLINCLUDE{$fields[0]} = $fields[2];
|
||||
} elsif ( $fields[1] eq "L" ) {
|
||||
$wxHTMLINCLUDE{$fields[0]} = $fields[2];
|
||||
} elsif ( $fields[1] eq "F" ) {
|
||||
$wxMOTIFINCLUDE{$fields[0]} = $fields[2];
|
||||
} elsif ( $fields[1] eq "B" ) {
|
||||
$wxMSWINCLUDE{$fields[0]} = $fields[2];
|
||||
} elsif ( $fields[1] eq "K" ) {
|
||||
$wxGTKINCLUDE{$fields[0]} = $fields[2];
|
||||
} elsif ( $fields[1] eq "S" ) {
|
||||
$wxUNIXINCLUDE{$fields[0]} = $fields[2];
|
||||
} elsif ( $fields[1] eq "N" ) {
|
||||
$wxGENERICINCLUDE{$fields[0]} = $fields[2];
|
||||
} else {
|
||||
warn "Unknown file type $fields[1] for $fields[0], ignoring.\n";
|
||||
next line;
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -1,7 +1,7 @@
|
||||
#!#############################################################################
|
||||
#! File: gtk.t
|
||||
#! Purpose: tmake template file from which Makefile is generated by running
|
||||
#! tmake -t gtk wxwin.pro -o Makefile
|
||||
#! File: g295.t
|
||||
#! Purpose: tmake template file from which makefile.g295 is generated by running
|
||||
#! tmake -t g295 wxwin.pro -o makefile.g295
|
||||
#! Author: Vadim Zeitlin, Robert Roebling, Julian Smart
|
||||
#! Created: 14.07.99
|
||||
#! Version: $Id$
|
||||
@@ -9,27 +9,37 @@
|
||||
|
||||
#${
|
||||
#! include the code which parses filelist.txt file and initializes
|
||||
#! %wxCommon, %wxGeneric, %wxHtml, %wxUnix and %wxGTK hashes.
|
||||
#! %wxCommon, %wxGeneric and %wxMSW hashes.
|
||||
IncludeTemplate("filelist.t");
|
||||
|
||||
#! now transform these hashes into $project tags
|
||||
foreach $file (sort keys %wxGeneric) {
|
||||
next if $wxGeneric{$file} =~ /\bR\b/;
|
||||
#! native wxDirDlg can't be compiled due to GnuWin32/OLE limitations,
|
||||
#! so take the generic version
|
||||
if ( $wxGeneric{$file} =~ /\b(PS|G|U|16)\b/ ) {
|
||||
next;
|
||||
}
|
||||
|
||||
$file =~ s/cp?p?$/\$(OBJSUFF)/;
|
||||
$project{"WXGENERICOBJS"} .= '$(GENDIR)/' . $file . " "
|
||||
}
|
||||
|
||||
foreach $file (sort keys %wxCommon) {
|
||||
next if $wxCommon{$file} =~ /\bR\b/;
|
||||
next if $wxCommon{$file} =~ /\b(16)\b/;
|
||||
|
||||
$file =~ s/cp?p?$/\$(OBJSUFF)/;
|
||||
$project{"WXCOMMONOBJS"} .= '$(COMMDIR)/' . $file . " "
|
||||
}
|
||||
|
||||
foreach $file (sort keys %wxGTK) {
|
||||
foreach $file (sort keys %wxMSW) {
|
||||
#! Mingw32 doesn't have the OLE headers and has some troubles with
|
||||
#! socket code
|
||||
next if $wxMSW{$file} =~ /\b(16)\b/;
|
||||
|
||||
$project{"WXMSWOBJS"} .= '$(MSWDIR)/';
|
||||
$project{"WXMSWOBJS"} .= 'ole/' if $wxMSW{$file} =~ /\bO\b/;
|
||||
$file =~ s/cp?p?$/\$(OBJSUFF)/;
|
||||
$project{"WXGTKOBJS"} .= '$(GTKDIR)/' . $file . " "
|
||||
$project{"WXMSWOBJS"} .= $file . " "
|
||||
}
|
||||
|
||||
foreach $file (sort keys %wxHTML) {
|
||||
@@ -37,16 +47,12 @@
|
||||
$project{"WXHTMLOBJS"} .= '$(HTMLDIR)/' . $file . " "
|
||||
}
|
||||
|
||||
foreach $file (sort keys %wxUNIX) {
|
||||
$file =~ s/cp?p?$/\$(OBJSUFF)/;
|
||||
$project{"WXUNIXOBJS"} .= '$(UNIXDIR)/' . $file . " "
|
||||
}
|
||||
#$}
|
||||
# This file was automatically generated by tmake at #$ Now()
|
||||
# DO NOT CHANGE THIS FILE, YOUR CHANGES WILL BE LOST! CHANGE GTK.T!
|
||||
# DO NOT CHANGE THIS FILE, YOUR CHANGES WILL BE LOST! CHANGE G295.T!
|
||||
|
||||
#
|
||||
# File: Makefile
|
||||
# File: makefile.g295
|
||||
# Author: Julian Smart, Robert Roebling, Vadim Zeitlin
|
||||
# Created: 1993
|
||||
# Updated: 1999
|
||||
@@ -54,22 +60,28 @@
|
||||
# Copyright:(c) 1999, Vadim Zeitlin
|
||||
# Copyright:(c) 1999, Robert Roebling
|
||||
#
|
||||
# Makefile for libwx_gtk.a
|
||||
# Makefile for libwx.a
|
||||
|
||||
# Replace this with your own path if necessary
|
||||
WXDIR = ../..
|
||||
|
||||
include $(WXDIR)/src/gtk.env
|
||||
# All common compiler flags and options are now in
|
||||
# this central makefile.
|
||||
include $(WXDIR)/src/makeg95.env
|
||||
|
||||
# Subordinate library possibilities
|
||||
|
||||
EXTRAOBJS=
|
||||
|
||||
GENDIR = $(WXDIR)/src/generic
|
||||
COMMDIR = $(WXDIR)/src/common
|
||||
HTMLDIR = $(WXDIR)/src/html
|
||||
UNIXDIR = $(WXDIR)/src/unix
|
||||
XPMDIR = $(WXDIR)/src/xpm
|
||||
PNGDIR = $(WXDIR)/src/png
|
||||
JPEGDIR = $(WXDIR)/src/jpeg
|
||||
ZLIBDIR = $(WXDIR)/src/zlib
|
||||
GTKDIR = $(WXDIR)/src/gtk
|
||||
OLEDIR = $(WXDIR)/src/msw/ole
|
||||
MSWDIR = $(WXDIR)/src/msw
|
||||
|
||||
DOCDIR = $(WXDIR)\docs
|
||||
|
||||
@@ -77,17 +89,14 @@ GENERICOBJS = \
|
||||
#$ ExpandList("WXGENERICOBJS");
|
||||
|
||||
COMMONOBJS = \
|
||||
$(COMMDIR)/parser.$(OBJSUFF) \
|
||||
$(COMMDIR)/y_tab.$(OBJSUFF) \
|
||||
#$ ExpandList("WXCOMMONOBJS");
|
||||
|
||||
HTMLOBJS = \
|
||||
#$ ExpandList("WXHTMLOBJS");
|
||||
|
||||
GTKOBJS = \
|
||||
#$ ExpandList("WXGTKOBJS");
|
||||
|
||||
UNIXOBJS = \
|
||||
#$ ExpandList("WXUNIXOBJS");
|
||||
MSWOBJS = \
|
||||
#$ ExpandList("WXMSWOBJS");
|
||||
|
||||
ZLIBOBJS = \
|
||||
$(ZLIBDIR)/adler32.$(OBJSUFF) \
|
||||
@@ -171,49 +180,84 @@ JPEGOBJS = \
|
||||
$(JPEGDIR)/jquant2.$(OBJSUFF) \
|
||||
$(JPEGDIR)/jdmerge.$(OBJSUFF)
|
||||
|
||||
OBJECTS = $(GTKOBJS) $(COMMONOBJS) $(GENERICOBJS) $(HTMLOBJ) $(UNIXOBJS) \
|
||||
$(JPEGOBJS) $(PNGOBJS) $(ZLIBOBJS)
|
||||
XPMOBJECTS = $(XPMDIR)/crbuffri.o\
|
||||
$(XPMDIR)/crdatfri.o\
|
||||
$(XPMDIR)/create.o $(XPMDIR)/crifrbuf.o\
|
||||
$(XPMDIR)/crifrdat.o\
|
||||
$(XPMDIR)/data.o\
|
||||
$(XPMDIR)/hashtab.o $(XPMDIR)/misc.o\
|
||||
$(XPMDIR)/parse.o $(XPMDIR)/rdftodat.o\
|
||||
$(XPMDIR)/rdftoi.o\
|
||||
$(XPMDIR)/rgb.o $(XPMDIR)/scan.o\
|
||||
$(XPMDIR)/simx.o $(XPMDIR)/wrffrdat.o\
|
||||
$(XPMDIR)/wrffrp.o $(XPMDIR)/wrffri.o
|
||||
|
||||
OBJECTS = $(MSWOBJS) $(COMMONOBJS) $(GENERICOBJS) $(HTMLOBJS) \
|
||||
$(JPEGOBJS) $(PNGOBJS) $(ZLIBOBJS) # $(XPMOBJECTS)
|
||||
|
||||
all: $(OBJECTS) $(WXLIB)
|
||||
|
||||
$(WXLIB): $(OBJECTS)
|
||||
ar $(AROPTIONS) $@ $(OBJECTS)
|
||||
$(WXLIB): $(OBJECTS) $(EXTRAOBJS)
|
||||
ar $(AROPTIONS) $@ $(EXTRAOBJS) $(OBJECTS)
|
||||
$(RANLIB) $@
|
||||
|
||||
$(OBJECTS): $(WXDIR)/include/wx/defs.h $(WXDIR)/include/wx/object.h $(WXDIR)/include/wx/setup.h
|
||||
$(OBJECTS): $(WXINC)/wx/defs.h $(WXINC)/wx/object.h $(WXINC)/wx/setup.h
|
||||
|
||||
$(COMMDIR)/parser.$(OBJSUFF): $(COMMDIR)/parser.c $(COMMDIR)/lexer.c
|
||||
$(CCLEX) -c $(CFLAGS) -o $@ $(COMMDIR)/parser.c
|
||||
$(COMMDIR)/y_tab.$(OBJSUFF): $(COMMDIR)/y_tab.c $(COMMDIR)/lex_yy.c
|
||||
$(CCLEX) -c $(CPPFLAGS) -DUSE_DEFINE -DYY_USE_PROTOS -o $@ $(COMMDIR)/y_tab.c
|
||||
|
||||
$(COMMDIR)/parser.c: $(COMMDIR)/parser.y $(COMMDIR)/lexer.c
|
||||
$(YACC) $(COMMDIR)/parser.y
|
||||
@sed -e "s;$(COMMDIR)/y.tab.c;parser.y;g" < y.tab.c | \
|
||||
sed -e "s/BUFSIZ/5000/g" | \
|
||||
sed -e "s/YYLMAX 200/YYLMAX 5000/g" | \
|
||||
sed -e "s/yy/PROIO_yy/g" | \
|
||||
sed -e "s/input/PROIO_input/g" | \
|
||||
sed -e "s/unput/PROIO_unput/g" > $(COMMDIR)/parser.c
|
||||
@$(RM) y.tab.c
|
||||
$(COMMDIR)/y_tab.c: $(COMMDIR)/dosyacc.c
|
||||
copy ..\common\dosyacc.c ..\common\y_tab.c
|
||||
|
||||
$(COMMDIR)/lexer.c: $(COMMDIR)/lexer.l
|
||||
$(LEX) $(COMMDIR)/lexer.l
|
||||
@sed -e "s;$(COMMDIR)/lex.yy.c;lexer.l;g" < lex.yy.c | \
|
||||
sed -e "s/yy/PROIO_yy/g" | \
|
||||
sed -e "s/input/PROIO_input/g" | \
|
||||
sed -e "s/unput/PROIO_unput/g" > $(COMMDIR)/lexer.c
|
||||
@$(RM) lex.yy.c
|
||||
$(COMMDIR)/lex_yy.c: $(COMMDIR)/doslex.c
|
||||
copy ..\common\doslex.c ..\common\lex_yy.c
|
||||
|
||||
# Replace lex with flex if you run into compilation
|
||||
# problems with lex_yy.c. See also note about LEX_SCANNER
|
||||
# above.
|
||||
# $(COMMDIR)/lex_yy.c: $(COMMDIR)/lexer.l
|
||||
# $(LEX) -L -o$(COMMDIR)/lex_yy.c $(COMMDIR)/lexer.l
|
||||
#
|
||||
# Try one of these if the above line doesn't work.
|
||||
# Alternative syntax (1)
|
||||
# $(LEX) -t -L $(COMMDIR)/lexer.l > $(COMMDIR)/lex_yy.c
|
||||
# Alternative syntax (2)
|
||||
# $(LEX) -L -o$(COMMDIR)/lex_yy.c $(COMMDIR)/lexer.l
|
||||
#
|
||||
# sed -e "s/BUFSIZ/5000/g" < lex.yy.c | \
|
||||
# sed -e "s/yyoutput(c)/void yyoutput(c)/g" | \
|
||||
# sed -e "s/YYLMAX 200/YYLMAX 5000/g" > lex_yy.c
|
||||
# rm -f lex.yy.c
|
||||
#
|
||||
# Replace yacc with bison if you run into compilation
|
||||
# problems with y_tab.c.
|
||||
#
|
||||
# $(COMMDIR)/y_tab.c: $(COMMDIR)/parser.y
|
||||
# $(YACC) -o $(COMMDIR)/y_tab.c $(COMMDIR)/parser.y
|
||||
#
|
||||
# If you use e.g. gcc on Unix, uncomment these lines
|
||||
# and comment out the above.
|
||||
#
|
||||
# $(COMMDIR)/y_tab.c: $(COMMDIR)/parser.y
|
||||
# $(YACC) $(COMMDIR)/parser.y
|
||||
# mv y.tab.c $(COMMDIR)/y_tab.c
|
||||
|
||||
clean:
|
||||
rm -f $(GTKDIR)/*.$(OBJSUFF)
|
||||
rm -f $(COMMDIR)/parser.c
|
||||
rm -f $(COMMDIR)/lexer.c
|
||||
rm -f $(COMMDIR)/*.$(OBJSUFF)
|
||||
rm -f $(GENDIR)/*.$(OBJSUFF)
|
||||
rm -f $(PNGDIR)/*.$(OBJSUFF)
|
||||
rm -f $(ZLIBDIR)/*.$(OBJSUFF)
|
||||
rm -f $(JPEGDIR)/*.$(OBJSUFF)
|
||||
rm -f $(UNIXDIR)/*.$(OBJSUFF)
|
||||
rm -f $(HTMLDIR)/*.$(OBJSUFF)
|
||||
rm -f $(WXWIN)/lib/libwx_$(GUI).a
|
||||
-erase *.o
|
||||
-erase *.bak
|
||||
-erase core
|
||||
-erase ..\common\y_tab.c
|
||||
-erase ..\common\lex_yy.c
|
||||
-erase ..\common\*.o
|
||||
-erase ..\common\*.bak
|
||||
-erase ..\generic\*.o
|
||||
-erase ..\generic\*.bak
|
||||
-erase ..\html\*.o
|
||||
-erase ..\png\*.o
|
||||
-erase ..\png\*.bak
|
||||
-erase ..\zlib\*.o
|
||||
-erase ..\zlib\*.bak
|
||||
-erase ..\jpeg\*.o
|
||||
-erase ..\..\lib\libwx.a
|
||||
|
||||
cleanall: clean
|
@@ -49,8 +49,6 @@ echo Generating for Symantec C++...
|
||||
E:\Perl\5.00471\bin\MSWin32-x86\perl.exe g:\Unix\tmake\bin\tmake -t sc wxwin.pro -o makefile.sc
|
||||
echo Generating for Watcom C++...
|
||||
E:\Perl\5.00471\bin\MSWin32-x86\perl.exe g:\Unix\tmake\bin\tmake -t wat wxwin.pro -o makefile.wat
|
||||
echo Generating for wxGTK...
|
||||
E:\Perl\5.00471\bin\MSWin32-x86\perl.exe g:\Unix\tmake\bin\tmake -t gtk wxwin.pro -o Makefile
|
||||
echo Generating for Unix and Configure...
|
||||
E:\Perl\5.00471\bin\MSWin32-x86\perl.exe g:\Unix\tmake\bin\tmake -t unx wxwin.pro -o makefile.unx.in
|
||||
|
||||
|
54
distrib/msw/tmake/makeall.sh
Executable file
54
distrib/msw/tmake/makeall.sh
Executable file
@@ -0,0 +1,54 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# File: makeall.sh
|
||||
# Purpose: create wxWindows makefiles for all compilers
|
||||
# Author: Michael Bedward
|
||||
# Created: 29 Aug 1999
|
||||
# Copyright: (c) 1999 Michael Bedward
|
||||
# Version: $Id$
|
||||
#
|
||||
# This creates the makefiles for all compilers from the templates using
|
||||
# tmake. The tmake executable should be in the path.
|
||||
|
||||
# Assume we are in distrib/msw/tmake
|
||||
#
|
||||
topdir="../../.."
|
||||
mswdir="$topdir/src/msw"
|
||||
|
||||
for tname in `ls *.t`
|
||||
do
|
||||
case $tname in
|
||||
b32.t)
|
||||
echo "Generating $mswdir/makefile.b32 for Borland C++ (32 bits)..."
|
||||
tmake -t b32 wxwin.pro -o $mswdir/makefile.b32 ;;
|
||||
|
||||
bcc.t)
|
||||
echo "Generating $mswdir/makefile.bcc for Borland C++ (16 bits)..."
|
||||
tmake -t bcc wxwin.pro -o $mswdir/makefile.bcc;;
|
||||
|
||||
dos.t)
|
||||
echo "Generating $mswdir/makefile.dos for Visual C++ 1.52..."
|
||||
tmake -t dos wxwin.pro -o $mswdir/makefile.dos;;
|
||||
|
||||
g95.t)
|
||||
echo "Generating $mswdir/makefile.g95 for Cygwin/Mingw32..."
|
||||
tmake -t g95 wxwin.pro -o $mswdir/makefile.g95;;
|
||||
|
||||
sc.t)
|
||||
echo "Generating $mswdir/makefile.sc for Symantec C++..."
|
||||
tmake -t sc wxwin.pro -o $mswdir/makefile.sc;;
|
||||
|
||||
vc.t)
|
||||
echo "Generating $mswdir/makefile.vc for Visual C++ 4.0..."
|
||||
tmake -t vc wxwin.pro -o $mswdir/makefile.vc;;
|
||||
|
||||
wat.t)
|
||||
echo "Generating $mswdir/makefile.wat for Watcom C++..."
|
||||
tmake -t wat wxwin.pro -o $mswdir/makefile.wat;;
|
||||
|
||||
unx.t)
|
||||
echo "Generating $topdir/Makefile.in for Unix and Configure..."
|
||||
tmake -t unx wxwin.pro -o $topdir/Makefile.in;;
|
||||
esac
|
||||
done
|
||||
|
57
distrib/msw/tmake/tmake.conf
Normal file
57
distrib/msw/tmake/tmake.conf
Normal file
@@ -0,0 +1,57 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
# tmake configuration for linux-g++
|
||||
#
|
||||
|
||||
TEMPLATE = app
|
||||
CONFIG = qt warn_on release
|
||||
|
||||
TMAKE_CC = gcc
|
||||
TMAKE_CFLAGS =
|
||||
TMAKE_CFLAGS_WARN_ON = -Wall -W
|
||||
TMAKE_CFLAGS_WARN_OFF =
|
||||
TMAKE_CFLAGS_RELEASE = -O2 -fno-strength-reduce
|
||||
TMAKE_CFLAGS_DEBUG = -g
|
||||
TMAKE_CFLAGS_SHLIB = -fPIC
|
||||
TMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses
|
||||
|
||||
TMAKE_CXX = g++
|
||||
TMAKE_CXXFLAGS = $$TMAKE_CFLAGS
|
||||
TMAKE_CXXFLAGS_WARN_ON = $$TMAKE_CFLAGS_WARN_ON
|
||||
TMAKE_CXXFLAGS_WARN_OFF = $$TMAKE_CFLAGS_WARN_OFF
|
||||
TMAKE_CXXFLAGS_RELEASE = $$TMAKE_CFLAGS_RELEASE
|
||||
TMAKE_CXXFLAGS_DEBUG = $$TMAKE_CFLAGS_DEBUG
|
||||
TMAKE_CXXFLAGS_SHLIB = $$TMAKE_CFLAGS_SHLIB
|
||||
TMAKE_CXXFLAGS_YACC = $$TMAKE_CFLAGS_YACC
|
||||
|
||||
TMAKE_INCDIR =
|
||||
TMAKE_LIBDIR =
|
||||
TMAKE_INCDIR_X11 = /usr/X11R6/include
|
||||
TMAKE_LIBDIR_X11 = /usr/X11R6/lib
|
||||
TMAKE_INCDIR_QT = $(QTDIR)/include
|
||||
TMAKE_LIBDIR_QT = $(QTDIR)/lib
|
||||
TMAKE_INCDIR_OPENGL = /usr/X11R6/include
|
||||
TMAKE_LIBDIR_OPENGL = /usr/X11R6/lib
|
||||
|
||||
TMAKE_LINK = g++
|
||||
TMAKE_LINK_SHLIB = g++
|
||||
TMAKE_LFLAGS = -Wl,-rpath=/lib:/usr/X11R6/lib:$(QTDIR)/lib
|
||||
TMAKE_LFLAGS_RELEASE =
|
||||
TMAKE_LFLAGS_DEBUG =
|
||||
TMAKE_LFLAGS_SHLIB = -shared
|
||||
TMAKE_LFLAGS_SONAME = -Wl,-soname,
|
||||
|
||||
TMAKE_LIBS =
|
||||
TMAKE_LIBS_X11 = -lX11 -lXext
|
||||
TMAKE_LIBS_QT = -lqt
|
||||
TMAKE_LIBS_QT_OPENGL = -lqgl
|
||||
TMAKE_LIBS_OPENGL = -lMesaGL -lMesaGLU -lXmu -lXext -lm
|
||||
|
||||
TMAKE_MOC = moc
|
||||
|
||||
TMAKE_AR = ar cqs
|
||||
TMAKE_RANLIB =
|
||||
|
||||
TMAKE_TAR = tar -cf
|
||||
TMAKE_GZIP = gzip -9f
|
@@ -1,60 +1,174 @@
|
||||
#!################################################################################
|
||||
#! File: unx.t
|
||||
#! Purpose: tmake template file from which makefile.unx.in is generated by running
|
||||
#! tmake -t unx wxwin.pro -o makefile.unx.in
|
||||
#! Purpose: tmake template file from which Makefile.in is generated by running
|
||||
#! tmake -t unx wxwin.pro -o Makefile.in
|
||||
#! Author: Vadim Zeitlin, Robert Roebling, Julian Smart
|
||||
#! Created: 14.07.99
|
||||
#! Version: $Id$
|
||||
#!################################################################################
|
||||
|
||||
#${
|
||||
#! include the code which parses filelist.txt file and initializes
|
||||
#! %wxCommon, %wxGeneric, %wxHtml, %wxUnix and %wxGTK hashes.
|
||||
IncludeTemplate("filelist.t");
|
||||
|
||||
#! now transform these hashes into $project tags
|
||||
#! Generic
|
||||
|
||||
foreach $file (sort keys %wxGeneric) {
|
||||
next if $wxGeneric{$file} =~ /\bR\b/;
|
||||
#! native wxDirDlg can't be compiled due to GnuWin32/OLE limitations,
|
||||
#! so take the generic version
|
||||
if ( $wxGeneric{$file} =~ /\b(PS|G|U|16)\b/ ) {
|
||||
next unless $file =~ /^dirdlgg\./;
|
||||
}
|
||||
|
||||
$file2 = $file;
|
||||
$file =~ s/cp?p?$/\o/;
|
||||
$project{"WXGENERICOBJS"} .= $file . " "
|
||||
$file2 =~ s/cp?p?$/\d/;
|
||||
$project{"WXMSW_GENERICOBJS"} .= $file . " ";
|
||||
$project{"WXMSW_GENERICDEPS"} .= $file2 . " "
|
||||
}
|
||||
|
||||
foreach $file (sort keys %wxGeneric) {
|
||||
#! skip generic files not required for the wxGTK port
|
||||
next if $wxGeneric{$file} =~ /\bR\b/;
|
||||
|
||||
$file2 = $file;
|
||||
$file =~ s/cp?p?$/\o/;
|
||||
$file2 =~ s/cp?p?$/\d/;
|
||||
$project{"WXGTK_GENERICOBJS"} .= $file . " ";
|
||||
$project{"WXGTK_GENERICDEPS"} .= $file2 . " "
|
||||
}
|
||||
|
||||
foreach $file (sort keys %wxGeneric) {
|
||||
next if $wxGeneric{$file} =~ /\bX\b/;
|
||||
|
||||
$file2 = $file;
|
||||
$file =~ s/cp?p?$/\o/;
|
||||
$file2 =~ s/cp?p?$/\d/;
|
||||
$project{"WXMOTIF_GENERICOBJS"} .= $file . " ";
|
||||
$project{"WXMOTIF_GENERICDEPS"} .= $file2 . " "
|
||||
}
|
||||
|
||||
#! Common
|
||||
|
||||
foreach $file (sort keys %wxCommon) {
|
||||
next if $wxCommon{$file} =~ /\bR\b/;
|
||||
|
||||
$file2 = $file;
|
||||
$file =~ s/cp?p?$/\o/;
|
||||
$project{"WXCOMMONOBJS"} .= $file . " "
|
||||
$file2 =~ s/cp?p?$/\d/;
|
||||
$project{"WXGTK_COMMONOBJS"} .= $file . " ";
|
||||
$project{"WXGTK_COMMONDEPS"} .= $file2 . " "
|
||||
}
|
||||
|
||||
foreach $file (sort keys %wxCommon) {
|
||||
next if $wxCommon{$file} =~ /\bX\b/;
|
||||
|
||||
$file2 = $file;
|
||||
$file =~ s/cp?p?$/\o/;
|
||||
$file2 =~ s/cp?p?$/\d/;
|
||||
$project{"WXMOTIF_COMMONOBJS"} .= $file . " ";
|
||||
$project{"WXMOTIF_COMMONDEPS"} .= $file2 . " "
|
||||
}
|
||||
|
||||
foreach $file (sort keys %wxCommon) {
|
||||
next if $wxCommon{$file} =~ /\b(16)\b/;
|
||||
|
||||
#! needs extra files (sql*.h) so not compiled by default.
|
||||
next if $file =~ /^odbc\./;
|
||||
|
||||
$file2 = $file;
|
||||
$file =~ s/cp?p?$/\o/;
|
||||
$file2 =~ s/cp?p?$/\d/;
|
||||
$project{"WXMSW_COMMONOBJS"} .= $file . " ";
|
||||
$project{"WXMSW_COMMONDEPS"} .= $file2 . " "
|
||||
}
|
||||
|
||||
#! GUI
|
||||
|
||||
foreach $file (sort keys %wxMSW) {
|
||||
#! Mingw32 doesn't have the OLE headers and has some troubles with
|
||||
#! socket code
|
||||
next if $wxMSW{$file} =~ /\b(O|16)\b/;
|
||||
|
||||
#! native wxDirDlg can't be compiled due to GnuWin32/OLE limitations,
|
||||
next if $file =~ /^dirdlg\./;
|
||||
|
||||
$file2 = $file;
|
||||
$file =~ s/cp?p?$/\o/;
|
||||
$file2 =~ s/cp?p?$/\d/;
|
||||
$project{"WXMSW_GUIOBJS"} .= $file . " ";
|
||||
$project{"WXMSW_GUIDEPS"} .= $file2 . " "
|
||||
}
|
||||
|
||||
foreach $file (sort keys %wxGTK) {
|
||||
$file2 = $file;
|
||||
$file =~ s/cp?p?$/\o/;
|
||||
$project{"WXGTKOBJS"} .= $file . " "
|
||||
$file2 =~ s/cp?p?$/\d/;
|
||||
$project{"WXGTK_GUIOBJS"} .= $file . " ";
|
||||
$project{"WXGTK_GUIDEPS"} .= $file2 . " "
|
||||
}
|
||||
|
||||
foreach $file (sort keys %wxHTML) {
|
||||
foreach $file (sort keys %wxMOTIF) {
|
||||
$file2 = $file;
|
||||
$file =~ s/cp?p?$/\o/;
|
||||
$project{"WXHTMLOBJS"} .= $file . " "
|
||||
$file2 =~ s/cp?p?$/\d/;
|
||||
$project{"WXMOTIF_GUIOBJS"} .= $file . " ";
|
||||
$project{"WXMOTIF_GUIDEPS"} .= $file2 . " "
|
||||
}
|
||||
|
||||
#! others
|
||||
|
||||
foreach $file (sort keys %wxHTML) {
|
||||
$file2 = $file;
|
||||
$file =~ s/cp?p?$/\o/;
|
||||
$file2 =~ s/cp?p?$/\d/;
|
||||
$project{"WXHTMLOBJS"} .= $file . " ";
|
||||
$project{"WXHTMLDEPS"} .= $file2 . " "
|
||||
}
|
||||
|
||||
foreach $file (sort keys %wxUNIX) {
|
||||
$file2 = $file;
|
||||
$file =~ s/cp?p?$/\o/;
|
||||
$project{"WXUNIXOBJS"} .= $file . " "
|
||||
$file2 =~ s/cp?p?$/\d/;
|
||||
$project{"WXUNIXOBJS"} .= $file . " ";
|
||||
$project{"WXUNIXDEPS"} .= $file2 . " "
|
||||
}
|
||||
|
||||
#! headers
|
||||
|
||||
foreach $file (sort keys %wxWXINCLUDE) {
|
||||
$project{"WX_HEADERS"} .= $file . " "
|
||||
}
|
||||
|
||||
foreach $file (sort keys %wxGENERICINCLUDE) {
|
||||
$project{"WXGENERIC_HEADERS"} .= "generic/" . $file . " "
|
||||
}
|
||||
|
||||
foreach $file (sort keys %wxMOTIFINCLUDE) {
|
||||
$project{"WXMOTIF_HEADERS"} .= "motif/" . $file . " "
|
||||
}
|
||||
|
||||
foreach $file (sort keys %wxGTKINCLUDE) {
|
||||
$project{"WXGTK_HEADERS"} .= "gtk/" . $file . " "
|
||||
}
|
||||
|
||||
foreach $file (sort keys %wxMSWINCLUDE) {
|
||||
$project{"WXMSW_HEADERS"} .= "msw/" . $file . " "
|
||||
}
|
||||
|
||||
foreach $file (sort keys %wxHTMLINCLUDE) {
|
||||
$project{"WXHTML_HEADERS"} .= "html/" . $file . " "
|
||||
}
|
||||
|
||||
foreach $file (sort keys %wxUNIXINCLUDE) {
|
||||
$project{"WXUNIX_HEADERS"} .= "unix/" . $file . " "
|
||||
}
|
||||
|
||||
foreach $file (sort keys %wxPROTOCOLINCLUDE) {
|
||||
$project{"WXPROTOCOL_HEADERS"} .= "protocol/" . $file . " "
|
||||
}
|
||||
#$}
|
||||
#
|
||||
# I want this to be:
|
||||
# $(INSTALL_DATA) $(INCDIR)/wx/window.h $(includedir)/wx/window.h
|
||||
#
|
||||
# foreach $file (sort keys %wxINCLUDE) {
|
||||
# next if $wxINCLUDE{$file} =~ /\b(GTK|MSW|MOT|PM|MAC|GEN|HTM|UNX)\b/;
|
||||
#
|
||||
# $project{"WXINSTALLWX"} .= "$(INSTALL_DATA)" . " " . "\$(INCDIR)/wx/" . $file . " \$(includedir)/wx/" . $file . "\n"
|
||||
# }
|
||||
#
|
||||
#
|
||||
#
|
||||
# This file was automatically generated by tmake at #$ Now()
|
||||
# DO NOT CHANGE THIS FILE, YOUR CHANGES WILL BE LOST! CHANGE UNX.T!
|
||||
|
||||
@@ -69,27 +183,39 @@
|
||||
#
|
||||
# Makefile for libwx_gtk.a, libwx_motif.a and libwx_msw.a
|
||||
|
||||
########################### VERSION #################################
|
||||
###################################################################
|
||||
|
||||
LIBS = @LIBS@
|
||||
include ./src/make.env
|
||||
|
||||
TOOLKIT = @TOOLKIT@
|
||||
############## override make.env for PIC ##########################
|
||||
|
||||
WXLIB = @WX_LIBRARY@
|
||||
# Clears all default suffixes
|
||||
.SUFFIXES: .o .cpp .c .cxx
|
||||
|
||||
########################### VERSION #################################
|
||||
.c.o :
|
||||
$(CCC) -c @DEP_INFO_FLAGS@ $(CFLAGS) $(PICFLAGS) -o $@ $<
|
||||
|
||||
WX_MAJOR_VERSION_NUMBER = @WX_MAJOR_VERSION_NUMBER@
|
||||
WX_MINOR_VERSION_NUMBER = @WX_MINOR_VERSION_NUMBER@
|
||||
WX_RELEASE_NUMBER = @WX_RELEASE_NUMBER@
|
||||
.cpp.o :
|
||||
$(CC) -c @DEP_INFO_FLAGS@ $(CPPFLAGS) $(PICFLAGS) -o $@ $<
|
||||
|
||||
########################### Misc #################################
|
||||
|
||||
SHELL = @SHELL@
|
||||
.cxx.o :
|
||||
$(CC) -c @DEP_INFO_FLAGS@ $(CPPFLAGS) $(PICFLAGS) -o $@ $<
|
||||
|
||||
########################### Paths #################################
|
||||
|
||||
srcdir = @srcdir@/src/gtk
|
||||
srcdir = @srcdir@
|
||||
|
||||
VP1 = @top_srcdir@/src/common
|
||||
VP2 = @top_srcdir@/src/@TOOLKIT_DIR@
|
||||
VP3 = @top_srcdir@/src/motif/xmcombo
|
||||
VP4 = @top_srcdir@/src/generic
|
||||
VP5 = @top_srcdir@/src/unix
|
||||
VP6 = @top_srcdir@/src/html
|
||||
VP7 = @top_srcdir@/src/png
|
||||
VP8 = @top_srcdir@/src/jpeg
|
||||
VP9 = @top_srcdir@/src/zlib
|
||||
|
||||
VPATH = $(VP1):$(VP2):$(VP3):$(VP4):$(VP5):$(VP6):$(VP7):$(VP8):$(VP9)
|
||||
|
||||
top_srcdir = @top_srcdir@
|
||||
prefix = @prefix@
|
||||
@@ -119,7 +245,10 @@ top_builddir = .
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
# my autoconf doesn't set this
|
||||
#INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
# maybe do an additional chmod if needed?
|
||||
INSTALL_SCRIPT = @INSTALL@
|
||||
transform = @program_transform_name@
|
||||
|
||||
NORMAL_INSTALL = :
|
||||
@@ -135,86 +264,135 @@ host_triplet = @host@
|
||||
target_alias = @target_alias@
|
||||
target_triplet = @target@
|
||||
|
||||
EXTRA_VPATH = @EXTRA_VPATH_MF@
|
||||
############################# Dirs #################################
|
||||
|
||||
VPATH = .:${srcdir}:${srcdir}/src/common:${srcdir}/src/generic:${srcdir}/src/html:${EXTRA_VPATH}
|
||||
|
||||
########################### Programs #################################
|
||||
|
||||
# C++ compiler
|
||||
CC = @CXX@
|
||||
CCPP = @CXXCPP@
|
||||
|
||||
# C compiler
|
||||
CCC = @CC@
|
||||
CCCPP = @CPP@
|
||||
|
||||
# Compiler for lex/yacc .c programs
|
||||
CCLEX = @CC@
|
||||
|
||||
LEX = @LEX@
|
||||
YACC = @YACC@
|
||||
AR = @AR@
|
||||
AS = @AS@
|
||||
NM = @NM@
|
||||
LN_S = @LN_S@
|
||||
STRIP = @STRIP@
|
||||
MAKE = make
|
||||
AROPTIONS = ruv
|
||||
RANLIB = @RANLIB@
|
||||
LD = @LD@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
|
||||
########################### Flags #################################
|
||||
|
||||
CFLAGS = @TOOLKIT_DEF@ @WXDEBUG_DEFINE@ @CFLAGS@
|
||||
CPPFLAGS = @TOOLKIT_DEF@ @WXDEBUG_DEFINE@ @CXXFLAGS@
|
||||
|
||||
########################### Rules #################################
|
||||
|
||||
# Clears all default suffixes
|
||||
.SUFFIXES: .o .cpp .c
|
||||
|
||||
.c.o :
|
||||
$(CCC) -c $(CFLAGS) -o $@ $<
|
||||
|
||||
.cpp.o :
|
||||
$(CC) -c $(CPPFLAGS) -o $@ $<
|
||||
|
||||
########################### Files #################################
|
||||
|
||||
WXDIR = $(srcdir)/../..
|
||||
WXDIR = $(top_srcdir)
|
||||
|
||||
# Subordinate library possibilities
|
||||
|
||||
GENDIR = $(WXDIR)/src/generic
|
||||
COMMDIR = $(WXDIR)/src/common
|
||||
HTMLDIR = $(WXDIR)/src/html
|
||||
UNIXDIR = $(WXDIR)/src/unix
|
||||
PNGDIR = $(WXDIR)/src/png
|
||||
JPEGDIR = $(WXDIR)/src/jpeg
|
||||
ZLIBDIR = $(WXDIR)/src/zlib
|
||||
GTKDIR = $(WXDIR)/src/gtk
|
||||
INCDIR = $(WXDIR)/include
|
||||
SRCDIR = $(WXDIR)/src
|
||||
GENDIR = $(WXDIR)/src/generic
|
||||
COMMDIR = $(WXDIR)/src/common
|
||||
HTMLDIR = $(WXDIR)/src/html
|
||||
UNIXDIR = $(WXDIR)/src/unix
|
||||
PNGDIR = $(WXDIR)/src/png
|
||||
JPEGDIR = $(WXDIR)/src/jpeg
|
||||
ZLIBDIR = $(WXDIR)/src/zlib
|
||||
GTKDIR = $(WXDIR)/src/gtk
|
||||
MOTIFDIR = $(WXDIR)/src/motif
|
||||
MSWDIR = $(WXDIR)/src/msw
|
||||
INCDIR = $(WXDIR)/include
|
||||
SAMPDIR = $(WXDIR)/samples
|
||||
UTILSDIR = $(WXDIR)/utils
|
||||
MISCDIR = $(WXDIR)/misc
|
||||
|
||||
DOCDIR = $(WXDIR)\docs
|
||||
DOCDIR = $(WXDIR)/docs
|
||||
|
||||
GENERICOBJS = \
|
||||
#$ ExpandList("WXGENERICOBJS");
|
||||
########################## Archive name ###############################
|
||||
|
||||
COMMONOBJS = \
|
||||
WXARCHIVE = wx$(TOOLKIT)-$(WX_MAJOR_VERSION_NUMBER).$(WX_MINOR_VERSION_NUMBER).$(WX_RELEASE_NUMBER)-b9.tgz
|
||||
DISTDIR = ./_dist_dir/wx$(TOOLKIT)
|
||||
|
||||
############################## Files ##################################
|
||||
|
||||
WX_HEADERS = \
|
||||
#$ ExpandList("WX_HEADERS");
|
||||
|
||||
GTK_HEADERS = \
|
||||
#$ ExpandList("WXGTK_HEADERS");
|
||||
|
||||
MOTIF_HEADERS = \
|
||||
#$ ExpandList("WXMOTIF_HEADERS");
|
||||
|
||||
MSW_HEADERS = \
|
||||
#$ ExpandList("WXMSW_HEADERS");
|
||||
|
||||
UNIX_HEADERS = \
|
||||
#$ ExpandList("WXUNIX_HEADERS");
|
||||
|
||||
GENERIC_HEADERS = \
|
||||
#$ ExpandList("WXGENERIC_HEADERS");
|
||||
|
||||
PROTOCOL_HEADERS = \
|
||||
#$ ExpandList("WXPROTOCOL_HEADERS");
|
||||
|
||||
HTML_HEADERS = \
|
||||
#$ ExpandList("WXHTML_HEADERS");
|
||||
|
||||
GTK_GENERICOBJS = \
|
||||
#$ ExpandList("WXGTK_GENERICOBJS");
|
||||
|
||||
GTK_GENERICDEPS = \
|
||||
#$ ExpandList("WXGTK_GENERICDEPS");
|
||||
|
||||
GTK_COMMONOBJS = \
|
||||
parser.o \
|
||||
#$ ExpandList("WXCOMMONOBJS");
|
||||
#$ ExpandList("WXGTK_COMMONOBJS");
|
||||
|
||||
GTK_COMMONDEPS = \
|
||||
parser.d \
|
||||
#$ ExpandList("WXGTK_COMMONDEPS");
|
||||
|
||||
GTK_GUIOBJS = \
|
||||
#$ ExpandList("WXGTK_GUIOBJS");
|
||||
|
||||
GTK_GUIDEPS = \
|
||||
#$ ExpandList("WXGTK_GUIDEPS");
|
||||
|
||||
MOTIF_GENERICOBJS = \
|
||||
#$ ExpandList("WXMOTIF_GENERICOBJS");
|
||||
|
||||
MOTIF_GENERICDEPS = \
|
||||
#$ ExpandList("WXMOTIF_GENERICDEPS");
|
||||
|
||||
MOTIF_COMMONOBJS = \
|
||||
parser.o \
|
||||
#$ ExpandList("WXMOTIF_COMMONOBJS");
|
||||
|
||||
MOTIF_COMMONDEPS = \
|
||||
parser.d \
|
||||
#$ ExpandList("WXMOTIF_COMMONDEPS");
|
||||
|
||||
MOTIF_GUIOBJS = \
|
||||
xmcombo.o \
|
||||
#$ ExpandList("WXMOTIF_GUIOBJS");
|
||||
|
||||
MOTIF_GUIDEPS = \
|
||||
xmcombo.d \
|
||||
#$ ExpandList("WXMOTIF_GUIDEPS");
|
||||
|
||||
MSW_GENERICOBJS = \
|
||||
#$ ExpandList("WXMSW_GENERICOBJS");
|
||||
|
||||
MSW_GENERICDEPS = \
|
||||
#$ ExpandList("WXMSW_GENERICDEPS");
|
||||
|
||||
MSW_COMMONOBJS = \
|
||||
parser.o \
|
||||
#$ ExpandList("WXMSW_COMMONOBJS");
|
||||
|
||||
MSW_COMMONDEPS = \
|
||||
parser.d \
|
||||
#$ ExpandList("WXMSW_COMMONDEPS");
|
||||
|
||||
MSW_GUIOBJS = \
|
||||
#$ ExpandList("WXMSW_GUIOBJS");
|
||||
|
||||
MSW_GUIDEPS = \
|
||||
#$ ExpandList("WXMSW_GUIDEPS");
|
||||
|
||||
HTMLOBJS = \
|
||||
#$ ExpandList("WXHTMLOBJS");
|
||||
#$ ExpandList("WXHTMLOBJS");
|
||||
|
||||
GTKOBJS = \
|
||||
#$ ExpandList("WXGTKOBJS");
|
||||
HTMLDEPS = \
|
||||
#$ ExpandList("WXHTMLDEPS");
|
||||
|
||||
UNIXOBJS = \
|
||||
UNIXOBJS = \
|
||||
#$ ExpandList("WXUNIXOBJS");
|
||||
|
||||
UNIXDEPS = \
|
||||
#$ ExpandList("WXUNIXDEPS");
|
||||
|
||||
ZLIBOBJS = \
|
||||
adler32.o \
|
||||
compress.o \
|
||||
@@ -297,19 +475,46 @@ JPEGOBJS = \
|
||||
jquant2.o \
|
||||
jdmerge.o
|
||||
|
||||
OBJECTS = $(GTKOBJS) $(COMMONOBJS) $(GENERICOBJS) $(HTMLOBJ) $(UNIXOBJS) \
|
||||
|
||||
OBJECTS = $(@GUIOBJS@) $(@COMMONOBJS@) $(@GENERICOBJS@) $(@UNIXOBJS@) $(HTMLOBJS) \
|
||||
$(JPEGOBJS) $(PNGOBJS) $(ZLIBOBJS)
|
||||
|
||||
all: $(OBJECTS) $(WXLIB)
|
||||
DEPFILES = $(@GUIDEPS@) $(@COMMONDEPS@) $(@GENERICDEPS@) $(UNIXDEPS) $(HTMLDEPS)
|
||||
|
||||
$(WXLIB): $(OBJECTS)
|
||||
$AR) $(AROPTIONS) $@ $(OBJECTS)
|
||||
$(RANLIB) $@
|
||||
HEADERS = $(@GUIHEADERS@) $(HTML_HEADERS) $(UNIX_HEADERS) $(PROTOCOL_HEADERS) \
|
||||
$(GENERIC_HEADERS) $(WX_HEADERS)
|
||||
|
||||
all: @WX_CREATE_LINKS@
|
||||
|
||||
@WX_LIBRARY_NAME_STATIC@: $(OBJECTS)
|
||||
@$(INSTALL) -d ./lib
|
||||
$(AR) $(AROPTIONS) ./lib/$@ $(OBJECTS)
|
||||
$(RANLIB) ./lib/$@
|
||||
|
||||
@WX_LIBRARY_NAME_SHARED@: $(OBJECTS)
|
||||
@$(INSTALL) -d ./lib
|
||||
$(SHARED_LD) ./lib/$@ $(OBJECTS) $(EXTRALIBS)
|
||||
|
||||
CREATE_LINKS: @WX_TARGET_LIBRARY@
|
||||
@$(RM) ./lib/@WX_LIBRARY_LINK1@
|
||||
@$(RM) ./lib/@WX_LIBRARY_LINK2@
|
||||
@$(RM) ./lib/@WX_LIBRARY_LINK3@
|
||||
$(LN_S) @WX_TARGET_LIBRARY@ ./lib/@WX_LIBRARY_LINK1@
|
||||
$(LN_S) @WX_TARGET_LIBRARY@ ./lib/@WX_LIBRARY_LINK2@
|
||||
$(LN_S) @WX_TARGET_LIBRARY@ ./lib/@WX_LIBRARY_LINK3@
|
||||
|
||||
CREATE_INSTALLED_LINKS: $(libdir)/@WX_TARGET_LIBRARY@
|
||||
$(RM) $(libdir)/@WX_LIBRARY_LINK1@
|
||||
$(RM) $(libdir)/@WX_LIBRARY_LINK2@
|
||||
$(RM) $(libdir)/@WX_LIBRARY_LINK3@
|
||||
$(LN_S) @WX_TARGET_LIBRARY@ $(libdir)/@WX_LIBRARY_LINK1@
|
||||
$(LN_S) @WX_TARGET_LIBRARY@ $(libdir)/@WX_LIBRARY_LINK2@
|
||||
$(LN_S) @WX_TARGET_LIBRARY@ $(libdir)/@WX_LIBRARY_LINK3@
|
||||
|
||||
$(OBJECTS): $(WXDIR)/include/wx/defs.h $(WXDIR)/include/wx/object.h $(WXDIR)/include/wx/setup.h
|
||||
|
||||
parser.o: parser.c lexer.c
|
||||
$(CCLEX) -c $(CFLAGS) -o $@ parser.c
|
||||
$(CCLEX) -c $(CFLAGS) $(PICFLAGS) -o $@ parser.c
|
||||
|
||||
parser.c: $(COMMDIR)/parser.y lexer.c
|
||||
$(YACC) $(COMMDIR)/parser.y
|
||||
@@ -329,15 +534,423 @@ lexer.c: $(COMMDIR)/lexer.l
|
||||
sed -e "s/unput/PROIO_unput/g" > lexer.c
|
||||
@$(RM) lex.yy.c
|
||||
|
||||
install: $(WXLIB)
|
||||
#$ ExpandList("WXINSTALLWX");
|
||||
-include $(DEPFILES)
|
||||
|
||||
preinstall: $(top_builddir)/lib/@WX_TARGET_LIBRARY@ $(top_builddir)/wx-config $(top_builddir)/setup.h
|
||||
@echo " "
|
||||
@echo " Installing wxWindows..."
|
||||
@echo " "
|
||||
|
||||
$(INSTALL) -d $(prefix)
|
||||
$(INSTALL) -d $(bindir)
|
||||
$(INSTALL) -d $(libdir)
|
||||
$(INSTALL) -d $(datadir)
|
||||
|
||||
$(INSTALL_SCRIPT) $(top_builddir)/wx-config $(bindir)/wx-config
|
||||
$(INSTALL_PROGRAM) $(top_builddir)/lib/@WX_TARGET_LIBRARY@ $(libdir)/@WX_TARGET_LIBRARY@
|
||||
|
||||
$(INSTALL) -d $(libdir)/wx
|
||||
$(INSTALL) -d $(libdir)/wx/include
|
||||
$(INSTALL) -d $(libdir)/wx/include/wx
|
||||
$(INSTALL) -d $(libdir)/wx/include/wx/@TOOLKIT_DIR@
|
||||
$(INSTALL_DATA) $(top_builddir)/setup.h $(libdir)/wx/include/wx/@TOOLKIT_DIR@/setup.h
|
||||
|
||||
$(INSTALL) -d $(datadir)/wx
|
||||
$(INSTALL) -d $(datadir)/wx/afm
|
||||
$(INSTALL) -d $(datadir)/wx/gs_afm
|
||||
$(INSTALL_DATA) $(top_srcdir)/misc/afm/*.afm $(datadir)/wx/afm
|
||||
$(INSTALL_DATA) $(top_srcdir)/misc/gs_afm/*.afm $(datadir)/wx/gs_afm
|
||||
|
||||
$(INSTALL) -d $(includedir)/wx
|
||||
$(INSTALL) -d $(includedir)/wx/msw
|
||||
$(INSTALL) -d $(includedir)/wx/gtk
|
||||
$(INSTALL) -d $(includedir)/wx/motif
|
||||
$(INSTALL) -d $(includedir)/wx/html
|
||||
$(INSTALL) -d $(includedir)/wx/protocol
|
||||
$(INSTALL) -d $(includedir)/wx/unix
|
||||
$(INSTALL) -d $(includedir)/wx/generic
|
||||
@list='$(HEADERS)'; for p in $$list; do \
|
||||
$(INSTALL_DATA) $(top_srcdir)/include/wx/$$p $(includedir)/wx/$$p; \
|
||||
echo "$(INSTALL_DATA) $(top_srcdir)/include/wx/$$p $(includedir)/wx/$$p"; \
|
||||
done
|
||||
|
||||
write_message:
|
||||
@echo " "
|
||||
@echo " The installation of wxWindows is finished. On certain"
|
||||
@echo " platforms (e.g. Linux, Solaris) you'll now have to run"
|
||||
@echo " ldconfig if you installed a shared library."
|
||||
@echo " "
|
||||
@echo " wxWindows comes with no guarantees and doesn't claim"
|
||||
@echo " to be suitable for any purpose."
|
||||
@echo " "
|
||||
@echo " Read the wxWindows Licence on licencing conditions."
|
||||
@echo " "
|
||||
|
||||
install: preinstall @WX_CREATE_INSTALLED_LINKS@ write_message
|
||||
|
||||
uninstall:
|
||||
@echo " "
|
||||
@echo " Uninstalling wxWindows..."
|
||||
@echo " "
|
||||
@echo " Removing library..."
|
||||
@$(RM) $(libdir)/@WX_TARGET_LIBRARY@
|
||||
@$(RM) $(libdir)/@WX_LIBRARY_LINK1@
|
||||
@$(RM) $(libdir)/@WX_LIBRARY_LINK2@
|
||||
@$(RM) $(libdir)/@WX_LIBRARY_LINK3@
|
||||
@echo " Removing helper files..."
|
||||
@$(RM) $(libdir)/wx/include/wx/@TOOLKIT_DIR@/setup.h
|
||||
@$(RM) $(bindir)/wx-config
|
||||
@$(RM) $(datadir)/wx/afm/*
|
||||
@$(RM) $(datadir)/wx/gs_afm/*
|
||||
@rmdir $(datadir)/wx/gs_afm
|
||||
@rmdir $(datadir)/wx/afm
|
||||
@rmdir $(datadir)/wx
|
||||
@echo " Removing headers..."
|
||||
@list='$(HEADERS)'; for p in $$list; do \
|
||||
$(RM) $(includedir)/wx/$$p; \
|
||||
done
|
||||
@echo " Removing directories..."
|
||||
@if test -d $(libdir)/wx/include/wx/@TOOLKIT_DIR@; then rmdir $(libdir)/wx/include/wx/@TOOLKIT_DIR@; fi
|
||||
@if test -d $(libdir)/wx/include/wx; then rmdir $(libdir)/wx/include/wx; fi
|
||||
@if test -d $(libdir)/wx/include; then rmdir $(libdir)/wx/include; fi
|
||||
@if test -d $(libdir)/wx; then rmdir $(libdir)/wx; fi
|
||||
@if test -d $(includedir)/wx/gtk; then rmdir $(includedir)/wx/gtk; fi
|
||||
@if test -d $(includedir)/wx/motif; then rmdir $(includedir)/wx/motif; fi
|
||||
@if test -d $(includedir)/wx/msw; then rmdir $(includedir)/wx/msw; fi
|
||||
@if test -d $(includedir)/wx/html; then rmdir $(includedir)/wx/html; fi
|
||||
@if test -d $(includedir)/wx/unix; then rmdir $(includedir)/wx/unix; fi
|
||||
@if test -d $(includedir)/wx/generic; then rmdir $(includedir)/wx/generic; fi
|
||||
@if test -d $(includedir)/wx/protocol; then rmdir $(includedir)/wx/protocol; fi
|
||||
@if test -d $(includedir)/wx; then rmdir $(includedir)/wx; fi
|
||||
|
||||
ALL_DIST:
|
||||
mkdir _dist_dir
|
||||
mkdir $(DISTDIR)
|
||||
cp $(WXDIR)/wx$(TOOLKIT).spec $(DISTDIR)
|
||||
cp $(WXDIR)/configure $(DISTDIR)
|
||||
cp $(WXDIR)/config.sub $(DISTDIR)
|
||||
cp $(WXDIR)/config.guess $(DISTDIR)
|
||||
cp $(WXDIR)/install-sh $(DISTDIR)
|
||||
cp $(WXDIR)/mkinstalldirs $(DISTDIR)
|
||||
cp $(WXDIR)/wx-config.in $(DISTDIR)
|
||||
cp $(WXDIR)/setup.h.in $(DISTDIR)
|
||||
cp $(WXDIR)/Makefile.in $(DISTDIR)
|
||||
cp $(DOCDIR)/lgpl.txt $(DISTDIR)/COPYING.LIB
|
||||
cp $(DOCDIR)/licence.txt $(DISTDIR)/LICENCE.txt
|
||||
cp $(DOCDIR)/symbols.txt $(DISTDIR)/SYMBOLS.txt
|
||||
cp $(DOCDIR)/$(TOOLKITDIR)/install.txt $(DISTDIR)/INSTALL.txt
|
||||
cp $(DOCDIR)/$(TOOLKITDIR)/changes.txt $(DISTDIR)/CHANGES.txt
|
||||
cp $(DOCDIR)/$(TOOLKITDIR)/readme.txt $(DISTDIR)/README.txt
|
||||
cp $(DOCDIR)/$(TOOLKITDIR)/todo.txt $(DISTDIR)/TODO.txt
|
||||
mkdir $(DISTDIR)/include
|
||||
mkdir $(DISTDIR)/include/wx
|
||||
mkdir $(DISTDIR)/include/wx/$(TOOLKITDIR)
|
||||
mkdir $(DISTDIR)/include/wx/generic
|
||||
mkdir $(DISTDIR)/include/wx/html
|
||||
mkdir $(DISTDIR)/include/wx/unix
|
||||
mkdir $(DISTDIR)/include/wx/protocol
|
||||
cp $(INCDIR)/wx/*.h $(DISTDIR)/include/wx
|
||||
cp $(INCDIR)/wx/*.cpp $(DISTDIR)/include/wx
|
||||
cp $(INCDIR)/wx/generic/*.h $(DISTDIR)/include/wx/generic
|
||||
cp $(INCDIR)/wx/generic/*.xpm $(DISTDIR)/include/wx/generic
|
||||
cp $(INCDIR)/wx/html/*.h $(DISTDIR)/include/wx/html
|
||||
cp $(INCDIR)/wx/unix/*.h $(DISTDIR)/include/wx/unix
|
||||
cp $(INCDIR)/wx/protocol/*.h $(DISTDIR)/include/wx/protocol
|
||||
mkdir $(DISTDIR)/src
|
||||
mkdir $(DISTDIR)/src/common
|
||||
mkdir $(DISTDIR)/src/generic
|
||||
mkdir $(DISTDIR)/src/html
|
||||
mkdir $(DISTDIR)/src/html/bitmaps
|
||||
mkdir $(DISTDIR)/src/$(TOOLKITDIR)
|
||||
mkdir $(DISTDIR)/src/unix
|
||||
mkdir $(DISTDIR)/src/png
|
||||
mkdir $(DISTDIR)/src/jpeg
|
||||
mkdir $(DISTDIR)/src/zlib
|
||||
cp $(SRCDIR)/*.in $(DISTDIR)/src
|
||||
cp $(COMMDIR)/*.cpp $(DISTDIR)/src/common
|
||||
cp $(COMMDIR)/*.c $(DISTDIR)/src/common
|
||||
cp $(COMMDIR)/*.inc $(DISTDIR)/src/common
|
||||
cp $(COMMDIR)/*.l $(DISTDIR)/src/common
|
||||
cp $(COMMDIR)/*.h $(DISTDIR)/src/common
|
||||
cp $(COMMDIR)/*.y $(DISTDIR)/src/common
|
||||
cp $(GENDIR)/*.cpp $(DISTDIR)/src/generic
|
||||
cp $(HTMLDIR)/*.cpp $(DISTDIR)/src/html
|
||||
cp $(HTMLDIR)/*.h $(DISTDIR)/src/html
|
||||
cp $(HTMLDIR)/bitmaps/*.xpm $(DISTDIR)/src/html/bitmaps
|
||||
cp $(UNIXDIR)/*.h $(DISTDIR)/src/unix
|
||||
cp $(UNIXDIR)/*.c $(DISTDIR)/src/unix
|
||||
cp $(UNIXDIR)/*.cpp $(DISTDIR)/src/unix
|
||||
cp $(PNGDIR)/*.h $(DISTDIR)/src/png
|
||||
cp $(PNGDIR)/*.c $(DISTDIR)/src/png
|
||||
cp $(PNGDIR)/README $(DISTDIR)/src/png
|
||||
cp $(ZLIBDIR)/*.h $(DISTDIR)/src/zlib
|
||||
cp $(ZLIBDIR)/*.c $(DISTDIR)/src/zlib
|
||||
cp $(ZLIBDIR)/README $(DISTDIR)/src/zlib
|
||||
cp $(JPEGDIR)/*.h $(DISTDIR)/src/jpeg
|
||||
cp $(JPEGDIR)/*.c $(DISTDIR)/src/jpeg
|
||||
cp $(JPEGDIR)/README $(DISTDIR)/src/jpeg
|
||||
|
||||
GTK_DIST:
|
||||
cp $(WXDIR)/wxGTK.spec $(DISTDIR)
|
||||
cp $(INCDIR)/wx/gtk/*.h $(DISTDIR)/include/wx/gtk
|
||||
cp $(INCDIR)/wx/gtk/*.xpm $(DISTDIR)/include/wx/gtk
|
||||
cp $(GTKDIR)/*.cpp $(DISTDIR)/src/gtk
|
||||
cp $(GTKDIR)/*.c $(DISTDIR)/src/gtk
|
||||
cp $(GTKDIR)/*.xbm $(DISTDIR)/src/gtk
|
||||
|
||||
MOTIF_DIST:
|
||||
cp $(WXDIR)/wxMOTIF.spec $(DISTDIR)
|
||||
cp $(INCDIR)/wx/motif/*.h $(DISTDIR)/include/wx/motif
|
||||
cp $(MOTIFDIR)/*.cpp $(DISTDIR)/src/motif
|
||||
cp $(MOTIFDIR)/*.xbm $(DISTDIR)/src/motif
|
||||
mkdir $(DISTDIR)/src/motif/xmcombo
|
||||
cp $(MOTIFDIR)/xmcombo/*.c $(DISTDIR)/src/motif/xmcombo
|
||||
cp $(MOTIFDIR)/xmcombo/*.h $(DISTDIR)/src/motif/xmcombo
|
||||
cp $(MOTIFDIR)/xmcombo/copying.txt $(DISTDIR)/src/motif/xmcombo
|
||||
|
||||
MSW_DIST:
|
||||
cp $(WXDIR)/wxWINE.spec $(DISTDIR)
|
||||
cp $(INCDIR)/wx/msw/*.h $(DISTDIR)/include/wx/msw
|
||||
cp $(INCDIR)/wx/msw/*.cur $(DISTDIR)/include/wx/msw
|
||||
cp $(INCDIR)/wx/msw/*.ico $(DISTDIR)/include/wx/msw
|
||||
cp $(INCDIR)/wx/msw/*.bmp $(DISTDIR)/include/wx/msw
|
||||
cp $(INCDIR)/wx/msw/*.rc $(DISTDIR)/include/wx/msw
|
||||
cp $(MSWDIR)/*.cpp $(DISTDIR)/src/msw
|
||||
cp $(MSWDIR)/*.c $(DISTDIR)/src/msw
|
||||
cp $(MSWDIR)/*.def $(DISTDIR)/src/msw
|
||||
mkdir $(DISTDIR)/src/msw/ole
|
||||
cp $(MSWDIR)/ole/*.cpp $(DISTDIR)/src/msw/ole
|
||||
|
||||
SAMPLES_DIST:
|
||||
mkdir $(DISTDIR)/samples
|
||||
cp $(SAMPDIR)/Makefile.in $(DISTDIR)/samples
|
||||
mkdir $(DISTDIR)/samples/bombs
|
||||
cp $(SAMPDIR)/bombs/Makefile.in $(DISTDIR)/samples/bombs
|
||||
cp $(SAMPDIR)/bombs/*.cpp $(DISTDIR)/samples/bombs
|
||||
cp $(SAMPDIR)/bombs/*.h $(DISTDIR)/samples/bombs
|
||||
cp $(SAMPDIR)/bombs/*.xpm $(DISTDIR)/samples/bombs
|
||||
cp $(SAMPDIR)/bombs/readme.txt $(DISTDIR)/samples/bombs
|
||||
mkdir $(DISTDIR)/samples/caret
|
||||
cp $(SAMPDIR)/caret/Makefile.in $(DISTDIR)/samples/caret
|
||||
cp $(SAMPDIR)/caret/*.cpp $(DISTDIR)/samples/caret
|
||||
cp $(SAMPDIR)/caret/*.xpm $(DISTDIR)/samples/caret
|
||||
mkdir $(DISTDIR)/samples/config
|
||||
cp $(SAMPDIR)/config/Makefile.in $(DISTDIR)/samples/config
|
||||
cp $(SAMPDIR)/config/*.cpp $(DISTDIR)/samples/config
|
||||
mkdir $(DISTDIR)/samples/controls
|
||||
mkdir $(DISTDIR)/samples/controls/icons
|
||||
cp $(SAMPDIR)/controls/Makefile.in $(DISTDIR)/samples/controls
|
||||
cp $(SAMPDIR)/controls/*.cpp $(DISTDIR)/samples/controls
|
||||
cp $(SAMPDIR)/controls/*.xpm $(DISTDIR)/samples/controls
|
||||
cp $(SAMPDIR)/controls/icons/*.??? $(DISTDIR)/samples/controls/icons
|
||||
mkdir $(DISTDIR)/samples/checklst
|
||||
cp $(SAMPDIR)/checklst/Makefile.in $(DISTDIR)/samples/checklst
|
||||
cp $(SAMPDIR)/checklst/*.cpp $(DISTDIR)/samples/checklst
|
||||
cp $(SAMPDIR)/checklst/*.xpm $(DISTDIR)/samples/checklst
|
||||
mkdir $(DISTDIR)/samples/printing
|
||||
cp $(SAMPDIR)/printing/Makefile.in $(DISTDIR)/samples/printing
|
||||
cp $(SAMPDIR)/printing/*.cpp $(DISTDIR)/samples/printing
|
||||
cp $(SAMPDIR)/printing/*.h $(DISTDIR)/samples/printing
|
||||
cp $(SAMPDIR)/printing/*.xpm $(DISTDIR)/samples/printing
|
||||
cp $(SAMPDIR)/printing/*.xbm $(DISTDIR)/samples/printing
|
||||
mkdir $(DISTDIR)/samples/dialogs
|
||||
cp $(SAMPDIR)/dialogs/Makefile.in $(DISTDIR)/samples/dialogs
|
||||
cp $(SAMPDIR)/dialogs/*.cpp $(DISTDIR)/samples/dialogs
|
||||
cp $(SAMPDIR)/dialogs/*.h $(DISTDIR)/samples/dialogs
|
||||
cp $(SAMPDIR)/dialogs/*.txt $(DISTDIR)/samples/dialogs
|
||||
mkdir $(DISTDIR)/samples/dnd
|
||||
cp $(SAMPDIR)/dnd/Makefile.in $(DISTDIR)/samples/dnd
|
||||
cp $(SAMPDIR)/dnd/*.cpp $(DISTDIR)/samples/dnd
|
||||
cp $(SAMPDIR)/dnd/*.xpm $(DISTDIR)/samples/dnd
|
||||
cp $(SAMPDIR)/dnd/*.txt $(DISTDIR)/samples/dnd
|
||||
cp $(SAMPDIR)/dnd/*.png $(DISTDIR)/samples/dnd
|
||||
mkdir $(DISTDIR)/samples/docview
|
||||
cp $(SAMPDIR)/docview/Makefile.in $(DISTDIR)/samples/docview
|
||||
cp $(SAMPDIR)/docview/*.cpp $(DISTDIR)/samples/docview
|
||||
cp $(SAMPDIR)/docview/*.h $(DISTDIR)/samples/docview
|
||||
cp $(SAMPDIR)/docview/*.xpm $(DISTDIR)/samples/docview
|
||||
mkdir $(DISTDIR)/samples/docvwmdi
|
||||
cp $(SAMPDIR)/docvwmdi/Makefile.in $(DISTDIR)/samples/docvwmdi
|
||||
cp $(SAMPDIR)/docvwmdi/*.cpp $(DISTDIR)/samples/docvwmdi
|
||||
cp $(SAMPDIR)/docvwmdi/*.h $(DISTDIR)/samples/docvwmdi
|
||||
mkdir $(DISTDIR)/samples/drawing
|
||||
cp $(SAMPDIR)/drawing/Makefile.in $(DISTDIR)/samples/drawing
|
||||
cp $(SAMPDIR)/drawing/*.cpp $(DISTDIR)/samples/drawing
|
||||
cp $(SAMPDIR)/drawing/*.xpm $(DISTDIR)/samples/drawing
|
||||
mkdir $(DISTDIR)/samples/dynamic
|
||||
cp $(SAMPDIR)/dynamic/Makefile.in $(DISTDIR)/samples/dynamic
|
||||
cp $(SAMPDIR)/dynamic/*.cpp $(DISTDIR)/samples/dynamic
|
||||
cp $(SAMPDIR)/dynamic/*.xpm $(DISTDIR)/samples/dynamic
|
||||
mkdir $(DISTDIR)/samples/html
|
||||
cp $(SAMPDIR)/html/Makefile.in $(DISTDIR)/samples/html
|
||||
mkdir $(DISTDIR)/samples/html/about
|
||||
cp $(SAMPDIR)/html/about/Makefile.in $(DISTDIR)/samples/html/about
|
||||
cp $(SAMPDIR)/html/about/*.cpp $(DISTDIR)/samples/html/about
|
||||
mkdir $(DISTDIR)/samples/html/about/data
|
||||
cp $(SAMPDIR)/html/about/data/*.htm $(DISTDIR)/samples/html/about/data
|
||||
cp $(SAMPDIR)/html/about/data/*.png $(DISTDIR)/samples/html/about/data
|
||||
mkdir $(DISTDIR)/samples/html/help
|
||||
cp $(SAMPDIR)/html/help/Makefile.in $(DISTDIR)/samples/html/help
|
||||
cp $(SAMPDIR)/html/help/*.cpp $(DISTDIR)/samples/html/help
|
||||
mkdir $(DISTDIR)/samples/html/help/helpfiles
|
||||
cp $(SAMPDIR)/html/help/helpfiles/*.??? $(DISTDIR)/samples/html/help/helpfiles
|
||||
mkdir $(DISTDIR)/samples/html/printing
|
||||
cp $(SAMPDIR)/html/printing/Makefile.in $(DISTDIR)/samples/html/printing
|
||||
cp $(SAMPDIR)/html/printing/*.xpm $(DISTDIR)/samples/html/printing
|
||||
cp $(SAMPDIR)/html/printing/*.cpp $(DISTDIR)/samples/html/printing
|
||||
cp $(SAMPDIR)/html/printing/*.h $(DISTDIR)/samples/html/printing
|
||||
cp $(SAMPDIR)/html/printing/*.png $(DISTDIR)/samples/html/printing
|
||||
cp $(SAMPDIR)/html/printing/*.htm $(DISTDIR)/samples/html/printing
|
||||
mkdir $(DISTDIR)/samples/html/test
|
||||
cp $(SAMPDIR)/html/test/Makefile.in $(DISTDIR)/samples/html/test
|
||||
cp $(SAMPDIR)/html/test/*.cpp $(DISTDIR)/samples/html/test
|
||||
cp $(SAMPDIR)/html/test/*.bmp $(DISTDIR)/samples/html/test
|
||||
cp $(SAMPDIR)/html/test/*.png $(DISTDIR)/samples/html/test
|
||||
cp $(SAMPDIR)/html/test/*.htm $(DISTDIR)/samples/html/test
|
||||
cp $(SAMPDIR)/html/test/*.html $(DISTDIR)/samples/html/test
|
||||
mkdir $(DISTDIR)/samples/html/virtual
|
||||
cp $(SAMPDIR)/html/virtual/Makefile.in $(DISTDIR)/samples/html/virtual
|
||||
cp $(SAMPDIR)/html/virtual/*.cpp $(DISTDIR)/samples/html/virtual
|
||||
cp $(SAMPDIR)/html/virtual/*.htm $(DISTDIR)/samples/html/virtual
|
||||
mkdir $(DISTDIR)/samples/html/widget
|
||||
cp $(SAMPDIR)/html/widget/Makefile.in $(DISTDIR)/samples/html/widget
|
||||
cp $(SAMPDIR)/html/widget/*.cpp $(DISTDIR)/samples/html/widget
|
||||
cp $(SAMPDIR)/html/widget/*.htm $(DISTDIR)/samples/html/widget
|
||||
mkdir $(DISTDIR)/samples/html/zip
|
||||
cp $(SAMPDIR)/html/zip/Makefile.in $(DISTDIR)/samples/html/zip
|
||||
cp $(SAMPDIR)/html/zip/*.cpp $(DISTDIR)/samples/html/zip
|
||||
cp $(SAMPDIR)/html/zip/*.htm $(DISTDIR)/samples/html/zip
|
||||
cp $(SAMPDIR)/html/zip/*.zip $(DISTDIR)/samples/html/zip
|
||||
mkdir $(DISTDIR)/samples/image
|
||||
cp $(SAMPDIR)/image/Makefile.in $(DISTDIR)/samples/image
|
||||
cp $(SAMPDIR)/image/*.cpp $(DISTDIR)/samples/image
|
||||
cp $(SAMPDIR)/image/horse.* $(DISTDIR)/samples/image
|
||||
mkdir $(DISTDIR)/samples/layout
|
||||
cp $(SAMPDIR)/layout/Makefile.in $(DISTDIR)/samples/layout
|
||||
cp $(SAMPDIR)/layout/*.cpp $(DISTDIR)/samples/layout
|
||||
cp $(SAMPDIR)/layout/*.h $(DISTDIR)/samples/layout
|
||||
mkdir $(DISTDIR)/samples/listctrl
|
||||
cp $(SAMPDIR)/listctrl/Makefile.in $(DISTDIR)/samples/listctrl
|
||||
cp $(SAMPDIR)/listctrl/*.cpp $(DISTDIR)/samples/listctrl
|
||||
cp $(SAMPDIR)/listctrl/*.h $(DISTDIR)/samples/listctrl
|
||||
cp $(SAMPDIR)/listctrl/*.xpm $(DISTDIR)/samples/listctrl
|
||||
mkdir $(DISTDIR)/samples/listctrl/bitmap
|
||||
cp $(SAMPDIR)/listctrl/*.xpm $(DISTDIR)/samples/listctrl/bitmaps
|
||||
mkdir $(DISTDIR)/samples/mdi
|
||||
cp $(SAMPDIR)/mdi/Makefile.in $(DISTDIR)/samples/mdi
|
||||
cp $(SAMPDIR)/mdi/*.cpp $(DISTDIR)/samples/mdi
|
||||
cp $(SAMPDIR)/mdi/*.h $(DISTDIR)/samples/mdi
|
||||
cp $(SAMPDIR)/mdi/*.xpm $(DISTDIR)/samples/mdi
|
||||
mkdir $(DISTDIR)/samples/minifram
|
||||
cp $(SAMPDIR)/minifram/Makefile.in $(DISTDIR)/samples/minifram
|
||||
cp $(SAMPDIR)/minifram/*.cpp $(DISTDIR)/samples/minifram
|
||||
cp $(SAMPDIR)/minifram/*.h $(DISTDIR)/samples/minifram
|
||||
cp $(SAMPDIR)/minifram/*.xpm $(DISTDIR)/samples/minifram
|
||||
mkdir $(DISTDIR)/samples/minifram/bitmap
|
||||
cp $(SAMPDIR)/minifram/*.xpm $(DISTDIR)/samples/minifram/bitmaps
|
||||
mkdir $(DISTDIR)/samples/minimal
|
||||
cp $(SAMPDIR)/minimal/Makefile.in $(DISTDIR)/samples/minimal
|
||||
cp $(SAMPDIR)/minimal/*.cpp $(DISTDIR)/samples/minimal
|
||||
cp $(SAMPDIR)/minimal/*.xpm $(DISTDIR)/samples/minimal
|
||||
mkdir $(DISTDIR)/samples/notebook
|
||||
cp $(SAMPDIR)/notebook/Makefile.in $(DISTDIR)/samples/notebook
|
||||
cp $(SAMPDIR)/notebook/*.cpp $(DISTDIR)/samples/notebook
|
||||
cp $(SAMPDIR)/notebook/*.h $(DISTDIR)/samples/notebook
|
||||
mkdir $(DISTDIR)/samples/proplist
|
||||
cp $(SAMPDIR)/proplist/Makefile.in $(DISTDIR)/samples/proplist
|
||||
cp $(SAMPDIR)/proplist/*.cpp $(DISTDIR)/samples/proplist
|
||||
cp $(SAMPDIR)/proplist/*.h $(DISTDIR)/samples/proplist
|
||||
mkdir $(DISTDIR)/samples/sashtest
|
||||
cp $(SAMPDIR)/sashtest/Makefile.in $(DISTDIR)/samples/sashtest
|
||||
cp $(SAMPDIR)/sashtest/*.cpp $(DISTDIR)/samples/sashtest
|
||||
cp $(SAMPDIR)/sashtest/*.h $(DISTDIR)/samples/sashtest
|
||||
mkdir $(DISTDIR)/samples/scroll
|
||||
cp $(SAMPDIR)/scroll/Makefile.in $(DISTDIR)/samples/scroll
|
||||
cp $(SAMPDIR)/scroll/*.cpp $(DISTDIR)/samples/scroll
|
||||
mkdir $(DISTDIR)/samples/splitter
|
||||
cp $(SAMPDIR)/splitter/Makefile.in $(DISTDIR)/samples/splitter
|
||||
cp $(SAMPDIR)/splitter/*.cpp $(DISTDIR)/samples/splitter
|
||||
mkdir $(DISTDIR)/samples/text
|
||||
cp $(SAMPDIR)/text/Makefile.in $(DISTDIR)/samples/text
|
||||
cp $(SAMPDIR)/text/*.cpp $(DISTDIR)/samples/text
|
||||
cp $(SAMPDIR)/text/*.xpm $(DISTDIR)/samples/text
|
||||
mkdir $(DISTDIR)/samples/thread
|
||||
cp $(SAMPDIR)/thread/Makefile.in $(DISTDIR)/samples/thread
|
||||
cp $(SAMPDIR)/thread/*.cpp $(DISTDIR)/samples/thread
|
||||
mkdir $(DISTDIR)/samples/toolbar
|
||||
cp $(SAMPDIR)/toolbar/Makefile.in $(DISTDIR)/samples/toolbar
|
||||
cp $(SAMPDIR)/toolbar/*.cpp $(DISTDIR)/samples/toolbar
|
||||
cp $(SAMPDIR)/toolbar/*.h $(DISTDIR)/samples/toolbar
|
||||
cp $(SAMPDIR)/toolbar/*.xpm $(DISTDIR)/samples/toolbar
|
||||
mkdir $(DISTDIR)/samples/toolbar/bitmap
|
||||
cp $(SAMPDIR)/toolbar/*.xpm $(DISTDIR)/samples/toolbar/bitmaps
|
||||
mkdir $(DISTDIR)/samples/treectrl
|
||||
cp $(SAMPDIR)/treectrl/Makefile.in $(DISTDIR)/samples/treectrl
|
||||
cp $(SAMPDIR)/treectrl/*.cpp $(DISTDIR)/samples/treectrl
|
||||
cp $(SAMPDIR)/treectrl/*.h $(DISTDIR)/samples/treectrl
|
||||
cp $(SAMPDIR)/treectrl/*.xpm $(DISTDIR)/samples/treectrl
|
||||
mkdir $(DISTDIR)/samples/typetest
|
||||
cp $(SAMPDIR)/typetest/Makefile.in $(DISTDIR)/samples/typetest
|
||||
cp $(SAMPDIR)/typetest/*.cpp $(DISTDIR)/samples/typetest
|
||||
cp $(SAMPDIR)/typetest/*.h $(DISTDIR)/samples/typetest
|
||||
cp $(SAMPDIR)/typetest/*.xpm $(DISTDIR)/samples/typetest
|
||||
mkdir $(DISTDIR)/samples/validate
|
||||
cp $(SAMPDIR)/validate/Makefile.in $(DISTDIR)/samples/validate
|
||||
cp $(SAMPDIR)/validate/*.cpp $(DISTDIR)/samples/validate
|
||||
cp $(SAMPDIR)/validate/*.h $(DISTDIR)/samples/validate
|
||||
cp $(SAMPDIR)/validate/*.xpm $(DISTDIR)/samples/validate
|
||||
mkdir $(DISTDIR)/samples/wizard
|
||||
cp $(SAMPDIR)/wizard/Makefile.in $(DISTDIR)/samples/wizard
|
||||
cp $(SAMPDIR)/wizard/*.cpp $(DISTDIR)/samples/wizard
|
||||
cp $(SAMPDIR)/wizard/*.xpm $(DISTDIR)/samples/wizard
|
||||
mkdir $(DISTDIR)/samples/wxpoem
|
||||
cp $(SAMPDIR)/wxpoem/Makefile.in $(DISTDIR)/samples/wxpoem
|
||||
cp $(SAMPDIR)/wxpoem/*.cpp $(DISTDIR)/samples/wxpoem
|
||||
cp $(SAMPDIR)/wxpoem/*.xpm $(DISTDIR)/samples/wxpoem
|
||||
cp $(SAMPDIR)/wxpoem/*.dat $(DISTDIR)/samples/wxpoem
|
||||
cp $(SAMPDIR)/wxpoem/*.txt $(DISTDIR)/samples/wxpoem
|
||||
mkdir $(DISTDIR)/samples/wxsocket
|
||||
cp $(SAMPDIR)/wxsocket/Makefile.in $(DISTDIR)/samples/wxsocket
|
||||
cp $(SAMPDIR)/wxsocket/*.cpp $(DISTDIR)/samples/wxsocket
|
||||
cp $(SAMPDIR)/wxsocket/*.xpm $(DISTDIR)/samples/wxsocket
|
||||
|
||||
UTILS_DIST:
|
||||
mkdir $(DISTDIR)/utils
|
||||
cp $(UTILSDIR)/Makefile.in $(DISTDIR)/utils
|
||||
mkdir $(DISTDIR)/utils/wxMMedia2
|
||||
cp $(UTILSDIR)/wxMMedia2/Makefile.in $(DISTDIR)/utils/wxMMedia2
|
||||
mkdir $(DISTDIR)/utils/wxMMedia2/lib
|
||||
cp $(UTILSDIR)/wxMMedia2/lib/Makefile.in $(DISTDIR)/utils/wxMMedia2/lib
|
||||
cp $(UTILSDIR)/wxMMedia2/lib/*.h $(DISTDIR)/utils/wxMMedia2/lib
|
||||
cp $(UTILSDIR)/wxMMedia2/lib/*.cpp $(DISTDIR)/utils/wxMMedia2/lib
|
||||
cp $(UTILSDIR)/wxMMedia2/lib/*.def $(DISTDIR)/utils/wxMMedia2/lib
|
||||
mkdir $(DISTDIR)/utils/wxMMedia2/sample
|
||||
cp $(UTILSDIR)/wxMMedia2/sample/Makefile.in $(DISTDIR)/utils/wxMMedia2/sample
|
||||
cp $(UTILSDIR)/wxMMedia2/sample/*.cpp $(DISTDIR)/utils/wxMMedia2/sample
|
||||
mkdir $(DISTDIR)/utils/glcanvas
|
||||
cp $(UTILSDIR)/glcanvas/Makefile.in $(DISTDIR)/utils/glcanvas
|
||||
cp $(UTILSDIR)/glcanvas/docs/notes.txt $(DISTDIR)/utils/glcanvas/NOTES.txt
|
||||
mkdir $(DISTDIR)/utils/glcanvas/$(TOOLKITDIR)
|
||||
cp $(UTILSDIR)/glcanvas/$(TOOLKITDIR)/Makefile.in $(DISTDIR)/utils/glcanvas/$(TOOLKITDIR)
|
||||
cp $(UTILSDIR)/glcanvas/$(TOOLKITDIR)/*.h $(DISTDIR)/utils/glcanvas/$(TOOLKITDIR)
|
||||
cp $(UTILSDIR)/glcanvas/$(TOOLKITDIR)/*.cpp $(DISTDIR)/utils/glcanvas/$(TOOLKITDIR)
|
||||
|
||||
MISC_DIST:
|
||||
mkdir $(DISTDIR)/misc
|
||||
mkdir $(DISTDIR)/misc/afm
|
||||
cp $(MISCDIR)/afm/*.afm $(DISTDIR)/misc/afm
|
||||
mkdir $(DISTDIR)/misc/gs_afm
|
||||
cp $(MISCDIR)/gs_afm/*.afm $(DISTDIR)/misc/gs_afm
|
||||
|
||||
dist: ALL_DIST @GUIDIST@ SAMPLES_DIST UTILS_DIST MISC_DIST
|
||||
cd _dist_dir; tar ch wx$(TOOLKIT) | gzip -f9 > $(WXARCHIVE); mv $(WXARCHIVE) ..
|
||||
$(RM) -r _dist_dir
|
||||
|
||||
clean:
|
||||
rm -f *.o
|
||||
rm -f *.lo
|
||||
rm -f parser.c
|
||||
rm -f lexer.c
|
||||
rm -f *.a
|
||||
rm -f *.la
|
||||
$(RM) *.o
|
||||
$(RM) *.d
|
||||
$(RM) parser.c
|
||||
$(RM) lexer.c
|
||||
$(RM) ./lib/*
|
||||
|
||||
cleanall: clean
|
||||
|
@@ -41,6 +41,14 @@
|
||||
$file =~ s/cp?p?$/obj/;
|
||||
$project{"WXMSWOBJS"} .= '$D\\' . $file . " ";
|
||||
}
|
||||
|
||||
foreach $file (sort keys %wxHTML) {
|
||||
next if $wxHTML{$file} =~ /\b16\b/;
|
||||
|
||||
$file =~ s/cp?p?$/obj/;
|
||||
$project{"WXHTMLOBJS"} .= "..\\html\\\$D\\" . $file . " "
|
||||
}
|
||||
|
||||
#$}
|
||||
# This file was automatically generated by tmake at #$ Now()
|
||||
# DO NOT CHANGE THIS FILE, YOUR CHANGES WILL BE LOST! CHANGE VC.T!
|
||||
@@ -112,6 +120,11 @@ $(CPPFLAGS2) /Fo$@ /c /Tc $<
|
||||
$(CPPFLAGS) /Fo$@ /c /Tp $<
|
||||
<<
|
||||
|
||||
{..\msw}.c{..\msw\$D}.obj:
|
||||
cl @<<
|
||||
$(CPPFLAGS2) /Fo$@ /c /Tc $<
|
||||
<<
|
||||
|
||||
{..\msw\ole}.cpp{..\msw\ole\$D}.obj:
|
||||
cl @<<
|
||||
$(CPPFLAGS) /Fo$@ /c /Tp $<
|
||||
@@ -134,28 +147,12 @@ COMMONOBJS = \
|
||||
|
||||
MSWOBJS = #$ ExpandList("WXMSWOBJS");
|
||||
|
||||
HTMLOBJS = \
|
||||
..\html\$D\htmlcell.obj \
|
||||
..\html\$D\htmlfilter.obj \
|
||||
..\html\$D\htmlhelp.obj \
|
||||
..\html\$D\htmlhelp_io.obj \
|
||||
..\html\$D\htmlparser.obj \
|
||||
..\html\$D\htmltag.obj \
|
||||
..\html\$D\htmlwin.obj \
|
||||
..\html\$D\htmlwinparser.obj \
|
||||
..\html\$D\mod_fonts.obj \
|
||||
..\html\$D\mod_hline.obj \
|
||||
..\html\$D\mod_image.obj \
|
||||
..\html\$D\mod_layout.obj \
|
||||
..\html\$D\mod_links.obj \
|
||||
..\html\$D\mod_list.obj \
|
||||
..\html\$D\mod_pre.obj \
|
||||
..\html\$D\mod_tables.obj \
|
||||
..\html\$D\search.obj
|
||||
HTMLOBJS = #$ ExpandList("WXHTMLOBJS");
|
||||
|
||||
|
||||
# Add $(NONESSENTIALOBJS) if wanting generic dialogs, PostScript etc.
|
||||
# Add $(HTMLOBJS) if wanting wxHTML classes
|
||||
OBJECTS = $(COMMONOBJS) $(GENERICOBJS) $(MSWOBJS)
|
||||
OBJECTS = $(COMMONOBJS) $(GENERICOBJS) $(MSWOBJS) $(HTMLOBJS)
|
||||
|
||||
# Normal, static library
|
||||
all: dirs $(DUMMYOBJ) $(OBJECTS) $(PERIPH_TARGET) png zlib xpm jpeg $(LIBTARGET)
|
||||
@@ -240,7 +237,7 @@ $(WXDIR)\lib\$(WXLIBNAME).lib: $(DUMMYOBJ) $(OBJECTS)
|
||||
<<
|
||||
|
||||
# Update the dynamic link library
|
||||
$(WXDIR)\lib\$(WXLIBNAME).dll: $(DUMMYOBJ) $(OBJECTS) $(WXDIR)\lib\$(WXLIBNAME).lib
|
||||
$(WXDIR)\lib\$(WXLIBNAME).dll: $(DUMMYOBJ) $(OBJECTS)
|
||||
$(link) @<<
|
||||
$(LINKFLAGS)
|
||||
-out:$(WXDIR)\lib\$(WXLIBNAME).dll
|
||||
@@ -361,10 +358,14 @@ clean: $(PERIPH_CLEAN_TARGET) clean_png clean_zlib clean_jpeg clean_xpm
|
||||
-erase $(OLEDIR)\$D\*.obj
|
||||
-erase $(OLEDIR)\$D\*.sbr
|
||||
-erase $(OLEDIR)\$D\*.pdb
|
||||
-erase $(HTMLDIR)\$D\*.obj
|
||||
-erase $(HTMLDIR)\$D\*.sbr
|
||||
-erase $(HTMLDIR)\$D\*.pdb
|
||||
-rmdir $(D)
|
||||
-rmdir ole\$(D)
|
||||
-rmdir ..\generic\$(D)
|
||||
-rmdir ..\common\$(D)
|
||||
-rmdir ..\html\$(D)
|
||||
|
||||
cleanall: clean
|
||||
|
||||
@@ -512,25 +513,29 @@ $(DOCDIR)/latex/techref/techref.rtf: $(DOCDIR)/latex/techref/techref.tex
|
||||
|
||||
$(DOCDIR)/pdf/wx.rtf: $(DOCDIR)/latex/wx/classes.tex $(DOCDIR)/latex/wx/body.tex $(DOCDIR)/latex/wx/topics.tex $(DOCDIR)/latex/wx/manual.tex
|
||||
cd $(DOCDIR)\latex\wx
|
||||
-copy *.bmp *.wmf $(DOCDIR)\pdf
|
||||
-copy *.wmf $(DOCDIR)\pdf
|
||||
-copy *.bmp $(DOCDIR)\pdf
|
||||
-start $(WAITFLAG) tex2rtf $(DOCDIR)/latex/wx/manual.tex $(DOCDIR)/pdf/wx.rtf -twice -rtf
|
||||
cd $(THISDIR)
|
||||
|
||||
$(DOCDIR)/pdf/porting.rtf: $(DOCDIR)/latex/porting/porting.tex
|
||||
cd $(DOCDIR)\latex\porting
|
||||
-copy *.bmp *.wmf $(DOCDIR)\pdf
|
||||
-copy *.wmf $(DOCDIR)\pdf
|
||||
-copy *.bmp $(DOCDIR)\pdf
|
||||
-start $(WAITFLAG) tex2rtf $(DOCDIR)/latex/porting/porting.tex $(DOCDIR)/pdf/porting.rtf -twice -rtf
|
||||
cd $(THISDIR)
|
||||
|
||||
$(DOCDIR)/pdf/prop.rtf: $(DOCDIR)/latex/proplist/prop.tex $(DOCDIR)/latex/proplist/body.tex $(DOCDIR)/latex/proplist/classes.tex $(DOCDIR)/latex/proplist/changes.tex
|
||||
cd $(DOCDIR)\latex\proplist
|
||||
-copy *.bmp *.wmf $(DOCDIR)\pdf
|
||||
-copy *.wmf $(DOCDIR)\pdf
|
||||
-copy *.bmp $(DOCDIR)\pdf
|
||||
-start $(WAITFLAG) tex2rtf $(DOCDIR)/latex/proplist/prop.tex $(DOCDIR)/pdf/prop.rtf -twice -rtf
|
||||
cd $(THISDIR)
|
||||
|
||||
$(DOCDIR)/pdf/techref.rtf: $(DOCDIR)/latex/techref/techref.tex
|
||||
cd $(DOCDIR)\latex\techref
|
||||
-copy *.bmp *.wmf $(DOCDIR)\pdf
|
||||
-copy *.wmf $(DOCDIR)\pdf
|
||||
-copy *.bmp $(DOCDIR)\pdf
|
||||
-start $(WAITFLAG) tex2rtf $(DOCDIR)/latex/techref/techref.tex $(DOCDIR)/pdf/techref.rtf -twice -rtf
|
||||
cd $(THISDIR)
|
||||
|
||||
|
@@ -30,6 +30,11 @@
|
||||
my $tag = $wxMSW{$file} =~ /\bO\b/ ? "WXOLESRCS" : "WXMSWSRCS";
|
||||
$project{$tag} .= $file . " "
|
||||
}
|
||||
|
||||
foreach $file (sort keys %wxHTML) {
|
||||
next if $wxHTML{$file} =~ /\b16\b/;
|
||||
$project{"WXHTMLSRCS"} .= $file . " "
|
||||
}
|
||||
#$}
|
||||
# Microsoft Developer Studio Project File - Name="wxWindows" - Package Owner=<4>
|
||||
# Microsoft Developer Studio Generated Build File, Format Version 6.00
|
||||
@@ -125,6 +130,7 @@ SOURCE=.\src\msw\dummy.cpp
|
||||
#$ ExpandGlue("WXGENERICSRCS", "# Begin Source File\n\nSOURCE=.\\src\\generic\\", "\n# End Source File\n# Begin Source File\n\nSOURCE=.\\src\\generic\\", "\n# End Source File\n");
|
||||
#$ ExpandGlue("WXCOMMONSRCS", "# Begin Source File\n\nSOURCE=.\\src\\common\\", "\n# End Source File\n# Begin Source File\n\nSOURCE=.\\src\\common\\", "\n# End Source File\n");
|
||||
#$ ExpandGlue("WXCSRCS", "# Begin Source File\n\nSOURCE=.\\src\\common\\", "\n# SUBTRACT CPP /YX /Yc /Yu\n# End Source File\n# Begin Source File\n\nSOURCE=.\\src\\common\\", "\n# SUBTRACT CPP /YX /Yc /Yu\n# End Source File\n");
|
||||
#$ ExpandGlue("WXHTMLSRCS", "# Begin Source File\n\nSOURCE=.\\src\\html\\", "\n# End Source File\n# Begin Source File\n\nSOURCE=.\\src\\html\\", "\n# End Source File\n");
|
||||
|
||||
# Begin Source File
|
||||
|
||||
|
@@ -3,25 +3,15 @@ user/Makefile
|
||||
user/wxConvert/*.cpp
|
||||
user/wxConvert/*.h
|
||||
user/wxConvert/Makefile
|
||||
user/wxConvert/Makefile.in
|
||||
|
||||
user/wxFile/*.cpp
|
||||
user/wxFile/*.h
|
||||
user/wxFile/Makefile
|
||||
user/wxFile/Makefile.in
|
||||
user/wxFile/*.xpm
|
||||
|
||||
user/wxTest/*.cpp
|
||||
user/wxTest/*.h
|
||||
user/wxTest/Makefile
|
||||
user/wxTest/Makefile.in
|
||||
user/wxTest/*.xpm
|
||||
user/wxTest/*.png
|
||||
|
||||
user/wxLayout/*.cpp
|
||||
user/wxLayout/*.h
|
||||
user/wxLayout/Makefile
|
||||
user/wxLayout/Makefile.in
|
||||
user/wxLayout/*.xpm
|
||||
user/wxLayout/*.png
|
||||
|
||||
|
@@ -20,10 +20,14 @@ cd %src
|
||||
echo Zipping...
|
||||
|
||||
zip32 -@ %dest\wx200gen.zip < %src\distrib\msw\generic.rsp
|
||||
zip32 -@ -u %dest\wx200gen.zip < %src\distrib\msw\makefile.rsp
|
||||
zip32 -@ %dest\wx200msw.zip < %src\distrib\msw\msw.rsp
|
||||
zip32 -@ -u %dest\wx200msw.zip < %src\distrib\msw\makefile.rsp
|
||||
zip32 -@ %dest\wx200gtk.zip < %src\distrib\msw\gtk.rsp
|
||||
zip32 -@ -u %dest\wx200gtk.zip < %src\distrib\msw\makefile.rsp
|
||||
zip32 -@ %dest\wx200stubs.zip < %src\distrib\msw\stubs.rsp
|
||||
zip32 -@ %dest\wx200mot.zip < %src\distrib\msw\motif.rsp
|
||||
zip32 -@ -u %dest\wx200mot.zip < %src\distrib\msw\makefile.rsp
|
||||
zip32 -@ %dest\wx200user.zip < %src\distrib\msw\user.rsp
|
||||
|
||||
zip32 -@ %dest\wx200doc.zip < %src\distrib\msw\docsrc.rsp
|
||||
|
@@ -17,6 +17,8 @@ General:
|
||||
|
||||
- Fixed day_of_week bug (Peter Stadel).
|
||||
- Added Inside(), SetLeft/Right/Top/Bottom, +, += to wxRect.
|
||||
- Added wxHTML, an HTML library and widget.
|
||||
- Added ZIP input stream.
|
||||
|
||||
2.1.0, b4, May 9th 1999
|
||||
-----------------------
|
||||
|
@@ -1,4 +1,69 @@
|
||||
|
||||
28th August '99: Ninth wxGTK 2.1 snapshot released
|
||||
|
||||
As the old makefile system didn't work, I trashed it and wrote
|
||||
a new one - mo more GNU. This, of course, caused a lot of people
|
||||
to start sing their song of complaints - any change is a good
|
||||
opportunity to complain, but the effect of the change is that
|
||||
we now have shared library support on Linux and Solaris (and
|
||||
probably others as well) and that the Linux shared library no
|
||||
longer depends on libstdc++, so that we can finally create an
|
||||
RPM that works on different Linux distributions. Also, the
|
||||
Unix make system is now much simpler and directly mirrors its
|
||||
Windows counterparts, making it easier to understand and maintain.
|
||||
As it is independent of the various GNU tools, the requirements
|
||||
for using CVS versions are also much less (any make, any compiler,
|
||||
no other tools).
|
||||
|
||||
Split RPMs into two, one for run-time requirements and one
|
||||
for developement (mostly headers).
|
||||
|
||||
Addition of new layout classes that work like Java's, GTK's
|
||||
or Qt`s - basically, you pack item in a box and let it tell
|
||||
you how much space it needs. These class are called wxSizer
|
||||
and I consider them a great addition as they make true cross-
|
||||
platform dialogs a child's play and are very quick to write
|
||||
and easy to read. Do consider using them.
|
||||
|
||||
Rewritten all dialogs to make use of the new sizers. Also
|
||||
added a new wxFileDialog like Win95 and replaced the generic
|
||||
wxFontDialog with GTK's native font selection dialog - this
|
||||
probably isn't perfect though.
|
||||
|
||||
A few more fixes to wxListCtrl and wxTreeCtrl, implemented
|
||||
more options and modes like the wxMSW version.
|
||||
|
||||
New handler for PNM files. Added CanRead() function to image
|
||||
handlers, updates to GIF handler for preparing the new wxAnimation
|
||||
class. We'll also get a PCX and hopefully a TIFF handler so
|
||||
that we support all common general-purpose file formats I know
|
||||
about. PhotoShop and PhotoPaint images are not general purpose.
|
||||
I also tried to correct a wxImage bug in connection with big-endian
|
||||
vs. little-endian problems, but I have no Sparc to actually test
|
||||
this.
|
||||
|
||||
Inclusion of wxMultiMedia. Can play most sound formats on GTK
|
||||
and MSW and (using xanim on Unix and Win95's MM functions)
|
||||
display a video in a wxWindow. This will probably be moved to
|
||||
the core library.
|
||||
|
||||
Small updates to socket code. The MSW version is still missing.
|
||||
|
||||
Implemented wxBitmapDataObject class.
|
||||
|
||||
Added wxFFileStream using FILE* instead if file desrcriptor.
|
||||
Useful for creating a "cerr" like class as in normal C++.
|
||||
Also added "endl" for use with wxTextStream and fixed a few
|
||||
minor problems with buffered streams etc.
|
||||
|
||||
Corrected Tabbing code in wxPanel and made it work with wxNotebook.
|
||||
|
||||
Small cursor fixes in connection with text control.
|
||||
|
||||
Added experimental wxWizard class. Work in progress.
|
||||
|
||||
A few more minor fixes.
|
||||
|
||||
6th August '99: Eight wxGTK 2.1 snapshot released
|
||||
|
||||
The new makefile system is not able to produce shared libraries
|
||||
|
@@ -16,23 +16,6 @@ install instructions just do (in the base dir):
|
||||
> ldconfig
|
||||
> exit
|
||||
|
||||
On all variants of Unix except Linux (and maybe except *BSD), shared libraries
|
||||
are not supportet out of the box due to the utter stupidity of libtool, so you'll
|
||||
have to do this to get shared library support:
|
||||
|
||||
> ./configure --with-gtk --disable-static --enable-shared
|
||||
|
||||
Then you'll have to edit the wrongly created libtool script. There are two
|
||||
important entries with respect to shared library creation, which are
|
||||
|
||||
archive_cmds="\$LD -shared ....
|
||||
archive_expsym_cmds="\$LD -shared ....
|
||||
|
||||
which should be something like
|
||||
|
||||
archive_cmds="\$CC -shared ....
|
||||
archive_expsym_cmds="\$CC -shared ....
|
||||
|
||||
Afterwards you can continue with
|
||||
|
||||
> make
|
||||
@@ -284,6 +267,13 @@ The following options handle the kind of library you want to build.
|
||||
binary size. Also fewer crashes during the
|
||||
actual compilation...
|
||||
|
||||
--enable-no_deps Enable compilation without creation of
|
||||
dependency information.
|
||||
|
||||
--enable-permissive Enable compilation without creation of
|
||||
giving erros as soon as you compile with
|
||||
Solaris ANSI-defying headers...
|
||||
|
||||
--enable-mem_tracing Add built-in memory tracing.
|
||||
|
||||
--enable-dmalloc Use the dmalloc memory debugger.
|
||||
|
@@ -1,18 +1,15 @@
|
||||
|
||||
Welcome to wxWindows/Gtk 2.1 snapshot 8,
|
||||
Welcome to wxWindows/Gtk 2.1 snapshot 9,
|
||||
|
||||
you have downloaded version 2.1 of the GTK+ 1.2 port of
|
||||
the wxWindows GUI library. This is a developers release
|
||||
and is it not suited for production development. Beware
|
||||
that major changes can happen before a final release.
|
||||
|
||||
Beginning with snapshot 6, wxWindows uses a completely
|
||||
new make file system on Unix that uses GNU automake,
|
||||
GNU autoconf and GNU autoheader. You do not need these
|
||||
programs in order to use the library, but for taking
|
||||
part in its development, they are required. Read the
|
||||
INSTALL.txt file for learning what you can do with the
|
||||
new configure/automake/libtool system.
|
||||
Beginning with snapshot 9, wxWindows uses a completely
|
||||
new make file system on Unix which no longer uses the
|
||||
various GNU tools and I hope that I'll never again have
|
||||
to write any more makefiles.
|
||||
|
||||
More information is available from my homepage at:
|
||||
|
||||
|
@@ -3,27 +3,23 @@
|
||||
|
||||
Finalise DnD API.
|
||||
|
||||
Fix bug that thread sample reports about non-finished threads.
|
||||
|
||||
Added wxExpandedImageList to wxTreeControl.
|
||||
|
||||
More testing of Unicode support.
|
||||
|
||||
New wxSizer class implementation.
|
||||
|
||||
Make wxSockets work on all platform.
|
||||
|
||||
Do something about reentry problems with GUI threads
|
||||
when doing asynchronous work (clipboard transfer,
|
||||
DnD, sockets, different threads).
|
||||
|
||||
Add ID based i18n system as a replacement for the
|
||||
unelegant gettext system.
|
||||
|
||||
Add controls to toolbar.
|
||||
Add controls to wxToolbar.
|
||||
|
||||
Add TIFF handler. Someone? (Hint, hint).
|
||||
|
||||
Improve, update translations. Install *.mo files somewehere.
|
||||
|
||||
Completely remove internal usage of C++ iostreams.
|
||||
|
||||
Sleep, eat, walk, study, shave, read, play piano and wash less.
|
||||
|
||||
-------------------- Medium priority ---------------------
|
||||
|
@@ -192,6 +192,9 @@ We are using the <a href="cvs.htm">CVS</a> system to develop and maintain wxWind
|
||||
us to make alterations and upload them instantly to the server in Edinburgh, from
|
||||
which others can update their source.<P>
|
||||
|
||||
To build source from CVS, see the file BuildCVS.txt in the top-level wxWindows distribution
|
||||
directory.<P>
|
||||
|
||||
<H3>How is wxWindows 2 distributed?</H3>
|
||||
|
||||
By ftp, and via the <a href="cdrom2.htm">wxWindows CD-ROM</a>.<P>
|
||||
@@ -203,8 +206,8 @@ finished?) to think very far ahead. However, we know we want to make wxWindows a
|
||||
and well-publicised as possible. We also want to aim for better platform-independence of
|
||||
resources such as icons and bitmaps, standardising on the PNG for all platforms.<P>
|
||||
|
||||
Other possibilities include: DCOM/CORBA compatibility; a wxWindows book; an
|
||||
<a href="http://web.ukonline.co.uk/julian.smart/wxwin/wxide.htm">IDE</a>;
|
||||
Other possibilities include: DCOM/CORBA compatibility; a wxWindows book;
|
||||
<a href="http://wxstudio.linuxbox.com/">wxStudio</a>, an IDE;
|
||||
other platforms; other interface abilities such as speech output.<P>
|
||||
|
||||
We will investigate the possibility of compiler or operating system vendors bundling wxWindows with
|
||||
|
@@ -166,6 +166,79 @@ optimized. For example, in wxWindows project, set to 'Minimum
|
||||
Size'. In Dialog Editor project, set to 'Customize: Favor Small
|
||||
Code' (and no others). This will then work.<P>
|
||||
|
||||
<H3>How are the wxWindows makefiles edited under Windows?</H3>
|
||||
|
||||
As of wxWindows 2.1, there is a new system written by Vadim Zeitlin, that
|
||||
generates the makefiles from templates using tmake.<P>
|
||||
|
||||
Here are Vadim's notes:<P>
|
||||
|
||||
<blockquote>
|
||||
To use these new makefiles, you don't need anything (but see below).
|
||||
However, you should NOT modify them because these files will be
|
||||
rewritten when I regenerate them using tmake the next time. So, if
|
||||
you find a problem with any of these makefiles (say, makefile.b32)
|
||||
you'll need to modify the corresponding template (b32.t in this
|
||||
example) and regenerate the makefile using tmake.<P>
|
||||
|
||||
tmake can be found at
|
||||
<a href="http://www.troll.no/freebies/tmake.html" target=_new>www.troll.no/freebies/tmake.html</a>.
|
||||
It's a Perl5 program and so it needs Perl (doh). There is a binary for
|
||||
Windows (available from the same page), but I haven't used it, so
|
||||
I don't know if it works as flawlessly as "perl tmake" does (note
|
||||
for people knowing Perl: don't try to run tmake with -w, it won't
|
||||
do you any good). Using it extremely simple: to regenerate makefile.b32
|
||||
just go to distrib/msw/tmake and type<P>
|
||||
|
||||
<pre>tmake -t b32 wxwin.pro -o ../../src/msw/makefile.b32</pre><P>
|
||||
|
||||
The makefiles are untested - I don't have any of Borland, Watcom or
|
||||
Symantec and I don't have enough diskspace to recompile even with
|
||||
VC6 using makefiles. The new makefiles are as close as possible to the
|
||||
old ones, but not closer: in fact, there has been many strange things
|
||||
(should I say bugs?) in some of makefiles, some files were not compiled
|
||||
without any reason etc. Please test them and notify me about any problems.
|
||||
Better yet, modify the template files to generate the correct makefiles
|
||||
and check them in.<P>
|
||||
|
||||
The templates are described in tmake ref manual (1-2 pages of text)
|
||||
and are quite simple. They do contain some Perl code, but my Perl is
|
||||
primitive (very C like) so it should be possible for anybody to make
|
||||
trivial modifications to it (I hope that only trivial modifications
|
||||
will be needed). I've tagged the ol makefiles as MAKEFILES_WITHOUT_TMAKE
|
||||
in the cvs, so you can always retrieve them and compare the new ones,
|
||||
this will make it easier to solve the problems you might have.<P>
|
||||
|
||||
Another important file is filelist.txt: it contains the list of all
|
||||
files to be compiled. Some of them are only compiled in 16/32 bit mode.
|
||||
Some other are only compiled with some compilers (others can't compile
|
||||
them) - all this info is contained in this file.<P>
|
||||
|
||||
So now adding a new file to wxWindows is as easy as modifying filelist.txt
|
||||
(and Makefile.ams for Unix ports) and regenerating the makefiles - no
|
||||
need to modify all files manually any more.<P>
|
||||
|
||||
Finally, there is also a file vc6.t which I use myself: this one
|
||||
generates a project file for VC++ 6.0 (I didn't create vc5.t because
|
||||
I don't need it and can't test it, but it should be trivial to create
|
||||
one from vc6.t - probably the only things to change would be the
|
||||
version number in the very beginning and the /Z option - VC5 doesn't
|
||||
support edit-and=continue). This is not an officially supported way
|
||||
of building wxWindows (that is, nobody guarantees that it will work),
|
||||
but it has been very useful to me and I hope it will be also for
|
||||
others. To generate wxWindows.dsp run<P>
|
||||
|
||||
<pre>tmake -t vc6 wxwin.pro -o ../../wxWindows.dsp</pre><P>
|
||||
|
||||
Then just include this project in any workspace or open it from VC IDE
|
||||
and it will create a new workspace for you.<P>
|
||||
|
||||
If all goes well, I'm planning to create a template file for Makefile.ams
|
||||
under src/gtk and src/motif and also replace all makefiles in the samples
|
||||
subdirectories with the project files from which all the others will be
|
||||
generated. At least it will divide the number of files in samples
|
||||
directory by 10 (and the number of files to be maintained too).
|
||||
</blockquote>
|
||||
|
||||
</font>
|
||||
|
||||
|
@@ -260,6 +260,7 @@ programming.
|
||||
<li><a href="../../samples/typetest">typetest</a>: tests various data type classes, including
|
||||
wxTime, wxDate and wxVariant.
|
||||
<li><a href="../../samples/validate">validate</a>: shows simple use of validation.
|
||||
<li><a href="../../samples/wizard">wizard</a>: demonstrates the wxWizard class.
|
||||
<li><a href="../../samples/wxpoem">wxpoem</a>: a little poetry display program.
|
||||
<li><a href="../../samples/wxsocket">wxsocket</a>: demonstrates the TCP/IP family of classes.
|
||||
</ul>
|
||||
|
213
docs/html/roadmap.htm
Normal file
213
docs/html/roadmap.htm
Normal file
@@ -0,0 +1,213 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>wxWindows Roadmap</TITLE>
|
||||
</HEAD>
|
||||
|
||||
<BODY>
|
||||
|
||||
<a name="top"></a>
|
||||
|
||||
<font face="Arial, Lucida Sans, Helvetica">
|
||||
|
||||
<table width=100% border=4 cellpadding=5 cellspacing=0>
|
||||
<tr>
|
||||
<td bgcolor="#660000">
|
||||
<font size=+1 face="Arial, Lucida Sans, Helvetica" color="#FFFFFF">
|
||||
wxWindows Roadmap
|
||||
</font>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<P>
|
||||
|
||||
<CENTER>
|
||||
<a href="#schedule">Schedule</a> | <a href="#todo">To-Do List</a>
|
||||
</CENTER>
|
||||
|
||||
<P>
|
||||
|
||||
This page represents current thinking about where wxWindows is going in the near,
|
||||
medium and long-term. It also serves as a schedule for new releases so
|
||||
that both developers and users can know what to expect when, at least approximately.<P>
|
||||
|
||||
Note (1): as the wxWindows effort is voluntary, these are not hard-and-fast deadlines:
|
||||
but we will endeavour to follow them as closely as possible.<P>
|
||||
|
||||
Note (2): the releases described are for wxGTK, wxMSW and wxMotif ports. wxMac currently follows
|
||||
its own development path but is due to merge with the main code base in November/December.
|
||||
Also, minor snapshot releases for specific platforms may be
|
||||
available at dates convenient to the developers.<P>
|
||||
|
||||
<CENTER>
|
||||
<HR> <FONT SIZE=+2><I><B><a name="schedule">Schedule</a></B></I></FONT> <HR>
|
||||
</CENTER>
|
||||
<P>
|
||||
|
||||
<H4>Release 2.0.?</H4>
|
||||
|
||||
<ul>
|
||||
<li>Release date: October 3rd, 1999
|
||||
<li>This beta is intended to be the last stable snapshot before wxWindows
|
||||
is split into base and GUI libraries.
|
||||
<li>New wxGrid in beta.
|
||||
<li>wxWizard (beta)
|
||||
<li>wxDialUpManager and wxPhoneDialer (beta)
|
||||
<li>wxFontEnumerator (beta)
|
||||
<li>Preliminary support for different encodings
|
||||
<li>wxPostEvent function
|
||||
</ul>
|
||||
|
||||
<P>
|
||||
|
||||
<H2>Release 2.1</H2>
|
||||
|
||||
<ul>
|
||||
<li>Release date: November 7th, 1999
|
||||
<li>Splits wxWindows into base and GUI libraries. Most, but not all makefiles
|
||||
are expected to support this: for the rest, the makefiles will build a valid
|
||||
combined base/GUI library for GUI applications only.
|
||||
<li>New wxGrid.
|
||||
<li>wxSocket working.
|
||||
<li>Full support for fonts in different encodings
|
||||
<li>Tested multithreading support (wxThread)
|
||||
<li>wxHTML printing (possibly).
|
||||
<li>Better i18n support (i.e. more translations)
|
||||
<li>Animation classes (possibly, low priority).
|
||||
<li>PCX writing capability (possibly, low priority).
|
||||
<li>wxImage handlers in separate .h and .cpp files.
|
||||
<li>Rewritten timer.cpp, possible wxChrono class.
|
||||
<li>Bug tracking system in place.
|
||||
</ul>
|
||||
|
||||
<P>
|
||||
|
||||
<H4>Release 2.1.1</H4>
|
||||
|
||||
<ul>
|
||||
<li>Release date: January 9th, 2000
|
||||
<li>Miscellaneous fixes and small enhancements.
|
||||
</ul>
|
||||
|
||||
<P>
|
||||
|
||||
<H4>Release 2.1.2</H4>
|
||||
|
||||
<ul>
|
||||
<li>Release date: March 5th, 2000
|
||||
<li>Miscellaneous fixes and small enhancements.
|
||||
<li>wxDateTime class in beta.
|
||||
</ul>
|
||||
|
||||
<P>
|
||||
|
||||
<H4>Release 2.1.3</H4>
|
||||
|
||||
<ul>
|
||||
<li>Release date: May 7th, 2000
|
||||
<li>Unicode compilation starting to work in wxGTK and wxMSW.
|
||||
</ul>
|
||||
|
||||
<P>
|
||||
|
||||
<H2>Release 2.2</H2>
|
||||
|
||||
<ul>
|
||||
<li>Release date: c. July 2nd, 2000
|
||||
<li>Unicode compilation working in wxGTK and wxMSW.
|
||||
<li>wxDateTime class.
|
||||
<li>Regular expressions support.
|
||||
</ul>
|
||||
|
||||
<P>
|
||||
|
||||
<H2>Release 2.3</H2>
|
||||
|
||||
<ul>
|
||||
<li>Release date: unknown
|
||||
<li>WinCE port available.
|
||||
</ul>
|
||||
|
||||
<P>
|
||||
|
||||
<CENTER>
|
||||
<HR> <FONT SIZE=+2><I><B><a name="todo">To-Do List</a></B></I></FONT> <HR>
|
||||
</CENTER>
|
||||
|
||||
<P>
|
||||
|
||||
Developers: please feel free to add to these, and delete them when they are done.
|
||||
|
||||
<P>
|
||||
|
||||
<B><I>General</I></B><P>
|
||||
|
||||
<ul>
|
||||
<li>wxHTML printing. When finished, this will allow an application to generate
|
||||
printed reports with very little effort.
|
||||
<li>wxSocket.
|
||||
<li>Split library into several, for base (classes and functions usable by console and GUI
|
||||
applications), console (classes and functions usable by console application only)
|
||||
and GUI (classes and functions usable by GUI application only).
|
||||
<li>Extend and unify drag and drop handling (e.g. we need to specify multiple drop targets
|
||||
that can handle multiple formats).
|
||||
<li>Expand the number of controls that can be specified in a WXR file;
|
||||
add constraint specification to WXR syntax and Dialog Editor; add multilanguage support to WXR.
|
||||
May be we'd better change the format completely and replace WXR with XML
|
||||
(providing conversion utility for old files)?
|
||||
<li>Rewrite Dialog Editor.
|
||||
<li>Modem-oriented classes: wxDialUpManager for dialing up the ISP and
|
||||
determining if there is a connection to Internet on the machine and
|
||||
wxPhoneDialer for dialing arbitrary phone numbers and otherwise communicating
|
||||
with the modem.
|
||||
<li>PCX writing code.
|
||||
<li>GIF animation code.
|
||||
<li>Tidying of timer code, addition of wxChrono class.
|
||||
<li>Debug wxPostScriptDC further.
|
||||
<li>wxDateTime class.
|
||||
<li>Expansion of wxHTML to support further tags, and frames.
|
||||
<li>MGL port (see Backroom/Future Ports page).
|
||||
<li>Rotated text support.
|
||||
<li>FreeType support.
|
||||
<li>Support for 'skins', perhaps using a set of alternative control and window classes
|
||||
written generically in wxWindows.
|
||||
<li>Serial and parallel port support.
|
||||
<li>Modem and telephony support.
|
||||
<li>Book, tutorial.
|
||||
<li>More examples.
|
||||
</ul>
|
||||
|
||||
<P>
|
||||
|
||||
<B><I>wxMSW</I></B><P>
|
||||
|
||||
<ul>
|
||||
<li>Windows CE port.
|
||||
<li>Cure bug whereby in a panel within another panel, all buttons become
|
||||
default buttons (heavy black border).
|
||||
<li>Write a RC->WXR converter.
|
||||
</ul>
|
||||
|
||||
<P>
|
||||
|
||||
<B><I>wxGTK</I></B><P>
|
||||
|
||||
<ul>
|
||||
<li>GNOME/KDE integration libraries.
|
||||
</ul>
|
||||
|
||||
<P>
|
||||
|
||||
<B><I>wxMotif</I></B><P>
|
||||
|
||||
<ul>
|
||||
<li>Fix menu accelerators
|
||||
<li>Fix refresh problems
|
||||
<li>Allow wxSystemSettings to be configurable, perhaps via a control
|
||||
panel application.
|
||||
</ul>
|
||||
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
|
@@ -34,7 +34,7 @@ variety of platforms. The second part details the wxWindows code organization an
|
||||
its goal it to make wxWindows as uniform as possible without imposing too
|
||||
many restrictions on the programmer.
|
||||
<P>
|
||||
Acknowledgements: This guide is partly based on <A
|
||||
Acknowledgements: This guide is partly based on <A
|
||||
HREF=http://www.mozilla.org/docs/tplist/catBuild/portable-cpp.html target=_top>
|
||||
C++ portability guide</A> by David Williams.
|
||||
|
||||
@@ -50,6 +50,7 @@ C++ portability guide</A> by David Williams.
|
||||
<LI><A HREF="#no_stl">Don't use STL</A></LI>
|
||||
<LI><A HREF="#no_fordecl">Don't declare variables inside <TT>for()</TT></A></LI>
|
||||
<LI><A HREF="#no_nestedclasses">Don't use nested classes</A></LI>
|
||||
<LI><A HREF="#no_ternarywithobjects">Use ternary operator ?: carefully</A></LI>
|
||||
</OL>
|
||||
<BR>
|
||||
<LI>General recommendations</LI>
|
||||
@@ -100,14 +101,15 @@ C++ portability guide</A> by David Williams.
|
||||
<LI><A HREF="#indentation">Indent your code with 4 spaces (no tabs!)</A></LI>
|
||||
<LI><A HREF="#class_decl">Order of parts in a class declarations</A></LI>
|
||||
</OL>
|
||||
|
||||
|
||||
<BR>
|
||||
<LI>More about naming conventions</LI>
|
||||
<OL>
|
||||
<LI><A HREF="#wx_prefix">Use wx or WX prefix for all public symbols</A></LI>
|
||||
<LI><A HREF="#wxdllexport">Use WXDLLEXPORT with all classes/functions in
|
||||
<LI><A HREF="#wxdllexport">Use WXDLLEXPORT with all classes/functions in
|
||||
wxMSW/common code</A></LI>
|
||||
<LI><A HREF="#set_get">Use Set/Get prefixes for accessors</A></LI>
|
||||
<LI><A HREF="#constants">wxNAMING_CONSTANTS</A></LI>
|
||||
</OL>
|
||||
|
||||
<BR>
|
||||
@@ -123,7 +125,7 @@ C++ portability guide</A> by David Williams.
|
||||
<H3>General C++ Rules</H3>
|
||||
<UL>
|
||||
<LI>New or not widely supported C++ features</LI>
|
||||
|
||||
|
||||
<P>The usage of all features in this section is not recommended for one reason: they appeared in C++ relatively recently and are not yet
|
||||
supported by all compilers. Moreover, when they're supported, there are
|
||||
differences between different vendor's implementations. It's understandable that
|
||||
@@ -133,7 +135,7 @@ of your favourite C++ abilities are indicated.
|
||||
<P>Just to suppress any doubts that there are compilers which don't support
|
||||
these new features, you can think about Win16 (a.k.a. Win 3.1) compilers,
|
||||
<I>none</I> of which supports <I>any</I> feature from the list below.
|
||||
|
||||
|
||||
<OL>
|
||||
<P><LI><A NAME="no_templates"></A><B>Don't use C++ templates</B></LI><P>
|
||||
Besides the reasons mentioned above, template usage also makes the
|
||||
@@ -145,7 +147,7 @@ most commonly, polymorphic containers (in the sense that they can contain object
|
||||
any type without compromising C++ type system, i.e. using <TT>void *</TT>
|
||||
is out of question). wxWindows provides <A HREF="TODO">dynamic
|
||||
arrays and lists</A> which are sufficient in 99% of cases - please don't hesitate
|
||||
to use them. Lack of template is not a reason to use static arrays or
|
||||
to use them. Lack of template is not a reason to use static arrays or
|
||||
type-less (passing by <TT>void *</TT>) containers.
|
||||
|
||||
<P><LI><A NAME="no_exceptions"></A><B>Don't use C++ exceptions</B></LI><P>
|
||||
@@ -180,10 +182,10 @@ might help here:<P>
|
||||
void ReadAddressBookFile(const wxString& strName)
|
||||
{
|
||||
wxFile file;
|
||||
|
||||
|
||||
if ( !file.Open(strFile) )
|
||||
return;
|
||||
|
||||
|
||||
...process it...
|
||||
}
|
||||
</PRE>
|
||||
@@ -193,19 +195,19 @@ void ReadAddressBookFile(const wxString& strName)
|
||||
bool ReadAddressBookFile(const wxString& strName)
|
||||
{
|
||||
wxFile file;
|
||||
|
||||
|
||||
if ( !file.Open(strFile) ) {
|
||||
// wxFile logged an error because file couldn't be opened which
|
||||
// contains the system error code, however it doesn't know what
|
||||
// this file is for and an error message "can't open $GLCW.ADB"
|
||||
// can be quite confusing for the user. Here we say what we mean.
|
||||
wxLogError("Can't read address book from '%s'!",
|
||||
wxLogError("Can't read address book from '%s'!",
|
||||
strName.c_str());
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
...process it...
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
</PRE>
|
||||
@@ -217,22 +219,22 @@ bool ReadAddressBookFile(const wxString& strName)
|
||||
bool ReadAddressBookFile(const wxString& strName)
|
||||
{
|
||||
wxFile file;
|
||||
|
||||
|
||||
// start a block inside which all log messages are suppressed
|
||||
{
|
||||
wxLogNull noLog;
|
||||
if ( !file.Open(strFile) )
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
...process it...
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
</PRE></LI>
|
||||
</UL>
|
||||
</OL>
|
||||
|
||||
|
||||
<P><LI><A NAME="no_rtti"></A><B>Don't use RTTI</B></LI><P>
|
||||
RTTI stands for Run-Time Type Information and there is probably no other
|
||||
reason not to use it except the portability issue and the fact that it adds
|
||||
@@ -240,7 +242,7 @@ reason not to use it except the portability issue and the fact that it adds
|
||||
in the implementations I'm aware of).
|
||||
<P><U>Workaround</U>: use wxWindows RTTI system which allows you to do almost
|
||||
everything which the new C++ RTTI, except that, of course, you have to use
|
||||
macros instead of the (horrible looking, BTW) <TT>dynamic_cast</TT>.
|
||||
macros instead of the (horrible looking, BTW) <TT>dynamic_cast</TT>.
|
||||
|
||||
<P><LI><A NAME="no_namespaces"></A><B>Don't use namespaces</B></LI><P>
|
||||
This topic is subject to change with time, however for the moment all wxWindows
|
||||
@@ -312,17 +314,17 @@ you can try the following:
|
||||
private:
|
||||
class PrivateLibClass *m_pObject;
|
||||
};
|
||||
|
||||
|
||||
// in the .cpp file
|
||||
class PrivateLibClass { ... };
|
||||
|
||||
|
||||
PublicLibClass::PublicLibClass()
|
||||
{
|
||||
m_pObject = new PrivateLibClass;
|
||||
|
||||
|
||||
...
|
||||
}
|
||||
|
||||
|
||||
PublicLibClass::~PublicLibClass()
|
||||
{
|
||||
delete m_pObject;
|
||||
@@ -331,20 +333,39 @@ you can try the following:
|
||||
<P>A nice side effect is that you don't need to recompile all the files
|
||||
including the header if you change the PrivateLibClass declaration (it's
|
||||
an example of a more general interface/implementation separation idea).
|
||||
|
||||
<P><LI><A NAME="no_ternarywithobjects"></A><B>Use ternary operator ?: carefully</B></LI><P>
|
||||
The ternary operator <TT>?:</TT> shouldn't be used with objects (i.e. if any
|
||||
of its operands are objects) because some compilers (notable Borland C++) fail
|
||||
to compile such code.
|
||||
<P><U>Workaround</U>: use <TT>if/else</TT> instead.
|
||||
<PRE>
|
||||
wxString s1, s2;
|
||||
|
||||
// Borland C++ won't compile the line below
|
||||
wxString s = s1.Len() < s2.Len() ? s1 : s2;
|
||||
|
||||
// but any C++ compiler will compile this
|
||||
wxString s;
|
||||
if ( s1.Len() < s2.Len() )
|
||||
s = s1;
|
||||
else
|
||||
s = s2;
|
||||
</PRE>
|
||||
</OL>
|
||||
|
||||
<BR>
|
||||
<LI>General recommendations</B></LI><P>
|
||||
While the recommendations in the previous section may not apply to you if you're
|
||||
only working with perfect compilers which implement the very newest directives of
|
||||
C++ standard, this section contains compiler- (and language-) independent advice
|
||||
C++ standard, this section contains compiler- (and language-) independent advice
|
||||
which <B>must</B> be followed if you wish to write correct, i.e. working, programs. It
|
||||
also contains some C/C++ specific remarks in the end which are less
|
||||
also contains some C/C++ specific remarks in the end which are less
|
||||
important.
|
||||
<OL>
|
||||
<P><LI><A NAME="no_globals"></A><B>No global variables with constructors</B></LI><P>
|
||||
In C++, the constructors of global variables are called before the
|
||||
<TT>main()</TT> function (or <TT>WinMain()</TT> or any other program entry point)
|
||||
<TT>main()</TT> function (or <TT>WinMain()</TT> or any other program entry point)
|
||||
starts executing. Thus, there is no possibility to initialize <I>anything</I>
|
||||
before the constructor call. The order of construction is largely
|
||||
implementation-defined, meaning that there is no guarantee that one global
|
||||
@@ -423,7 +444,7 @@ sizes are different. A small table illustrates it quite well:
|
||||
Although close to the heart of many C programmers (I plead guilty), code like
|
||||
classical <TT>if ( (c = getchar()) != EOF )</TT> is bad because it prevents you
|
||||
from enabling "assignment in conditional expression" warning (see also
|
||||
<A HREF="#no_warnings">above</A>) warning which is helpful to detect common
|
||||
<A HREF="#no_warnings">above</A>) which is helpful to detect common
|
||||
mistypes like <TT>if ( x = 2 )</TT> instead of <TT>if ( x == 2 )</TT>.
|
||||
|
||||
<P><LI><A NAME="no_comment_code"></A><B>Use <TT>#if 0</TT> rather than comments to temporarily
|
||||
@@ -495,10 +516,10 @@ like files without terminating new-line. Such files also give a warning message
|
||||
when loaded to vim (the Unix programmer's editor of choice :-)), so please think
|
||||
about terminating the last line.
|
||||
</OL>
|
||||
|
||||
|
||||
<BR>
|
||||
<LI>Style choices</B></LI><P>
|
||||
All wxWindows specific style guidelines are specified in the next
|
||||
All wxWindows specific style guidelines are specified in the next
|
||||
section, here are the choices which are not completely arbitrary,
|
||||
but have some deeper and not wxWindows-specific meaning.
|
||||
|
||||
@@ -518,9 +539,9 @@ following code fragment is:
|
||||
void Foo::Bar(int x_)
|
||||
{
|
||||
...
|
||||
|
||||
|
||||
x = x_;
|
||||
|
||||
|
||||
...
|
||||
}
|
||||
</PRE>
|
||||
@@ -591,7 +612,7 @@ However, the <TT>const</TT> keyword is confusing here, adds nothing to the code
|
||||
and even cannot be removed if <TT>Foo()</TT> is virtual and overridden (because
|
||||
the names are mangled differently). So, <I>for arguments passed by value</I>
|
||||
you shouldn't use <TT>const</TT>.
|
||||
<P>Of course, it doesn't apply to functions such as
|
||||
<P>Of course, it doesn't apply to functions such as
|
||||
<TT>void PrintMessage(const char *text)</TT> where <TT>const</TT> is mandatory.
|
||||
</OL>
|
||||
</UL>
|
||||
@@ -607,7 +628,7 @@ The wxWindows files for each supported platform have their own subdirectories
|
||||
in "include" and "src". So, for example, there is "src/msw", "include/gtk"
|
||||
etc. There are also two special subdirectories called "common" and
|
||||
"generic". The common subdirectory contains the files which are platform
|
||||
independent (wxObject, wxString, ...) and the generic one the generic
|
||||
independent (wxObject, wxString, ...) and the generic one the generic
|
||||
implementations of GUI widgets, i.e. those which use only other wxWindows
|
||||
classes to implement them. For the platforms where the given functionality
|
||||
cannot be implemented natively, the generic implementation is used and the native
|
||||
@@ -712,12 +733,12 @@ usage 'public domain' (the copyright holder does not assert the copyright).<P>
|
||||
<P><LI><A NAME="indentation"></LI><B>Indent your code with 4 spaces (no tabs!)</B>
|
||||
<P><LI><A NAME="class_decl"></LI><B>Order of parts in a class declarations</B><P>
|
||||
</OL>
|
||||
|
||||
|
||||
<P><LI>More about naming conventions</LI><P>
|
||||
<OL>
|
||||
<P><LI><A NAME="wx_prefix"></LI><B>Use wx or WX prefix for all public symbols</B>.
|
||||
wx should be used for functions and classes, WX for macros.
|
||||
<P><LI><A NAME="wxdllexport"</LI><B>Use WXDLLEXPORT with all classes/functions in
|
||||
<P><LI><A NAME="wxdllexport"</LI><B>Use WXDLLEXPORT with all classes/functions in
|
||||
wxMSW/common code</B>
|
||||
The title says it all - every public (in the sense that it is not internal to
|
||||
the library) function or class should have WXDLLEXPORT macro in its
|
||||
@@ -734,14 +755,33 @@ keyword ordering for exporting data.
|
||||
|
||||
<P>There also several other places where you should take care of shared
|
||||
library case: all IMPLEMENT_xxx macros which are usually used in the
|
||||
corresponding .cpp files must be taken inside
|
||||
corresponding .cpp files must be taken inside
|
||||
"<TT>#if !USE_SHARED_LIBRARY</TT>" and in the <TT>#if USE_SHARED_LIBRARY</TT>
|
||||
case you should put them inside <TT>common/cmndata.cpp</TT> file.
|
||||
|
||||
<P><LI><A NAME="set_get"></LI><B>Use Set/Get prefixes for accessors</B><P>
|
||||
There is a convention in wxWindows to prefix the accessors (i.e. any simple, in
|
||||
general, inline function which does nothing else except changing or returning
|
||||
There is a convention in wxWindows to prefix the accessors (i.e. any simple, in
|
||||
general, inline function which does nothing else except changing or returning
|
||||
the value of a member variable) with either <TT>Set</TT> or <TT>Get</TT>.
|
||||
|
||||
<P><LI><A NAME="constants"></LI><B>wxNAMING_CONSTANTS</B><P>
|
||||
The constants in wxWindows code should be defined using <TT>enum</TT> C++
|
||||
keyword (and not with <TT>#define</TT> or <TT>static const int</TT>). They
|
||||
should be declared in the global scope (and not inside class declaration) and
|
||||
their names should start with a <TT>wx</TT> prefix. Finally, the constants
|
||||
should be in all capital letters (except the first 2) to make it easier to
|
||||
distinguish them from the variables with underscores separating the words.
|
||||
|
||||
<P>For example, file-related constants should be declared like this:
|
||||
<pre>
|
||||
enum
|
||||
{
|
||||
wxFILEOPEN_READ,
|
||||
wxFILEOPEN_WRITE,
|
||||
wxFILEOPEN_READWRITE
|
||||
};
|
||||
</pre>
|
||||
|
||||
</OL>
|
||||
|
||||
<P><LI>Miscellaneous</LI><P>
|
||||
@@ -751,7 +791,7 @@ It's really a trivial piece of advice, but remember that using forward declarati
|
||||
instead of including the header of corresponding class is better because not
|
||||
only does it minimize the compile time, it also simplifies the dependencies
|
||||
between different source files.
|
||||
<P>On a related subject, in general, you should try not to include other
|
||||
<P>On a related subject, in general, you should try not to include other
|
||||
headers from a header file.
|
||||
|
||||
<P><LI><A NAME="debug_macros"></LI><B>Use debugging macros</B><P>
|
||||
@@ -764,7 +804,7 @@ stubs for not (yet) implemented functions which silently return incorrect
|
||||
values - otherwise, a person using a not implemented function has no idea that
|
||||
it is, in fact, not implemented.
|
||||
<P>As all debugging macros only do something useful if the symbol
|
||||
<TT>__DEBUG__</TT> is defined, you should compile your programs in debug mode to profit
|
||||
<TT>__WXDEBUG__</TT> is defined, you should compile your programs in debug mode to profit
|
||||
from them.
|
||||
</OL>
|
||||
</UL>
|
||||
|
168
docs/html/wxbook.htm
Normal file
168
docs/html/wxbook.htm
Normal file
@@ -0,0 +1,168 @@
|
||||
<HTML>
|
||||
|
||||
<HEAD>
|
||||
<TITLE>wxWindows Book</TITLE>
|
||||
</HEAD>
|
||||
|
||||
<BODY BGCOLOR=#FFFFFF TEXT=#000000 LINK=#FF0000 VLINK=#000000>
|
||||
|
||||
<font face="Arial, Lucida Sans, Helvetica">
|
||||
|
||||
<table width=100% border=4 cellpadding=5 cellspacing=0>
|
||||
<tr>
|
||||
<td bgcolor="#660000">
|
||||
<font size=+1 face="Arial, Lucida Sans, Helvetica" color="#FFFFFF">
|
||||
wxWindows Book
|
||||
</font>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<P>
|
||||
|
||||
<center>
|
||||
<a href="#about">About</a> |
|
||||
<a href="#participants">Participants</a> |
|
||||
<a href="#publication">Publication</a> |
|
||||
<a href="#suggestions">Suggestions</a> |
|
||||
<a href="#format">Format</a> |
|
||||
<a href="#contents">Contents</a>
|
||||
</center>
|
||||
|
||||
<hr>
|
||||
|
||||
<H3><a name="about">About the wxWindows book</a></H3>
|
||||
|
||||
Discussions have been taking place on the wxwin-developers list about
|
||||
collaboratively writing a wxWindows book. The concensus is to write a tutorial
|
||||
book for people with reasonable C++ experience, with the possibility of including the API reference either in a very compact
|
||||
form at the back of the book, or as a separate volume. The book would almost certainly
|
||||
contain a CD-ROM with wxWindows and its documentation. It would probably be available
|
||||
for free on-line, publisher permitting.<P>
|
||||
|
||||
Goals for the book:<P>
|
||||
|
||||
<ol>
|
||||
<li> to allow users to become accomplished wxWindows developers rapidly;
|
||||
<li> to be useful over a longer period than just the first few weeks, since
|
||||
there are a lot of complex areas to address and not all features will be
|
||||
used up-front in a project;
|
||||
<li> to promote wxWindows to a wider audience;
|
||||
<li> to make at least some money for the authors.
|
||||
</ol>
|
||||
|
||||
<P>
|
||||
|
||||
Audience: beginners + experienced wxWindows users, but with reasonable C++
|
||||
knowledge.<P>
|
||||
|
||||
It is suggested that any financial return from the book be allocated on a points system,
|
||||
with a predefined number of points for chapters, indexing, editing, proof-reading etc.<P>
|
||||
|
||||
<hr>
|
||||
|
||||
<H3><a name="participants">Participants</a></H3>
|
||||
|
||||
So far, the following people are interested in taking part in this project:<P>
|
||||
|
||||
<ul>
|
||||
<li><a href="mailto:tomr@scitechsoft.com">Tom Ryan</a>, SciTech Software.
|
||||
<li><a href="mailto:robin@alldunn.com">Robin Dunn</a>. <i>Chapter on wxPython.</i>
|
||||
<li><a href="mailto:mheck@www.surveyorcorp.com">Matt Heck</a>, SurveyorCorp Inc.
|
||||
<i>
|
||||
<ol>
|
||||
<li>a case study of how and why we've used wxWindows at Surveyor Corp., and
|
||||
how it's worked out so far;
|
||||
<li>an appendix something similar about how to use wxLIVID for video capture and display;
|
||||
<li>proofreading
|
||||
</ol>
|
||||
</i>
|
||||
<li><a href="mailto:julian.smart@ukonline.co.uk">Julian Smart</a>.
|
||||
<li><a href="mailto:zeitlin@dptmaths.ens-cachan.fr">Vadim Zeitlin</a>.
|
||||
<li><a href="mailto:slavik2@czn.cz">Vaclav Slavik</a>. <i>wxHTML section</i>
|
||||
<li><a href="mailto:csomor@advancedconcepts.ch">Stefan Csomor</a>. <i>the sequence of events i.e. which action provokes which event sequence,
|
||||
this is implicit for the use on MSW, but very important for other systems; and porting to new platforms</i>
|
||||
<li><a href="mailto:karsten@phy.hw.ac.uk">Karsten Ballueder</a>. <i>short tutorials on some useful
|
||||
GNU tools, like autoconf/configure/make, programming
|
||||
strategies, etc.</i>
|
||||
</ul>
|
||||
|
||||
<hr>
|
||||
|
||||
<H3><a name="publication">Publication</a></H3>
|
||||
|
||||
Tom Ryan originally wrote:<P>
|
||||
|
||||
<PRE>
|
||||
Hi Guys,
|
||||
|
||||
I just wanted to let you know that I have spoken with officials here
|
||||
at California State University, Chico and they are potentially
|
||||
interested in publishing a book on wxWindows! A wxWindows
|
||||
book would give wxWindows a great deal of exposure.
|
||||
|
||||
These discussions came out of the fact that CSUC wanted to
|
||||
switch from MFC to wxWindows in their GUI programming classes,
|
||||
but there was not a book available for students to work with.
|
||||
|
||||
I was thinking that the first edition could be primarily the reference
|
||||
documentation combined with a basic wxTutorial and examples. In
|
||||
this case, it would be fairly straightforward to get something out
|
||||
initially and then we could take it from there.
|
||||
</PRE>
|
||||
|
||||
<p>
|
||||
|
||||
<a href="mailto:benles@powernet.net">Ben Allfree</a> has also expressed an interest
|
||||
in publishing a wxWindows book, and distributing it via Amazon. Ben was thinking
|
||||
in terms of a quickie job using the existing reference manual.<P>
|
||||
|
||||
Another publishing name to think of is O'Reilly. They would probably give us a lot
|
||||
of guidance for style, formatting, etc.<P>
|
||||
|
||||
<a href="mailto:Roald.Ribe@winlink.no">Roald Ribe</a> writes:
|
||||
"<a href="http://www.bruceeckel.com/javabook.html" target=_new>Thinking in Java</a>
|
||||
is published both as a PDF for internet (by the author) and in print by Prentice Hall."<P>
|
||||
|
||||
<hr>
|
||||
|
||||
<H3><a name="suggestions">Suggestions and comments</a></H3>
|
||||
|
||||
<ul>
|
||||
<li>Chapter on converting from MFC. (Julian Smart)
|
||||
<li>A chapter on why some inconsistencies are almost always going to show up in a
|
||||
multiplatform toolkit, how to avoid them, how to deal with when you have
|
||||
no choice, and (if wxBook explains the internals or philosophy of
|
||||
wxWindows at all) how wxWindows attempts to minimize the number we
|
||||
encounter. (Matt Heck)
|
||||
<li>Creating the shortest possible path to writing "Hello World" from scratch in wxWindows. (Matt Heck)
|
||||
<li>How will royalties for subsequent editions be shared out? (Tom Ryan)
|
||||
<li>"My personal feeling is that this project will wind up being developed
|
||||
by a small team, led by an editor that will wind up doing about half
|
||||
of the total amount of work." (Tom Ryan)
|
||||
</ul>
|
||||
|
||||
<hr>
|
||||
|
||||
<H3><a name="format">Text format</a></H3>
|
||||
|
||||
This depends partly on the publisher, but one possibility is to target Word but have
|
||||
submissions in a number of formats including Latex. We should eventually write a style
|
||||
and formatting guide.<P>
|
||||
|
||||
<hr>
|
||||
|
||||
<H3><a name="contents">Contents</a></H3>
|
||||
|
||||
This is open to suggestion.<P>
|
||||
|
||||
Last year, <a href="mailto:mlorenz@visionx.com">Mike Lorenz</a> of <a href="http://www.visionx.com">VisionX</a>
|
||||
suggested this
|
||||
<a href="http://www.visionx.com/wx/tutorial_outline.htm">tutorial outline</a>, which could
|
||||
be a good starting point.<P>
|
||||
|
||||
</font>
|
||||
|
||||
</BODY>
|
||||
|
||||
</HTML>
|
@@ -137,6 +137,10 @@ Loads the accelerator table from a Windows resource (Windows only).
|
||||
|
||||
\docparam{resource}{Name of a Windows accelerator.}
|
||||
|
||||
\pythonnote{The wxPython constructor accepts a list of
|
||||
wxAcceleratorEntry objects, or 3-tuples consisting of flags, keyCode,
|
||||
and cmd values like you would construct wxAcceleratorEntry objects with.}
|
||||
|
||||
\membersection{wxAcceleratorTable::\destruct{wxAcceleratorTable}}
|
||||
|
||||
\func{}{\destruct{wxAcceleratorTable}}{\void}
|
||||
|
@@ -54,9 +54,15 @@ when the button is clicked.}
|
||||
|
||||
Default constructor.
|
||||
|
||||
\func{}{wxBitmapButton}{\param{wxWindow* }{parent}, \param{wxWindowID}{ id}, \param{const wxBitmap\& }{bitmap},\rtfsp
|
||||
\param{const wxPoint\& }{pos}, \param{const wxSize\& }{size = wxDefaultSize},\rtfsp
|
||||
\param{long}{ style = wxBU\_AUTODRAW}, \param{const wxValidator\& }{validator}, \param{const wxString\& }{name = ``button"}}
|
||||
\func{}{wxBitmapButton}{
|
||||
\param{wxWindow* }{parent},
|
||||
\param{wxWindowID }{id},
|
||||
\param{const wxBitmap\& }{bitmap},\rtfsp
|
||||
\param{const wxPoint\& }{pos = wxDefaultPosition},
|
||||
\param{const wxSize\& }{size = wxDefaultSize},\rtfsp
|
||||
\param{long }{style = wxBU\_AUTODRAW},
|
||||
\param{const wxValidator\& }{validator = wxDefaultValidator},
|
||||
\param{const wxString\& }{name = ``button"}}
|
||||
|
||||
Constructor, creating and showing a button.
|
||||
|
||||
|
117
docs/latex/wx/boxsizer.tex
Normal file
117
docs/latex/wx/boxsizer.tex
Normal file
@@ -0,0 +1,117 @@
|
||||
\section{\class{wxBoxSizer}}\label{wxboxsizer}
|
||||
|
||||
The basic idea behind a box sizer is that windows will most often be laid out in rather
|
||||
simple basic geomerty, typically in a row or a column or several hierachies of either.
|
||||
|
||||
As an exmaple, we will construct a dialog that will contain a text field at the top and
|
||||
two buttons at the bottom. This can be seen as a top-hierarchy column with the text at
|
||||
the top and buttons at the bottom and a low-hierchary row with an OK button to the left
|
||||
and a Cancel button to the right. In many cases (particulary dialogs under Unix and
|
||||
normal frames) the main window will be resizable by the user and this change of size
|
||||
will have to get propagated to its children. In our case, we want the text area to grow
|
||||
with the dialog, whereas the button shall have a fixed size. In addition, there will be
|
||||
a thin border around all controls to make the dialog look nice and - to make matter worse -
|
||||
the buttons shall be centred as the width of the dialog changes.
|
||||
|
||||
It is the unique feature of a box sizer, that it can grow in both directions (height and
|
||||
width) but can distribute its growth in the main direction (horizontal for a row) {\it unevenly}
|
||||
among its children. In our example case, the vertical sizer is supposed to propagate all its
|
||||
height changes to only the text area, not to the button area. This is determined by the {\it option} parameter
|
||||
when adding a window (or another sizer) to a sizer. It is interpreted
|
||||
as a weight factor, i.e. it can be zero, indicating that the window may not be resized
|
||||
at all, or above zero. If several windows have a value above zero, the value is interpreted
|
||||
relative to the sum of all weight factors of the sizer, so when adding two windows with
|
||||
a value of 1, they will both get resized equally much and each half as much as the sizer
|
||||
owning them. Then what do we do when a column sizer changes its width? This behaviour is
|
||||
controlled by {\it flags} (the second parameter of the Add() function): Zero or no flag indicates that
|
||||
the window will get aligned at the left (in a column sizer) and the top (row sizer), whereas
|
||||
wxALIGN\_RIGHT and wxALIGN\_BOTTOM will do what they say. The item can also be centered
|
||||
using the wxCENTRE flag (same as wxCENTER) or it can be forced to grow with the sizer (using
|
||||
the wxGROW flag (same as wxEXPAND)).
|
||||
|
||||
As mentioned above, any window belonging to a sizer may have border, and it can be specified
|
||||
which of the four sides may have this border, using the wxTOP, wxLEFT, wxRIGHT and wxBOTTOM
|
||||
constants or wxALL for all directions (and you may also use wxNORTH, wxWEST etc instead). These
|
||||
flags can be used in combintaion with the alignement flags above as the second paramter of the
|
||||
Add() method using the binary or operator |. The sizer of the border also must be made known,
|
||||
and it is the third parameter in the Add() method. This means, that the entire behaviour of
|
||||
a sizer and its children can be controlled by the three parameters of the Add() method.
|
||||
|
||||
\begin{verbatim}
|
||||
// we want to get a dialog that is stretchable because it
|
||||
// has a text ctrl at the top and two buttons at the bottom
|
||||
|
||||
MyDialog::MyDialog(wxFrame *parent, wxWindowID id, const wxString &title ) :
|
||||
wxDialog( parent, id, title, wxDefaultPosition, wxDefaultSize, wxDIALOG_STYLE | wxRESIZE_BORDER )
|
||||
{
|
||||
wxBoxSizer *topsizer = new wxBoxSizer( wxVERTICAL );
|
||||
|
||||
// create text ctrl with minimal size 100x60
|
||||
topsizer->Add(
|
||||
new wxTextCtrl( this, -1, "My text.", wxDefaultPosition, wxSize(100,60), wxTE_MULTILINE),
|
||||
1, // make vertically stretchable
|
||||
wxEXPAND | // make horizontally stretchable
|
||||
wxALL, // and make border all around
|
||||
10 ); // set border width to 10
|
||||
|
||||
|
||||
wxBoxSizer *button_sizer = new wxBoxSizer( wxHORIZONTAL );
|
||||
button_sizer->Add(
|
||||
new wxButton( this, wxID_OK, "OK" ),
|
||||
0, // make horizontally unstretchable
|
||||
wxALL, // make border all around (implicit top alignment)
|
||||
10 ); // set border width to 10
|
||||
button_sizer->Add(
|
||||
new wxButton( this, wxID_CANCEL, "Cancel" ),
|
||||
0, // make horizontally unstretchable
|
||||
wxALL, // make border all around (implicit top alignment)
|
||||
10 ); // set border width to 10
|
||||
|
||||
topsizer->Add(
|
||||
button_sizer,
|
||||
0, // make vertically unstretchable
|
||||
wxCENTER ); // no border and centre horizontally
|
||||
|
||||
SetAutoLayout( TRUE ); // tell dialog to use sizer
|
||||
SetSizer( topsizer ); // actually set the sizer
|
||||
|
||||
topsizer->Fit( this ); // set size to minimum size as calculated by the sizer
|
||||
topsizer->SetSizeHints( this ); // set size hints to honour mininum size
|
||||
}
|
||||
\end{verbatim}
|
||||
|
||||
\wxheading{Derived from}
|
||||
|
||||
\helpref{wxSizer}{wxsizer}
|
||||
\helpref{wxObject}{wxobject}
|
||||
|
||||
\membersection{wxBoxSizer::wxBoxSizer}\label{wxboxsizerwxboxsizer}
|
||||
|
||||
\func{}{wxBoxSizer}{\param{int }{orient}}
|
||||
|
||||
Constructor for a wxBoxSizer. {\it orient} may be either of wxVERTICAL
|
||||
or wxHORIZONTAL for creating either a column sizer or a row sizer.
|
||||
|
||||
\membersection{wxBoxSizer::RecalcSizes}\label{wxboxsizerrecalcsizes}
|
||||
|
||||
\func{void}{RecalcSizes}{\void}
|
||||
|
||||
Implements the calculation of a box sizer's dimensions and then sets
|
||||
the size of its its children (calling \helpref{wxWindow::SetSize}{wxwindowsetsize}
|
||||
if the child is a window). It is used internally only and must not be called
|
||||
by the users. Documented for information.
|
||||
|
||||
\membersection{wxBoxSizer::CalcMin}\label{wxboxsizercalcmin}
|
||||
|
||||
\func{wxSize}{CalcMin}{\void}
|
||||
|
||||
Implements the calculation of a box sizer's minimal. It is used internally
|
||||
only and must not be called by the users. Documented for information.
|
||||
|
||||
\membersection{wxBoxSizer::GetOrientation}\label{wxboxsizergetorientation}
|
||||
|
||||
\func{int}{GetOrientation}{\void}
|
||||
|
||||
Returns the orientation of the boxsizer, either of wxVERTICAL
|
||||
or wxHORIZONTAL.
|
||||
|
@@ -100,9 +100,22 @@ that are not static can have \helpref{validators}{wxvalidator} associated with t
|
||||
|
||||
{\large {\bf Window layout}}
|
||||
|
||||
\overview{Overview}{constraintsoverview}
|
||||
There are two different systems for layouting windows (and dialogs in particluar).
|
||||
One is based upon so-called sizers and it requires less typing, thinking and calculating
|
||||
and will in almost all cases produce dialogs looking equally well on all platforms, the
|
||||
other is based on so-called constraints and allows for more detailed layouts.
|
||||
|
||||
These are the classes relevant to automated window layout.
|
||||
These are the classes relevant to the sizer-based layout.
|
||||
|
||||
\begin{twocollist}\itemsep=0pt
|
||||
\twocolitem{\helpref{wxSizer}{wxsizer}}{Abstract base class}
|
||||
\twocolitem{\helpref{wxBoxSizer}{wxboxsizer}}{A sizer for laying out windows in a row or column}
|
||||
\twocolitem{\helpref{wxStaticBoxSizer}{wxstaticboxsizer}}{Same as wxBoxSizer, but with surrounding static box}
|
||||
\end{twocollist}
|
||||
|
||||
\overview{Overview}{constraintsoverview} over the constraints-based layout.
|
||||
|
||||
These are the classes relevant to constraints-based window layout.
|
||||
|
||||
\begin{twocollist}\itemsep=0pt
|
||||
\twocolitem{\helpref{wxIndividualLayoutConstraint}{wxindividuallayoutconstraint}}{Represents a single constraint dimension}
|
||||
@@ -223,6 +236,7 @@ These are the data structure classes supported by wxWindows.
|
||||
\twocolitem{\helpref{wxRegion}{wxregion}}{A class representing a region}
|
||||
\twocolitem{\helpref{wxString}{wxstring}}{A string class}
|
||||
\twocolitem{\helpref{wxStringList}{wxstringlist}}{A class representing a list of strings}
|
||||
\twocolitem{\helpref{wxStringTokenizer}{wxstringtokenizer}}{A class for interpreting a string as a list of tokens or words}
|
||||
\twocolitem{\helpref{wxRealPoint}{wxrealpoint}}{Representation of a point using floating point numbers}
|
||||
\twocolitem{\helpref{wxSize}{wxsize}}{Representation of a size}
|
||||
\twocolitem{\helpref{wxTime}{wxtime}}{A class for time manipulation}
|
||||
@@ -268,7 +282,8 @@ classes, functions and macros.
|
||||
\overview{Overview}{ipcoverview}
|
||||
|
||||
wxWindows provides a simple interprocess communications facilities
|
||||
based on DDE.
|
||||
based on DDE. [Note that this is currently work in progress and may not
|
||||
function properly.]
|
||||
|
||||
\begin{twocollist}\itemsep=0pt
|
||||
\twocolitem{\helpref{wxDDEClient}{wxddeclient}}{Represents a client}
|
||||
|
@@ -90,10 +90,17 @@ Destructor, destroying the choice item.
|
||||
|
||||
Adds the item to the end of the choice control.
|
||||
|
||||
\func{void}{Append}{\param{const wxString\& }{ item}, \param{void* }{clientData}}
|
||||
|
||||
Adds the item to the end of the combobox, associating the given data
|
||||
with the item.
|
||||
|
||||
\wxheading{Parameters}
|
||||
|
||||
\docparam{item}{String to add.}
|
||||
|
||||
\docparam{clientData}{Client data to associate with the item.}
|
||||
|
||||
\membersection{wxChoice::Clear}\label{wxchoiceclear}
|
||||
|
||||
\func{void}{Clear}{\void}
|
||||
@@ -133,6 +140,20 @@ Gets the number of columns in this choice item.
|
||||
|
||||
This is implemented for Motif only.
|
||||
|
||||
\membersection{wxChoice::GetClientData}\label{wxchoicegetclientdata}
|
||||
|
||||
\constfunc{void*}{GetClientData}{\param{int}{ n}}
|
||||
|
||||
Returns a pointer to the client data associated with the given item (if any).
|
||||
|
||||
\wxheading{Parameters}
|
||||
|
||||
\docparam{n}{An item, starting from zero.}
|
||||
|
||||
\wxheading{Return value}
|
||||
|
||||
A pointer to the client data, or NULL if the item was not found.
|
||||
|
||||
\membersection{wxChoice::GetSelection}\label{wxchoicegetselection}
|
||||
|
||||
\constfunc{int}{GetSelection}{\void}
|
||||
@@ -165,6 +186,18 @@ Gets the selected string, or the empty string if no string is selected.
|
||||
|
||||
Returns the number of strings in the choice control.
|
||||
|
||||
\membersection{wxChoice::SetClientData}\label{wxchoicesetclientdata}
|
||||
|
||||
\func{void}{SetClientData}{\param{int}{ n}, \param{void* }{data}}
|
||||
|
||||
Associates the given client data pointer with the given item.
|
||||
|
||||
\wxheading{Parameters}
|
||||
|
||||
\docparam{n}{The zero-based item.}
|
||||
|
||||
\docparam{data}{The client data.}
|
||||
|
||||
\membersection{wxChoice::SetColumns}\label{wxchoicesetcolumns}
|
||||
|
||||
\func{void}{SetColumns}{\param{int}{ n = 1}}
|
||||
|
@@ -9,6 +9,7 @@
|
||||
\input array.tex
|
||||
\input arrstrng.tex
|
||||
\input autoobj.tex
|
||||
\input boxsizer.tex
|
||||
\input busycurs.tex
|
||||
\input busyinfo.tex
|
||||
\input button.tex
|
||||
@@ -172,6 +173,7 @@
|
||||
\input sashevt.tex
|
||||
\input sashlayw.tex
|
||||
\input sashwin.tex
|
||||
\input sbsizer.tex
|
||||
\input screendc.tex
|
||||
\input scrolbar.tex
|
||||
\input scrlwevt.tex
|
||||
@@ -180,6 +182,7 @@
|
||||
\input sngchdlg.tex
|
||||
\input size.tex
|
||||
\input sizeevt.tex
|
||||
\input sizer.tex
|
||||
\input slider.tex
|
||||
\input sckaddr.tex
|
||||
\input socket.tex
|
||||
|
@@ -80,10 +80,10 @@ which is generated by a control.}
|
||||
|
||||
\membersection{wxCommandEvent::m\_clientData}
|
||||
|
||||
\member{char*}{m\_clientData}
|
||||
\member{void*}{m\_clientData}
|
||||
|
||||
Contains a pointer to client data for listboxes and choices, if the event
|
||||
was a selection.
|
||||
was a selection. Beware, this is not implemented anyway...
|
||||
|
||||
\membersection{wxCommandEvent::m\_commandInt}
|
||||
|
||||
@@ -123,10 +123,10 @@ Returns TRUE or FALSE for a checkbox selection event.
|
||||
|
||||
\membersection{wxCommandEvent::GetClientData}
|
||||
|
||||
\func{char*}{GetClientData}{\void}
|
||||
\func{void*}{GetClientData}{\void}
|
||||
|
||||
Returns client data pointer for a listbox or choice selection event
|
||||
(not valid for a deselection).
|
||||
(not valid for a deselection). Beware, this is not implmented anywhere...
|
||||
|
||||
\membersection{wxCommandEvent::GetExtraLong}
|
||||
|
||||
@@ -163,7 +163,7 @@ is a deselection.
|
||||
|
||||
\membersection{wxCommandEvent::SetClientData}
|
||||
|
||||
\func{void}{SetClientData}{\param{char*}{ clientData}}
|
||||
\func{void}{SetClientData}{\param{void*}{ clientData}}
|
||||
|
||||
Sets the client data for this event.
|
||||
|
||||
|
@@ -21,7 +21,7 @@ A combobox permits a single selection only. Combobox items are numbered from zer
|
||||
\wxheading{Window styles}
|
||||
|
||||
\begin{twocollist}\itemsep=0pt
|
||||
\twocolitem{\windowstyle{wxCB\_SIMPLE}}{Creates a combobox with a permanently displayed list.}
|
||||
\twocolitem{\windowstyle{wxCB\_SIMPLE}}{Creates a combobox with a permanently displayed list. Windows only. }
|
||||
\twocolitem{\windowstyle{wxCB\_DROPDOWN}}{Creates a combobox with a drop-down list.}
|
||||
\twocolitem{\windowstyle{wxCB\_READONLY}}{Creates a combo box consisting of a drop-down list and static text item
|
||||
displaying the current selection.}
|
||||
@@ -102,7 +102,7 @@ Destructor, destroying the combobox.
|
||||
|
||||
Adds the item to the end of the combobox.
|
||||
|
||||
\func{void}{Append}{\param{const wxString\& }{ item}, \param{char* }{clientData}}
|
||||
\func{void}{Append}{\param{const wxString\& }{ item}, \param{void* }{clientData}}
|
||||
|
||||
Adds the item to the end of the combobox, associating the given data
|
||||
with the item.
|
||||
@@ -168,7 +168,7 @@ The position if found, or -1 if not found.
|
||||
|
||||
\membersection{wxComboBox::GetClientData}\label{wxcomboboxgetclientdata}
|
||||
|
||||
\constfunc{char*}{GetClientData}{\param{int}{ n}}
|
||||
\constfunc{void*}{GetClientData}{\param{int}{ n}}
|
||||
|
||||
Returns a pointer to the client data associated with the given item (if any).
|
||||
|
||||
@@ -265,7 +265,7 @@ Removes the text between the two positions in the combobox text field.
|
||||
|
||||
\membersection{wxComboBox::SetClientData}\label{wxcomboboxsetclientdata}
|
||||
|
||||
\func{void}{SetClientData}{\param{int}{ n}, \param{char* }{data}}
|
||||
\func{void}{SetClientData}{\param{int}{ n}, \param{void* }{data}}
|
||||
|
||||
Associates the given client data pointer with the given item.
|
||||
|
||||
@@ -310,6 +310,9 @@ Selects the text between the two positions, in the combobox text field.
|
||||
|
||||
\docparam{to}{The second position.}
|
||||
|
||||
\pythonnote{The second form of this method is called \tt{SetMark} in
|
||||
wxPython.}
|
||||
|
||||
\membersection{wxComboBox::SetValue}\label{wxcomboboxsetvalue}
|
||||
|
||||
\func{void}{SetValue}{\param{const wxString\& }{text}}
|
||||
|
@@ -53,8 +53,8 @@ released for each drawing operation.
|
||||
\membersection{wxDC::Blit}\label{wxdcblit}
|
||||
|
||||
\func{bool}{Blit}{\param{long}{ xdest}, \param{long}{ ydest}, \param{long}{ width}, \param{long}{ height},
|
||||
\param{wxDC* }{source}, \param{long}{ xsrc}, \param{long}{ ysrc}, \param{int}{ logicalFunc},
|
||||
\param{bool }{useMask}}
|
||||
\param{wxDC* }{source}, \param{long}{ xsrc}, \param{long}{ ysrc}, \param{int}{ logicalFunc = wxCOPY},
|
||||
\param{bool }{useMask = FALSE}}
|
||||
|
||||
Copy from a source DC to this DC, specifying the destination
|
||||
coordinates, size of area to copy, source DC, source coordinates, and
|
||||
@@ -104,7 +104,7 @@ There is partial support for Blit in wxPostScriptDC, under X.
|
||||
|
||||
See \helpref{wxMemoryDC}{wxmemorydc} for typical usage.
|
||||
|
||||
wxheading{See also}
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{wxMemoryDC}{wxmemorydc}, \helpref{wxBitmap}{wxbitmap}, \helpref{wxMask}{wxmask}
|
||||
|
||||
@@ -418,6 +418,9 @@ Gets the current pen (see \helpref{wxDC::SetPen}{wxdcsetpen}).
|
||||
Sets {\it colour} to the colour at the specified location. Windows only; an X implementation
|
||||
is being worked on. Not available for wxPostScriptDC or wxMetafileDC.
|
||||
|
||||
\pythonnote{For wxPython the wxColour value is returned and is not
|
||||
required as a parameter.}
|
||||
|
||||
\membersection{wxDC::GetSize}\label{wxdcgetsize}
|
||||
|
||||
\func{void}{GetSize}{\param{long *}{width}, \param{long *}{height}}
|
||||
|
@@ -41,7 +41,8 @@ wxSWISS\_FONT}
|
||||
Default constructor.
|
||||
|
||||
\func{}{wxFont}{\param{int}{ pointSize}, \param{int}{ family}, \param{int}{ style}, \param{int}{ weight},
|
||||
\param{const bool}{ underline = FALSE}, \param{const wxString\& }{faceName = ""}}
|
||||
\param{const bool}{ underline = FALSE}, \param{const wxString\& }{faceName = ""},
|
||||
\param{wxFontEncoding }{encoding = wxFONTENCODING\_DEFAULT}}
|
||||
|
||||
Creates a font object.
|
||||
|
||||
@@ -70,6 +71,22 @@ Creates a font object.
|
||||
\docparam{faceName}{An optional string specifying the actual typeface to be used. If the empty string,
|
||||
a default typeface will chosen based on the family.}
|
||||
|
||||
\docparam{encoding}{An encoding which may be one of
|
||||
\twocolwidtha{5cm}
|
||||
\begin{twocollist}\itemsep=0pt
|
||||
\twocolitem{{\bf wxFONTENCODING\_SYSTEM}}{Default system encoding.}
|
||||
\twocolitem{{\bf wxFONTENCODING\_DEFAULT}}{Default application encoding: this
|
||||
is the encoding set by calls to
|
||||
\helpref{SetDefaultEncoding}{wxfontsetdefaultencoding} and which may beset to,
|
||||
say, KOI8 to create all fonts by default with KOI8 encoding. Initially, the
|
||||
default application encoding is the same as default system encoding.}
|
||||
\twocolitem{{\bf wxFONTENCODING\_ISO8859\_1...15}}{ISO8859 encodings.}
|
||||
\twocolitem{{\bf wxFONTENCODING\_KOI8}}{The standard russian encoding for Internet.}
|
||||
\twocolitem{{\bf wxFONTENCODING\_CP1250...1252}}{Windows encodings similar to ISO8859 (but not identical).}
|
||||
\end{twocollist}
|
||||
If the specified encoding isn't available, no font is created.
|
||||
}
|
||||
|
||||
\wxheading{Remarks}
|
||||
|
||||
If the desired font does not exist, the closest match will be chosen.
|
||||
|
@@ -31,7 +31,8 @@ slashes.
|
||||
|
||||
\func{bool}{wxFileExists}{\param{const wxString\& }{filename}}
|
||||
|
||||
Returns TRUE if the file exists.
|
||||
Returns TRUE if the file exists. It also returns TRUE if the file is
|
||||
a directory.
|
||||
|
||||
\membersection{::wxFileNameFromPath}
|
||||
|
||||
@@ -48,11 +49,12 @@ temporary storage that should not be deallocated.
|
||||
|
||||
This function does directory searching; returns the first file
|
||||
that matches the path {\it spec}, or the empty string. Use \helpref{wxFindNextFile}{wxfindnextfile} to
|
||||
get the next matching file.
|
||||
get the next matching file. Neither will report the current directory "." or the
|
||||
parent directory "..".
|
||||
|
||||
{\it spec} may contain wildcards.
|
||||
|
||||
{\it flags} is reserved for future use.
|
||||
{\it flags} may be wxDIR for restricting the query to directories, wxFILE for files or zero for either.
|
||||
|
||||
For example:
|
||||
|
||||
@@ -79,6 +81,17 @@ See \helpref{wxFindFirstFile}{wxfindfirstfile} for an example.
|
||||
|
||||
Returns the Windows directory under Windows; on other platforms returns the empty string.
|
||||
|
||||
\membersection{::wxInitAllImageHandlers}\label{wxinitallimagehandlers}
|
||||
|
||||
\func{void}{wxInitAllImageHandlers}{\void}
|
||||
|
||||
Adds some common image format handlers, which, depending on wxWindows
|
||||
configuration, can be handlers for BMP (loading) (always installed), GIF
|
||||
(loading and saving), PCX (loading and saving), PNM (loading and saving as raw
|
||||
rgb), PNG (loading and saving), JPEG (loading and saving), file formats.
|
||||
|
||||
See also: \helpref{wxImage}{wximage} \helpref{wxImageHandler}{wximagehandler}
|
||||
|
||||
\membersection{::wxIsAbsolutePath}
|
||||
|
||||
\func{bool}{wxIsAbsolutePath}{\param{const wxString\& }{filename}}
|
||||
@@ -440,18 +453,15 @@ If path is empty, the current directory will be used. If filename is empty,
|
||||
no default filename will be supplied. The wildcard determines what files
|
||||
are displayed in the file selector, and file extension supplies a type
|
||||
extension for the required filename. Flags may be a combination of wxOPEN,
|
||||
wxSAVE, wxOVERWRITE\_PROMPT, wxHIDE\_READONLY, or 0. They are only significant
|
||||
at present in Windows.
|
||||
wxSAVE, wxOVERWRITE\_PROMPT, wxHIDE\_READONLY, or 0.
|
||||
|
||||
Both the X and Windows versions implement a wildcard filter. Typing a
|
||||
Both the Unix and Windows versions implement a wildcard filter. Typing a
|
||||
filename containing wildcards (*, ?) in the filename text item, and
|
||||
clicking on Ok, will result in only those files matching the pattern being
|
||||
displayed. In the X version, supplying no default name will result in the
|
||||
wildcard filter being inserted in the filename text item; the filter is
|
||||
ignored if a default name is supplied.
|
||||
displayed.
|
||||
|
||||
Under Windows (only), the wildcard may be a specification for multiple
|
||||
types of file with a description for each, such as:
|
||||
The wildcard may be a specification for multiple types of file
|
||||
with a description for each, such as:
|
||||
|
||||
\begin{verbatim}
|
||||
"BMP files (*.bmp)|*.bmp|GIF files (*.gif)|*.gif"
|
||||
@@ -1919,6 +1929,23 @@ base classes.
|
||||
|
||||
<wx/object.h>
|
||||
|
||||
\membersection{wxBITMAP}\label{wxbitmap}
|
||||
|
||||
\func{}{wxBITMAP}{bitmapName}
|
||||
|
||||
This macro loads a bitmap from either application resources (on the platforms
|
||||
for which they exist, i.e. Windows and OS2) or from an XPM file. It allows to
|
||||
avoid using {\tt #ifdef}s when creating bitmaps.
|
||||
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{Bitmaps and icons overview}{wxbitmapoverview},
|
||||
\helpref{wxICON}{wxicon}
|
||||
|
||||
\wxheading{Include files}
|
||||
|
||||
<wx/gdicmn.h>
|
||||
|
||||
\membersection{WXDEBUG\_NEW}\label{debugnew}
|
||||
|
||||
\func{}{WXDEBUG\_NEW}{arg}
|
||||
@@ -1966,6 +1993,23 @@ Example:
|
||||
|
||||
\helpref{RTTI overview}{runtimeclassoverview}
|
||||
|
||||
\membersection{wxICON}\label{wxicon}
|
||||
|
||||
\func{}{wxICON}{iconName}
|
||||
|
||||
This macro loads an icon from either application resources (on the platforms
|
||||
for which they exist, i.e. Windows and OS2) or from an XPM file. It allows to
|
||||
avoid using {\tt #ifdef}s when creating icons.
|
||||
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{Bitmaps and icons overview}{wxbitmapoverview},
|
||||
\helpref{wxBITMAP}{wxbitmap}
|
||||
|
||||
\wxheading{Include files}
|
||||
|
||||
<wx/gdicmn.h>
|
||||
|
||||
\membersection{WXTRACE}\label{trace}
|
||||
|
||||
\wxheading{Include files}
|
||||
|
@@ -21,6 +21,7 @@ wxDC::DrawBitmap.
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{wxBitmap}{wxbitmap}
|
||||
\helpref{wxInitAllImageHandlers}{wxinitallimagehandlers}
|
||||
|
||||
\latexignore{\rtfignore{\wxheading{Members}}}
|
||||
|
||||
@@ -278,15 +279,16 @@ Returns TRUE if there is a mask active, FALSE otherwise.
|
||||
|
||||
\func{static void}{InitStandardHandlers}{\void}
|
||||
|
||||
Adds the standard image format handlers, which, depending on wxWindows
|
||||
configuration, can be handlers for Windows BMP (loading), PNG
|
||||
(loading and saving) and JPEG (loading and saving) file formats.
|
||||
Internal use only. Adds standard image format handlers. It only install BMP
|
||||
for the time being, which is use by wxBitmap.
|
||||
|
||||
This function is called by wxWindows on startup.
|
||||
This function is called by wxWindows on startup, and shouldn't be called by
|
||||
the user.
|
||||
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{wxImageHandler}{wximagehandler}
|
||||
\helpref{wxInitAllImageHandlers}{wxinitallimagehandlers}
|
||||
|
||||
\membersection{wxImage::InsertHandler}
|
||||
|
||||
@@ -303,11 +305,13 @@ of a given handler class in an application session.}
|
||||
|
||||
\membersection{wxImage::LoadFile}\label{wximageloadfile}
|
||||
|
||||
\func{bool}{LoadFile}{\param{const wxString\&}{ name}, \param{long}{ type}}
|
||||
\func{bool}{LoadFile}{\param{const wxString\&}{ name}, \param{long}{ type = wxBITMAP\_TYPE\_ANY}}
|
||||
|
||||
\func{bool}{LoadFile}{\param{const wxString\&}{ name}, \param{const wxString\&}{ mimetype}}
|
||||
|
||||
Loads an image from a file.
|
||||
Loads an image from a file. If no handler type is provided, the library will
|
||||
try to use wxBITMAP\_TYPE\_BMP or all known handlers previously installed
|
||||
through a call to \helpref{wxImage::InitAllHandlers}{wximageinitallhandlers}.
|
||||
|
||||
\func{bool}{LoadFile}{\param{wxInputStream\&}{ stream}, \param{long}{ type}}
|
||||
|
||||
@@ -328,8 +332,11 @@ The meaning of {\it stream} data is determined by the {\it type} parameter.}
|
||||
\twocolwidtha{5cm}%
|
||||
\begin{twocollist}
|
||||
\twocolitem{{\bf wxBITMAP\_TYPE\_BMP}}{Load a Windows image file.}
|
||||
\twocolitem{{\bf wxBITMAP\_TYPE\_PNG}}{Load a PNG image file.}
|
||||
\twocolitem{{\bf wxBITMAP\_TYPE\_GIF}}{Load a GIF image file.}
|
||||
\twocolitem{{\bf wxBITMAP\_TYPE\_JPEG}}{Load a JPEG image file.}
|
||||
\twocolitem{{\bf wxBITMAP\_TYPE\_PCX}}{Load a PCX image file.}
|
||||
\twocolitem{{\bf wxBITMAP\_TYPE\_PNG}}{Load a PNG image file.}
|
||||
\twocolitem{{\bf wxBITMAP\_TYPE\_PNM}}{Load a PNM image file.}
|
||||
\end{twocollist}
|
||||
|
||||
The validity of these flags depends on the platform and wxWindows configuration.}
|
||||
@@ -437,8 +444,8 @@ mimetype to the named file}
|
||||
|
||||
\func{wxImage}{Rescale}{\param{int}{ width}, \param{int}{ height}}
|
||||
|
||||
Changes the size of the image in-place: after a call to this function, thei
|
||||
mage will have the given width and height.
|
||||
Changes the size of the image in-place: after a call to this function, the
|
||||
image will have the given width and height.
|
||||
|
||||
\wxheading{See also}
|
||||
|
||||
@@ -478,6 +485,13 @@ Example:
|
||||
|
||||
\helpref{Rescale}{wximagerescale}
|
||||
|
||||
\membersection{wxImage::GetSubImage}\label{wximagegetsubimage}
|
||||
|
||||
\constfunc{wxImage}{GetSubImage}{\param{const wxRect&}{rect}}
|
||||
|
||||
Returns a sub image of the current one as long as the rect belongs entirely to
|
||||
the image.
|
||||
|
||||
\membersection{wxImage::SetData}\label{wximagesetdata}
|
||||
|
||||
\func{void}{SetData}{\param{unsigned char*}{data}}
|
||||
@@ -580,6 +594,7 @@ created by IJG.)
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{wxImage}{wximage}
|
||||
\helpref{wxInitAllImageHandlers}{wxinitallimagehandlers}
|
||||
|
||||
\latexignore{\rtfignore{\wxheading{Members}}}
|
||||
|
||||
|
@@ -35,7 +35,7 @@ select multiple items using the SHIFT key and the mouse or special key combinati
|
||||
\twocolitem{\windowstyle{wxLB\_HSCROLL}}{Create horizontal scrollbar if contents are too wide (Windows only).}
|
||||
\twocolitem{\windowstyle{wxLB\_ALWAYS\_SB}}{Always show a vertical scrollbar.}
|
||||
\twocolitem{\windowstyle{wxLB\_NEEDED\_SB}}{Only create a vertical scrollbar if needed.}
|
||||
\twocolitem{\windowstyle{wxLB\_SORT}}{The listbox contents are sorted in alphabetical order.}
|
||||
\twocolitem{\windowstyle{wxLB\_SORT}}{The listbox contents are sorted in alphabetical order. No effect for GTK.}
|
||||
\end{twocollist}
|
||||
|
||||
See also \helpref{window styles overview}{windowstyles}.
|
||||
@@ -113,7 +113,7 @@ Destructor, destroying the list box.
|
||||
|
||||
Adds the item to the end of the list box.
|
||||
|
||||
\func{void}{Append}{\param{const wxString\& }{ item}, \param{char* }{clientData}}
|
||||
\func{void}{Append}{\param{const wxString\& }{ item}, \param{void* }{clientData}}
|
||||
|
||||
Adds the item to the end of the list box, associating the given data
|
||||
with the item.
|
||||
@@ -180,7 +180,7 @@ The zero-based position of the item, or -1 if the string was not found.
|
||||
|
||||
\membersection{wxListBox::GetClientData}\label{wxlistboxgetclientdata}
|
||||
|
||||
\constfunc{char*}{GetClientData}{\param{int}{ n}}
|
||||
\constfunc{void*}{GetClientData}{\param{int}{ n}}
|
||||
|
||||
Returns a pointer to the client data associated with the given item (if any).
|
||||
|
||||
@@ -214,14 +214,13 @@ Applicable to single selection list boxes only.
|
||||
|
||||
\membersection{wxListBox::GetSelections}\label{wxlistboxgetselections}
|
||||
|
||||
\constfunc{int}{GetSelections}{\param{int **}{selections}}
|
||||
\constfunc{int}{GetSelections}{\param{wxArrayInt& }{selections}}
|
||||
|
||||
Gets an array containing the positions of the selected strings.
|
||||
Fill an array of ints with the positions of the currently selected items.
|
||||
|
||||
\wxheading{Parameters}
|
||||
|
||||
\docparam{selections}{A pointer to an integer array, which will be allocated by the function if
|
||||
selects are present. Do not deallocate the returned array - it will be deallocated by the listbox.}
|
||||
\docparam{selections}{A reference to an wxArrayInt instance that is used to store the result of the query.}
|
||||
|
||||
\wxheading{Return value}
|
||||
|
||||
@@ -283,6 +282,9 @@ Insert the given number of strings before the specified position.
|
||||
\docparam{pos}{Position before which to insert the items: for example, if {\it pos} is 0 the items
|
||||
will be inserted in the beginning of the listbox}
|
||||
|
||||
\pythonnote{The first two parameters are collapsed into a single
|
||||
parameter for wxPython, which is a list of strings.}
|
||||
|
||||
\membersection{wxListBox::Number}\label{wxlistboxnumber}
|
||||
|
||||
\constfunc{int}{Number}{\void}
|
||||
@@ -307,7 +309,7 @@ TRUE if the given item is selected, FALSE otherwise.
|
||||
|
||||
\func{void}{Set}{\param{int}{ n}, \param{const wxString*}{ choices}}
|
||||
|
||||
Clears the list box and adds the given strings.
|
||||
Clears the list box and adds the given strings. Not implemented for GTK.
|
||||
|
||||
\wxheading{Parameters}
|
||||
|
||||
@@ -322,7 +324,7 @@ after this function has been called.
|
||||
|
||||
\membersection{wxListBox::SetClientData}\label{wxlistboxsetclientdata}
|
||||
|
||||
\func{void}{SetClientData}{\param{int}{ n}, \param{char* }{data}}
|
||||
\func{void}{SetClientData}{\param{int}{ n}, \param{void* }{data}}
|
||||
|
||||
Associates the given client data pointer with the given item.
|
||||
|
||||
|
@@ -56,6 +56,7 @@ functions that take a \helpref{wxListEvent}{wxlistevent} argument.
|
||||
\twocolitem{{\bf EVT\_LIST\_SET\_INFO(id, func)}}{Information is being supplied (not implemented).}
|
||||
\twocolitem{{\bf EVT\_LIST\_ITEM\_SELECTED(id, func)}}{The item has been selected.}
|
||||
\twocolitem{{\bf EVT\_LIST\_ITEM\_DESELECTED(id, func)}}{The item has been deselected.}
|
||||
\twocolitem{{\bf EVT\_LIST\_ITEM\_ACTIVATED(id, func)}}{The item has been activated (ENTER or double click).}
|
||||
\twocolitem{{\bf EVT\_LIST\_KEY\_DOWN(id, func)}}{A key has been pressed.}
|
||||
\twocolitem{{\bf EVT\_LIST\_INSERT\_ITEM(id, func)}}{An item has been inserted.}
|
||||
\twocolitem{{\bf EVT\_LIST\_COL\_CLICK(id, func)}}{A column ({\bf m\_col}) has been left-clicked.}
|
||||
@@ -129,6 +130,12 @@ Arranges the items in icon or small icon view. This only has effect on Win32. {\
|
||||
|
||||
Creates the list control. See \helpref{wxListCtrl::wxListCtrl}{wxlistctrlconstr} for further details.
|
||||
|
||||
\membersection{wxListCtrl::ClearAll}\label{wxlistctrlclearall}
|
||||
|
||||
\func{void}{ClearAll}{}
|
||||
|
||||
Deletes all items and all columns.
|
||||
|
||||
\membersection{wxListCtrl::DeleteItem}\label{wxlistctrldeleteitem}
|
||||
|
||||
\func{bool}{DeleteItem}{\param{long }{item}}
|
||||
@@ -137,7 +144,7 @@ Deletes the specified item.
|
||||
|
||||
\membersection{wxListCtrl::DeleteAllItems}\label{wxlistctrldeleteallitems}
|
||||
|
||||
\func{bool}{DeleteAllItems}{\void}
|
||||
\func{bool}{DeleteAllItems}{}
|
||||
|
||||
Deletes all the items in the list control.
|
||||
|
||||
@@ -156,7 +163,7 @@ EVT\_LIST\_BEGIN\_LABEL\_EDIT event which can be vetoed so that no
|
||||
text control will appear for in-place editing.
|
||||
|
||||
If the user changed the label (i.e. s/he does not press ESC or leave
|
||||
the text control without changes, a EVT\_LIST\_END\_LABEL\_EDIT event
|
||||
the text control without changes, a EVT\_LIST\_END\_LABEL\_EDIT event
|
||||
will be sent which can be vetoed as well.
|
||||
|
||||
\membersection{wxListCtrl::EnsureVisible}\label{wxlistctrlensurevisible}
|
||||
@@ -239,8 +246,8 @@ Returns the specified image list. {\it which} may be one of:
|
||||
Gets information about the item. See \helpref{wxListCtrl::SetItem}{wxlistctrlsetitem} for more
|
||||
information.
|
||||
|
||||
\pythonnote{The wxPython version of this method takes a parameter
|
||||
representing the item ID, and returns the wxListItem object.
|
||||
\pythonnote{The wxPython version of this method takes an integer parameter
|
||||
for the item ID, and returns the wxListItem object.
|
||||
}
|
||||
|
||||
\membersection{wxListCtrl::GetItemData}\label{wxlistctrlgetitemdata}
|
||||
@@ -369,6 +376,10 @@ giving details in {\it flags}. {\it flags} will be a combination of the followin
|
||||
wxLIST\_HITTEST\_ONITEMSTATEICON.}
|
||||
\end{twocollist}
|
||||
|
||||
\pythonnote{A tuple of values is returned in the wxPython version of
|
||||
thsi method. The first value is the item id and the second is the
|
||||
flags value mentioned above.}
|
||||
|
||||
\membersection{wxListCtrl::InsertColumn}\label{wxlistctrlinsertcolumn}
|
||||
|
||||
\func{long}{InsertColumn}{\param{long }{col}, \param{wxListItem\& }{info}}
|
||||
|
@@ -30,6 +30,7 @@ functions that take a wxListEvent argument.
|
||||
\twocolitem{{\bf EVT\_LIST\_SET\_INFO(id, func)}}{Information is being supplied (not implemented).}
|
||||
\twocolitem{{\bf EVT\_LIST\_ITEM\_SELECTED(id, func)}}{The item has been selected.}
|
||||
\twocolitem{{\bf EVT\_LIST\_ITEM\_DESELECTED(id, func)}}{The item has been deselected.}
|
||||
\twocolitem{{\bf EVT\_LIST\_ITEM\_ACTIVATED(id, func)}}{The item has been activated (ENTER or double click).}
|
||||
\twocolitem{{\bf EVT\_LIST\_KEY\_DOWN(id, func)}}{A key has been pressed.}
|
||||
\twocolitem{{\bf EVT\_LIST\_INSERT\_ITEM(id, func)}}{An item has been inserted.}
|
||||
\twocolitem{{\bf EVT\_LIST\_COL\_CLICK(id, func)}}{A column ({\bf m\_col}) has been left-clicked.}
|
||||
|
@@ -52,6 +52,7 @@ empty, {\it HasPendingMessages()} is also provided which allows to explicitly
|
||||
verify it.
|
||||
|
||||
\helpref{Flush}{wxlogflush}\\
|
||||
\helpref{FlushActive}{wxlogflushactive}\\
|
||||
\helpref{HasPendingMessages}{haspendingmessages}
|
||||
|
||||
\membersection{Customization}\label{wxlogcustomization}
|
||||
@@ -142,6 +143,16 @@ currently. (Almost) for internal use only.
|
||||
Shows all the messages currently in buffer and clears it. If the buffer
|
||||
is already empty, nothing happens.
|
||||
|
||||
\membersection{wxLog::FlushActive}\label{wxlogflushactive}
|
||||
|
||||
\func{static void}{FlushActive}{\void}
|
||||
|
||||
Flushes the current log target if any, does nothing if there is none.
|
||||
|
||||
See also:
|
||||
|
||||
\helpref{Flush}{wxlogflush}
|
||||
|
||||
\membersection{wxLog::HasPendingMessages}\label{haspendingmessages}
|
||||
|
||||
\constfunc{bool}{HasPendingMessages}{\void}
|
||||
@@ -169,7 +180,7 @@ Returns whether the verbose mode is currently active.
|
||||
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 a null value (not empty string) to this function disables message timestamping.
|
||||
Passing a NULL value (not empty string) to this function disables message timestamping.
|
||||
|
||||
\membersection{wxLog::GetTimestamp}\label{wxloggettimestamp}
|
||||
|
||||
|
@@ -25,12 +25,12 @@
|
||||
%\special{!/@scaleunit 1 def}
|
||||
\parskip=10pt
|
||||
\parindent=0pt
|
||||
\title{User Manual for wxWindows 2.1: a portable C++ GUI toolkit}
|
||||
\title{wxWindows 2.1: a portable C++ GUI toolkit}
|
||||
\winhelponly{\author{by Julian Smart et al
|
||||
%\winhelponly{\\$$\image{1cm;0cm}{wxwin.wmf}$$}
|
||||
}}
|
||||
\winhelpignore{\author{Julian Smart, Robert Roebling, Vadim Zeitlin et al}
|
||||
\date{August 6th 1999}
|
||||
\date{August 27th 1999}
|
||||
}
|
||||
\makeindex
|
||||
\begin{document}
|
||||
|
@@ -33,11 +33,16 @@ Default constructor.
|
||||
|
||||
Constructs a mask from a monochrome bitmap.
|
||||
|
||||
\pythonnote{This is the default constructor for wxMask in wxPython.}
|
||||
|
||||
\func{}{wxMask}{\param{const wxBitmap\& }{bitmap}, \param{const wxColour\& }{colour}}
|
||||
|
||||
Constructs a mask from a bitmap and a colour that indicates the background. Not
|
||||
yet implemented for GTK.
|
||||
|
||||
\pythonnote{wxPython has an alternate wxMask constructor matching this
|
||||
form called \tt{wxMaskColour}.}
|
||||
|
||||
\func{}{wxMask}{\param{const wxBitmap\& }{bitmap}, \param{int}{ index}}
|
||||
|
||||
Constructs a mask from a bitmap and a palette index that indicates the background. Not
|
||||
|
@@ -635,6 +635,12 @@ Determines whether an item is enabled.
|
||||
|
||||
TRUE if the item was found and is enabled, FALSE otherwise.
|
||||
|
||||
\membersection{wxMenuBar::Refresh}\label{wxmenubarrefresh}
|
||||
|
||||
\func{void}{Refresh}{\void}
|
||||
|
||||
Redraw the menu bar
|
||||
|
||||
\membersection{wxMenuBar::SetHelpString}\label{wxmenubarsethelpstring}
|
||||
|
||||
\func{void}{SetHelpString}{\param{int}{ id}, \param{const wxString\& }{helpString}}
|
||||
|
@@ -70,7 +70,8 @@ default ones which are loaded automatically) containing MIME
|
||||
information in either mailcap(5) or mime.types(5) format.
|
||||
|
||||
\helpref{ReadMailcap}{wxmimetypesmanagerreadmailcap}\\
|
||||
\helpref{ReadMimeTypes}{wxmimetypesmanagerreadmimetypes}
|
||||
\helpref{ReadMimeTypes}{wxmimetypesmanagerreadmimetypes}\\
|
||||
\helpref{AddFallbacks}{wxmimetypesmanageraddfallbacks}
|
||||
|
||||
%%%%% MEMBERS HERE %%%%%
|
||||
\helponly{\insertatlevel{2}{
|
||||
@@ -93,6 +94,17 @@ additional mailcap/mime.types files.
|
||||
|
||||
Destructor is not virtual, so this class should not be derived from.
|
||||
|
||||
\membersection{wxMimeTypesManager::AddFallbacks}\label{wxmimetypesmanageraddfallbacks}
|
||||
|
||||
\func{void}{AddFallbacks}{\param{const wxFileTypeInfo *}{fallbacks}}
|
||||
|
||||
This function may be used to provdie hard-wired fallbacks for the MIME types
|
||||
and extensions that might not be present in the system MIME database.
|
||||
|
||||
% TODO
|
||||
|
||||
Please see the typetest sample for an example of using it.
|
||||
|
||||
\membersection{wxMimeTypesManager::GetFileTypeFromExtension}\label{wxmimetypesmanagergetfiletypefromextension}
|
||||
|
||||
\func{wxFileType*}{GetFileTypeFromExtension}{\param{const wxString\&}{ extension}}
|
||||
|
@@ -457,6 +457,13 @@ Returns a reference to the internal wxPrintData object.
|
||||
|
||||
Returns TRUE if the user has selected printing to a file.
|
||||
|
||||
\membersection{wxPrintDialogData::GetSelection}\label{wxprintdialogdatagetselection}
|
||||
|
||||
\constfunc{bool}{GetSelection}{\void}
|
||||
|
||||
Returns TRUE if the user requested that the selection be printed (where 'selection' is
|
||||
a concept specific to the application).
|
||||
|
||||
\membersection{wxPrintDialogData::GetToPage}\label{wxprintdialogdatagettopage}
|
||||
|
||||
\constfunc{int}{GetToPage}{\void}
|
||||
@@ -505,6 +512,13 @@ Sets the internal wxPrintData.
|
||||
|
||||
Sets the 'Print to file' checkbox to TRUE or FALSE.
|
||||
|
||||
\membersection{wxPrintDialogData::SetSelection}\label{wxprintdialogdatasetselection}
|
||||
|
||||
\func{void}{SetSelection}{\param{bool}{ flag}}
|
||||
|
||||
Selects the 'Selection' radio button. The effect of printing the selection depends on how the application
|
||||
implements this command, if at all.
|
||||
|
||||
\membersection{wxPrintDialogData::SetSetupDialog}\label{wxprintdialogdatasetsetupdialog}
|
||||
|
||||
\func{void}{SetSetupDialog}{\param{bool }{flag}}
|
||||
|
@@ -18,13 +18,11 @@ progress bar. Optionally, it can display an ABORT button.
|
||||
|
||||
\membersection{wxProgressDialog::wxProgressDialog}\label{wxprogressdialogconstr}
|
||||
|
||||
\func{}{wxProgressDialog}
|
||||
{\param{const wxString\& }{title},
|
||||
\param{const wxString\& }{message},\rtfsp
|
||||
\param{int }{maximum = 100},
|
||||
\param{wxWindow * }{parent = NULL},\rtfsp
|
||||
\param{int }{style = wxPD\_AUTO\_HIDE | wxPD\_APP\_MODAL}
|
||||
}
|
||||
\func{}{wxProgressDialog}{\param{const wxString\& }{title},
|
||||
\param{const wxString\& }{message},\rtfsp
|
||||
\param{int }{maximum = 100},
|
||||
\param{wxWindow * }{parent = NULL},\rtfsp
|
||||
\param{int }{style = wxPD\_AUTO\_HIDE | wxPD\_APP\_MODAL}}
|
||||
|
||||
Constructor. Creates the dialog, displays it and disables user input
|
||||
for other windows, or, if wxPD\_APP\_MODAL flag is not given, for its parent
|
||||
@@ -43,20 +41,20 @@ window only.
|
||||
\docparam{message}{Message to show on the dialog.}
|
||||
|
||||
\docparam{style}{The dialog style. This is the combination of the following
|
||||
bitmask constants defined in wx/defs.h:
|
||||
bitmask constants defined in wx/defs.h:
|
||||
|
||||
\twocolwidtha{7cm}
|
||||
\begin{twocollist}\itemsep=0pt
|
||||
\twocolitem{wxPD\_APP\_MODAL}{Make the progress dialog modal. If this flag is
|
||||
not given, it is only "locally" modal - that is the input to the parent
|
||||
window is disabled, but not to the other ones.}
|
||||
not given, it is only "locally" modal - that is the input to the parent
|
||||
window is disabled, but not to the other ones.}
|
||||
\twocolitem{wxPD\_AUTO\_HIDE}{By default, the progress dialog will disappear
|
||||
from screen as soon as the maximum value of the progress meter has been
|
||||
reached. This flag prevents it from doing it - instead the dialog will wait
|
||||
until the user closes it.}
|
||||
from screen as soon as the maximum value of the progress meter has been
|
||||
reached. This flag prevents it from doing it - instead the dialog will wait
|
||||
until the user closes it.}
|
||||
\twocolitem{wxPD\_CAN\_ABORT}{This flag tells the dialog that it should have a
|
||||
"Cancel" button which the user may press. If this happens, the next call to
|
||||
\helpref{Update()}{wxprogressdialogupdate} will return FALSE.}
|
||||
"Cancel" button which the user may press. If this happens, the next call to
|
||||
\helpref{Update()}{wxprogressdialogupdate} will return FALSE.}
|
||||
\twocolitem{wxPD\_ELAPSED\_TIME}{This flag tells the dialog that it should show elapsed time (since creating the dialog).}
|
||||
\twocolitem{wxPD\_ESTIMATED\_TIME}{This flag tells the dialog that it should show estimated time.}
|
||||
\twocolitem{wxPD\_REMAINING\_TIME}{This flag tells the dialog that it should show remaining time.}
|
||||
@@ -66,8 +64,8 @@ window only.
|
||||
\membersection{wxProgressDialog::\destruct{wxProgressDialog}}
|
||||
|
||||
\func{}{\destruct{wxMessageDialog}}{\void}
|
||||
Destructor.
|
||||
Deletes the dialog and enables all top level windows.
|
||||
|
||||
Destructor. Deletes the dialog and enables all top level windows.
|
||||
|
||||
\membersection{wxProgressDialog::Update}\label{wxprogressdialogupdate}
|
||||
|
||||
@@ -84,10 +82,10 @@ or ask the user for the confirmation and if the abort is not confirmed the
|
||||
dialog may be resumed with \helpref{Resume}{wxprogressdialogresume} function.
|
||||
|
||||
\docparam{value}{The new value of the progress meter. It must be strictly less
|
||||
than the maximum value given to the constructor (i.e., as usual in C, the
|
||||
index runs from $0$ to $maximum-1$).}
|
||||
than the maximum value given to the constructor (i.e., as usual in C, the
|
||||
index runs from $0$ to $maximum-1$).}
|
||||
\docparam{newmsg}{The new messages for the progress dialog text, if none is
|
||||
given the message is not changed.}
|
||||
given the message is not changed.}
|
||||
|
||||
\membersection{wxProgressDialog::Resume}\label{wxprogressdialogresume}
|
||||
|
||||
|
30
docs/latex/wx/sbsizer.tex
Normal file
30
docs/latex/wx/sbsizer.tex
Normal file
@@ -0,0 +1,30 @@
|
||||
\section{\class{wxStaticBoxSizer}}\label{wxstaticboxsizer}
|
||||
|
||||
wxStaticBoxSizer is a sizer derived from wxBoxSizer but adds a static
|
||||
box around the sizer. Note that this static box has to be created
|
||||
separately.
|
||||
|
||||
See also \helpref{wxSizer}{wxsizer}, \helpref{wxStaticBox}{wxstaticbox} and
|
||||
\helpref{wxBoxSizer}{wxboxsizer}.
|
||||
|
||||
\wxheading{Derived from}
|
||||
|
||||
\helpref{wxBoxSizer}{wxboxsizer}\\
|
||||
\helpref{wxSizer}{wxsizer}\\
|
||||
\helpref{wxObject}{wxobject}
|
||||
|
||||
\latexignore{\rtfignore{\wxheading{Members}}}
|
||||
|
||||
\membersection{wxStaticBoxSizer::wxStaticBoxSizer}\label{wxstaticboxsizerwxstaticboxsizer}
|
||||
|
||||
\func{}{wxStaticBoxSizer}{\param{wxStaticBox* }{box}, \param{int }{orient}}
|
||||
|
||||
Constructor. It takes an associated static box and the orientation {\it orient}
|
||||
as parameters - orient can be either of wxVERTICAL or wxHORIZONTAL.
|
||||
|
||||
\membersection{wxStaticBoxSizer::GetStaticBox}\label{wxstaticboxsizergetstaticbox}
|
||||
|
||||
\func{wxStaticBox*}{GetStaticBox}{\void}
|
||||
|
||||
Returns the static box associated with the sizer.
|
||||
|
@@ -50,25 +50,6 @@ Default destructor.
|
||||
|
||||
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
|
||||
%
|
||||
|
@@ -57,13 +57,13 @@ functions that take a \helpref{wxScrollEvent}{wxscrollevent} argument:
|
||||
\twocolwidtha{7cm}
|
||||
\begin{twocollist}
|
||||
\twocolitem{{\bf EVT\_COMMAND\_SCROLL(id, func)}}{Catch all scroll commands.}
|
||||
\twocolitem{{\bf EVT\_COMMAND\_TOP(id, func)}}{Catch a command to put the scroll thumb at the maximum position.}
|
||||
\twocolitem{{\bf EVT\_COMMAND\_BOTTOM(id, func)}}{Catch a command to put the scroll thumb at the maximum position.}
|
||||
\twocolitem{{\bf EVT\_COMMAND\_LINEUP(id, func)}}{Catch a line up command.}
|
||||
\twocolitem{{\bf EVT\_COMMAND\_LINEDOWN(id, func)}}{Catch a line down command.}
|
||||
\twocolitem{{\bf EVT\_COMMAND\_PAGEUP(id, func)}}{Catch a page up command.}
|
||||
\twocolitem{{\bf EVT\_COMMAND\_PAGEDOWN(id, func)}}{Catch a page down command.}
|
||||
\twocolitem{{\bf EVT\_COMMAND\_THUMBTRACK(id, func)}}{Catch a thumbtrack command (continuous movement of the scroll thumb).}
|
||||
\twocolitem{{\bf EVT\_COMMAND\_SCROLL\_TOP(id, func)}}{Catch a command to put the scroll thumb at the maximum position.}
|
||||
\twocolitem{{\bf EVT\_COMMAND\_SCROLL\_BOTTOM(id, func)}}{Catch a command to put the scroll thumb at the maximum position.}
|
||||
\twocolitem{{\bf EVT\_COMMAND\_SCROLL\_LINEUP(id, func)}}{Catch a line up command.}
|
||||
\twocolitem{{\bf EVT\_COMMAND\_SCROLL\_LINEDOWN(id, func)}}{Catch a line down command.}
|
||||
\twocolitem{{\bf EVT\_COMMAND\_SCROLL\_PAGEUP(id, func)}}{Catch a page up command.}
|
||||
\twocolitem{{\bf EVT\_COMMAND\_SCROLL\_PAGEDOWN(id, func)}}{Catch a page down command.}
|
||||
\twocolitem{{\bf EVT\_COMMAND\_SCROLL\_THUMBTRACK(id, func)}}{Catch a thumbtrack command (continuous movement of the scroll thumb).}
|
||||
\end{twocollist}%
|
||||
|
||||
\wxheading{See also}
|
||||
|
@@ -16,6 +16,7 @@ scroll position.
|
||||
|
||||
\wxheading{Derived from}
|
||||
|
||||
\helpref{wxPanel}{wxpanel}\\
|
||||
\helpref{wxWindow}{wxwindow}\\
|
||||
\helpref{wxEvtHandler}{wxevthandler}\\
|
||||
\helpref{wxObject}{wxobject}
|
||||
|
192
docs/latex/wx/sizer.tex
Normal file
192
docs/latex/wx/sizer.tex
Normal file
@@ -0,0 +1,192 @@
|
||||
\section{\class{wxSizer}}\label{wxsizer}
|
||||
|
||||
wxSizer is the abstract base class used for laying out subwindows in a window. You
|
||||
cannot use wxSizer directly; instead, you'll have to use \helpref{wxBoxSizer}{wxboxsizer}
|
||||
or \helpref{wxStaticBoxSizer}{wxstaticboxsizer}.
|
||||
|
||||
The layout algorithm used by sizers in wxWindows closely related to layout
|
||||
in other GUI toolkits, such as Java's AWT, the GTK toolkit or the Qt toolkit. It is
|
||||
based upon the idea of the individual subwindows reporting their minimal required
|
||||
size and their ability to get stretched if the size of the parent window has changed.
|
||||
This will most often mean, that the programmer does not set the original size of
|
||||
the dialog in the beginning, rather the top-most sizer will get queried and it will
|
||||
then query its children. Its children can be normal windows or other sizers, so that
|
||||
a hierachy of sizer can be constructed. Note that sizer are not derived from wxWindows
|
||||
and thus do not interfere with tab ordering and require very little resources compared
|
||||
to a real window on screen.
|
||||
|
||||
What makes sizers so well fitted for use in wxWindows, is the fact that every control
|
||||
reports its own minimal size and the algorithm can handle differences in font sizes
|
||||
or different window (dialog item) sizes on different platforms without problems. If e.g.
|
||||
the standard font as well as the overall design of Motif widgets requires more space than
|
||||
on Windows, the intial dialog size will automatically be bigger on Motif than on Windows.
|
||||
|
||||
\pythonnote{If you wish to create a sizer class in wxPython you should
|
||||
derive the class from \tt{wxPySizer} in order to get Python-aware
|
||||
capabilities for the various virtual methods.}
|
||||
|
||||
\wxheading{Derived from}
|
||||
|
||||
\helpref{wxObject}{wxobject}
|
||||
|
||||
\latexignore{\rtfignore{\wxheading{Members}}}
|
||||
|
||||
\membersection{wxSizer::wxSizer}\label{wxsizerwxsizer}
|
||||
|
||||
\func{}{wxSizer}{\void}
|
||||
|
||||
The constructor. Note that wxSizer is an abstract base class and may not
|
||||
be instantiated.
|
||||
|
||||
\membersection{wxSizer::\destruct{wxSizer}}\label{wxsizerdtor}
|
||||
|
||||
\func{}{\destruct{wxSizer}}{\void}
|
||||
|
||||
The destructor.
|
||||
|
||||
\membersection{wxSizer::Add}\label{wxsizeradd}
|
||||
|
||||
\func{void}{Add}{\param{wxWindow* }{window}, \param{int }{option = 0},\param{int }{flag = 0}, \param{int }{border = 0}, \param{wxObject* }{userData = NULL}}
|
||||
|
||||
\func{void}{Add}{\param{wxSizer* }{sizer}, \param{int }{option = 0}, \param{int }{flag = 0}, \param{int }{border = 0}, \param{wxObject* }{userData = NULL}}
|
||||
|
||||
\func{void}{Add}{\param{int }{width}, \param{int }{height}, \param{int }{option = 0}, \param{int }{flag = 0}, \param{int }{border = 0}, \param{wxObject* }{userData = NULL}}
|
||||
|
||||
Adds the {\it window} to the sizer. As wxSizer itself is an abstract class, the parameters
|
||||
have no meaning in the wxSizer class itself, but as there currently is only one class
|
||||
deriving directly from wxSizer and this class does not override these methods, the meaning
|
||||
of the paramters is described here:
|
||||
|
||||
\docparam{window}{The window to be added to the sizer. Its initial size (either set explicitly by the
|
||||
user or calculated internally when using wxDefaultSize) is interpreted as the minimal and in many
|
||||
cases also the initial size. This is particularly useful in connection with \helpref{SetSizeHint}{wxsizersetsizehints}.}
|
||||
|
||||
\docparam{sizer}{The (child-)sizer to be added to the sizer. This allows placing a child sizer in a
|
||||
sizer and thus to create hierarchies of sizers (typically a vertical box as the top sizer and several
|
||||
horizontal boxes on the level beneath).}
|
||||
|
||||
\docparam{width and height}{The dimension of a spacer to be added to the sizer. Adding spacers to sizers
|
||||
gives more flexilibilty in the design of dialogs; imagine for example a vertical box with two buttons at the
|
||||
bottom of a dialog: you might want to insert a space between the two buttons and make that space stretchable
|
||||
using the {\it option} flag and the result will be that the left button will be aligned with the left
|
||||
side of the dialog and the right button with the right side - the space in between will shrink and grow with
|
||||
the dialog.}
|
||||
|
||||
\docparam{option}{Although the meaning of this parameter is undefined in wxSizer, it is used in wxBoxSizer
|
||||
to indicate if a child of a sizer can change its size in the main orientation of the wxBoxSizer - where
|
||||
0 stands for not changable and a value of more than zero in interpreted relative to the value of other
|
||||
children of the same wxBoxSizer. You might, e.g., have a horizontal wxBoxSizer with three children, two
|
||||
of which are supposed to change their size with the sizer, then the two stretchable windows would get a
|
||||
value of 1 each to make them grow and shrink equally with the sizer's vertical dimension.}
|
||||
|
||||
\docparam{flag}{This parameter can be used to set a number of flags which can be combined using
|
||||
the binary OR operator |. Two main behaviours are defined using these flags: One is the border
|
||||
around a window: the {\it border} parameter determines the border width whereas the flags given here
|
||||
determine where the border may be (wxTOP, wxBOTTOM, wxLEFT, wxRIGHT or wxALL). The other flags
|
||||
determine the child window's behaviour if the size of the sizer changes, but - in contrast to
|
||||
the {\it option} flag - not in the main orientation, but the respectively other orientation. So
|
||||
if you created a wxBoxSizer with the wxVERTICAL option, these flags will be relevant if the
|
||||
sizer changes its horizontal size. A child may get resized to completely fill out the new size (using
|
||||
either wxGROW or wxEXPAND), may get centered (wxCENTER or wxCENTRE) or may get aligned to either
|
||||
side (wxALIGN\_LEFT and wxALIGN\_TOP are set to 0 and thus represent the default, wxALIGN\_RIGHT and
|
||||
wxALIGN\_BOTTOM have their obvious meaning.}
|
||||
|
||||
\docparam{border}{Determines the border width, if the {\it flag} parameter is set to any border.}
|
||||
|
||||
\docparam{userData}{Allows an extra object to be attached to the sizer
|
||||
item, for use in derived classes when sizing information is more
|
||||
complex than what {\it option} and {\it flag} will allow for.}
|
||||
|
||||
\membersection{wxSizer::Prepend}\label{wxsizerprepend}
|
||||
|
||||
\func{void}{Prepend}{\param{wxWindow* }{window}, \param{int }{option = 0}, \param{int }{flag = 0}, \param{int }{border = 0}, \param{wxObject* }{userData = NULL}}
|
||||
|
||||
\func{void}{Prepend}{\param{wxSizer* }{sizer}, \param{int }{option = 0}, \param{int }{flag = 0}, \param{int }{border = 0}, \param{wxObject* }{userData = NULL}}
|
||||
|
||||
\func{void}{Prepend}{\param{int }{width}, \param{int }{height}, \param{int }{option = 0}, \param{int }{flag = 0}, \param{int }{border= 0}, \param{wxObject* }{userData = NULL}}
|
||||
|
||||
Same as \helpref{wxSizer::Add}{wxsizeradd}, but prepends the items to the beginning of the
|
||||
list of items (windows, subsizers or spaces) owned by this sizer.
|
||||
|
||||
\membersection{wxSizer::Remove}\label{wxsizerremove}
|
||||
|
||||
\func{bool}{Remove}{\param{wxWindow* }{window}}
|
||||
|
||||
\func{bool}{Remove}{\param{wxSizer* }{sizer}}
|
||||
|
||||
\func{bool}{Remove}{\param{int }{nth}}
|
||||
|
||||
Removes a child from the sizer. {\it window} is the window to be removed, {\it sizer} the
|
||||
equivalent sizer and {\it nth} is the position of the child in the sizer, typically 0 for
|
||||
the first item. This method does not cause any layout or resizing to take place and does
|
||||
not delete the window itself. Call \helpref{wxSizer::Layout}{wxsizerlayout} for updating
|
||||
the layout "on screen" after removing a child fom the sizer.
|
||||
|
||||
Returns TRUE if the child item was found and removed, FALSE otherwise.
|
||||
|
||||
\membersection{wxSizer::SetDimension}\label{wxsizersetdimension}
|
||||
|
||||
\func{void}{SetDimension}{\param{int }{x}, \param{int }{y}, \param{int }{width}, \param{int }{height}}
|
||||
|
||||
Call this to force the sizer to take the given dimension and thus force the items owned
|
||||
by the sizer to resize themselves according to the rules defined by the paramater in the
|
||||
\helpref{wxSizer::Add}{wxsizeradd} and \helpref{wxSizer::Prepend}{wxsizerprepend} methods.
|
||||
|
||||
\membersection{wxSizer::GetSize}\label{wxsizergetsize}
|
||||
|
||||
\func{wxSize}{GetSize}{\void}
|
||||
|
||||
Returns the current size of the sizer.
|
||||
|
||||
\membersection{wxSizer::GetPosition}\label{wxsizergetposition}
|
||||
|
||||
\func{wxPoint}{GetPosition}{\void}
|
||||
|
||||
Returns the current position of the sizer.
|
||||
|
||||
\membersection{wxSizer::GetMinSize}\label{wxsizergetminsize}
|
||||
|
||||
\func{wxSize}{GetMinSize}{\void}
|
||||
|
||||
Returns the minimal size of the sizer.
|
||||
|
||||
\membersection{wxSizer::RecalcSizes}\label{wxsizerrecalcsizes}
|
||||
|
||||
\func{void}{RecalcSizes}{\void}
|
||||
|
||||
This method is abstract and has to be overwritten by any derived class.
|
||||
Here, the sizer will do the actual calculation of its children's positions
|
||||
and sizes.
|
||||
|
||||
\membersection{wxSizer::CalcMin}\label{wxsizercalcmin}
|
||||
|
||||
\func{wxSize}{CalcMin}{\void}
|
||||
|
||||
This method is abstract and has to be overwritten by any derived class.
|
||||
Here, the sizer will do the actual calculation of its children minimal sizes.
|
||||
|
||||
\membersection{wxSizer::Layout}\label{wxsizerlayout}
|
||||
|
||||
\func{void}{Layout}{\void}
|
||||
|
||||
Call this to force laying out the children anew, e.g. after having added a child
|
||||
to or removed a child (window, other sizer or space) from the sizer while keeping
|
||||
the current dimension.
|
||||
|
||||
\membersection{wxSizer::Fit}\label{wxsizerfit}
|
||||
|
||||
\func{void}{Fit}{\param{wxWindow* }{window}}
|
||||
|
||||
Tell the sizer to resize the {\it window} to match the sizer's minimal size. This
|
||||
is commonly done in the constructor of the window itself, see sample in the description
|
||||
of \helpref{wxBoxSizer}{wxboxsizer}.
|
||||
|
||||
\membersection{wxSizer::SetSizeHints}\label{wxsizersetsizehints}
|
||||
|
||||
\func{void}{SetSizeHints}{\param{wxWindow* }{window}}
|
||||
|
||||
Tell the sizer to set the minimal size of the {\it window} to match the sizer's minimal size.
|
||||
This is commonly done in the constructor of the window itself, see sample in the description
|
||||
of \helpref{wxBoxSizer}{wxboxsizer} if the window is resizable (as many dialogs under Unix and
|
||||
frames on probably all platforms).
|
||||
|
@@ -8,9 +8,31 @@
|
||||
|
||||
<wx/socket.h>
|
||||
|
||||
\wxheading{See also}
|
||||
\wxheading{wxSocket errors}%\label{wxsocketerrs} % Labels don't work on a non-section!
|
||||
|
||||
GSocket for wxWindows
|
||||
\twocolwidtha{7cm}
|
||||
\begin{twocollist}\itemsep=0pt
|
||||
\twocolitem{{\bf wxSOCKET\_NOERROR}}{No error happened.}
|
||||
\twocolitem{{\bf wxSOCKET\_INVOP}}{Invalid operation.}
|
||||
\twocolitem{{\bf wxSOCKET\_IOERR}}{Input/Output error.}
|
||||
\twocolitem{{\bf wxSOCKET\_INVADDR}}{Invalid address passed to wxSocket.}
|
||||
\twocolitem{{\bf wxSOCKET\_INVSOCK}}{Invalid socket (uninitialized).}
|
||||
\twocolitem{{\bf wxSOCKET\_NOHOST}}{No corresponding host.}
|
||||
\twocolitem{{\bf wxSOCKET\_INVPORT}}{Invalid port.}
|
||||
\twocolitem{{\bf wxSOCKET\_TRYAGAIN}}{The IO call has a timeout or is in non-blocking mode.}
|
||||
\twocolitem{{\bf wxSOCKET\_MEMERR}}{Memory exhausted.}
|
||||
\end{twocollist}%
|
||||
|
||||
\wxheading{wxSocket events}
|
||||
|
||||
\twocolwidtha{7cm}
|
||||
\begin{twocollist}\itemsep=0pt
|
||||
\twocolitem{{\bf wxSOCKET\_INPUT}}{Some data are ready to be got.}
|
||||
\twocolitem{{\bf wxSOCKET\_OUTPUT}}{The socket is ready to be written to.}
|
||||
\twocolitem{{\bf wxSOCKET\_CONNECTION}}{Someone want to connect our server.}
|
||||
\twocolitem{{\bf wxSOCKET\_LOST}}{The connection has been broken.}
|
||||
\twocolitem{{\bf wxSOCKET\_MAX\_EVENT}}{This should never happen but the compiler may complain about it.}
|
||||
\end{twocollist}%
|
||||
|
||||
% ---------------------------------------------------------------------------
|
||||
% Event handling
|
||||
@@ -78,10 +100,36 @@ Destroys the wxSocketBase object.
|
||||
%
|
||||
\membersection{wxSocketBase::SetNotify}\label{wxsocketbasesetnotify}
|
||||
|
||||
\func{void}{SetNotify}{\param{GSocketEventFlags}{ event_flags}}
|
||||
\func{void}{SetNotify}{\param{wxSocketEventFlags}{ event_flags}}
|
||||
|
||||
SetNotify setups which socket events are to be sent to the event handler.
|
||||
For more information on socket events see GSocket events.
|
||||
You specify in parameters a mask of wxSocket events. The flags is:
|
||||
|
||||
\twocolwidtha{7cm}
|
||||
\begin{twocollist}\itemsep=0pt
|
||||
\twocolitem{{\bf wxSOCKET\_INPUT\_FLAG}}{to receive wxSOCKET_INPUT}
|
||||
\twocolitem{{\bf wxSOCKET\_OUTPUT\_FLAG}}{to receive wxSOCKET_OUTPUT}
|
||||
\twocolitem{{\bf wxSOCKET\_CONNECTION\_FLAG}}{to receive wxSOCKET_CONNECTION}
|
||||
\twocolitem{{\bf wxSOCKET\_LOST\_FLAG}}{to receive wxSOCKET_LOST}
|
||||
\end{twocollist}%
|
||||
|
||||
For example:
|
||||
\begin{verbatim}
|
||||
sock.SetNotify(wxSOCKET\_INPUT\_FLAG | wxSOCKET\_LOST\_FLAG);
|
||||
\end{verbatim}
|
||||
In this example, the user will be notified about incoming socket datas and
|
||||
a broken connection.
|
||||
|
||||
For more information on socket events see \helpref{wxSocket events}{wxsocketbase}.
|
||||
|
||||
%
|
||||
% SetTimeout
|
||||
%
|
||||
\membersection{wxSocketBase::SetTimeout}{wxsocketbasesettimeout}
|
||||
|
||||
\func{void}{SetTimeout}{\param{int }{seconds}}
|
||||
|
||||
This function sets the socket timeout in seconds.
|
||||
|
||||
%
|
||||
% Notify
|
||||
@@ -136,15 +184,15 @@ Returns TRUE if the socket mustn't wait.
|
||||
|
||||
\membersection{wxSocketBase::LastCount}\label{wxsocketbaselastcount}
|
||||
|
||||
\constfunc{size\_t}{LastCount}{\void}
|
||||
\constfunc{wxUint32}{LastCount}{\void}
|
||||
|
||||
Returns the number of bytes read or written by the last IO call.
|
||||
|
||||
\membersection{wxSocketBase::LastError}\label{wxsocketbaselasterror}
|
||||
|
||||
\constfunc{GSocketError}{LastError}{\void}
|
||||
\constfunc{wxSocketError}{LastError}{\void}
|
||||
|
||||
Returns an error in the GSocket format. See GSocket errors.
|
||||
Returns the last occured wxSocket error. See \helpref{wxSocket errors}{wxsocketbase}.
|
||||
|
||||
% ---------------------------------------------------------------------------
|
||||
% IO calls
|
||||
@@ -154,7 +202,7 @@ Returns an error in the GSocket format. See GSocket errors.
|
||||
%
|
||||
\membersection{wxSocketBase::Peek}\label{wxsocketbasepeek}
|
||||
|
||||
\func{wxSocketBase\&}{Peek}{\param{char *}{ buffer}, \param{size\_t}{ nbytes}}
|
||||
\func{wxSocketBase\&}{Peek}{\param{char *}{ buffer}, \param{wxUint32}{ 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.
|
||||
@@ -180,7 +228,7 @@ Returns a reference to the current object.
|
||||
%
|
||||
\membersection{wxSocketBase::Read}\label{wxsocketbaseread}
|
||||
|
||||
\func{wxSocketBase\&}{Read}{\param{char *}{ buffer}, \param{size\_t}{ nbytes}}
|
||||
\func{wxSocketBase\&}{Read}{\param{char *}{ buffer}, \param{wxUint32}{ nbytes}}
|
||||
|
||||
This function reads a buffer of {\it nbytes} bytes from the socket.
|
||||
|
||||
@@ -219,7 +267,7 @@ This remark is also valid for all IO call.
|
||||
%
|
||||
\membersection{wxSocketBase::Write}\label{wxsocketbasewrite}
|
||||
|
||||
\func{wxSocketBase\&}{Write}{\param{const char *}{ buffer}, \param{size\_t}{ nbytes}}
|
||||
\func{wxSocketBase\&}{Write}{\param{const char *}{ buffer}, \param{wxUint32}{ nbytes}}
|
||||
|
||||
This function writes a buffer of {\it nbytes} bytes from the socket.
|
||||
|
||||
@@ -256,7 +304,7 @@ Returns a reference to the current object.
|
||||
%
|
||||
\membersection{wxSocketBase::WriteMsg}\label{wxsocketbasewritemsg}
|
||||
|
||||
\func{wxSocketBase\&}{WriteMsg}{\param{const char *}{ buffer}, \param{size\_t}{ nbytes}}
|
||||
\func{wxSocketBase\&}{WriteMsg}{\param{const char *}{ buffer}, \param{wxUint32}{ 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
|
||||
@@ -284,7 +332,7 @@ Returns a reference to the current object.
|
||||
%
|
||||
\membersection{wxSocketBase::ReadMsg}\label{wxsocketbasereadmsg}
|
||||
|
||||
\func{wxSocketBase\&}{ReadMsg}{\param{char *}{ buffer}, \param{size\_t}{ nbytes}}
|
||||
\func{wxSocketBase\&}{ReadMsg}{\param{char *}{ buffer}, \param{wxUint32}{ 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
|
||||
@@ -310,9 +358,9 @@ Returns a reference to the current object.
|
||||
%
|
||||
% Unread
|
||||
%
|
||||
\membersection{wxSocketBase::UnRead}\label{wxsocketbaseunread}
|
||||
\membersection{wxSocketBase::Unread}\label{wxsocketbaseunread}
|
||||
|
||||
\func{wxSocketBase\&}{UnRead}{\param{const char *}{ buffer}, \param{size\_t}{ nbytes}}
|
||||
\func{wxSocketBase\&}{Unread}{\param{const char *}{ buffer}, \param{wxUint32}{ 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.
|
||||
@@ -349,7 +397,7 @@ doesn't wait.
|
||||
% ---------------------------------------------------------------------------
|
||||
\membersection{wxSocketBase::Wait}\label{wxsocketbasewait}
|
||||
|
||||
\func{bool}{Wait}{\param{long}{ seconds = -1}, \param{long}{ microsecond = 0}}
|
||||
\func{bool}{Wait}{\param{long}{ seconds = -1}, \param{long}{ millisecond = 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
|
||||
@@ -359,7 +407,7 @@ established connection.
|
||||
|
||||
\docparam{seconds}{Number of seconds to wait. By default, it waits infinitely.}
|
||||
|
||||
\docparam{microsecond}{Number of microseconds to wait.}
|
||||
\docparam{millisecond}{Number of milliseconds to wait.}
|
||||
|
||||
\wxheading{Return value}
|
||||
|
||||
@@ -376,7 +424,7 @@ Returns TRUE if an event occured, FALSE if the timeout was reached.
|
||||
%
|
||||
\membersection{wxSocketBase::WaitForRead}\label{wxsocketbasewaitforread}
|
||||
|
||||
\func{bool}{WaitForRead}{\param{long}{ seconds = -1}, \param{long}{ microsecond = 0}}
|
||||
\func{bool}{WaitForRead}{\param{long}{ seconds = -1}, \param{long}{ millisecond = 0}}
|
||||
|
||||
This function waits for a read event.
|
||||
|
||||
@@ -384,7 +432,7 @@ This function waits for a read event.
|
||||
|
||||
\docparam{seconds}{Number of seconds to wait. By default, it waits infinitely.}
|
||||
|
||||
\docparam{microsecond}{Number of microseconds to wait.}
|
||||
\docparam{millisecond}{Number of milliseconds to wait.}
|
||||
|
||||
\wxheading{Return value}
|
||||
|
||||
@@ -401,7 +449,7 @@ Returns TRUE if a byte arrived, FALSE if the timeout was reached.
|
||||
%
|
||||
\membersection{wxSocketBase::WaitForWrite}\label{wxsocketbasewaitforwrite}
|
||||
|
||||
\func{bool}{WaitForWrite}{\param{long}{ seconds = -1}, \param{long}{ microsecond = 0}}
|
||||
\func{bool}{WaitForWrite}{\param{long}{ seconds = -1}, \param{long}{ millisecond = 0}}
|
||||
|
||||
This function waits for a write event.
|
||||
|
||||
@@ -409,7 +457,7 @@ This function waits for a write event.
|
||||
|
||||
\docparam{seconds}{Number of seconds to wait. By default, it waits infinitely.}
|
||||
|
||||
\docparam{microsecond}{Number of microseconds to wait.}
|
||||
\docparam{millisecond}{Number of milliseconds to wait.}
|
||||
|
||||
\wxheading{Return value}
|
||||
|
||||
@@ -426,7 +474,7 @@ Returns TRUE if a write event occured, FALSE if the timeout was reached.
|
||||
%
|
||||
\membersection{wxSocketBase::WaitForLost}\label{wxsocketbasewaitforlost}
|
||||
|
||||
\func{bool}{Wait}{\param{long}{ seconds = -1}, \param{long}{ microsecond = 0}}
|
||||
\func{bool}{Wait}{\param{long}{ seconds = -1}, \param{long}{ millisecond = 0}}
|
||||
|
||||
This function waits for a "lost" event. For instance, the peer may have closed
|
||||
the connection, or the connection may have been broken.
|
||||
@@ -435,7 +483,7 @@ the connection, or the connection may have been broken.
|
||||
|
||||
\docparam{seconds}{Number of seconds to wait. By default, it waits infinitely.}
|
||||
|
||||
\docparam{microsecond}{Number of microseconds to wait.}
|
||||
\docparam{millisecond}{Number of milliseconds to wait.}
|
||||
|
||||
\wxheading{Return value}
|
||||
|
||||
@@ -454,7 +502,8 @@ Returns TRUE if a "lost" event occured, FALSE if the timeout was reached.
|
||||
|
||||
\func{void}{RestoreState}{\void}
|
||||
|
||||
This function restores a previously saved state.
|
||||
This function restores the previous state of the socket (include flags,
|
||||
notify flags, notify state, C callback function and data).
|
||||
|
||||
\wxheading{See also}
|
||||
|
||||
@@ -477,6 +526,36 @@ actually it saves all flags and the state of the asynchronous callbacks.
|
||||
|
||||
\helpref{wxSocketBase::RestoreState}{wxsocketbaserestorestate}
|
||||
|
||||
%
|
||||
% GetLocal
|
||||
%
|
||||
\membersection{wxSocketBase::GetLocal}{wxsocketbasegetlocal}
|
||||
|
||||
\constfunc{bool}{GetLocal}{\param{wxSockAddress\& }{addr_man}}
|
||||
|
||||
This function returns the local address field of the socket. The local
|
||||
address field contains the complete local address of the socket (local
|
||||
address, local port, ...).
|
||||
|
||||
\wxheading{Return value}
|
||||
|
||||
It returns TRUE if no errors happened, FALSE otherwise.
|
||||
|
||||
%
|
||||
% GetPeer
|
||||
%
|
||||
\membersection{wxSocketBase::GetPeer}{wxsocketbasegetlocal}
|
||||
|
||||
\constfunc{bool}{GetPeer}{\param{wxSockAddress\& }{addr_man}}
|
||||
|
||||
This function returns the peer address field of the socket. The peer
|
||||
address field contains the complete peer host address of the socket
|
||||
(address, port, ...).
|
||||
|
||||
\wxheading{Return value}
|
||||
|
||||
It returns TRUE if no errors happened, FALSE otherwise.
|
||||
|
||||
% ---------------------------------------------------------------------------
|
||||
% Socket callbacks
|
||||
% ---------------------------------------------------------------------------
|
||||
@@ -494,7 +573,43 @@ Sets an event handler to be called when a socket event occured.
|
||||
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{wxSocketBase::SetNotify}{wxsocketbasesetnotify}
|
||||
\helpref{wxSocketBase::Notify}{wxsocketbasenotify}
|
||||
\helpref{wxSocketEvent}{wxsocketevent}
|
||||
\helpref{wxEvtHandler}{wxevthandler}
|
||||
|
||||
\membersection{wxSocketBase::Callback}\label{wxsocketbasecallback}
|
||||
|
||||
\func{wxSocketBase::wxSockCbk}{Callback}{\param{wxSocketBase::wxSockCbk}{ callback}}
|
||||
|
||||
wxSocket event handler can call C callback. This function allows you to set it.
|
||||
The format of the callback is as followed:
|
||||
\begin{verbatim}
|
||||
void SocketCallback(wxSocketBase& sock,wxSocketNotify evt,char *cdata);
|
||||
\end{verbatim}
|
||||
|
||||
The first parameter reminds you of the caller socket. The second parameter
|
||||
informs you about the current event (See \helpref{wxSocket events}{wxsocketbase}).
|
||||
The third parameters is the client data you specified using \helpref{CallbackData}{wxsocketcallbackdata}.
|
||||
|
||||
\wxheading{Return value}
|
||||
|
||||
It returns the previous callback.
|
||||
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{wxSocketBase::SetNotify}{wxsocketbasesetnotify}
|
||||
\helpref{wxSocketBase::Notify}{wxsocketbasenotify}
|
||||
|
||||
\membersection{wxSocketBase::CallbackData}\label{wxsocketcallbackdata}
|
||||
|
||||
\func{char *}{CallbackData}{\param{char *}{cdata}}
|
||||
|
||||
This function sets the the client data which will be passed to a \helpref{C callback}{wxsocketbasecallback}.
|
||||
|
||||
\wxheading{Return value}
|
||||
|
||||
This function returns the old value of the client data pointer.
|
||||
|
||||
% ---------------------------------------------------------------------------
|
||||
% CLASS wxSocketClient
|
||||
@@ -563,7 +678,7 @@ Returns TRUE if the connection is established and no error occurs.
|
||||
%
|
||||
\membersection{wxSocketClient::WaitOnConnect}\label{wxsocketclientwaitonconnect}
|
||||
|
||||
\func{bool}{WaitOnConnect}{\param{long}{ seconds = -1}, \param{long}{ microseconds = 0}}
|
||||
\func{bool}{WaitOnConnect}{\param{long}{ seconds = -1}, \param{long}{ milliseconds = 0}}
|
||||
|
||||
Wait for a "connect" event.
|
||||
|
||||
@@ -612,7 +727,7 @@ Constructor.
|
||||
|
||||
\membersection{wxSocketEvent::SocketEvent}\label{wxsocketeventsocketevent}
|
||||
|
||||
\constfunc{GSocketEvent}{SocketEvent}{\void}
|
||||
\constfunc{wxSocketNotify}{SocketEvent}{\void}
|
||||
|
||||
Returns the socket event type.
|
||||
|
||||
|
@@ -34,10 +34,11 @@ can call directly wxStreamBuffer::Read without any problems.
|
||||
\wxheading{Warning}
|
||||
|
||||
All errors and messages linked to the stream are stored in the stream object.
|
||||
|
||||
\begin{verbatim}
|
||||
streambuffer.Read(...);
|
||||
streambuffer2.Read(...); /* This one erases previous error messages set by
|
||||
``streambuffer'' */
|
||||
streambuffer.Read(...);
|
||||
streambuffer2.Read(...); /* This one erases previous error messages set by
|
||||
``streambuffer'' */
|
||||
\end{verbatim}
|
||||
|
||||
\func{}{wxStreamBuffer}{\param{BufMode}{ mode}}
|
||||
|
@@ -3,6 +3,13 @@
|
||||
% -----------------------------------------------------------------------------
|
||||
\section{\class{wxFileInputStream}}\label{wxfileinputstream}
|
||||
|
||||
This classes represent data streams to and from a file. There are actually
|
||||
two such groups of classes: those documented here, and another group called
|
||||
wxFFileInputStream, wxFFileOutputStream and wxFFileStream which are not
|
||||
based on file descriptors (and their wxWindows equivalent wxFile) but the
|
||||
FILE* type (and wxFFile). Apart from the different constructor ("FILE *file"
|
||||
instead if "int fd") their interface is identical.
|
||||
|
||||
\wxheading{Derived from}
|
||||
|
||||
\helpref{wxInputStream}{wxinputstream}
|
||||
|
@@ -30,7 +30,7 @@ XPM icon file to be available at run-time.
|
||||
#endif
|
||||
\end{verbatim}
|
||||
|
||||
A macro, wxICON, is available which creates an icon using an XPM
|
||||
A macro, \helpref{wxICON}{wxicon}, is available which creates an icon using an XPM
|
||||
on the appropriate platform, or an icon resource on Windows.
|
||||
|
||||
\begin{verbatim}
|
||||
@@ -47,6 +47,30 @@ wxIcon icon("mondrian");
|
||||
#endif
|
||||
\end{verbatim}
|
||||
|
||||
There is also a corresponding \helpref{wxBITMAP}{wxbitmap} macro which allows
|
||||
to create the bitmaps in much the same way as \helpref{wxICON}{wxicon} creates
|
||||
icons. It assumes that bitmaps live in resources under Windows or OS2 and XPM
|
||||
files under all other platforms (for XPMs, the corresponding file must be
|
||||
included before this macro is used, of course, and the name of the bitmap
|
||||
should be the same as the resource name under Windows with {\tt \_xpm}
|
||||
suffix). For example:
|
||||
|
||||
\begin{verbatim}
|
||||
// an easy and portable way to create a bitmap
|
||||
wxBitmap bmp(wxBITMAP(bmpname));
|
||||
|
||||
// which is roughly equivalent to the following
|
||||
#if defined(__WXMSW__) || defined(__WXPM__)
|
||||
wxBitmap bmp("bmpname", wxBITMAP_TYPE_RESOURCE);
|
||||
#else // Unix
|
||||
wxBitmap bmp(bmpname_xpm, wxBITMAP_TYPE_XPM);
|
||||
#endif
|
||||
\end{verbatim}
|
||||
|
||||
You should always use wxICON and wxBITMAP macros because they work for any
|
||||
platform (unlike the code above which doesn't deal with wxMac, wxBe, ...) and
|
||||
are more short and clear than versions with {\tt #ifdef}s.
|
||||
|
||||
\subsection{Supported bitmap file formats}\label{supportedbitmapformats}
|
||||
|
||||
The following lists the formats handled on different platforms. Note
|
||||
|
@@ -21,8 +21,8 @@ combineSubSections = yes
|
||||
;;
|
||||
;; These two are for generating MS HTML Help project, contents and index files.
|
||||
;;
|
||||
;htmlWorkshopFiles = true
|
||||
;htmlIndex = true
|
||||
htmlWorkshopFiles = true
|
||||
htmlIndex = true
|
||||
|
||||
;\overview [2] {\rtfonly{See also }\settransparency{on}\sethotspotcolour{off}\sethotspotunderline{on}\winhelponly{\image{}{books.bmp}\settransparency{off}}
|
||||
;\htmlonly{\image{}{books.gif}}\helpref{#1}{#2}
|
||||
@@ -34,7 +34,7 @@ combineSubSections = yes
|
||||
\constfunc [3] {{\bf #1} {\bf #2}(#3) {\bf const}\index{#2}}
|
||||
\windowstyle [1] {{\bf #1}\index{#1}}
|
||||
\bftt [1] {\bf{\tt{#1}}}
|
||||
\pythonnote [1] {{\bf \fcol{blue}{wxPython note:}}\\ #1}
|
||||
\pythonnote [1] {{\bf \fcol{blue}{wxPython note:}} #1}
|
||||
%\pythonnote [1] {}
|
||||
|
||||
|
||||
|
@@ -30,7 +30,7 @@ you can still use Ctrl-Enter to pass to the next control from the keyboard.}
|
||||
\twocolitem{\windowstyle{wxTE\_MULTILINE}}{The text control allows multiple lines.}
|
||||
\twocolitem{\windowstyle{wxTE\_PASSWORD}}{The text will be echoed as asterisks.}
|
||||
\twocolitem{\windowstyle{wxTE\_READONLY}}{The text will not be user-editable.}
|
||||
\twocolitem{\windowstyle{wxHSCROLL}}{A horizontal scrollbar will be created.}
|
||||
\twocolitem{\windowstyle{wxHSCROLL}}{A horizontal scrollbar will be created. No effect under GTK+.}
|
||||
\end{twocollist}
|
||||
|
||||
See also \helpref{window styles overview}{windowstyles} and
|
||||
@@ -38,7 +38,8 @@ See also \helpref{window styles overview}{windowstyles} and
|
||||
|
||||
\wxheading{Remarks}
|
||||
|
||||
This class multiply-inherits from {\bf streambuf} where compilers allow, allowing code such as the following:
|
||||
This class multiply-inherits from {\bf streambuf} where compilers allow, allowing code such as
|
||||
the following:
|
||||
|
||||
{\small%
|
||||
\begin{verbatim}
|
||||
@@ -51,8 +52,11 @@ This class multiply-inherits from {\bf streambuf} where compilers allow, allowin
|
||||
\end{verbatim}
|
||||
}%
|
||||
|
||||
If your compiler does not support derivation from {\bf streambuf} and gives a compile error, define the symbol {\bf NO\_TEXT\_WINDOW\_STREAM} in the
|
||||
wxTextCtrl header file.
|
||||
If your compiler does not support derivation from {\bf streambuf} and gives a compile error, define the symbol
|
||||
{\bf NO\_TEXT\_WINDOW\_STREAM} in the wxTextCtrl header file.
|
||||
|
||||
Note that any use of C++ iostreams (including this one) deprecated and might get completely removed
|
||||
in the future.
|
||||
|
||||
\wxheading{Event handling}
|
||||
|
||||
|
@@ -18,25 +18,10 @@ with a new wxDateTime class in the near future.
|
||||
|
||||
{\small \begin{verbatim}
|
||||
typedef unsigned short hourTy;
|
||||
\end{verbatim}}
|
||||
|
||||
{\small \begin{verbatim}
|
||||
typedef unsigned short minuteTy;
|
||||
\end{verbatim}}
|
||||
|
||||
{\small \begin{verbatim}
|
||||
typedef unsigned short secondTy;
|
||||
\end{verbatim}}
|
||||
|
||||
{\small \begin{verbatim}
|
||||
typedef unsigned long clockTy;
|
||||
\end{verbatim}}
|
||||
|
||||
{\small \begin{verbatim}
|
||||
enum tFormat { wx12h, wx24h };
|
||||
\end{verbatim}}
|
||||
|
||||
{\small \begin{verbatim}
|
||||
enum tPrecision { wxStdMinSec, wxStdMin };
|
||||
\end{verbatim}}
|
||||
|
||||
|
@@ -9,6 +9,7 @@ This chapter contains a selection of topic overviews.
|
||||
\input tcontain.tex
|
||||
\input tlog.tex
|
||||
\input tconfig.tex
|
||||
\input tunicode.tex
|
||||
\input tbitmap.tex
|
||||
\input tdialog.tex
|
||||
\input tfont.tex
|
||||
|
@@ -159,7 +159,7 @@ EVT\_TREE\_BEGIN\_LABEL\_EDIT event which can be vetoed so that no
|
||||
text control will appear for in-place editing.
|
||||
|
||||
If the user changed the label (i.e. s/he does not press ESC or leave
|
||||
the text control without changes, a EVT\_TREE\_END\_LABEL\_EDIT event
|
||||
the text control without changes, a EVT\_TREE\_END\_LABEL\_EDIT event
|
||||
will be sent which can be vetoed as well.
|
||||
|
||||
\wxheading{See also}
|
||||
@@ -203,6 +203,10 @@ The return value is TRUE if the rectangle was successfully retrieved or FALSE
|
||||
if it was not (in this case {\it rect} is not changed) - for example, if the
|
||||
item is currently invisible.
|
||||
|
||||
\pythonnote{The wxPython version of this method requires only the
|
||||
\tt{item} and \tt{textOnly} parameters. The return value is either a
|
||||
\tt{wxRect} object or \tt{None}.}
|
||||
|
||||
\membersection{wxTreeCtrl::GetChildrenCount}\label{wxtreectrlgetchildrencount}
|
||||
|
||||
\constfunc{size\_t}{GetChildrenCount}{\param{const wxTreeItemId\&}{ item}, \param{bool}{ recursively = TRUE}}
|
||||
@@ -287,9 +291,20 @@ associated with the wxTreeItemData for the given item Id.}
|
||||
|
||||
\membersection{wxTreeCtrl::GetItemImage}\label{wxtreectrlgetitemimage}
|
||||
|
||||
\constfunc{int}{GetItemImage}{\param{const wxTreeItemId\& }{item}}
|
||||
\constfunc{int}{GetItemImage}{\param{const wxTreeItemId\& }{item},
|
||||
\param{wxTreeItemIcon }{which = wxTreeItemIcon\_Normal}}
|
||||
|
||||
Gets the normal item image.
|
||||
Gets the specified item image. The value of {\it which} may be:
|
||||
\begin{itemize}\itemsep=0pt
|
||||
\item{wxTreeItemIcon\_Normal} to get the normal item image
|
||||
\item{wxTreeItemIcon\_Selected} to get the selected item image (i.e. the image
|
||||
which is shown when the item is currently selected)
|
||||
\item{wxTreeItemIcon\_Expanded} to get the expanded image (this only
|
||||
makes sense for items which have children - then this image is shown when the
|
||||
item is expanded and the normal image is shown when it is collapsed)
|
||||
\item{wxTreeItemIcon\_SelectedExpanded} to get the selected expanded image
|
||||
(which is shown when an expanded item is currently selected)
|
||||
\end{itemize}
|
||||
|
||||
\membersection{wxTreeCtrl::GetItemText}\label{wxtreectrlgetitemtext}
|
||||
|
||||
@@ -381,14 +396,15 @@ Returns the root item for the tree control.
|
||||
|
||||
\constfunc{int}{GetItemSelectedImage}{\param{const wxTreeItemId\& }{item}}
|
||||
|
||||
Gets the selected item image.
|
||||
Gets the selected item image (this function is obsolete, use
|
||||
{\tt GetItemImage(item, wxTreeItemIcon\_Selected} instead).
|
||||
|
||||
\membersection{wxTreeCtrl::GetSelection}\label{wxtreectrlgetselection}
|
||||
|
||||
\constfunc{wxTreeItemId}{GetSelection}{\void}
|
||||
|
||||
Returns the selection, or an invalid item if there is no selection.
|
||||
This function only works with the controls without wxTR\_MULTIPLE style, use
|
||||
This function only works with the controls without wxTR\_MULTIPLE style, use
|
||||
\helpref{GetSelections}{wxtreectrlgetselections} for the controls which do have
|
||||
this style.
|
||||
|
||||
@@ -401,6 +417,9 @@ function can be called only if the control has the wxTR\_MULTIPLE style.
|
||||
|
||||
Returns the number of selected items.
|
||||
|
||||
\pythonnote{The wxPython version of this method accepts no parameters
|
||||
and returns a Python list of \tt{wxTreeItemId}'s.}
|
||||
|
||||
\membersection{wxTreeCtrl::HitTest}\label{wxtreectrlhittest}
|
||||
|
||||
\func{long}{HitTest}{\param{const wxPoint\& }{point}, \param{int\& }{flags}}
|
||||
@@ -546,15 +565,19 @@ usage and loading time.
|
||||
|
||||
\membersection{wxTreeCtrl::SetItemImage}\label{wxtreectrlsetitemimage}
|
||||
|
||||
\func{void}{SetItemImage}{\param{const wxTreeItemId\&}{ item}, \param{int }{image}}
|
||||
\func{void}{SetItemImage}{\param{const wxTreeItemId\&}{ item},
|
||||
\param{int }{image},
|
||||
\param{wxTreeItemIcon }{which = wxTreeItemIcon\_Normal}}
|
||||
|
||||
Sets the normal item image. This is an index into the assciated image list.
|
||||
Sets the specified item image. See \helpref{GetItemImage}{wxtreectrlgetitemimage}
|
||||
for the description of {\it which} parameter.
|
||||
|
||||
\membersection{wxTreeCtrl::SetItemSelectedImage}\label{wxtreectrlsetitemselectedimage}
|
||||
|
||||
\func{void}{SetItemSelectedImage}{\param{const wxTreeItemId\&}{ item}, \param{int }{selImage}}
|
||||
|
||||
Sets the item selected image. This is an index into the assciated image list.
|
||||
Sets the selected item image (this function is obsolete, use
|
||||
{\tt SetItemImage(item, wxTreeItemIcon\_Selected} instead).
|
||||
|
||||
\membersection{wxTreeCtrl::SetItemText}\label{wxtreectrlsetitemtext}
|
||||
|
||||
@@ -591,7 +614,7 @@ Removes the selection from the currently selected item (if any).
|
||||
|
||||
\func{void}{UnselectAll}{\void}
|
||||
|
||||
This function either behaves the same as \helpref{Unselect}{wxtreectrlunselect}
|
||||
This function either behaves the same as \helpref{Unselect}{wxtreectrlunselect}
|
||||
if the control doesn't have wxTR\_MULTIPLE style, or removes the selection from
|
||||
all items if it does have this style.
|
||||
|
||||
|
@@ -46,27 +46,33 @@ functions that take a wxTreeEvent argument.
|
||||
|
||||
Constructor.
|
||||
|
||||
\membersection{wxTreeEvent::m\_code}
|
||||
\membersection{wxTreeEvent::GetItem}
|
||||
|
||||
\member{int}{m\_code}
|
||||
\constfunc{wxTreeItemId}{GetItem}{}
|
||||
|
||||
Key code if the event is a keypress event.
|
||||
Returns he item (valid for all events).
|
||||
|
||||
\membersection{wxTreeEvent::m\_itemIndex}
|
||||
\membersection{wxTreeEvent::GetOldItem}
|
||||
|
||||
\member{wxTreeItem}{m\_item}
|
||||
\constfunc{wxTreeItemId}{GetOldItem}{}
|
||||
|
||||
The item (valid for all events).
|
||||
Returns the old item index (valid for EVT\_TREE\_ITEM\_CHANGING and CHANGED events)
|
||||
|
||||
\membersection{wxTreeEvent::m\_oldItem}
|
||||
\membersection{wxTreeEvent::GetPoint()}
|
||||
|
||||
\member{long}{m\_oldItem}
|
||||
\constfunc{wxPoint}{GetPoint}{}
|
||||
|
||||
The old item index (valid for EVT\_TREE\_ITEM\_CHANGING and CHANGED events)
|
||||
Returns the position of the mouse pointer if the event is a drag event.
|
||||
|
||||
\membersection{wxTreeEvent::m\_pointDrag}
|
||||
\membersection{wxTreeEvent::GetCode}
|
||||
|
||||
\member{wxPoint}{m\_pointDrag}
|
||||
\constfunc{int}{GetCode}{}
|
||||
|
||||
The position of the mouse pointer if the event is a drag event.
|
||||
The key code if the event was is a key event.
|
||||
|
||||
\membersection{wxTreeEvent::GetLabel}
|
||||
|
||||
\constfunc{const wxString&}{GetLabel}{}
|
||||
|
||||
Returns the label if the event was a begin or end edit label event.
|
||||
|
||||
|
@@ -8,15 +8,18 @@ Classes: \helpref{wxStreamBase}{wxstreambase},
|
||||
|
||||
\wxheading{Purpose of wxStream}
|
||||
|
||||
We went into troubles with c++ std streams on some platform:
|
||||
they react quite well in most cases, but in multi-threaded case, for example,
|
||||
they have a LOT of problems.
|
||||
We had troubles with standard C++ streams on several platforms:
|
||||
they react quite well in most cases, but in the multi-threaded case, for example,
|
||||
they have many problems. Some Borland Compilers refuse to work at all
|
||||
with them and using iostreams on Linux makes writing programs, that are
|
||||
binary compatible across different Linux distributions, impossible.
|
||||
|
||||
Then, wxStreams have been built in wxWindows because an application should compile
|
||||
and run on all supported platforms and we don't want users depend on release
|
||||
Therefore, wxStreams have been added to wxWindows because an application should
|
||||
compile and run on all supported platforms and we don't want users to depend on release
|
||||
X.XX of libg++ or some other compiler to run the program.
|
||||
|
||||
wxStreams is divided in two main parts:
|
||||
|
||||
\begin{enumerate}\itemsep=0pt
|
||||
\item the core: wxStreamBase, wxStreamBuffer, wxInputStream, wxOutputStream,
|
||||
wxFilterIn/OutputStream
|
||||
@@ -48,41 +51,41 @@ wxStreamBuffer. This could also be a simple link to the a true syscall
|
||||
|
||||
\wxheading{Generic usage: an example}
|
||||
|
||||
About its usage, it's simple. We can take the example of wxFileInputStream and here is a sample
|
||||
Usage is simple. We can take the example of wxFileInputStream and here is some sample
|
||||
code:
|
||||
|
||||
\begin{verbatim}
|
||||
...
|
||||
// The constructor initializes the stream buffer and open the file descriptor
|
||||
// associated to the name of the file.
|
||||
wxFileInputStream in\_stream("the\_file\_to\_be\_read");
|
||||
wxFileInputStream in_stream("the_file_to_be_read");
|
||||
|
||||
// Ok, read some bytes ... nb\_datas is expressed in bytes.
|
||||
in\_stream.Read(data, nb\_datas);
|
||||
if (in\_stream.LastError() != wxStream\_NOERROR) {
|
||||
// Ok, read some bytes ... nb_datas is expressed in bytes.
|
||||
in_stream.Read(data, nb_datas);
|
||||
if (in_stream.LastError() != wxStream_NOERROR) {
|
||||
// Oh oh, something bad happens.
|
||||
// For a complete list, look into the documentation at wxStreamBase.
|
||||
}
|
||||
|
||||
// You can also inline all like this.
|
||||
if (in\_stream.Read(data, nb\_datas).LastError() != wxStream\_NOERROR) {
|
||||
if (in_stream.Read(data, nb_datas).LastError() != wxStream_NOERROR) {
|
||||
// Do something.
|
||||
}
|
||||
|
||||
// You can also get the last number of bytes REALLY put into the buffer.
|
||||
size\_t really\_read = in\_stream.LastRead();
|
||||
size_t really_read = in_stream.LastRead();
|
||||
|
||||
// Ok, moves to the beginning of the stream. SeekI returns the last position
|
||||
// in the stream counted from the beginning.
|
||||
off\_t old_position = in\_stream.SeekI(0, wxFromBeginning);
|
||||
off_t old_position = in_stream.SeekI(0, wxFromBeginning);
|
||||
|
||||
// What is my current position ?
|
||||
off\_t position = in\_stream.TellI();
|
||||
off_t position = in_stream.TellI();
|
||||
|
||||
// wxFileInputStream will close the file descriptor on the destruction.
|
||||
\end{verbatim}
|
||||
|
||||
\wxheading{Compatibility with c++ stream}
|
||||
\wxheading{Compatibility with C++ streams}
|
||||
|
||||
As I said previously, we could add a filter stream so it takes an istream
|
||||
argument and builds a wxInputStream from it: I don't think it should
|
||||
|
156
docs/latex/wx/tunicode.tex
Normal file
156
docs/latex/wx/tunicode.tex
Normal file
@@ -0,0 +1,156 @@
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
%% Name: tunicode.tex
|
||||
%% Purpose: Overview of the Unicode support in wxWindows
|
||||
%% Author: Vadim Zeitlin
|
||||
%% Modified by:
|
||||
%% Created: 22.09.99
|
||||
%% RCS-ID: $Id$
|
||||
%% Copyright: (c) 1999 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
|
||||
%% Licence: wxWindows license
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
\section{Unicode support in wxWindows}\label{unicode}
|
||||
|
||||
This section briefly describes the state of the Unicode support in wxWindows.
|
||||
Read it if you want to know more about how to write programs able to work with
|
||||
characters from languages other than English.
|
||||
|
||||
\subsection{What is Unicode?}
|
||||
|
||||
Starting with release 2.1 wxWindows has support for compiling in Unicode mode
|
||||
on the platforms which support it. Unicode is a standard for character
|
||||
encoding which addreses the shortcomings of the previous, 8 bit standards, by
|
||||
using 16 bit for encoding each character. This allows to have 65536 characters
|
||||
instead of the usual 256 and is sufficient to encode all of the world
|
||||
languages at once. More details about Unicode may be found at {\tt www.unicode.org}.
|
||||
|
||||
% TODO expand on it, say that Unicode extends ASCII, mention ISO8859, ...
|
||||
|
||||
As this solution is obviously preferable to the previous ones (think of
|
||||
incompatible encodings for the same language, locale chaos and so on), many
|
||||
modern ooperating systems support it. The probably first example is Windows NT
|
||||
which uses only Unicode internally since its very first version.
|
||||
|
||||
Writing internationalized programs is much easier with Unicode and, as the
|
||||
support for it improves, it should become more and more so. Moreover, in the
|
||||
Windows NT/2000 case, even the program which uses only standard ASCII can profit
|
||||
from using Unicode because they will work more efficiently - there will be no
|
||||
need for the system to convert all strings hte program uses to/from Unicode
|
||||
each time a system call is made.
|
||||
|
||||
\subsection{Unicode and ANSI modes}
|
||||
|
||||
As not all platforms supported by wxWindows support Unicode (fully) yet, in
|
||||
many cases it is unwise to write a program which can only work in Unicode
|
||||
environment. A better solution is to write programs in such way that they may
|
||||
be compiled either in ANSI (traditional) mode or in the Unicode one.
|
||||
|
||||
This can be achieved quite simply by using the means provided by wxWindows.
|
||||
Basicly, there are only a few things to watch out for:
|
||||
\begin{itemize}
|
||||
\item Character type ({\tt char} or {\tt wchar\_t})
|
||||
\item Literal strings (i.e. {\tt "Hello, world!"} or {\tt '*'})
|
||||
\item String functions ({\tt strlen()}, {\tt strcpy()}, ...)
|
||||
\end{itemize}
|
||||
|
||||
Let's look at them in order. First of all, each character in an Unicode
|
||||
program takes 2 bytes instead of usual one, so another type should be used to
|
||||
store the characters ({\tt char} only holds 1 byte usually). This type is
|
||||
called {\tt wchar\_t} which stands for {\it wide-character type}.
|
||||
|
||||
Also, the string and character constants should be encoded on 2 bytes instead
|
||||
of one. This is achieved by using the standard C (and C++) way: just put the
|
||||
letter {\tt 'L'} after any string constant and it becomes a {\it long}
|
||||
constant, i.e. a wide character one. To make things a bit more readable, you
|
||||
are also allowed to prefix the constant with {\tt 'L'} instead of putting it
|
||||
after it.
|
||||
|
||||
Finally, the standard C functions don't work with {\tt wchar\_t} strings, so
|
||||
another set of functions exists which do the same thing but accept
|
||||
{\tt wchar\_t *} instead of {\tt char *}. For example, a function to get the
|
||||
length of a wide-character string is called {\tt wcslen()} (compare with
|
||||
{\tt strlen()} - you see that the only difference is that the "str" prefix
|
||||
standing for "string" has been replaced with "wcs" standing for
|
||||
"wide-character string").
|
||||
|
||||
To summarize, here is a brief example of how a program which can be compiled
|
||||
in both ANSI and Unicode modes could look like:
|
||||
|
||||
\begin{verbatim}
|
||||
#ifdef __UNICODE__
|
||||
wchar_t wch = L'*';
|
||||
const wchar_t *ws = L"Hello, world!";
|
||||
int len = wcslen(ws);
|
||||
#else // ANSI
|
||||
char ch = '*';
|
||||
const char *s = "Hello, world!";
|
||||
int len = strlen(s);
|
||||
#endif // Unicode/ANSI
|
||||
\end{verbatim}
|
||||
|
||||
Of course, it would be nearly impossibly to write such programs if it had to
|
||||
be done this way (try to imagine the number of {\tt #ifdef UNICODE} an average
|
||||
program would have had!). Luckily, there is another way - see the next
|
||||
section.
|
||||
|
||||
\subsection{Unicode support in wxWindows}
|
||||
|
||||
In wxWindows, the code fragment froim above should be written instead:
|
||||
|
||||
\begin{verbatim}
|
||||
wxChar ch = T('*');
|
||||
wxString s = T("Hello, world!");
|
||||
int len = s.Len();
|
||||
\end{verbatim}
|
||||
|
||||
What happens here? First of all, you see that there are no more {\tt #ifdef}s
|
||||
at all. Instead, we define some types and macros which behave differently in
|
||||
the Unicode and ANSI builds and allows us to avoid using conditional
|
||||
compilation in the program itself.
|
||||
|
||||
We have a {\tt wxChar} type which maps either on {\tt char} or {\tt wchar\_t}
|
||||
depending on the mode in which program is being compiled. There is no need for
|
||||
a separate type for strings though, because the standard
|
||||
\helpref{wxString}{wxstring} supports Unicode, i.e. it stores iether ANSI or
|
||||
Unicode strings depending on the mode.
|
||||
|
||||
Finally, there is a special {\tt T()} macro which should enclose all literal
|
||||
strings in the program. As it's easy to see comparing the last fragment with
|
||||
the one above, this macro expands to nothing in the (usual) ANSI mode and
|
||||
prefixes {\tt 'L'} to its argument in the Unicode mode.
|
||||
|
||||
The important conclusion is that if you use {\tt wxChar} instead of
|
||||
{\tt char}, avoid using C style strings and use {\tt wxString} instead and
|
||||
don't forget to enclose all string literals inside {\tt T()} macro, your
|
||||
program automatically becomes (almost) Unicode compliant!
|
||||
|
||||
Just let us state once again the rules:
|
||||
\begin{itemize}
|
||||
\item Always use {\tt wxChar} instead of {\tt char}
|
||||
\item Always enclose literal string constants in {\tt T()} macro unless
|
||||
they're already converted to the right representation (another standard
|
||||
wxWindows macro {\tt \_()} does it, so there is no need for {\tt T()} in this
|
||||
case) or you intend to pass the constant directly to an external function
|
||||
which doesn't accept wide-character strings.
|
||||
\item Use {\tt wxString} instead of C style strings.
|
||||
\end{itemize}
|
||||
|
||||
\subsection{Unicode and the outside world}
|
||||
|
||||
We have seen that it was easy to write Unicode programs using wxWindows types
|
||||
and macros, but it has been also mentioned that it isn't quite enough.
|
||||
Although everything works fine inside the program, things can get nasty when
|
||||
it tries to communicate with the outside world which, sadly, often expects
|
||||
ANSI strings (a notable exception is the entire Win32 API which accepts either
|
||||
Unicode or ANSI strings and which thus makes it unnecessary to ever perform
|
||||
any convertions in the program).
|
||||
|
||||
To get a ANSI string from a wxString, you may use
|
||||
\helpref{mb\_str()}{wxstringmbstr} function which always returns an ANSI
|
||||
string (independently of the mode - while the usual
|
||||
\helpref{c\_str()}{wxstringcstr} returns a pointer to the internal
|
||||
representation which is either ASCII or Unicode). More rarely used, but still
|
||||
useful, is \helpref{wc\_str()}{wxstringwcstr} function which always returns
|
||||
the Unicode string.
|
||||
|
||||
% TODO describe fn_str(), wx_str(), wxCharBuf classes, ...
|
@@ -91,14 +91,14 @@ $\backslash$n or $\backslash$r$\backslash$n or $\backslash$r.
|
||||
This class provides functions that write text datas using an output stream.
|
||||
So, you can write \it{text} floats, integers.
|
||||
|
||||
For example:
|
||||
You can also simulate the C++ cout class:
|
||||
\begin{verbatim}
|
||||
wxFileOutputStream output( "mytext.txt" );
|
||||
wxTextOutputStream text( output );
|
||||
wxFFileOutputStream output( stderr );
|
||||
wxTextOutputStream cout( output );
|
||||
|
||||
output << "This is a text line\n";
|
||||
output << 1234;
|
||||
output << 1.23456;
|
||||
cout << "This is a text line" << endl;
|
||||
cout << 1234;
|
||||
cout << 1.23456;
|
||||
\end{verbatim}
|
||||
|
||||
The wxTextOutputStream writes text files (or streams) on DOS, Macintosh
|
||||
|
@@ -22,8 +22,8 @@ For more information, please see \helpref{Validator overview}{validatoroverview}
|
||||
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{Validator overview}{validatoroverview}, \helpref{wxValidator}{wxvalidator},
|
||||
\helpref{wxTextValidator}{wxTextvalidator}
|
||||
\helpref{Validator overview}{validatoroverview}, \helpref{wxValidator}{wxvalidator},
|
||||
\helpref{wxTextValidator}{wxtextvalidator}
|
||||
|
||||
\latexignore{\rtfignore{\wxheading{Members}}}
|
||||
|
||||
@@ -73,13 +73,13 @@ Clones the generic validator using the copy constructor.
|
||||
|
||||
\membersection{wxGenericValidator::TransferFromWindow}\label{wxgenericvalidatortransferfromwindow}
|
||||
|
||||
\func{virtual bool}{TransferToWindow}{\param{wxWindow*}{ parent}}
|
||||
\func{virtual bool}{TransferToWindow}{}
|
||||
|
||||
Transfers the value to the window.
|
||||
|
||||
\membersection{wxGenericValidator::TransferToWindow}\label{wxgenericvalidatortransfertowindow}
|
||||
|
||||
\func{virtual bool}{TransferToWindow}{\param{wxWindow*}{ parent}}
|
||||
\func{virtual bool}{TransferToWindow}{}
|
||||
|
||||
Transfers the window value to the appropriate data type.
|
||||
|
||||
|
@@ -18,6 +18,10 @@ To specify a default, `null' validator, use the symbol {\bf wxDefaultValidator}.
|
||||
|
||||
For more information, please see \helpref{Validator overview}{validatoroverview}.
|
||||
|
||||
\pythonnote{If you wish to create a validator class in wxPython you should
|
||||
derive the class from \tt{wxPyValidator} in order to get Python-aware
|
||||
capabilities for the various virtual methods.}
|
||||
|
||||
\wxheading{Derived from}
|
||||
|
||||
\helpref{wxEvtHandler}{wxevthandler}\\
|
||||
@@ -29,7 +33,10 @@ For more information, please see \helpref{Validator overview}{validatoroverview}
|
||||
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{Validator overview}{validatoroverview}, \helpref{wxTextValidator}{wxtextvalidator}
|
||||
\helpref{Validator overview}{validatoroverview},
|
||||
\helpref{wxTextValidator}{wxtextvalidator},
|
||||
\helpref{wxGenericValidator}{wxgenericvalidator},
|
||||
|
||||
|
||||
\latexignore{\rtfignore{\wxheading{Members}}}
|
||||
|
||||
@@ -79,14 +86,14 @@ Associates a window with the validator.
|
||||
|
||||
\membersection{wxValidator::TransferFromWindow}\label{wxvalidatortransferfromwindow}
|
||||
|
||||
\func{virtual bool}{TransferToWindow}{\param{wxWindow*}{ parent}}
|
||||
\func{virtual bool}{TransferToWindow}{}
|
||||
|
||||
This overridable function is called when the value in the window must be
|
||||
transferred to the validator. Return FALSE if there is a problem.
|
||||
|
||||
\membersection{wxValidator::TransferToWindow}\label{wxvalidatortransfertowindow}
|
||||
|
||||
\func{virtual bool}{TransferToWindow}{\param{wxWindow*}{ parent}}
|
||||
\func{virtual bool}{TransferToWindow}{}
|
||||
|
||||
This overridable function is called when the value associated with the validator must be
|
||||
transferred to the window. Return FALSE if there is a problem.
|
||||
|
@@ -16,7 +16,7 @@ For more information, please see \helpref{Validator overview}{validatoroverview}
|
||||
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{Validator overview}{validatoroverview}, \helpref{wxValidator}{wxvalidator},
|
||||
\helpref{Validator overview}{validatoroverview}, \helpref{wxValidator}{wxvalidator},
|
||||
\helpref{wxGenericValidator}{wxgenericvalidator}
|
||||
|
||||
\latexignore{\rtfignore{\wxheading{Members}}}
|
||||
@@ -111,13 +111,13 @@ Sets the validator style.
|
||||
|
||||
\membersection{wxTextValidator::TransferFromWindow}\label{wxtextvalidatortransferfromwindow}
|
||||
|
||||
\func{virtual bool}{TransferToWindow}{\param{wxWindow*}{ parent}}
|
||||
\func{virtual bool}{TransferFromWindow}{}
|
||||
|
||||
Transfers the string value to the window.
|
||||
|
||||
\membersection{wxTextValidator::TransferToWindow}\label{wxtextvalidatortransfertowindow}
|
||||
|
||||
\func{virtual bool}{TransferToWindow}{\param{wxWindow*}{ parent}}
|
||||
\func{virtual bool}{TransferToWindow}{}
|
||||
|
||||
Transfers the window value to the string.
|
||||
|
||||
|
@@ -1,8 +1,15 @@
|
||||
\section{\class{wxWindow}}\label{wxwindow}
|
||||
|
||||
wxWindow is the base class for all windows. Any
|
||||
children of the window will be deleted automatically by the destructor
|
||||
before the window itself is deleted.
|
||||
wxWindow is the base class for all windows. Any children of the window will be deleted
|
||||
automatically by the destructor before the window itself is deleted.
|
||||
|
||||
Please note that we documented a number of handler functions (OnChar(), OnMouse() etc.) in this
|
||||
help text. These must not be called by a user program and are documented only for illustration.
|
||||
On several platforms, only a few of these handlers are actually written (they are not always
|
||||
needed) and if you are uncertain on how to add a certain behaviour to a window class, intercept
|
||||
the respective event as usual and call \helpref{wxEvent::Skip}{wxeventskip} so that the native
|
||||
platform can implement its native behaviour or just ignore the event if nothing needs to be
|
||||
done.
|
||||
|
||||
\wxheading{Derived from}
|
||||
|
||||
@@ -16,7 +23,7 @@ before the window itself is deleted.
|
||||
\wxheading{Window styles}
|
||||
|
||||
The following styles can apply to all windows, although they will not always make sense for a particular
|
||||
window class.
|
||||
window class or on all platforms.
|
||||
|
||||
\twocolwidtha{5cm}%
|
||||
\begin{twocollist}\itemsep=0pt
|
||||
@@ -31,6 +38,14 @@ events. Windows only.}
|
||||
\twocolitem{\windowstyle{wxNO\_3D}}{Prevents the children of this window taking on 3D styles, even though
|
||||
the application-wide policy is for 3D controls. Windows only.}
|
||||
\twocolitem{\windowstyle{wxTAB\_TRAVERSAL}}{Use this to enable tab traversal for non-dialog windows.}
|
||||
\twocolitem{\windowstyle{wxWANTS\_CHARS}}{Use this to indicate that the window
|
||||
wants to get all char events - even for keys like TAB or ENTER which are
|
||||
usually used for dialog navigation and which wouldn't be generated without
|
||||
this style}
|
||||
\twocolitem{\windowstyle{wxNO\_FULLREPAINT\_ON\_RESIZE}}{Disables repainting
|
||||
the window completely when its size is changed - you will have to repaint the
|
||||
new window area manually if you use style. Currently only has effect for
|
||||
Windows.}
|
||||
\twocolitem{\windowstyle{wxVSCROLL}}{Use this style to enable a vertical scrollbar. (Still used?) }
|
||||
\twocolitem{\windowstyle{wxHSCROLL}}{Use this style to enable a horizontal scrollbar. (Still used?) }
|
||||
\twocolitem{\windowstyle{wxCLIP\_CHILDREN}}{Use this style to eliminate flicker caused by the background being
|
||||
@@ -772,6 +787,20 @@ Returns TRUE if the window is enabled for input, FALSE otherwise.
|
||||
|
||||
\helpref{wxWindow::Enable}{wxwindowenable}
|
||||
|
||||
\membersection{wxWindow:IsExposed}\label{wxwindowisexposed}
|
||||
|
||||
\constfunc{bool}{IsExposed}{\param{int }{x}, \param{int }{y}}
|
||||
|
||||
\constfunc{bool}{IsExposed}{\param{wxPoint }{&pt}}
|
||||
|
||||
\constfunc{bool}{IsExposed}{\param{int }{x}, \param{int }{y}, \param{int }{w}, \param{int }{h}}
|
||||
|
||||
\constfunc{bool}{IsExposed}{\param{wxRect }{&rect}}
|
||||
|
||||
Returns TRUE if the given point or rectange area has been exposed since the
|
||||
last repaint. Call this in an paint event handler to optimize redrawing by
|
||||
only redrawing those areas, which have been exposed.
|
||||
|
||||
\membersection{wxWindow::IsRetained}\label{wxwindowisretained}
|
||||
|
||||
\constfunc{virtual bool}{IsRetained}{\void}
|
||||
@@ -800,7 +829,8 @@ window).
|
||||
|
||||
\func{void}{Layout}{\void}
|
||||
|
||||
Invokes the constraint-based layout algorithm for this window.
|
||||
Invokes the constraint-based layout algorithm or the sizer-based algorithm
|
||||
for this window.
|
||||
|
||||
See \helpref{wxWindow::SetAutoLayout}{wxwindowsetautolayout} on when
|
||||
this function gets called automatically using auto layout.
|
||||
@@ -1678,7 +1708,9 @@ Sets the accelerator table for this window. See \helpref{wxAcceleratorTable}{wxa
|
||||
\func{void}{SetAutoLayout}{\param{const bool}{ autoLayout}}
|
||||
|
||||
Determines whether the \helpref{wxWindow::Layout}{wxwindowlayout} function will
|
||||
be called automatically when the window is resized.
|
||||
be called automatically when the window is resized. Use in connection with
|
||||
\helpref{wxWindow::SetSizer}{wxwindowsetsizer} and
|
||||
\helpref{wxWindow::SetConstraints}{wxwindowsetconstraints} for layouting subwindows.
|
||||
|
||||
\wxheading{Parameters}
|
||||
|
||||
@@ -1817,8 +1849,9 @@ constraints.}
|
||||
\wxheading{Remarks}
|
||||
|
||||
You must call \helpref{wxWindow::SetAutoLayout}{wxwindowsetautolayout} to tell a window to use
|
||||
the constraints automatically in OnSize; otherwise, you must
|
||||
override OnSize and call Layout explicitly.
|
||||
the constraints automatically in OnSize; otherwise, you must override OnSize and call Layout()
|
||||
explicitly. When setting both a wxLayoutConstraints and a \helpref{wxSizer}{wxsizer}, only the
|
||||
sizer will have effect.
|
||||
|
||||
\membersection{wxWindow::SetDropTarget}\label{wxwindowsetdroptarget}
|
||||
|
||||
@@ -2161,6 +2194,27 @@ given bounds.
|
||||
|
||||
The resizing increments are only significant under Motif or Xt.
|
||||
|
||||
\membersection{wxWindow::SetSizer}\label{wxwindowsetsizer}
|
||||
|
||||
\func{void}{SetSizer}{\param{wxSizer* }{sizer}}
|
||||
|
||||
Sets the window to have the given layout sizer. The window
|
||||
will then own the object, and will take care of its deletion.
|
||||
If an existing layout constraints object is already owned by the
|
||||
window, it will be deleted.
|
||||
|
||||
\wxheading{Parameters}
|
||||
|
||||
\docparam{sizer}{The sizer to set. Pass NULL to disassociate and delete the window's
|
||||
sizer.}
|
||||
|
||||
\wxheading{Remarks}
|
||||
|
||||
You must call \helpref{wxWindow::SetAutoLayout}{wxwindowsetautolayout} to tell a window to use
|
||||
the sizer automatically in OnSize; otherwise, you must override OnSize and call Layout()
|
||||
explicitly. When setting both a wxSizer and a \helpref{wxLayoutConstraints}{wxlayoutconstraints},
|
||||
only the sizer will have effect.
|
||||
|
||||
\membersection{wxWindow::SetTitle}\label{wxwindowsettitle}
|
||||
|
||||
\func{virtual void}{SetTitle}{\param{const wxString\& }{title}}
|
||||
|
@@ -14,8 +14,8 @@ wxPython is a blending of the wxWindows GUI classes and the
|
||||
\wxheading{Python}
|
||||
|
||||
So what is Python? Go to
|
||||
\urlref{http://www.python.org}{http://www.python.org}
|
||||
to learn more, but in a nutshell Python is an interpreted,
|
||||
\urlref{http://www.python.org}{http://www.python.org} to learn more,
|
||||
but in a nutshell Python is an interpreted,
|
||||
interactive, object-oriented programming language. It is often
|
||||
compared to Tcl, Perl, Scheme or Java.
|
||||
|
||||
@@ -33,23 +33,22 @@ commercial use.
|
||||
|
||||
wxPython is a Python package that can be imported at runtime that
|
||||
includes a collection of Python modules and an extension module
|
||||
(native code). It provides a series of Python classes that mirror (or
|
||||
shadow) many of the wxWindows GUI classes. This extension module
|
||||
(native code). It provides a series of Python classes that mirror (or
|
||||
shadow) many of the wxWindows GUI classes. This extension module
|
||||
attempts to mirror the class heiarchy of wxWindows as closely as
|
||||
possble. This means that there is a wxFrame class in wxPython that
|
||||
looks, smells, tastes and acts almost the same as the wxFrame class in
|
||||
the C++ version.
|
||||
|
||||
wxPython is very versitile. It can be used to create standalone GUI
|
||||
wxPython is very versitile. It can be used to create standalone GUI
|
||||
applications, or in situations where Python is embedded in a C++
|
||||
application as an internal scripting or macro language.
|
||||
|
||||
Currently wxPython is available for Win32 platforms and the GTK
|
||||
toolkit (wxGTK) on most Unix/X-windows platforms. The effort to
|
||||
enable wxPython for wxMotif will begin shortly. See \helpref{Building Python}{wxpbuild} for
|
||||
toolkit (wxGTK) on most Unix/X-windows platforms. The effort to
|
||||
enable wxPython for wxMotif will begin shortly. See \helpref{Building Python}{wxpbuild} for
|
||||
details about getting wxPython working for you.
|
||||
|
||||
|
||||
%----------------------------------------------------------------------
|
||||
\section{Why use wxPython?}\label{wxpwhy}
|
||||
|
||||
@@ -60,11 +59,11 @@ then I ususally code it as an extension module and leave the majority
|
||||
of the program in Python.
|
||||
|
||||
Another good thing to use wxPython for is quick prototyping of your
|
||||
wxWindows apps. With C++ you have to continuously go though the
|
||||
edit-compile-link-run cycle, which can be quite time comsuming. With
|
||||
Python it is only an edit-run cycle. You can easily build an
|
||||
wxWindows apps. With C++ you have to continuously go though the
|
||||
edit-compile-link-run cycle, which can be quite time consuming. With
|
||||
Python it is only an edit-run cycle. You can easily build an
|
||||
application in a few hours with Python that would normally take a few
|
||||
days or longer with C++. Converting a wxPython app to a C++/wxWindows app
|
||||
days or longer with C++. Converting a wxPython app to a C++/wxWindows app
|
||||
should be a straight forward task.
|
||||
|
||||
%----------------------------------------------------------------------
|
||||
@@ -74,154 +73,139 @@ There are other GUI solutions out there for Python.
|
||||
|
||||
\wxheading{Tkinter}
|
||||
|
||||
Tkinter is the defacto standard GUI for Python. It is available
|
||||
on nearly every platform that Python and Tcl/TK are. Why Tcl/Tk?
|
||||
Tkinter is the defacto standard GUI for Python. It is available
|
||||
on nearly every platform that Python and Tcl/TK are. Why Tcl/Tk?
|
||||
Well because Tkinter is just a wrapper around Tcl's GUI toolkit, Tk.
|
||||
This has its upsides and its downsides...
|
||||
|
||||
The upside is that Tk is a pretty veristile toolkit. It can be made
|
||||
to do a lot of things in a lot of different environments. It is fairly
|
||||
The upside is that Tk is a pretty versatile toolkit. It can be made
|
||||
to do a lot of things in a lot of different environments. It is fairly
|
||||
easy to create new widgets and use them interchangably in your
|
||||
programs.
|
||||
|
||||
The downside is Tcl. When using Tkinter you actually have two
|
||||
The downside is Tcl. When using Tkinter you actually have two
|
||||
separate language interpreters running, the Python interpreter and the
|
||||
Tcl interpreter for the GUI. Since the guts of Tcl is mostly about
|
||||
string processing, it is fairly slow as well. (Not too bad on a fast
|
||||
Tcl interpreter for the GUI. Since the guts of Tcl is mostly about
|
||||
string processing, it is fairly slow as well. (Not too bad on a fast
|
||||
Pentium II, but you really notice the difference on slower machines.)
|
||||
|
||||
It wasn't until the lastest version of Tcl/Tk that native Look and
|
||||
Feel's were possible on non-Motif platforms. This is because Tk
|
||||
usually implements it's own widgets (controls) even when there are
|
||||
Feel was possible on non-Motif platforms. This is because Tk
|
||||
usually implements its own widgets (controls) even when there are
|
||||
native controls available.
|
||||
|
||||
Tkinter is a pretty low-level toolkit. You have to do a lot of work
|
||||
Tkinter is a pretty low-level toolkit. You have to do a lot of work
|
||||
(verbose program code) to do things that would be much simpler with a higher
|
||||
level of abstraction.
|
||||
|
||||
\wxheading{PythonWin}
|
||||
|
||||
PythonWin is an add-on package for Python for the Win32 platform. It
|
||||
includes wrappers for MFC as well as much of the win32 API. Because
|
||||
PythonWin is an add-on package for Python for the Win32 platform. It
|
||||
includes wrappers for MFC as well as much of the Win32 API. Because
|
||||
of its foundation, it is very familiar for programmers who have
|
||||
experience with MFC and the Win32 API. It is obviously not compatible
|
||||
with other platforms and toolkits. PythonWin is organized as separate
|
||||
experience with MFC and the Win32 API. It is obviously not compatible
|
||||
with other platforms and toolkits. PythonWin is organized as separate
|
||||
packages and modules so you can use the pieces you need without having
|
||||
to use the GUI portions.
|
||||
|
||||
\wxheading{Others}
|
||||
|
||||
There are quite a few other GUI modules available for Python, some in
|
||||
active use, some that havn't been updated for ages. Most are simple
|
||||
active use, some that havn't been updated for ages. Most are simple
|
||||
wrappers around some C or C++ toolkit or another, and most are not
|
||||
cross-platform compatible. See \urlref{this
|
||||
link}{http://www.python.org/download/Contributed.html\#Graphics}
|
||||
cross-platform compatible. See \urlref{this link}{http://www.python.org/download/Contributed.html\#Graphics}
|
||||
for a listing of a few of them.
|
||||
|
||||
%----------------------------------------------------------------------
|
||||
\section{Building wxPython}\label{wxpbuild}
|
||||
|
||||
I used SWIG (\urlref{http://www.swig.org}{http://www.swig.org}) to
|
||||
create the source code for the extension module. This enabled me to
|
||||
only have to deal with a small amount of code and only have to bother
|
||||
with the exceptional issues. SWIG takes care of the rest and
|
||||
generates all the repetative code for me. You don't need SWIG to
|
||||
build the extension module as all the generated C++ code is included
|
||||
under the src directory. If you try to build wxPython and get errors
|
||||
because SWIG is missing, then simply touch the .cpp and .py files so
|
||||
make won't attempt to build them from the .i files.
|
||||
to create the source code for the
|
||||
extension module. This enabled me to only have to deal with a small
|
||||
amount of code and only have to bother with the exceptional issues.
|
||||
SWIG takes care of the rest and generates all the repetative code for
|
||||
me. You don't need SWIG to build the extension module as all the
|
||||
generated C++ code is included under the src directory.
|
||||
|
||||
I added a few minor features to SWIG to control some of the code
|
||||
generation. If you want to play around with this the patches are in
|
||||
wxPython/SWIG.patches and they should be applied to the 1.1p5 version
|
||||
of SWIG. These new patches are documented at
|
||||
\urlref{this site}{http://starship.skyport.net/crew/robind/python/\#swig},
|
||||
and they should also end up in the 1.2 version of SWIG.
|
||||
generation. If you want to play around with this you will need to get
|
||||
a recent version of SWIG from their CVS or from a daily build. See
|
||||
\urlref{http://www.swig.org/}{http://www.swig.org/} for details.
|
||||
|
||||
wxPython is organized as a Python package. This means that the
|
||||
wxPython is organized as a Python package. This means that the
|
||||
directory containing the results of the build process should be a
|
||||
subdirectory of a directory on the \tt{PYTHONPATH}, (and preferably
|
||||
should be named wxPython.) You can control where the build process
|
||||
will dump wxPython by setting the \tt{TARGETDIR} makefile variable.
|
||||
The default is \tt{\$(WXWIN)/utils/wxPython}. If you leave it here
|
||||
then you should add \tt{\$(WXWIN)/utils} to your \tt{PYTHONPATH}.
|
||||
However, you may prefer to use something that is already on your
|
||||
\tt{PYTHONPATH}, such as the \tt{site-packages} directory on Unix
|
||||
systems.
|
||||
|
||||
\wxheading{Win32}
|
||||
|
||||
These instructions assume that you have Microsoft Visual C++ 5.0 or
|
||||
6.0, that you have installed the command-line tools, and that the
|
||||
appropriate environment variables are set for these tools. You should
|
||||
also have Python 1.5.1 installed, and wxWindows installed and built as
|
||||
specified below.
|
||||
subdirectory of a directory on the \tt{PYTHONPATH}. (And preferably should
|
||||
be named wxPython.) You can control where the build process will dump
|
||||
wxPython by setting the \tt{TARGETDIR} variable for the build utility (see
|
||||
below).
|
||||
|
||||
\begin{enumerate}\itemsep=0pt
|
||||
\item Build wxWindows with \tt{wxUSE_RESOURCE_LOADING_IN_MSW} set to 1 in
|
||||
\tt{include/wx/msw/setup.h} so icons can be loaded dynamically. While
|
||||
there, make sure \tt{wxUSE_OWNER_DRAWN} is also set to 1.
|
||||
\item Build wxWindows as described in its BuildCVS.txt file. For Unix
|
||||
systems I run configure with these flags:
|
||||
|
||||
\begin{verbatim}
|
||||
--with-gtk
|
||||
--with-libjpeg
|
||||
--without-odbc
|
||||
--enable-unicode=no
|
||||
--enable-threads=yes
|
||||
--enable-socket=yes
|
||||
--enable-static=no
|
||||
--enable-shared=yes
|
||||
--disable-std_iostreams
|
||||
\end{verbatim}
|
||||
|
||||
You can use whatever flags you want, but I know these work.
|
||||
|
||||
For Win32 systems I use Visual C++ 6.0, but 5.0 should work also. The
|
||||
build utility currently does not support any other Win32 compilers.
|
||||
|
||||
\item At this point you may want to make an alias or symlink, script,
|
||||
batch file, whatever on the PATH that invokes \tt{\$(WXWIN)/utils/wxPython/distrib/build.py} to
|
||||
help simplify matters somewhat. For example, on my Win32 system I have a file named
|
||||
\tt{build}.bat in a directory on the PATH that contains:
|
||||
|
||||
\tt{python \%WXWIN/utils/wxPython/distrib/build.py \%1 \%2 \%3 \%4 \%5 \%6}
|
||||
|
||||
\item Change into the \tt{\$(WXWIN)/utils/wxPython/src} directory.
|
||||
\item Edit makefile.vc and specify where your python installation is at.
|
||||
You may also want to fiddle with the \tt{TARGETDIR} variable as described
|
||||
above.
|
||||
\item Run \tt{nmake -f makefile.vc}
|
||||
\item If it builds successfully, congratulations! Move on to the next
|
||||
step. If not then you can try mailing the wxwin-developers list for
|
||||
help. Also, I will always have a pre-built win32 version of this extension module at
|
||||
\urlref{http://alldunn.com/wxPython}{http://alldunn.com/wxPython}.
|
||||
|
||||
\item Type "\tt{build -b}" to build wxPython and "\tt{build -i}" to
|
||||
install it, or "\tt{build -bi}" to do both steps at once.
|
||||
|
||||
The build.py script actually generates a Makefile based on what it
|
||||
finds on your system and information found in the build.cfg file.
|
||||
If you have troubles building or you want it built or installed in
|
||||
a different way, take a look at the docstring in build.py. You are
|
||||
able to to override many configuration options in a file named
|
||||
build.local.
|
||||
|
||||
\item To build and install the add-on modules, change to the appropriate
|
||||
directory under \tt{\$(WXWIN)/utils/wxPython/modules} and run the build
|
||||
utility again.
|
||||
|
||||
\item Change to the \tt{\$(WXWIN)/utils/wxPython/demo} directory.
|
||||
\item Try executing the demo program. Note that some of the demos print
|
||||
diagnositc or test info to standard output, so they will require the
|
||||
console version of python. For example:
|
||||
|
||||
\item Try executing the demo program. For example:
|
||||
|
||||
\tt{python demo.py}
|
||||
|
||||
To run them without requiring a console, you can use the \tt{pythonw.exe}
|
||||
version of Python either from the command line or from a shortcut.
|
||||
To run it without requiring a console on Win32, you can use the
|
||||
\tt{pythonw.exe} version of Python either from the command line or from a
|
||||
shortcut.
|
||||
\end{enumerate}
|
||||
|
||||
\wxheading{Unix}
|
||||
|
||||
These directions assume that you have already successfully built
|
||||
wxWindows for GTK, and installed Python 1.5.1 or later. If you build Python
|
||||
yourself, you will get everything installed that you need simply by
|
||||
doing \bftt{make install}. If you get Python from an RPM or other
|
||||
pre-packaged source then there will probably be a separate package
|
||||
with the development libraries, etc. that you will need to install.
|
||||
|
||||
|
||||
\begin{enumerate}\itemsep=0pt
|
||||
\item Change into the \tt{\$(WXWIN)/utils/wxPython/src} directory.
|
||||
\item Edit \tt{Setup.in} and ensure that the flags, directories, and toolkit
|
||||
options are correct, (hopefully this will be done by \tt{configure}
|
||||
soon.) See the above commentary about \tt{TARGETDIR}. There are a
|
||||
few sample Setup.in.[platform] files provided.
|
||||
\item Run this command to generate a makefile:
|
||||
|
||||
\tt{make -f Makefile.pre.in boot}
|
||||
|
||||
\item Once you have the \tt{Makefile}, run \bftt{make} to build and then
|
||||
\bftt{make install} to install the wxPython extension module.
|
||||
\item Change to the \tt{\$(WXWIN)/utils/wxPython/demo} directory.
|
||||
\item Try executing the demo program. For example:
|
||||
|
||||
\tt{python demo.py}
|
||||
\end{enumerate}
|
||||
|
||||
|
||||
%----------------------------------------------------------------------
|
||||
\section{Using wxPython}\label{wxpusing}
|
||||
|
||||
\wxheading{First things first...}
|
||||
|
||||
I'm not going to try and teach the Python language here. You can do
|
||||
I'm not going to try and teach the Python language here. You can do
|
||||
that at the \urlref{Python Tutorial}{http://www.python.org/doc/tut/tut.html}.
|
||||
I'm also going to assume that you know a bit about wxWindows already,
|
||||
enough to notice the similarities in the classes used.
|
||||
|
||||
Take a look at the following wxPython program. You can find a similar
|
||||
program in the \tt{wxPython/demo} directory, named \tt{DialogUnits.py}. If your
|
||||
Take a look at the following wxPython program. You can find a similar
|
||||
program in the \tt{wxPython/demo} directory, named \tt{DialogUnits.py}. If your
|
||||
Python and wxPython are properly installed, you should be able to run
|
||||
it by issuing this command:
|
||||
|
||||
@@ -313,48 +297,54 @@ it by issuing this command:
|
||||
|
||||
\begin{enumerate}\itemsep=0pt
|
||||
\item At line 2 the wxPython classes, constants, and etc. are imported
|
||||
into the current module's namespace. If you prefer to reduce
|
||||
namespace polution you can use "\tt{from wxPython import wx}" and
|
||||
into the current module's namespace. If you prefer to reduce
|
||||
namespace pollution you can use "\tt{from wxPython import wx}" and
|
||||
then access all the wxPython identifiers through the wx module, for
|
||||
example, "\tt{wx.wxFrame}".
|
||||
|
||||
\item At line 13 the frame's sizing and moving events are connected to
|
||||
methods of the class. These helper functions are intended to be like
|
||||
the event table macros that wxWindows employs. But since static event
|
||||
methods of the class. These helper functions are intended to be like
|
||||
the event table macros that wxWindows employs. But since static event
|
||||
tables are impossible with wxPython, we use helpers that are named the
|
||||
same to dynamically build the table. The only real difference is
|
||||
same to dynamically build the table. The only real difference is
|
||||
that the first arguemnt to the event helpers is always the window that
|
||||
the event table entry should be added to.
|
||||
|
||||
\item Notice the use of \tt{wxDLG\_PNT} and \tt{wxDLG\_SZE} in lines 19
|
||||
- 29 to convert from dialog units to pixels. These helpers are unique
|
||||
- 29 to convert from dialog units to pixels. These helpers are unique
|
||||
to wxPython since Python can't do method overloading like C++.
|
||||
|
||||
\item There is an \tt{OnCloseWindow} method at line 34 but no call to
|
||||
EVT\_CLOSE to attach the event to the method. Does it really get
|
||||
called? The answer is, yes it does. This is because many of the
|
||||
EVT\_CLOSE to attach the event to the method. Does it really get
|
||||
called? The answer is, yes it does. This is because many of the
|
||||
\em{standard} events are attached to windows that have the associated
|
||||
\em{standard} method names. I have tried to follow the lead of the
|
||||
\em{standard} method names. I have tried to follow the lead of the
|
||||
C++ classes in this area to determine what is \em{standard} but since
|
||||
that changes from time to time I can make no guarentees, nor will it
|
||||
be fully documented. When in doubt, use an EVT\_*** function.
|
||||
be fully documented. When in doubt, use an EVT\_*** function.
|
||||
|
||||
\item At lines 17 to 21 notice that there are no saved references to
|
||||
the panel or the static text items that are created. Those of you
|
||||
the panel or the static text items that are created. Those of you
|
||||
who know Python might be wondering what happens when Python deletes
|
||||
these objects when they go out of scope. Do they disappear from the GUI? They
|
||||
don't. Remember that in wxPython the Python objects are just shadows of the
|
||||
coresponding C++ objects. Once the C++ windows and controls are
|
||||
these objects when they go out of scope. Do they disappear from the GUI? They
|
||||
don't. Remember that in wxPython the Python objects are just shadows of the
|
||||
coresponding C++ objects. Once the C++ windows and controls are
|
||||
attached to their parents, the parents manage them and delete them
|
||||
when necessary. For this reason, most wxPython objects do not need to
|
||||
when necessary. For this reason, most wxPython objects do not need to
|
||||
have a \_\_del\_\_ method that explicitly causes the C++ object to be
|
||||
deleted. If you ever have the need to forcibly delete a window, use
|
||||
deleted. If you ever have the need to forcibly delete a window, use
|
||||
the Destroy() method as shown on line 36.
|
||||
|
||||
\item Just like wxWindows in C++, wxPython apps need to create a class
|
||||
derived from \tt{wxApp} (line 56) that implements a method named
|
||||
\tt{OnInit}, (line 59.) This method should create the application's
|
||||
main window (line 62) and use \tt{wxApp.SetTopWindow()} (line 66) to
|
||||
inform wxWindows about it.
|
||||
|
||||
\item And finally, at line 72 an instance of the application class is
|
||||
created. At this point wxPython finishes initializing itself, and calls
|
||||
the \tt{OnInit} method to get things started. (The zero parameter here is
|
||||
a flag for functionality that isn't quite implemented yet. Just
|
||||
created. At this point wxPython finishes initializing itself, and calls
|
||||
the \tt{OnInit} method to get things started. (The zero parameter here is
|
||||
a flag for functionality that isn't quite implemented yet. Just
|
||||
ignore it for now.) The call to \tt{MainLoop} at line 73 starts the event
|
||||
loop which continues until the application terminates or all the top
|
||||
level windows are closed.
|
||||
@@ -363,9 +353,9 @@ level windows are closed.
|
||||
%----------------------------------------------------------------------
|
||||
\section{wxWindows classes implemented in wxPython}\label{wxpclasses}
|
||||
|
||||
The following classes are supported in wxPython. Most provide nearly
|
||||
The following classes are supported in wxPython. Most provide nearly
|
||||
full implementations of the public interfaces specified in the C++
|
||||
documentation, others are less so. They will all be brought as close
|
||||
documentation, others are less so. They will all be brought as close
|
||||
as possible to the C++ spec over time.
|
||||
|
||||
\begin{itemize}\itemsep=0pt
|
||||
@@ -375,9 +365,11 @@ as possible to the C++ spec over time.
|
||||
\item \helpref{wxBitmapButton}{wxbitmapbutton}
|
||||
\item \helpref{wxBitmap}{wxbitmap}
|
||||
\item wxBMPHandler
|
||||
\item \helpref{wxBoxSizer}{wxboxsizer}
|
||||
\item \helpref{wxBrush}{wxbrush}
|
||||
\item \helpref{wxButton}{wxbutton}
|
||||
\item \helpref{wxCalculateLayoutEvent}{wxcalculatelayoutevent}
|
||||
\item wxCaret
|
||||
\item \helpref{wxCheckBox}{wxcheckbox}
|
||||
\item \helpref{wxCheckListBox}{wxchecklistbox}
|
||||
\item \helpref{wxChoice}{wxchoice}
|
||||
@@ -410,6 +402,14 @@ as possible to the C++ spec over time.
|
||||
\item wxGridCell
|
||||
\item wxGridEvent
|
||||
\item \helpref{wxGrid}{wxgrid}
|
||||
\item \helpref{wxHtmlCell}{wxhtmlcell}
|
||||
\item \helpref{wxHtmlContainerCell}{wxhtmlcontainercell}
|
||||
\item \helpref{wxHtmlParser}{wxhtmlparser}
|
||||
\item \helpref{wxHtmlTagHandler}{wxhtmltaghandler}
|
||||
\item \helpref{wxHtmlTag}{wxhtmltag}
|
||||
\item \helpref{wxHtmlWinParser}{wxhtmlwinparser}
|
||||
\item \helpref{wxHtmlWinTagHandler}{wxhtmlwintaghandler}
|
||||
\item \helpref{wxHtmlWindow}{wxhtmlwindow}
|
||||
\item wxIconizeEvent
|
||||
\item \helpref{wxIcon}{wxicon}
|
||||
\item \helpref{wxIdleEvent}{wxidleevent}
|
||||
@@ -476,16 +476,20 @@ as possible to the C++ spec over time.
|
||||
\item \helpref{wxScrollBar}{wxscrollbar}
|
||||
\item \helpref{wxScrollEvent}{wxscrollevent}
|
||||
\item \helpref{wxScrolledWindow}{wxscrolledwindow}
|
||||
\item \helpref{wxScrollWinEvent}{wxscrollwinevent}
|
||||
\item wxShowEvent
|
||||
\item \helpref{wxSingleChoiceDialog}{wxsinglechoicedialog}
|
||||
\item \helpref{wxSizeEvent}{wxsizeevent}
|
||||
\item \helpref{wxSize}{wxsize}
|
||||
\item \helpref{wxSizer}{wxsizer}
|
||||
\item wxSizerItem
|
||||
\item \helpref{wxSlider}{wxslider}
|
||||
\item \helpref{wxSpinButton}{wxspinbutton}
|
||||
\item wxSpinEvent
|
||||
\item \helpref{wxSplitterWindow}{wxsplitterwindow}
|
||||
\item \helpref{wxStaticBitmap}{wxstaticbitmap}
|
||||
\item \helpref{wxStaticBox}{wxstaticbox}
|
||||
\item \helpref{wxStaticBoxSizer}{wxstaticboxsizer}
|
||||
\item wxStaticLine
|
||||
\item \helpref{wxStaticText}{wxstatictext}
|
||||
\item \helpref{wxStatusBar}{wxstatusbar}
|
||||
@@ -502,10 +506,12 @@ as possible to the C++ spec over time.
|
||||
\item \helpref{wxTreeItemData}{wxtreeitemdata}
|
||||
\item wxTreeItemId
|
||||
\item \helpref{wxUpdateUIEvent}{wxupdateuievent}
|
||||
\item \helpref{wxValidator}{wxvalidator}
|
||||
\item \helpref{wxWindowDC}{wxwindowdc}
|
||||
\item \helpref{wxWindow}{wxwindow}
|
||||
|
||||
|
||||
|
||||
\end{itemize}
|
||||
|
||||
%----------------------------------------------------------------------
|
||||
@@ -515,7 +521,7 @@ Since wxPython is a blending of multiple technologies, help comes from
|
||||
multiple sources. See
|
||||
\urlref{http://alldunn.com/wxPython}{http://alldunn.com/wxPython} for details on
|
||||
various sources of help, but probably the best source is the
|
||||
wxPython-users mail list. You can view the archive or subscribe by
|
||||
wxPython-users mail list. You can view the archive or subscribe by
|
||||
going to
|
||||
|
||||
\urlref{http://starship.python.net/mailman/listinfo/wxpython-users}{http://starship.python.net/mailman/listinfo/wxpython-users}
|
||||
|
@@ -16,23 +16,6 @@ install instructions just do (in the base dir):
|
||||
> ldconfig
|
||||
> exit
|
||||
|
||||
On all variants of Unix except Linux (and maybe except *BSD), shared libraries
|
||||
are not supportet out of the box due to the utter stupidity of libtool, so you'll
|
||||
have to do this to get shared library support:
|
||||
|
||||
> ./configure --with-motif --disable-static --enable-shared
|
||||
|
||||
Then you'll have to edit the wrongly created libtool script. There are two
|
||||
important entries with respect to shared library creation, which are
|
||||
|
||||
archive_cmds="\$LD -shared ....
|
||||
archive_expsym_cmds="\$LD -shared ....
|
||||
|
||||
which should be something like
|
||||
|
||||
archive_cmds="\$CC -shared ....
|
||||
archive_expsym_cmds="\$CC -shared ....
|
||||
|
||||
Afterwards you can continue with
|
||||
|
||||
> make
|
||||
@@ -248,6 +231,13 @@ The following options handle the kind of library you want to build.
|
||||
binary size. Also fewer crashes during the
|
||||
actual compilation...
|
||||
|
||||
--enable-no_deps Enable compilation without creation of
|
||||
dependency information.
|
||||
|
||||
--enable-permissive Enable compilation without creation of
|
||||
giving erros as soon as you compile with
|
||||
Solaris ANSI-defying headers...
|
||||
|
||||
--enable-mem_tracing Add built-in memory tracing.
|
||||
|
||||
--enable-dmalloc Use the dmalloc memory debugger.
|
||||
|
@@ -11,6 +11,7 @@ __WXGTK12__ GTK 1.2 or higher
|
||||
__WXMSW__ Any Windows
|
||||
__WXWINE__ WINE (i.e. Win32 on Unix)
|
||||
__WXMAC__ MacOS
|
||||
__WXPM__ OS/2 native Presentation Manager
|
||||
__UNIX__ any Unix
|
||||
__WINDOWS__ any Windows
|
||||
__WIN95__ GUI for Windows 95 and above; NT 4.0 and above.
|
||||
|
@@ -1,7 +0,0 @@
|
||||
## Purpose: The automake makefile for wxWindows (include subdir)
|
||||
## Author: Vadim Zeitlin
|
||||
## Version: $Id$
|
||||
##
|
||||
## Process this file with automake to produce Makefile.in
|
||||
|
||||
SUBDIRS = wx
|
@@ -1,197 +0,0 @@
|
||||
## Purpose: The automake makefile for wxWindows (include/wx subdir)
|
||||
## Author: Vadim Zeitlin
|
||||
## Version: $Id$
|
||||
##
|
||||
## Process this file with automake to produce Makefile.in
|
||||
|
||||
SUBDIRS = generic @TOOLKIT_DIR@ @INCLUDE_SUBDIRS@
|
||||
|
||||
wx_includedir = ${includedir}/wx
|
||||
wx_include_HEADERS = \
|
||||
\
|
||||
arrimpl.cpp \
|
||||
listimpl.cpp \
|
||||
\
|
||||
accel.h \
|
||||
app.h \
|
||||
bitmap.h \
|
||||
bmpbuttn.h \
|
||||
brush.h \
|
||||
buffer.h \
|
||||
busyinfo.h \
|
||||
button.h \
|
||||
caret.h \
|
||||
checkbox.h \
|
||||
checklst.h \
|
||||
choicdlg.h \
|
||||
choice.h \
|
||||
clipbrd.h \
|
||||
cmndata.h \
|
||||
colordlg.h \
|
||||
colour.h \
|
||||
combobox.h \
|
||||
confbase.h \
|
||||
config.h \
|
||||
control.h \
|
||||
cursor.h \
|
||||
dataobj.h \
|
||||
date.h \
|
||||
datstrm.h \
|
||||
db.h \
|
||||
dbtable.h \
|
||||
dc.h \
|
||||
dcclient.h \
|
||||
dcmemory.h \
|
||||
dcprint.h \
|
||||
dcps.h \
|
||||
dcscreen.h \
|
||||
dde.h \
|
||||
debug.h \
|
||||
defs.h \
|
||||
dialog.h \
|
||||
dirdlg.h \
|
||||
dnd.h \
|
||||
docmdi.h \
|
||||
docview.h \
|
||||
dragimag.h \
|
||||
dynarray.h \
|
||||
dynlib.h \
|
||||
event.h \
|
||||
expr.h \
|
||||
extdlg.h \
|
||||
ffile.h \
|
||||
file.h \
|
||||
fileconf.h \
|
||||
filedlg.h \
|
||||
filefn.h \
|
||||
filesys.h \
|
||||
font.h \
|
||||
fontdlg.h \
|
||||
frame.h \
|
||||
fs_inet.h \
|
||||
fs_zip.h \
|
||||
gauge.h \
|
||||
gdicmn.h \
|
||||
gdiobj.h \
|
||||
grid.h \
|
||||
gsocket.h \
|
||||
hash.h \
|
||||
help.h \
|
||||
helpbase.h \
|
||||
helphtml.h \
|
||||
helpwin.h \
|
||||
helpxlp.h \
|
||||
icon.h \
|
||||
image.h \
|
||||
imaglist.h \
|
||||
intl.h \
|
||||
ioswrap.h \
|
||||
ipcbase.h \
|
||||
joystick.h \
|
||||
layout.h \
|
||||
laywin.h \
|
||||
list.h \
|
||||
listbox.h \
|
||||
listctrl.h \
|
||||
log.h \
|
||||
longlong.h \
|
||||
matrix.h \
|
||||
mdi.h \
|
||||
memory.h \
|
||||
menu.h \
|
||||
menuitem.h \
|
||||
metafile.h \
|
||||
mimetype.h \
|
||||
minifram.h \
|
||||
module.h \
|
||||
msgdlg.h \
|
||||
mstream.h \
|
||||
notebook.h \
|
||||
object.h \
|
||||
objstrm.h \
|
||||
odbc.h \
|
||||
ownerdrw.h \
|
||||
palette.h \
|
||||
panel.h \
|
||||
paper.h \
|
||||
pen.h \
|
||||
pnghand.h \
|
||||
print.h \
|
||||
printdlg.h \
|
||||
prntbase.h \
|
||||
process.h \
|
||||
progdlg.h \
|
||||
prop.h \
|
||||
propform.h \
|
||||
proplist.h \
|
||||
radiobox.h \
|
||||
radiobut.h \
|
||||
region.h \
|
||||
resource.h \
|
||||
sashwin.h \
|
||||
sckaddr.h \
|
||||
sckipc.h \
|
||||
sckstrm.h \
|
||||
scrolbar.h \
|
||||
scrolwin.h \
|
||||
serbase.h \
|
||||
settings.h \
|
||||
setup.h \
|
||||
slider.h \
|
||||
socket.h \
|
||||
spinbutt.h \
|
||||
splitter.h \
|
||||
statbmp.h \
|
||||
statbox.h \
|
||||
statline.h \
|
||||
stattext.h \
|
||||
statusbr.h \
|
||||
stream.h \
|
||||
string.h \
|
||||
tab.h \
|
||||
tabctrl.h \
|
||||
taskbar.h \
|
||||
tbar95.h \
|
||||
tbarbase.h \
|
||||
tbarmsw.h \
|
||||
tbarsmpl.h \
|
||||
textctrl.h \
|
||||
textdlg.h \
|
||||
textfile.h \
|
||||
txtstrm.h \
|
||||
thread.h \
|
||||
time.h \
|
||||
timer.h \
|
||||
tipdlg.h \
|
||||
tokenzr.h \
|
||||
toolbar.h \
|
||||
tooltip.h \
|
||||
treectrl.h \
|
||||
types.h \
|
||||
url.h \
|
||||
utils.h \
|
||||
valgen.h \
|
||||
validate.h \
|
||||
valtext.h \
|
||||
variant.h \
|
||||
version.h \
|
||||
wave.h \
|
||||
wfstream.h \
|
||||
window.h \
|
||||
wx.h \
|
||||
wx_cw.h \
|
||||
wx_cw_cm.h \
|
||||
wx_cw_d.h \
|
||||
wxchar.h \
|
||||
wxexpr.h \
|
||||
wxhtml.h \
|
||||
wxprec.h \
|
||||
xpmhand.h \
|
||||
zipstream.h \
|
||||
zstream.h
|
||||
|
||||
# setup.h is installed in another directory because several versions of wxwin
|
||||
# should be able to coexist on the same machine
|
||||
portheadersdir = ${datadir}/@PACKAGE@/include/wx/@TOOLKIT_DIR@
|
||||
portheaders_headers = setup.h
|
||||
|
@@ -37,7 +37,9 @@
|
||||
|
||||
#include "wx/event.h" // for the base class
|
||||
|
||||
#include "wx/window.h" // for wxTopLevelWindows
|
||||
#if wxUSE_GUI
|
||||
#include "wx/window.h" // for wxTopLevelWindows
|
||||
#endif // wxUSE_GUI
|
||||
|
||||
#if wxUSE_LOG
|
||||
#include "wx/log.h"
|
||||
@@ -64,22 +66,33 @@ public:
|
||||
// prevents the program from continuing - it's a good place to create
|
||||
// the top level program window and return TRUE.
|
||||
//
|
||||
// Override: always.
|
||||
// Override: always in GUI application, rarely in console ones.
|
||||
#if wxUSE_GUI
|
||||
virtual bool OnInit() { return FALSE; };
|
||||
#else // !GUI
|
||||
virtual bool OnInit() { return TRUE; };
|
||||
#endif // wxUSE_GUI
|
||||
|
||||
#if wxUSE_GUI
|
||||
// a platform-dependent version of OnInit(): the code here is likely to
|
||||
// depend on the toolkit. default version does nothing.
|
||||
//
|
||||
// Override: rarely.
|
||||
virtual bool OnInitGui() { return TRUE; }
|
||||
#endif // wxUSE_GUI
|
||||
|
||||
// called to start program execution - the default version just enters
|
||||
// the main GUI loop in which events are received and processed until
|
||||
// the last window is not deleted (if GetExitOnFrameDelete) or
|
||||
// ExitMainLoop() is called.
|
||||
// ExitMainLoop() is called. In console mode programs, the execution
|
||||
// of the program really starts here
|
||||
//
|
||||
// Override: rarely.
|
||||
// Override: rarely in GUI applications, always in console ones.
|
||||
#if wxUSE_GUI
|
||||
virtual int OnRun() { return MainLoop(); };
|
||||
#else // !GUI
|
||||
virtual int OnRun() = 0;
|
||||
#endif // wxUSE_GUI
|
||||
|
||||
// called after the main loop termination. This is a good place for
|
||||
// cleaning up (it may be too late in dtor) and is also useful if you
|
||||
@@ -102,6 +115,7 @@ public:
|
||||
// the worker functions - usually not used directly by the user code
|
||||
// -----------------------------------------------------------------
|
||||
|
||||
#if wxUSE_GUI
|
||||
// execute the main GUI loop, the function returns when the loop ends
|
||||
virtual int MainLoop() = 0;
|
||||
|
||||
@@ -118,6 +132,7 @@ public:
|
||||
// process the first event in the event queue (blocks until an event
|
||||
// apperas if there are none currently)
|
||||
virtual void Dispatch() = 0;
|
||||
#endif // wxUSE_GUI
|
||||
|
||||
// application info: name, description, vendor
|
||||
// -------------------------------------------
|
||||
@@ -144,6 +159,7 @@ public:
|
||||
const wxString& GetVendorName() const { return m_vendorName; }
|
||||
void SetVendorName(const wxString& name) { m_vendorName = name; }
|
||||
|
||||
#if wxUSE_GUI
|
||||
// top level window functions
|
||||
// --------------------------
|
||||
|
||||
@@ -171,6 +187,8 @@ public:
|
||||
void SetExitOnFrameDelete(bool flag) { m_exitOnFrameDelete = flag; }
|
||||
bool GetExitOnFrameDelete() const { return m_exitOnFrameDelete; }
|
||||
|
||||
#endif // wxUSE_GUI
|
||||
|
||||
// miscellaneous customization functions
|
||||
// -------------------------------------
|
||||
|
||||
@@ -179,10 +197,15 @@ public:
|
||||
// user-defined class (default implementation creates a wxLogGui
|
||||
// object) - this log object is used by default by all wxLogXXX()
|
||||
// functions.
|
||||
virtual wxLog *CreateLogTarget() { return new wxLogGui; }
|
||||
virtual wxLog *CreateLogTarget()
|
||||
#if wxUSE_GUI
|
||||
{ return new wxLogGui; }
|
||||
#else // !GUI
|
||||
{ return new wxLogStderr; }
|
||||
#endif // wxUSE_GUI
|
||||
#endif // wxUSE_LOG
|
||||
|
||||
|
||||
#if wxUSE_GUI
|
||||
// get the standard icon used by wxWin dialogs - this allows the user
|
||||
// to customize the standard dialogs. The 'which' parameter is one of
|
||||
// wxICON_XXX values
|
||||
@@ -198,6 +221,7 @@ public:
|
||||
// printing.
|
||||
virtual void SetPrintMode(int WXUNUSED(mode)) { }
|
||||
int GetPrintMode() const { return wxPRINT_POSTSCRIPT; }
|
||||
#endif // wxUSE_GUI
|
||||
|
||||
// implementation only from now on
|
||||
// -------------------------------
|
||||
@@ -228,29 +252,35 @@ protected:
|
||||
// TRUE if the application wants to get debug output
|
||||
bool m_wantDebugOutput;
|
||||
|
||||
#if wxUSE_GUI
|
||||
// the main top level window - may be NULL
|
||||
wxWindow *m_topWindow;
|
||||
#endif // wxUSE_GUI
|
||||
};
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// now include the declaration of the real class
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
#if defined(__WXMSW__)
|
||||
#include "wx/msw/app.h"
|
||||
#elif defined(__WXMOTIF__)
|
||||
#include "wx/motif/app.h"
|
||||
#elif defined(__WXQT__)
|
||||
#include "wx/qt/app.h"
|
||||
#elif defined(__WXGTK__)
|
||||
#include "wx/gtk/app.h"
|
||||
#elif defined(__WXMAC__)
|
||||
#include "wx/mac/app.h"
|
||||
#elif defined(__WXPM__)
|
||||
#include "wx/os2/app.h"
|
||||
#elif defined(__WXSTUBS__)
|
||||
#include "wx/stubs/app.h"
|
||||
#endif
|
||||
#if wxUSE_GUI
|
||||
#if defined(__WXMSW__)
|
||||
#include "wx/msw/app.h"
|
||||
#elif defined(__WXMOTIF__)
|
||||
#include "wx/motif/app.h"
|
||||
#elif defined(__WXQT__)
|
||||
#include "wx/qt/app.h"
|
||||
#elif defined(__WXGTK__)
|
||||
#include "wx/gtk/app.h"
|
||||
#elif defined(__WXMAC__)
|
||||
#include "wx/mac/app.h"
|
||||
#elif defined(__WXPM__)
|
||||
#include "wx/os2/app.h"
|
||||
#elif defined(__WXSTUBS__)
|
||||
#include "wx/stubs/app.h"
|
||||
#endif
|
||||
#else // !GUI
|
||||
typedef wxAppBase wxApp;
|
||||
#endif // GUI/!GUI
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// the global data
|
||||
@@ -266,11 +296,34 @@ WXDLLEXPORT_DATA(extern wxApp*) wxTheApp;
|
||||
// global functions
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
// event loop related functions only work in GUI programs
|
||||
// ------------------------------------------------------
|
||||
|
||||
#if wxUSE_GUI
|
||||
|
||||
// Force an exit from main loop
|
||||
void WXDLLEXPORT wxExit();
|
||||
extern void WXDLLEXPORT wxExit();
|
||||
|
||||
// Yield to other apps/messages
|
||||
bool WXDLLEXPORT wxYield();
|
||||
extern bool WXDLLEXPORT wxYield();
|
||||
|
||||
#endif // wxUSE_GUI
|
||||
|
||||
// console applications may avoid using DECLARE_APP and IMPLEMENT_APP macros
|
||||
// and call these functions instead at the program startup and termination
|
||||
// -------------------------------------------------------------------------
|
||||
|
||||
#if wxUSE_NOGUI
|
||||
|
||||
// initialize the library (may be called as many times as needed, but each
|
||||
// call to wxInitialize() must be matched by wxUninitialize())
|
||||
extern bool WXDLLEXPORT wxInitialize();
|
||||
|
||||
// clean up - the library can't be used any more after the last call to
|
||||
// wxUninitialize()
|
||||
extern void WXDLLEXPORT wxUninitialize();
|
||||
|
||||
#endif // wxUSE_NOGUI
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// macros for dynamic creation of the application object
|
||||
|
@@ -2,7 +2,7 @@
|
||||
// Name: listimpl.cpp
|
||||
// Purpose: helper file for implementation of dynamic lists
|
||||
// Author: Vadim Zeitlin
|
||||
// Modified by:
|
||||
// Modified by:
|
||||
// Created: 16.10.97
|
||||
// RCS-ID: $Id$
|
||||
// Copyright: (c) 1997 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
|
||||
@@ -20,6 +20,9 @@
|
||||
* 4) WX_DEFINE_OBJARRAY *
|
||||
*****************************************************************************/
|
||||
|
||||
// needed to resolve the conflict between global T and macro parameter T
|
||||
#define _WX_ERROR_REMOVE2(x) T("bad index in " #x "::Remove()")
|
||||
|
||||
// macro implements remaining (not inline) methods of template list
|
||||
// (it's private to this file)
|
||||
#undef _DEFINE_OBJARRAY
|
||||
@@ -58,7 +61,7 @@ void name::Empty() \
|
||||
\
|
||||
void name::Remove(size_t uiIndex) \
|
||||
{ \
|
||||
wxCHECK_RET( uiIndex < Count(), _T("bad index in " #name "::Remove()") ); \
|
||||
wxCHECK_RET( uiIndex < Count(), _WX_ERROR_REMOVE2(name) ); \
|
||||
\
|
||||
delete (T*)wxBaseArray::Item(uiIndex); \
|
||||
\
|
||||
@@ -99,8 +102,8 @@ int name::Index(const T& Item, bool bFromEnd) const \
|
||||
} \
|
||||
} \
|
||||
\
|
||||
return wxNOT_FOUND; \
|
||||
}
|
||||
return wxNOT_FOUND; \
|
||||
}
|
||||
|
||||
// redefine the macro so that now it will generate the class implementation
|
||||
// old value would provoke a compile-time error if this file is not included
|
||||
|
@@ -15,6 +15,7 @@
|
||||
#define _WX_BUFFER_H
|
||||
|
||||
#include "wx/wxchar.h"
|
||||
|
||||
#include <string.h> // strdup
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
@@ -27,14 +28,14 @@ class wxCharBuffer
|
||||
public:
|
||||
wxCharBuffer(const char *str)
|
||||
{
|
||||
wxASSERT_MSG( str, _T("NULL string in wxCharBuffer") );
|
||||
wxASSERT_MSG( str, T("NULL string in wxCharBuffer") );
|
||||
|
||||
m_str = str ? strdup(str) : (char *)NULL;
|
||||
}
|
||||
wxCharBuffer(size_t len)
|
||||
{
|
||||
m_str = (char *)malloc(len+1);
|
||||
m_str[len] = '\0';
|
||||
m_str[len] = '\0';
|
||||
}
|
||||
// no need to check for NULL, free() does it
|
||||
~wxCharBuffer() { free(m_str); }
|
||||
@@ -66,7 +67,7 @@ class wxWCharBuffer
|
||||
public:
|
||||
wxWCharBuffer(const wchar_t *wcs)
|
||||
{
|
||||
wxASSERT_MSG( wcs, _T("NULL string in wxWCharBuffer") );
|
||||
wxASSERT_MSG( wcs, T("NULL string in wxWCharBuffer") );
|
||||
|
||||
if (wcs) {
|
||||
size_t siz = (wcslen(wcs)+1)*sizeof(wchar_t);
|
||||
@@ -78,7 +79,7 @@ public:
|
||||
wxWCharBuffer(size_t len)
|
||||
{
|
||||
m_wcs = (wchar_t *)malloc((len+1)*sizeof(wchar_t));
|
||||
m_wcs[len] = L'\0';
|
||||
m_wcs[len] = L'\0';
|
||||
}
|
||||
|
||||
// no need to check for NULL, free() does it
|
||||
@@ -100,23 +101,23 @@ public:
|
||||
|
||||
operator const wchar_t *() const { return m_wcs; }
|
||||
wchar_t operator[](size_t n) const { return m_wcs[n]; }
|
||||
|
||||
|
||||
private:
|
||||
wchar_t *m_wcs;
|
||||
};
|
||||
#endif
|
||||
|
||||
#if wxUSE_UNICODE
|
||||
#define wxMB2WXbuf wxWCharBuffer
|
||||
#define wxWX2MBbuf wxCharBuffer
|
||||
#define wxWC2WXbuf wxChar*
|
||||
#define wxWX2WCbuf wxChar*
|
||||
#else
|
||||
#define wxMB2WXbuf wxChar*
|
||||
#define wxWX2MBbuf wxChar*
|
||||
#define wxWC2WXbuf wxCharBuffer
|
||||
#define wxWX2WCbuf wxWCharBuffer
|
||||
#endif
|
||||
#define wxMB2WXbuf wxWCharBuffer
|
||||
#define wxWX2MBbuf wxCharBuffer
|
||||
#define wxWC2WXbuf wxChar*
|
||||
#define wxWX2WCbuf wxChar*
|
||||
#else // ANSI
|
||||
#define wxMB2WXbuf wxChar*
|
||||
#define wxWX2MBbuf wxChar*
|
||||
#define wxWC2WXbuf wxCharBuffer
|
||||
#define wxWX2WCbuf wxWCharBuffer
|
||||
#endif // Unicode/ANSI
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// template class for any kind of data
|
||||
|
@@ -182,8 +182,6 @@ private:
|
||||
|
||||
#if defined(__WXMSW__)
|
||||
#include "wx/msw/caret.h"
|
||||
#elif defined(__WXPM__)
|
||||
#include "wx/os2/caret.h"
|
||||
#else
|
||||
#include "wx/generic/caret.h"
|
||||
#endif // platform
|
||||
|
@@ -1,11 +1,7 @@
|
||||
#ifndef _WX_CHOICDLG_H_BASE_
|
||||
#define _WX_CHOICDLG_H_BASE_
|
||||
|
||||
#ifdef __WXGTK__
|
||||
#include "wx/gtk/choicdlg.h"
|
||||
#else
|
||||
#include "wx/generic/choicdgg.h"
|
||||
#endif
|
||||
|
||||
#endif
|
||||
// _WX_CHOICDLG_H_BASE_
|
||||
|
@@ -43,10 +43,10 @@ public:
|
||||
void Append(const wxString& item) { DoAppend(item); }
|
||||
// with client data which belongs to the caller
|
||||
void Append(const wxString &item, void* clientData)
|
||||
{ DoAppend(item); SetClientData(GetCount() - 1, clientData); }
|
||||
{ int n = DoAppend(item); SetClientData(n, clientData); }
|
||||
// with client data which will be deleted by the control
|
||||
void Append(const wxString &item, wxClientData* clientData)
|
||||
{ DoAppend(item); SetClientObject(GetCount() - 1, clientData); }
|
||||
{ int n = DoAppend(item); SetClientObject(n, clientData); }
|
||||
|
||||
// delete items from the list
|
||||
// one item
|
||||
@@ -95,7 +95,7 @@ public:
|
||||
|
||||
private:
|
||||
// pure virtuals to implement in the derived classes
|
||||
virtual void DoAppend(const wxString& item) = 0;
|
||||
virtual int DoAppend(const wxString& item) = 0;
|
||||
|
||||
virtual void DoSetClientData( int n, void* clientData ) = 0;
|
||||
virtual void* DoGetClientData( int n ) const = 0;
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user