Compare commits
295 Commits
wxPython-2
...
wxPy-2-1-4
Author | SHA1 | Date | |
---|---|---|---|
|
c5691153e4 | ||
|
064f8bf6f8 | ||
|
74697a5713 | ||
|
e87d60c93b | ||
|
a181ac202f | ||
|
e685e57bbd | ||
|
13971833d8 | ||
|
8f17924e73 | ||
|
f0261a7246 | ||
|
91233253ec | ||
|
f85afd4e46 | ||
|
10434f3c24 | ||
|
e442cc0d9d | ||
|
704d25e2a3 | ||
|
f0a56ab0c3 | ||
|
f7a11f8c8e | ||
|
fe8aa971c4 | ||
|
a20cd16ca0 | ||
|
aee3892569 | ||
|
d6d2b6ae8f | ||
|
27476f7368 | ||
|
1bd1d102fd | ||
|
73974df1f9 | ||
|
e90c1d2a19 | ||
|
9841339c74 | ||
|
1d61ebaca1 | ||
|
5e0201eaa1 | ||
|
c5342938e2 | ||
|
5b95b795cc | ||
|
f19d58d551 | ||
|
302aa842e9 | ||
|
4658cb18f1 | ||
|
d443da9d54 | ||
|
9b94d7f91e | ||
|
ef3ab00998 | ||
|
a61ddc4715 | ||
|
d676ebcf25 | ||
|
d57bf68500 | ||
|
fa3e4baf13 | ||
|
9b7e522ae9 | ||
|
a439ecef10 | ||
|
f35c265988 | ||
|
b714136483 | ||
|
f036b31cde | ||
|
2131a664df | ||
|
275abf24e1 | ||
|
c756f74260 | ||
|
24df4c19d9 | ||
|
a0b4c98b8a | ||
|
1949cd9c5c | ||
|
4cd056a7c1 | ||
|
5fd11f0971 | ||
|
1c8515f9ab | ||
|
6782163029 | ||
|
69941f0586 | ||
|
47f631042b | ||
|
ad1fa80802 | ||
|
5c15428b75 | ||
|
25a37c8cb1 | ||
|
df9cbfc2bf | ||
|
e8b04eb349 | ||
|
f1415824cc | ||
|
ce44c50e9b | ||
|
def6fb9bd8 | ||
|
83b1f35395 | ||
|
7cc391bd39 | ||
|
09884325fc | ||
|
7a903311aa | ||
|
0661ec3993 | ||
|
ddc8c2e3ab | ||
|
e1811a014b | ||
|
93ccaed869 | ||
|
d391a34510 | ||
|
e1393d82b3 | ||
|
5427610e6b | ||
|
1ccd74daf9 | ||
|
b9b3ccd9ea | ||
|
f85d901fcb | ||
|
483249fc1a | ||
|
75d684d9f7 | ||
|
5bb0807e96 | ||
|
96db102a93 | ||
|
8dc9904630 | ||
|
37f6a9770c | ||
|
60edeacfb7 | ||
|
e918362128 | ||
|
2ebcd5f5fd | ||
|
5e014a0c44 | ||
|
a9221a9508 | ||
|
e0f83017f5 | ||
|
36e2955a64 | ||
|
76e1c2debf | ||
|
2f90df854e | ||
|
2348eaee20 | ||
|
74b31181b3 | ||
|
4f3ac40926 | ||
|
f0599ea919 | ||
|
0c5d3e1ccd | ||
|
7a3ac80489 | ||
|
ab20a9a95a | ||
|
a3a7f8791c | ||
|
fdb7dadb6e | ||
|
4a0253b82b | ||
|
a77aa9d600 | ||
|
1b9315eb77 | ||
|
51c0a521a9 | ||
|
866592d872 | ||
|
172d3acb55 | ||
|
556921dc4e | ||
|
ba7ce6a0b7 | ||
|
23e4b7d824 | ||
|
0ba1a6f33c | ||
|
17023320be | ||
|
4486e1be1f | ||
|
269e82009d | ||
|
d57eb7b9b3 | ||
|
b5a4a47df5 | ||
|
6e58e01afa | ||
|
86de7616de | ||
|
22aed133d8 | ||
|
dd85fc6b89 | ||
|
77cff60663 | ||
|
9c3d0b59c4 | ||
|
a14e57f9f7 | ||
|
45fcbf3b7a | ||
|
0c0d686fe5 | ||
|
76f78a96ce | ||
|
9cce9de16f | ||
|
10534c0bb1 | ||
|
26197023a7 | ||
|
b2bc50e4ca | ||
|
9dea50fc65 | ||
|
90a53a3aed | ||
|
572d746108 | ||
|
a4c970041c | ||
|
ae8f576913 | ||
|
964688d8ec | ||
|
60df2e7d97 | ||
|
6e31e94063 | ||
|
45c94d784d | ||
|
d2682f231a | ||
|
07d4b94c3b | ||
|
ec6e0a192c | ||
|
014b0d064e | ||
|
1fa609b166 | ||
|
0b862e2069 | ||
|
c8c0e54c70 | ||
|
284b4c8866 | ||
|
7d5af6fa6b | ||
|
077968ca5e | ||
|
5aeeab1454 | ||
|
086c94af90 | ||
|
5d47c8a0d2 | ||
|
186005466d | ||
|
eb254be6df | ||
|
a419c3b116 | ||
|
0616b8382d | ||
|
2d0294308d | ||
|
0190e1faf8 | ||
|
e166644c53 | ||
|
2819545569 | ||
|
77cd51c3de | ||
|
af2fd9613a | ||
|
236ef8a966 | ||
|
a3daed0276 | ||
|
9f6af110ff | ||
|
0b26605d52 | ||
|
7183e38bec | ||
|
1e2c86ca5c | ||
|
1e8abce5e8 | ||
|
9fea1a5d62 | ||
|
a6f989f3db | ||
|
7fb233050c | ||
|
93840b31b9 | ||
|
455fadaa6a | ||
|
503f414edd | ||
|
2e4f15693a | ||
|
0ce742cf09 | ||
|
7c235f0914 | ||
|
17aa2bec08 | ||
|
68317b6d3f | ||
|
7c395bf3a1 | ||
|
c21b68f7dd | ||
|
3ef01ce5e3 | ||
|
4c2d8a30f6 | ||
|
2d996ed1c4 | ||
|
6627a4b049 | ||
|
0045dee3f4 | ||
|
d04d2fb520 | ||
|
eaac466a40 | ||
|
a98404cd24 | ||
|
91f491639e | ||
|
761a9d2b1f | ||
|
a65c6e1446 | ||
|
0f66a9f39d | ||
|
5b626e7f84 | ||
|
ec3e670f9f | ||
|
d426c97e9a | ||
|
389c55270a | ||
|
18ba9da6b9 | ||
|
d098a3572c | ||
|
c23bbc11ea | ||
|
2e39ec8448 | ||
|
7cb86a4c28 | ||
|
5454a9276b | ||
|
6b5286d112 | ||
|
0940bcf7f5 | ||
|
a19fb96bd0 | ||
|
28468136d0 | ||
|
46c6b9c0ec | ||
|
b31ba28885 | ||
|
c596875e23 | ||
|
ca8a9e603a | ||
|
c399c2de41 | ||
|
ea9a4296a2 | ||
|
7682a175b6 | ||
|
066f302c6c | ||
|
2c738dd87a | ||
|
ebb206a33d | ||
|
1cf27c6349 | ||
|
bfa2e032ef | ||
|
b661e6759e | ||
|
2bbf461836 | ||
|
f42b1601d6 | ||
|
e6a5dc94a4 | ||
|
fcd4694c3e | ||
|
a0250ba3e5 | ||
|
a097c93d4f | ||
|
93c95e18f4 | ||
|
90bb2919de | ||
|
8ec2b48446 | ||
|
a0378c28b8 | ||
|
4c28d606dd | ||
|
2f7c2af547 | ||
|
83802b0bd9 | ||
|
fade627a81 | ||
|
e9e3e3abaf | ||
|
56d8adc0c0 | ||
|
ef25e6386d | ||
|
483c6690e9 | ||
|
1235650ffb | ||
|
b730516c98 | ||
|
e91a9dfcc3 | ||
|
1afc06c2d8 | ||
|
922dc97681 | ||
|
3ab72185cb | ||
|
d559219f40 | ||
|
228b910aea | ||
|
9ab6ee851e | ||
|
2b98cb1f84 | ||
|
83b1bfaac9 | ||
|
83413d6d2d | ||
|
35809fe3d7 | ||
|
d80d1aba10 | ||
|
7be110e30d | ||
|
b9b32d5c4f | ||
|
6f349458f6 | ||
|
feeb816597 | ||
|
cb421e53cb | ||
|
a16d3c04d7 | ||
|
11235b74ce | ||
|
33bbfe4b23 | ||
|
0b1c443719 | ||
|
aa3981f2c6 | ||
|
2f85113366 | ||
|
b70ababc14 | ||
|
2618484fed | ||
|
881eba2c0d | ||
|
a9775f1f58 | ||
|
791b24c405 | ||
|
9bbd7ba3ea | ||
|
904ec517d3 | ||
|
2ef1f50a94 | ||
|
1a9469d7cb | ||
|
533c7161fc | ||
|
63dcfc151b | ||
|
fbb90f7f2b | ||
|
2f435842c5 | ||
|
24126cdde8 | ||
|
543f08a676 | ||
|
d87a962086 | ||
|
7e9a386e10 | ||
|
1044a386f0 | ||
|
ed75793627 | ||
|
aa6d970619 | ||
|
de3131e784 | ||
|
da4a658da4 | ||
|
aa8fb7a016 | ||
|
11d737b409 | ||
|
e951f847fa | ||
|
b387781ceb | ||
|
d84b1219a5 | ||
|
7a4b8f2770 | ||
|
765e386bfa | ||
|
da4b7ffc78 |
@@ -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
|
||||
|
167
Makefile.in
167
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 15:20, 1999/10/04
|
||||
# DO NOT CHANGE THIS FILE, YOUR CHANGES WILL BE LOST! CHANGE UNX.T!
|
||||
|
||||
#
|
||||
@@ -555,17 +555,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 \
|
||||
@@ -581,6 +583,7 @@ GTK_GENERICOBJS = \
|
||||
imaglist.o \
|
||||
laywin.o \
|
||||
listctrl.o \
|
||||
logg.o \
|
||||
msgdlgg.o \
|
||||
numdlgg.o \
|
||||
panelg.o \
|
||||
@@ -613,6 +616,7 @@ GTK_GENERICDEPS = \
|
||||
imaglist.d \
|
||||
laywin.d \
|
||||
listctrl.d \
|
||||
logg.d \
|
||||
msgdlgg.d \
|
||||
numdlgg.d \
|
||||
panelg.d \
|
||||
@@ -652,6 +656,7 @@ GTK_COMMONOBJS = \
|
||||
fileconf.o \
|
||||
filefn.o \
|
||||
filesys.o \
|
||||
fontcmn.o \
|
||||
framecmn.o \
|
||||
fs_inet.o \
|
||||
fs_zip.o \
|
||||
@@ -661,6 +666,7 @@ GTK_COMMONOBJS = \
|
||||
hash.o \
|
||||
helpbase.o \
|
||||
http.o \
|
||||
imagall.o \
|
||||
imagbmp.o \
|
||||
image.o \
|
||||
imaggif.o \
|
||||
@@ -688,6 +694,7 @@ GTK_COMMONOBJS = \
|
||||
sckfile.o \
|
||||
sckipc.o \
|
||||
sckstrm.o \
|
||||
serbase.o \
|
||||
sizer.o \
|
||||
socket.o \
|
||||
strconv.o \
|
||||
@@ -736,6 +743,7 @@ GTK_COMMONDEPS = \
|
||||
fileconf.d \
|
||||
filefn.d \
|
||||
filesys.d \
|
||||
fontcmn.d \
|
||||
framecmn.d \
|
||||
fs_inet.d \
|
||||
fs_zip.d \
|
||||
@@ -745,6 +753,7 @@ GTK_COMMONDEPS = \
|
||||
hash.d \
|
||||
helpbase.d \
|
||||
http.d \
|
||||
imagall.d \
|
||||
imagbmp.d \
|
||||
image.d \
|
||||
imaggif.d \
|
||||
@@ -772,6 +781,7 @@ GTK_COMMONDEPS = \
|
||||
sckfile.d \
|
||||
sckipc.d \
|
||||
sckstrm.d \
|
||||
serbase.d \
|
||||
sizer.d \
|
||||
socket.d \
|
||||
strconv.d \
|
||||
@@ -932,6 +942,7 @@ MOTIF_GENERICOBJS = \
|
||||
imaglist.o \
|
||||
laywin.o \
|
||||
listctrl.o \
|
||||
logg.o \
|
||||
msgdlgg.o \
|
||||
notebook.o \
|
||||
numdlgg.o \
|
||||
@@ -945,6 +956,7 @@ MOTIF_GENERICOBJS = \
|
||||
sashwin.o \
|
||||
scrolwin.o \
|
||||
splitter.o \
|
||||
statline.o \
|
||||
statusbr.o \
|
||||
tabg.o \
|
||||
textdlgg.o \
|
||||
@@ -967,6 +979,7 @@ MOTIF_GENERICDEPS = \
|
||||
imaglist.d \
|
||||
laywin.d \
|
||||
listctrl.d \
|
||||
logg.d \
|
||||
msgdlgg.d \
|
||||
notebook.d \
|
||||
numdlgg.d \
|
||||
@@ -980,6 +993,7 @@ MOTIF_GENERICDEPS = \
|
||||
sashwin.d \
|
||||
scrolwin.d \
|
||||
splitter.d \
|
||||
statline.d \
|
||||
statusbr.d \
|
||||
tabg.d \
|
||||
textdlgg.d \
|
||||
@@ -1010,6 +1024,7 @@ MOTIF_COMMONOBJS = \
|
||||
fileconf.o \
|
||||
filefn.o \
|
||||
filesys.o \
|
||||
fontcmn.o \
|
||||
framecmn.o \
|
||||
fs_inet.o \
|
||||
fs_zip.o \
|
||||
@@ -1019,6 +1034,7 @@ MOTIF_COMMONOBJS = \
|
||||
hash.o \
|
||||
helpbase.o \
|
||||
http.o \
|
||||
imagall.o \
|
||||
imagbmp.o \
|
||||
image.o \
|
||||
imaggif.o \
|
||||
@@ -1047,6 +1063,7 @@ MOTIF_COMMONOBJS = \
|
||||
sckfile.o \
|
||||
sckipc.o \
|
||||
sckstrm.o \
|
||||
serbase.o \
|
||||
sizer.o \
|
||||
socket.o \
|
||||
strconv.o \
|
||||
@@ -1097,6 +1114,7 @@ MOTIF_COMMONDEPS = \
|
||||
fileconf.d \
|
||||
filefn.d \
|
||||
filesys.d \
|
||||
fontcmn.d \
|
||||
framecmn.d \
|
||||
fs_inet.d \
|
||||
fs_zip.d \
|
||||
@@ -1106,6 +1124,7 @@ MOTIF_COMMONDEPS = \
|
||||
hash.d \
|
||||
helpbase.d \
|
||||
http.d \
|
||||
imagall.d \
|
||||
imagbmp.d \
|
||||
image.d \
|
||||
imaggif.d \
|
||||
@@ -1134,6 +1153,7 @@ MOTIF_COMMONDEPS = \
|
||||
sckfile.d \
|
||||
sckipc.d \
|
||||
sckstrm.d \
|
||||
serbase.d \
|
||||
sizer.d \
|
||||
socket.d \
|
||||
strconv.d \
|
||||
@@ -1170,6 +1190,7 @@ MOTIF_GUIOBJS = \
|
||||
brush.o \
|
||||
button.o \
|
||||
checkbox.o \
|
||||
checklst.o \
|
||||
choice.o \
|
||||
clipbrd.o \
|
||||
colour.o \
|
||||
@@ -1185,6 +1206,7 @@ MOTIF_GUIOBJS = \
|
||||
dialog.o \
|
||||
filedlg.o \
|
||||
font.o \
|
||||
fontenum.o \
|
||||
frame.o \
|
||||
gauge.o \
|
||||
gdiobj.o \
|
||||
@@ -1205,6 +1227,7 @@ MOTIF_GUIOBJS = \
|
||||
scrolbar.o \
|
||||
settings.o \
|
||||
slider.o \
|
||||
spinbutt.o \
|
||||
statbmp.o \
|
||||
statbox.o \
|
||||
stattext.o \
|
||||
@@ -1223,6 +1246,7 @@ MOTIF_GUIDEPS = \
|
||||
brush.d \
|
||||
button.d \
|
||||
checkbox.d \
|
||||
checklst.d \
|
||||
choice.d \
|
||||
clipbrd.d \
|
||||
colour.d \
|
||||
@@ -1238,6 +1262,7 @@ MOTIF_GUIDEPS = \
|
||||
dialog.d \
|
||||
filedlg.d \
|
||||
font.d \
|
||||
fontenum.d \
|
||||
frame.d \
|
||||
gauge.d \
|
||||
gdiobj.d \
|
||||
@@ -1258,6 +1283,7 @@ MOTIF_GUIDEPS = \
|
||||
scrolbar.d \
|
||||
settings.d \
|
||||
slider.d \
|
||||
spinbutt.d \
|
||||
statbmp.d \
|
||||
statbox.d \
|
||||
stattext.d \
|
||||
@@ -1273,6 +1299,7 @@ MSW_GENERICOBJS = \
|
||||
dirdlgg.o \
|
||||
gridg.o \
|
||||
laywin.o \
|
||||
logg.o \
|
||||
numdlgg.o \
|
||||
panelg.o \
|
||||
progdlgg.o \
|
||||
@@ -1294,6 +1321,7 @@ MSW_GENERICDEPS = \
|
||||
dirdlgg.d \
|
||||
gridg.d \
|
||||
laywin.d \
|
||||
logg.d \
|
||||
numdlgg.d \
|
||||
panelg.d \
|
||||
progdlgg.d \
|
||||
@@ -1332,6 +1360,7 @@ MSW_COMMONOBJS = \
|
||||
fileconf.o \
|
||||
filefn.o \
|
||||
filesys.o \
|
||||
fontcmn.o \
|
||||
framecmn.o \
|
||||
fs_inet.o \
|
||||
fs_zip.o \
|
||||
@@ -1341,6 +1370,7 @@ MSW_COMMONOBJS = \
|
||||
hash.o \
|
||||
helpbase.o \
|
||||
http.o \
|
||||
imagall.o \
|
||||
imagbmp.o \
|
||||
image.o \
|
||||
imaggif.o \
|
||||
@@ -1368,12 +1398,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 +1449,7 @@ MSW_COMMONDEPS = \
|
||||
fileconf.d \
|
||||
filefn.d \
|
||||
filesys.d \
|
||||
fontcmn.d \
|
||||
framecmn.d \
|
||||
fs_inet.d \
|
||||
fs_zip.d \
|
||||
@@ -1426,6 +1459,7 @@ MSW_COMMONDEPS = \
|
||||
hash.d \
|
||||
helpbase.d \
|
||||
http.d \
|
||||
imagall.d \
|
||||
imagbmp.d \
|
||||
image.d \
|
||||
imaggif.d \
|
||||
@@ -1453,12 +1487,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 +1550,7 @@ MSW_GUIOBJS = \
|
||||
frame.o \
|
||||
gauge95.o \
|
||||
gdiobj.o \
|
||||
gsocket.o \
|
||||
helpwin.o \
|
||||
icon.o \
|
||||
imaglist.o \
|
||||
@@ -1599,6 +1636,7 @@ MSW_GUIDEPS = \
|
||||
frame.d \
|
||||
gauge95.d \
|
||||
gdiobj.d \
|
||||
gsocket.d \
|
||||
helpwin.d \
|
||||
icon.d \
|
||||
imaglist.d \
|
||||
@@ -1650,49 +1688,53 @@ MSW_GUIDEPS = \
|
||||
xpmhand.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 = \
|
||||
dialup.o \
|
||||
gsocket.o \
|
||||
threadpsx.o \
|
||||
utilsunx.o
|
||||
|
||||
UNIXDEPS = \
|
||||
dialup.d \
|
||||
gsocket.d \
|
||||
threadpsx.d \
|
||||
utilsunx.d
|
||||
@@ -1779,16 +1821,55 @@ JPEGOBJS = \
|
||||
jquant2.o \
|
||||
jdmerge.o
|
||||
|
||||
BASE_OBJS = \
|
||||
dynarray.o \
|
||||
event.o \
|
||||
hash.o \
|
||||
intl.o \
|
||||
init.o \
|
||||
file.o \
|
||||
filefn.o \
|
||||
list.o \
|
||||
log.o \
|
||||
object.o \
|
||||
string.o \
|
||||
utilscmn.o \
|
||||
utilsunx.o
|
||||
|
||||
OBJECTS = $(@GUIOBJS@) $(@COMMONOBJS@) $(@GENERICOBJS@) $(@UNIXOBJS@) $(HTMLOBJS) \
|
||||
$(JPEGOBJS) $(PNGOBJS) $(ZLIBOBJS)
|
||||
BASE_DEPS = \
|
||||
dynarray.d \
|
||||
event.d \
|
||||
hash.d \
|
||||
intl.d \
|
||||
init.d \
|
||||
file.d \
|
||||
filefn.d \
|
||||
list.d \
|
||||
log.d \
|
||||
object.d \
|
||||
string.d \
|
||||
utilscmn.d \
|
||||
utilsunx.d
|
||||
|
||||
DEPFILES = $(@GUIDEPS@) $(@COMMONDEPS@) $(@GENERICDEPS@) $(UNIXDEPS) $(HTMLDEPS)
|
||||
BASE_HEADERS =
|
||||
|
||||
HEADERS = $(@GUIHEADERS@) $(HTML_HEADERS) $(UNIX_HEADERS) $(PROTOCOL_HEADERS) \
|
||||
$(GENERIC_HEADERS) $(WX_HEADERS)
|
||||
GUIOBJS = @GUIOBJS@
|
||||
GUIDEPS = @GUIDEPS@
|
||||
GUIHEADERS = @GUIHEADERS@
|
||||
COMMONOBJS = @COMMONOBJS@
|
||||
COMMONDEPS = @COMMONDEPS@
|
||||
GENERICOBJS = @GENERICOBJS@
|
||||
GENERICDEPS = @GENERICDEPS@
|
||||
UNIXOBJS = @UNIXOBJS@
|
||||
UNIXDEPS = @UNIXDEPS@
|
||||
|
||||
all: $(OBJECTS) @WX_TARGET_LIBRARY@ @WX_CREATE_LINKS@
|
||||
OBJECTS = @ALL_OBJECTS@
|
||||
|
||||
DEPFILES = @ALL_DEPFILES@
|
||||
|
||||
HEADERS = @ALL_HEADERS@
|
||||
|
||||
all: @WX_CREATE_LINKS@
|
||||
|
||||
@WX_LIBRARY_NAME_STATIC@: $(OBJECTS)
|
||||
@$(INSTALL) -d ./lib
|
||||
@@ -1799,7 +1880,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_TARGET_LIBRARY@
|
||||
@$(RM) ./lib/@WX_LIBRARY_LINK1@
|
||||
@$(RM) ./lib/@WX_LIBRARY_LINK2@
|
||||
@$(RM) ./lib/@WX_LIBRARY_LINK3@
|
||||
|
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**);
|
||||
|
||||
|
||||
|
||||
|
443
configure.in
443
configure.in
@@ -64,8 +64,8 @@ main ()
|
||||
if (gtk_minor_version == 1) return FALSE;
|
||||
|
||||
return !((gtk_major_version > major) ||
|
||||
((gtk_major_version == major) && (gtk_minor_version > minor)) ||
|
||||
((gtk_major_version == major) && (gtk_minor_version == minor) && (gtk_micro_version >= micro)));
|
||||
((gtk_major_version == major) && (gtk_minor_version > minor)) ||
|
||||
((gtk_major_version == major) && (gtk_minor_version == minor) && (gtk_micro_version >= micro)));
|
||||
}
|
||||
],, no_gtk=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
|
||||
CFLAGS="$ac_save_CFLAGS"
|
||||
@@ -661,7 +661,6 @@ if test $DEBUG_CONFIGURE = 1; then
|
||||
|
||||
DEFAULT_wxUSE_ZLIB=no
|
||||
DEFAULT_wxUSE_LIBPNG=no
|
||||
DEFAULT_wxUSE_LIBGIF=no
|
||||
DEFAULT_wxUSE_LIBJPEG=no
|
||||
DEFAULT_wxUSE_ODBC=no
|
||||
|
||||
@@ -674,6 +673,7 @@ if test $DEBUG_CONFIGURE = 1; then
|
||||
DEFAULT_wxUSE_CONFIG=no
|
||||
DEFAULT_wxUSE_STREAMS=no
|
||||
DEFAULT_wxUSE_SOCKETS=no
|
||||
DEFAULT_wxUSE_DIALUP_MANAGER=no
|
||||
DEFAULT_wxUSE_SERIAL=no
|
||||
DEFAULT_wxUSE_JOYSTICK=no
|
||||
DEFAULT_wxUSE_DYNLIB_CLASS=no
|
||||
@@ -744,6 +744,10 @@ if test $DEBUG_CONFIGURE = 1; then
|
||||
|
||||
DEFAULT_wxUSE_UNICODE=no
|
||||
DEFAULT_wxUSE_WCSRTOMBS=no
|
||||
|
||||
DEFAULT_wxUSE_GIF=no
|
||||
DEFAULT_wxUSE_PCX=no
|
||||
DEFAULT_wxUSE_PNM=no
|
||||
else
|
||||
DEFAULT_wxUSE_THREADS=yes
|
||||
|
||||
@@ -768,7 +772,6 @@ else
|
||||
|
||||
DEFAULT_wxUSE_ZLIB=yes
|
||||
DEFAULT_wxUSE_LIBPNG=yes
|
||||
DEFAULT_wxUSE_LIBGIF=yes
|
||||
DEFAULT_wxUSE_LIBJPEG=yes
|
||||
DEFAULT_wxUSE_ODBC=no
|
||||
|
||||
@@ -781,6 +784,7 @@ else
|
||||
DEFAULT_wxUSE_CONFIG=yes
|
||||
DEFAULT_wxUSE_STREAMS=yes
|
||||
DEFAULT_wxUSE_SOCKETS=yes
|
||||
DEFAULT_wxUSE_DIALUP_MANAGER=yes
|
||||
DEFAULT_wxUSE_SERIAL=yes
|
||||
DEFAULT_wxUSE_JOYSTICK=yes
|
||||
DEFAULT_wxUSE_DYNLIB_CLASS=yes
|
||||
@@ -851,6 +855,10 @@ else
|
||||
|
||||
DEFAULT_wxUSE_UNICODE=no
|
||||
DEFAULT_wxUSE_WCSRTOMBS=no
|
||||
|
||||
DEFAULT_wxUSE_GIF=yes
|
||||
DEFAULT_wxUSE_PCX=yes
|
||||
DEFAULT_wxUSE_PNM=yes
|
||||
fi
|
||||
|
||||
dnl WX_ARG_WITH should be used to select whether an external package will be
|
||||
@@ -872,6 +880,85 @@ for toolkit in `echo $ALL_TOOLKITS`; do
|
||||
fi
|
||||
done
|
||||
|
||||
dnl ---------------------------------------------------------------------------
|
||||
dnl --disable-gui will build only non-GUI part of wxWindows: check for this
|
||||
dnl first to disable many other switches if it's given
|
||||
dnl
|
||||
dnl NB: this is still in testing stage, don't use if you don't know what you're
|
||||
dnl doing
|
||||
dnl ---------------------------------------------------------------------------
|
||||
|
||||
WX_ARG_ENABLE(gui, [ --enable-gui use GUI classes], wxUSE_GUI)
|
||||
|
||||
dnl disable everything GUI related then
|
||||
if test "$wxUSE_GUI" = "no"; then
|
||||
DEFAULT_wxUSE_ZLIB=no
|
||||
DEFAULT_wxUSE_LIBPNG=no
|
||||
DEFAULT_wxUSE_LIBJPEG=no
|
||||
DEFAULT_wxUSE_SOCKETS=no
|
||||
DEFAULT_wxUSE_JOYSTICK=no
|
||||
DEFAULT_wxUSE_AFM_FOR_POSTSCRIPT=no
|
||||
DEFAULT_wxUSE_NORMALIZED_PS_FONTS=no
|
||||
DEFAULT_wxUSE_POSTSCRIPT=no
|
||||
DEFAULT_wxUSE_X_RESOURCES=no
|
||||
DEFAULT_wxUSE_CLIPBOARD=no
|
||||
DEFAULT_wxUSE_TOOLTIPS=no
|
||||
DEFAULT_wxUSE_DRAG_AND_DROP=no
|
||||
DEFAULT_wxUSE_SPLINES=no
|
||||
DEFAULT_wxUSE_MDI_ARCHITECTURE=no
|
||||
DEFAULT_wxUSE_DOC_VIEW_ARCHITECTURE=no
|
||||
DEFAULT_wxUSE_PRINTING_ARCHITECTURE=no
|
||||
DEFAULT_wxUSE_PROLOGIO=no
|
||||
DEFAULT_wxUSE_RESOURCES=no
|
||||
DEFAULT_wxUSE_CONSTRAINTS=no
|
||||
DEFAULT_wxUSE_IPC=no
|
||||
DEFAULT_wxUSE_HELP=no
|
||||
DEFAULT_wxUSE_WXTREE=no
|
||||
DEFAULT_wxUSE_METAFILE=no
|
||||
DEFAULT_wxUSE_COMMONDLGS=no
|
||||
DEFAULT_wxUSE_DIRDLG=no
|
||||
DEFAULT_wxUSE_TEXTDLG=no
|
||||
DEFAULT_wxUSE_STARTUP_TIPS=no
|
||||
DEFAULT_wxUSE_PROGRESSDLG=no
|
||||
DEFAULT_wxUSE_MINIFRAME=no
|
||||
DEFAULT_wxUSE_HTML=no
|
||||
DEFAULT_wxUSE_FS_INET=no
|
||||
DEFAULT_wxUSE_FS_ZIP=no
|
||||
DEFAULT_wxUSE_BUSYINFO=no
|
||||
DEFAULT_wxUSE_ZIPSTREAM=no
|
||||
DEFAULT_wxUSE_VALIDATORS=yes
|
||||
DEFAULT_wxUSE_ACCEL=no
|
||||
DEFAULT_wxUSE_CARET=no
|
||||
DEFAULT_wxUSE_BMPBUTTON=no
|
||||
DEFAULT_wxUSE_CHECKBOX=no
|
||||
DEFAULT_wxUSE_CHECKLST=no
|
||||
DEFAULT_wxUSE_CHOICE=yes
|
||||
DEFAULT_wxUSE_COMBOBOX=no
|
||||
DEFAULT_wxUSE_GAUGE=no
|
||||
DEFAULT_wxUSE_GRID=no
|
||||
DEFAULT_wxUSE_IMAGLIST=no
|
||||
DEFAULT_wxUSE_LISTBOX=no
|
||||
DEFAULT_wxUSE_LISTCTRL=no
|
||||
DEFAULT_wxUSE_NOTEBOOK=no
|
||||
DEFAULT_wxUSE_RADIOBOX=no
|
||||
DEFAULT_wxUSE_RADIOBTN=no
|
||||
DEFAULT_wxUSE_SASH=no
|
||||
DEFAULT_wxUSE_SCROLLBAR=no
|
||||
DEFAULT_wxUSE_SLIDER=no
|
||||
DEFAULT_wxUSE_SPINBTN=no
|
||||
DEFAULT_wxUSE_SPLITTER=no
|
||||
DEFAULT_wxUSE_STATBMP=no
|
||||
DEFAULT_wxUSE_STATBOX=no
|
||||
DEFAULT_wxUSE_STATLINE=no
|
||||
DEFAULT_wxUSE_STATUSBAR=yes
|
||||
DEFAULT_wxUSE_TABDIALOG=no
|
||||
DEFAULT_wxUSE_TOOLBAR=no
|
||||
DEFAULT_wxUSE_TREECTRL=no
|
||||
DEFAULT_wxUSE_GIF=no
|
||||
DEFAULT_wxUSE_PCX=no
|
||||
DEFAULT_wxUSE_PNM=no
|
||||
fi
|
||||
|
||||
AC_ARG_WITH(gtk, [ --with-gtk use GTK+], [wxUSE_GTK="$withval" CACHE_GTK=1 TOOLKIT_GIVEN=1])
|
||||
AC_ARG_WITH(motif, [ --with-motif use Motif/Lesstif], [wxUSE_MOTIF="$withval" CACHE_MOTIF=1 TOOLKIT_GIVEN=1])
|
||||
AC_ARG_WITH(wine, [ --with-wine use WINE], [wxUSE_WINE="$withval" CACHE_WINE=1 TOOLKIT_GIVEN=1])
|
||||
@@ -886,7 +973,6 @@ AC_ARG_WITH(gtk-exec-prefix, [ --with-gtk-exec-prefix=PFX Exec prefix where GT
|
||||
WX_ARG_WITH(dmalloc, [ --with-dmalloc use dmalloc library (www.letters.com/dmalloc)], wxUSE_DMALLOC)
|
||||
WX_ARG_WITH(zlib, [ --with-zlib use zlib for LZW compression], wxUSE_ZLIB)
|
||||
WX_ARG_WITH(libpng, [ --with-libpng use libpng (PNG image format)], wxUSE_LIBPNG)
|
||||
WX_ARG_WITH(libgif, [ --with-libgif use libgif (GIF file format)], wxUSE_LIBGIF)
|
||||
WX_ARG_WITH(libjpeg, [ --with-libjpeg use libjpeg (JPEG file format)], wxUSE_LIBJPEG)
|
||||
WX_ARG_WITH(opengl, [ --with-opengl use OpenGL (or Mesa)], wxUSE_OPENGL)
|
||||
WX_ARG_WITH(odbc, [ --with-odbc use the IODBC and wxODBC classes], wxUSE_ODBC)
|
||||
@@ -922,15 +1008,6 @@ WX_ARG_ENABLE(no_exceptions, [ --enable-no_exceptions create code without exce
|
||||
WX_ARG_ENABLE(permissive, [ --enable-permissive compile code disregarding strict ANSI], wxUSE_PERMISSIVE)
|
||||
WX_ARG_ENABLE(no_deps, [ --enable-no_deps create code without dependency information], wxUSE_NO_DEPS)
|
||||
|
||||
dnl ---------------------------------------------------------------------------
|
||||
dnl --disable-gui will build only non-GUI part of wxWindows
|
||||
dnl
|
||||
dnl NB: this is still in testing stage, don't use if you don't know what you're
|
||||
dnl doing
|
||||
dnl ---------------------------------------------------------------------------
|
||||
|
||||
WX_ARG_ENABLE(gui, [ --enable-gui use GUI classes], wxUSE_GUI)
|
||||
|
||||
dnl ---------------------------------------------------------------------------
|
||||
dnl (small) optional non GUI classes
|
||||
dnl ---------------------------------------------------------------------------
|
||||
@@ -938,6 +1015,7 @@ dnl ---------------------------------------------------------------------------
|
||||
WX_ARG_ENABLE(intl, [ --enable-intl use internationalization system], wxUSE_INTL)
|
||||
WX_ARG_ENABLE(config, [ --enable-config use wxConfig (and derived) classes], wxUSE_CONFIG)
|
||||
WX_ARG_ENABLE(sockets, [ --enable-sockets use socket/network classes], wxUSE_SOCKETS)
|
||||
WX_ARG_ENABLE(dialupman, [ --enable-dialupman use dialup network classes], wxUSE_DIALUP_MANAGER)
|
||||
WX_ARG_ENABLE(ipc, [ --enable-ipc use interprocess communication (wxSocket etc.)], wxUSE_IPC)
|
||||
WX_ARG_ENABLE(apple_ieee, [ --enable-apple_ieee use the Apple IEEE codec], wxUSE_APPLE_IEEE)
|
||||
WX_ARG_ENABLE(timedate, [ --enable-timedate use date/time classes], wxUSE_TIMEDATE)
|
||||
@@ -1115,6 +1193,14 @@ WX_ARG_ENABLE(splines, [ --enable-splines use spline drawing code],
|
||||
WX_ARG_ENABLE(validators, [ --enable-validators use wxValidator and derived classes], wxUSE_VALIDATORS)
|
||||
WX_ARG_ENABLE(busyinfo, [ --enable-busyinfo use wxBusyInfo], wxUSE_BUSYINFO)
|
||||
|
||||
dnl ---------------------------------------------------------------------------
|
||||
dnl support for image formats that do not rely on external library
|
||||
dnl ---------------------------------------------------------------------------
|
||||
|
||||
WX_ARG_ENABLE(gif, [ --enable-gif use gif images (GIF file format)], wxUSE_GIF)
|
||||
WX_ARG_ENABLE(pcx, [ --enable-pcx use pcx images (PCX file format)], wxUSE_PCX)
|
||||
WX_ARG_ENABLE(pnm, [ --enable-pnm use pnm images (PNM file format)], wxUSE_PNM)
|
||||
|
||||
dnl cache the options values before (may be) aborting below
|
||||
WX_ARG_CACHE_FLUSH
|
||||
|
||||
@@ -1123,6 +1209,8 @@ dnl we have a default one
|
||||
|
||||
AC_MSG_CHECKING(for toolkit)
|
||||
|
||||
if test "$wxUSE_GUI" = "yes"; then
|
||||
|
||||
if test "$TOOLKIT_GIVEN" = 1; then
|
||||
dnl convert "yes" to 1 and "no" to 0
|
||||
for toolkit in `echo $ALL_TOOLKITS`; do
|
||||
@@ -1171,6 +1259,11 @@ for toolkit in `echo $ALL_TOOLKITS`; do
|
||||
fi
|
||||
done
|
||||
|
||||
dnl from "if wxUSE_GUI"
|
||||
else
|
||||
AC_MSG_RESULT(base only)
|
||||
fi
|
||||
|
||||
dnl ---------------------------------------------------------------------------
|
||||
dnl Checks for programs
|
||||
dnl ---------------------------------------------------------------------------
|
||||
@@ -1182,12 +1275,12 @@ dnl cross-compiling support: we're cross compiling if the build system is
|
||||
dnl different from the target one (assume host and target be always the same)
|
||||
if eval "test $host != $build"; then
|
||||
if eval "test $host_alias != NONE"; then
|
||||
CC=$host_alias-gcc
|
||||
CXX=$host_alias-c++
|
||||
CC=$host_alias-gcc
|
||||
CXX=$host_alias-c++
|
||||
AR=$host_alias-ar
|
||||
RANLIB=$host_alias-ranlib
|
||||
DLLTOOL=$host_alias-dlltool
|
||||
LD=$host_alias-ld
|
||||
DLLTOOL=$host_alias-dlltool
|
||||
LD=$host_alias-ld
|
||||
NM=$host_alias-nm
|
||||
STRIP=$host_alias-strip
|
||||
fi
|
||||
@@ -1374,6 +1467,8 @@ dnl ----------------------------------------------------------------
|
||||
dnl search for toolkit (widget sets)
|
||||
dnl ----------------------------------------------------------------
|
||||
|
||||
if test "$wxUSE_GUI" = "yes"; then
|
||||
|
||||
TOOLKIT=
|
||||
TOOLKIT_INCLUDE=
|
||||
|
||||
@@ -1389,34 +1484,34 @@ WXGTK12=
|
||||
WXWINE=
|
||||
|
||||
dnl Extension for programs; '.exe' for msw builds
|
||||
PROGRAM_EXT=
|
||||
PROGRAM_EXT=
|
||||
|
||||
if test "$wxUSE_CYGWIN" = 1 || test "$wxUSE_MINGW" = 1 ; then
|
||||
if test "$cross_compiling" = "yes" ; then
|
||||
AC_MSG_WARN(Cross compiling --- skipping windows.h check)
|
||||
AC_MSG_WARN(Cross compiling --- skipping windows.h check)
|
||||
else
|
||||
AC_MSG_CHECKING(for Windows headers)
|
||||
WX_PATH_FIND_INCLUDES($SEARCH_INCLUDE, windows.h)
|
||||
if test "$ac_find_includes" != "" ; then
|
||||
AC_MSG_CHECKING(for Windows headers)
|
||||
WX_PATH_FIND_INCLUDES($SEARCH_INCLUDE, windows.h)
|
||||
if test "$ac_find_includes" != "" ; then
|
||||
AC_MSG_RESULT(found $ac_find_includes)
|
||||
TOOLKIT_INCLUDE="$TOOLKIT_INCLUDE -I$ac_find_includes"
|
||||
else
|
||||
else
|
||||
AC_MSG_RESULT(no)
|
||||
AC_MSG_ERROR(please set CFLAGS to contain the location of windows.h)
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
INCLUDE_SUBDIRS="$INCLUDE_SUBDIRS msw"
|
||||
dnl --- Quick & Dirty ; link against most/all libraries
|
||||
dnl --- This will bloat the executable, but it'll work for now...
|
||||
LIBS="$LIBS -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lcomctl32 -lctl3d32 -lcrtdll -ladvapi32 -lwsock32"
|
||||
|
||||
TOOLKIT=MSW
|
||||
|
||||
GUIOBJS=MSW_GUIOBJS
|
||||
GUIHEADERS=MSW_HEADERS
|
||||
COMMONOBJS=MSW_COMMONOBJS
|
||||
GENERICOBJS=MSW_GENERICOBJS
|
||||
|
||||
GUIOBJS="\$(MSW_GUIOBJS)"
|
||||
GUIHEADERS="\$(MSW_HEADERS)"
|
||||
COMMONOBJS="\$(MSW_COMMONOBJS)"
|
||||
GENERICOBJS="\$(MSW_GENERICOBJS)"
|
||||
UNIXOBJS=
|
||||
GUIDIST=MSW_DIST
|
||||
PROGRAM_EXT=.exe
|
||||
@@ -1431,17 +1526,17 @@ if test "$wxUSE_GTK" = 1; then
|
||||
fi
|
||||
|
||||
TOOLKIT_INCLUDE="$GTK_CFLAGS"
|
||||
GUI_TK_LIBRARY="$GTK_LIBS -ldl"
|
||||
GUI_TK_LIBRARY="$GTK_LIBS"
|
||||
TOOLKIT=GTK
|
||||
|
||||
GUIHEADERS=GTK_HEADERS
|
||||
GUIOBJS=GTK_GUIOBJS
|
||||
COMMONOBJS=GTK_COMMONOBJS
|
||||
GENERICOBJS=GTK_GENERICOBJS
|
||||
GUIDEPS=GTK_GUIDEPS
|
||||
COMMONDEPS=GTK_COMMONDEPS
|
||||
GENERICDEPS=GTK_GENERICDEPS
|
||||
UNIXOBJS=UNIXOBJS
|
||||
|
||||
GUIOBJS="\$(GTK_GUIOBJS)"
|
||||
GUIHEADERS="\$(GTK_HEADERS)"
|
||||
COMMONOBJS="\$(GTK_COMMONOBJS)"
|
||||
GENERICOBJS="\$(GTK_GENERICOBJS)"
|
||||
GUIDEPS="\$(GTK_GUIDEPS)"
|
||||
COMMONDEPS="\$(GTK_COMMONDEPS)"
|
||||
GENERICDEPS="\$(GTK_GENERICDEPS)"
|
||||
UNIXOBJS="\$(UNIX_OBJS)"
|
||||
GUIDIST=GTK_DIST
|
||||
fi
|
||||
|
||||
@@ -1468,7 +1563,7 @@ if test "$wxUSE_WINE" = 1; then
|
||||
AC_MSG_RESULT(no)
|
||||
AC_MSG_WARN(library will be compiled without support for images in XPM format)
|
||||
fi
|
||||
|
||||
|
||||
MESA_LINK=""
|
||||
AC_MSG_CHECKING(for Mesa library)
|
||||
WX_PATH_FIND_LIBRARIES($SEARCH_LIB,MesaGL)
|
||||
@@ -1480,19 +1575,19 @@ if test "$wxUSE_WINE" = 1; then
|
||||
AC_MSG_ERROR(no)
|
||||
fi
|
||||
|
||||
GUI_TK_LINK="-lwine $MESA_LINK $XPM_LINK -lXxf86dga -lXxf86vm -lSM -lICE -lXext -lXmu -lX11 -lncurses -ldl -lm"
|
||||
GUI_TK_LINK="-lwine $MESA_LINK $XPM_LINK -lXxf86dga -lXxf86vm -lSM -lICE -lXext -lXmu -lX11 -lncurses -lm"
|
||||
GUI_TK_LIBRARY="$GUI_TK_LIBRARY $GUI_TK_LINK"
|
||||
WXWINE=1
|
||||
TOOLKIT=MSW
|
||||
|
||||
GUIHEADERS=MSW_HEADERS
|
||||
GUIOBJS=MSW_GUIOBJS
|
||||
COMMONOBJS=MSW_COMMONOBJS
|
||||
GENERICOBJS=MSW_GENERICOBJS
|
||||
GUIDEPS=MSW_GUIDEPS
|
||||
COMMONDEPS=MSW_COMMONDEPS
|
||||
GENERICDEPS=MSW_GENERICDEPS
|
||||
UNIXOBJS=UNIXOBJS
|
||||
|
||||
GUIHEADERS="\$(MSW_HEADERS)"
|
||||
GUIOBJS="\$(MSW_GUIOBJS)"
|
||||
COMMONOBJS="\$(MSW_COMMONOBJS)"
|
||||
GENERICOBJS="\$(MSW_GENERICOBJS)"
|
||||
GUIDEPS="\$(MSW_GUIDEPS)"
|
||||
COMMONDEPS="\$(MSW_COMMONDEPS)"
|
||||
GENERICDEPS="\$(MSW_GENERICDEPS)"
|
||||
UNIXOBJS="\$(UNIX_OBJS)"
|
||||
GUIDIST=MSW_DIST
|
||||
fi
|
||||
|
||||
@@ -1556,21 +1651,28 @@ if test "$wxUSE_MOTIF" = 1; then
|
||||
AC_MSG_WARN(library will be compiled without support for images in XPM format)
|
||||
fi
|
||||
|
||||
GUI_TK_LINK="-lXm $XPM_LINK -lXmu -lXt -lX11 -ldl -lm"
|
||||
GUI_TK_LINK="-lXm $XPM_LINK -lXmu -lXt -lX11 -lm"
|
||||
GUI_TK_LIBRARY="$GUI_TK_LIBRARY $GUI_TK_LINK"
|
||||
TOOLKIT=MOTIF
|
||||
|
||||
GUIHEADERS=MOTIF_HEADERS
|
||||
GUIOBJS=MOTIF_GUIOBJS
|
||||
COMMONOBJS=MOTIF_COMMONOBJS
|
||||
GENERICOBJS=MOTIF_GENERICOBJS
|
||||
GUIDEPS=MOTIF_GUIDEPS
|
||||
COMMONDEPS=MOTIF_COMMONDEPS
|
||||
GENERICDEPS=MOTIF_GENERICDEPS
|
||||
UNIXOBJS=UNIXOBJS
|
||||
|
||||
GUIHEADERS="\$(MOTIF_HEADERS)"
|
||||
GUIOBJS="\$(MOTIF_GUIOBJS)"
|
||||
COMMONOBJS="\$(MOTIF_COMMONOBJS)"
|
||||
GENERICOBJS="\$(MOTIF_GENERICOBJS)"
|
||||
GUIDEPS="\$(MOTIF_GUIDEPS)"
|
||||
COMMONDEPS="\$(MOTIF_COMMONDEPS)"
|
||||
GENERICDEPS="\$(MOTIF_GENERICDEPS)"
|
||||
UNIXOBJS="\$(UNIX_OBJS)"
|
||||
GUIDIST=MOTIF_DIST
|
||||
fi
|
||||
|
||||
dnl someone explicitly added -ldl to the list of libraries for these targets -
|
||||
dnl I don't know why has this been done, but let's respect this - with the
|
||||
dnl exception of the systems which don't have libdl at all (VZ)
|
||||
if test "$wxUSE_GTK" = 1 || test "$wxUSE_MOTIF" = 1 || test "$wxUSE_WINE" = 1; then
|
||||
AC_CHECK_LIB(dl, main, GUI_TK_LIBRARY="$GUI_TK_LIBRARY -ldl")
|
||||
fi
|
||||
|
||||
dnl the name of the directory where the files for this toolkit live
|
||||
TOOLKIT_DIR=`echo ${TOOLKIT} | tr "A-Z" "a-z"`
|
||||
|
||||
@@ -1580,19 +1682,35 @@ TOOLKIT_DEF="-D__WX${TOOLKIT}__"
|
||||
dnl the name of the (libtool) library
|
||||
WX_LIBRARY="wx_${TOOLKIT_DIR}"
|
||||
|
||||
dnl the sources, their dependenices and the headers
|
||||
ALL_OBJECTS="\$(GUIOBJS) \$(COMMONOBJS) \$(GENERICOBJS) \$(UNIXOBJS) \$(HTMLOBJS) \$(JPEGOBJS) \$(PNGOBJS) \$(ZLIBOBJS)"
|
||||
ALL_DEPFILES="\$(GUIDEPS) \$(COMMONDEPS) \$(GENERICDEPS) \$(UNIXDEPS) \$(HTMLDEPS)"
|
||||
ALL_HEADERS="\$(GUIHEADERS) \$(HTML_HEADERS) \$(UNIX_HEADERS) \$(PROTOCOL_HEADERS) \$(GENERIC_HEADERS) \$(WX_HEADERS)"
|
||||
else
|
||||
dnl leave all TOOLKIT_XXX vars empty
|
||||
|
||||
dnl the sources, their dependenices and the headers
|
||||
ALL_OBJECTS="\$(BASE_OBJS)"
|
||||
ALL_DEPFILES="\${BASE_DEPS}"
|
||||
ALL_HEADERS="\${BASE_HEADERS}"
|
||||
|
||||
dnl building wxBase only
|
||||
WX_LIBRARY="wxbase"
|
||||
fi
|
||||
|
||||
dnl the name of the (libtool) library
|
||||
WX_LIBRARY_NAME="libwx_${TOOLKIT_DIR}.la"
|
||||
WX_LIBRARY_NAME="lib${WX_LIBRARY}.la"
|
||||
|
||||
dnl the name of the static library
|
||||
WX_LIBRARY_NAME_STATIC="libwx_${TOOLKIT_DIR}.a"
|
||||
WX_LIBRARY_NAME_STATIC="lib${WX_LIBRARY}.a"
|
||||
|
||||
dnl the name of the shared library
|
||||
WX_LIBRARY_NAME_SHARED="libwx_${TOOLKIT_DIR}-${WX_RELEASE}.so.${WX_CURRENT}.${WX_REVISION}.${WX_AGE}"
|
||||
WX_LIBRARY_NAME_SHARED="lib${WX_LIBRARY}-${WX_RELEASE}.so.${WX_CURRENT}.${WX_REVISION}.${WX_AGE}"
|
||||
|
||||
dnl the name of the links to the shared library
|
||||
WX_LIBRARY_LINK1="libwx_${TOOLKIT_DIR}-${WX_RELEASE}.so.${WX_CURRENT}"
|
||||
WX_LIBRARY_LINK2="libwx_${TOOLKIT_DIR}-${WX_RELEASE}.so"
|
||||
WX_LIBRARY_LINK3="libwx_${TOOLKIT_DIR}.so"
|
||||
WX_LIBRARY_LINK1="lib${WX_LIBRARY}-${WX_RELEASE}.so.${WX_CURRENT}"
|
||||
WX_LIBRARY_LINK2="lib${WX_LIBRARY}-${WX_RELEASE}.so"
|
||||
WX_LIBRARY_LINK3="lib${WX_LIBRARY}.so"
|
||||
|
||||
dnl shared library settings
|
||||
SHARED_LD=
|
||||
@@ -1702,8 +1820,11 @@ dnl defines HAVE_WCSTR_H
|
||||
AC_CHECK_HEADERS(wcstr.h)
|
||||
dnl defines HAVE_FNMATCH_H
|
||||
AC_CHECK_HEADERS(fnmatch.h)
|
||||
dnl defines HAVE_X11_XKBLIB_H
|
||||
AC_CHECK_HEADERS(X11/XKBlib.h)
|
||||
|
||||
if test "$wxUSE_GUI" = "yes"; then
|
||||
dnl defines HAVE_X11_XKBLIB_H
|
||||
AC_CHECK_HEADERS(X11/XKBlib.h)
|
||||
fi
|
||||
|
||||
dnl ---------------------------------------------------------------------------
|
||||
dnl Checks for typedefs
|
||||
@@ -1840,6 +1961,9 @@ AC_CHECK_FUNCS(nanosleep, AC_DEFINE(HAVE_NANOSLEEP), [
|
||||
dnl check for uname (POSIX) and gethostname (BSD)
|
||||
AC_CHECK_FUNCS(uname gethostname, break)
|
||||
|
||||
dnl check for MT-safe version of strtok
|
||||
AC_CHECK_FUNCS(strtok_r)
|
||||
|
||||
dnl check for inet_addr, inet_aton, ...
|
||||
AC_CHECK_FUNCS(inet_addr)
|
||||
AC_CHECK_FUNCS(inet_aton)
|
||||
@@ -1875,7 +1999,7 @@ fi
|
||||
|
||||
if test "$wxUSE_THREADS" = "yes" ; then
|
||||
dnl find if POSIX threads are available
|
||||
|
||||
|
||||
dnl standard lib name is pthread
|
||||
dnl We no longer test for pthread-0.7 as it breaks compilation on some
|
||||
dnl glibc2 systems, especially for static linkage.
|
||||
@@ -2028,10 +2152,10 @@ fi
|
||||
DEP_INFO_FLAGS=
|
||||
if test "$GCC" = yes ; then
|
||||
if test "$wxUSE_NO_RTTI" = "yes" ; then
|
||||
WXDEBUG_DEFINE="$WXDEBUG_DEFINE -fno-rtti"
|
||||
WXDEBUG_DEFINE="$WXDEBUG_DEFINE -fno-rtti"
|
||||
fi
|
||||
if test "$wxUSE_NO_EXCEPTIONS" = "yes" ; then
|
||||
WXDEBUG_DEFINE="$WXDEBUG_DEFINE -fno-exceptions"
|
||||
WXDEBUG_DEFINE="$WXDEBUG_DEFINE -fno-exceptions"
|
||||
fi
|
||||
if test "$wxUSE_PERMISSIVE" = "yes" ; then
|
||||
CFLAGS="${CFLAGS} -fpermissive"
|
||||
@@ -2040,9 +2164,9 @@ if test "$GCC" = yes ; then
|
||||
if test "$wxUSE_NO_DEPS" = "no" ; then
|
||||
DEP_INFO_FLAGS="-MMD"
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
fi
|
||||
|
||||
|
||||
CXXFLAGS=`echo "${CXXFLAGS}" | sed "s/\-O.//g" `
|
||||
CFLAGS=`echo "${CFLAGS}" | sed "s/\-O.//g" `
|
||||
if test "$wxUSE_OPTIMISE" = "no" ; then
|
||||
@@ -2077,10 +2201,6 @@ if test "$wxUSE_LIBPNG" = "yes" ; then
|
||||
SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS png"
|
||||
fi
|
||||
|
||||
if test "$wxUSE_LIBGIF" = "yes" ; then
|
||||
AC_DEFINE(wxUSE_LIBGIF)
|
||||
fi
|
||||
|
||||
JPEG_INCLUDE=
|
||||
if test "$wxUSE_LIBJPEG" = "yes" ; then
|
||||
AC_DEFINE(wxUSE_LIBJPEG)
|
||||
@@ -2219,6 +2339,10 @@ if test "$wxUSE_SOCKETS" = "yes" ; then
|
||||
fi
|
||||
fi
|
||||
|
||||
if test "$wxUSE_DIALUP_MANAGER" = "yes" ; then
|
||||
AC_DEFINE(wxUSE_DIALUP_MANAGER)
|
||||
fi
|
||||
|
||||
if test "$wxUSE_STREAMS" = "yes" ; then
|
||||
AC_DEFINE(wxUSE_STREAMS)
|
||||
fi
|
||||
@@ -2285,13 +2409,13 @@ if test "$wxUSE_DYNLIB_CLASS" = "yes"; then
|
||||
[AC_DEFINE(HAVE_SHL_LOAD) HAVE_DL_FUNCS=1 HAVE_SHL_FUNCS=1])
|
||||
|
||||
if test "$HAVE_DL_FUNCS" = 0; then
|
||||
if test "$USE_UNIX" = 1; then
|
||||
if test "$USE_UNIX" = 1; then
|
||||
AC_MSG_WARN("--with-dynlib and --with-odbc will be disabled due to missing shared library support")
|
||||
wxUSE_ODBC=no
|
||||
wxUSE_DYNLIB_CLASS=no
|
||||
else
|
||||
AC_MSG_WARN("Cannot check dynlib requirements on non-Unix platforms. dynlib remains enabled.")
|
||||
fi
|
||||
else
|
||||
AC_MSG_WARN("Cannot check dynlib requirements on non-Unix platforms. dynlib remains enabled.")
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
@@ -2406,13 +2530,13 @@ if test "$wxUSE_DRAG_AND_DROP" = "yes" ; then
|
||||
if test "$wxUSE_GTK" = 1; then
|
||||
if test "$WXGTK12" != 1; then
|
||||
AC_MSG_WARN([Drag and drop is only supported under GTK+ 1.2])
|
||||
wxUSE_DRAG_AND_DROP=no
|
||||
wxUSE_DRAG_AND_DROP=no
|
||||
fi
|
||||
fi
|
||||
|
||||
if test "$wxUSE_MOTIF" = 1; then
|
||||
AC_MSG_WARN([Drag and drop is not yet supported under Motif])
|
||||
wxUSE_DRAG_AND_DROP=no
|
||||
wxUSE_DRAG_AND_DROP=no
|
||||
fi
|
||||
|
||||
if test "$wxUSE_DRAG_AND_DROP" = "yes"; then
|
||||
@@ -2533,11 +2657,7 @@ if test "$wxUSE_STATLINE" = "yes"; then
|
||||
if test "$wxUSE_WINE" = 1 ; then
|
||||
AC_MSG_WARN([wxStaticLine is not supported under WINE])
|
||||
else
|
||||
if test "$wxUSE_MOTIF" = 1 ; then
|
||||
AC_MSG_WARN([wxStaticLine is not supported under Motif])
|
||||
else
|
||||
AC_DEFINE(wxUSE_STATLINE)
|
||||
fi
|
||||
AC_DEFINE(wxUSE_STATLINE)
|
||||
fi
|
||||
fi
|
||||
|
||||
@@ -2637,20 +2757,29 @@ if test "$wxUSE_VALIDATORS" = "yes"; then
|
||||
SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS validate"
|
||||
fi
|
||||
|
||||
if test "$wxUSE_GIF" = "yes" ; then
|
||||
AC_DEFINE(wxUSE_GIF)
|
||||
fi
|
||||
|
||||
if test "$wxUSE_PCX" = "yes" ; then
|
||||
AC_DEFINE(wxUSE_PCX)
|
||||
fi
|
||||
|
||||
if test "$wxUSE_PNM" = "yes" ; then
|
||||
AC_DEFINE(wxUSE_PNM)
|
||||
fi
|
||||
|
||||
dnl ---------------------------------------------------------------------------
|
||||
dnl Output the makefiles and such from the results found above
|
||||
dnl ---------------------------------------------------------------------------
|
||||
|
||||
dnl if we add wxUSE_GUI in the future, it might be handy to separate the libs
|
||||
dnl into GUI and non-GUI parts
|
||||
GUILIBS="$GUI_TK_LIBRARY $OPENGL_LINK $LIBPNG_LINK $ZLIB_LINK $TOOLKIT_LINK"
|
||||
|
||||
dnl all additional libraries (except wxWindows itself) we link with
|
||||
EXTRA_LIBS="$LIBS $POSIX4_LINK $WCHAR_LINK $THREADS_LINK $DMALLOC_LINK $GUILIBS"
|
||||
|
||||
dnl all the libraries needed to link wxWindows programs (when the library is not
|
||||
dnl yet installed)
|
||||
LIBS="\${top_builddir}/src/${TOOLKIT_DIR}/${WX_LIBRARY_NAME} $EXTRA_LIBS"
|
||||
EXTRA_LIBS="$LIBS $POSIX4_LINK $WCHAR_LINK $THREADS_LINK $DMALLOC_LINK"
|
||||
if test "$wxUSE_GUI" = "yes"; then
|
||||
EXTRA_LIBS="$EXTRA_LIBS $GUILIBS"
|
||||
fi
|
||||
|
||||
dnl all the libraries needed to link wxWindows programs when using the
|
||||
dnl makefile system without libtool
|
||||
@@ -2663,8 +2792,8 @@ dnl C/C++ compiler options used to compile wxWindows
|
||||
if test "$GXX" = yes ; then
|
||||
dnl CXXWARNINGS="-Wall -W -Wcast-qual -Werror"
|
||||
CXXWARNINGS="-Wall"
|
||||
dnl there is one weird warning in docview.h:71 which prevents me from doing
|
||||
dnl this...
|
||||
dnl FIXME: there is one weird warning in docview.h:71 which prevents me from
|
||||
dnl doing this... (VZ)
|
||||
dnl CXXWARNINGS="-Wall -Werror"
|
||||
fi
|
||||
EXTRA_CFLAGS="$WXDEBUG $PROFILE $OPTIMISE $INCLUDES"
|
||||
@@ -2681,6 +2810,8 @@ if test "$wxUSE_GUI" = "yes"; then
|
||||
dnl mfc, nativdlg, oleauto, ownerdrw, proplist
|
||||
SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS bombs controls dialogs drawing dynamic \
|
||||
forty fractal image wxpoem"
|
||||
else
|
||||
SAMPLES_SUBDIRS=""
|
||||
fi
|
||||
|
||||
dnl for convenience, sort the samples in alphabetical order
|
||||
@@ -2729,6 +2860,10 @@ AC_SUBST(GUIDEPS)
|
||||
AC_SUBST(COMMONDEPS)
|
||||
AC_SUBST(GENERICDEPS)
|
||||
AC_SUBST(UNIXOBJS)
|
||||
AC_SUBST(UNIXDEPS)
|
||||
AC_SUBST(ALL_OBJECTS)
|
||||
AC_SUBST(ALL_DEPFILES)
|
||||
AC_SUBST(ALL_HEADERS)
|
||||
AC_SUBST(GUIDIST)
|
||||
|
||||
dnl additional subdirectories where we will build
|
||||
@@ -2766,9 +2901,9 @@ dnl (the original file name may be overriden by appending another name after a
|
||||
dnl colon)
|
||||
AC_OUTPUT([
|
||||
wx-config
|
||||
src/make.env
|
||||
src/makeprog.env
|
||||
src/makelib.env
|
||||
src/make.env
|
||||
src/makeprog.env
|
||||
src/makelib.env
|
||||
Makefile
|
||||
samples/Makefile
|
||||
samples/bombs/Makefile
|
||||
@@ -2776,61 +2911,63 @@ AC_OUTPUT([
|
||||
samples/checklst/Makefile
|
||||
samples/config/Makefile
|
||||
samples/controls/Makefile
|
||||
samples/dialogs/Makefile
|
||||
samples/docview/Makefile
|
||||
samples/docvwmdi/Makefile
|
||||
samples/dnd/Makefile
|
||||
samples/drawing/Makefile
|
||||
samples/dynamic/Makefile
|
||||
samples/image/Makefile
|
||||
samples/internat/Makefile
|
||||
samples/layout/Makefile
|
||||
samples/listctrl/Makefile
|
||||
samples/mdi/Makefile
|
||||
samples/minifram/Makefile
|
||||
samples/minimal/Makefile
|
||||
samples/notebook/Makefile
|
||||
samples/dialogs/Makefile
|
||||
samples/docview/Makefile
|
||||
samples/docvwmdi/Makefile
|
||||
samples/dnd/Makefile
|
||||
samples/drawing/Makefile
|
||||
samples/dynamic/Makefile
|
||||
samples/image/Makefile
|
||||
samples/internat/Makefile
|
||||
samples/layout/Makefile
|
||||
samples/listctrl/Makefile
|
||||
samples/mdi/Makefile
|
||||
samples/minifram/Makefile
|
||||
samples/minimal/Makefile
|
||||
samples/notebook/Makefile
|
||||
samples/printing/Makefile
|
||||
samples/proplist/Makefile
|
||||
samples/sashtest/Makefile
|
||||
samples/scroll/Makefile
|
||||
samples/splitter/Makefile
|
||||
samples/text/Makefile
|
||||
samples/thread/Makefile
|
||||
samples/toolbar/Makefile
|
||||
samples/treectrl/Makefile
|
||||
samples/typetest/Makefile
|
||||
samples/validate/Makefile
|
||||
samples/wxpoem/Makefile
|
||||
samples/wxsocket/Makefile
|
||||
samples/wizard/Makefile
|
||||
samples/html/Makefile
|
||||
samples/html/about/Makefile
|
||||
samples/html/help/Makefile
|
||||
samples/html/printing/Makefile
|
||||
samples/html/test/Makefile
|
||||
samples/html/zip/Makefile
|
||||
samples/html/virtual/Makefile
|
||||
samples/html/widget/Makefile
|
||||
utils/Makefile
|
||||
utils/wxMMedia2/Makefile
|
||||
utils/wxMMedia2/lib/Makefile
|
||||
utils/wxMMedia2/sample/Makefile
|
||||
utils/glcanvas/Makefile
|
||||
utils/glcanvas/${GL_TOOLKIT_DIR}/Makefile
|
||||
samples/sashtest/Makefile
|
||||
samples/scroll/Makefile
|
||||
samples/splitter/Makefile
|
||||
samples/text/Makefile
|
||||
samples/thread/Makefile
|
||||
samples/toolbar/Makefile
|
||||
samples/treectrl/Makefile
|
||||
samples/typetest/Makefile
|
||||
samples/validate/Makefile
|
||||
samples/wxpoem/Makefile
|
||||
samples/wxsocket/Makefile
|
||||
samples/wizard/Makefile
|
||||
samples/html/Makefile
|
||||
samples/html/about/Makefile
|
||||
samples/html/help/Makefile
|
||||
samples/html/printing/Makefile
|
||||
samples/html/test/Makefile
|
||||
samples/html/zip/Makefile
|
||||
samples/html/virtual/Makefile
|
||||
samples/html/widget/Makefile
|
||||
utils/Makefile
|
||||
utils/wxMMedia2/Makefile
|
||||
utils/wxMMedia2/lib/Makefile
|
||||
utils/wxMMedia2/sample/Makefile
|
||||
utils/glcanvas/Makefile
|
||||
utils/glcanvas/${GL_TOOLKIT_DIR}/Makefile
|
||||
utils/ogl/Makefile
|
||||
utils/ogl/src/Makefile
|
||||
],
|
||||
[
|
||||
chmod +x wx-config
|
||||
if test ! -d include; then
|
||||
mkdir include
|
||||
fi
|
||||
if test ! -d include/wx; then
|
||||
mkdir include/wx
|
||||
fi
|
||||
if test ! -d include/wx/${TOOLKIT_DIR}; then
|
||||
mkdir include/wx/${TOOLKIT_DIR}
|
||||
fi
|
||||
cp -f setup.h include/wx/${TOOLKIT_DIR}/setup.h
|
||||
if test ! -d include; then
|
||||
mkdir include
|
||||
fi
|
||||
if test ! -d include/wx; then
|
||||
mkdir include/wx
|
||||
fi
|
||||
if test ! -d include/wx/${TOOLKIT_DIR}; then
|
||||
mkdir include/wx/${TOOLKIT_DIR}
|
||||
fi
|
||||
cp -f setup.h include/wx/${TOOLKIT_DIR}/setup.h
|
||||
],
|
||||
[
|
||||
LN_S="${ac_cv_prog_LN_S}"
|
||||
|
@@ -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,7 @@
|
||||
# compiler, &c)
|
||||
#
|
||||
# Known flags:
|
||||
# B makes part of the base library too
|
||||
# 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,6 +38,7 @@
|
||||
# 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
|
||||
# MSW MSW header
|
||||
@@ -66,6 +68,7 @@ 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 +81,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 +92,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 +102,78 @@ dcbase.cpp C
|
||||
dlgcmn.cpp C
|
||||
docmdi.cpp C
|
||||
docview.cpp C
|
||||
dynarray.cpp C
|
||||
dynlib.cpp C
|
||||
dynarray.cpp C B
|
||||
dynlib.cpp C B
|
||||
event.cpp C
|
||||
extended.c C
|
||||
ffile.cpp C
|
||||
file.cpp C
|
||||
fileconf.cpp C
|
||||
filefn.cpp C
|
||||
filesys.cpp C
|
||||
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
|
||||
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
|
||||
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
|
||||
textfile.cpp C B
|
||||
time.cpp C B
|
||||
timercmn.cpp C B
|
||||
tokenzr.cpp C B
|
||||
txtstrm.cpp C
|
||||
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 +239,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,7 +272,9 @@ 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
|
||||
gsocket.c U
|
||||
@@ -299,7 +308,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
|
||||
@@ -329,7 +337,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 +345,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 +361,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 +381,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,22 +391,23 @@ 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
|
||||
@@ -816,16 +828,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
|
||||
|
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
|
@@ -484,7 +484,7 @@ DEPFILES = $(@GUIDEPS@) $(@COMMONDEPS@) $(@GENERICDEPS@) $(UNIXDEPS) $(HTMLDEPS)
|
||||
HEADERS = $(@GUIHEADERS@) $(HTML_HEADERS) $(UNIX_HEADERS) $(PROTOCOL_HEADERS) \
|
||||
$(GENERIC_HEADERS) $(WX_HEADERS)
|
||||
|
||||
all: $(OBJECTS) @WX_TARGET_LIBRARY@ @WX_CREATE_LINKS@
|
||||
all: @WX_CREATE_LINKS@
|
||||
|
||||
@WX_LIBRARY_NAME_STATIC@: $(OBJECTS)
|
||||
@$(INSTALL) -d ./lib
|
||||
@@ -495,7 +495,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_TARGET_LIBRARY@
|
||||
@$(RM) ./lib/@WX_LIBRARY_LINK1@
|
||||
@$(RM) ./lib/@WX_LIBRARY_LINK2@
|
||||
@$(RM) ./lib/@WX_LIBRARY_LINK3@
|
||||
|
@@ -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
|
||||
|
@@ -30,6 +30,11 @@
|
||||
my $tag = $wxMSW{$file} =~ /\bO\b/ ? "WXOLESRCS" : "WXMSWSRCS";
|
||||
$project{$tag} .= $file . " "
|
||||
}
|
||||
|
||||
foreach $file (sort keys %wxHTML) {
|
||||
next if $wxHTML{$file} =~ /\b16\b/;
|
||||
$project{"WXHTMLSRCS"} .= $file . " "
|
||||
}
|
||||
#$}
|
||||
# Microsoft Developer Studio Project File - Name="wxWindows" - Package Owner=<4>
|
||||
# Microsoft Developer Studio Generated Build File, Format Version 6.00
|
||||
@@ -125,6 +130,7 @@ SOURCE=.\src\msw\dummy.cpp
|
||||
#$ ExpandGlue("WXGENERICSRCS", "# Begin Source File\n\nSOURCE=.\\src\\generic\\", "\n# End Source File\n# Begin Source File\n\nSOURCE=.\\src\\generic\\", "\n# End Source File\n");
|
||||
#$ ExpandGlue("WXCOMMONSRCS", "# Begin Source File\n\nSOURCE=.\\src\\common\\", "\n# End Source File\n# Begin Source File\n\nSOURCE=.\\src\\common\\", "\n# End Source File\n");
|
||||
#$ ExpandGlue("WXCSRCS", "# Begin Source File\n\nSOURCE=.\\src\\common\\", "\n# SUBTRACT CPP /YX /Yc /Yu\n# End Source File\n# Begin Source File\n\nSOURCE=.\\src\\common\\", "\n# SUBTRACT CPP /YX /Yc /Yu\n# End Source File\n");
|
||||
#$ ExpandGlue("WXHTMLSRCS", "# Begin Source File\n\nSOURCE=.\\src\\html\\", "\n# End Source File\n# Begin Source File\n\nSOURCE=.\\src\\html\\", "\n# End Source File\n");
|
||||
|
||||
# Begin Source File
|
||||
|
||||
|
@@ -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
|
||||
-----------------------
|
||||
|
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}}
|
||||
|
@@ -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}}}
|
||||
|
||||
|
@@ -282,6 +282,9 @@ Insert the given number of strings before the specified position.
|
||||
\docparam{pos}{Position before which to insert the items: for example, if {\it pos} is 0 the items
|
||||
will be inserted in the beginning of the listbox}
|
||||
|
||||
\pythonnote{The first two parameters are collapsed into a single
|
||||
parameter for wxPython, which is a list of strings.}
|
||||
|
||||
\membersection{wxListBox::Number}\label{wxlistboxnumber}
|
||||
|
||||
\constfunc{int}{Number}{\void}
|
||||
|
@@ -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}}
|
||||
|
@@ -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}
|
||||
|
@@ -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.
|
||||
|
||||
|
156
docs/latex/wx/tunicode.tex
Normal file
156
docs/latex/wx/tunicode.tex
Normal file
@@ -0,0 +1,156 @@
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
%% Name: tunicode.tex
|
||||
%% Purpose: Overview of the Unicode support in wxWindows
|
||||
%% Author: Vadim Zeitlin
|
||||
%% Modified by:
|
||||
%% Created: 22.09.99
|
||||
%% RCS-ID: $Id$
|
||||
%% Copyright: (c) 1999 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
|
||||
%% Licence: wxWindows license
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
\section{Unicode support in wxWindows}\label{unicode}
|
||||
|
||||
This section briefly describes the state of the Unicode support in wxWindows.
|
||||
Read it if you want to know more about how to write programs able to work with
|
||||
characters from languages other than English.
|
||||
|
||||
\subsection{What is Unicode?}
|
||||
|
||||
Starting with release 2.1 wxWindows has support for compiling in Unicode mode
|
||||
on the platforms which support it. Unicode is a standard for character
|
||||
encoding which addreses the shortcomings of the previous, 8 bit standards, by
|
||||
using 16 bit for encoding each character. This allows to have 65536 characters
|
||||
instead of the usual 256 and is sufficient to encode all of the world
|
||||
languages at once. More details about Unicode may be found at {\tt www.unicode.org}.
|
||||
|
||||
% TODO expand on it, say that Unicode extends ASCII, mention ISO8859, ...
|
||||
|
||||
As this solution is obviously preferable to the previous ones (think of
|
||||
incompatible encodings for the same language, locale chaos and so on), many
|
||||
modern ooperating systems support it. The probably first example is Windows NT
|
||||
which uses only Unicode internally since its very first version.
|
||||
|
||||
Writing internationalized programs is much easier with Unicode and, as the
|
||||
support for it improves, it should become more and more so. Moreover, in the
|
||||
Windows NT/2000 case, even the program which uses only standard ASCII can profit
|
||||
from using Unicode because they will work more efficiently - there will be no
|
||||
need for the system to convert all strings hte program uses to/from Unicode
|
||||
each time a system call is made.
|
||||
|
||||
\subsection{Unicode and ANSI modes}
|
||||
|
||||
As not all platforms supported by wxWindows support Unicode (fully) yet, in
|
||||
many cases it is unwise to write a program which can only work in Unicode
|
||||
environment. A better solution is to write programs in such way that they may
|
||||
be compiled either in ANSI (traditional) mode or in the Unicode one.
|
||||
|
||||
This can be achieved quite simply by using the means provided by wxWindows.
|
||||
Basicly, there are only a few things to watch out for:
|
||||
\begin{itemize}
|
||||
\item Character type ({\tt char} or {\tt wchar\_t})
|
||||
\item Literal strings (i.e. {\tt "Hello, world!"} or {\tt '*'})
|
||||
\item String functions ({\tt strlen()}, {\tt strcpy()}, ...)
|
||||
\end{itemize}
|
||||
|
||||
Let's look at them in order. First of all, each character in an Unicode
|
||||
program takes 2 bytes instead of usual one, so another type should be used to
|
||||
store the characters ({\tt char} only holds 1 byte usually). This type is
|
||||
called {\tt wchar\_t} which stands for {\it wide-character type}.
|
||||
|
||||
Also, the string and character constants should be encoded on 2 bytes instead
|
||||
of one. This is achieved by using the standard C (and C++) way: just put the
|
||||
letter {\tt 'L'} after any string constant and it becomes a {\it long}
|
||||
constant, i.e. a wide character one. To make things a bit more readable, you
|
||||
are also allowed to prefix the constant with {\tt 'L'} instead of putting it
|
||||
after it.
|
||||
|
||||
Finally, the standard C functions don't work with {\tt wchar\_t} strings, so
|
||||
another set of functions exists which do the same thing but accept
|
||||
{\tt wchar\_t *} instead of {\tt char *}. For example, a function to get the
|
||||
length of a wide-character string is called {\tt wcslen()} (compare with
|
||||
{\tt strlen()} - you see that the only difference is that the "str" prefix
|
||||
standing for "string" has been replaced with "wcs" standing for
|
||||
"wide-character string").
|
||||
|
||||
To summarize, here is a brief example of how a program which can be compiled
|
||||
in both ANSI and Unicode modes could look like:
|
||||
|
||||
\begin{verbatim}
|
||||
#ifdef __UNICODE__
|
||||
wchar_t wch = L'*';
|
||||
const wchar_t *ws = L"Hello, world!";
|
||||
int len = wcslen(ws);
|
||||
#else // ANSI
|
||||
char ch = '*';
|
||||
const char *s = "Hello, world!";
|
||||
int len = strlen(s);
|
||||
#endif // Unicode/ANSI
|
||||
\end{verbatim}
|
||||
|
||||
Of course, it would be nearly impossibly to write such programs if it had to
|
||||
be done this way (try to imagine the number of {\tt #ifdef UNICODE} an average
|
||||
program would have had!). Luckily, there is another way - see the next
|
||||
section.
|
||||
|
||||
\subsection{Unicode support in wxWindows}
|
||||
|
||||
In wxWindows, the code fragment froim above should be written instead:
|
||||
|
||||
\begin{verbatim}
|
||||
wxChar ch = T('*');
|
||||
wxString s = T("Hello, world!");
|
||||
int len = s.Len();
|
||||
\end{verbatim}
|
||||
|
||||
What happens here? First of all, you see that there are no more {\tt #ifdef}s
|
||||
at all. Instead, we define some types and macros which behave differently in
|
||||
the Unicode and ANSI builds and allows us to avoid using conditional
|
||||
compilation in the program itself.
|
||||
|
||||
We have a {\tt wxChar} type which maps either on {\tt char} or {\tt wchar\_t}
|
||||
depending on the mode in which program is being compiled. There is no need for
|
||||
a separate type for strings though, because the standard
|
||||
\helpref{wxString}{wxstring} supports Unicode, i.e. it stores iether ANSI or
|
||||
Unicode strings depending on the mode.
|
||||
|
||||
Finally, there is a special {\tt T()} macro which should enclose all literal
|
||||
strings in the program. As it's easy to see comparing the last fragment with
|
||||
the one above, this macro expands to nothing in the (usual) ANSI mode and
|
||||
prefixes {\tt 'L'} to its argument in the Unicode mode.
|
||||
|
||||
The important conclusion is that if you use {\tt wxChar} instead of
|
||||
{\tt char}, avoid using C style strings and use {\tt wxString} instead and
|
||||
don't forget to enclose all string literals inside {\tt T()} macro, your
|
||||
program automatically becomes (almost) Unicode compliant!
|
||||
|
||||
Just let us state once again the rules:
|
||||
\begin{itemize}
|
||||
\item Always use {\tt wxChar} instead of {\tt char}
|
||||
\item Always enclose literal string constants in {\tt T()} macro unless
|
||||
they're already converted to the right representation (another standard
|
||||
wxWindows macro {\tt \_()} does it, so there is no need for {\tt T()} in this
|
||||
case) or you intend to pass the constant directly to an external function
|
||||
which doesn't accept wide-character strings.
|
||||
\item Use {\tt wxString} instead of C style strings.
|
||||
\end{itemize}
|
||||
|
||||
\subsection{Unicode and the outside world}
|
||||
|
||||
We have seen that it was easy to write Unicode programs using wxWindows types
|
||||
and macros, but it has been also mentioned that it isn't quite enough.
|
||||
Although everything works fine inside the program, things can get nasty when
|
||||
it tries to communicate with the outside world which, sadly, often expects
|
||||
ANSI strings (a notable exception is the entire Win32 API which accepts either
|
||||
Unicode or ANSI strings and which thus makes it unnecessary to ever perform
|
||||
any convertions in the program).
|
||||
|
||||
To get a ANSI string from a wxString, you may use
|
||||
\helpref{mb\_str()}{wxstringmbstr} function which always returns an ANSI
|
||||
string (independently of the mode - while the usual
|
||||
\helpref{c\_str()}{wxstringcstr} returns a pointer to the internal
|
||||
representation which is either ASCII or Unicode). More rarely used, but still
|
||||
useful, is \helpref{wc\_str()}{wxstringwcstr} function which always returns
|
||||
the Unicode string.
|
||||
|
||||
% TODO describe fn_str(), wx_str(), wxCharBuf classes, ...
|
@@ -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.
|
||||
|
||||
|
@@ -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}
|
||||
|
@@ -37,7 +37,9 @@
|
||||
|
||||
#include "wx/event.h" // for the base class
|
||||
|
||||
#include "wx/window.h" // for wxTopLevelWindows
|
||||
#if wxUSE_GUI
|
||||
#include "wx/window.h" // for wxTopLevelWindows
|
||||
#endif // wxUSE_GUI
|
||||
|
||||
#if wxUSE_LOG
|
||||
#include "wx/log.h"
|
||||
@@ -64,22 +66,33 @@ public:
|
||||
// prevents the program from continuing - it's a good place to create
|
||||
// the top level program window and return TRUE.
|
||||
//
|
||||
// Override: always.
|
||||
// Override: always in GUI application, rarely in console ones.
|
||||
#if wxUSE_GUI
|
||||
virtual bool OnInit() { return FALSE; };
|
||||
#else // !GUI
|
||||
virtual bool OnInit() { return TRUE; };
|
||||
#endif // wxUSE_GUI
|
||||
|
||||
#if wxUSE_GUI
|
||||
// a platform-dependent version of OnInit(): the code here is likely to
|
||||
// depend on the toolkit. default version does nothing.
|
||||
//
|
||||
// Override: rarely.
|
||||
virtual bool OnInitGui() { return TRUE; }
|
||||
#endif // wxUSE_GUI
|
||||
|
||||
// called to start program execution - the default version just enters
|
||||
// the main GUI loop in which events are received and processed until
|
||||
// the last window is not deleted (if GetExitOnFrameDelete) or
|
||||
// ExitMainLoop() is called.
|
||||
// ExitMainLoop() is called. In console mode programs, the execution
|
||||
// of the program really starts here
|
||||
//
|
||||
// Override: rarely.
|
||||
// Override: rarely in GUI applications, always in console ones.
|
||||
#if wxUSE_GUI
|
||||
virtual int OnRun() { return MainLoop(); };
|
||||
#else // !GUI
|
||||
virtual int OnRun() = 0;
|
||||
#endif // wxUSE_GUI
|
||||
|
||||
// called after the main loop termination. This is a good place for
|
||||
// cleaning up (it may be too late in dtor) and is also useful if you
|
||||
@@ -102,6 +115,7 @@ public:
|
||||
// the worker functions - usually not used directly by the user code
|
||||
// -----------------------------------------------------------------
|
||||
|
||||
#if wxUSE_GUI
|
||||
// execute the main GUI loop, the function returns when the loop ends
|
||||
virtual int MainLoop() = 0;
|
||||
|
||||
@@ -118,6 +132,7 @@ public:
|
||||
// process the first event in the event queue (blocks until an event
|
||||
// apperas if there are none currently)
|
||||
virtual void Dispatch() = 0;
|
||||
#endif // wxUSE_GUI
|
||||
|
||||
// application info: name, description, vendor
|
||||
// -------------------------------------------
|
||||
@@ -144,6 +159,7 @@ public:
|
||||
const wxString& GetVendorName() const { return m_vendorName; }
|
||||
void SetVendorName(const wxString& name) { m_vendorName = name; }
|
||||
|
||||
#if wxUSE_GUI
|
||||
// top level window functions
|
||||
// --------------------------
|
||||
|
||||
@@ -171,6 +187,8 @@ public:
|
||||
void SetExitOnFrameDelete(bool flag) { m_exitOnFrameDelete = flag; }
|
||||
bool GetExitOnFrameDelete() const { return m_exitOnFrameDelete; }
|
||||
|
||||
#endif // wxUSE_GUI
|
||||
|
||||
// miscellaneous customization functions
|
||||
// -------------------------------------
|
||||
|
||||
@@ -179,10 +197,15 @@ public:
|
||||
// user-defined class (default implementation creates a wxLogGui
|
||||
// object) - this log object is used by default by all wxLogXXX()
|
||||
// functions.
|
||||
virtual wxLog *CreateLogTarget() { return new wxLogGui; }
|
||||
virtual wxLog *CreateLogTarget()
|
||||
#if wxUSE_GUI
|
||||
{ return new wxLogGui; }
|
||||
#else // !GUI
|
||||
{ return new wxLogStderr; }
|
||||
#endif // wxUSE_GUI
|
||||
#endif // wxUSE_LOG
|
||||
|
||||
|
||||
#if wxUSE_GUI
|
||||
// get the standard icon used by wxWin dialogs - this allows the user
|
||||
// to customize the standard dialogs. The 'which' parameter is one of
|
||||
// wxICON_XXX values
|
||||
@@ -198,6 +221,7 @@ public:
|
||||
// printing.
|
||||
virtual void SetPrintMode(int WXUNUSED(mode)) { }
|
||||
int GetPrintMode() const { return wxPRINT_POSTSCRIPT; }
|
||||
#endif // wxUSE_GUI
|
||||
|
||||
// implementation only from now on
|
||||
// -------------------------------
|
||||
@@ -228,29 +252,35 @@ protected:
|
||||
// TRUE if the application wants to get debug output
|
||||
bool m_wantDebugOutput;
|
||||
|
||||
#if wxUSE_GUI
|
||||
// the main top level window - may be NULL
|
||||
wxWindow *m_topWindow;
|
||||
#endif // wxUSE_GUI
|
||||
};
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// now include the declaration of the real class
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
#if defined(__WXMSW__)
|
||||
#include "wx/msw/app.h"
|
||||
#elif defined(__WXMOTIF__)
|
||||
#include "wx/motif/app.h"
|
||||
#elif defined(__WXQT__)
|
||||
#include "wx/qt/app.h"
|
||||
#elif defined(__WXGTK__)
|
||||
#include "wx/gtk/app.h"
|
||||
#elif defined(__WXMAC__)
|
||||
#include "wx/mac/app.h"
|
||||
#elif defined(__WXPM__)
|
||||
#include "wx/os2/app.h"
|
||||
#elif defined(__WXSTUBS__)
|
||||
#include "wx/stubs/app.h"
|
||||
#endif
|
||||
#if wxUSE_GUI
|
||||
#if defined(__WXMSW__)
|
||||
#include "wx/msw/app.h"
|
||||
#elif defined(__WXMOTIF__)
|
||||
#include "wx/motif/app.h"
|
||||
#elif defined(__WXQT__)
|
||||
#include "wx/qt/app.h"
|
||||
#elif defined(__WXGTK__)
|
||||
#include "wx/gtk/app.h"
|
||||
#elif defined(__WXMAC__)
|
||||
#include "wx/mac/app.h"
|
||||
#elif defined(__WXPM__)
|
||||
#include "wx/os2/app.h"
|
||||
#elif defined(__WXSTUBS__)
|
||||
#include "wx/stubs/app.h"
|
||||
#endif
|
||||
#else // !GUI
|
||||
typedef wxAppBase wxApp;
|
||||
#endif // GUI/!GUI
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// the global data
|
||||
@@ -266,11 +296,34 @@ WXDLLEXPORT_DATA(extern wxApp*) wxTheApp;
|
||||
// global functions
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
// event loop related functions only work in GUI programs
|
||||
// ------------------------------------------------------
|
||||
|
||||
#if wxUSE_GUI
|
||||
|
||||
// Force an exit from main loop
|
||||
void WXDLLEXPORT wxExit();
|
||||
extern void WXDLLEXPORT wxExit();
|
||||
|
||||
// Yield to other apps/messages
|
||||
bool WXDLLEXPORT wxYield();
|
||||
extern bool WXDLLEXPORT wxYield();
|
||||
|
||||
#endif // wxUSE_GUI
|
||||
|
||||
// console applications may avoid using DECLARE_APP and IMPLEMENT_APP macros
|
||||
// and call these functions instead at the program startup and termination
|
||||
// -------------------------------------------------------------------------
|
||||
|
||||
#if wxUSE_NOGUI
|
||||
|
||||
// initialize the library (may be called as many times as needed, but each
|
||||
// call to wxInitialize() must be matched by wxUninitialize())
|
||||
extern bool WXDLLEXPORT wxInitialize();
|
||||
|
||||
// clean up - the library can't be used any more after the last call to
|
||||
// wxUninitialize()
|
||||
extern void WXDLLEXPORT wxUninitialize();
|
||||
|
||||
#endif // wxUSE_NOGUI
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// macros for dynamic creation of the application object
|
||||
|
@@ -2,7 +2,7 @@
|
||||
// Name: listimpl.cpp
|
||||
// Purpose: helper file for implementation of dynamic lists
|
||||
// Author: Vadim Zeitlin
|
||||
// Modified by:
|
||||
// Modified by:
|
||||
// Created: 16.10.97
|
||||
// RCS-ID: $Id$
|
||||
// Copyright: (c) 1997 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
|
||||
@@ -20,6 +20,9 @@
|
||||
* 4) WX_DEFINE_OBJARRAY *
|
||||
*****************************************************************************/
|
||||
|
||||
// needed to resolve the conflict between global T and macro parameter T
|
||||
#define _WX_ERROR_REMOVE2(x) T("bad index in " #x "::Remove()")
|
||||
|
||||
// macro implements remaining (not inline) methods of template list
|
||||
// (it's private to this file)
|
||||
#undef _DEFINE_OBJARRAY
|
||||
@@ -58,7 +61,7 @@ void name::Empty() \
|
||||
\
|
||||
void name::Remove(size_t uiIndex) \
|
||||
{ \
|
||||
wxCHECK_RET( uiIndex < Count(), _T("bad index in " #name "::Remove()") ); \
|
||||
wxCHECK_RET( uiIndex < Count(), _WX_ERROR_REMOVE2(name) ); \
|
||||
\
|
||||
delete (T*)wxBaseArray::Item(uiIndex); \
|
||||
\
|
||||
@@ -99,8 +102,8 @@ int name::Index(const T& Item, bool bFromEnd) const \
|
||||
} \
|
||||
} \
|
||||
\
|
||||
return wxNOT_FOUND; \
|
||||
}
|
||||
return wxNOT_FOUND; \
|
||||
}
|
||||
|
||||
// redefine the macro so that now it will generate the class implementation
|
||||
// old value would provoke a compile-time error if this file is not included
|
||||
|
@@ -15,6 +15,7 @@
|
||||
#define _WX_BUFFER_H
|
||||
|
||||
#include "wx/wxchar.h"
|
||||
|
||||
#include <string.h> // strdup
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
@@ -27,14 +28,14 @@ class wxCharBuffer
|
||||
public:
|
||||
wxCharBuffer(const char *str)
|
||||
{
|
||||
wxASSERT_MSG( str, _T("NULL string in wxCharBuffer") );
|
||||
wxASSERT_MSG( str, T("NULL string in wxCharBuffer") );
|
||||
|
||||
m_str = str ? strdup(str) : (char *)NULL;
|
||||
}
|
||||
wxCharBuffer(size_t len)
|
||||
{
|
||||
m_str = (char *)malloc(len+1);
|
||||
m_str[len] = '\0';
|
||||
m_str[len] = '\0';
|
||||
}
|
||||
// no need to check for NULL, free() does it
|
||||
~wxCharBuffer() { free(m_str); }
|
||||
@@ -66,7 +67,7 @@ class wxWCharBuffer
|
||||
public:
|
||||
wxWCharBuffer(const wchar_t *wcs)
|
||||
{
|
||||
wxASSERT_MSG( wcs, _T("NULL string in wxWCharBuffer") );
|
||||
wxASSERT_MSG( wcs, T("NULL string in wxWCharBuffer") );
|
||||
|
||||
if (wcs) {
|
||||
size_t siz = (wcslen(wcs)+1)*sizeof(wchar_t);
|
||||
@@ -78,7 +79,7 @@ public:
|
||||
wxWCharBuffer(size_t len)
|
||||
{
|
||||
m_wcs = (wchar_t *)malloc((len+1)*sizeof(wchar_t));
|
||||
m_wcs[len] = L'\0';
|
||||
m_wcs[len] = L'\0';
|
||||
}
|
||||
|
||||
// no need to check for NULL, free() does it
|
||||
@@ -100,23 +101,23 @@ public:
|
||||
|
||||
operator const wchar_t *() const { return m_wcs; }
|
||||
wchar_t operator[](size_t n) const { return m_wcs[n]; }
|
||||
|
||||
|
||||
private:
|
||||
wchar_t *m_wcs;
|
||||
};
|
||||
#endif
|
||||
|
||||
#if wxUSE_UNICODE
|
||||
#define wxMB2WXbuf wxWCharBuffer
|
||||
#define wxWX2MBbuf wxCharBuffer
|
||||
#define wxWC2WXbuf wxChar*
|
||||
#define wxWX2WCbuf wxChar*
|
||||
#else
|
||||
#define wxMB2WXbuf wxChar*
|
||||
#define wxWX2MBbuf wxChar*
|
||||
#define wxWC2WXbuf wxCharBuffer
|
||||
#define wxWX2WCbuf wxWCharBuffer
|
||||
#endif
|
||||
#define wxMB2WXbuf wxWCharBuffer
|
||||
#define wxWX2MBbuf wxCharBuffer
|
||||
#define wxWC2WXbuf wxChar*
|
||||
#define wxWX2WCbuf wxChar*
|
||||
#else // ANSI
|
||||
#define wxMB2WXbuf wxChar*
|
||||
#define wxWX2MBbuf wxChar*
|
||||
#define wxWC2WXbuf wxCharBuffer
|
||||
#define wxWX2WCbuf wxWCharBuffer
|
||||
#endif // Unicode/ANSI
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// template class for any kind of data
|
||||
|
@@ -182,8 +182,6 @@ private:
|
||||
|
||||
#if defined(__WXMSW__)
|
||||
#include "wx/msw/caret.h"
|
||||
#elif defined(__WXPM__)
|
||||
#include "wx/os2/caret.h"
|
||||
#else
|
||||
#include "wx/generic/caret.h"
|
||||
#endif // platform
|
||||
|
@@ -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;
|
||||
|
@@ -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)
|
||||
|
@@ -115,13 +115,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 +188,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
|
||||
|
||||
@@ -215,6 +214,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 +233,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 +300,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 +499,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 +844,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
|
||||
@@ -840,7 +877,7 @@ enum wxStretch
|
||||
#define wxGA_HORIZONTAL wxHORIZONTAL
|
||||
#define wxGA_VERTICAL wxVERTICAL
|
||||
// Windows only
|
||||
#define wxGA_SMOOTH 0x0008
|
||||
#define wxGA_SMOOTH 0x0010
|
||||
|
||||
/*
|
||||
* wxSlider flags
|
||||
@@ -946,6 +983,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 +1105,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 +1507,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;
|
||||
|
169
include/wx/dialup.h
Normal file
169
include/wx/dialup.h
Normal file
@@ -0,0 +1,169 @@
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// 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
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// constants
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
extern const wxChar *wxEmptyString;
|
||||
|
||||
#define WXDIALUP_MANAGER_DEFAULT_BEACONHOST T("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
|
||||
// ----------
|
||||
|
||||
// dial the given ISP, use username and password to authentificate
|
||||
//
|
||||
// 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 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 = T("/usr/bin/pon"),
|
||||
const wxString& commandHangup = T("/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 T() macor and T typedef: we can't
|
||||
// use T() inside WX_DEFINE_ARRAY!
|
||||
#define _WX_ERROR_SIZEOF T("illegal use of DEFINE_ARRAY")
|
||||
#define _WX_ERROR_REMOVE T("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)") );
|
||||
T("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(T("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 = T(""))
|
||||
{ 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 = T(""),
|
||||
const wxString& localFilename = T(""),
|
||||
const wxString& globalFilename = T(""),
|
||||
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 T('.')
|
||||
#define wxFILE_SEP_DSK T(':')
|
||||
#define wxFILE_SEP_PATH_DOS T('\\')
|
||||
#define wxFILE_SEP_PATH_UNIX T('/')
|
||||
|
||||
// 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 T(";")
|
||||
#define wxPATH_SEP_UNIX T(":")
|
||||
|
||||
// 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,20 +1,203 @@
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// 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
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
#if !defined(__VISAGECPP__)
|
||||
// VZ: this is ugly (FIXME)
|
||||
#define M_FONTDATA GetFontData()
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
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 = T(""));
|
||||
|
||||
// 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 = T("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
|
||||
|
@@ -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 = T(""));
|
||||
|
||||
/* 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
|
||||
|
@@ -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
|
||||
|
||||
|
@@ -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 */
|
||||
|
@@ -7,12 +7,11 @@
|
||||
// Licence: wxWindows licence
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
#ifndef __GTKFONTH__
|
||||
#define __GTKFONTH__
|
||||
|
||||
#ifdef __GNUG__
|
||||
#pragma interface
|
||||
#pragma interface
|
||||
#endif
|
||||
|
||||
#include "wx/defs.h"
|
||||
@@ -21,103 +20,90 @@
|
||||
#include "wx/hash.h"
|
||||
#include "wx/gdiobj.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------
|
||||
// classes
|
||||
//-----------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
class wxDC;
|
||||
class wxPaintDC;
|
||||
class wxWindow;
|
||||
|
||||
class wxFont;
|
||||
/*
|
||||
class wxFontNameDirectory;
|
||||
*/
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------
|
||||
// global variables
|
||||
//-----------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
/*
|
||||
extern wxFontNameDirectory *wxTheFontNameDirectory;
|
||||
*/
|
||||
extern const wxChar* wxEmptyString;
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------
|
||||
// wxFont
|
||||
//-----------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
class wxFont: public wxGDIObject
|
||||
class wxFont : public wxFontBase
|
||||
{
|
||||
DECLARE_DYNAMIC_CLASS(wxFont)
|
||||
|
||||
public:
|
||||
wxFont();
|
||||
wxFont( int pointSize, int family, int style, int weight, bool underlined = FALSE,
|
||||
const wxString& face = wxEmptyString );
|
||||
wxFont( const wxFont& font );
|
||||
~wxFont();
|
||||
wxFont& operator = ( const wxFont& font );
|
||||
bool operator == ( const wxFont& font ) const;
|
||||
bool operator != ( const wxFont& font ) const;
|
||||
bool Ok() const;
|
||||
// ctors and such
|
||||
wxFont() { Init(); }
|
||||
wxFont(const wxFont& font) { Init(); Ref(font); }
|
||||
|
||||
int GetPointSize() const;
|
||||
int GetFamily() const;
|
||||
int GetStyle() const;
|
||||
int GetWeight() const;
|
||||
bool GetUnderlined() const;
|
||||
// assignment
|
||||
wxFont& operator=(const wxFont& font);
|
||||
|
||||
void SetPointSize( int pointSize );
|
||||
void SetFamily( int family );
|
||||
void SetStyle( int style );
|
||||
void SetWeight( int weight );
|
||||
void SetFaceName( const wxString& faceName );
|
||||
void SetUnderlined( bool underlined );
|
||||
|
||||
wxString GetFaceName() const;
|
||||
wxString GetFamilyString() const;
|
||||
wxString GetStyleString() const;
|
||||
wxString GetWeightString() const;
|
||||
|
||||
// implementation
|
||||
|
||||
wxFont( GdkFont* font, char *xFontName );
|
||||
void Unshare();
|
||||
wxFont(int size,
|
||||
int family,
|
||||
int style,
|
||||
int weight,
|
||||
bool underlined = FALSE,
|
||||
const wxString& face = wxEmptyString,
|
||||
wxFontEncoding encoding = wxFONTENCODING_DEFAULT)
|
||||
{
|
||||
Init();
|
||||
|
||||
GdkFont* GetInternalFont(float scale = 1.0) const;
|
||||
(void)Create(size, family, style, weight, underlined, face, encoding);
|
||||
}
|
||||
|
||||
// no data :-)
|
||||
bool Create(int size,
|
||||
int family,
|
||||
int style,
|
||||
int weight,
|
||||
bool underlined = FALSE,
|
||||
const wxString& face = wxEmptyString,
|
||||
wxFontEncoding encoding = wxFONTENCODING_DEFAULT);
|
||||
|
||||
~wxFont();
|
||||
|
||||
// implement base class pure virtuals
|
||||
virtual int GetPointSize() const;
|
||||
virtual int GetFamily() const;
|
||||
virtual int GetStyle() const;
|
||||
virtual int GetWeight() const;
|
||||
virtual wxString GetFaceName() const;
|
||||
virtual bool GetUnderlined() const;
|
||||
virtual wxFontEncoding GetEncoding() const;
|
||||
|
||||
virtual void SetPointSize( int pointSize );
|
||||
virtual void SetFamily( int family );
|
||||
virtual void SetStyle( int style );
|
||||
virtual void SetWeight( int weight );
|
||||
virtual void SetFaceName( const wxString& faceName );
|
||||
virtual void SetUnderlined( bool underlined );
|
||||
virtual void SetEncoding(wxFontEncoding encoding);
|
||||
|
||||
// implementation from now on
|
||||
wxFont( GdkFont* font, char *xFontName );
|
||||
void Unshare();
|
||||
|
||||
GdkFont* GetInternalFont(float scale = 1.0) const;
|
||||
|
||||
// no data :-)
|
||||
|
||||
protected:
|
||||
// common part of all ctors
|
||||
void Init();
|
||||
|
||||
private:
|
||||
DECLARE_DYNAMIC_CLASS(wxFont)
|
||||
};
|
||||
|
||||
/*
|
||||
//-----------------------------------------------------------------------------
|
||||
// wxFontDirectory
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
class wxFontNameDirectory: public wxObject
|
||||
{
|
||||
DECLARE_DYNAMIC_CLASS(wxFontNameDirectory)
|
||||
|
||||
public:
|
||||
wxFontNameDirectory();
|
||||
~wxFontNameDirectory();
|
||||
|
||||
void Initialize();
|
||||
void Initialize(int fontid, int family, const char *name);
|
||||
|
||||
int FindOrCreateFontId(const char *name, int family);
|
||||
char* GetAFMName(int fontid, int weight, int style);
|
||||
int GetFamily(int fontid);
|
||||
int GetFontId(const char *name);
|
||||
char* GetFontName(int fontid);
|
||||
int GetNewFontId();
|
||||
char* GetPostScriptName(int fontid, int weight, int style);
|
||||
char* GetScreenName(int fontid, int weight, int style);
|
||||
|
||||
class wxHashTable *table;
|
||||
int nextFontId;
|
||||
};
|
||||
*/
|
||||
|
||||
#endif // __GTKFONTH__
|
||||
|
@@ -64,7 +64,7 @@ public:
|
||||
|
||||
#if wxUSE_STATUSBAR
|
||||
virtual wxStatusBar* CreateStatusBar(int number=1, long style = wxST_SIZEGRIP, wxWindowID id = 0,
|
||||
const wxString& name = _T("statusBar"));
|
||||
const wxString& name = T("statusBar"));
|
||||
virtual wxStatusBar *OnCreateStatusBar( int number, long style, wxWindowID id,
|
||||
const wxString& name );
|
||||
virtual wxStatusBar *GetStatusBar() const;
|
||||
|
@@ -116,6 +116,7 @@ public:
|
||||
GtkWidget *GetConnectWidget();
|
||||
bool IsOwnGtkWindow( GdkWindow *window );
|
||||
void ApplyWidgetStyle();
|
||||
void OnInternalIdle();
|
||||
|
||||
#if wxUSE_TOOLTIPS
|
||||
void ApplyToolTip( GtkTooltips *tips, const wxChar *tip );
|
||||
|
@@ -115,14 +115,18 @@ class wxMDIChildFrame: public wxFrame
|
||||
virtual wxMenuBar *GetMenuBar() const;
|
||||
|
||||
virtual void GetClientSize( int *width, int *height ) const;
|
||||
virtual void AddChild( wxWindow *child );
|
||||
virtual void AddChild( wxWindowBase *child );
|
||||
|
||||
virtual void Activate();
|
||||
|
||||
#if wxUSE_STATUSBAR
|
||||
// no status bars
|
||||
virtual wxStatusBar* CreateStatusBar( int WXUNUSED(number)=1, long WXUNUSED(style)=1,
|
||||
wxWindowID WXUNUSED(id)=1, const wxString& WXUNUSED(name)=WXSTRINGCAST NULL ) {return (wxStatusBar*)NULL; }
|
||||
virtual wxStatusBar* CreateStatusBar( int WXUNUSED(number) = 1,
|
||||
long WXUNUSED(style) = 1,
|
||||
wxWindowID WXUNUSED(id) = 1,
|
||||
const wxString& WXUNUSED(name) = wxEmptyString)
|
||||
{ return (wxStatusBar*)NULL; }
|
||||
|
||||
virtual wxStatusBar *GetStatusBar() const { return (wxStatusBar*)NULL; }
|
||||
virtual void SetStatusText( const wxString &WXUNUSED(text), int WXUNUSED(number)=0 ) {}
|
||||
virtual void SetStatusWidths( int WXUNUSED(n), const int WXUNUSED(widths_field)[] ) {}
|
||||
|
@@ -48,11 +48,7 @@ extern const wxChar *wxToolBarNameStr;
|
||||
|
||||
class wxToolBar: public wxControl
|
||||
{
|
||||
DECLARE_EVENT_TABLE()
|
||||
DECLARE_DYNAMIC_CLASS(wxToolBar)
|
||||
|
||||
public:
|
||||
|
||||
public:
|
||||
wxToolBar(void);
|
||||
wxToolBar( wxWindow *parent, wxWindowID id,
|
||||
const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize,
|
||||
@@ -120,6 +116,12 @@ class wxToolBar: public wxControl
|
||||
int m_xMargin;
|
||||
int m_yMargin;
|
||||
bool m_hasToolAlready;
|
||||
|
||||
void OnInternalIdle();
|
||||
|
||||
private:
|
||||
DECLARE_EVENT_TABLE()
|
||||
DECLARE_DYNAMIC_CLASS(wxToolBar)
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@@ -24,22 +24,6 @@
|
||||
|
||||
class wxTimer;
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// global functions
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
/* Timer functions (milliseconds) */
|
||||
void wxStartTimer();
|
||||
|
||||
/* Gets time since last wxStartTimer or wxGetElapsedTime */
|
||||
long wxGetElapsedTime(bool resetTimer = TRUE);
|
||||
|
||||
/* EXPERIMENTAL: comment this out if it doesn't compile. */
|
||||
bool wxGetLocalTime(long *timeZone, int *dstObserved);
|
||||
|
||||
/* Get number of seconds since 00:00:00 GMT, Jan 1st 1970. */
|
||||
long wxGetCurrentTime();
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// wxTimer
|
||||
//-----------------------------------------------------------------------------
|
||||
|
@@ -25,6 +25,14 @@ extern "C" {
|
||||
#define GTK_MYFIXED_CLASS(klass) GTK_CHECK_CLASS_CAST (klass, gtk_myfixed_get_type (), GtkMyFixedClass)
|
||||
#define GTK_IS_MYFIXED(obj) GTK_CHECK_TYPE (obj, gtk_myfixed_get_type ())
|
||||
|
||||
/* Shadow types */
|
||||
typedef enum
|
||||
{
|
||||
GTK_MYSHADOW_NONE,
|
||||
GTK_MYSHADOW_THIN,
|
||||
GTK_MYSHADOW_IN,
|
||||
GTK_MYSHADOW_OUT,
|
||||
} GtkMyShadowType;
|
||||
|
||||
typedef struct _GtkMyFixed GtkMyFixed;
|
||||
typedef struct _GtkMyFixedClass GtkMyFixedClass;
|
||||
@@ -35,7 +43,7 @@ struct _GtkMyFixed
|
||||
GtkContainer container;
|
||||
GList *children;
|
||||
#if (GTK_MINOR_VERSION > 0)
|
||||
GtkShadowType shadow_type;
|
||||
GtkMyShadowType shadow_type;
|
||||
#endif
|
||||
};
|
||||
|
||||
@@ -63,7 +71,7 @@ guint gtk_myfixed_get_type (void);
|
||||
GtkWidget* gtk_myfixed_new (void);
|
||||
#if (GTK_MINOR_VERSION > 0)
|
||||
void gtk_myfixed_set_shadow_type (GtkMyFixed *myfixed,
|
||||
GtkShadowType type);
|
||||
GtkMyShadowType type);
|
||||
#endif
|
||||
void gtk_myfixed_put (GtkMyFixed *myfixed,
|
||||
GtkWidget *widget,
|
||||
|
@@ -62,7 +62,7 @@ public:
|
||||
virtual void SetFocus();
|
||||
virtual bool AcceptsFocus() const;
|
||||
|
||||
virtual bool Reparent( wxWindow *newParent );
|
||||
virtual bool Reparent( wxWindowBase *newParent );
|
||||
|
||||
virtual void WarpPointer(int x, int y);
|
||||
virtual void CaptureMouse();
|
||||
|
@@ -7,12 +7,11 @@
|
||||
// Licence: wxWindows licence
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
#ifndef __GTKFONTH__
|
||||
#define __GTKFONTH__
|
||||
|
||||
#ifdef __GNUG__
|
||||
#pragma interface
|
||||
#pragma interface
|
||||
#endif
|
||||
|
||||
#include "wx/defs.h"
|
||||
@@ -21,103 +20,90 @@
|
||||
#include "wx/hash.h"
|
||||
#include "wx/gdiobj.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------
|
||||
// classes
|
||||
//-----------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
class wxDC;
|
||||
class wxPaintDC;
|
||||
class wxWindow;
|
||||
|
||||
class wxFont;
|
||||
/*
|
||||
class wxFontNameDirectory;
|
||||
*/
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------
|
||||
// global variables
|
||||
//-----------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
/*
|
||||
extern wxFontNameDirectory *wxTheFontNameDirectory;
|
||||
*/
|
||||
extern const wxChar* wxEmptyString;
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------
|
||||
// wxFont
|
||||
//-----------------------------------------------------------------------------
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
class wxFont: public wxGDIObject
|
||||
class wxFont : public wxFontBase
|
||||
{
|
||||
DECLARE_DYNAMIC_CLASS(wxFont)
|
||||
|
||||
public:
|
||||
wxFont();
|
||||
wxFont( int pointSize, int family, int style, int weight, bool underlined = FALSE,
|
||||
const wxString& face = wxEmptyString );
|
||||
wxFont( const wxFont& font );
|
||||
~wxFont();
|
||||
wxFont& operator = ( const wxFont& font );
|
||||
bool operator == ( const wxFont& font ) const;
|
||||
bool operator != ( const wxFont& font ) const;
|
||||
bool Ok() const;
|
||||
// ctors and such
|
||||
wxFont() { Init(); }
|
||||
wxFont(const wxFont& font) { Init(); Ref(font); }
|
||||
|
||||
int GetPointSize() const;
|
||||
int GetFamily() const;
|
||||
int GetStyle() const;
|
||||
int GetWeight() const;
|
||||
bool GetUnderlined() const;
|
||||
// assignment
|
||||
wxFont& operator=(const wxFont& font);
|
||||
|
||||
void SetPointSize( int pointSize );
|
||||
void SetFamily( int family );
|
||||
void SetStyle( int style );
|
||||
void SetWeight( int weight );
|
||||
void SetFaceName( const wxString& faceName );
|
||||
void SetUnderlined( bool underlined );
|
||||
|
||||
wxString GetFaceName() const;
|
||||
wxString GetFamilyString() const;
|
||||
wxString GetStyleString() const;
|
||||
wxString GetWeightString() const;
|
||||
|
||||
// implementation
|
||||
|
||||
wxFont( GdkFont* font, char *xFontName );
|
||||
void Unshare();
|
||||
wxFont(int size,
|
||||
int family,
|
||||
int style,
|
||||
int weight,
|
||||
bool underlined = FALSE,
|
||||
const wxString& face = wxEmptyString,
|
||||
wxFontEncoding encoding = wxFONTENCODING_DEFAULT)
|
||||
{
|
||||
Init();
|
||||
|
||||
GdkFont* GetInternalFont(float scale = 1.0) const;
|
||||
(void)Create(size, family, style, weight, underlined, face, encoding);
|
||||
}
|
||||
|
||||
// no data :-)
|
||||
bool Create(int size,
|
||||
int family,
|
||||
int style,
|
||||
int weight,
|
||||
bool underlined = FALSE,
|
||||
const wxString& face = wxEmptyString,
|
||||
wxFontEncoding encoding = wxFONTENCODING_DEFAULT);
|
||||
|
||||
~wxFont();
|
||||
|
||||
// implement base class pure virtuals
|
||||
virtual int GetPointSize() const;
|
||||
virtual int GetFamily() const;
|
||||
virtual int GetStyle() const;
|
||||
virtual int GetWeight() const;
|
||||
virtual wxString GetFaceName() const;
|
||||
virtual bool GetUnderlined() const;
|
||||
virtual wxFontEncoding GetEncoding() const;
|
||||
|
||||
virtual void SetPointSize( int pointSize );
|
||||
virtual void SetFamily( int family );
|
||||
virtual void SetStyle( int style );
|
||||
virtual void SetWeight( int weight );
|
||||
virtual void SetFaceName( const wxString& faceName );
|
||||
virtual void SetUnderlined( bool underlined );
|
||||
virtual void SetEncoding(wxFontEncoding encoding);
|
||||
|
||||
// implementation from now on
|
||||
wxFont( GdkFont* font, char *xFontName );
|
||||
void Unshare();
|
||||
|
||||
GdkFont* GetInternalFont(float scale = 1.0) const;
|
||||
|
||||
// no data :-)
|
||||
|
||||
protected:
|
||||
// common part of all ctors
|
||||
void Init();
|
||||
|
||||
private:
|
||||
DECLARE_DYNAMIC_CLASS(wxFont)
|
||||
};
|
||||
|
||||
/*
|
||||
//-----------------------------------------------------------------------------
|
||||
// wxFontDirectory
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
class wxFontNameDirectory: public wxObject
|
||||
{
|
||||
DECLARE_DYNAMIC_CLASS(wxFontNameDirectory)
|
||||
|
||||
public:
|
||||
wxFontNameDirectory();
|
||||
~wxFontNameDirectory();
|
||||
|
||||
void Initialize();
|
||||
void Initialize(int fontid, int family, const char *name);
|
||||
|
||||
int FindOrCreateFontId(const char *name, int family);
|
||||
char* GetAFMName(int fontid, int weight, int style);
|
||||
int GetFamily(int fontid);
|
||||
int GetFontId(const char *name);
|
||||
char* GetFontName(int fontid);
|
||||
int GetNewFontId();
|
||||
char* GetPostScriptName(int fontid, int weight, int style);
|
||||
char* GetScreenName(int fontid, int weight, int style);
|
||||
|
||||
class wxHashTable *table;
|
||||
int nextFontId;
|
||||
};
|
||||
*/
|
||||
|
||||
#endif // __GTKFONTH__
|
||||
|
@@ -64,7 +64,7 @@ public:
|
||||
|
||||
#if wxUSE_STATUSBAR
|
||||
virtual wxStatusBar* CreateStatusBar(int number=1, long style = wxST_SIZEGRIP, wxWindowID id = 0,
|
||||
const wxString& name = _T("statusBar"));
|
||||
const wxString& name = T("statusBar"));
|
||||
virtual wxStatusBar *OnCreateStatusBar( int number, long style, wxWindowID id,
|
||||
const wxString& name );
|
||||
virtual wxStatusBar *GetStatusBar() const;
|
||||
|
@@ -116,6 +116,7 @@ public:
|
||||
GtkWidget *GetConnectWidget();
|
||||
bool IsOwnGtkWindow( GdkWindow *window );
|
||||
void ApplyWidgetStyle();
|
||||
void OnInternalIdle();
|
||||
|
||||
#if wxUSE_TOOLTIPS
|
||||
void ApplyToolTip( GtkTooltips *tips, const wxChar *tip );
|
||||
|
@@ -115,14 +115,18 @@ class wxMDIChildFrame: public wxFrame
|
||||
virtual wxMenuBar *GetMenuBar() const;
|
||||
|
||||
virtual void GetClientSize( int *width, int *height ) const;
|
||||
virtual void AddChild( wxWindow *child );
|
||||
virtual void AddChild( wxWindowBase *child );
|
||||
|
||||
virtual void Activate();
|
||||
|
||||
#if wxUSE_STATUSBAR
|
||||
// no status bars
|
||||
virtual wxStatusBar* CreateStatusBar( int WXUNUSED(number)=1, long WXUNUSED(style)=1,
|
||||
wxWindowID WXUNUSED(id)=1, const wxString& WXUNUSED(name)=WXSTRINGCAST NULL ) {return (wxStatusBar*)NULL; }
|
||||
virtual wxStatusBar* CreateStatusBar( int WXUNUSED(number) = 1,
|
||||
long WXUNUSED(style) = 1,
|
||||
wxWindowID WXUNUSED(id) = 1,
|
||||
const wxString& WXUNUSED(name) = wxEmptyString)
|
||||
{ return (wxStatusBar*)NULL; }
|
||||
|
||||
virtual wxStatusBar *GetStatusBar() const { return (wxStatusBar*)NULL; }
|
||||
virtual void SetStatusText( const wxString &WXUNUSED(text), int WXUNUSED(number)=0 ) {}
|
||||
virtual void SetStatusWidths( int WXUNUSED(n), const int WXUNUSED(widths_field)[] ) {}
|
||||
|
@@ -48,11 +48,7 @@ extern const wxChar *wxToolBarNameStr;
|
||||
|
||||
class wxToolBar: public wxControl
|
||||
{
|
||||
DECLARE_EVENT_TABLE()
|
||||
DECLARE_DYNAMIC_CLASS(wxToolBar)
|
||||
|
||||
public:
|
||||
|
||||
public:
|
||||
wxToolBar(void);
|
||||
wxToolBar( wxWindow *parent, wxWindowID id,
|
||||
const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize,
|
||||
@@ -120,6 +116,12 @@ class wxToolBar: public wxControl
|
||||
int m_xMargin;
|
||||
int m_yMargin;
|
||||
bool m_hasToolAlready;
|
||||
|
||||
void OnInternalIdle();
|
||||
|
||||
private:
|
||||
DECLARE_EVENT_TABLE()
|
||||
DECLARE_DYNAMIC_CLASS(wxToolBar)
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@@ -24,22 +24,6 @@
|
||||
|
||||
class wxTimer;
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// global functions
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
/* Timer functions (milliseconds) */
|
||||
void wxStartTimer();
|
||||
|
||||
/* Gets time since last wxStartTimer or wxGetElapsedTime */
|
||||
long wxGetElapsedTime(bool resetTimer = TRUE);
|
||||
|
||||
/* EXPERIMENTAL: comment this out if it doesn't compile. */
|
||||
bool wxGetLocalTime(long *timeZone, int *dstObserved);
|
||||
|
||||
/* Get number of seconds since 00:00:00 GMT, Jan 1st 1970. */
|
||||
long wxGetCurrentTime();
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// wxTimer
|
||||
//-----------------------------------------------------------------------------
|
||||
|
@@ -25,6 +25,14 @@ extern "C" {
|
||||
#define GTK_MYFIXED_CLASS(klass) GTK_CHECK_CLASS_CAST (klass, gtk_myfixed_get_type (), GtkMyFixedClass)
|
||||
#define GTK_IS_MYFIXED(obj) GTK_CHECK_TYPE (obj, gtk_myfixed_get_type ())
|
||||
|
||||
/* Shadow types */
|
||||
typedef enum
|
||||
{
|
||||
GTK_MYSHADOW_NONE,
|
||||
GTK_MYSHADOW_THIN,
|
||||
GTK_MYSHADOW_IN,
|
||||
GTK_MYSHADOW_OUT,
|
||||
} GtkMyShadowType;
|
||||
|
||||
typedef struct _GtkMyFixed GtkMyFixed;
|
||||
typedef struct _GtkMyFixedClass GtkMyFixedClass;
|
||||
@@ -35,7 +43,7 @@ struct _GtkMyFixed
|
||||
GtkContainer container;
|
||||
GList *children;
|
||||
#if (GTK_MINOR_VERSION > 0)
|
||||
GtkShadowType shadow_type;
|
||||
GtkMyShadowType shadow_type;
|
||||
#endif
|
||||
};
|
||||
|
||||
@@ -63,7 +71,7 @@ guint gtk_myfixed_get_type (void);
|
||||
GtkWidget* gtk_myfixed_new (void);
|
||||
#if (GTK_MINOR_VERSION > 0)
|
||||
void gtk_myfixed_set_shadow_type (GtkMyFixed *myfixed,
|
||||
GtkShadowType type);
|
||||
GtkMyShadowType type);
|
||||
#endif
|
||||
void gtk_myfixed_put (GtkMyFixed *myfixed,
|
||||
GtkWidget *widget,
|
||||
|
@@ -62,7 +62,7 @@ public:
|
||||
virtual void SetFocus();
|
||||
virtual bool AcceptsFocus() const;
|
||||
|
||||
virtual bool Reparent( wxWindow *newParent );
|
||||
virtual bool Reparent( wxWindowBase *newParent );
|
||||
|
||||
virtual void WarpPointer(int x, int y);
|
||||
virtual void CaptureMouse();
|
||||
|
@@ -39,8 +39,8 @@ class WXDLLEXPORT wxHelpControllerBase: public wxObject
|
||||
// Must call this to set the filename and server name.
|
||||
// server is only required when implementing TCP/IP-based
|
||||
// help controllers.
|
||||
virtual bool Initialize(const wxString& WXUNUSED(file), int WXUNUSED(server) ) { return FALSE; };
|
||||
virtual bool Initialize(const wxString& file) = 0;
|
||||
virtual bool Initialize(const wxString& WXUNUSED(file), int WXUNUSED(server) ) { return FALSE; }
|
||||
virtual bool Initialize(const wxString& WXUNUSED(file)) { return FALSE; }
|
||||
|
||||
// Set viewer: only relevant to some kinds of controller
|
||||
virtual void SetViewer(const wxString& WXUNUSED(viewer), long WXUNUSED(flags) = 0) {}
|
||||
@@ -52,18 +52,18 @@ class WXDLLEXPORT wxHelpControllerBase: public wxObject
|
||||
virtual bool DisplayBlock(long blockNo) = 0;
|
||||
virtual bool KeywordSearch(const wxString& k) = 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
|
||||
}
|
||||
|
@@ -1,9 +1,10 @@
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// Name: forcelink.h
|
||||
// Name: forcelnk.h
|
||||
// Purpose: see bellow
|
||||
// Author: Vaclav Slavik
|
||||
// Copyright: (c) 1999 Vaclav Slavik
|
||||
// Licence: wxWindows Licence
|
||||
// RCS-ID: $Id$
|
||||
// Copyright: (c) Vaclav Slavik
|
||||
// Licence: wxWindows licence
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/*
|
||||
@@ -36,8 +37,8 @@ See mod_*.cpp and htmlwin.cpp for example :-)
|
||||
*/
|
||||
|
||||
|
||||
#ifndef __FORCELINK_H__
|
||||
#define __FORCELINK_H__
|
||||
#ifndef _WX_FORCELNK_H_
|
||||
#define _WX_FORCELNK_H_
|
||||
|
||||
|
||||
|
||||
@@ -56,4 +57,4 @@ See mod_*.cpp and htmlwin.cpp for example :-)
|
||||
_link_dummy_func_##module_name ();
|
||||
|
||||
|
||||
#endif // __FORCELINK_H__
|
||||
#endif // _WX_FORCELNK_H_
|
78
include/wx/html/helpctrl.h
Normal file
78
include/wx/html/helpctrl.h
Normal file
@@ -0,0 +1,78 @@
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// Name: helpctrl.h
|
||||
// Purpose: wxHtmlHelpController
|
||||
// Notes: Based on htmlhelp.cpp, implementing a monolithic
|
||||
// HTML Help controller class, by Vaclav Slavik
|
||||
// Author: Harm van der Heijden and Vaclav Slavik
|
||||
// RCS-ID: $Id$
|
||||
// Copyright: (c) Harm van der Heijden and Vaclav Slavik
|
||||
// Licence: wxWindows licence
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef _WX_HELPCTRL_H_
|
||||
#define _WX_HELPCTRL_H_
|
||||
|
||||
#include "wx/defs.h"
|
||||
|
||||
#ifdef __GNUG__
|
||||
#pragma interface
|
||||
#endif
|
||||
|
||||
#if wxUSE_HTML
|
||||
|
||||
#include "helpfrm.h"
|
||||
|
||||
class WXDLLEXPORT wxHtmlHelpController : public wxEvtHandler
|
||||
{
|
||||
DECLARE_DYNAMIC_CLASS(wxHtmlHelpController)
|
||||
|
||||
public:
|
||||
wxHtmlHelpController();
|
||||
virtual ~wxHtmlHelpController();
|
||||
|
||||
void SetTitleFormat(const wxString& format);
|
||||
void SetTempDir(const wxString& path) { m_helpData.SetTempDir(path); }
|
||||
bool AddBook(const wxString& book, bool show_wait_msg = FALSE);
|
||||
bool Display(const wxString& x) {
|
||||
CreateHelpWindow(); return m_helpFrame->Display(x);
|
||||
}
|
||||
bool Display(int id) {
|
||||
CreateHelpWindow(); return m_helpFrame->Display(id);
|
||||
}
|
||||
bool DisplayContents() {
|
||||
CreateHelpWindow(); return m_helpFrame->DisplayContents();
|
||||
}
|
||||
bool DisplayIndex() {
|
||||
CreateHelpWindow(); return m_helpFrame->DisplayIndex();
|
||||
}
|
||||
bool KeywordSearch(const wxString& keyword) {
|
||||
CreateHelpWindow(); return KeywordSearch(keyword);
|
||||
}
|
||||
wxHtmlHelpFrame* GetFrame() { return m_helpFrame; }
|
||||
void UseConfig(wxConfigBase *config, const wxString& rootpath = wxEmptyString) {
|
||||
m_Config = config; m_ConfigRoot = rootpath;
|
||||
ReadCustomization(config, rootpath);
|
||||
}
|
||||
// Assigns config object to the Ctrl. This config is then
|
||||
// used in subsequent calls to Read/WriteCustomization of both help
|
||||
// Ctrl and it's wxHtmlWindow
|
||||
virtual void ReadCustomization(wxConfigBase *cfg, const wxString& path = wxEmptyString);
|
||||
virtual void WriteCustomization(wxConfigBase *cfg, const wxString& path = wxEmptyString);
|
||||
virtual void CreateHelpWindow(bool show_progress = FALSE);
|
||||
virtual void DestroyHelpWindow() {
|
||||
//if (m_Config) WriteCustomization(m_Config, m_ConfigRoot);
|
||||
if (m_helpFrame) m_helpFrame->Destroy();
|
||||
}
|
||||
protected:
|
||||
void OnCloseFrame(wxCloseEvent& evt) { m_helpFrame = NULL; evt.Skip(); }
|
||||
wxHtmlHelpData m_helpData;
|
||||
wxHtmlHelpFrame* m_helpFrame;
|
||||
wxConfigBase *m_Config;
|
||||
wxString m_ConfigRoot;
|
||||
wxString m_titleFormat;
|
||||
DECLARE_EVENT_TABLE()
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
#endif // _WX_HELPCTRL_H_
|
191
include/wx/html/helpdata.h
Normal file
191
include/wx/html/helpdata.h
Normal file
@@ -0,0 +1,191 @@
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// Name: helpdata.h
|
||||
// Purpose: wxHtmlHelpData
|
||||
// Notes: Based on htmlhelp.cpp, implementing a monolithic
|
||||
// HTML Help controller class, by Vaclav Slavik
|
||||
// Author: Harm van der Heijden and Vaclav Slavik
|
||||
// RCS-ID: $Id$
|
||||
// Copyright: (c) Harm van der Heijden and Vaclav Slavik
|
||||
// Licence: wxWindows licence
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef _WX_HELPDATA_H_
|
||||
#define _WX_HELPDATA_H_
|
||||
|
||||
#ifdef __GNUG__
|
||||
#pragma interface
|
||||
#endif
|
||||
|
||||
#include "wx/defs.h"
|
||||
|
||||
#if wxUSE_HTML
|
||||
|
||||
#include "wx/object.h"
|
||||
#include "wx/string.h"
|
||||
#include "wx/filesys.h"
|
||||
#include "wx/dynarray.h"
|
||||
|
||||
//--------------------------------------------------------------------------------
|
||||
// helper classes & structs
|
||||
//--------------------------------------------------------------------------------
|
||||
|
||||
class WXDLLEXPORT wxHtmlBookRecord : public wxObject
|
||||
{
|
||||
public:
|
||||
wxHtmlBookRecord(const wxString& basepath, const wxString& title,
|
||||
const wxString& start) {
|
||||
m_BasePath = basepath; m_Title = title; m_Start = start;
|
||||
// for debugging, give the contents index obvious default values
|
||||
contents_start = contents_end = -1;
|
||||
}
|
||||
wxString GetTitle() const {return m_Title;}
|
||||
wxString GetStart() const {return m_Start;}
|
||||
wxString GetBasePath() const {return m_BasePath;}
|
||||
/* SetContentsRange: store in the bookrecord where in the index/contents lists the
|
||||
* book's records are stored. This to facilitate searching in a specific book.
|
||||
* This code will have to be revised when loading/removing books becomes dynamic.
|
||||
* (as opposed to appending only)
|
||||
* Note that storing index range is pointless, because the index is alphab. sorted. */
|
||||
void SetContentsRange(int start, int end) { contents_start = start; contents_end = end; }
|
||||
int GetContentsStart() const { return contents_start; }
|
||||
int GetContentsEnd() const { return contents_end; }
|
||||
protected:
|
||||
wxString m_BasePath;
|
||||
wxString m_Title;
|
||||
wxString m_Start;
|
||||
int contents_start;
|
||||
int contents_end;
|
||||
};
|
||||
|
||||
|
||||
#undef WXDLLEXPORTLOCAL
|
||||
#define WXDLLEXPORTLOCAL WXDLLEXPORT
|
||||
// ?? Don't know why - but Allen Van Sickel reported it to fix problems with DLL
|
||||
WX_DECLARE_OBJARRAY(wxHtmlBookRecord, wxHtmlBookRecArray);
|
||||
|
||||
#undef WXDLLEXPORTLOCAL
|
||||
#define WXDLLEXPORTLOCAL
|
||||
|
||||
|
||||
typedef struct
|
||||
{
|
||||
short int m_Level;
|
||||
int m_ID;
|
||||
char* m_Name;
|
||||
char* m_Page;
|
||||
wxHtmlBookRecord *m_Book;
|
||||
} wxHtmlContentsItem;
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// wxSearchEngine
|
||||
// This class takes input streams and scans them for occurence
|
||||
// of keyword(s)
|
||||
//------------------------------------------------------------------------------
|
||||
class WXDLLEXPORT wxSearchEngine : public wxObject
|
||||
{
|
||||
private:
|
||||
char *m_Keyword;
|
||||
|
||||
public:
|
||||
wxSearchEngine() : wxObject() {m_Keyword = NULL;}
|
||||
~wxSearchEngine() {if (m_Keyword) free(m_Keyword);}
|
||||
|
||||
virtual void LookFor(const wxString& keyword);
|
||||
// Sets the keyword we will be searching for
|
||||
|
||||
virtual bool Scan(wxInputStream *stream);
|
||||
// Scans the stream for the keyword.
|
||||
// Returns TRUE if the stream contains keyword, fALSE otherwise
|
||||
};
|
||||
|
||||
class wxHtmlHelpData;
|
||||
|
||||
// State information of a search action. I'd have prefered to make this a nested
|
||||
// class inside wxHtmlHelpData, but that's against coding standards :-(
|
||||
// Never construct this class yourself, obtain a copy from
|
||||
// wxHtmlHelpData::PrepareKeywordSearch(const wxString& key)
|
||||
class WXDLLEXPORT wxHtmlSearchStatus
|
||||
{
|
||||
public:
|
||||
// constructor; supply wxHtmlHelpData ptr, the keyword and (optionally) the
|
||||
// title of the book to search. By default, all books are searched.
|
||||
wxHtmlSearchStatus(wxHtmlHelpData* base, const wxString& keyword,
|
||||
const wxString& book = wxEmptyString);
|
||||
bool Search(); // do the next iteration
|
||||
bool IsActive() { return m_Active; }
|
||||
int GetCurIndex() { return m_CurIndex; }
|
||||
int GetMaxIndex() { return m_MaxIndex; }
|
||||
const wxString& GetName() { return m_Name; }
|
||||
wxHtmlContentsItem* GetContentsItem() { return m_ContentsItem; }
|
||||
private:
|
||||
wxHtmlHelpData* m_Data;
|
||||
wxSearchEngine m_Engine;
|
||||
wxString m_Keyword, m_Name, m_LastPage;
|
||||
wxHtmlContentsItem* m_ContentsItem;
|
||||
bool m_Active; // search is not finished
|
||||
int m_CurIndex; // where we are now
|
||||
int m_MaxIndex; // number of files we search
|
||||
// For progress bar: 100*curindex/maxindex = % complete
|
||||
};
|
||||
|
||||
class WXDLLEXPORT wxHtmlHelpData : public wxObject
|
||||
{
|
||||
DECLARE_DYNAMIC_CLASS(wxHtmlHelpData)
|
||||
|
||||
friend class wxHtmlSearchStatus;
|
||||
|
||||
public:
|
||||
wxHtmlHelpData();
|
||||
~wxHtmlHelpData();
|
||||
|
||||
void SetTempDir(const wxString& path);
|
||||
// Sets directory where temporary files are stored.
|
||||
// These temp files are index & contents file in binary (much faster to read)
|
||||
// form. These files are NOT deleted on program's exit.
|
||||
|
||||
bool AddBook(const wxString& book);
|
||||
// Adds new book. 'book' is location of .htb file (stands for "html book").
|
||||
// See documentation for details on its format.
|
||||
// Returns success.
|
||||
bool AddBookParam(const wxString& title, const wxString& contfile,
|
||||
const wxString& indexfile=wxEmptyString,
|
||||
const wxString& deftopic=wxEmptyString,
|
||||
const wxString& path=wxEmptyString);
|
||||
|
||||
// Some accessing stuff
|
||||
wxString FindPageByName(const wxString& page);
|
||||
// returns URL of page on basis of (file)name
|
||||
wxString FindPageById(int id);
|
||||
// returns URL of page on basis of MS id
|
||||
|
||||
const wxHtmlBookRecArray& GetBookRecArray() { return m_BookRecords; }
|
||||
wxHtmlContentsItem* GetContents() { return m_Contents; }
|
||||
int GetContentsCnt() { return m_ContentsCnt; }
|
||||
wxHtmlContentsItem* GetIndex() { return m_Index; }
|
||||
int GetIndexCnt() { return m_IndexCnt; }
|
||||
|
||||
protected:
|
||||
wxString m_TempPath;
|
||||
|
||||
wxHtmlBookRecArray m_BookRecords;
|
||||
// each book has one record in this array
|
||||
wxHtmlContentsItem* m_Contents;
|
||||
int m_ContentsCnt;
|
||||
// list of all available books and pages.
|
||||
wxHtmlContentsItem* m_Index;
|
||||
int m_IndexCnt;
|
||||
// list of index items
|
||||
|
||||
protected:
|
||||
bool LoadMSProject(wxHtmlBookRecord *book, wxFileSystem& fsys,
|
||||
const wxString& indexfile, const wxString& contentsfile);
|
||||
// Imports .hhp files (MS HTML Help Workshop)
|
||||
bool LoadCachedBook(wxHtmlBookRecord *book, wxInputStream *f);
|
||||
// Reads binary book
|
||||
bool SaveCachedBook(wxHtmlBookRecord *book, wxOutputStream *f);
|
||||
// Writes binary book
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
#endif
|
183
include/wx/html/helpfrm.h
Normal file
183
include/wx/html/helpfrm.h
Normal file
@@ -0,0 +1,183 @@
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// Name: helpfrm.h
|
||||
// Purpose: wxHtmlHelpFrame
|
||||
// Notes: Based on htmlhelp.cpp, implementing a monolithic
|
||||
// HTML Help controller class, by Vaclav Slavik
|
||||
// Author: Harm van der Heijden and Vaclav Slavik
|
||||
// RCS-ID: $Id$
|
||||
// Copyright: (c) Harm van der Heijden and Vaclav Slavik
|
||||
// Licence: wxWindows licence
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef _WX_HELPFRM_H_
|
||||
#define _WX_HELPFRM_H_
|
||||
|
||||
#ifdef __GNUG__
|
||||
#pragma interface
|
||||
#endif
|
||||
|
||||
#include "wx/defs.h"
|
||||
|
||||
#if wxUSE_HTML
|
||||
|
||||
#include "helpdata.h"
|
||||
#include "wx/window.h"
|
||||
#include "wx/frame.h"
|
||||
#include "wx/config.h"
|
||||
#include "wx/splitter.h"
|
||||
#include "wx/notebook.h"
|
||||
#include "wx/listbox.h"
|
||||
#include "wx/choice.h"
|
||||
#include "wx/html/htmlwin.h"
|
||||
|
||||
// style flags for the Help Frame
|
||||
const int wxHF_TOOLBAR = 1;
|
||||
const int wxHF_CONTENTS = 2;
|
||||
const int wxHF_INDEX = 4;
|
||||
const int wxHF_SEARCH = 8;
|
||||
const int wxHF_DEFAULTSTYLE = -1;
|
||||
|
||||
// Command IDs :
|
||||
enum {
|
||||
wxID_HTML_PANEL = wxID_HIGHEST + 1,
|
||||
wxID_HTML_BACK,
|
||||
wxID_HTML_FORWARD,
|
||||
wxID_HTML_TREECTRL,
|
||||
wxID_HTML_INDEXPAGE,
|
||||
wxID_HTML_INDEXLIST,
|
||||
wxID_HTML_NOTEBOOK,
|
||||
wxID_HTML_SEARCHPAGE,
|
||||
wxID_HTML_SEARCHTEXT,
|
||||
wxID_HTML_SEARCHLIST,
|
||||
wxID_HTML_SEARCHBUTTON,
|
||||
wxID_HTML_SEARCHCHOICE,
|
||||
wxID_HTML_HELPFRAME // the id of wxHtmlHelpController's helpframe
|
||||
};
|
||||
|
||||
class WXDLLEXPORT wxHtmlHelpFrameCfg
|
||||
{
|
||||
public:
|
||||
wxHtmlHelpFrameCfg() {};
|
||||
long x, y, w, h;
|
||||
long sashpos;
|
||||
bool navig_on;
|
||||
int style; // flags given to wxHtmlHelpFrame ctor
|
||||
wxString titleformat;
|
||||
};
|
||||
|
||||
class WXDLLEXPORT wxHtmlHelpFrame : public wxFrame
|
||||
{
|
||||
DECLARE_DYNAMIC_CLASS(wxHtmlHelpFrame)
|
||||
|
||||
public:
|
||||
wxHtmlHelpFrame(wxHtmlHelpData* data = NULL) { Init(data); }
|
||||
wxHtmlHelpFrame(wxWindow* parent, int wxWindowID,
|
||||
const wxString& title = wxEmptyString,
|
||||
int style = wxHF_DEFAULTSTYLE, wxHtmlHelpData* data = NULL);
|
||||
bool Create(wxWindow* parent, wxWindowID id, const wxString& title = wxEmptyString,
|
||||
int style = wxHF_DEFAULTSTYLE);
|
||||
~wxHtmlHelpFrame();
|
||||
|
||||
wxHtmlHelpData* GetData() { return m_Data; }
|
||||
|
||||
void SetTitleFormat(const wxString& format) {
|
||||
if (m_HtmlWin)
|
||||
m_HtmlWin->SetRelatedFrame(this, format);
|
||||
m_TitleFormat = format;
|
||||
}
|
||||
// Sets format of title of the frame. Must contain exactly one "%s"
|
||||
// (for title of displayed HTML page)
|
||||
|
||||
bool Display(const wxString& x);
|
||||
// Displays page x. If not found it will offect the user a choice of
|
||||
// searching books.
|
||||
// Looking for the page runs in these steps:
|
||||
// 1. try to locate file named x (if x is for example "doc/howto.htm")
|
||||
// 2. try to open starting page of book x
|
||||
// 3. try to find x in contents (if x is for example "How To ...")
|
||||
// 4. try to find x in index (if x is for example "How To ...")
|
||||
bool Display(const int id);
|
||||
// Alternative version that works with numeric ID.
|
||||
// (uses extension to MS format, <param name="ID" value=id>, see docs)
|
||||
|
||||
bool DisplayContents();
|
||||
// Displays help window and focuses contents.
|
||||
|
||||
bool DisplayIndex();
|
||||
// Displays help window and focuses index.
|
||||
|
||||
bool KeywordSearch(const wxString& keyword);
|
||||
// Searches for keyword. Returns TRUE and display page if found, return
|
||||
// FALSE otherwise
|
||||
// Syntax of keyword is Altavista-like:
|
||||
// * words are separated by spaces
|
||||
// (but "\"hello world\"" is only one world "hello world")
|
||||
// * word may be pretended by + or -
|
||||
// (+ : page must contain the word ; - : page can't contain the word)
|
||||
// * if there is no + or - before the word, + is default
|
||||
void RefreshLists(bool show_progress = FALSE);
|
||||
// Refreshes Contents and Index tabs
|
||||
void CreateContents(bool show_progress = FALSE);
|
||||
// Adds items to m_Contents tree control
|
||||
void CreateIndex(bool show_progress = FALSE);
|
||||
// Adds items to m_IndexList
|
||||
void CreateSearch();
|
||||
// Add books to search choice panel
|
||||
void UseConfig(wxConfigBase *config, const wxString& rootpath = wxEmptyString) {
|
||||
m_Config = config; m_ConfigRoot = rootpath;
|
||||
ReadCustomization(config, rootpath);
|
||||
}
|
||||
void ReadCustomization(wxConfigBase *cfg, const wxString& path = wxEmptyString);
|
||||
// saves custom settings into cfg config. it will use the path 'path'
|
||||
// if given, otherwise it will save info into currently selected path.
|
||||
// saved values : things set by SetFonts, SetBorders.
|
||||
void WriteCustomization(wxConfigBase *cfg, const wxString& path = wxEmptyString);
|
||||
// ...
|
||||
void OnToolbar(wxCommandEvent& event);
|
||||
void OnContentsSel(wxTreeEvent& event);
|
||||
void OnIndexSel(wxCommandEvent& event);
|
||||
void OnSearchSel(wxCommandEvent& event);
|
||||
void OnSearch(wxCommandEvent& event);
|
||||
void OnCloseWindow(wxCloseEvent& event);
|
||||
|
||||
// Images:
|
||||
enum {
|
||||
IMG_Book = 0,
|
||||
IMG_Folder,
|
||||
IMG_Page
|
||||
};
|
||||
|
||||
protected:
|
||||
wxHtmlHelpData* m_Data;
|
||||
bool m_DataCreated; // m_Data created by frame, or supplied?
|
||||
wxString m_TitleFormat; // title of the help frame
|
||||
// below are various pointers to GUI components
|
||||
wxHtmlWindow *m_HtmlWin;
|
||||
wxSplitterWindow *m_Splitter;
|
||||
wxNotebook *m_NavigPan;
|
||||
wxTreeCtrl *m_ContentsBox;
|
||||
wxImageList *m_ContentsImageList;
|
||||
wxListBox *m_IndexBox;
|
||||
wxTextCtrl *m_SearchText;
|
||||
wxButton *m_SearchButton;
|
||||
wxListBox *m_SearchList;
|
||||
wxChoice *m_SearchChoice;
|
||||
|
||||
wxHtmlHelpFrameCfg m_Cfg;
|
||||
wxConfigBase *m_Config;
|
||||
wxString m_ConfigRoot;
|
||||
|
||||
// pagenumbers of controls in notebook (usually 0,1,2)
|
||||
int m_ContentsPage;
|
||||
int m_IndexPage;
|
||||
int m_SearchPage;
|
||||
|
||||
protected:
|
||||
void Init(wxHtmlHelpData* data = NULL);
|
||||
|
||||
DECLARE_EVENT_TABLE()
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
#endif
|
@@ -3,16 +3,17 @@
|
||||
// Purpose: wxHtmlCell class is used by wxHtmlWindow/wxHtmlWinParser
|
||||
// as a basic visual element of HTML page
|
||||
// Author: Vaclav Slavik
|
||||
// RCS-ID: $Id$
|
||||
// Copyright: (c) 1999 Vaclav Slavik
|
||||
// Licence: wxWindows Licence
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
#ifndef __HTMLCELL_H__
|
||||
#define __HTMLCELL_H__
|
||||
#ifndef _WX_HTMLCELL_H_
|
||||
#define _WX_HTMLCELL_H_
|
||||
|
||||
#ifdef __GNUG__
|
||||
#pragma interface "htmlcell.h"
|
||||
#pragma interface
|
||||
#endif
|
||||
|
||||
#include "wx/defs.h"
|
||||
@@ -36,32 +37,21 @@ class wxHtmlContainerCell;
|
||||
|
||||
class WXDLLEXPORT wxHtmlCell : public wxObject
|
||||
{
|
||||
protected:
|
||||
wxHtmlCell *m_Next;
|
||||
// pointer to the next cell
|
||||
wxHtmlContainerCell *m_Parent;
|
||||
// pointer to parent cell
|
||||
long m_Width, m_Height, m_Descent;
|
||||
// dimensions of fragment
|
||||
// m_Descent is used to position text&images..
|
||||
long m_PosX, m_PosY;
|
||||
// position where the fragment is drawn
|
||||
wxString m_Link;
|
||||
// destination address if this fragment is hypertext link, "" otherwise
|
||||
|
||||
public:
|
||||
wxHtmlCell() : wxObject() {m_Next = NULL; m_Parent = NULL; m_Width = m_Height = m_Descent = 0;};
|
||||
virtual ~wxHtmlCell() {if (m_Next) delete m_Next;};
|
||||
|
||||
|
||||
void SetParent(wxHtmlContainerCell *p) {m_Parent = p;}
|
||||
wxHtmlContainerCell *GetParent() const {return m_Parent;}
|
||||
|
||||
|
||||
int GetPosX() const {return m_PosX;}
|
||||
int GetPosY() const {return m_PosY;}
|
||||
int GetWidth() const {return m_Width;}
|
||||
int GetHeight() const {return m_Height;}
|
||||
int GetDescent() const {return m_Descent;}
|
||||
virtual wxString GetLink(int x = 0, int y = 0) const {return m_Link;}
|
||||
virtual wxString GetLink(int WXUNUSED(x) = 0,
|
||||
int WXUNUSED(y) = 0) const
|
||||
{ return m_Link; }
|
||||
// returns the link associated with this cell. The position is position within
|
||||
// the cell so it varies from 0 to m_Width, from 0 to m_Height
|
||||
wxHtmlCell *GetNext() const {return m_Next;}
|
||||
@@ -84,7 +74,7 @@ class WXDLLEXPORT wxHtmlCell : public wxObject
|
||||
virtual void DrawInvisible(wxDC& dc, int x, int y) {if (m_Next) m_Next -> DrawInvisible(dc, x, y);};
|
||||
// proceed drawing actions in case the cell is not visible (scrolled out of screen).
|
||||
// This is needed to change fonts, colors and so on
|
||||
|
||||
|
||||
virtual const wxHtmlCell* Find(int condition, const void* param) const {if (m_Next) return m_Next -> Find(condition, param); else return NULL;}
|
||||
// This method returns pointer to the FIRST cell for that
|
||||
// the condition
|
||||
@@ -104,6 +94,21 @@ class WXDLLEXPORT wxHtmlCell : public wxObject
|
||||
// Parent is pointer to wxHtmlWindow that generated the event
|
||||
// HINT: if this handling is not enough for you you should use
|
||||
// wxHtmlBinderCell
|
||||
|
||||
|
||||
protected:
|
||||
wxHtmlCell *m_Next;
|
||||
// pointer to the next cell
|
||||
wxHtmlContainerCell *m_Parent;
|
||||
// pointer to parent cell
|
||||
long m_Width, m_Height, m_Descent;
|
||||
// dimensions of fragment
|
||||
// m_Descent is used to position text&images..
|
||||
long m_PosX, m_PosY;
|
||||
// position where the fragment is drawn
|
||||
wxString m_Link;
|
||||
// destination address if this fragment is hypertext link, "" otherwise
|
||||
|
||||
};
|
||||
|
||||
|
||||
@@ -170,7 +175,7 @@ class WXDLLEXPORT wxHtmlContainerCell : public wxHtmlCell
|
||||
virtual void Layout(int w);
|
||||
virtual void Draw(wxDC& dc, int x, int y, int view_y1, int view_y2);
|
||||
virtual void DrawInvisible(wxDC& dc, int x, int y);
|
||||
|
||||
|
||||
void InsertCell(wxHtmlCell *cell);
|
||||
// insert cell at the end of m_Cells list
|
||||
void SetAlignHor(int al) {m_AlignHor = al;}
|
||||
@@ -279,15 +284,7 @@ class WXDLLEXPORT wxHtmlWidgetCell : public wxHtmlCell
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // __HTMLCELL_H__
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _WX_HTMLCELL_H_
|
||||
|
||||
|
@@ -2,13 +2,14 @@
|
||||
// Name: htmldefs.h
|
||||
// Purpose: constants for wxhtml library
|
||||
// Author: Vaclav Slavik
|
||||
// RCS-ID: $Id$
|
||||
// Copyright: (c) 1999 Vaclav Slavik
|
||||
// Licence: wxWindows Licence
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
#ifndef __HTMLDEFS_H__
|
||||
#define __HTMLDEFS_H__
|
||||
#ifndef _WX_HTMLDEFS_H_
|
||||
#define _WX_HTMLDEFS_H_
|
||||
|
||||
#include "wx/defs.h"
|
||||
|
||||
@@ -95,4 +96,4 @@
|
||||
/* steps of array reallocation */
|
||||
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
@@ -1,17 +1,18 @@
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// Name: htmlfilter.h
|
||||
// Name: htmlfilt.h
|
||||
// Purpose: filters
|
||||
// Author: Vaclav Slavik
|
||||
// RCS-ID: $Id$
|
||||
// Copyright: (c) 1999 Vaclav Slavik
|
||||
// Licence: wxWindows Licence
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
#ifndef __HTMLFILTER_H__
|
||||
#define __HTMLFILTER_H__
|
||||
#ifndef _WX_HTMLFILT_H_
|
||||
#define _WX_HTMLFILT_H_
|
||||
|
||||
#ifdef __GNUG__
|
||||
#pragma interface "htmlfilter.h"
|
||||
#pragma interface
|
||||
#endif
|
||||
|
||||
#include "wx/defs.h"
|
||||
@@ -65,7 +66,6 @@ class WXDLLEXPORT wxHtmlFilterPlainText : public wxHtmlFilter
|
||||
|
||||
|
||||
|
||||
#endif
|
||||
#endif // _WX_HTMLFILT_H_
|
||||
|
||||
#endif // __HTMLFILTER_H__
|
||||
|
||||
#endif
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user