Compare commits
378 Commits
wxPython-2
...
wxPy-2-1-5
Author | SHA1 | Date | |
---|---|---|---|
|
0acf57d2cf | ||
|
07cb3fd3d1 | ||
|
60a15c9b7b | ||
|
d5a07b9ec9 | ||
|
46c3e3d92a | ||
|
d1b15f03b8 | ||
|
147bc49159 | ||
|
4c61bdabd6 | ||
|
27d029c722 | ||
|
738f9e5a12 | ||
|
d66d3ce6dd | ||
|
75f11ad7ca | ||
|
b782f2e0f6 | ||
|
2083616e16 | ||
|
1b231e235b | ||
|
622ea7838d | ||
|
db98870d82 | ||
|
247e5b1632 | ||
|
bf0c00c6e8 | ||
|
fb9010ed40 | ||
|
89be8239db | ||
|
2726c66d5b | ||
|
5e4ff78a96 | ||
|
783ff666e0 | ||
|
bc29c5e0e1 | ||
|
06c0fba410 | ||
|
21422dd796 | ||
|
7e94145827 | ||
|
a091d18c61 | ||
|
e115e77131 | ||
|
2a6277d4f2 | ||
|
de87c35312 | ||
|
307f16e829 | ||
|
ca43a38c0f | ||
|
a79fa1ed13 | ||
|
272cd5dddb | ||
|
3156ba6ea6 | ||
|
45016e1a6b | ||
|
ed673c6a48 | ||
|
2136a764e5 | ||
|
44174280e5 | ||
|
223d09f6b5 | ||
|
b4a2ab728b | ||
|
fcc228b31e | ||
|
85f3749fd2 | ||
|
0371a69143 | ||
|
89aea7b0ef | ||
|
fbfe0e6a88 | ||
|
ae920857a7 | ||
|
ccba72313c | ||
|
86e7822245 | ||
|
4f63da7e98 | ||
|
f40dc1e275 | ||
|
9b5801d640 | ||
|
167b96c2ad | ||
|
6147ee3451 | ||
|
e1ea357c67 | ||
|
bbfa03228a | ||
|
48115f4a69 | ||
|
1475671a66 | ||
|
e9f2ef9429 | ||
|
c4684a42c8 | ||
|
39a7c7e167 | ||
|
00ded55423 | ||
|
2b37dc19c5 | ||
|
3976f6a846 | ||
|
a2115c88f3 | ||
|
9b64e79868 | ||
|
7c4eef7a75 | ||
|
3806d8a9f6 | ||
|
65d7ddc4eb | ||
|
d604ea3355 | ||
|
66242c8007 | ||
|
21802234df | ||
|
134d79dca7 | ||
|
2690830ea0 | ||
|
28d00598b3 | ||
|
934d4f8d8c | ||
|
7bf5436263 | ||
|
cdb5168095 | ||
|
b540eb2bee | ||
|
07818da861 | ||
|
3766781218 | ||
|
6768c790de | ||
|
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 |
@@ -3,6 +3,7 @@ bin
|
||||
.gdb_history
|
||||
Test
|
||||
config.cache
|
||||
configarg.cache
|
||||
config.status
|
||||
system.list
|
||||
linux.system.cache
|
||||
@@ -17,6 +18,7 @@ linux-gnu.system.cache
|
||||
*.ncb
|
||||
*.pro
|
||||
*.opt
|
||||
*.d
|
||||
Release
|
||||
Debug
|
||||
ReleaseDLL
|
||||
|
28
BuildCVS.txt
28
BuildCVS.txt
@@ -35,7 +35,25 @@ and its make.exe).
|
||||
-> Set your path so that it includes the directory
|
||||
where your compiler and tools reside
|
||||
|
||||
b-2) Using Mingw32 with gcc-2.95 and Anders Norlander's
|
||||
Win32 headers
|
||||
|
||||
Using the newer gcc-2.95/Noralander header combination
|
||||
will allow you to compile more of the MSW code, such
|
||||
as OLE and Drag-n-Drop.
|
||||
|
||||
Instructions are similar to those for Regular Mingw32 except
|
||||
|
||||
->Get the compiler from
|
||||
ftp://ftp.xraylith.wisc.edu/pub/khan/gnu-win32/mingw32/gcc-2.95/
|
||||
|
||||
->patch the gcc headers with info in wxWin\Mingw32-gcc295.patches.
|
||||
PLEASE APPLY THESE PATCHES BY HAND! There are apparently a few
|
||||
different versions of the headers floating around.
|
||||
|
||||
->copy wxWin\src\makeg295.env to wxWin\src\makeg95.env
|
||||
|
||||
|
||||
c) Build instructions
|
||||
|
||||
-> Assumming that you installed the wxWindows sources
|
||||
@@ -44,7 +62,7 @@ c) Build instructions
|
||||
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_ODBC 0
|
||||
#define wxUSE_SOCKETS 0
|
||||
#define wxUSE_HTML 1
|
||||
#define wxUSE_THREADS 1
|
||||
@@ -58,9 +76,13 @@ c) Build instructions
|
||||
|
||||
and iostreams ares disabled with
|
||||
#define wxUSE_STD_IOSTREAM 0
|
||||
|
||||
note: ODBC and SOCKETS can be 1 for gcc-2.95
|
||||
|
||||
-> type: cd c:\wxWin\src\msw
|
||||
-> type: make -f makefile.g95 (if using GNU tools)
|
||||
or type: make -f makefile.vc (if using MS VC++)
|
||||
-> type: make -f makefile.g95 (if using GNU tools)
|
||||
or type: make -f makefile.g295 (if using Mingw32/gcc-2.95)
|
||||
or type: make -f makefile.vc (if using MS VC++)
|
||||
|
||||
|
||||
II) Unix ports
|
||||
|
296
Makefile.in
296
Makefile.in
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# This file was automatically generated by tmake at 15:02, 1999/08/29
|
||||
# This file was automatically generated by tmake at 09:29, 1999/10/11
|
||||
# DO NOT CHANGE THIS FILE, YOUR CHANGES WILL BE LOST! CHANGE UNX.T!
|
||||
|
||||
#
|
||||
@@ -44,8 +44,9 @@ VP6 = @top_srcdir@/src/html
|
||||
VP7 = @top_srcdir@/src/png
|
||||
VP8 = @top_srcdir@/src/jpeg
|
||||
VP9 = @top_srcdir@/src/zlib
|
||||
VP10 = @top_srcdir@/src/iodbc
|
||||
|
||||
VPATH = $(VP1):$(VP2):$(VP3):$(VP4):$(VP5):$(VP6):$(VP7):$(VP8):$(VP9)
|
||||
VPATH = $(VP1):$(VP2):$(VP3):$(VP4):$(VP5):$(VP6):$(VP7):$(VP8):$(VP9):$(VP10)
|
||||
|
||||
top_srcdir = @top_srcdir@
|
||||
prefix = @prefix@
|
||||
@@ -125,6 +126,43 @@ DISTDIR = ./_dist_dir/wx$(TOOLKIT)
|
||||
|
||||
############################## Files ##################################
|
||||
|
||||
BASE_HEADERS = \
|
||||
app.h \
|
||||
date.h \
|
||||
debug.h \
|
||||
defs.h \
|
||||
dynarray.h \
|
||||
dynlib.h \
|
||||
event.h \
|
||||
ffile.h \
|
||||
file.h \
|
||||
fileconf.h \
|
||||
hash.h \
|
||||
intl.h \
|
||||
list.h \
|
||||
log.h \
|
||||
longlong.h \
|
||||
mimetype.h \
|
||||
module.h \
|
||||
object.h \
|
||||
process.h \
|
||||
setup.h \
|
||||
strconv.h \
|
||||
stream.h \
|
||||
string.h \
|
||||
textfile.h \
|
||||
thread.h \
|
||||
time.h \
|
||||
timer.h \
|
||||
tokenzr.h \
|
||||
txtstrm.h \
|
||||
utils.h \
|
||||
variant.h \
|
||||
version.h \
|
||||
wx.h \
|
||||
wxchar.h \
|
||||
wxprec.h
|
||||
|
||||
WX_HEADERS = \
|
||||
accel.h \
|
||||
app.h \
|
||||
@@ -526,7 +564,7 @@ GENERIC_HEADERS = \
|
||||
generic/dirdlgg.h \
|
||||
generic/filedlgg.h \
|
||||
generic/fontdlgg.h \
|
||||
generic/gridg.h \
|
||||
generic/grid.h \
|
||||
generic/helpext.h \
|
||||
generic/helphtml.h \
|
||||
generic/helpwxht.h \
|
||||
@@ -555,17 +593,19 @@ PROTOCOL_HEADERS = \
|
||||
protocol/protocol.h
|
||||
|
||||
HTML_HEADERS = \
|
||||
html/forcelink.h \
|
||||
html/forcelnk.h \
|
||||
html/helpctrl.h \
|
||||
html/helpdata.h \
|
||||
html/helpfrm.h \
|
||||
html/htmlcell.h \
|
||||
html/htmldefs.h \
|
||||
html/htmlfilter.h \
|
||||
html/htmlhelp.h \
|
||||
html/htmlparser.h \
|
||||
html/htmlfilt.h \
|
||||
html/htmlpars.h \
|
||||
html/htmltag.h \
|
||||
html/htmlwin.h \
|
||||
html/htmlwinparser.h \
|
||||
html/mod_templ.h \
|
||||
html/version.h
|
||||
html/m_templ.h \
|
||||
html/version.h \
|
||||
html/winpars.h
|
||||
|
||||
GTK_GENERICOBJS = \
|
||||
busyinfo.o \
|
||||
@@ -575,12 +615,13 @@ GTK_GENERICOBJS = \
|
||||
dcpsg.o \
|
||||
dirdlgg.o \
|
||||
filedlgg.o \
|
||||
gridg.o \
|
||||
grid.o \
|
||||
helphtml.o \
|
||||
helpwxht.o \
|
||||
imaglist.o \
|
||||
laywin.o \
|
||||
listctrl.o \
|
||||
logg.o \
|
||||
msgdlgg.o \
|
||||
numdlgg.o \
|
||||
panelg.o \
|
||||
@@ -607,12 +648,13 @@ GTK_GENERICDEPS = \
|
||||
dcpsg.d \
|
||||
dirdlgg.d \
|
||||
filedlgg.d \
|
||||
gridg.d \
|
||||
grid.d \
|
||||
helphtml.d \
|
||||
helpwxht.d \
|
||||
imaglist.d \
|
||||
laywin.d \
|
||||
listctrl.d \
|
||||
logg.d \
|
||||
msgdlgg.d \
|
||||
numdlgg.d \
|
||||
panelg.d \
|
||||
@@ -652,6 +694,7 @@ GTK_COMMONOBJS = \
|
||||
fileconf.o \
|
||||
filefn.o \
|
||||
filesys.o \
|
||||
fontcmn.o \
|
||||
framecmn.o \
|
||||
fs_inet.o \
|
||||
fs_zip.o \
|
||||
@@ -661,6 +704,7 @@ GTK_COMMONOBJS = \
|
||||
hash.o \
|
||||
helpbase.o \
|
||||
http.o \
|
||||
imagall.o \
|
||||
imagbmp.o \
|
||||
image.o \
|
||||
imaggif.o \
|
||||
@@ -688,6 +732,7 @@ GTK_COMMONOBJS = \
|
||||
sckfile.o \
|
||||
sckipc.o \
|
||||
sckstrm.o \
|
||||
serbase.o \
|
||||
sizer.o \
|
||||
socket.o \
|
||||
strconv.o \
|
||||
@@ -736,6 +781,7 @@ GTK_COMMONDEPS = \
|
||||
fileconf.d \
|
||||
filefn.d \
|
||||
filesys.d \
|
||||
fontcmn.d \
|
||||
framecmn.d \
|
||||
fs_inet.d \
|
||||
fs_zip.d \
|
||||
@@ -745,6 +791,7 @@ GTK_COMMONDEPS = \
|
||||
hash.d \
|
||||
helpbase.d \
|
||||
http.d \
|
||||
imagall.d \
|
||||
imagbmp.d \
|
||||
image.d \
|
||||
imaggif.d \
|
||||
@@ -772,6 +819,7 @@ GTK_COMMONDEPS = \
|
||||
sckfile.d \
|
||||
sckipc.d \
|
||||
sckstrm.d \
|
||||
serbase.d \
|
||||
sizer.d \
|
||||
socket.d \
|
||||
strconv.d \
|
||||
@@ -844,6 +892,7 @@ GTK_GUIOBJS = \
|
||||
settings.o \
|
||||
slider.o \
|
||||
spinbutt.o \
|
||||
spinctrl.o \
|
||||
statbmp.o \
|
||||
statbox.o \
|
||||
statline.o \
|
||||
@@ -903,6 +952,7 @@ GTK_GUIDEPS = \
|
||||
settings.d \
|
||||
slider.d \
|
||||
spinbutt.d \
|
||||
spinctrl.d \
|
||||
statbmp.d \
|
||||
statbox.d \
|
||||
statline.d \
|
||||
@@ -925,13 +975,14 @@ MOTIF_GENERICOBJS = \
|
||||
dcpsg.o \
|
||||
dirdlgg.o \
|
||||
fontdlgg.o \
|
||||
gridg.o \
|
||||
grid.o \
|
||||
helphtml.o \
|
||||
helpwxht.o \
|
||||
helpxlp.o \
|
||||
imaglist.o \
|
||||
laywin.o \
|
||||
listctrl.o \
|
||||
logg.o \
|
||||
msgdlgg.o \
|
||||
notebook.o \
|
||||
numdlgg.o \
|
||||
@@ -945,6 +996,7 @@ MOTIF_GENERICOBJS = \
|
||||
sashwin.o \
|
||||
scrolwin.o \
|
||||
splitter.o \
|
||||
statline.o \
|
||||
statusbr.o \
|
||||
tabg.o \
|
||||
textdlgg.o \
|
||||
@@ -960,13 +1012,14 @@ MOTIF_GENERICDEPS = \
|
||||
dcpsg.d \
|
||||
dirdlgg.d \
|
||||
fontdlgg.d \
|
||||
gridg.d \
|
||||
grid.d \
|
||||
helphtml.d \
|
||||
helpwxht.d \
|
||||
helpxlp.d \
|
||||
imaglist.d \
|
||||
laywin.d \
|
||||
listctrl.d \
|
||||
logg.d \
|
||||
msgdlgg.d \
|
||||
notebook.d \
|
||||
numdlgg.d \
|
||||
@@ -980,6 +1033,7 @@ MOTIF_GENERICDEPS = \
|
||||
sashwin.d \
|
||||
scrolwin.d \
|
||||
splitter.d \
|
||||
statline.d \
|
||||
statusbr.d \
|
||||
tabg.d \
|
||||
textdlgg.d \
|
||||
@@ -1010,6 +1064,7 @@ MOTIF_COMMONOBJS = \
|
||||
fileconf.o \
|
||||
filefn.o \
|
||||
filesys.o \
|
||||
fontcmn.o \
|
||||
framecmn.o \
|
||||
fs_inet.o \
|
||||
fs_zip.o \
|
||||
@@ -1019,6 +1074,7 @@ MOTIF_COMMONOBJS = \
|
||||
hash.o \
|
||||
helpbase.o \
|
||||
http.o \
|
||||
imagall.o \
|
||||
imagbmp.o \
|
||||
image.o \
|
||||
imaggif.o \
|
||||
@@ -1047,6 +1103,7 @@ MOTIF_COMMONOBJS = \
|
||||
sckfile.o \
|
||||
sckipc.o \
|
||||
sckstrm.o \
|
||||
serbase.o \
|
||||
sizer.o \
|
||||
socket.o \
|
||||
strconv.o \
|
||||
@@ -1097,6 +1154,7 @@ MOTIF_COMMONDEPS = \
|
||||
fileconf.d \
|
||||
filefn.d \
|
||||
filesys.d \
|
||||
fontcmn.d \
|
||||
framecmn.d \
|
||||
fs_inet.d \
|
||||
fs_zip.d \
|
||||
@@ -1106,6 +1164,7 @@ MOTIF_COMMONDEPS = \
|
||||
hash.d \
|
||||
helpbase.d \
|
||||
http.d \
|
||||
imagall.d \
|
||||
imagbmp.d \
|
||||
image.d \
|
||||
imaggif.d \
|
||||
@@ -1134,6 +1193,7 @@ MOTIF_COMMONDEPS = \
|
||||
sckfile.d \
|
||||
sckipc.d \
|
||||
sckstrm.d \
|
||||
serbase.d \
|
||||
sizer.d \
|
||||
socket.d \
|
||||
strconv.d \
|
||||
@@ -1170,6 +1230,7 @@ MOTIF_GUIOBJS = \
|
||||
brush.o \
|
||||
button.o \
|
||||
checkbox.o \
|
||||
checklst.o \
|
||||
choice.o \
|
||||
clipbrd.o \
|
||||
colour.o \
|
||||
@@ -1185,6 +1246,7 @@ MOTIF_GUIOBJS = \
|
||||
dialog.o \
|
||||
filedlg.o \
|
||||
font.o \
|
||||
fontenum.o \
|
||||
frame.o \
|
||||
gauge.o \
|
||||
gdiobj.o \
|
||||
@@ -1205,6 +1267,7 @@ MOTIF_GUIOBJS = \
|
||||
scrolbar.o \
|
||||
settings.o \
|
||||
slider.o \
|
||||
spinbutt.o \
|
||||
statbmp.o \
|
||||
statbox.o \
|
||||
stattext.o \
|
||||
@@ -1223,6 +1286,7 @@ MOTIF_GUIDEPS = \
|
||||
brush.d \
|
||||
button.d \
|
||||
checkbox.d \
|
||||
checklst.d \
|
||||
choice.d \
|
||||
clipbrd.d \
|
||||
colour.d \
|
||||
@@ -1238,6 +1302,7 @@ MOTIF_GUIDEPS = \
|
||||
dialog.d \
|
||||
filedlg.d \
|
||||
font.d \
|
||||
fontenum.d \
|
||||
frame.d \
|
||||
gauge.d \
|
||||
gdiobj.d \
|
||||
@@ -1258,6 +1323,7 @@ MOTIF_GUIDEPS = \
|
||||
scrolbar.d \
|
||||
settings.d \
|
||||
slider.d \
|
||||
spinbutt.d \
|
||||
statbmp.d \
|
||||
statbox.d \
|
||||
stattext.d \
|
||||
@@ -1271,8 +1337,9 @@ MSW_GENERICOBJS = \
|
||||
busyinfo.o \
|
||||
choicdgg.o \
|
||||
dirdlgg.o \
|
||||
gridg.o \
|
||||
grid.o \
|
||||
laywin.o \
|
||||
logg.o \
|
||||
numdlgg.o \
|
||||
panelg.o \
|
||||
progdlgg.o \
|
||||
@@ -1292,8 +1359,9 @@ MSW_GENERICDEPS = \
|
||||
busyinfo.d \
|
||||
choicdgg.d \
|
||||
dirdlgg.d \
|
||||
gridg.d \
|
||||
grid.d \
|
||||
laywin.d \
|
||||
logg.d \
|
||||
numdlgg.d \
|
||||
panelg.d \
|
||||
progdlgg.d \
|
||||
@@ -1332,6 +1400,7 @@ MSW_COMMONOBJS = \
|
||||
fileconf.o \
|
||||
filefn.o \
|
||||
filesys.o \
|
||||
fontcmn.o \
|
||||
framecmn.o \
|
||||
fs_inet.o \
|
||||
fs_zip.o \
|
||||
@@ -1341,6 +1410,7 @@ MSW_COMMONOBJS = \
|
||||
hash.o \
|
||||
helpbase.o \
|
||||
http.o \
|
||||
imagall.o \
|
||||
imagbmp.o \
|
||||
image.o \
|
||||
imaggif.o \
|
||||
@@ -1359,6 +1429,7 @@ MSW_COMMONOBJS = \
|
||||
mstream.o \
|
||||
object.o \
|
||||
objstrm.o \
|
||||
odbc.o \
|
||||
paper.o \
|
||||
prntbase.o \
|
||||
process.o \
|
||||
@@ -1368,12 +1439,14 @@ MSW_COMMONOBJS = \
|
||||
sckfile.o \
|
||||
sckipc.o \
|
||||
sckstrm.o \
|
||||
serbase.o \
|
||||
sizer.o \
|
||||
socket.o \
|
||||
strconv.o \
|
||||
stream.o \
|
||||
string.o \
|
||||
tbarbase.o \
|
||||
tbarsmpl.o \
|
||||
textcmn.o \
|
||||
textfile.o \
|
||||
time.o \
|
||||
@@ -1417,6 +1490,7 @@ MSW_COMMONDEPS = \
|
||||
fileconf.d \
|
||||
filefn.d \
|
||||
filesys.d \
|
||||
fontcmn.d \
|
||||
framecmn.d \
|
||||
fs_inet.d \
|
||||
fs_zip.d \
|
||||
@@ -1426,6 +1500,7 @@ MSW_COMMONDEPS = \
|
||||
hash.d \
|
||||
helpbase.d \
|
||||
http.d \
|
||||
imagall.d \
|
||||
imagbmp.d \
|
||||
image.d \
|
||||
imaggif.d \
|
||||
@@ -1444,6 +1519,7 @@ MSW_COMMONDEPS = \
|
||||
mstream.d \
|
||||
object.d \
|
||||
objstrm.d \
|
||||
odbc.d \
|
||||
paper.d \
|
||||
prntbase.d \
|
||||
process.d \
|
||||
@@ -1453,12 +1529,14 @@ MSW_COMMONDEPS = \
|
||||
sckfile.d \
|
||||
sckipc.d \
|
||||
sckstrm.d \
|
||||
serbase.d \
|
||||
sizer.d \
|
||||
socket.d \
|
||||
strconv.d \
|
||||
stream.d \
|
||||
string.d \
|
||||
tbarbase.d \
|
||||
tbarsmpl.d \
|
||||
textcmn.d \
|
||||
textfile.d \
|
||||
time.d \
|
||||
@@ -1514,6 +1592,7 @@ MSW_GUIOBJS = \
|
||||
frame.o \
|
||||
gauge95.o \
|
||||
gdiobj.o \
|
||||
gsocket.o \
|
||||
helpwin.o \
|
||||
icon.o \
|
||||
imaglist.o \
|
||||
@@ -1599,6 +1678,7 @@ MSW_GUIDEPS = \
|
||||
frame.d \
|
||||
gauge95.d \
|
||||
gdiobj.d \
|
||||
gsocket.d \
|
||||
helpwin.d \
|
||||
icon.d \
|
||||
imaglist.d \
|
||||
@@ -1649,50 +1729,122 @@ MSW_GUIDEPS = \
|
||||
window.d \
|
||||
xpmhand.d
|
||||
|
||||
BASE_OBJS = \
|
||||
config.o \
|
||||
date.o \
|
||||
dynarray.o \
|
||||
dynlib.o \
|
||||
event.o \
|
||||
extended.o \
|
||||
ffile.o \
|
||||
file.o \
|
||||
fileconf.o \
|
||||
filefn.o \
|
||||
filesys.o \
|
||||
hash.o \
|
||||
init.o \
|
||||
intl.o \
|
||||
list.o \
|
||||
log.o \
|
||||
mimetype.o \
|
||||
module.o \
|
||||
object.o \
|
||||
process.o \
|
||||
strconv.o \
|
||||
stream.o \
|
||||
string.o \
|
||||
textfile.o \
|
||||
time.o \
|
||||
timercmn.o \
|
||||
tokenzr.o \
|
||||
txtstrm.o \
|
||||
utilscmn.o \
|
||||
variant.o \
|
||||
wxchar.o \
|
||||
utilsunx.o
|
||||
|
||||
BASE_DEPS = \
|
||||
config.d \
|
||||
date.d \
|
||||
dynarray.d \
|
||||
dynlib.d \
|
||||
event.d \
|
||||
extended.d \
|
||||
ffile.d \
|
||||
file.d \
|
||||
fileconf.d \
|
||||
filefn.d \
|
||||
filesys.d \
|
||||
hash.d \
|
||||
init.d \
|
||||
intl.d \
|
||||
list.d \
|
||||
log.d \
|
||||
mimetype.d \
|
||||
module.d \
|
||||
object.d \
|
||||
process.d \
|
||||
strconv.d \
|
||||
stream.d \
|
||||
string.d \
|
||||
textfile.d \
|
||||
time.d \
|
||||
timercmn.d \
|
||||
tokenzr.d \
|
||||
txtstrm.d \
|
||||
utilscmn.d \
|
||||
variant.d \
|
||||
wxchar.d \
|
||||
utilsunx.d
|
||||
|
||||
HTMLOBJS = \
|
||||
helpctrl.o \
|
||||
helpdata.o \
|
||||
helpfrm.o \
|
||||
htmlcell.o \
|
||||
htmlfilter.o \
|
||||
htmlhelp.o \
|
||||
htmlhelp_io.o \
|
||||
htmlparser.o \
|
||||
htmlfilt.o \
|
||||
htmlpars.o \
|
||||
htmltag.o \
|
||||
htmlwin.o \
|
||||
htmlwinparser.o \
|
||||
mod_fonts.o \
|
||||
mod_hline.o \
|
||||
mod_image.o \
|
||||
mod_layout.o \
|
||||
mod_links.o \
|
||||
mod_list.o \
|
||||
mod_pre.o \
|
||||
mod_tables.o \
|
||||
search.o
|
||||
m_fonts.o \
|
||||
m_hline.o \
|
||||
m_image.o \
|
||||
m_layout.o \
|
||||
m_links.o \
|
||||
m_list.o \
|
||||
m_pre.o \
|
||||
m_tables.o \
|
||||
search.o \
|
||||
winpars.o
|
||||
|
||||
HTMLDEPS = \
|
||||
helpctrl.d \
|
||||
helpdata.d \
|
||||
helpfrm.d \
|
||||
htmlcell.d \
|
||||
htmlfilter.d \
|
||||
htmlhelp.d \
|
||||
htmlhelp_io.d \
|
||||
htmlparser.d \
|
||||
htmlfilt.d \
|
||||
htmlpars.d \
|
||||
htmltag.d \
|
||||
htmlwin.d \
|
||||
htmlwinparser.d \
|
||||
mod_fonts.d \
|
||||
mod_hline.d \
|
||||
mod_image.d \
|
||||
mod_layout.d \
|
||||
mod_links.d \
|
||||
mod_list.d \
|
||||
mod_pre.d \
|
||||
mod_tables.d \
|
||||
search.d
|
||||
m_fonts.d \
|
||||
m_hline.d \
|
||||
m_image.d \
|
||||
m_layout.d \
|
||||
m_links.d \
|
||||
m_list.d \
|
||||
m_pre.d \
|
||||
m_tables.d \
|
||||
search.d \
|
||||
winpars.d
|
||||
|
||||
UNIXOBJS = \
|
||||
UNIX_OBJS = \
|
||||
dialup.o \
|
||||
gsocket.o \
|
||||
threadpsx.o \
|
||||
utilsunx.o
|
||||
|
||||
UNIXDEPS = \
|
||||
UNIX_DEPS = \
|
||||
dialup.d \
|
||||
gsocket.d \
|
||||
threadpsx.d \
|
||||
utilsunx.d
|
||||
@@ -1779,16 +1931,40 @@ JPEGOBJS = \
|
||||
jquant2.o \
|
||||
jdmerge.o
|
||||
|
||||
IODBCOBJS = \
|
||||
catalog.o \
|
||||
connect.o \
|
||||
dlf.o \
|
||||
dlproc.o \
|
||||
execute.o \
|
||||
fetch.o \
|
||||
hdbc.o \
|
||||
henv.o \
|
||||
herr.o \
|
||||
hstmt.o \
|
||||
info.o \
|
||||
itrace.o \
|
||||
misc.o \
|
||||
prepare.o \
|
||||
result.o
|
||||
|
||||
OBJECTS = $(@GUIOBJS@) $(@COMMONOBJS@) $(@GENERICOBJS@) $(@UNIXOBJS@) $(HTMLOBJS) \
|
||||
$(JPEGOBJS) $(PNGOBJS) $(ZLIBOBJS)
|
||||
GUIOBJS = @GUIOBJS@
|
||||
GUIDEPS = @GUIDEPS@
|
||||
GUIHEADERS = @GUIHEADERS@
|
||||
COMMONOBJS = @COMMONOBJS@
|
||||
COMMONDEPS = @COMMONDEPS@
|
||||
GENERICOBJS = @GENERICOBJS@
|
||||
GENERICDEPS = @GENERICDEPS@
|
||||
UNIXOBJS = @UNIXOBJS@
|
||||
UNIXDEPS = @UNIXDEPS@
|
||||
|
||||
DEPFILES = $(@GUIDEPS@) $(@COMMONDEPS@) $(@GENERICDEPS@) $(UNIXDEPS) $(HTMLDEPS)
|
||||
OBJECTS = @ALL_OBJECTS@ $(IODBCOBJS)
|
||||
|
||||
HEADERS = $(@GUIHEADERS@) $(HTML_HEADERS) $(UNIX_HEADERS) $(PROTOCOL_HEADERS) \
|
||||
$(GENERIC_HEADERS) $(WX_HEADERS)
|
||||
DEPFILES = @ALL_DEPFILES@
|
||||
|
||||
all: $(OBJECTS) @WX_TARGET_LIBRARY@ @WX_CREATE_LINKS@
|
||||
HEADERS = @ALL_HEADERS@
|
||||
|
||||
all: @WX_ALL@
|
||||
|
||||
@WX_LIBRARY_NAME_STATIC@: $(OBJECTS)
|
||||
@$(INSTALL) -d ./lib
|
||||
@@ -1799,7 +1975,7 @@ all: $(OBJECTS) @WX_TARGET_LIBRARY@ @WX_CREATE_LINKS@
|
||||
@$(INSTALL) -d ./lib
|
||||
$(SHARED_LD) ./lib/$@ $(OBJECTS) $(EXTRALIBS)
|
||||
|
||||
CREATE_LINKS: ./lib/@WX_TARGET_LIBRARY@
|
||||
CREATE_LINKS: @WX_LIBRARY_NAME_SHARED@
|
||||
@$(RM) ./lib/@WX_LIBRARY_LINK1@
|
||||
@$(RM) ./lib/@WX_LIBRARY_LINK2@
|
||||
@$(RM) ./lib/@WX_LIBRARY_LINK3@
|
||||
@@ -1807,13 +1983,13 @@ CREATE_LINKS: ./lib/@WX_TARGET_LIBRARY@
|
||||
$(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@
|
||||
CREATE_INSTALLED_LINKS: $(libdir)/@WX_LIBRARY_NAME_SHARED@
|
||||
$(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@
|
||||
$(LN_S) @WX_LIBRARY_NAME_SHARED@ $(libdir)/@WX_LIBRARY_LINK1@
|
||||
$(LN_S) @WX_LIBRARY_NAME_SHARED@ $(libdir)/@WX_LIBRARY_LINK2@
|
||||
$(LN_S) @WX_LIBRARY_NAME_SHARED@ $(libdir)/@WX_LIBRARY_LINK3@
|
||||
|
||||
$(OBJECTS): $(WXDIR)/include/wx/defs.h $(WXDIR)/include/wx/object.h $(WXDIR)/include/wx/setup.h
|
||||
|
||||
@@ -1890,7 +2066,7 @@ write_message:
|
||||
@echo " Read the wxWindows Licence on licencing conditions."
|
||||
@echo " "
|
||||
|
||||
install: preinstall @WX_CREATE_INSTALLED_LINKS@ write_message
|
||||
install: preinstall @WX_ALL_INSTALLED@ write_message
|
||||
|
||||
uninstall:
|
||||
@echo " "
|
||||
@@ -2156,6 +2332,10 @@ SAMPLES_DIST:
|
||||
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/newgrid
|
||||
cp $(SAMPDIR)/newgrid/Makefile.in $(DISTDIR)/samples/newgrid
|
||||
cp $(SAMPDIR)/newgrid/*.cpp $(DISTDIR)/samples/newgrid
|
||||
cp $(SAMPDIR)/newgrid/*.h $(DISTDIR)/samples/newgrid
|
||||
mkdir $(DISTDIR)/samples/notebook
|
||||
cp $(SAMPDIR)/notebook/Makefile.in $(DISTDIR)/samples/notebook
|
||||
cp $(SAMPDIR)/notebook/*.cpp $(DISTDIR)/samples/notebook
|
||||
|
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**);
|
||||
|
||||
|
||||
|
||||
|
674
configure.in
674
configure.in
File diff suppressed because it is too large
Load Diff
@@ -20,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
|
||||
@@ -37,6 +43,7 @@ docs/bugs.txt
|
||||
docs/*.htm
|
||||
docs/html/*.htm
|
||||
docs/html/*.gif
|
||||
docs/html/*.png
|
||||
|
||||
src/*.inc
|
||||
src/mkdir
|
||||
@@ -66,6 +73,7 @@ src/html/*.h
|
||||
src/html/bitmaps/*.xpm
|
||||
|
||||
src/unix/*.cpp
|
||||
src/unix/*.c
|
||||
|
||||
src/png/*.c
|
||||
src/png/*.h
|
||||
@@ -97,6 +105,7 @@ 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
|
||||
|
@@ -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,6 +10,7 @@ docs/gtk/COPYING.LIB
|
||||
docs/gtk/makewxgtk
|
||||
|
||||
include/wx/gtk/*.h
|
||||
include/wx/gtk/*.xpm
|
||||
include/install-sh
|
||||
include/wx/install-sh
|
||||
|
||||
|
@@ -1,3 +1,4 @@
|
||||
Makefile.in
|
||||
src/Makefile
|
||||
locale/Makefile
|
||||
samples/Makefile.in
|
||||
|
@@ -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
|
||||
|
@@ -13,6 +13,7 @@ all: $(MSW_MAKEFILES_DIR)/makefile.vc \
|
||||
$(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
|
||||
@@ -36,5 +37,8 @@ $(MSW_MAKEFILES_DIR)/makefile.wat: filelist.txt wxwin.pro
|
||||
$(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";
|
||||
}
|
||||
}
|
||||
#$}
|
||||
|
||||
|
@@ -28,6 +28,8 @@
|
||||
# compiler, &c)
|
||||
#
|
||||
# Known flags:
|
||||
# B makes part of the base library too
|
||||
# BO only for the base library
|
||||
# 16 a generic file implementing Win32 control for Win16
|
||||
# 32 only can be compiled under Win32
|
||||
# PS PostScript related file, normally not compiled under Windows
|
||||
@@ -37,10 +39,11 @@
|
||||
# S Socket file (currently doesn't compile under Win16 nor with GNU)
|
||||
# R Not required for the GTK port
|
||||
# X Not required for the Motif port
|
||||
#
|
||||
# WX Base header
|
||||
# GTK GTK header
|
||||
# GTK GTK header
|
||||
# MSW MSW header
|
||||
# MAC Mac header
|
||||
# MAC Mac header
|
||||
# MOT Motif header
|
||||
# PM OS/2 header
|
||||
# GEN Generic header
|
||||
@@ -59,13 +62,14 @@ dcpsg.cpp G U
|
||||
dirdlgg.cpp G 16
|
||||
fontdlgg.cpp G G,R
|
||||
filedlgg.cpp G U,X
|
||||
gridg.cpp G
|
||||
grid.cpp G
|
||||
helphtml.cpp G G
|
||||
helpwxht.cpp G G
|
||||
helpxlp.cpp G G,R
|
||||
imaglist.cpp G 16
|
||||
laywin.cpp G
|
||||
listctrl.cpp G 16
|
||||
logg.cpp G
|
||||
msgdlgg.cpp G G
|
||||
notebook.cpp G 16,R
|
||||
panelg.cpp G
|
||||
@@ -78,6 +82,7 @@ proplist.cpp G
|
||||
sashwin.cpp G
|
||||
scrolwin.cpp G
|
||||
splitter.cpp G
|
||||
statline.cpp G U,R
|
||||
statusbr.cpp G
|
||||
tabg.cpp G R
|
||||
numdlgg.cpp G
|
||||
@@ -88,9 +93,9 @@ wizard.cpp G
|
||||
|
||||
choiccmn.cpp C R
|
||||
cmndata.cpp C
|
||||
config.cpp C
|
||||
config.cpp C B
|
||||
ctrlcmn.cpp C R
|
||||
date.cpp C
|
||||
date.cpp C B
|
||||
datstrm.cpp C
|
||||
db.cpp C
|
||||
dbtable.cpp C
|
||||
@@ -98,75 +103,79 @@ dcbase.cpp C
|
||||
dlgcmn.cpp C
|
||||
docmdi.cpp C
|
||||
docview.cpp C
|
||||
dynarray.cpp C
|
||||
dynlib.cpp C
|
||||
event.cpp C
|
||||
extended.c C
|
||||
ffile.cpp C
|
||||
file.cpp C
|
||||
fileconf.cpp C
|
||||
filefn.cpp C
|
||||
filesys.cpp C
|
||||
dynarray.cpp C B
|
||||
dynlib.cpp C B
|
||||
event.cpp C B
|
||||
extended.c C B
|
||||
ffile.cpp C B
|
||||
file.cpp C B
|
||||
fileconf.cpp C B
|
||||
filefn.cpp C B
|
||||
filesys.cpp C B
|
||||
fontcmn.cpp C
|
||||
framecmn.cpp C
|
||||
fs_inet.cpp C
|
||||
fs_zip.cpp C
|
||||
ftp.cpp C S
|
||||
gdicmn.cpp C
|
||||
gifdecod.cpp C
|
||||
hash.cpp C
|
||||
hash.cpp C B
|
||||
helpbase.cpp C
|
||||
http.cpp C S
|
||||
imagbmp.cpp C
|
||||
image.cpp C
|
||||
imagall.cpp C
|
||||
imaggif.cpp C
|
||||
imagjpeg.cpp C
|
||||
imagpcx.cpp C
|
||||
imagpng.cpp C
|
||||
imagpnm.cpp C
|
||||
intl.cpp C
|
||||
imagjpeg.cpp C 32
|
||||
imagpcx.cpp C 32
|
||||
imagpng.cpp C 32
|
||||
imagpnm.cpp C 32
|
||||
init.cpp C B,BO
|
||||
intl.cpp C B
|
||||
ipcbase.cpp C
|
||||
layout.cpp C
|
||||
list.cpp C
|
||||
log.cpp C
|
||||
list.cpp C B
|
||||
log.cpp C B
|
||||
memory.cpp C
|
||||
mimetype.cpp C 32
|
||||
module.cpp C
|
||||
mimetype.cpp C 32,B
|
||||
module.cpp C B
|
||||
mstream.cpp C
|
||||
object.cpp C
|
||||
object.cpp C B
|
||||
objstrm.cpp C
|
||||
odbc.cpp C R
|
||||
paper.cpp C
|
||||
prntbase.cpp C
|
||||
process.cpp C 32
|
||||
process.cpp C 32,B
|
||||
protocol.cpp C S
|
||||
resource.cpp C
|
||||
sckaddr.cpp C S
|
||||
sckfile.cpp C S
|
||||
sckipc.cpp C S
|
||||
sckstrm.cpp C S
|
||||
serbase.cpp C
|
||||
sizer.cpp C
|
||||
socket.cpp C S
|
||||
stream.cpp C
|
||||
strconv.cpp C
|
||||
string.cpp C
|
||||
stream.cpp C B
|
||||
strconv.cpp C B
|
||||
string.cpp C B
|
||||
tbarbase.cpp C
|
||||
tbarsmpl.cpp C 16
|
||||
tbarsmpl.cpp C
|
||||
textcmn.cpp C
|
||||
textfile.cpp C
|
||||
time.cpp C
|
||||
timercmn.cpp C
|
||||
tokenzr.cpp C
|
||||
txtstrm.cpp C
|
||||
textfile.cpp C B
|
||||
time.cpp C B
|
||||
timercmn.cpp C B
|
||||
tokenzr.cpp C B
|
||||
txtstrm.cpp C B
|
||||
unzip.c C
|
||||
url.cpp C S
|
||||
utilscmn.cpp C
|
||||
utilscmn.cpp C B
|
||||
valgen.cpp C
|
||||
validate.cpp C
|
||||
valtext.cpp C
|
||||
variant.cpp C
|
||||
variant.cpp C B
|
||||
wfstream.cpp C
|
||||
wincmn.cpp C
|
||||
wxchar.cpp C
|
||||
wxchar.cpp C B
|
||||
wxexpr.cpp C
|
||||
zipstrm.cpp C
|
||||
zstream.cpp C
|
||||
@@ -232,7 +241,7 @@ ownerdrw.cpp M
|
||||
palette.cpp M
|
||||
pen.cpp M
|
||||
penwin.cpp M
|
||||
pnghand.cpp M
|
||||
pnghand.cpp M 32
|
||||
printdlg.cpp M
|
||||
printwin.cpp M
|
||||
radiobox.cpp M
|
||||
@@ -265,9 +274,11 @@ uuid.cpp M O
|
||||
wave.cpp M
|
||||
window.cpp M
|
||||
xpmhand.cpp M
|
||||
gsocket.c M S
|
||||
|
||||
dialup.cpp U
|
||||
threadpsx.cpp U
|
||||
utilsunx.cpp U
|
||||
utilsunx.cpp U B
|
||||
gsocket.c U
|
||||
|
||||
gsockgtk.c R
|
||||
@@ -299,7 +310,6 @@ fontdlg.cpp R
|
||||
frame.cpp R
|
||||
gauge.cpp R
|
||||
gdiobj.cpp R
|
||||
gsockgtk.c R
|
||||
icon.cpp R
|
||||
listbox.cpp R
|
||||
main.cpp R
|
||||
@@ -316,6 +326,7 @@ scrolbar.cpp R
|
||||
settings.cpp R
|
||||
slider.cpp R
|
||||
spinbutt.cpp R
|
||||
spinctrl.cpp R
|
||||
statbmp.cpp R
|
||||
statbox.cpp R
|
||||
statline.cpp R
|
||||
@@ -329,7 +340,7 @@ utilsres.cpp R
|
||||
wave.cpp R
|
||||
window.cpp R
|
||||
|
||||
gsockmot.cpp X
|
||||
gsockmot.c X S
|
||||
accel.cpp X
|
||||
app.cpp X
|
||||
bitmap.cpp X
|
||||
@@ -337,6 +348,7 @@ bmpbuttn.cpp X
|
||||
brush.cpp X
|
||||
button.cpp X
|
||||
checkbox.cpp X
|
||||
checklst.cpp X
|
||||
choice.cpp X
|
||||
clipbrd.cpp X
|
||||
colour.cpp X
|
||||
@@ -352,6 +364,7 @@ dcscreen.cpp X
|
||||
dialog.cpp X
|
||||
filedlg.cpp X
|
||||
font.cpp X
|
||||
fontenum.cpp X
|
||||
frame.cpp X
|
||||
gauge.cpp X
|
||||
gdiobj.cpp X
|
||||
@@ -371,6 +384,7 @@ region.cpp X
|
||||
scrolbar.cpp X
|
||||
settings.cpp X
|
||||
slider.cpp X
|
||||
spinbutt.cpp X
|
||||
statbmp.cpp X
|
||||
statbox.cpp X
|
||||
stattext.cpp X
|
||||
@@ -380,28 +394,29 @@ timer.cpp X
|
||||
utils.cpp X
|
||||
window.cpp X
|
||||
|
||||
helpdata.cpp H
|
||||
helpfrm.cpp H
|
||||
helpctrl.cpp H
|
||||
htmlcell.cpp H
|
||||
htmlfilter.cpp H
|
||||
htmlhelp.cpp H
|
||||
htmlhelp_io.cpp H
|
||||
htmlparser.cpp H
|
||||
htmlfilt.cpp H
|
||||
htmlpars.cpp H
|
||||
htmltag.cpp H
|
||||
htmlwin.cpp H
|
||||
htmlwinparser.cpp H
|
||||
mod_fonts.cpp H
|
||||
mod_hline.cpp H
|
||||
mod_image.cpp H
|
||||
mod_layout.cpp H
|
||||
mod_links.cpp H
|
||||
mod_list.cpp H
|
||||
mod_pre.cpp H
|
||||
mod_tables.cpp H
|
||||
winpars.cpp H
|
||||
m_fonts.cpp H
|
||||
m_hline.cpp H
|
||||
m_image.cpp H
|
||||
m_layout.cpp H
|
||||
m_links.cpp H
|
||||
m_list.cpp H
|
||||
m_pre.cpp H
|
||||
m_tables.cpp H
|
||||
search.cpp H
|
||||
|
||||
arrimpl.cpp W
|
||||
listimpl.cpp W
|
||||
accel.h W
|
||||
app.h W
|
||||
app.h W B
|
||||
bitmap.h W
|
||||
bmpbuttn.h W
|
||||
brush.h W
|
||||
@@ -423,7 +438,7 @@ config.h W
|
||||
control.h W
|
||||
cursor.h W
|
||||
dataobj.h W
|
||||
date.h W
|
||||
date.h W B
|
||||
datstrm.h W
|
||||
db.h W
|
||||
dbtable.h W
|
||||
@@ -434,21 +449,21 @@ dcprint.h W
|
||||
dcps.h W
|
||||
dcscreen.h W
|
||||
dde.h W
|
||||
debug.h W
|
||||
defs.h W
|
||||
debug.h W B
|
||||
defs.h W B
|
||||
dialog.h W
|
||||
dirdlg.h W
|
||||
dnd.h W
|
||||
docmdi.h W
|
||||
docview.h W
|
||||
dragimag.h W
|
||||
dynarray.h W
|
||||
dynlib.h W
|
||||
event.h W
|
||||
dynarray.h W B
|
||||
dynlib.h W B
|
||||
event.h W B
|
||||
expr.h W
|
||||
ffile.h W
|
||||
file.h W
|
||||
fileconf.h W
|
||||
ffile.h W B
|
||||
file.h W B
|
||||
fileconf.h W B
|
||||
filedlg.h W
|
||||
filefn.h W
|
||||
filesys.h W
|
||||
@@ -463,7 +478,7 @@ gdiobj.h W
|
||||
gifdecod.h W
|
||||
grid.h W
|
||||
gsocket.h W
|
||||
hash.h W
|
||||
hash.h W B
|
||||
help.h W
|
||||
helpbase.h W
|
||||
helphtml.h W
|
||||
@@ -472,30 +487,30 @@ helpxlp.h W
|
||||
icon.h W
|
||||
image.h W
|
||||
imaglist.h W
|
||||
intl.h W
|
||||
intl.h W B
|
||||
ioswrap.h W
|
||||
ipcbase.h W
|
||||
joystick.h W
|
||||
layout.h W
|
||||
laywin.h W
|
||||
list.h W
|
||||
list.h W B
|
||||
listbox.h W
|
||||
listctrl.h W
|
||||
log.h W
|
||||
longlong.h W
|
||||
log.h W B
|
||||
longlong.h W B
|
||||
matrix.h W
|
||||
mdi.h W
|
||||
memory.h W
|
||||
menu.h W
|
||||
menuitem.h W
|
||||
metafile.h W
|
||||
mimetype.h W
|
||||
mimetype.h W B
|
||||
minifram.h W
|
||||
module.h W
|
||||
module.h W B
|
||||
msgdlg.h W
|
||||
mstream.h W
|
||||
notebook.h W
|
||||
object.h W
|
||||
object.h W B
|
||||
objstrm.h W
|
||||
odbc.h W
|
||||
ownerdrw.h W
|
||||
@@ -507,7 +522,7 @@ pnghand.h W
|
||||
print.h W
|
||||
printdlg.h W
|
||||
prntbase.h W
|
||||
process.h W
|
||||
process.h W B
|
||||
progdlg.h W
|
||||
prop.h W
|
||||
propform.h W
|
||||
@@ -524,7 +539,7 @@ scrolbar.h W
|
||||
scrolwin.h W
|
||||
serbase.h W
|
||||
settings.h W
|
||||
setup.h W
|
||||
setup.h W B
|
||||
sizer.h W
|
||||
slider.h W
|
||||
socket.h W
|
||||
@@ -535,9 +550,9 @@ statbox.h W
|
||||
statline.h W
|
||||
stattext.h W
|
||||
statusbr.h W
|
||||
strconv.h W
|
||||
stream.h W
|
||||
string.h W
|
||||
strconv.h W B
|
||||
stream.h W B
|
||||
string.h W B
|
||||
tab.h W
|
||||
tabctrl.h W
|
||||
taskbar.h W
|
||||
@@ -547,35 +562,35 @@ tbarmsw.h W
|
||||
tbarsmpl.h W
|
||||
textctrl.h W
|
||||
textdlg.h W
|
||||
textfile.h W
|
||||
txtstrm.h W
|
||||
thread.h W
|
||||
time.h W
|
||||
timer.h W
|
||||
textfile.h W B
|
||||
txtstrm.h W B
|
||||
thread.h W B
|
||||
time.h W B
|
||||
timer.h W B
|
||||
tipdlg.h W
|
||||
tokenzr.h W
|
||||
tokenzr.h W B
|
||||
toolbar.h W
|
||||
tooltip.h W
|
||||
treectrl.h W
|
||||
types.h W
|
||||
url.h W
|
||||
utils.h W
|
||||
utils.h W B
|
||||
valgen.h W
|
||||
validate.h W
|
||||
valtext.h W
|
||||
variant.h W
|
||||
version.h W
|
||||
variant.h W B
|
||||
version.h W B
|
||||
wave.h W
|
||||
wfstream.h W
|
||||
window.h W
|
||||
wx.h W
|
||||
wx.h W B
|
||||
wx_cw.h W
|
||||
wx_cw_cm.h W
|
||||
wx_cw_d.h W
|
||||
wxchar.h W
|
||||
wxchar.h W B
|
||||
wxexpr.h W
|
||||
wxhtml.h W
|
||||
wxprec.h W
|
||||
wxprec.h W B
|
||||
xpmhand.h W
|
||||
zipstrm.h W
|
||||
zstream.h W
|
||||
@@ -816,16 +831,18 @@ ftp.h P
|
||||
http.h P
|
||||
protocol.h P
|
||||
|
||||
forcelink.h L
|
||||
forcelnk.h L
|
||||
helpdata.h L
|
||||
helpfrm.h L
|
||||
helpctrl.h L
|
||||
htmlcell.h L
|
||||
htmldefs.h L
|
||||
htmlfilter.h L
|
||||
htmlhelp.h L
|
||||
htmlparser.h L
|
||||
htmlfilt.h L
|
||||
htmlpars.h L
|
||||
htmltag.h L
|
||||
htmlwin.h L
|
||||
htmlwinparser.h L
|
||||
mod_templ.h L
|
||||
winpars.h L
|
||||
m_templ.h L
|
||||
version.h L
|
||||
|
||||
caret.h N
|
||||
@@ -835,7 +852,7 @@ dcpsg.h N
|
||||
dirdlgg.h N
|
||||
fontdlgg.h N
|
||||
filedlgg.h N
|
||||
gridg.h N
|
||||
grid.h N
|
||||
helpext.h N
|
||||
helpwxht.h N
|
||||
helphtml.h N
|
||||
|
263
distrib/msw/tmake/g295.t
Normal file
263
distrib/msw/tmake/g295.t
Normal file
@@ -0,0 +1,263 @@
|
||||
#!#############################################################################
|
||||
#! 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$
|
||||
#!#############################################################################
|
||||
|
||||
#${
|
||||
#! include the code which parses filelist.txt file and initializes
|
||||
#! %wxCommon, %wxGeneric and %wxMSW hashes.
|
||||
IncludeTemplate("filelist.t");
|
||||
|
||||
#! now transform these hashes into $project tags
|
||||
foreach $file (sort keys %wxGeneric) {
|
||||
#! 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} =~ /\b(16)\b/;
|
||||
|
||||
$file =~ s/cp?p?$/\$(OBJSUFF)/;
|
||||
$project{"WXCOMMONOBJS"} .= '$(COMMDIR)/' . $file . " "
|
||||
}
|
||||
|
||||
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{"WXMSWOBJS"} .= $file . " "
|
||||
}
|
||||
|
||||
foreach $file (sort keys %wxHTML) {
|
||||
$file =~ s/cp?p?$/\$(OBJSUFF)/;
|
||||
$project{"WXHTMLOBJS"} .= '$(HTMLDIR)/' . $file . " "
|
||||
}
|
||||
|
||||
#$}
|
||||
# This file was automatically generated by tmake at #$ Now()
|
||||
# DO NOT CHANGE THIS FILE, YOUR CHANGES WILL BE LOST! CHANGE G295.T!
|
||||
|
||||
#
|
||||
# File: makefile.g295
|
||||
# Author: Julian Smart, Robert Roebling, Vadim Zeitlin
|
||||
# Created: 1993
|
||||
# Updated: 1999
|
||||
# Copyright:(c) 1993, AIAI, University of Edinburgh,
|
||||
# Copyright:(c) 1999, Vadim Zeitlin
|
||||
# Copyright:(c) 1999, Robert Roebling
|
||||
#
|
||||
# Makefile for libwx.a
|
||||
|
||||
# Replace this with your own path if necessary
|
||||
WXDIR = ../..
|
||||
|
||||
# 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
|
||||
XPMDIR = $(WXDIR)/src/xpm
|
||||
PNGDIR = $(WXDIR)/src/png
|
||||
JPEGDIR = $(WXDIR)/src/jpeg
|
||||
ZLIBDIR = $(WXDIR)/src/zlib
|
||||
OLEDIR = $(WXDIR)/src/msw/ole
|
||||
MSWDIR = $(WXDIR)/src/msw
|
||||
|
||||
DOCDIR = $(WXDIR)\docs
|
||||
|
||||
GENERICOBJS = \
|
||||
#$ ExpandList("WXGENERICOBJS");
|
||||
|
||||
COMMONOBJS = \
|
||||
$(COMMDIR)/y_tab.$(OBJSUFF) \
|
||||
#$ ExpandList("WXCOMMONOBJS");
|
||||
|
||||
HTMLOBJS = \
|
||||
#$ ExpandList("WXHTMLOBJS");
|
||||
|
||||
MSWOBJS = \
|
||||
#$ ExpandList("WXMSWOBJS");
|
||||
|
||||
ZLIBOBJS = \
|
||||
$(ZLIBDIR)/adler32.$(OBJSUFF) \
|
||||
$(ZLIBDIR)/compress.$(OBJSUFF) \
|
||||
$(ZLIBDIR)/crc32.$(OBJSUFF) \
|
||||
$(ZLIBDIR)/gzio.$(OBJSUFF) \
|
||||
$(ZLIBDIR)/uncompr.$(OBJSUFF) \
|
||||
$(ZLIBDIR)/deflate.$(OBJSUFF) \
|
||||
$(ZLIBDIR)/trees.$(OBJSUFF) \
|
||||
$(ZLIBDIR)/zutil.$(OBJSUFF) \
|
||||
$(ZLIBDIR)/inflate.$(OBJSUFF) \
|
||||
$(ZLIBDIR)/infblock.$(OBJSUFF) \
|
||||
$(ZLIBDIR)/inftrees.$(OBJSUFF) \
|
||||
$(ZLIBDIR)/infcodes.$(OBJSUFF) \
|
||||
$(ZLIBDIR)/infutil.$(OBJSUFF) \
|
||||
$(ZLIBDIR)/inffast.$(OBJSUFF)
|
||||
|
||||
PNGOBJS = \
|
||||
$(PNGDIR)/png.$(OBJSUFF) \
|
||||
$(PNGDIR)/pngread.$(OBJSUFF) \
|
||||
$(PNGDIR)/pngrtran.$(OBJSUFF) \
|
||||
$(PNGDIR)/pngrutil.$(OBJSUFF) \
|
||||
$(PNGDIR)/pngpread.$(OBJSUFF) \
|
||||
$(PNGDIR)/pngtrans.$(OBJSUFF) \
|
||||
$(PNGDIR)/pngwrite.$(OBJSUFF) \
|
||||
$(PNGDIR)/pngwtran.$(OBJSUFF) \
|
||||
$(PNGDIR)/pngwutil.$(OBJSUFF) \
|
||||
$(PNGDIR)/pngerror.$(OBJSUFF) \
|
||||
$(PNGDIR)/pngmem.$(OBJSUFF) \
|
||||
$(PNGDIR)/pngwio.$(OBJSUFF) \
|
||||
$(PNGDIR)/pngrio.$(OBJSUFF) \
|
||||
$(PNGDIR)/pngget.$(OBJSUFF) \
|
||||
$(PNGDIR)/pngset.$(OBJSUFF)
|
||||
|
||||
|
||||
JPEGOBJS = \
|
||||
$(JPEGDIR)/jcomapi.$(OBJSUFF) \
|
||||
$(JPEGDIR)/jutils.$(OBJSUFF) \
|
||||
$(JPEGDIR)/jerror.$(OBJSUFF) \
|
||||
$(JPEGDIR)/jmemmgr.$(OBJSUFF) \
|
||||
$(JPEGDIR)/jmemnobs.$(OBJSUFF) \
|
||||
$(JPEGDIR)/jcapimin.$(OBJSUFF) \
|
||||
$(JPEGDIR)/jcapistd.$(OBJSUFF) \
|
||||
$(JPEGDIR)/jctrans.$(OBJSUFF) \
|
||||
$(JPEGDIR)/jcparam.$(OBJSUFF) \
|
||||
$(JPEGDIR)/jdatadst.$(OBJSUFF) \
|
||||
$(JPEGDIR)/jcinit.$(OBJSUFF) \
|
||||
$(JPEGDIR)/jcmaster.$(OBJSUFF) \
|
||||
$(JPEGDIR)/jcmarker.$(OBJSUFF) \
|
||||
$(JPEGDIR)/jcmainct.$(OBJSUFF) \
|
||||
$(JPEGDIR)/jcprepct.$(OBJSUFF) \
|
||||
$(JPEGDIR)/jccoefct.$(OBJSUFF) \
|
||||
$(JPEGDIR)/jccolor.$(OBJSUFF) \
|
||||
$(JPEGDIR)/jcsample.$(OBJSUFF) \
|
||||
$(JPEGDIR)/jchuff.$(OBJSUFF) \
|
||||
$(JPEGDIR)/jcphuff.$(OBJSUFF) \
|
||||
$(JPEGDIR)/jcdctmgr.$(OBJSUFF) \
|
||||
$(JPEGDIR)/jfdctfst.$(OBJSUFF) \
|
||||
$(JPEGDIR)/jfdctflt.$(OBJSUFF) \
|
||||
$(JPEGDIR)/jfdctint.$(OBJSUFF) \
|
||||
$(JPEGDIR)/jdapimin.$(OBJSUFF) \
|
||||
$(JPEGDIR)/jdapistd.$(OBJSUFF) \
|
||||
$(JPEGDIR)/jdtrans.$(OBJSUFF) \
|
||||
$(JPEGDIR)/jdatasrc.$(OBJSUFF) \
|
||||
$(JPEGDIR)/jdmaster.$(OBJSUFF) \
|
||||
$(JPEGDIR)/jdinput.$(OBJSUFF) \
|
||||
$(JPEGDIR)/jdmarker.$(OBJSUFF) \
|
||||
$(JPEGDIR)/jdhuff.$(OBJSUFF) \
|
||||
$(JPEGDIR)/jdphuff.$(OBJSUFF) \
|
||||
$(JPEGDIR)/jdmainct.$(OBJSUFF) \
|
||||
$(JPEGDIR)/jdcoefct.$(OBJSUFF) \
|
||||
$(JPEGDIR)/jdpostct.$(OBJSUFF) \
|
||||
$(JPEGDIR)/jddctmgr.$(OBJSUFF) \
|
||||
$(JPEGDIR)/jidctfst.$(OBJSUFF) \
|
||||
$(JPEGDIR)/jidctflt.$(OBJSUFF) \
|
||||
$(JPEGDIR)/jidctint.$(OBJSUFF) \
|
||||
$(JPEGDIR)/jidctred.$(OBJSUFF) \
|
||||
$(JPEGDIR)/jdsample.$(OBJSUFF) \
|
||||
$(JPEGDIR)/jdcolor.$(OBJSUFF) \
|
||||
$(JPEGDIR)/jquant1.$(OBJSUFF) \
|
||||
$(JPEGDIR)/jquant2.$(OBJSUFF) \
|
||||
$(JPEGDIR)/jdmerge.$(OBJSUFF)
|
||||
|
||||
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) $(EXTRAOBJS)
|
||||
ar $(AROPTIONS) $@ $(EXTRAOBJS) $(OBJECTS)
|
||||
$(RANLIB) $@
|
||||
|
||||
$(OBJECTS): $(WXINC)/wx/defs.h $(WXINC)/wx/object.h $(WXINC)/wx/setup.h
|
||||
|
||||
$(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)/y_tab.c: $(COMMDIR)/dosyacc.c
|
||||
copy ..\common\dosyacc.c ..\common\y_tab.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:
|
||||
-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
|
@@ -51,36 +51,32 @@
|
||||
#! Common
|
||||
|
||||
foreach $file (sort keys %wxCommon) {
|
||||
next if $wxCommon{$file} =~ /\bR\b/;
|
||||
($fileobj = $file) =~ s/cp?p?$/\o/;
|
||||
($filedep = $file) =~ s/cp?p?$/\d/;
|
||||
|
||||
$file2 = $file;
|
||||
$file =~ s/cp?p?$/\o/;
|
||||
$file2 =~ s/cp?p?$/\d/;
|
||||
$project{"WXGTK_COMMONOBJS"} .= $file . " ";
|
||||
$project{"WXGTK_COMMONDEPS"} .= $file2 . " "
|
||||
}
|
||||
#! 'B' flag means that the file makes part of wxBase too
|
||||
if ( $wxCommon{$file} =~ /\bB\b/ ) {
|
||||
$project{"BASE_OBJS"} .= $fileobj . " ";
|
||||
$project{"BASE_DEPS"} .= $filedep . " ";
|
||||
}
|
||||
|
||||
foreach $file (sort keys %wxCommon) {
|
||||
next if $wxCommon{$file} =~ /\bX\b/;
|
||||
#! if it's the wxBase-only file, nothing more to do with it
|
||||
next if $wxCommon{$file} =~ /\bBO\b/;
|
||||
|
||||
$file2 = $file;
|
||||
$file =~ s/cp?p?$/\o/;
|
||||
$file2 =~ s/cp?p?$/\d/;
|
||||
$project{"WXMOTIF_COMMONOBJS"} .= $file . " ";
|
||||
$project{"WXMOTIF_COMMONDEPS"} .= $file2 . " "
|
||||
}
|
||||
if ( $wxCommon{$file} !~ /\bR\b/ ) { #! unless not for GTK
|
||||
$project{"WXGTK_COMMONOBJS"} .= $fileobj . " ";
|
||||
$project{"WXGTK_COMMONDEPS"} .= $filedep . " "
|
||||
}
|
||||
if ( $wxCommon{$file} !~ /\bX\b/ ) { #! unless not for Motif
|
||||
$project{"WXMOTIF_COMMONOBJS"} .= $fileobj . " ";
|
||||
$project{"WXMOTIF_COMMONDEPS"} .= $filedep . " "
|
||||
}
|
||||
|
||||
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 . " "
|
||||
#! ODBC needs extra files (sql*.h) so not compiled by default.
|
||||
if ( (file !~ /^odbc\./) && ($wxCommon{$file} !~ /\b(16)\b/) ) {
|
||||
$project{"WXMSW_COMMONOBJS"} .= $fileobj . " ";
|
||||
$project{"WXMSW_COMMONDEPS"} .= $filedep . " "
|
||||
}
|
||||
}
|
||||
|
||||
#! GUI
|
||||
@@ -127,17 +123,24 @@
|
||||
}
|
||||
|
||||
foreach $file (sort keys %wxUNIX) {
|
||||
$file2 = $file;
|
||||
$file =~ s/cp?p?$/\o/;
|
||||
$file2 =~ s/cp?p?$/\d/;
|
||||
$project{"WXUNIXOBJS"} .= $file . " ";
|
||||
$project{"WXUNIXDEPS"} .= $file2 . " "
|
||||
($fileobj = $file) =~ s/cp?p?$/\o/;
|
||||
($filedep = $file) =~ s/cp?p?$/\d/;
|
||||
|
||||
#! 'B' flag means that the file makes part of wxBase too
|
||||
if ( $wxUNIX{$file} =~ /\bB\b/ ) {
|
||||
$project{"BASE_OBJS"} .= $fileobj . " ";
|
||||
$project{"BASE_DEPS"} .= $filedep . " "
|
||||
}
|
||||
|
||||
$project{"WXUNIX_OBJS"} .= $fileobj . " ";
|
||||
$project{"WXUNIX_DEPS"} .= $filedep . " "
|
||||
}
|
||||
|
||||
#! headers
|
||||
|
||||
foreach $file (sort keys %wxWXINCLUDE) {
|
||||
$project{"WX_HEADERS"} .= $file . " "
|
||||
$project{"WX_HEADERS"} .= $file . " ";
|
||||
$project{"BASE_HEADERS"} .= $file . " " if $wxWXINCLUDE{$file} =~ /\bB\b/;
|
||||
}
|
||||
|
||||
foreach $file (sort keys %wxGENERICINCLUDE) {
|
||||
@@ -214,8 +217,9 @@ VP6 = @top_srcdir@/src/html
|
||||
VP7 = @top_srcdir@/src/png
|
||||
VP8 = @top_srcdir@/src/jpeg
|
||||
VP9 = @top_srcdir@/src/zlib
|
||||
VP10 = @top_srcdir@/src/iodbc
|
||||
|
||||
VPATH = $(VP1):$(VP2):$(VP3):$(VP4):$(VP5):$(VP6):$(VP7):$(VP8):$(VP9)
|
||||
VPATH = $(VP1):$(VP2):$(VP3):$(VP4):$(VP5):$(VP6):$(VP7):$(VP8):$(VP9):$(VP10)
|
||||
|
||||
top_srcdir = @top_srcdir@
|
||||
prefix = @prefix@
|
||||
@@ -295,6 +299,9 @@ DISTDIR = ./_dist_dir/wx$(TOOLKIT)
|
||||
|
||||
############################## Files ##################################
|
||||
|
||||
BASE_HEADERS = \
|
||||
#$ ExpandList("BASE_HEADERS");
|
||||
|
||||
WX_HEADERS = \
|
||||
#$ ExpandList("WX_HEADERS");
|
||||
|
||||
@@ -381,17 +388,23 @@ MSW_GUIOBJS = \
|
||||
MSW_GUIDEPS = \
|
||||
#$ ExpandList("WXMSW_GUIDEPS");
|
||||
|
||||
BASE_OBJS = \
|
||||
#$ ExpandList("BASE_OBJS");
|
||||
|
||||
BASE_DEPS = \
|
||||
#$ ExpandList("BASE_DEPS");
|
||||
|
||||
HTMLOBJS = \
|
||||
#$ ExpandList("WXHTMLOBJS");
|
||||
|
||||
HTMLDEPS = \
|
||||
#$ ExpandList("WXHTMLDEPS");
|
||||
|
||||
UNIXOBJS = \
|
||||
#$ ExpandList("WXUNIXOBJS");
|
||||
UNIX_OBJS = \
|
||||
#$ ExpandList("WXUNIX_OBJS");
|
||||
|
||||
UNIXDEPS = \
|
||||
#$ ExpandList("WXUNIXDEPS");
|
||||
UNIX_DEPS = \
|
||||
#$ ExpandList("WXUNIX_DEPS");
|
||||
|
||||
ZLIBOBJS = \
|
||||
adler32.o \
|
||||
@@ -475,16 +488,40 @@ JPEGOBJS = \
|
||||
jquant2.o \
|
||||
jdmerge.o
|
||||
|
||||
IODBCOBJS = \
|
||||
catalog.o \
|
||||
connect.o \
|
||||
dlf.o \
|
||||
dlproc.o \
|
||||
execute.o \
|
||||
fetch.o \
|
||||
hdbc.o \
|
||||
henv.o \
|
||||
herr.o \
|
||||
hstmt.o \
|
||||
info.o \
|
||||
itrace.o \
|
||||
misc.o \
|
||||
prepare.o \
|
||||
result.o
|
||||
|
||||
OBJECTS = $(@GUIOBJS@) $(@COMMONOBJS@) $(@GENERICOBJS@) $(@UNIXOBJS@) $(HTMLOBJS) \
|
||||
$(JPEGOBJS) $(PNGOBJS) $(ZLIBOBJS)
|
||||
GUIOBJS = @GUIOBJS@
|
||||
GUIDEPS = @GUIDEPS@
|
||||
GUIHEADERS = @GUIHEADERS@
|
||||
COMMONOBJS = @COMMONOBJS@
|
||||
COMMONDEPS = @COMMONDEPS@
|
||||
GENERICOBJS = @GENERICOBJS@
|
||||
GENERICDEPS = @GENERICDEPS@
|
||||
UNIXOBJS = @UNIXOBJS@
|
||||
UNIXDEPS = @UNIXDEPS@
|
||||
|
||||
DEPFILES = $(@GUIDEPS@) $(@COMMONDEPS@) $(@GENERICDEPS@) $(UNIXDEPS) $(HTMLDEPS)
|
||||
OBJECTS = @ALL_OBJECTS@ $(IODBCOBJS)
|
||||
|
||||
HEADERS = $(@GUIHEADERS@) $(HTML_HEADERS) $(UNIX_HEADERS) $(PROTOCOL_HEADERS) \
|
||||
$(GENERIC_HEADERS) $(WX_HEADERS)
|
||||
DEPFILES = @ALL_DEPFILES@
|
||||
|
||||
all: $(OBJECTS) @WX_TARGET_LIBRARY@ @WX_CREATE_LINKS@
|
||||
HEADERS = @ALL_HEADERS@
|
||||
|
||||
all: @WX_ALL@
|
||||
|
||||
@WX_LIBRARY_NAME_STATIC@: $(OBJECTS)
|
||||
@$(INSTALL) -d ./lib
|
||||
@@ -495,7 +532,7 @@ all: $(OBJECTS) @WX_TARGET_LIBRARY@ @WX_CREATE_LINKS@
|
||||
@$(INSTALL) -d ./lib
|
||||
$(SHARED_LD) ./lib/$@ $(OBJECTS) $(EXTRALIBS)
|
||||
|
||||
CREATE_LINKS: ./lib/@WX_TARGET_LIBRARY@
|
||||
CREATE_LINKS: @WX_LIBRARY_NAME_SHARED@
|
||||
@$(RM) ./lib/@WX_LIBRARY_LINK1@
|
||||
@$(RM) ./lib/@WX_LIBRARY_LINK2@
|
||||
@$(RM) ./lib/@WX_LIBRARY_LINK3@
|
||||
@@ -503,13 +540,13 @@ CREATE_LINKS: ./lib/@WX_TARGET_LIBRARY@
|
||||
$(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@
|
||||
CREATE_INSTALLED_LINKS: $(libdir)/@WX_LIBRARY_NAME_SHARED@
|
||||
$(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@
|
||||
$(LN_S) @WX_LIBRARY_NAME_SHARED@ $(libdir)/@WX_LIBRARY_LINK1@
|
||||
$(LN_S) @WX_LIBRARY_NAME_SHARED@ $(libdir)/@WX_LIBRARY_LINK2@
|
||||
$(LN_S) @WX_LIBRARY_NAME_SHARED@ $(libdir)/@WX_LIBRARY_LINK3@
|
||||
|
||||
$(OBJECTS): $(WXDIR)/include/wx/defs.h $(WXDIR)/include/wx/object.h $(WXDIR)/include/wx/setup.h
|
||||
|
||||
@@ -586,7 +623,7 @@ write_message:
|
||||
@echo " Read the wxWindows Licence on licencing conditions."
|
||||
@echo " "
|
||||
|
||||
install: preinstall @WX_CREATE_INSTALLED_LINKS@ write_message
|
||||
install: preinstall @WX_ALL_INSTALLED@ write_message
|
||||
|
||||
uninstall:
|
||||
@echo " "
|
||||
@@ -852,6 +889,10 @@ SAMPLES_DIST:
|
||||
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/newgrid
|
||||
cp $(SAMPDIR)/newgrid/Makefile.in $(DISTDIR)/samples/newgrid
|
||||
cp $(SAMPDIR)/newgrid/*.cpp $(DISTDIR)/samples/newgrid
|
||||
cp $(SAMPDIR)/newgrid/*.h $(DISTDIR)/samples/newgrid
|
||||
mkdir $(DISTDIR)/samples/notebook
|
||||
cp $(SAMPDIR)/notebook/Makefile.in $(DISTDIR)/samples/notebook
|
||||
cp $(SAMPDIR)/notebook/*.cpp $(DISTDIR)/samples/notebook
|
||||
|
@@ -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
|
||||
@@ -293,7 +290,7 @@ $(CPPFLAGS2) /c $(COMMDIR)\unzip.c /Fo$@
|
||||
|
||||
png:
|
||||
cd $(WXDIR)\src\png
|
||||
nmake -f makefile.vc FINAL=$(FINAL) DLL=$(DLL) WXMAKINGDLL=$(WXMAKINGDLL)
|
||||
nmake -f makefile.vc FINAL=$(FINAL) DLL=$(DLL) WXMAKINGDLL=$(WXMAKINGDLL) CRTFLAG=$(CRTFLAG)
|
||||
cd $(WXDIR)\src\msw
|
||||
|
||||
clean_png:
|
||||
@@ -303,7 +300,7 @@ clean_png:
|
||||
|
||||
zlib:
|
||||
cd $(WXDIR)\src\zlib
|
||||
nmake -f makefile.vc FINAL=$(FINAL) DLL=$(DLL) WXMAKINGDLL=$(WXMAKINGDLL)
|
||||
nmake -f makefile.vc FINAL=$(FINAL) DLL=$(DLL) WXMAKINGDLL=$(WXMAKINGDLL) CRTFLAG=$(CRTFLAG)
|
||||
cd $(WXDIR)\src\msw
|
||||
|
||||
clean_zlib:
|
||||
@@ -313,7 +310,7 @@ clean_zlib:
|
||||
|
||||
jpeg:
|
||||
cd $(WXDIR)\src\jpeg
|
||||
nmake -f makefile.vc FINAL=$(FINAL) DLL=$(DLL) WXMAKINGDLL=$(WXMAKINGDLL) all
|
||||
nmake -f makefile.vc FINAL=$(FINAL) DLL=$(DLL) WXMAKINGDLL=$(WXMAKINGDLL) CRTFLAG=$(CRTFLAG) all
|
||||
cd $(WXDIR)\src\msw
|
||||
|
||||
clean_jpeg:
|
||||
@@ -323,7 +320,7 @@ clean_jpeg:
|
||||
|
||||
xpm:
|
||||
cd $(WXDIR)\src\xpm
|
||||
nmake -f makefile.vc FINAL=$(FINAL) DLL=$(DLL) WXMAKINGDLL=$(WXMAKINGDLL)
|
||||
nmake -f makefile.vc FINAL=$(FINAL) DLL=$(DLL) WXMAKINGDLL=$(WXMAKINGDLL) CRTFLAG=$(CRTFLAG)
|
||||
cd $(WXDIR)\src\msw
|
||||
|
||||
clean_xpm:
|
||||
|
@@ -19,6 +19,7 @@
|
||||
|
||||
foreach $file (sort keys %wxCommon) {
|
||||
next if $wxCommon{$file} =~ /\b16\b/;
|
||||
next if $wxCommon{$file} =~ /\bBO\b/;
|
||||
|
||||
my $tag = $file =~ /\.c$/ ? "WXCSRCS" : "WXCOMMONSRCS";
|
||||
$project{$tag} .= $file . " "
|
||||
@@ -27,9 +28,16 @@
|
||||
foreach $file (sort keys %wxMSW) {
|
||||
next if $wxMSW{$file} =~ /\b16\b/;
|
||||
|
||||
my $tag = $wxMSW{$file} =~ /\bO\b/ ? "WXOLESRCS" : "WXMSWSRCS";
|
||||
my $tag;
|
||||
if ( $wxMSW{$file} =~ /\bO\b/ ) { $tag = "WXOLESRCS" }
|
||||
else { $tag = $file =~ /\.c$/ ? "WXMSWCSRCS" : "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 +133,8 @@ 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("WXMSWCSRCS", "# Begin Source File\n\nSOURCE=.\\src\\msw\\", "\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
|
||||
|
||||
|
@@ -5,6 +5,9 @@ src/wxvc6.dsw
|
||||
src/wxvc_dll.dsp
|
||||
src/wxvc_dll.dsw
|
||||
|
||||
src/jpeg/jpeg.dsp
|
||||
src/jpeg/jpeg.dsw
|
||||
|
||||
samples/checklst/ChecklstVC.dsp
|
||||
samples/checklst/ChecklstVC.dsw
|
||||
|
||||
|
@@ -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,78 @@
|
||||
|
||||
25th October '99: My birthday, wxWindows 2.1.10 released
|
||||
|
||||
Enlightment has struck the majority of the developers and
|
||||
they have chosen ti use the Linux kernel numbering scheme
|
||||
for wxWindows from now on. This means that the next stable
|
||||
release will be called wxWindows 2.2.X, development snapshots
|
||||
will be called 2.1.X.
|
||||
|
||||
A lot of discussion has been wasted on how to maintain a
|
||||
once released stable version will be maintained. It was
|
||||
almost universally agreed that only a commercial entity
|
||||
will have the motivation ($$$) to do that - so far there
|
||||
is no wxWindows Inc.
|
||||
|
||||
Support for GTK 1.0 has been dropped.
|
||||
|
||||
Many build fixes for various platforms have been applied,
|
||||
try again, poor HP-UX and *BSD users, but don't reckon
|
||||
with immediate success.
|
||||
|
||||
My total rewrite of the wxWindows underlying GTK widget
|
||||
has turned scrolling including subwindows from barely
|
||||
functional to pretty and fast.
|
||||
|
||||
wxSocket and Co. have been improved up to the point of
|
||||
calling it a rewrite. It works on wxMSW now too and
|
||||
seems pretty stable, but testing is still welcome.
|
||||
|
||||
The ODBC classes contributed by Remstar Inc. have been
|
||||
overhauled (incl the sample) and have been tested with
|
||||
all relevant SQL databases (even DBase). For that reason
|
||||
I have reawakened the iODBC code from wxGTK 2.0 so you
|
||||
can now use wxODBC from wxMSW and wxGTK.
|
||||
|
||||
Several printing things fixed.
|
||||
|
||||
HTML widget and its wxWindows' help system based upon
|
||||
it have been reorganized and improved for easier use
|
||||
from Python and C++.
|
||||
|
||||
wxSpinCtrl added. Like a wxSpinButton and a wxTextCtrl.
|
||||
|
||||
Changed the beaviour of the popular new wxFileDialog to
|
||||
not forget the once typed file name when changing the
|
||||
directory.
|
||||
|
||||
Implemented the wxSIMPLE_BORDER flag (simple black line
|
||||
without shadow affect).
|
||||
|
||||
Michael is writing a complete rewrite of the antiquated
|
||||
wxGrid. This is still work-in-progress and might not make
|
||||
it into wxWindows 2.2, we'll see. Help would be welcome
|
||||
to make that happen.
|
||||
|
||||
Made wxMenu code lose less memory, also added wxMenu::Delete().
|
||||
|
||||
Added code to send wxActivateEvent to MDI windows.
|
||||
|
||||
Vadim added configure things to compile wxWindows without any
|
||||
GUI library. This is probably work in progress. He'll also add
|
||||
a wxFontEnumerator class and has enhanced wxFont to make use
|
||||
of char-encodings.
|
||||
|
||||
wxSlider, wxWindow, wxScrollBar now emit the correct events
|
||||
for scrolling (like page up, line up etc) instead of just
|
||||
"thumb-track" as before.
|
||||
|
||||
Corrected bug in Reparent() code.
|
||||
|
||||
A handler to read PCX file (in most variants) has been added.
|
||||
|
||||
A number of problems with compressed and socket streams have
|
||||
been solved.
|
||||
|
||||
28th August '99: Ninth wxGTK 2.1 snapshot released
|
||||
|
||||
As the old makefile system didn't work, I trashed it and wrote
|
||||
|
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>
|
||||
|
@@ -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}
|
||||
|
@@ -16,8 +16,8 @@ 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
|
||||
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
|
||||
@@ -77,11 +77,9 @@ MyDialog::MyDialog(wxFrame *parent, wxWindowID id, const wxString &title ) :
|
||||
|
||||
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}
|
||||
|
@@ -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}}
|
||||
|
@@ -118,9 +118,9 @@ Gets the pointer to the next handler in the chain.
|
||||
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{wxEvtHandler::SetNextHandler}{wxevthandlersetnexthandler},\rtfsp
|
||||
\helpref{wxEvtHandler::GetPreviousHandler}{wxevthandlergetprevioushandler},\rtfsp
|
||||
\helpref{wxEvtHandler::SetPreviousHandler}{wxevthandlersetprevioushandler},\rtfsp
|
||||
\helpref{wxEvtHandler::SetNextHandler}{wxevthandlersetnexthandler},\rtfsp
|
||||
\helpref{wxWindow::PushEventHandler}{wxwindowpusheventhandler},\rtfsp
|
||||
\helpref{wxWindow::PopEventHandler}{wxwindowpopeventhandler}
|
||||
|
||||
@@ -132,9 +132,9 @@ Gets the pointer to the previous handler in the chain.
|
||||
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{wxEvtHandler::GetPreviousHandler}{wxevthandlergetprevioushandler},\rtfsp
|
||||
\helpref{wxEvtHandler::SetPreviousHandler}{wxevthandlersetprevioushandler},\rtfsp
|
||||
\helpref{wxEvtHandler::SetPreviousHandler}{wxevthandlersetprevioushandler},\rtfsp
|
||||
\helpref{wxEvtHandler::GetNextHandler}{wxevthandlergetnexthandler},\rtfsp
|
||||
\helpref{wxEvtHandler::SetNextHandler}{wxevthandlersetnexthandler},\rtfsp
|
||||
\helpref{wxWindow::PushEventHandler}{wxwindowpusheventhandler},\rtfsp
|
||||
\helpref{wxWindow::PopEventHandler}{wxwindowpopeventhandler}
|
||||
|
||||
|
@@ -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}
|
||||
|
||||
@@ -80,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}}
|
||||
@@ -1917,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}
|
||||
@@ -1964,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.}
|
||||
@@ -587,6 +594,7 @@ created by IJG.)
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{wxImage}{wximage}
|
||||
\helpref{wxInitAllImageHandlers}{wxinitallimagehandlers}
|
||||
|
||||
\latexignore{\rtfignore{\wxheading{Members}}}
|
||||
|
||||
|
@@ -7,7 +7,8 @@ is selected, the previous selection is removed) or multiple selection
|
||||
(clicking an item toggles the item on or off independently of other
|
||||
selections).
|
||||
|
||||
List box elements are numbered from zero.
|
||||
List box elements are numbered from zero. Their number is limited in
|
||||
some platforms (e.g. ca. 2000 on GTK).
|
||||
|
||||
A listbox callback gets an event wxEVT\_COMMAND\_LISTBOX\_SELECT for single clicks, and
|
||||
wxEVT\_COMMAND\_LISTBOX\_DOUBLE\_CLICKED for double clicks.
|
||||
@@ -282,6 +283,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}
|
||||
|
@@ -163,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}
|
||||
@@ -246,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}
|
||||
@@ -376,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}}
|
||||
|
@@ -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}
|
||||
|
||||
|
@@ -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}}
|
||||
|
@@ -117,25 +117,27 @@ instead of showing a dialog. Windows only.
|
||||
|
||||
\constfunc{wxPoint}{GetMarginTopLeft}{\void}
|
||||
|
||||
Returns the left (x) and top (y) margins.
|
||||
Returns the left (x) and top (y) margins in millimetres.
|
||||
|
||||
\membersection{wxPageSetupDialogData::GetMarginBottomRight}\label{wxpagesetupdialogdatagetmarginbottomright}
|
||||
|
||||
\constfunc{wxPoint}{GetMarginBottomRight}{\void}
|
||||
|
||||
Returns the right (x) and bottom (y) margins.
|
||||
Returns the right (x) and bottom (y) margins in millimetres.
|
||||
|
||||
\membersection{wxPageSetupDialogData::GetMinMarginTopLeft}\label{wxpagesetupdialogdatagetminmargintopleft}
|
||||
|
||||
\constfunc{wxPoint}{GetMinMarginTopLeft}{\void}
|
||||
|
||||
Returns the left (x) and top (y) minimum margins the user can enter (Windows only).
|
||||
Returns the left (x) and top (y) minimum margins the user can enter (Windows only). Units
|
||||
are in millimetres
|
||||
|
||||
\membersection{wxPageSetupDialogData::GetMinMarginBottomRight}\label{wxpagesetupdialogdatagetminmarginbottomright}
|
||||
|
||||
\constfunc{wxPoint}{GetMinMarginBottomRight}{\void}
|
||||
|
||||
Returns the right (x) and bottom (y) minimum margins the user can enter (Windows only).
|
||||
Returns the right (x) and bottom (y) minimum margins the user can enter (Windows only). Units
|
||||
are in millimetres
|
||||
|
||||
\membersection{wxPageSetupDialogData::GetPaperId}\label{wxpagesetupdialogdatagetpaperid}
|
||||
|
||||
@@ -169,31 +171,33 @@ instead of showing a dialog. Windows only.
|
||||
\func{void}{SetDefaultMinMargins}{\param{bool}{ flag}}
|
||||
|
||||
Pass TRUE if the page setup dialog will take its minimum margin values from the currently
|
||||
selected printer properties. Windows only.
|
||||
selected printer properties. Windows only. Units are in millimetres
|
||||
|
||||
\membersection{wxPageSetupDialogData::SetMarginTopLeft}\label{wxpagesetupdialogdatasetmargintopleft}
|
||||
|
||||
\func{void}{GetMarginTopLeft}{\param{const wxPoint\& }{pt}}
|
||||
|
||||
Sets the left (x) and top (y) margins.
|
||||
Sets the left (x) and top (y) margins in millimetres.
|
||||
|
||||
\membersection{wxPageSetupDialogData::SetMarginBottomRight}\label{wxpagesetupdialogdatasetmarginbottomright}
|
||||
|
||||
\func{void}{SetMarginBottomRight}{\param{const wxPoint\& }{pt}}
|
||||
|
||||
Sets the right (x) and bottom (y) margins.
|
||||
Sets the right (x) and bottom (y) margins in millimetres.
|
||||
|
||||
\membersection{wxPageSetupDialogData::SetMinMarginTopLeft}\label{wxpagesetupdialogdatasetminmargintopleft}
|
||||
|
||||
\func{void}{SetMinMarginTopLeft}{\param{const wxPoint\& }{pt}}
|
||||
|
||||
Sets the left (x) and top (y) minimum margins the user can enter (Windows only).
|
||||
Sets the left (x) and top (y) minimum margins the user can enter (Windows only). Units are
|
||||
in millimetres.
|
||||
|
||||
\membersection{wxPageSetupDialogData::SetMinMarginBottomRight}\label{wxpagesetupdialogdatasetminmarginbottomright}
|
||||
|
||||
\func{void}{SetMinMarginBottomRight}{\param{const wxPoint\& }{pt}}
|
||||
|
||||
Sets the right (x) and bottom (y) minimum margins the user can enter (Windows only).
|
||||
Sets the right (x) and bottom (y) minimum margins the user can enter (Windows only). Units are
|
||||
in millimetres.
|
||||
|
||||
\membersection{wxPageSetupDialogData::SetPaperId}\label{wxpagesetupdialogdatasetpaperid}
|
||||
|
||||
@@ -285,4 +289,3 @@ Returns the \helpref{page setup data}{wxpagesetupdialogdata} associated with the
|
||||
Shows the dialog, returning wxID\_OK if the user pressed OK, and wxID\_CANCEL
|
||||
otherwise.
|
||||
|
||||
|
||||
|
@@ -5,7 +5,7 @@ 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}.
|
||||
\helpref{wxBoxSizer}{wxboxsizer}.
|
||||
|
||||
\wxheading{Derived from}
|
||||
|
||||
@@ -26,4 +26,5 @@ as parameters - orient can be either of wxVERTICAL or wxHORIZONTAL.
|
||||
|
||||
\func{wxStaticBox*}{GetStaticBox}{\void}
|
||||
|
||||
Returns the static box associated with the sizer.
|
||||
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}
|
||||
|
@@ -14,6 +14,12 @@ If you don't wish to calculate your own scrolling, you must call PrepareDC when
|
||||
within OnDraw, to set the device origin for the device context according to the current
|
||||
scroll position.
|
||||
|
||||
Note that the underlying system knows nothing about scrolling coordinates, so that all system
|
||||
functions (mouse events, expose events, refresh calls etc) as well as the position of subwindows
|
||||
are relative to the "physical" origin of the scrolled window. If the user insert a child window at
|
||||
position (10,10) and scrolls the window down 100 pixels (moving the child window out of the visible
|
||||
area), the child window will report a position of (10,-90).
|
||||
|
||||
\wxheading{Derived from}
|
||||
|
||||
\helpref{wxPanel}{wxpanel}\\
|
||||
@@ -139,7 +145,9 @@ Enable or disable physical scrolling in the given direction. Physical
|
||||
scrolling is the physical transfer of bits up or down the
|
||||
screen when a scroll event occurs. If the application scrolls by a
|
||||
variable amount (e.g. if there are different font sizes) then physical
|
||||
scrolling will not work, and you should switch it off.
|
||||
scrolling will not work, and you should switch it off. Note that you
|
||||
will have to reposition child windows yourself, if physical scrolling
|
||||
is disabled.
|
||||
|
||||
\wxheading{Parameters}
|
||||
|
||||
|
@@ -1,15 +1,15 @@
|
||||
\section{\class{wxSizer}}\label{wxsizer}
|
||||
|
||||
wxSizer is the abstract base class used for layouting subwindows in a window. You
|
||||
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 layouting algorithm used by sizers in wxWindows closely related to layouting
|
||||
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
|
||||
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
|
||||
@@ -21,13 +21,16 @@ or different window (dialog item) sizes on different platforms without problems.
|
||||
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}
|
||||
@@ -43,11 +46,11 @@ 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}}
|
||||
\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}}
|
||||
\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}}
|
||||
\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
|
||||
@@ -56,7 +59,7 @@ 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}. }
|
||||
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
|
||||
@@ -73,7 +76,7 @@ the dialog.}
|
||||
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
|
||||
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
|
||||
@@ -85,18 +88,22 @@ the {\it option} flag - not in the main orientation, but the respectively other
|
||||
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.}
|
||||
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}}
|
||||
\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}}
|
||||
\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}}
|
||||
\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.
|
||||
@@ -111,7 +118,7 @@ list of items (windows, subsizers or spaces) owned by this sizer.
|
||||
|
||||
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 layouting or resizing to take place and does
|
||||
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.
|
||||
|
||||
@@ -178,7 +185,8 @@ of \helpref{wxBoxSizer}{wxboxsizer}.
|
||||
|
||||
\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.
|
||||
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
|
||||
@@ -312,7 +360,7 @@ Returns a reference to the current object.
|
||||
%
|
||||
\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.
|
||||
|
||||
|
@@ -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] {}
|
||||
|
||||
|
||||
|
@@ -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.
|
||||
|
||||
|
@@ -75,3 +75,4 @@ The key code if the event was is a key event.
|
||||
\constfunc{const wxString&}{GetLabel}{}
|
||||
|
||||
Returns the label if the event was a begin or end edit label event.
|
||||
|
||||
|
160
docs/latex/wx/tunicode.tex
Normal file
160
docs/latex/wx/tunicode.tex
Normal file
@@ -0,0 +1,160 @@
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
%% 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, ...
|
||||
% Please remember to put a blank line at the end of each file! (Tex2RTF 'issue')
|
||||
|
@@ -22,7 +22,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{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,9 +33,9 @@ For more information, please see \helpref{Validator overview}{validatoroverview}
|
||||
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{Validator overview}{validatoroverview},
|
||||
\helpref{Validator overview}{validatoroverview},
|
||||
\helpref{wxTextValidator}{wxtextvalidator},
|
||||
\helpref{wxTextValidator}{wxgenericvalidator},
|
||||
\helpref{wxGenericValidator}{wxgenericvalidator},
|
||||
|
||||
|
||||
\latexignore{\rtfignore{\wxheading{Members}}}
|
||||
@@ -82,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.
|
||||
|
||||
|
@@ -28,10 +28,10 @@ window class or on all platforms.
|
||||
\twocolwidtha{5cm}%
|
||||
\begin{twocollist}\itemsep=0pt
|
||||
\twocolitem{\windowstyle{wxSIMPLE\_BORDER}}{Displays a thin border around the window. wxBORDER is the old name
|
||||
for this style. Windows only. }
|
||||
for this style. }
|
||||
\twocolitem{\windowstyle{wxDOUBLE\_BORDER}}{Displays a double border. Windows only.}
|
||||
\twocolitem{\windowstyle{wxSUNKEN\_BORDER}}{Displays a sunken border.}
|
||||
\twocolitem{\windowstyle{wxRAISED\_BORDER}}{Displays a raised border.}
|
||||
\twocolitem{\windowstyle{wxRAISED\_BORDER}}{Displays a raised border. GTK only. }
|
||||
\twocolitem{\windowstyle{wxSTATIC\_BORDER}}{Displays a border suitable for a static control. Windows only. }
|
||||
\twocolitem{\windowstyle{wxTRANSPARENT\_WINDOW}}{The window is transparent, that is, it will not receive paint
|
||||
events. Windows only.}
|
||||
|
@@ -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,48 +73,47 @@ 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.
|
||||
|
||||
%----------------------------------------------------------------------
|
||||
@@ -123,27 +121,27 @@ for a listing of a few of them.
|
||||
|
||||
I used SWIG (\urlref{http://www.swig.org}{http://www.swig.org}) to
|
||||
to create the source code for the
|
||||
extension module. This enabled me to only have to deal with a small
|
||||
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
|
||||
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 you will need to get
|
||||
a recent version of SWIG from their CVS or from a daily build. See
|
||||
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} variable for the build utility, (see
|
||||
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 as described in its BuildCVS.txt file. For *nix
|
||||
systems I run configure with these flags:
|
||||
\item Build wxWindows as described in its BuildCVS.txt file. For Unix
|
||||
systems I run configure with these flags:
|
||||
|
||||
\begin{verbatim}
|
||||
--with-gtk
|
||||
@@ -157,63 +155,57 @@ below.)
|
||||
--disable-std_iostreams
|
||||
\end{verbatim}
|
||||
|
||||
You can use whatever flags you want, but I know these work.
|
||||
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.
|
||||
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}
|
||||
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 Type "\tt{build -b}" to build wxPython and "\tt{build -i}" to
|
||||
install it, or \"\tt{build -bi}\" to do both steps at once.
|
||||
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.
|
||||
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.
|
||||
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. For example:
|
||||
\item Try executing the demo program. For example:
|
||||
|
||||
\tt{python demo.py}
|
||||
\tt{python demo.py}
|
||||
|
||||
To run it without requiring a console on win32, you can use the
|
||||
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}
|
||||
|
||||
|
||||
%----------------------------------------------------------------------
|
||||
\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:
|
||||
|
||||
@@ -305,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
|
||||
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.
|
||||
@@ -355,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
|
||||
@@ -367,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}
|
||||
@@ -402,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}
|
||||
@@ -468,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}
|
||||
@@ -494,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}
|
||||
|
||||
%----------------------------------------------------------------------
|
||||
@@ -507,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}
|
||||
|
@@ -92,7 +92,12 @@ Using project files:
|
||||
src/Release/wxvc.lib. The project file src/wxvc_dll.dsp
|
||||
will make a DLL version of wxWindow, which will go in
|
||||
src/DebugDLL/wxvc.[lib,dll] and src/ReleaseDLL/wxvc.[lib,dll].
|
||||
3. Open a sample project file, choose a configuration, and compile.
|
||||
3. If you want to use JPEG in your application (such as the image
|
||||
sample), open src/jpeg/jpeg.dsp (VC++ 6 only) and compile in
|
||||
Debug and Release configurations. If you have VC++ 5 or
|
||||
earlier, use makefile.vc, but you may only have one set of object
|
||||
files at a time in use (debug or release).
|
||||
4. Open a sample project file, choose a configuration, and compile.
|
||||
The project files don't use precompiled headers, to save
|
||||
space, but you can switch PCH compiling on for greater speed.
|
||||
|
||||
@@ -110,8 +115,10 @@ Using makefiles:
|
||||
|
||||
to make the wxWindows core library without debug information
|
||||
(wx\lib\wx.lib).
|
||||
|
||||
3. Change directory to wx\samples and type 'nmake -f makefile.vc'
|
||||
3. If you wish to use JPEG in your applications, do the same
|
||||
procedure in src\jpeg but add the 'all' target to the
|
||||
command line.
|
||||
4. Change directory to wx\samples and type 'nmake -f makefile.vc'
|
||||
to make all the samples. You can also make them individually.
|
||||
|
||||
Notes:
|
||||
|
@@ -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) wxT("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, wxT("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, wxT("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
|
||||
|
@@ -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;
|
||||
|
191
include/wx/db.h
191
include/wx/db.h
@@ -5,13 +5,20 @@
|
||||
// source such as opening and closing the data source.
|
||||
// Author: Doug Card
|
||||
// Modified by:
|
||||
// Mods: Dec, 1998: Added support for SQL statement logging and database
|
||||
// cataloging
|
||||
// Mods: Dec, 1998:
|
||||
// -Added support for SQL statement logging and database cataloging
|
||||
// April, 1999
|
||||
// -Added QUERY_ONLY mode support to reduce default number of cursors
|
||||
// -Added additional SQL logging code
|
||||
// -Added DEBUG-ONLY tracking of Ctable objects to detect orphaned DB connections
|
||||
// -Set ODBC option to only read committed writes to the DB so all
|
||||
// databases operate the same in that respect
|
||||
//
|
||||
// Created: 9.96
|
||||
// RCS-ID: $Id$
|
||||
// Copyright: (c) 1996 Remstar International, Inc.
|
||||
// Licence: wxWindows licence, plus:
|
||||
// Notice: This class library and its intellectual design are free of charge for use,
|
||||
// Notice: This class library and its intellectual design are free of charge for use,
|
||||
// modification, enhancement, debugging under the following conditions:
|
||||
// 1) These classes may only be used as part of the implementation of a
|
||||
// wxWindows-based application
|
||||
@@ -30,54 +37,85 @@
|
||||
|
||||
#ifndef DB_DOT_H
|
||||
#define DB_DOT_H
|
||||
|
||||
#ifdef __GNUG__
|
||||
#pragma interface "db.h"
|
||||
|
||||
// Use this line for wxWindows v1.x
|
||||
//#include "wx_ver.h"
|
||||
// Use this line for wxWindows v2.x
|
||||
#include "wx/version.h"
|
||||
|
||||
#if wxMAJOR_VERSION == 2
|
||||
#ifdef __GNUG__
|
||||
#pragma interface "db.h"
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if defined(__WXMSW__) || defined(WIN32)
|
||||
#if defined(wx_msw) || defined(__WXMSW__) || defined(WIN32)
|
||||
#include <windows.h>
|
||||
#endif
|
||||
|
||||
#ifdef _IODBC_
|
||||
#if wxMAJOR_VERSION == 2
|
||||
extern "C" {
|
||||
#include "../../src/iodbc/isql.h"
|
||||
#include "../../src/iodbc/isqlext.h"
|
||||
}
|
||||
#else // version == 1
|
||||
extern "C" {
|
||||
#include "iodbc.h"
|
||||
#include "isqlext.h"
|
||||
}
|
||||
#endif
|
||||
typedef float SFLOAT;
|
||||
typedef double SDOUBLE;
|
||||
typedef unsigned int UINT;
|
||||
#define ULONG UDWORD
|
||||
#else // msw
|
||||
#define ODBCVER 0x0250
|
||||
#include <sql.h>
|
||||
#include <sqlext.h>
|
||||
#endif
|
||||
|
||||
#ifdef __WXGTK__
|
||||
|
||||
extern "C" {
|
||||
#include "../../src/iodbc/isql.h"
|
||||
#include "../../src/iodbc/isqlext.h"
|
||||
typedef float SFLOAT;
|
||||
typedef double SDOUBLE;
|
||||
typedef unsigned int UINT;
|
||||
#define ULONG UDWORD
|
||||
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
#define ODBCVER 0x0250
|
||||
#include <sql.h>
|
||||
#include <sqlext.h>
|
||||
|
||||
#ifdef __UNIX__
|
||||
# ifndef strnicmp
|
||||
# define strnicmp strncasecmp
|
||||
# endif
|
||||
# ifndef stricmp
|
||||
# define stricmp strcasecmp
|
||||
# endif
|
||||
#else
|
||||
# include <io.h>
|
||||
#endif
|
||||
|
||||
enum enumDummy {enumDum1};
|
||||
|
||||
#define SQL_C_BOOLEAN (sizeof(int) == 2 ? SQL_C_USHORT : SQL_C_ULONG)
|
||||
#define SQL_C_ENUM (sizeof(enumDummy) == 2 ? SQL_C_USHORT : SQL_C_ULONG) //glt 2-21-97
|
||||
#define SQL_C_BOOLEAN(datatype) (sizeof(datatype) == 1 ? SQL_C_UTINYINT : (sizeof(datatype) == 2 ? SQL_C_USHORT : SQL_C_ULONG))
|
||||
// #define SQL_C_BOOLEAN (sizeof(Bool) == 2 ? SQL_C_USHORT : SQL_C_ULONG)
|
||||
|
||||
#define SQL_C_ENUM (sizeof(enumDummy) == 2 ? SQL_C_USHORT : SQL_C_ULONG)
|
||||
|
||||
#ifndef TRUE
|
||||
#define TRUE 1
|
||||
#endif
|
||||
|
||||
#ifndef FALSE
|
||||
#define FALSE 0
|
||||
#endif
|
||||
|
||||
const int DB_PATH_MAX = 254;
|
||||
|
||||
// Database Globals
|
||||
const int DB_TYPE_NAME_LEN = 40;
|
||||
const int DB_MAX_STATEMENT_LEN = 2048;
|
||||
const int DB_MAX_WHERE_CLAUSE_LEN = 1024;
|
||||
const int DB_MAX_ERROR_MSG_LEN = 512;
|
||||
const int DB_MAX_ERROR_HISTORY = 5;
|
||||
const int DB_MAX_STATEMENT_LEN = 2048;
|
||||
const int DB_MAX_WHERE_CLAUSE_LEN = 1024;
|
||||
const int DB_MAX_ERROR_MSG_LEN = 512;
|
||||
const int DB_MAX_ERROR_HISTORY = 5;
|
||||
const int DB_MAX_TABLE_NAME_LEN = 128;
|
||||
const int DB_MAX_COLUMN_NAME_LEN = 128;
|
||||
|
||||
const int DB_DATA_TYPE_VARCHAR = 1;
|
||||
const int DB_DATA_TYPE_INTEGER = 2;
|
||||
const int DB_DATA_TYPE_VARCHAR = 1;
|
||||
const int DB_DATA_TYPE_INTEGER = 2;
|
||||
const int DB_DATA_TYPE_FLOAT = 3;
|
||||
const int DB_DATA_TYPE_DATE = 4;
|
||||
const int DB_DATA_TYPE_DATE = 4;
|
||||
|
||||
const int DB_SELECT_KEYFIELDS = 1;
|
||||
const int DB_SELECT_WHERE = 2;
|
||||
@@ -92,14 +130,7 @@ const int DB_DEL_WHERE = 2;
|
||||
const int DB_DEL_MATCHING = 3;
|
||||
|
||||
const int DB_WHERE_KEYFIELDS = 1;
|
||||
const int DB_WHERE_MATCHING = 2;
|
||||
|
||||
const int DB_CURSOR0 = 0;
|
||||
const int DB_CURSOR1 = 1;
|
||||
const int DB_CURSOR2 = 2;
|
||||
//const int DB_CURSOR3 = 3;
|
||||
//const int DB_CURSOR4 = 4;
|
||||
//const int DB_CURSOR5 = 5;
|
||||
const int DB_WHERE_MATCHING = 2;
|
||||
|
||||
const int DB_GRANT_SELECT = 1;
|
||||
const int DB_GRANT_INSERT = 2;
|
||||
@@ -110,8 +141,8 @@ const int DB_GRANT_ALL = DB_GRANT_SELECT | DB_GRANT_INSERT | DB_GRANT_UPDA
|
||||
// ODBC Error codes (derived from ODBC SqlState codes)
|
||||
enum ODBC_ERRORS
|
||||
{
|
||||
DB_FAILURE = 0,
|
||||
DB_SUCCESS = 1,
|
||||
DB_FAILURE = 0,
|
||||
DB_SUCCESS = 1,
|
||||
DB_ERR_NOT_IN_USE,
|
||||
DB_ERR_GENERAL_WARNING, // SqlState = '01000'
|
||||
DB_ERR_DISCONNECT_ERROR, // SqlState = '01002'
|
||||
@@ -207,9 +238,15 @@ enum ODBC_ERRORS
|
||||
struct DbStuff
|
||||
{
|
||||
HENV Henv;
|
||||
char Dsn[SQL_MAX_DSN_LENGTH+1]; // Data Source Name
|
||||
char Uid[20]; // User ID
|
||||
char AuthStr[20]; // Authorization string (password)
|
||||
char Dsn[SQL_MAX_DSN_LENGTH+1]; // Data Source Name
|
||||
char Uid[20+1]; // User ID
|
||||
char AuthStr[20+1]; // Authorization string (password)
|
||||
|
||||
char description[SQL_MAX_DSN_LENGTH+1]; // Not sure what the max length is
|
||||
char fileType[SQL_MAX_DSN_LENGTH+1]; // Not sure what the max length is
|
||||
|
||||
// Optionals needed for some databases like dBase
|
||||
char defaultDir[DB_PATH_MAX]; // Directory that db file resides in
|
||||
};
|
||||
|
||||
typedef struct
|
||||
@@ -236,6 +273,30 @@ enum sqlLog
|
||||
sqlLogON
|
||||
};
|
||||
|
||||
enum dbms
|
||||
{
|
||||
dbmsUNIDENTIFIED,
|
||||
dbmsORACLE,
|
||||
dbmsSYBASE_ASA, // Adaptive Server Anywhere
|
||||
dbmsSYBASE_ASE, // Adaptive Server Enterprise
|
||||
dbmsMS_SQL_SERVER,
|
||||
dbmsMY_SQL,
|
||||
dbmsPOSTGRES,
|
||||
dbmsACCESS,
|
||||
dbmsDBASE
|
||||
};
|
||||
|
||||
typedef enum dbms DBMS;
|
||||
|
||||
// The wxDB::errorList is copied to this variable when the wxDB object
|
||||
// is closed. This way, the error list is still available after the
|
||||
// database object is closed. This is necessary if the database
|
||||
// connection fails so the calling application can show the operator
|
||||
// why the connection failed. Note: as each wxDB object is closed, it
|
||||
// will overwrite the errors of the previously destroyed wxDB object in
|
||||
// this variable.
|
||||
extern char DBerrorList[DB_MAX_ERROR_HISTORY][DB_MAX_ERROR_MSG_LEN];
|
||||
|
||||
class WXDLLEXPORT wxDB
|
||||
{
|
||||
private:
|
||||
@@ -261,7 +322,7 @@ public:
|
||||
struct
|
||||
{
|
||||
char dbmsName[40]; // Name of the dbms product
|
||||
char dbmsVer[40]; // Version # of the dbms product
|
||||
char dbmsVer[64]; // Version # of the dbms product
|
||||
char driverName[40]; // Driver name
|
||||
char odbcVer[60]; // ODBC version of the driver
|
||||
char drvMgrOdbcVer[60]; // ODBC version of the driver manager
|
||||
@@ -308,6 +369,9 @@ public:
|
||||
//Error reporting mode
|
||||
bool silent;
|
||||
|
||||
// Number of Ctable objects connected to this db object
|
||||
unsigned int nTables;
|
||||
|
||||
// Inf. about logical data types VARCHAR, INTEGER, FLOAT and DATE.
|
||||
// This inf. is obtained from the ODBC driver by use of the
|
||||
// SQLGetTypeInfo() function. The key piece of inf. is the
|
||||
@@ -324,24 +388,28 @@ public:
|
||||
bool DispAllErrors(HENV aHenv, HDBC aHdbc = SQL_NULL_HDBC, HSTMT aHstmt = SQL_NULL_HSTMT);
|
||||
bool GetNextError(HENV aHenv, HDBC aHdbc = SQL_NULL_HDBC, HSTMT aHstmt = SQL_NULL_HSTMT);
|
||||
void DispNextError(void);
|
||||
bool CreateView(char *viewName, char *colList, char *pSqlStmt);
|
||||
bool CreateView(char *viewName, char *colList, char *pSqlStmt, bool attemptDrop=TRUE);
|
||||
bool DropView(char *viewName);
|
||||
bool ExecSql(char *pSqlStmt);
|
||||
bool GetNext(void);
|
||||
bool GetData(UWORD colNo, SWORD cType, PTR pData, SDWORD maxLen, SDWORD FAR *cbReturned);
|
||||
bool Grant(int privileges, char *tableName, char *userList = "PUBLIC");
|
||||
int TranslateSqlState(char *SQLState);
|
||||
bool Catalog(char *userID, char *fileName = "Catalog.txt");
|
||||
CcolInf *GetColumns(char *tableName[]);
|
||||
CcolInf *GetColumns(char *tableName[], char *userID=NULL);
|
||||
char *GetDatabaseName(void) {return dbInf.dbmsName;}
|
||||
char *GetDataSource(void) {return dsn;}
|
||||
char *GetUsername(void) {return uid;}
|
||||
char *GetPassword(void) {return authStr;}
|
||||
char *GetUsername(void) {return uid;}
|
||||
char *GetPassword(void) {return authStr;}
|
||||
bool IsOpen(void) {return dbIsOpen;}
|
||||
HENV GetHENV(void) {return henv;}
|
||||
HDBC GetHDBC(void) {return hdbc;}
|
||||
HSTMT GetHSTMT(void) {return hstmt;}
|
||||
bool TableExists(char *tableName); // Table name can refer to a table, view, alias or synonym
|
||||
HSTMT GetHSTMT(void) {return hstmt;}
|
||||
bool TableExists(char *tableName, char *userID=NULL, char *path=NULL); // Table name can refer to a table, view, alias or synonym
|
||||
void LogError(char *errMsg, char *SQLState = 0) {logError(errMsg, SQLState);}
|
||||
bool SqlLog(enum sqlLog state, char *filename = "sqllog.txt", bool append = FALSE);
|
||||
bool WriteSqlLog(char *logMsg);
|
||||
DBMS Dbms(void);
|
||||
|
||||
}; // wxDB
|
||||
|
||||
@@ -359,6 +427,18 @@ struct DbList
|
||||
DbList *PtrNext; // Pointer to next item in the list
|
||||
};
|
||||
|
||||
|
||||
#if __WXDEBUG__ > 0
|
||||
#include "wx/object.h"
|
||||
class CstructTablesInUse : public wxObject
|
||||
{
|
||||
public:
|
||||
const char *tableName;
|
||||
ULONG tableID;
|
||||
class wxDB *pDb;
|
||||
}; // CstructTablesInUse
|
||||
#endif
|
||||
|
||||
// The following routines allow a user to get new database connections, free them
|
||||
// for other code segments to use, or close all of them when the application has
|
||||
// completed.
|
||||
@@ -368,6 +448,9 @@ bool WXDLLEXPORT FreeDbConnection(wxDB *pDb);
|
||||
void WXDLLEXPORT CloseDbConnections(void);
|
||||
int WXDLLEXPORT NumberDbConnectionsInUse(void);
|
||||
|
||||
// This function sets the sql log state for all open wxDB objects
|
||||
bool SqlLog(enum sqlLog state, char *filename = "sqllog.txt");
|
||||
|
||||
// This routine allows you to query a driver manager
|
||||
// for a list of available datasources. Call this routine
|
||||
// the first time using SQL_FETCH_FIRST. Continue to call it
|
||||
|
@@ -1,5 +1,5 @@
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// Name: table.h
|
||||
// Name: dbtable.h
|
||||
// Purpose: Declaration of the wxTable class.
|
||||
// Author: Doug Card
|
||||
// Modified by:
|
||||
@@ -23,16 +23,30 @@
|
||||
// SYNOPSIS STOP
|
||||
*/
|
||||
|
||||
#ifndef TABLE_DOT_H
|
||||
#define TABLE_DOT_H
|
||||
#ifndef DBTABLE_DOT_H
|
||||
#define DBTABLE_DOT_H
|
||||
|
||||
#ifdef __GNUG__
|
||||
#pragma interface "dbtable.h"
|
||||
// Use this line for wxWindows v1.x
|
||||
//#include "wx_ver.h"
|
||||
// Use this line for wxWindows v2.x
|
||||
#include "wx/version.h"
|
||||
|
||||
#if wxMAJOR_VERSION == 2
|
||||
#ifdef __GNUG__
|
||||
#pragma interface "dbtable.h"
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#include "wx/db.h"
|
||||
#if wxMAJOR_VERSION == 2
|
||||
#include "wx/db.h"
|
||||
#else
|
||||
#include "db.h"
|
||||
#endif
|
||||
|
||||
const int ROWID_LEN = 24; // 18 is the max, 24 is in case it gets larger
|
||||
const int ROWID_LEN = 24; // 18 is the max, 24 is in case it gets larger
|
||||
const int DEFAULT_CURSOR = 0;
|
||||
const bool QUERY_ONLY = TRUE;
|
||||
const bool DISABLE_VIEW = TRUE;
|
||||
|
||||
// The following class is used to define a column of a table.
|
||||
// The wxTable constructor will dynamically allocate as many of
|
||||
@@ -46,7 +60,7 @@ const int ROWID_LEN = 24; // 18 is the max, 24 is in case it gets larger
|
||||
class WXDLLEXPORT CcolDef
|
||||
{
|
||||
public:
|
||||
char ColName[DB_MAX_COLUMN_NAME_LEN+1]; // Column Name glt 4/19/97 added one for the null terminator
|
||||
char ColName[DB_MAX_COLUMN_NAME_LEN+1]; // Column Name
|
||||
int DbDataType; // Logical Data Type; e.g. DB_DATA_TYPE_INTEGER
|
||||
int SqlCtype; // C data type; e.g. SQL_C_LONG
|
||||
void *PtrDataObj; // Address of the data object
|
||||
@@ -56,13 +70,14 @@ public:
|
||||
bool InsertAllowed; // Specifies whether this column should be included in an INSERT statement
|
||||
bool DerivedCol; // Specifies whether this column is a derived value
|
||||
SDWORD CbValue; // Internal use only!!!
|
||||
bool Null; // NOT FULLY IMPLEMENTED - Allows NULL values in Inserts and Updates
|
||||
}; // CcolDef
|
||||
|
||||
// This structure is used when creating secondary indexes.
|
||||
class WXDLLEXPORT CidxDef
|
||||
{
|
||||
public:
|
||||
char ColName[DB_MAX_COLUMN_NAME_LEN+1]; // Column Name glt 4/19/97 added one for the null terminator
|
||||
char ColName[DB_MAX_COLUMN_NAME_LEN+1];
|
||||
bool Ascending;
|
||||
}; // CidxDef
|
||||
|
||||
@@ -70,8 +85,10 @@ class WXDLLEXPORT wxTable
|
||||
{
|
||||
private:
|
||||
|
||||
ULONG tableID; // Used for debugging. This can help to match up mismatched constructors/destructors
|
||||
|
||||
// Private member variables
|
||||
int currCursorNo;
|
||||
UDWORD cursorType;
|
||||
|
||||
// Private member functions
|
||||
bool bindInsertParams(void);
|
||||
@@ -91,17 +108,20 @@ public:
|
||||
HENV henv; // ODBC Environment handle
|
||||
HDBC hdbc; // ODBC DB Connection handle
|
||||
HSTMT hstmt; // ODBC Statement handle
|
||||
// HSTMT c0, c1, c2, c3, c4, c5; // Cursors 0 through 5
|
||||
HSTMT c0, c1, c2; // Limited to Cursors 0 through 2 for now
|
||||
HSTMT *hstmtDefault; // Default cursor
|
||||
HSTMT hstmtInsert; // ODBC Statement handle used specifically for inserts
|
||||
HSTMT hstmtDelete; // ODBC Statement handle used specifically for deletes
|
||||
HSTMT hstmtUpdate; // ODBC Statement handle used specifically for updates
|
||||
HSTMT hstmtCount; // ODBC Statement handle used specifically for COUNT(*)
|
||||
HSTMT hstmtInternal; // ODBC Statement handle used internally only
|
||||
HSTMT *hstmtCount; // ODBC Statement handle used by Count() function (No binding of columns)
|
||||
|
||||
// Table Inf.
|
||||
char tableName[DB_MAX_TABLE_NAME_LEN+1]; // Table name
|
||||
char queryTableName[DB_MAX_TABLE_NAME_LEN+1]; // Query Table Name
|
||||
int noCols; // # of columns in the table
|
||||
bool queryOnly; // Query Only, no inserts, updates or deletes
|
||||
|
||||
char tablePath[DB_PATH_MAX]; // needed for dBase tables
|
||||
|
||||
// Column Definitions
|
||||
CcolDef *colDefs; // Array of CcolDef structures
|
||||
@@ -109,17 +129,20 @@ public:
|
||||
// Where, Order By and From clauses
|
||||
char *where; // Standard SQL where clause, minus the word WHERE
|
||||
char *orderBy; // Standard SQL order by clause, minus the ORDER BY
|
||||
char *from; // Allows for joins in a Ctable::Query(). Format: ",tbl,tbl..."
|
||||
char *from; // Allows for joins in a wxTable::Query(). Format: ",tbl,tbl..."
|
||||
|
||||
// Flags
|
||||
bool selectForUpdate;
|
||||
|
||||
// Public member functions
|
||||
wxTable(wxDB *pwxDB, const char *tblName, const int nCols, const char *qryTblName = 0);
|
||||
wxTable(wxDB *pwxDB, const char *tblName, const int nCols,
|
||||
const char *qryTblName = 0, bool qryOnly = !QUERY_ONLY, char *tblPath=NULL);
|
||||
virtual ~wxTable();
|
||||
bool Open(void);
|
||||
bool CreateTable(void);
|
||||
bool CreateIndex(char * idxName, bool unique, int noIdxCols, CidxDef *pIdxDefs);
|
||||
bool CreateTable(bool attemptDrop=TRUE);
|
||||
bool DropTable(void);
|
||||
bool CreateIndex(char * idxName, bool unique, int noIdxCols, CidxDef *pIdxDefs, bool attemptDrop=TRUE);
|
||||
bool DropIndex(char * idxName);
|
||||
bool CloseCursor(HSTMT cursor);
|
||||
int Insert(void);
|
||||
bool Update(void);
|
||||
@@ -154,11 +177,19 @@ public:
|
||||
void SetColDefs (int index, char *fieldName, int dataType, void *pData, int cType,
|
||||
int size, bool keyField = FALSE, bool upd = TRUE,
|
||||
bool insAllow = TRUE, bool derivedCol = FALSE);
|
||||
bool SetCursor(int cursorNo = DB_CURSOR0);
|
||||
int GetCursor(void) { return(currCursorNo); }
|
||||
HSTMT *NewCursor(bool setCursor = FALSE, bool bindColumns = TRUE);
|
||||
bool DeleteCursor(HSTMT *hstmtDel);
|
||||
void SetCursor(HSTMT *hstmtActivate = (void **) DEFAULT_CURSOR);
|
||||
HSTMT GetCursor(void) { return(hstmt); }
|
||||
ULONG Count(void);
|
||||
int DB_STATUS(void) { return(pDb->DB_STATUS); }
|
||||
bool Refresh(void);
|
||||
bool SetNull(int colNo);
|
||||
bool SetNull(char *colName);
|
||||
|
||||
#if __WXDEBUG__ > 0
|
||||
ULONG GetTableID() { return tableID; };
|
||||
#endif
|
||||
|
||||
}; // wxTable
|
||||
|
||||
|
@@ -1,12 +1,12 @@
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// Name: debug.h
|
||||
// Name: wx/debug.h
|
||||
// Purpose: Misc debug functions and macros
|
||||
// Author: Vadim Zeitlin
|
||||
// Modified by:
|
||||
// Created: 29/01/98
|
||||
// RCS-ID: $Id$
|
||||
// Copyright: (c) 1998 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
|
||||
// Licence: wxWindows license
|
||||
// Licence: wxWindows license
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef _WX_DEBUG_H_
|
||||
@@ -16,24 +16,19 @@
|
||||
|
||||
#include "wx/wxchar.h"
|
||||
|
||||
#ifndef __TFILE__
|
||||
#define __XFILE__(x) _T(x)
|
||||
#define __TFILE__ __XFILE__(__FILE__)
|
||||
#endif
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
/**
|
||||
@name Debugging macros
|
||||
/**
|
||||
@name Debugging macros
|
||||
|
||||
All debugging macros rely on ASSERT() which in turn calls user-defined
|
||||
OnAssert() function. To keep things simple, it's called even when the
|
||||
expression is TRUE (i.e. everything is ok) and by default does nothing: just
|
||||
returns the same value back. But if you redefine it to do something more sexy
|
||||
(popping up a message box in your favourite GUI, sending you e-mail or
|
||||
(popping up a message box in your favourite GUI, sending you e-mail or
|
||||
whatever) it will affect all ASSERTs, FAILs and CHECKs in your code.
|
||||
<BR>
|
||||
<BR>
|
||||
<b>Warning</b>: if you don't like advices on programming style, don't read
|
||||
<b>Warning</b>: if you don't like advices on programming style, don't read
|
||||
further! ;-)
|
||||
<BR>
|
||||
<BR>
|
||||
@@ -94,13 +89,13 @@
|
||||
|
||||
// NB: these macros work also in release mode!
|
||||
|
||||
/**
|
||||
/**
|
||||
These macros must be used only in invalid situation: for example, an
|
||||
invalid parameter (NULL pointer) is passed to a function. Instead of
|
||||
dereferencing it and causing core dump the function might try using
|
||||
CHECK( p != NULL ) or CHECK( p != NULL, return LogError("p is NULL!!") )
|
||||
|
||||
@name Macros which remain even in 'release' mode
|
||||
@name Macros which remain even in 'release' mode
|
||||
*/
|
||||
//@{
|
||||
/// check that expression is true, "return" if not (also FAILs in debug mode)
|
||||
|
@@ -47,10 +47,6 @@
|
||||
#endif
|
||||
#endif // Sun
|
||||
|
||||
#if defined(__hpux) && !defined(__HPUX__)
|
||||
#define __HPUX__
|
||||
#endif // HP-UX
|
||||
|
||||
#elif defined(applec) || defined(THINK_C) || ( defined( __MWERKS__ ) && !defined(__INTEL__) )
|
||||
// MacOS
|
||||
#elif defined(__OS2__)
|
||||
@@ -115,13 +111,11 @@
|
||||
# pragma suppress 571 // Virtual function hiding
|
||||
#endif // __SALFORDC__
|
||||
|
||||
#ifdef __VISUALC__
|
||||
#ifndef WIN32
|
||||
// VC1.5 does not have LPTSTR type
|
||||
#define LPTSTR LPSTR
|
||||
#define LPCTSTR LPCSTR
|
||||
#endif
|
||||
#endif
|
||||
#if defined(__VISUALC__) && !defined(WIN32)
|
||||
// VC1.5 does not have LPTSTR type
|
||||
#define LPTSTR LPSTR
|
||||
#define LPCTSTR LPCSTR
|
||||
#endif // VC++ 1.5
|
||||
|
||||
// Digital Unix C++ compiler only defines this symbol for .cxx and .hxx files,
|
||||
// so define it ourselves
|
||||
@@ -190,8 +184,9 @@
|
||||
// Make sure the environment is set correctly
|
||||
#if defined(__WXMSW__) && defined(__X__)
|
||||
#error "Target can't be both X and Windows"
|
||||
#elif !defined(__WXMOTIF__) && !defined(__WXMSW__) && !defined(__WXGTK__) && !defined(__WXPM__) && \
|
||||
!defined(__WXMAC__) && !defined(__X__) && !defined(__WXQT__) && !defined(__WXSTUBS__)
|
||||
#elif !defined(__WXMOTIF__) && !defined(__WXMSW__) && !defined(__WXGTK__) && \
|
||||
!defined(__WXPM__) && !defined(__WXMAC__) && !defined(__X__) && \
|
||||
!defined(__WXQT__) && !defined(__WXSTUBS__) && wxUSE_GUI
|
||||
#error "No Target! Use -D[__WXMOTIF__|__WXGTK__|__WXMSW__|__WXMAC__|__WXQT__|__WXPM__|__WXSTUBS__]"
|
||||
#endif
|
||||
|
||||
@@ -207,6 +202,12 @@
|
||||
#undef PACKAGE
|
||||
#undef VERSION
|
||||
|
||||
// this has to be done after including setup.h which might
|
||||
// define __HPUX__ 1 itself
|
||||
#if defined(__hpux) && !defined(__HPUX__)
|
||||
#define __HPUX__
|
||||
#endif // HP-UX
|
||||
|
||||
// if we're on a Unixsystem but didn't use configure (so that setup.h didn't
|
||||
// define __UNIX__), do define __UNIX__ now
|
||||
#if !defined(__UNIX__) && defined(__UNIX_LIKE__)
|
||||
@@ -215,6 +216,17 @@
|
||||
|
||||
#include "wx/version.h"
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// compatibility defines
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
// possibility to build non GUI apps is new, so don't burden ourselves with
|
||||
// compatibility code
|
||||
#if !wxUSE_GUI
|
||||
#undef WXWIN_COMPATIBILITY_2
|
||||
#define WXWIN_COMPATIBILITY_2 0
|
||||
#endif // !GUI
|
||||
|
||||
// ============================================================================
|
||||
// non portable C++ features
|
||||
// ============================================================================
|
||||
@@ -223,21 +235,14 @@
|
||||
// check for native bool type and TRUE/FALSE constants
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
#if defined(__WXMOTIF__) || defined(__WXGTK__) || defined(__WXQT__) || defined(__WXPM__) || defined(__WXSTUBS__)
|
||||
// Bool is now obsolete, use bool instead
|
||||
// typedef int Bool;
|
||||
// define boolean constants if not done yet
|
||||
#ifndef TRUE
|
||||
#define TRUE 1
|
||||
#endif
|
||||
|
||||
#ifndef TRUE
|
||||
#define TRUE 1
|
||||
#define FALSE 0
|
||||
#define Bool_DEFINED
|
||||
#endif
|
||||
#elif defined(__WXMSW__)
|
||||
#ifndef TRUE
|
||||
#define TRUE 1
|
||||
#define FALSE 0
|
||||
#endif
|
||||
#endif // TRUE/FALSE
|
||||
#ifndef FALSE
|
||||
#define FALSE 0
|
||||
#endif
|
||||
|
||||
// Add more tests here for Windows compilers that already define bool
|
||||
// (under Unix, configure tests for this)
|
||||
@@ -297,9 +302,40 @@ typedef int wxWindowID;
|
||||
#define WXUNUSED(identifier) identifier
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Making or using wxWindows as a Windows DLL
|
||||
*/
|
||||
// ----------------------------------------------------------------------------
|
||||
// portable calling conventions macros
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
// wxCALLBACK should be used for the functions which are called back by
|
||||
// Windows (such as compare function for wxListCtrl)
|
||||
#if defined(__WXMSW__)
|
||||
#if defined(__MINGW32__)
|
||||
#define wxCALLBACK __attribute__((stdcall))
|
||||
#else
|
||||
// both VC++ and Borland understand this
|
||||
#define wxCALLBACK _stdcall
|
||||
#endif
|
||||
#else
|
||||
// no stdcall under Unix
|
||||
#define wxCALLBACK
|
||||
#endif // platform
|
||||
|
||||
// callling convention for the qsort(3) callback
|
||||
|
||||
#if defined(__VISUALC__)
|
||||
#define wxCMPFUNC_CONV _cdecl
|
||||
#elif defined(__VISAGECPP__)
|
||||
#define wxCMPFUNC_CONV _Optlink
|
||||
#else // !Visual C++
|
||||
#define wxCMPFUNC_CONV
|
||||
#endif // compiler
|
||||
|
||||
// compatibility :-(
|
||||
#define CMPFUNC_CONV wxCMPFUNC_CONV
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// Making or using wxWindows as a Windows DLL
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
#if defined(__WXMSW__)
|
||||
|
||||
@@ -465,7 +501,8 @@ enum
|
||||
wxMGL_UNIX, // MGL with direct hardware access
|
||||
wxMGL_X, // MGL on X
|
||||
wxMGL_WIN32, // MGL on Win32
|
||||
wxMGL_OS2 // MGL on OS/2
|
||||
wxMGL_OS2, // MGL on OS/2
|
||||
wxWINDOWS_OS2 // Native OS/2 PM
|
||||
};
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
@@ -809,6 +846,8 @@ enum wxStretch
|
||||
// this style means to use RICHEDIT control and does something only under wxMSW
|
||||
// and Win32 and is silently ignored under all other platforms
|
||||
#define wxTE_RICH 0x0080
|
||||
#define wxTE_NO_VSCROLL 0x0100
|
||||
#define wxTE_AUTO_SCROLL 0x0200
|
||||
|
||||
/*
|
||||
* wxComboBox style flags
|
||||
@@ -836,11 +875,11 @@ enum wxStretch
|
||||
/*
|
||||
* wxGauge flags
|
||||
*/
|
||||
#define wxGA_PROGRESSBAR 0x0004
|
||||
#define wxGA_HORIZONTAL wxHORIZONTAL
|
||||
#define wxGA_VERTICAL wxVERTICAL
|
||||
#define wxGA_PROGRESSBAR 0x0010
|
||||
// Windows only
|
||||
#define wxGA_SMOOTH 0x0008
|
||||
#define wxGA_SMOOTH 0x0020
|
||||
|
||||
/*
|
||||
* wxSlider flags
|
||||
@@ -946,6 +985,9 @@ enum wxStretch
|
||||
* wxNotebook flags
|
||||
*/
|
||||
#define wxNB_FIXEDWIDTH 0x0008
|
||||
#define wxNB_LEFT 0x0020
|
||||
#define wxNB_RIGHT 0x0040
|
||||
#define wxNB_BOTTOM 0x0080
|
||||
|
||||
/*
|
||||
* wxStatusBar95 flags
|
||||
@@ -1065,6 +1107,8 @@ enum wxStretch
|
||||
#define wxID_SETUP 5110
|
||||
#define wxID_RESET 5111
|
||||
|
||||
// IDs used by generic file dialog (11 consecutive starting from this value)
|
||||
#define wxID_FILEDLGG 5900
|
||||
#define wxID_HIGHEST 5999
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
@@ -1465,8 +1509,15 @@ typedef unsigned long WXHDC;
|
||||
typedef unsigned int WXUINT;
|
||||
typedef unsigned long WXDWORD;
|
||||
typedef unsigned short WXWORD;
|
||||
#ifdef __WXMSW__
|
||||
typedef unsigned int WXWPARAM;
|
||||
typedef long WXLPARAM;
|
||||
#else
|
||||
# define WXWPARAM MPARAM
|
||||
# define WXLPARAM MPARAM
|
||||
# define RECT RECTL
|
||||
# define LOGFONT FATTRS
|
||||
#endif
|
||||
typedef unsigned long WXCOLORREF;
|
||||
typedef void * WXRGNDATA;
|
||||
typedef void * WXMSG;
|
||||
|
189
include/wx/dialup.h
Normal file
189
include/wx/dialup.h
Normal file
@@ -0,0 +1,189 @@
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// Name: wx/dialup.h
|
||||
// Purpose: Network related wxWindows classes and functions
|
||||
// Author: Vadim Zeitlin
|
||||
// Modified by:
|
||||
// Created: 07.07.99
|
||||
// RCS-ID: $Id$
|
||||
// Copyright: (c) Vadim Zeitlin
|
||||
// Licence: wxWindows licence
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef _WX_NET_H
|
||||
#define _WX_NET_H
|
||||
|
||||
#ifdef __GNUG__
|
||||
#pragma interface "dialup.h"
|
||||
#endif
|
||||
|
||||
#if wxUSE_DIALUP_MANAGER
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// misc
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
class WXDLLEXPORT wxArrayString;
|
||||
|
||||
extern const wxChar *wxEmptyString;
|
||||
|
||||
#define WXDIALUP_MANAGER_DEFAULT_BEACONHOST wxT("www.yahoo.com")
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// A class which groups functions dealing with connecting to the network from a
|
||||
// workstation using dial-up access to the net. There is at most one instance
|
||||
// of this class in the program accessed via GetDialUpManager().
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
/* TODO
|
||||
*
|
||||
* 1. more configurability for Unix: i.e. how to initiate the connection, how
|
||||
* to check for online status, &c.
|
||||
* 2. a function to enumerate all connections (ISPs) and show a dialog in
|
||||
* Dial() allowing to choose between them if no ISP given
|
||||
* 3. add an async version of dialing functions which notify the caller about
|
||||
* the progress (or may be even start another thread to monitor it)
|
||||
* 4. the static creation/accessor functions are not MT-safe - but is this
|
||||
* really crucial? I think we may suppose they're always called from the
|
||||
* main thread?
|
||||
*/
|
||||
|
||||
class WXDLLEXPORT wxDialUpManager
|
||||
{
|
||||
public:
|
||||
// this function should create and return the object of the
|
||||
// platform-specific class derived from wxDialUpManager. It's implemented
|
||||
// in the platform-specific source files.
|
||||
static wxDialUpManager *Create();
|
||||
|
||||
// could the dialup manager be initialized correctly? If this function
|
||||
// returns FALSE, no other functions will work neither, so it's a good idea
|
||||
// to call this function and check its result before calling any other
|
||||
// wxDialUpManager methods
|
||||
virtual bool IsOk() const = 0;
|
||||
|
||||
// virtual dtor for any base class
|
||||
virtual ~wxDialUpManager() { }
|
||||
|
||||
// operations
|
||||
// ----------
|
||||
|
||||
// fills the array with the names of all possible values for the first
|
||||
// parameter to Dial() on this machine and returns their number (may be 0)
|
||||
virtual size_t GetISPNames(wxArrayString& names) const = 0;
|
||||
|
||||
// dial the given ISP, use username and password to authentificate
|
||||
//
|
||||
// if no nameOfISP is given, the function will select the default one
|
||||
//
|
||||
// if no username/password are given, the function will try to do without
|
||||
// them, but will ask the user if really needed
|
||||
//
|
||||
// if async parameter is FALSE, the function waits until the end of dialing
|
||||
// and returns TRUE upon successful completion.
|
||||
// if async is TRUE, the function only initiates the connection and returns
|
||||
// immediately - the result is reported via events (an event is sent
|
||||
// anyhow, but if dialing failed it will be a DISCONNECTED one)
|
||||
virtual bool Dial(const wxString& nameOfISP = wxEmptyString,
|
||||
const wxString& username = wxEmptyString,
|
||||
const wxString& password = wxEmptyString,
|
||||
bool async = TRUE) = 0;
|
||||
|
||||
// returns TRUE if (async) dialing is in progress
|
||||
virtual bool IsDialing() const = 0;
|
||||
|
||||
// cancel dialing the number initiated with Dial(async = TRUE)
|
||||
// NB: this won't result in DISCONNECTED event being sent
|
||||
virtual bool CancelDialing() = 0;
|
||||
|
||||
// hang up the currently active dial up connection
|
||||
virtual bool HangUp() = 0;
|
||||
|
||||
// online status
|
||||
// -------------
|
||||
|
||||
// returns TRUE if the computer has a permanent network connection (i.e. is
|
||||
// on a LAN) and so there is no need to use Dial() function to go online
|
||||
//
|
||||
// NB: this functions tries to guess the result and it is not always
|
||||
// guaranteed to be correct, so it's better to ask user for
|
||||
// confirmation or give him a possibility to override it
|
||||
virtual bool IsAlwaysOnline() const = 0;
|
||||
|
||||
// returns TRUE if the computer is connected to the network: under Windows,
|
||||
// this just means that a RAS connection exists, under Unix we check that
|
||||
// the "well-known host" (as specified by SetWellKnownHost) is reachable
|
||||
virtual bool IsOnline() const = 0;
|
||||
|
||||
// sometimes the built-in logic for determining the online status may fail,
|
||||
// so, in general, the user should be allowed to override it. This function
|
||||
// allows to forcefully set the online status - whatever our internal
|
||||
// algorithm may think about it.
|
||||
virtual void SetOnlineStatus(bool isOnline = TRUE) = 0;
|
||||
|
||||
// set misc wxDialUpManager options
|
||||
// --------------------------------
|
||||
|
||||
// enable automatical checks for the connection status and sending of
|
||||
// wxEVT_DIALUP_CONNECTED/wxEVT_DIALUP_DISCONNECTED events. The interval
|
||||
// parameter is only for Unix where we do the check manually: under
|
||||
// Windows, the notification about the change of connection status is
|
||||
// instantenous.
|
||||
//
|
||||
// Returns FALSE if couldn't set up automatic check for online status.
|
||||
virtual bool EnableAutoCheckOnlineStatus(size_t nSeconds = 60) = 0;
|
||||
|
||||
// disable automatic check for connection status change - notice that the
|
||||
// wxEVT_DIALUP_XXX events won't be sent any more neither.
|
||||
virtual void DisableAutoCheckOnlineStatus() = 0;
|
||||
|
||||
// additional Unix-only configuration
|
||||
// ----------------------------------
|
||||
|
||||
// under Unix, the value of well-known host is used to check whether we're
|
||||
// connected to the internet. It's unused under Windows, but this function
|
||||
// is always safe to call. The default value is www.yahoo.com.
|
||||
virtual void SetWellKnownHost(const wxString& hostname,
|
||||
int portno = 80) = 0;
|
||||
|
||||
// Sets the commands to start up the network and to hang up again. Used by
|
||||
// the Unix implementations only.
|
||||
virtual void
|
||||
SetConnectCommand(const wxString& commandDial = wxT("/usr/bin/pon"),
|
||||
const wxString& commandHangup = wxT("/usr/bin/poff")) = 0;
|
||||
};
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// DIALUP events processing
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
// the event class for the dialup events
|
||||
class WXDLLEXPORT wxDialUpEvent : public wxEvent
|
||||
{
|
||||
public:
|
||||
wxDialUpEvent(bool isConnected, bool isOwnEvent) : wxEvent(isOwnEvent)
|
||||
{
|
||||
SetEventType(isConnected ? wxEVT_DIALUP_CONNECTED
|
||||
: wxEVT_DIALUP_DISCONNECTED);
|
||||
}
|
||||
|
||||
// is this a CONNECTED or DISCONNECTED event?
|
||||
bool IsConnectedEvent() const
|
||||
{ return GetEventType() == wxEVT_DIALUP_CONNECTED; }
|
||||
|
||||
// does this event come from wxDialUpManager::Dial() or from some extrenal
|
||||
// process (i.e. does it result from our own attempt to establish the
|
||||
// connection)?
|
||||
bool IsOwnEvent() const { return m_id != 0; }
|
||||
};
|
||||
|
||||
// the type of dialup event handler function
|
||||
typedef void (wxObject::*wxDialUpEventFunction)(wxDialUpEvent&);
|
||||
|
||||
// macros to catch dialup events
|
||||
#define EVT_DIALUP_CONNECTED(func) { wxEVT_DIALUP_CONNECTED, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxDialUpEventFunction) & func, NULL},
|
||||
#define EVT_DIALUP_DISCONNECTED(func) { wxEVT_DIALUP_DISCONNECTED, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxDialUpEventFunction) & func, NULL},
|
||||
|
||||
|
||||
#endif // wxUSE_DIALUP_MANAGER
|
||||
|
||||
#endif // _WX_NET_H
|
@@ -1,8 +1,16 @@
|
||||
#ifndef _WX_DIRDLG_H_BASE_
|
||||
#define _WX_DIRDLG_H_BASE_
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// constants
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
WXDLLEXPORT_DATA(extern const wxChar*) wxDirDialogNameStr;
|
||||
WXDLLEXPORT_DATA(extern const wxChar*) wxDirDialogDefaultFolderStr;
|
||||
WXDLLEXPORT_DATA(extern const wxChar*) wxEmptyString;
|
||||
|
||||
#if defined(__WXMSW__)
|
||||
#if defined(__WIN16__) || defined(__GNUWIN32__) || defined(__SALFORDC__)
|
||||
#if defined(__WIN16__) || (defined(__GNUWIN32__)&&!defined(wxUSE_NORLANDER_HEADERS)) || defined(__SALFORDC__)
|
||||
#include "wx/generic/dirdlgg.h"
|
||||
#else
|
||||
#include "wx/msw/dirdlg.h"
|
||||
|
@@ -362,6 +362,7 @@ public:
|
||||
|
||||
// File history management
|
||||
virtual void AddFileToHistory(const wxString& file);
|
||||
virtual void RemoveFileFromHistory(int i);
|
||||
virtual int GetNoHistoryFiles() const;
|
||||
virtual wxString GetHistoryFile(int i) const;
|
||||
virtual void FileHistoryUseMenu(wxMenu *menu);
|
||||
@@ -553,6 +554,7 @@ public:
|
||||
|
||||
// Operations
|
||||
virtual void AddFileToHistory(const wxString& file);
|
||||
virtual void RemoveFileFromHistory(int i);
|
||||
virtual int GetMaxFiles() const { return m_fileMaxFiles; }
|
||||
virtual void UseMenu(wxMenu *menu);
|
||||
|
||||
|
@@ -43,15 +43,7 @@
|
||||
callback compare function for quick sort
|
||||
must return negative value, 0 or positive value if pItem1 <, = or > pItem2
|
||||
*/
|
||||
|
||||
#if defined(__VISUALC__)
|
||||
#define CMPFUNC_CONV _cdecl
|
||||
#elif defined(__VISAGECPP__)
|
||||
#define CMPFUNC_CONV _Optlink
|
||||
#else // !Visual C++
|
||||
#define CMPFUNC_CONV
|
||||
#endif // compiler
|
||||
typedef int (CMPFUNC_CONV *CMPFUNC)(const void* pItem1, const void* pItem2);
|
||||
typedef int (wxCMPFUNC_CONV *CMPFUNC)(const void* pItem1, const void* pItem2);
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
/**
|
||||
@@ -159,6 +151,11 @@ private:
|
||||
// template classes
|
||||
// ============================================================================
|
||||
|
||||
// resolves the name conflict between the wxT() macor and T typedef: we can't
|
||||
// use wxT() inside WX_DEFINE_ARRAY!
|
||||
#define _WX_ERROR_SIZEOF wxT("illegal use of DEFINE_ARRAY")
|
||||
#define _WX_ERROR_REMOVE wxT("removing inexisting element in wxArray::Remove")
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// This macro generates a new array class. It is intended for storage of simple
|
||||
// types of sizeof()<=sizeof(long) or pointers if sizeof(pointer)<=sizeof(long)
|
||||
@@ -178,7 +175,7 @@ public: \
|
||||
size_t type = sizeof(T); \
|
||||
size_t sizelong = sizeof(long); \
|
||||
if ( type > sizelong ) \
|
||||
{ wxFAIL_MSG( _T("illegal use of DEFINE_ARRAY") ); } \
|
||||
{ wxFAIL_MSG( _WX_ERROR_SIZEOF ); } \
|
||||
} \
|
||||
\
|
||||
name& operator=(const name& src) \
|
||||
@@ -205,7 +202,7 @@ public: \
|
||||
void Remove(T Item) \
|
||||
{ int iIndex = Index(Item); \
|
||||
wxCHECK2_MSG( iIndex != wxNOT_FOUND, return, \
|
||||
_T("removing inexisting element in wxArray::Remove") ); \
|
||||
_WX_ERROR_REMOVE); \
|
||||
wxBaseArray::Remove((size_t)iIndex); } \
|
||||
\
|
||||
void Sort(CMPFUNC##T fCmp) { wxBaseArray::Sort((CMPFUNC)fCmp); } \
|
||||
@@ -240,7 +237,7 @@ public: \
|
||||
{ size_t type = sizeof(T); \
|
||||
size_t sizelong = sizeof(long); \
|
||||
if ( type > sizelong ) \
|
||||
{ wxFAIL_MSG( _T("illegal use of DEFINE_ARRAY") ); } \
|
||||
{ wxFAIL_MSG( _WX_ERROR_SIZEOF ); } \
|
||||
m_fnCompare = fn; \
|
||||
} \
|
||||
\
|
||||
@@ -267,7 +264,7 @@ public: \
|
||||
void Remove(T Item) \
|
||||
{ int iIndex = Index(Item); \
|
||||
wxCHECK2_MSG( iIndex != wxNOT_FOUND, return, \
|
||||
_T("removing inexisting element in wxArray::Remove") ); \
|
||||
_WX_ERROR_REMOVE ); \
|
||||
wxBaseArray::Remove((size_t)iIndex); } \
|
||||
\
|
||||
private: \
|
||||
|
@@ -18,16 +18,31 @@
|
||||
|
||||
#include "wx/defs.h"
|
||||
#include "wx/object.h"
|
||||
#include "wx/gdicmn.h"
|
||||
|
||||
#if wxUSE_GUI
|
||||
#include "wx/gdicmn.h"
|
||||
#endif
|
||||
|
||||
#if wxUSE_THREADS
|
||||
#include "wx/thread.h"
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Event types
|
||||
*
|
||||
*/
|
||||
// ----------------------------------------------------------------------------
|
||||
// forward declarations
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
class WXDLLEXPORT wxList;
|
||||
|
||||
#if wxUSE_GUI
|
||||
class WXDLLEXPORT wxClientData;
|
||||
class WXDLLEXPORT wxDC;
|
||||
class WXDLLEXPORT wxMenu;
|
||||
class WXDLLEXPORT wxWindow;
|
||||
#endif // wxUSE_GUI
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// Event types
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
typedef int wxEventType;
|
||||
|
||||
@@ -336,6 +351,8 @@ public:
|
||||
bool m_isCommandEvent;
|
||||
};
|
||||
|
||||
#if wxUSE_GUI
|
||||
|
||||
// Item or menu event class
|
||||
/*
|
||||
wxEVT_COMMAND_BUTTON_CLICKED
|
||||
@@ -354,8 +371,6 @@ public:
|
||||
wxEVT_COMMAND_COMBOBOX_SELECTED
|
||||
*/
|
||||
|
||||
class WXDLLEXPORT wxClientData;
|
||||
|
||||
class WXDLLEXPORT wxCommandEvent : public wxEvent
|
||||
{
|
||||
DECLARE_DYNAMIC_CLASS(wxCommandEvent)
|
||||
@@ -523,7 +538,6 @@ public:
|
||||
wxEVT_NC_RIGHT_DCLICK,
|
||||
*/
|
||||
|
||||
class WXDLLEXPORT wxDC;
|
||||
class WXDLLEXPORT wxMouseEvent : public wxEvent
|
||||
{
|
||||
DECLARE_DYNAMIC_CLASS(wxMouseEvent)
|
||||
@@ -764,7 +778,6 @@ public:
|
||||
wxEVT_ERASE_BACKGROUND
|
||||
*/
|
||||
|
||||
class WXDLLEXPORT wxDC;
|
||||
class WXDLLEXPORT wxEraseEvent : public wxEvent
|
||||
{
|
||||
DECLARE_DYNAMIC_CLASS(wxEraseEvent)
|
||||
@@ -884,7 +897,7 @@ public:
|
||||
{
|
||||
// GetVeto() will return FALSE anyhow...
|
||||
wxCHECK_RET( m_canVeto,
|
||||
_T("call to Veto() ignored (can't veto this event)") );
|
||||
wxT("call to Veto() ignored (can't veto this event)") );
|
||||
|
||||
m_veto = veto;
|
||||
}
|
||||
@@ -1017,7 +1030,7 @@ public:
|
||||
|
||||
// Was it a button event? (*doesn't* mean: is any button *down*?)
|
||||
bool IsButton() const { return ((GetEventType() == wxEVT_JOY_BUTTON_DOWN) ||
|
||||
(GetEventType() == wxEVT_JOY_BUTTON_DOWN)); }
|
||||
(GetEventType() == wxEVT_JOY_BUTTON_UP)); }
|
||||
|
||||
// Was it a move event?
|
||||
bool IsMove() const { return (GetEventType() == wxEVT_JOY_MOVE) ; }
|
||||
@@ -1069,36 +1082,11 @@ public:
|
||||
void CopyObject(wxObject& obj) const;
|
||||
};
|
||||
|
||||
// Idle event
|
||||
/*
|
||||
wxEVT_IDLE
|
||||
*/
|
||||
|
||||
class WXDLLEXPORT wxIdleEvent : public wxEvent
|
||||
{
|
||||
DECLARE_DYNAMIC_CLASS(wxIdleEvent)
|
||||
|
||||
public:
|
||||
wxIdleEvent()
|
||||
{ m_eventType = wxEVT_IDLE; m_requestMore = FALSE; }
|
||||
|
||||
void RequestMore(bool needMore = TRUE) { m_requestMore = needMore; }
|
||||
bool MoreRequested() const { return m_requestMore; }
|
||||
|
||||
void CopyObject(wxObject& obj) const;
|
||||
|
||||
protected:
|
||||
bool m_requestMore;
|
||||
};
|
||||
|
||||
// Update UI event
|
||||
/*
|
||||
wxEVT_UPDATE_UI
|
||||
*/
|
||||
|
||||
class WXDLLEXPORT wxMenu;
|
||||
class WXDLLEXPORT wxWindow;
|
||||
|
||||
class WXDLLEXPORT wxUpdateUIEvent : public wxCommandEvent
|
||||
{
|
||||
DECLARE_DYNAMIC_CLASS(wxUpdateUIEvent)
|
||||
@@ -1256,6 +1244,30 @@ public:
|
||||
wxWindow *GetWindow() const { return (wxWindow *)GetEventObject(); }
|
||||
};
|
||||
|
||||
#endif // wxUSE_GUI
|
||||
|
||||
// Idle event
|
||||
/*
|
||||
wxEVT_IDLE
|
||||
*/
|
||||
|
||||
class WXDLLEXPORT wxIdleEvent : public wxEvent
|
||||
{
|
||||
DECLARE_DYNAMIC_CLASS(wxIdleEvent)
|
||||
|
||||
public:
|
||||
wxIdleEvent()
|
||||
{ m_eventType = wxEVT_IDLE; m_requestMore = FALSE; }
|
||||
|
||||
void RequestMore(bool needMore = TRUE) { m_requestMore = needMore; }
|
||||
bool MoreRequested() const { return m_requestMore; }
|
||||
|
||||
void CopyObject(wxObject& obj) const;
|
||||
|
||||
protected:
|
||||
bool m_requestMore;
|
||||
};
|
||||
|
||||
/* TODO
|
||||
wxEVT_POWER,
|
||||
wxEVT_MOUSE_CAPTURE_CHANGED,
|
||||
@@ -1267,11 +1279,6 @@ public:
|
||||
wxEVT_COMPARE_ITEM
|
||||
*/
|
||||
|
||||
class WXDLLEXPORT wxWindow;
|
||||
class WXDLLEXPORT wxControl;
|
||||
|
||||
// struct WXDLLEXPORT wxEventTableEntry;
|
||||
|
||||
typedef void (wxObject::*wxObjectEventFunction)(wxEvent&);
|
||||
|
||||
struct WXDLLEXPORT wxEventTableEntry
|
||||
@@ -1312,7 +1319,7 @@ public:
|
||||
virtual void OnCommand(wxWindow& WXUNUSED(win),
|
||||
wxCommandEvent& WXUNUSED(event))
|
||||
{
|
||||
wxFAIL_MSG(_T("shouldn't be called any more"));
|
||||
wxFAIL_MSG(wxT("shouldn't be called any more"));
|
||||
}
|
||||
|
||||
// Called if child control has no callback function
|
||||
@@ -1373,6 +1380,7 @@ protected:
|
||||
};
|
||||
|
||||
typedef void (wxEvtHandler::*wxEventFunction)(wxEvent&);
|
||||
#if wxUSE_GUI
|
||||
typedef void (wxEvtHandler::*wxCommandEventFunction)(wxCommandEvent&);
|
||||
typedef void (wxEvtHandler::*wxScrollEventFunction)(wxScrollEvent&);
|
||||
typedef void (wxEvtHandler::*wxScrollWinEventFunction)(wxScrollWinEvent&);
|
||||
@@ -1398,6 +1406,7 @@ typedef void (wxEvtHandler::*wxMaximizeEventFunction)(wxShowEvent&);
|
||||
typedef void (wxEvtHandler::*wxNavigationKeyEventFunction)(wxNavigationKeyEvent&);
|
||||
typedef void (wxEvtHandler::*wxPaletteChangedEventFunction)(wxPaletteChangedEvent&);
|
||||
typedef void (wxEvtHandler::*wxQueryNewPaletteEventFunction)(wxQueryNewPaletteEvent&);
|
||||
#endif // wxUSE_GUI
|
||||
|
||||
// N.B. In GNU-WIN32, you *have* to take the address of a member function
|
||||
// (use &) or the compiler crashes...
|
||||
@@ -1603,13 +1612,17 @@ const wxEventTableEntry theClass::sm_eventTableEntries[] = { \
|
||||
#define EVT_UPDATE_UI(id, func) \
|
||||
{ wxEVT_UPDATE_UI, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxUpdateUIEventFunction) & func, (wxObject *) NULL },\
|
||||
|
||||
/*
|
||||
* Helper functions
|
||||
*/
|
||||
// ----------------------------------------------------------------------------
|
||||
// Helper functions
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
#if wxUSE_GUI
|
||||
|
||||
// Find a window with the focus, that is also a descendant of the given window.
|
||||
// This is used to determine the window to initially send commands to.
|
||||
wxWindow* wxFindFocusDescendant(wxWindow* ancestor);
|
||||
|
||||
#endif // wxUSE_GUI
|
||||
|
||||
#endif
|
||||
// _WX_EVENTH__
|
||||
|
@@ -51,7 +51,7 @@ public:
|
||||
bool Close();
|
||||
|
||||
// assign an existing file descriptor and get it back from wxFFile object
|
||||
void Attach(FILE *fp, const wxString& name = _T(""))
|
||||
void Attach(FILE *fp, const wxString& name = wxT(""))
|
||||
{ Close(); m_fp = fp; m_name = name; }
|
||||
void Detach() { m_fp = NULL; }
|
||||
FILE *fp() const { return m_fp; }
|
||||
|
@@ -141,9 +141,9 @@ public:
|
||||
// New constructor: one size fits all. Specify wxCONFIG_USE_LOCAL_FILE or
|
||||
// wxCONFIG_USE_GLOBAL_FILE to say which files should be used.
|
||||
wxFileConfig(const wxString& appName,
|
||||
const wxString& vendorName = _T(""),
|
||||
const wxString& localFilename = _T(""),
|
||||
const wxString& globalFilename = _T(""),
|
||||
const wxString& vendorName = wxT(""),
|
||||
const wxString& localFilename = wxT(""),
|
||||
const wxString& globalFilename = wxT(""),
|
||||
long style = wxCONFIG_USE_LOCAL_FILE);
|
||||
|
||||
// dtor will save unsaved data
|
||||
|
@@ -159,15 +159,15 @@ WXDLLEXPORT bool wxMkdir(const wxString& dir, int perm = 0777);
|
||||
WXDLLEXPORT bool wxRmdir(const wxString& dir, int flags = 0);
|
||||
|
||||
// separators in file names
|
||||
#define wxFILE_SEP_EXT _T('.')
|
||||
#define wxFILE_SEP_DSK _T(':')
|
||||
#define wxFILE_SEP_PATH_DOS _T('\\')
|
||||
#define wxFILE_SEP_PATH_UNIX _T('/')
|
||||
#define wxFILE_SEP_EXT wxT('.')
|
||||
#define wxFILE_SEP_DSK wxT(':')
|
||||
#define wxFILE_SEP_PATH_DOS wxT('\\')
|
||||
#define wxFILE_SEP_PATH_UNIX wxT('/')
|
||||
|
||||
// separator in the path list (as in PATH environment variable)
|
||||
// NB: these are strings and not characters on purpose!
|
||||
#define wxPATH_SEP_DOS _T(";")
|
||||
#define wxPATH_SEP_UNIX _T(":")
|
||||
#define wxPATH_SEP_DOS wxT(";")
|
||||
#define wxPATH_SEP_UNIX wxT(":")
|
||||
|
||||
// platform independent versions
|
||||
#ifdef __UNIX__
|
||||
|
@@ -162,7 +162,7 @@ class WXDLLEXPORT wxFileSystem : public wxObject
|
||||
// unless is_dir = TRUE 'location' is *not* the directory but
|
||||
// file contained in this directory
|
||||
// (so ChangePathTo("dir/subdir/xh.htm") sets m_Path to "dir/subdir/")
|
||||
|
||||
|
||||
wxString GetPath() const {return m_Path;}
|
||||
|
||||
wxFSFile* OpenFile(const wxString& location);
|
||||
@@ -175,6 +175,9 @@ class WXDLLEXPORT wxFileSystem : public wxObject
|
||||
static void AddHandler(wxFileSystemHandler *handler);
|
||||
// Adds FS handler.
|
||||
// In fact, this class is only front-end to the FS hanlers :-)
|
||||
|
||||
static void CleanUpHandlers();
|
||||
// remove all items from the m_Handlers list
|
||||
};
|
||||
|
||||
|
||||
@@ -204,5 +207,5 @@ special characters :
|
||||
#endif
|
||||
// (wxUSE_FS_INET || wxUSE_FS_ZIP) && wxUSE_STREAMS
|
||||
|
||||
#endif
|
||||
#endif
|
||||
// __FILESYS_H__
|
||||
|
@@ -1,21 +1,201 @@
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// Name: wx/font.h
|
||||
// Purpose: wxFontBase class: the interface of wxFont
|
||||
// Author: Vadim Zeitlin
|
||||
// Modified by:
|
||||
// Created: 20.09.99
|
||||
// RCS-ID: $Id$
|
||||
// Copyright: (c) wxWindows team
|
||||
// Licence: wxWindows license
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef _WX_FONT_H_BASE_
|
||||
#define _WX_FONT_H_BASE_
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// headers
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
#include "wx/defs.h" // for wxDEFAULT &c
|
||||
#include "wx/gdiobj.h" // the base class
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// forward declarations
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
class WXDLLEXPORT wxFontBase;
|
||||
class WXDLLEXPORT wxFont;
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// font constants
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
// standard font families
|
||||
enum wxFontFamily
|
||||
{
|
||||
wxFONTFAMILY_DEFAULT = wxDEFAULT,
|
||||
wxFONTFAMILY_DECORATIVE = wxDECORATIVE,
|
||||
wxFONTFAMILY_ROMAN = wxROMAN,
|
||||
wxFONTFAMILY_SCRIPT = wxSCRIPT,
|
||||
wxFONTFAMILY_SWISS = wxSWISS,
|
||||
wxFONTFAMILY_MODERN = wxMODERN,
|
||||
wxFONTFAMILY_TELETYPE = wxTELETYPE,
|
||||
wxFONTFAMILY_MAX
|
||||
};
|
||||
|
||||
// font styles
|
||||
enum wxFontStyle
|
||||
{
|
||||
wxFONTSTYLE_NORMAL = wxNORMAL,
|
||||
wxFONTSTYLE_ITALIC = wxITALIC,
|
||||
wxFONTSTYLE_SLANT = wxSLANT,
|
||||
wxFONTSTYLE_MAX
|
||||
};
|
||||
|
||||
// font weights
|
||||
enum wxFontWeight
|
||||
{
|
||||
wxFONTWEIGHT_NORMAL = wxNORMAL,
|
||||
wxFONTWEIGHT_LIGHT = wxLIGHT,
|
||||
wxFONTWEIGHT_BOLD = wxBOLD,
|
||||
wxFONTWEIGHT_MAX
|
||||
};
|
||||
|
||||
// font encodings
|
||||
enum wxFontEncoding
|
||||
{
|
||||
wxFONTENCODING_SYSTEM = -1, // system default
|
||||
wxFONTENCODING_DEFAULT, // current default encoding
|
||||
|
||||
// ISO8859 standard defines a number of single-byte charsets
|
||||
wxFONTENCODING_ISO8859_1, // West European (Latin1)
|
||||
wxFONTENCODING_ISO8859_2, // Central and East European (Latin2)
|
||||
wxFONTENCODING_ISO8859_3, // Esperanto (Latin3)
|
||||
wxFONTENCODING_ISO8859_4, // Baltic languages (Estonian) (Latin4)
|
||||
wxFONTENCODING_ISO8859_5, // Cyrillic
|
||||
wxFONTENCODING_ISO8859_6, // Arabic
|
||||
wxFONTENCODING_ISO8859_7, // Greek
|
||||
wxFONTENCODING_ISO8859_8, // Hebrew
|
||||
wxFONTENCODING_ISO8859_9, // Turkish (Latin5)
|
||||
wxFONTENCODING_ISO8859_10, // Variation of Latin4 (Latin6)
|
||||
wxFONTENCODING_ISO8859_11, // Thai
|
||||
wxFONTENCODING_ISO8859_12, // doesn't exist currently, but put it
|
||||
// here anyhow to make all ISO8859
|
||||
// consecutive numbers
|
||||
wxFONTENCODING_ISO8859_13, // Latin7
|
||||
wxFONTENCODING_ISO8859_14, // Latin8
|
||||
wxFONTENCODING_ISO8859_15, // Latin9 (a.k.a. Latin0, includes euro)
|
||||
|
||||
// Cyrillic charset soup (see http://czyborra.com/charsets/cyrillic.html)
|
||||
wxFONTENCODING_KOI8, // we don't support any of KOI8 variants
|
||||
wxFONTENCODING_ALTERNATIVE, // same as MS-DOS CP866
|
||||
wxFONTENCODING_BULGARIAN, // used under Linux in Bulgaria
|
||||
|
||||
// what would we do without Microsoft? They have their own encodings
|
||||
// for DOS
|
||||
wxFONTENCODING_CP437, // original MS-DOS codepage
|
||||
wxFONTENCODING_CP850, // CP437 merged with Latin1
|
||||
wxFONTENCODING_CP852, // CP437 merged with Latin2
|
||||
wxFONTENCODING_CP855, // another cyrillic encoding
|
||||
wxFONTENCODING_CP866, // and another one
|
||||
// and for Windows
|
||||
wxFONTENCODING_CP1250, // WinLatin2
|
||||
wxFONTENCODING_CP1251, // WinCyrillic
|
||||
wxFONTENCODING_CP1252, // WinLatin1
|
||||
|
||||
wxFONTENCODING_MAX
|
||||
};
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// wxFontBase represents a font object
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
class wxFontBase : public wxGDIObject
|
||||
{
|
||||
public:
|
||||
// creator function
|
||||
static wxFont *New(
|
||||
int pointSize, // size of the font in points
|
||||
int family, // see wxFontFamily enum
|
||||
int style, // see wxFontStyle enum
|
||||
int weight, // see wxFontWeight enum
|
||||
bool underlined = FALSE, // not underlined by default
|
||||
const wxString& face = wxEmptyString, // facename
|
||||
wxFontEncoding encoding = wxFONTENCODING_DEFAULT); // ISO8859-X, ...
|
||||
|
||||
// was the font successfully created?
|
||||
bool Ok() const { return m_refData != NULL; }
|
||||
|
||||
// comparison
|
||||
bool operator == (const wxFont& font) const;
|
||||
bool operator != (const wxFont& font) const;
|
||||
|
||||
// accessors: get the font characteristics
|
||||
virtual int GetPointSize() const = 0;
|
||||
virtual int GetFamily() const = 0;
|
||||
virtual int GetStyle() const = 0;
|
||||
virtual int GetWeight() const = 0;
|
||||
virtual bool GetUnderlined() const = 0;
|
||||
virtual wxString GetFaceName() const = 0;
|
||||
virtual wxFontEncoding GetEncoding() const = 0;
|
||||
|
||||
// change the font characteristics
|
||||
virtual void SetPointSize( int pointSize ) = 0;
|
||||
virtual void SetFamily( int family ) = 0;
|
||||
virtual void SetStyle( int style ) = 0;
|
||||
virtual void SetWeight( int weight ) = 0;
|
||||
virtual void SetFaceName( const wxString& faceName ) = 0;
|
||||
virtual void SetUnderlined( bool underlined ) = 0;
|
||||
virtual void SetEncoding(wxFontEncoding encoding) = 0;
|
||||
|
||||
// translate the fonts into human-readable string (i.e. GetStyleString()
|
||||
// will return "wxITALIC" for an italic font, ...)
|
||||
wxString GetFamilyString() const;
|
||||
wxString GetStyleString() const;
|
||||
wxString GetWeightString() const;
|
||||
|
||||
// the default encoding is used for creating all fonts with default
|
||||
// encoding parameter
|
||||
static wxFontEncoding GetDefaultEncoding()
|
||||
{ return ms_encodingDefault; }
|
||||
static void SetDefaultEncoding(wxFontEncoding encoding)
|
||||
{ ms_encodingDefault = encoding; }
|
||||
|
||||
protected:
|
||||
// get the internal data
|
||||
class WXDLLEXPORT wxFontRefData *GetFontData() const
|
||||
{ return (wxFontRefData *)m_refData; }
|
||||
|
||||
private:
|
||||
// the currently default encoding: by default, it's the default system
|
||||
// encoding, but may be changed by the application using
|
||||
// SetDefaultEncoding() to make all subsequent fonts created without
|
||||
// specifing encoding parameter using this encoding
|
||||
static wxFontEncoding ms_encodingDefault;
|
||||
};
|
||||
|
||||
// include the real class declaration
|
||||
#if defined(__WXMSW__)
|
||||
#include "wx/msw/font.h"
|
||||
#include "wx/msw/font.h"
|
||||
#elif defined(__WXMOTIF__)
|
||||
#include "wx/motif/font.h"
|
||||
#include "wx/motif/font.h"
|
||||
#elif defined(__WXGTK__)
|
||||
#include "wx/gtk/font.h"
|
||||
#include "wx/gtk/font.h"
|
||||
#elif defined(__WXQT__)
|
||||
#include "wx/qt/font.h"
|
||||
#include "wx/qt/font.h"
|
||||
#elif defined(__WXMAC__)
|
||||
#include "wx/mac/font.h"
|
||||
#include "wx/mac/font.h"
|
||||
#elif defined(__WXPM__)
|
||||
#include "wx/os2/font.h"
|
||||
#include "wx/os2/font.h"
|
||||
#elif defined(__WXSTUBS__)
|
||||
#include "wx/stubs/font.h"
|
||||
#include "wx/stubs/font.h"
|
||||
#endif
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// macros
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
#define M_FONTDATA GetFontData()
|
||||
|
||||
#endif
|
||||
// _WX_FONT_H_BASE_
|
||||
|
@@ -18,9 +18,7 @@
|
||||
# define wxFontDialog wxGenericFontDialog
|
||||
# define sm_classwxFontDialog sm_classwxGenericFontDialog
|
||||
#elif defined(__WXPM__)
|
||||
#include "wx/generic/fontdlgg.h"
|
||||
# define wxFontDialog wxGenericFontDialog
|
||||
# define sm_classwxFontDialog sm_classwxGenericFontDialog
|
||||
#include "wx/os2/fontdlg.h"
|
||||
#elif defined(__WXSTUBS__)
|
||||
#include "wx/generic/fontdlgg.h"
|
||||
# define wxFontDialog wxGenericFontDialog
|
||||
|
51
include/wx/fontenum.h
Normal file
51
include/wx/fontenum.h
Normal file
@@ -0,0 +1,51 @@
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// Name: fontenum.h
|
||||
// Purpose: wxFontEnumerator class for getting available fonts
|
||||
// Author: Julian Smart, Vadim Zeitlin
|
||||
// Modified by: extended to enumerate more than just font families and work ot
|
||||
// only on Windows (VZ)
|
||||
// Created: 04/01/98
|
||||
// RCS-ID: $Id$
|
||||
// Copyright: (c) Julian Smart, Vadim Zeitlin
|
||||
// Licence: wxWindows licence
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef _WX_FONTENUM_H_
|
||||
#define _WX_FONTENUM_H_
|
||||
|
||||
#ifdef __GNUG__
|
||||
#pragma interface "fontenum.h"
|
||||
#endif
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// wxFontEnumerator enumerates all available fonts on the system or only the
|
||||
// fonts with given attributes
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
class wxFontEnumerator
|
||||
{
|
||||
public:
|
||||
// start enumerating font families - will result in OnFontFamily() being
|
||||
// called for each available font family (unless it returns FALSE)
|
||||
virtual bool EnumerateFamilies(bool fixedWidthOnly = FALSE);
|
||||
|
||||
// enumerate the different encodings either for given font family or for
|
||||
// all font families - will result in OnFontEncoding() being called for
|
||||
// each available (family, encoding) couple
|
||||
virtual bool EnumerateEncodings(const wxString& family = wxT(""));
|
||||
|
||||
// callbacks which are called after one of EnumerateXXX() functions from
|
||||
// above is invoked - all of them may return FALSE to stop enumeration or
|
||||
// TRUE to continue with it
|
||||
|
||||
// called by EnumerateFamilies
|
||||
virtual bool OnFontFamily(const wxString& WXUNUSED(family))
|
||||
{ return FALSE; }
|
||||
|
||||
// called by EnumerateEncodings
|
||||
virtual bool OnFontEncoding(const wxString& WXUNUSED(family),
|
||||
const wxString& WXUNUSED(encoding))
|
||||
{ return FALSE; }
|
||||
};
|
||||
|
||||
#endif // _WX_FONTENUM_H_
|
@@ -149,6 +149,16 @@ enum wxStockCursor
|
||||
#define wxICON(X) wxIcon("" #X "")
|
||||
#endif // platform
|
||||
|
||||
/* Another macro: this one is for portable creation of bitmaps. We assume that
|
||||
under Unix bitmaps live in XPMs and under Windows they're in ressources.
|
||||
*/
|
||||
|
||||
#if defined(__WXMSW__) || defined(__WXPM__)
|
||||
#define wxBITMAP(name) wxBitmap(#name, wxBITMAP_TYPE_RESOURCE)
|
||||
#else // !(Windows || OS2)
|
||||
#define wxBITMAP(name) wxBitmap(name##_xpm, wxBITMAP_TYPE_XPM)
|
||||
#endif // platform
|
||||
|
||||
// ===========================================================================
|
||||
// classes
|
||||
// ===========================================================================
|
||||
|
@@ -68,6 +68,7 @@
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
WXDLLEXPORT_DATA(extern const wxChar*) wxFileSelectorPromptStr;
|
||||
WXDLLEXPORT_DATA(extern const wxChar*) wxDirDialogDefaultFolderStr;
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// classes
|
||||
@@ -105,11 +106,11 @@ public:
|
||||
|
||||
wxDirCtrl();
|
||||
wxDirCtrl(wxWindow *parent, const wxWindowID id = -1,
|
||||
const wxString &dir = "/",
|
||||
const wxString &dir = wxDirDialogDefaultFolderStr,
|
||||
const wxPoint& pos = wxDefaultPosition,
|
||||
const wxSize& size = wxDefaultSize,
|
||||
const long style = wxTR_HAS_BUTTONS,
|
||||
const wxString& name = "wxTreeCtrl" );
|
||||
const wxString& name = wxTreeCtrlNameStr );
|
||||
void ShowHidden( const bool yesno );
|
||||
void OnExpandItem(wxTreeEvent &event );
|
||||
void OnCollapseItem(wxTreeEvent &event );
|
||||
|
@@ -6,7 +6,7 @@
|
||||
// Created: 8/17/99
|
||||
// Copyright: (c) Robert Roebling
|
||||
// RCS-ID: $Id$
|
||||
// Licence: wxWindows licence
|
||||
// Licence: wxWindows licence
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef _WX_FILEDLGG_H_
|
||||
@@ -62,19 +62,19 @@ private:
|
||||
bool m_isExe;
|
||||
|
||||
public:
|
||||
wxFileData() {}
|
||||
wxFileData() { }
|
||||
wxFileData( const wxString &name, const wxString &fname );
|
||||
wxString GetName() const;
|
||||
wxString GetFullName() const;
|
||||
wxString GetHint() const;
|
||||
wxString GetEntry( const int num );
|
||||
wxString GetEntry( int num );
|
||||
bool IsDir();
|
||||
bool IsLink();
|
||||
bool IsExe();
|
||||
long GetSize();
|
||||
void MakeItem( wxListItem &item );
|
||||
void SetNewName( const wxString &name, const wxString &fname );
|
||||
|
||||
|
||||
private:
|
||||
DECLARE_DYNAMIC_CLASS(wxFileData);
|
||||
};
|
||||
@@ -92,11 +92,15 @@ private:
|
||||
|
||||
public:
|
||||
wxFileCtrl();
|
||||
wxFileCtrl( wxWindow *win, const wxWindowID id,
|
||||
const wxString &dirName, const wxString &wild,
|
||||
const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize,
|
||||
const long style = wxLC_LIST, const wxValidator &validator = wxDefaultValidator,
|
||||
const wxString &name = _T("filelist") );
|
||||
wxFileCtrl( wxWindow *win,
|
||||
wxWindowID id,
|
||||
const wxString &dirName,
|
||||
const wxString &wild,
|
||||
const wxPoint &pos = wxDefaultPosition,
|
||||
const wxSize &size = wxDefaultSize,
|
||||
long style = wxLC_LIST,
|
||||
const wxValidator &validator = wxDefaultValidator,
|
||||
const wxString &name = wxT("filelist") );
|
||||
void ChangeToListMode();
|
||||
void ChangeToReportMode();
|
||||
void ChangeToIconMode();
|
||||
@@ -113,7 +117,7 @@ public:
|
||||
void OnListDeleteItem( wxListEvent &event );
|
||||
void OnListEndLabelEdit( wxListEvent &event );
|
||||
|
||||
private:
|
||||
private:
|
||||
DECLARE_DYNAMIC_CLASS(wxFileCtrl);
|
||||
DECLARE_EVENT_TABLE()
|
||||
};
|
||||
@@ -151,7 +155,7 @@ public:
|
||||
wxString GetWildcard() const { return m_wildCard; }
|
||||
long GetStyle() const { return m_dialogStyle; }
|
||||
int GetFilterIndex() const { return m_filterIndex ; }
|
||||
|
||||
|
||||
void OnSelected( wxListEvent &event );
|
||||
void OnActivated( wxListEvent &event );
|
||||
void OnList( wxCommandEvent &event );
|
||||
@@ -163,7 +167,9 @@ public:
|
||||
void OnChoice( wxCommandEvent &event );
|
||||
void OnTextEnter( wxCommandEvent &event );
|
||||
|
||||
protected:
|
||||
void HandleAction( const wxString &fn );
|
||||
|
||||
protected:
|
||||
wxString m_message;
|
||||
long m_dialogStyle;
|
||||
wxString m_dir;
|
||||
@@ -176,17 +182,20 @@ protected:
|
||||
wxFileCtrl *m_list;
|
||||
wxCheckBox *m_check;
|
||||
wxStaticText *m_static;
|
||||
|
||||
|
||||
private:
|
||||
DECLARE_DYNAMIC_CLASS(wxFileDialog)
|
||||
DECLARE_EVENT_TABLE()
|
||||
};
|
||||
|
||||
#define wxOPEN 1
|
||||
#define wxSAVE 2
|
||||
#define wxOVERWRITE_PROMPT 4
|
||||
#define wxHIDE_READONLY 8
|
||||
#define wxFILE_MUST_EXIST 16
|
||||
enum
|
||||
{
|
||||
wxOPEN = 1,
|
||||
wxSAVE = 2,
|
||||
wxOVERWRITE_PROMPT = 4,
|
||||
wxHIDE_READONLY = 8,
|
||||
wxFILE_MUST_EXIST = 16
|
||||
};
|
||||
|
||||
// File selector - backward compatibility
|
||||
WXDLLEXPORT wxString
|
||||
|
1086
include/wx/generic/grid.h
Normal file
1086
include/wx/generic/grid.h
Normal file
File diff suppressed because it is too large
Load Diff
@@ -352,6 +352,12 @@ public:
|
||||
: wxGenericGrid(parent, x, y, width, height, style, name)
|
||||
{
|
||||
}
|
||||
wxGrid(wxWindow *parent, wxWindowID id, const wxPoint& pos,
|
||||
const wxSize& size, long style = 0, const wxString& name = "grid")
|
||||
: wxGenericGrid(parent, id, pos, size, style, name)
|
||||
{
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
class WXDLLEXPORT wxGridEvent : public wxCommandEvent
|
||||
|
@@ -120,18 +120,18 @@ DECLARE_ABSTRACT_CLASS(wxHTMLHelpControllerBase)
|
||||
virtual bool DisplayHelp(wxString const &) = 0;
|
||||
|
||||
/// Allows one to override the default settings for the help frame.
|
||||
virtual void SetFrameParameters(const wxString &title,
|
||||
const wxSize &size,
|
||||
const wxPoint &pos = wxDefaultPosition,
|
||||
bool newFrameEachTime = FALSE)
|
||||
virtual void SetFrameParameters(const wxString& WXUNUSED(title),
|
||||
const wxSize& WXUNUSED(size),
|
||||
const wxPoint& WXUNUSED(pos) = wxDefaultPosition,
|
||||
bool WXUNUSED(newFrameEachTime) = FALSE)
|
||||
{
|
||||
// does nothing by default
|
||||
}
|
||||
/// Obtains the latest settings used by the help frame and the help
|
||||
/// frame.
|
||||
virtual wxFrame *GetFrameParameters(wxSize *size = NULL,
|
||||
wxPoint *pos = NULL,
|
||||
bool *newFrameEachTime = NULL)
|
||||
virtual wxFrame *GetFrameParameters(wxSize *WXUNUSED(size) = NULL,
|
||||
wxPoint *WXUNUSED(pos) = NULL,
|
||||
bool *WXUNUSED(newFrameEachTime) = NULL)
|
||||
{
|
||||
return (wxFrame*) NULL;// does nothing by default
|
||||
}
|
||||
|
@@ -54,7 +54,7 @@ public:
|
||||
@param newmsg if used, new message to display
|
||||
@returns true if ABORT button has not been pressed
|
||||
*/
|
||||
bool Update(int value = -1, const wxString& newmsg = _T(""));
|
||||
bool Update(int value = -1, const wxString& newmsg = wxT(""));
|
||||
|
||||
/* Can be called to continue after the cancel button has been pressed, but
|
||||
the program decided to continue the operation (e.g., user didn't
|
||||
|
@@ -281,11 +281,7 @@ public:
|
||||
}
|
||||
|
||||
private:
|
||||
#ifdef __MWERKS__
|
||||
friend class wxSplitterWindow;
|
||||
#else
|
||||
friend wxSplitterWindow;
|
||||
#endif
|
||||
friend class WXDLLEXPORT wxSplitterWindow;
|
||||
|
||||
// data for the different types of event
|
||||
union
|
||||
|
@@ -15,6 +15,8 @@
|
||||
#pragma interface
|
||||
#endif
|
||||
|
||||
class wxStaticBox;
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// wxStaticLine
|
||||
// ----------------------------------------------------------------------------
|
||||
@@ -44,6 +46,11 @@ public:
|
||||
long style = wxLI_HORIZONTAL,
|
||||
const wxString &name = wxStaticTextNameStr );
|
||||
|
||||
// it's necessary to override this wxWindow function because we
|
||||
// will want to return the main widget for m_statbox
|
||||
//
|
||||
WXWidget GetMainWidget() const;
|
||||
|
||||
protected:
|
||||
// we implement the static line using a static box
|
||||
wxStaticBox *m_statbox;
|
||||
|
@@ -179,10 +179,10 @@ class WXDLLEXPORT wxTreeTextCtrl: public wxTextCtrl
|
||||
wxTreeTextCtrl(void) {};
|
||||
wxTreeTextCtrl( wxWindow *parent, const wxWindowID id,
|
||||
bool *accept, wxString *res, wxTreeCtrl *owner,
|
||||
const wxString &value = "",
|
||||
const wxString &value = wxEmptyString,
|
||||
const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize,
|
||||
int style = 0, const wxValidator& validator = wxDefaultValidator,
|
||||
const wxString &name = "wxTreeTextCtrlText" );
|
||||
const wxString &name = wxTextCtrlNameStr );
|
||||
void OnChar( wxKeyEvent &event );
|
||||
void OnKillFocus( wxFocusEvent &event );
|
||||
|
||||
@@ -258,10 +258,9 @@ public:
|
||||
|
||||
// retrieve items label
|
||||
wxString GetItemText(const wxTreeItemId& item) const;
|
||||
// get the normal item image
|
||||
int GetItemImage(const wxTreeItemId& item) const;
|
||||
// get the selected item image
|
||||
int GetItemSelectedImage(const wxTreeItemId& item) const;
|
||||
// get one of the images associated with the item (normal by default)
|
||||
int GetItemImage(const wxTreeItemId& item,
|
||||
wxTreeItemIcon which = wxTreeItemIcon_Normal) const;
|
||||
// get the data associated with the item
|
||||
wxTreeItemData *GetItemData(const wxTreeItemId& item) const;
|
||||
|
||||
@@ -270,10 +269,9 @@ public:
|
||||
|
||||
// set items label
|
||||
void SetItemText(const wxTreeItemId& item, const wxString& text);
|
||||
// set the normal item image
|
||||
void SetItemImage(const wxTreeItemId& item, int image);
|
||||
// set the selected item image
|
||||
void SetItemSelectedImage(const wxTreeItemId& item, int image);
|
||||
// get one of the images associated with the item (normal by default)
|
||||
void SetItemImage(const wxTreeItemId& item, int image,
|
||||
wxTreeItemIcon which = wxTreeItemIcon_Normal);
|
||||
// associate some data with the item
|
||||
void SetItemData(const wxTreeItemId& item, wxTreeItemData *data);
|
||||
|
||||
@@ -433,6 +431,16 @@ public:
|
||||
// NB: this function is not reentrant and not MT-safe (FIXME)!
|
||||
void SortChildren(const wxTreeItemId& item);
|
||||
|
||||
// deprecated functions: use Set/GetItemImage directly
|
||||
// get the selected item image
|
||||
int GetItemSelectedImage(const wxTreeItemId& item) const
|
||||
{ return GetItemImage(item, wxTreeItemIcon_Selected); }
|
||||
// set the selected item image
|
||||
void SetItemSelectedImage(const wxTreeItemId& item, int image)
|
||||
{ SetItemImage(item, image, wxTreeItemIcon_Selected); }
|
||||
|
||||
// implementation
|
||||
|
||||
// callbacks
|
||||
void OnPaint( wxPaintEvent &event );
|
||||
void OnSetFocus( wxFocusEvent &event );
|
||||
|
62
include/wx/generic/wizard.h
Normal file
62
include/wx/generic/wizard.h
Normal file
@@ -0,0 +1,62 @@
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// Name: generic/wizard.h
|
||||
// Purpose: declaration of generic wxWizard class
|
||||
// Author: Vadim Zeitlin
|
||||
// Modified by:
|
||||
// Created: 28.09.99
|
||||
// RCS-ID: $Id$
|
||||
// Copyright: (c) 1999 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
|
||||
// Licence: wxWindows license
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// wxWizard
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
class wxWizard : public wxWizardBase
|
||||
{
|
||||
public:
|
||||
// ctor
|
||||
wxWizard(wxWindow *parent = NULL,
|
||||
int id = -1,
|
||||
const wxString& title = wxEmptyString,
|
||||
const wxBitmap& bitmap = wxNullBitmap,
|
||||
const wxPoint& pos = wxDefaultPosition,
|
||||
const wxSize& size = wxDefaultSize);
|
||||
|
||||
// implement base class pure virtuals
|
||||
virtual bool RunWizard(wxWizardPage *firstPage);
|
||||
virtual wxWizardPage *GetCurrentPage() const;
|
||||
|
||||
// implementation only from now on
|
||||
// -------------------------------
|
||||
|
||||
// is the wizard running?
|
||||
bool IsRunning() const { return m_page != NULL; }
|
||||
|
||||
// show the prev/next page, but call TransferDataFromWindow on the current
|
||||
// page first and return FALSE without changing the page if it returns
|
||||
// FALSE
|
||||
bool ShowPage(wxWizardPage *page, bool goingForward = TRUE);
|
||||
|
||||
private:
|
||||
// event handlers
|
||||
void OnCancel(wxCommandEvent& event);
|
||||
void OnBackOrNext(wxCommandEvent& event);
|
||||
|
||||
// wizard dimensions
|
||||
int m_x, m_y; // the origin for the pages
|
||||
int m_width, // the size of the page itself
|
||||
m_height; // (total width is m_width + m_x)
|
||||
|
||||
// wizard state
|
||||
wxWizardPage *m_page; // the current page or NULL
|
||||
|
||||
// wizard controls
|
||||
wxButton *m_btnPrev, // the "<Back" button
|
||||
*m_btnNext; // the "Next>" or "Finish" button
|
||||
|
||||
DECLARE_DYNAMIC_CLASS(wxWizard)
|
||||
DECLARE_EVENT_TABLE()
|
||||
};
|
||||
|
@@ -3,8 +3,8 @@
|
||||
// Purpose: wxGIFDecoder, GIF reader for wxImage and wxAnimation
|
||||
// Author: Guillermo Rodriguez Garcia <guille@iies.es>
|
||||
// Version: 3.02
|
||||
// Last rev: 1999/08/18
|
||||
// Copyright: (c) Guillermo Rodriguez Garcia
|
||||
// CVS-ID: $Id$
|
||||
// Copyright: (c) 1999 Guillermo Rodriguez Garcia
|
||||
// Licence: wxWindows licence
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
@@ -17,7 +17,8 @@
|
||||
|
||||
#include "wx/setup.h"
|
||||
|
||||
#if wxUSE_STREAMS
|
||||
#if wxUSE_STREAMS && wxUSE_GIF
|
||||
|
||||
#include "wx/stream.h"
|
||||
#include "wx/image.h"
|
||||
|
||||
@@ -46,12 +47,10 @@ typedef struct _IMAGEN
|
||||
|
||||
/* error codes */
|
||||
#define E_OK 0 /* everything was OK */
|
||||
#define E_ARCHIVO -1 /* error opening file */
|
||||
#define E_FORMATO -2 /* error in gif header */
|
||||
#define E_MEMORIA -3 /* error allocating memory */
|
||||
#define E_FORMATO 1 /* error in gif header */
|
||||
#define E_MEMORIA 2 /* error allocating memory */
|
||||
|
||||
|
||||
class wxGIFDecoder
|
||||
class WXDLLEXPORT wxGIFDecoder
|
||||
{
|
||||
private:
|
||||
/* logical screen */
|
||||
@@ -117,6 +116,6 @@ public:
|
||||
};
|
||||
|
||||
|
||||
#endif // wxUSE_STREAM
|
||||
#endif // wxUSE_STREAM && wxUSE_GIF
|
||||
#endif // _WX_GIFDECOD_H
|
||||
|
||||
|
@@ -1,11 +1,7 @@
|
||||
#ifndef _WX_GRID_H_BASE_
|
||||
#define _WX_GRID_H_BASE_
|
||||
|
||||
#include "wx/generic/gridg.h"
|
||||
|
||||
#ifndef wxGrid
|
||||
#define wxGrid wxGenericGrid
|
||||
#endif
|
||||
#include "wx/generic/grid.h"
|
||||
|
||||
#endif
|
||||
// _WX_GRID_H_BASE_
|
||||
|
@@ -8,15 +8,17 @@
|
||||
#ifndef __GSOCKET_H
|
||||
#define __GSOCKET_H
|
||||
|
||||
#ifndef __GSOCKET_STANDALONE__
|
||||
#include "wx/setup.h"
|
||||
#endif
|
||||
|
||||
#if wxUSE_SOCKETS
|
||||
#if wxUSE_SOCKETS || defined(__GSOCKET_STANDALONE__)
|
||||
|
||||
#include <stddef.h>
|
||||
#include <sys/types.h>
|
||||
|
||||
#if !defined(__cplusplus)
|
||||
typedef int bool;
|
||||
typedef unsigned int bool;
|
||||
#endif
|
||||
|
||||
#ifndef TRUE
|
||||
@@ -27,6 +29,11 @@ typedef int bool;
|
||||
#define FALSE 0
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef struct _GSocket GSocket;
|
||||
typedef struct _GAddress GAddress;
|
||||
|
||||
@@ -51,7 +58,7 @@ typedef enum {
|
||||
GSOCK_NOHOST,
|
||||
GSOCK_INVPORT,
|
||||
GSOCK_WOULDBLOCK,
|
||||
GSOCK_TIMEOUT,
|
||||
GSOCK_TIMEDOUT,
|
||||
GSOCK_MEMERR
|
||||
} GSocketError;
|
||||
|
||||
@@ -75,11 +82,8 @@ typedef int GSocketEventFlags;
|
||||
typedef void (*GSocketCallback)(GSocket *socket, GSocketEvent event,
|
||||
char *cdata);
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/* Global initialisers */
|
||||
/* Global initializers */
|
||||
|
||||
/* GSocket_Init() must be called at the beginning */
|
||||
bool GSocket_Init();
|
||||
@@ -91,7 +95,7 @@ void GSocket_Cleanup();
|
||||
GSocket *GSocket_new();
|
||||
void GSocket_destroy(GSocket *socket);
|
||||
|
||||
/* This will disable all IO calls to this socket but errors are still available */
|
||||
/* This will disable all further IO calls to this socket */
|
||||
void GSocket_Shutdown(GSocket *socket);
|
||||
|
||||
/* Address handling */
|
||||
@@ -107,88 +111,107 @@ GSocketError GSocket_SetNonOriented(GSocket *socket);
|
||||
|
||||
/* Server specific parts */
|
||||
|
||||
/*
|
||||
GSocket_SetServer() setups the socket as a server. It uses the "Local" field
|
||||
of GSocket. "Local" must be set by GSocket_SetLocal() before
|
||||
GSocket_SetServer() is called. In the other case, it returns GSOCK_INVADDR.
|
||||
*/
|
||||
/* GSocket_SetServer:
|
||||
* Sets up the socket as a server. It uses the "Local" field of GSocket.
|
||||
* "Local" must be set by GSocket_SetLocal() before GSocket_SetServer()
|
||||
* is called. Possible error codes are: GSOCK_INVSOCK if socket has not
|
||||
* been initialized, GSOCK_INVADDR if the local address has not been
|
||||
* defined and GSOCK_IOERR for other internal errors.
|
||||
*/
|
||||
GSocketError GSocket_SetServer(GSocket *socket);
|
||||
|
||||
/*
|
||||
GSocket_WaitConnection() waits for an incoming client connection.
|
||||
*/
|
||||
/* GSocket_WaitConnection:
|
||||
* Waits for an incoming client connection.
|
||||
*/
|
||||
GSocket *GSocket_WaitConnection(GSocket *socket);
|
||||
|
||||
/* Client specific parts */
|
||||
|
||||
/*
|
||||
GSocket_Connect() establishes a client connection to a server using the "Peer"
|
||||
field of GSocket. "Peer" must be set by GSocket_SetPeer() before
|
||||
GSocket_Connect() is called. In the other case, it returns GSOCK_INVADDR.
|
||||
*/
|
||||
/* GSocket_Connect:
|
||||
* Establishes a client connection to a server using the "Peer"
|
||||
* field of GSocket. "Peer" must be set by GSocket_SetPeer() before
|
||||
* GSocket_Connect() is called. Possible error codes are GSOCK_INVSOCK,
|
||||
* GSOCK_INVADDR, GSOCK_TIMEDOUT, GSOCK_WOULDBLOCK and GSOCK_IOERR.
|
||||
* If a socket is nonblocking and Connect() returns GSOCK_WOULDBLOCK,
|
||||
* the connection request can be completed later. Use GSocket_Select()
|
||||
* to check it, or wait for a GSOCK_CONNECTION event.
|
||||
*/
|
||||
GSocketError GSocket_Connect(GSocket *socket, GSocketStream stream);
|
||||
|
||||
/* Generic IO */
|
||||
|
||||
/* Like recv(), send(), ... */
|
||||
/*
|
||||
NOTE: In case we read from a non-oriented connection, the incoming (outgoing)
|
||||
connection address is stored in the "Local" ("Peer") field.
|
||||
*/
|
||||
|
||||
/* NOTE: In case we read from a non-oriented connection, the incoming
|
||||
* (outgoing) connection address is stored in the "Local" ("Peer")
|
||||
* field.
|
||||
*/
|
||||
int GSocket_Read(GSocket *socket, char *buffer, int size);
|
||||
int GSocket_Write(GSocket *socket, const char *buffer,
|
||||
int size);
|
||||
bool GSocket_DataAvailable(GSocket *socket);
|
||||
|
||||
/* GSocket_Select:
|
||||
* Polls the socket to determine its status. This function will
|
||||
* check for the events specified in the 'flags' parameter, and
|
||||
* it will return a mask indicating which operations can be
|
||||
* performed. This function won't block, regardless of the
|
||||
* mode (blocking|nonblocking) of the socket.
|
||||
*/
|
||||
GSocketEventFlags GSocket_Select(GSocket *socket, GSocketEventFlags flags);
|
||||
|
||||
/* Flags/Parameters */
|
||||
|
||||
/*
|
||||
GSocket_SetTimeout() sets the timeout for reading and writing IO call. Time
|
||||
is expressed in milliseconds.
|
||||
/* GSocket_SetTimeout:
|
||||
* Sets the timeout for blocking calls. Time is
|
||||
* expressed in milliseconds.
|
||||
*/
|
||||
void GSocket_SetTimeout(GSocket *socket, unsigned long millisec);
|
||||
|
||||
/*
|
||||
GSocket_SetBlocking() puts the socket in non-blocking mode. This is useful
|
||||
if we don't want to wait.
|
||||
*/
|
||||
/* GSocket_SetNonBlocking:
|
||||
* Sets the socket to non-blocking mode. This is useful if
|
||||
* we don't want to wait.
|
||||
*/
|
||||
void GSocket_SetNonBlocking(GSocket *socket, bool non_block);
|
||||
|
||||
/*
|
||||
GSocket_GetError() returns the last error occured on the socket stream.
|
||||
*/
|
||||
|
||||
/* GSocket_GetError:
|
||||
* Returns the last error occured for this socket.
|
||||
*/
|
||||
GSocketError GSocket_GetError(GSocket *socket);
|
||||
|
||||
/* Callbacks */
|
||||
|
||||
/*
|
||||
Only one fallback is possible for each event (INPUT, OUTPUT, CONNECTION, LOST)
|
||||
INPUT: The function is called when there is at least a byte in the
|
||||
input buffer
|
||||
OUTPUT: The function is called when the system is sure the next write call
|
||||
will not block
|
||||
CONNECTION: Two cases is possible:
|
||||
Client socket -> the connection is established
|
||||
Server socket -> a client request a connection
|
||||
LOST: the connection is lost
|
||||
/* Only one callback is possible for each event (INPUT, OUTPUT, CONNECTION
|
||||
* and LOST). The callbacks are called in the following situations:
|
||||
*
|
||||
* INPUT: There is at least one byte in the input buffer
|
||||
* OUTPUT: The system is sure that the next write call will not block
|
||||
* CONNECTION: Two cases are possible:
|
||||
* Client socket -> the connection is established
|
||||
* Server socket -> a client requests a connection
|
||||
* LOST: The connection is lost
|
||||
*
|
||||
* An event is generated only once and its state is reseted when the
|
||||
* relative IO call is requested.
|
||||
* For example: INPUT -> GSocket_Read()
|
||||
* CONNECTION -> GSocket_Accept()
|
||||
*/
|
||||
|
||||
SetCallback accepts a combination of these flags so a same callback can
|
||||
receive different events.
|
||||
|
||||
An event is generated only once and its state is reseted when the relative
|
||||
IO call is requested.
|
||||
For example: INPUT -> GSocket_Read()
|
||||
CONNECTION -> GSocket_Accept()
|
||||
*/
|
||||
void GSocket_SetCallback(GSocket *socket, GSocketEventFlags event,
|
||||
/* GSocket_SetCallback:
|
||||
* Enables the callbacks specified by 'flags'. Note that 'flags'
|
||||
* may be a combination of flags OR'ed toghether, so the same
|
||||
* callback function can be made to accept different events.
|
||||
* The callback function must have the following prototype:
|
||||
*
|
||||
* void function(GSocket *socket, GSocketEvent event, char *cdata)
|
||||
*/
|
||||
void GSocket_SetCallback(GSocket *socket, GSocketEventFlags flags,
|
||||
GSocketCallback fallback, char *cdata);
|
||||
|
||||
/*
|
||||
UnsetCallback will disables all fallbacks specified by "event".
|
||||
NOTE: event may be a combination of flags
|
||||
*/
|
||||
void GSocket_UnsetCallback(GSocket *socket, GSocketEventFlags event);
|
||||
/* GSocket_UnsetCallback:
|
||||
* Disables all callbacks specified by 'flags', which may be a
|
||||
* combination of flags OR'ed toghether.
|
||||
*/
|
||||
void GSocket_UnsetCallback(GSocket *socket, GSocketEventFlags flags);
|
||||
|
||||
/* GAddress */
|
||||
|
||||
@@ -199,11 +222,10 @@ void GAddress_destroy(GAddress *address);
|
||||
void GAddress_SetFamily(GAddress *address, GAddressType type);
|
||||
GAddressType GAddress_GetFamily(GAddress *address);
|
||||
|
||||
/*
|
||||
The use of any of the next functions will set the address family to the adapted
|
||||
one. For example if you use GAddress_INET_SetHostName, address family will be AF_INET
|
||||
implicitely
|
||||
*/
|
||||
/* The use of any of the next functions will set the address family to
|
||||
* the specific one. For example if you use GAddress_INET_SetHostName,
|
||||
* address family will be implicitly set to AF_INET.
|
||||
*/
|
||||
|
||||
GSocketError GAddress_INET_SetHostName(GAddress *address, const char *hostname);
|
||||
GSocketError GAddress_INET_SetHostAddress(GAddress *address,
|
||||
@@ -222,23 +244,11 @@ unsigned short GAddress_INET_GetPort(GAddress *address);
|
||||
GSocketError GAddress_UNIX_SetPath(GAddress *address, const char *path);
|
||||
GSocketError GAddress_UNIX_GetPath(GAddress *address, char *path, size_t sbuf);
|
||||
|
||||
/*
|
||||
* System specific functions
|
||||
*/
|
||||
|
||||
/* On systems needing an event id */
|
||||
void GSocket_SetEventID(GSocket *socket, unsigned long evt_id);
|
||||
|
||||
/* On systems which don't have background refresh */
|
||||
void GSocket_DoEvent(unsigned long evt_id);
|
||||
|
||||
#ifdef __cplusplus
|
||||
};
|
||||
#endif /* __cplusplus */
|
||||
|
||||
|
||||
#endif
|
||||
/* wxUSE_SOCKETS */
|
||||
#endif /* wxUSE_SOCKETS || defined(__GSOCKET_STANDALONE__) */
|
||||
|
||||
#endif
|
||||
/* __GSOCKET_H */
|
||||
#endif /* __GSOCKET_H */
|
||||
|
@@ -56,8 +56,7 @@ extern wxAcceleratorTable wxNullAcceleratorTable;
|
||||
|
||||
class wxAcceleratorEntry: public wxObject
|
||||
{
|
||||
public:
|
||||
|
||||
public:
|
||||
wxAcceleratorEntry(int flags = 0, int keyCode = 0, int cmd = 0)
|
||||
{ m_flags = flags; m_keyCode = keyCode; m_command = cmd; }
|
||||
|
||||
|
@@ -80,6 +80,7 @@ private:
|
||||
/// Set to TRUE while we are in wxYield().
|
||||
bool m_suppressIdleEvents;
|
||||
|
||||
private:
|
||||
DECLARE_DYNAMIC_CLASS(wxApp)
|
||||
DECLARE_EVENT_TABLE()
|
||||
};
|
||||
|
@@ -43,56 +43,57 @@ extern const wxChar *wxButtonNameStr;
|
||||
|
||||
class wxBitmapButton: public wxButton
|
||||
{
|
||||
DECLARE_DYNAMIC_CLASS(wxBitmapButton)
|
||||
|
||||
public:
|
||||
wxBitmapButton();
|
||||
inline wxBitmapButton( wxWindow *parent, wxWindowID id, const wxBitmap& bitmap,
|
||||
wxBitmapButton();
|
||||
inline wxBitmapButton( wxWindow *parent, wxWindowID id, const wxBitmap& bitmap,
|
||||
const wxPoint& pos = wxDefaultPosition,
|
||||
const wxSize& size = wxDefaultSize, long style = wxBU_AUTODRAW,
|
||||
const wxValidator& validator = wxDefaultValidator,
|
||||
const wxString& name = wxButtonNameStr )
|
||||
{
|
||||
Create(parent, id, bitmap, pos, size, style, validator, name);
|
||||
}
|
||||
bool Create( wxWindow *parent, wxWindowID id, const wxBitmap& bitmap,
|
||||
{
|
||||
Create(parent, id, bitmap, pos, size, style, validator, name);
|
||||
}
|
||||
bool Create( wxWindow *parent, wxWindowID id, const wxBitmap& bitmap,
|
||||
const wxPoint& pos = wxDefaultPosition,
|
||||
const wxSize& size = wxDefaultSize, long style = wxBU_AUTODRAW,
|
||||
const wxValidator& validator = wxDefaultValidator,
|
||||
const wxString& name = wxButtonNameStr);
|
||||
virtual void SetDefault();
|
||||
virtual void SetDefault();
|
||||
|
||||
void SetLabel( const wxString &label );
|
||||
wxString GetLabel() const;
|
||||
virtual void SetLabel( const wxBitmap& bitmap ) { SetBitmapLabel(bitmap); }
|
||||
void SetLabel( const wxString &label );
|
||||
wxString GetLabel() const;
|
||||
virtual void SetLabel( const wxBitmap& bitmap ) { SetBitmapLabel(bitmap); }
|
||||
|
||||
wxBitmap& GetBitmapDisabled() const { return (wxBitmap&) m_disabled; }
|
||||
wxBitmap& GetBitmapFocus() const { return (wxBitmap&) m_focus; }
|
||||
wxBitmap& GetBitmapLabel() const { return (wxBitmap&) m_bitmap; }
|
||||
wxBitmap& GetBitmapSelected() const { return (wxBitmap&) m_selected; }
|
||||
wxBitmap& GetBitmapDisabled() const { return (wxBitmap&) m_disabled; }
|
||||
wxBitmap& GetBitmapFocus() const { return (wxBitmap&) m_focus; }
|
||||
wxBitmap& GetBitmapLabel() const { return (wxBitmap&) m_bitmap; }
|
||||
wxBitmap& GetBitmapSelected() const { return (wxBitmap&) m_selected; }
|
||||
|
||||
void SetBitmapDisabled( const wxBitmap& bitmap );
|
||||
void SetBitmapFocus( const wxBitmap& bitmap );
|
||||
void SetBitmapLabel( const wxBitmap& bitmap );
|
||||
void SetBitmapSelected( const wxBitmap& bitmap );
|
||||
void SetBitmapDisabled( const wxBitmap& bitmap );
|
||||
void SetBitmapFocus( const wxBitmap& bitmap );
|
||||
void SetBitmapLabel( const wxBitmap& bitmap );
|
||||
void SetBitmapSelected( const wxBitmap& bitmap );
|
||||
|
||||
virtual bool Enable(bool enable);
|
||||
virtual bool Enable(bool enable);
|
||||
|
||||
// implementation
|
||||
|
||||
void HasFocus();
|
||||
void NotFocus();
|
||||
void StartSelect();
|
||||
void EndSelect();
|
||||
void SetBitmap();
|
||||
void ApplyWidgetStyle();
|
||||
void HasFocus();
|
||||
void NotFocus();
|
||||
void StartSelect();
|
||||
void EndSelect();
|
||||
void SetBitmap();
|
||||
void ApplyWidgetStyle();
|
||||
|
||||
bool m_hasFocus;
|
||||
bool m_isSelected;
|
||||
wxBitmap m_bitmap;
|
||||
wxBitmap m_disabled;
|
||||
wxBitmap m_focus;
|
||||
wxBitmap m_selected;
|
||||
bool m_hasFocus;
|
||||
bool m_isSelected;
|
||||
wxBitmap m_bitmap;
|
||||
wxBitmap m_disabled;
|
||||
wxBitmap m_focus;
|
||||
wxBitmap m_selected;
|
||||
|
||||
private:
|
||||
DECLARE_DYNAMIC_CLASS(wxBitmapButton)
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@@ -33,10 +33,7 @@ class wxBrush;
|
||||
|
||||
class wxBrush: public wxGDIObject
|
||||
{
|
||||
DECLARE_DYNAMIC_CLASS(wxBrush)
|
||||
|
||||
public:
|
||||
|
||||
public:
|
||||
wxBrush();
|
||||
wxBrush( const wxColour &colour, int style );
|
||||
wxBrush( const wxBitmap &stippleBitmap );
|
||||
@@ -58,7 +55,8 @@ class wxBrush: public wxGDIObject
|
||||
|
||||
void Unshare();
|
||||
|
||||
// no data :-)
|
||||
private:
|
||||
DECLARE_DYNAMIC_CLASS(wxBrush)
|
||||
};
|
||||
|
||||
#endif // __GTKBRUSHH__
|
||||
|
@@ -7,7 +7,6 @@
|
||||
// Licence: wxWindows licence
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
#ifndef __GTKBUTTONH__
|
||||
#define __GTKBUTTONH__
|
||||
|
||||
@@ -38,10 +37,7 @@ extern const wxChar *wxButtonNameStr;
|
||||
|
||||
class wxButton: public wxControl
|
||||
{
|
||||
DECLARE_DYNAMIC_CLASS(wxButton)
|
||||
|
||||
public:
|
||||
|
||||
public:
|
||||
wxButton();
|
||||
inline wxButton(wxWindow *parent, wxWindowID id, const wxString& label,
|
||||
const wxPoint& pos = wxDefaultPosition,
|
||||
@@ -66,6 +62,9 @@ class wxButton: public wxControl
|
||||
// implementation
|
||||
|
||||
void ApplyWidgetStyle();
|
||||
|
||||
private:
|
||||
DECLARE_DYNAMIC_CLASS(wxButton)
|
||||
};
|
||||
|
||||
#endif // __GTKBUTTONH__
|
||||
|
@@ -7,7 +7,6 @@
|
||||
// Licence: wxWindows licence
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
#ifndef __GTKCHECKBOXH__
|
||||
#define __GTKCHECKBOXH__
|
||||
|
||||
@@ -41,8 +40,6 @@ extern const char *wxCheckBoxNameStr;
|
||||
|
||||
class wxCheckBox: public wxControl
|
||||
{
|
||||
DECLARE_DYNAMIC_CLASS(wxCheckBox)
|
||||
|
||||
public:
|
||||
wxCheckBox();
|
||||
wxCheckBox( wxWindow *parent, wxWindowID id, const wxString& label,
|
||||
@@ -73,6 +70,9 @@ public:
|
||||
|
||||
GtkWidget *m_widgetCheckbox;
|
||||
GtkWidget *m_widgetLabel;
|
||||
|
||||
private:
|
||||
DECLARE_DYNAMIC_CLASS(wxCheckBox)
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@@ -36,8 +36,6 @@ class wxCheckListBox;
|
||||
|
||||
class wxCheckListBox : public wxListBox
|
||||
{
|
||||
DECLARE_DYNAMIC_CLASS(wxCheckListBox)
|
||||
|
||||
public:
|
||||
wxCheckListBox();
|
||||
wxCheckListBox(wxWindow *parent, wxWindowID id,
|
||||
@@ -53,6 +51,9 @@ public:
|
||||
void Check( int index, bool check = TRUE );
|
||||
|
||||
int GetItemHeight() const;
|
||||
|
||||
private:
|
||||
DECLARE_DYNAMIC_CLASS(wxCheckListBox)
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@@ -38,8 +38,6 @@ extern const wxChar *wxChoiceNameStr;
|
||||
|
||||
class wxChoice : public wxControl
|
||||
{
|
||||
DECLARE_DYNAMIC_CLASS(wxChoice)
|
||||
|
||||
public:
|
||||
wxChoice();
|
||||
wxChoice( wxWindow *parent, wxWindowID id,
|
||||
@@ -97,6 +95,9 @@ public:
|
||||
void EnableEvents();
|
||||
void AppendCommon( const wxString &item );
|
||||
void ApplyWidgetStyle();
|
||||
|
||||
private:
|
||||
DECLARE_DYNAMIC_CLASS(wxChoice)
|
||||
};
|
||||
|
||||
|
||||
|
@@ -44,8 +44,6 @@ extern wxClipboard* wxTheClipboard;
|
||||
|
||||
class wxClipboard : public wxObject
|
||||
{
|
||||
DECLARE_DYNAMIC_CLASS(wxClipboard)
|
||||
|
||||
public:
|
||||
wxClipboard();
|
||||
~wxClipboard();
|
||||
@@ -91,6 +89,9 @@ public:
|
||||
GdkAtom m_targetRequested;
|
||||
bool m_usePrimary;
|
||||
wxDataObject *m_receivedData;
|
||||
|
||||
private:
|
||||
DECLARE_DYNAMIC_CLASS(wxClipboard)
|
||||
};
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
@@ -99,12 +100,13 @@ public:
|
||||
|
||||
class wxClipboardModule: public wxModule
|
||||
{
|
||||
DECLARE_DYNAMIC_CLASS(wxClipboardModule)
|
||||
|
||||
public:
|
||||
wxClipboardModule() {}
|
||||
bool OnInit();
|
||||
void OnExit();
|
||||
|
||||
private:
|
||||
DECLARE_DYNAMIC_CLASS(wxClipboardModule)
|
||||
};
|
||||
|
||||
#endif
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user