Compare commits
1394 Commits
OLD_MOUSE_
...
b4_mousewh
Author | SHA1 | Date | |
---|---|---|---|
|
236c7dd7b2 | ||
|
33ac7e6f01 | ||
|
b1d1dc510d | ||
|
f3cf386509 | ||
|
947ea04d01 | ||
|
830ed6d97d | ||
|
2f51a9ecc5 | ||
|
3d5aff50cb | ||
|
a92edd311c | ||
|
0bc0cd5d81 | ||
|
c854c7d92c | ||
|
7699e843c0 | ||
|
c112dde0a0 | ||
|
2900bd1c81 | ||
|
d9a4f62064 | ||
|
5570ec300e | ||
|
35b6b7d54a | ||
|
72d750d462 | ||
|
49348d874d | ||
|
91c41b30c2 | ||
|
9e689c0658 | ||
|
ec5d77998a | ||
|
926bb76c2a | ||
|
ed1ae3fb27 | ||
|
7114b9fa28 | ||
|
b6962846e8 | ||
|
d7ec656498 | ||
|
a51fb6427c | ||
|
adebd2d72c | ||
|
3875544933 | ||
|
51523f25d7 | ||
|
716ed2259a | ||
|
fa3541bd15 | ||
|
6957a370ff | ||
|
468ae730db | ||
|
aafe448833 | ||
|
5e8e25e729 | ||
|
9749497156 | ||
|
dad9554b4c | ||
|
d969af82fc | ||
|
30954328be | ||
|
fa1c6ab937 | ||
|
e74a9319f9 | ||
|
c97e7fa8db | ||
|
c3f4609ebb | ||
|
0de01330ba | ||
|
b86e511a9b | ||
|
424f5e2700 | ||
|
9d8bdf2dbc | ||
|
7f0275efe2 | ||
|
079c842cae | ||
|
3e968053fb | ||
|
56cff98620 | ||
|
f040060e2f | ||
|
6523de8a56 | ||
|
00a32dc1fb | ||
|
29f45f85e9 | ||
|
71d04f7ffd | ||
|
b6c8bd6959 | ||
|
c03b48d7f8 | ||
|
88c49a0f21 | ||
|
df05452ec0 | ||
|
7905ec5558 | ||
|
b0a2157c88 | ||
|
28c6addc20 | ||
|
891000d61b | ||
|
53a240f02b | ||
|
e143729845 | ||
|
67a6726a2c | ||
|
6d56eb5c56 | ||
|
7d88e2447e | ||
|
1216f52d92 | ||
|
a701b7f87e | ||
|
963a1fcd6e | ||
|
94fdced0a0 | ||
|
c2229593ba | ||
|
a0b1b91fe6 | ||
|
9ef2e675a5 | ||
|
b93d0d082d | ||
|
65ba4113c6 | ||
|
3b59b26706 | ||
|
a98f98ac6f | ||
|
6a611b39fe | ||
|
95c8801cdf | ||
|
1309ba6c7e | ||
|
3da2715fb8 | ||
|
2c1c448a24 | ||
|
1cf8c0a9d4 | ||
|
a06c1b9b72 | ||
|
2b813b73cd | ||
|
4ea45e6ba3 | ||
|
e545ddb6e5 | ||
|
6d51f22029 | ||
|
08399e45e7 | ||
|
5fd2b2c6ae | ||
|
cffbfebc68 | ||
|
0bbfe845ed | ||
|
eba0e3477b | ||
|
cb21bd1b10 | ||
|
31929f8009 | ||
|
c96ea65713 | ||
|
a8d4e3ac60 | ||
|
45ef9db336 | ||
|
ce113d5ffe | ||
|
0046ff7c4f | ||
|
3ff75b5a4f | ||
|
775c6f0cd2 | ||
|
a92d972108 | ||
|
b9c15d1092 | ||
|
efe7d6ff7e | ||
|
3417f6618c | ||
|
7529690de8 | ||
|
5cd09f0b8d | ||
|
f1339c5685 | ||
|
3f2bcf3437 | ||
|
1f3943e027 | ||
|
942bef71b0 | ||
|
b06a6b20d5 | ||
|
1600865926 | ||
|
97af118998 | ||
|
17f7bb9ed5 | ||
|
8bf30fe9b0 | ||
|
f4929e864e | ||
|
3897b707bd | ||
|
461697c2ae | ||
|
ecdce304e4 | ||
|
9c21efe301 | ||
|
807a903e68 | ||
|
0fa7981012 | ||
|
8269a90377 | ||
|
f74d0b57aa | ||
|
f15b49521a | ||
|
8cfc5426cf | ||
|
61cca9d24e | ||
|
abe5726aff | ||
|
35cd9dba7b | ||
|
5f6d6405bb | ||
|
e9c4505ef4 | ||
|
254b84f3fd | ||
|
c6b4bf32aa | ||
|
84d31cc23f | ||
|
8ab7390901 | ||
|
6b48f1bdc5 | ||
|
0a651eb856 | ||
|
1cfd32fa13 | ||
|
c8ace611be | ||
|
6057972be4 | ||
|
aac65598a1 | ||
|
45bfc84b20 | ||
|
475031bb37 | ||
|
007ae8d09d | ||
|
f4b6ffa972 | ||
|
83f96286bb | ||
|
656fc51cda | ||
|
7df9fbc3f1 | ||
|
655076c7b0 | ||
|
a9f21e71d6 | ||
|
c9cb56f7f2 | ||
|
6c34d0ede9 | ||
|
d608dde1d7 | ||
|
76ee796101 | ||
|
a69cb1cc9d | ||
|
9f96b16267 | ||
|
389b961e23 | ||
|
b9ca40a921 | ||
|
faec5a4383 | ||
|
6d167e3938 | ||
|
d143f2ad06 | ||
|
1f3154c809 | ||
|
ca8f0290a4 | ||
|
c4955899eb | ||
|
4a45223c97 | ||
|
6426998c39 | ||
|
beb0d04d04 | ||
|
21e052699d | ||
|
87cc34563c | ||
|
7018409531 | ||
|
4485629732 | ||
|
e9456d8d5b | ||
|
ed50e39ba2 | ||
|
fd88dcbccd | ||
|
f35398824b | ||
|
ea5999b96f | ||
|
11ad1132ca | ||
|
6f18aba58b | ||
|
55bd3f34b6 | ||
|
551fe3a6f0 | ||
|
62f1dc8207 | ||
|
fafa563280 | ||
|
4b6ed6bc17 | ||
|
214b7e74f0 | ||
|
a5bc50ee00 | ||
|
3bd418ca9f | ||
|
07b2eb27ec | ||
|
31d309952c | ||
|
7aaf328ffa | ||
|
03a2c06221 | ||
|
ee7841ab13 | ||
|
e1a688e45e | ||
|
ac7fb818cc | ||
|
2aeec9eccc | ||
|
809f39fe42 | ||
|
9fd258db58 | ||
|
7a65650641 | ||
|
0715c838e9 | ||
|
e938ff5e20 | ||
|
3fe813a9ad | ||
|
02cf6fdd85 | ||
|
6b3f4fb875 | ||
|
6da8e679fc | ||
|
62a879dfa0 | ||
|
1bc4d9b013 | ||
|
676304331f | ||
|
aa2d25a57a | ||
|
1af9e5c56d | ||
|
743e91ff02 | ||
|
ce20b5d721 | ||
|
0c96db12c4 | ||
|
abb74e9763 | ||
|
ff43029e01 | ||
|
6ea5c52d29 | ||
|
db400410d8 | ||
|
c447ce1745 | ||
|
1454d4e659 | ||
|
04a429cb8a | ||
|
bddab5e98b | ||
|
fbcadfca9c | ||
|
96bfd05319 | ||
|
28af3deb9f | ||
|
ce16e5d78f | ||
|
068cfb66c2 | ||
|
d9b9876f6e | ||
|
b5badcb5c5 | ||
|
7ba4fbebbc | ||
|
4658c44ec2 | ||
|
d8c72298ec | ||
|
7a56de34ab | ||
|
e5aea7214d | ||
|
3abb92cea8 | ||
|
c2cf7c0184 | ||
|
569a2ae9ef | ||
|
d5408e98bc | ||
|
f3c067d2dc | ||
|
54081dc5c2 | ||
|
f515c25a2c | ||
|
58d5dfc168 | ||
|
29e2c38bc5 | ||
|
34f069a027 | ||
|
097aeb9903 | ||
|
c103ca4b4d | ||
|
921a43c1f6 | ||
|
fec19ea9ff | ||
|
fd85921189 | ||
|
b5f01ae00e | ||
|
778d618acb | ||
|
8e8d8eeff5 | ||
|
33e2941913 | ||
|
9724f75af5 | ||
|
4c27c3c631 | ||
|
47cf53ef2e | ||
|
9d9e5e5a3d | ||
|
d236a959df | ||
|
6359fa0e03 | ||
|
0326c494a9 | ||
|
42191a1dbf | ||
|
f07bb01b18 | ||
|
a7fa65b96e | ||
|
e189b07018 | ||
|
1c09ae547a | ||
|
e0672e2fc3 | ||
|
1da1216c9f | ||
|
49875c533b | ||
|
471825d745 | ||
|
4662be5945 | ||
|
f3d9dc1d87 | ||
|
1112b0c68c | ||
|
6bb38ab67e | ||
|
22d0828959 | ||
|
d74525f764 | ||
|
ad48a30eec | ||
|
873fb06d2a | ||
|
5fde6fcc9b | ||
|
67bd5bad04 | ||
|
3cfcd50b7d | ||
|
94c3c45e73 | ||
|
4c21b76f8f | ||
|
c9101ef2f5 | ||
|
4c36ca57a1 | ||
|
496e58550c | ||
|
ae54aa40bc | ||
|
1ec5903769 | ||
|
9aaf9bed0e | ||
|
23e356deb0 | ||
|
b02121c3a1 | ||
|
86435b1a7d | ||
|
c3396917e8 | ||
|
d43088ee78 | ||
|
f967115097 | ||
|
46f5ad7d2c | ||
|
2c6025bce6 | ||
|
f3412ea748 | ||
|
d25f5fbb88 | ||
|
5527476f67 | ||
|
c9f00eebab | ||
|
cf273c6718 | ||
|
3c2ec1b8ff | ||
|
a7642be106 | ||
|
f2e1c18a79 | ||
|
8a721b35f6 | ||
|
6e18ca6cf4 | ||
|
c1e820a40e | ||
|
19cf4f8086 | ||
|
b075a3bbfd | ||
|
c3357374af | ||
|
77fe02a8e9 | ||
|
fc71ef6e17 | ||
|
f0ce340942 | ||
|
5d978d07a4 | ||
|
05e7001c1a | ||
|
08b50c2c6c | ||
|
cb332bc6b7 | ||
|
4178000933 | ||
|
323af1967c | ||
|
1159a76f9c | ||
|
45805ba322 | ||
|
5afb945835 | ||
|
9c0b55475a | ||
|
7172b423aa | ||
|
d8408fc65f | ||
|
23122f8c57 | ||
|
75ef572207 | ||
|
6e6d9f9e7b | ||
|
51d673384e | ||
|
ec37df5776 | ||
|
cf1eeea343 | ||
|
58ef67abc3 | ||
|
2f3dcbbf20 | ||
|
9e9b65c1db | ||
|
2c4a8d17cd | ||
|
ab0e718dc9 | ||
|
4049cc1ccd | ||
|
8f70adc9c1 | ||
|
45bedfdd73 | ||
|
7b67fc42f9 | ||
|
de8c48cf46 | ||
|
fe25efa327 | ||
|
beed59982d | ||
|
2fa3b70778 | ||
|
afa3e1edcd | ||
|
01a5f47468 | ||
|
b2dea2ab4d | ||
|
f4a7108f73 | ||
|
789034a083 | ||
|
c9482eba5c | ||
|
5e40f9dd0d | ||
|
e87269a7a5 | ||
|
c856d372d1 | ||
|
672dc5a745 | ||
|
0569df0fc9 | ||
|
83b18bab39 | ||
|
fe2e43661e | ||
|
99b02ec0d8 | ||
|
99a030f5ed | ||
|
16a7029841 | ||
|
c0b2a21e09 | ||
|
730cae58da | ||
|
b268b083fc | ||
|
3e642d8427 | ||
|
0548ca8d43 | ||
|
16ce3c2f13 | ||
|
8816486e25 | ||
|
09de16e1ba | ||
|
0a36d7eb9e | ||
|
099287b916 | ||
|
dffd812620 | ||
|
df05cdc578 | ||
|
e93bfe3c74 | ||
|
e961ff7812 | ||
|
374349be31 | ||
|
97f18671c6 | ||
|
8ea8e72a29 | ||
|
5acb7b3edd | ||
|
4477936a19 | ||
|
e4786b9a4b | ||
|
9d8deca0bd | ||
|
c12bc4de58 | ||
|
56bd6aaca9 | ||
|
b076dc01d2 | ||
|
132cb64021 | ||
|
2b577448a7 | ||
|
2ca8b884d0 | ||
|
13b6e33523 | ||
|
066b00aa14 | ||
|
0f3f1cbc62 | ||
|
92c296a63e | ||
|
98de692c3a | ||
|
b9930c63e3 | ||
|
872ae05561 | ||
|
451b2eded7 | ||
|
63d5e83898 | ||
|
eb08590746 | ||
|
39189b9dc7 | ||
|
de1ec9c63a | ||
|
9b7d196cf4 | ||
|
015e69f36d | ||
|
90b22acaa8 | ||
|
360a4636dd | ||
|
2597135af7 | ||
|
56d4016a16 | ||
|
9c7a49b57b | ||
|
75f4be8a9b | ||
|
0b014ec713 | ||
|
1d261710b8 | ||
|
673dfcfac1 | ||
|
d3d6931427 | ||
|
895f5af753 | ||
|
8b63ae37ee | ||
|
41fe247df0 | ||
|
7810c95b5d | ||
|
10e4dbef5d | ||
|
45190265d0 | ||
|
9ae9011bb4 | ||
|
cd093688ae | ||
|
59c78040cd | ||
|
80645074d8 | ||
|
9ab5ef13b5 | ||
|
41f38f4d59 | ||
|
c809f3be86 | ||
|
19ff2a7bd5 | ||
|
b89dac7816 | ||
|
a22be3e1fc | ||
|
5b49e9eebd | ||
|
3752cadc84 | ||
|
4817645de8 | ||
|
a967ef9dce | ||
|
186ef90c55 | ||
|
12ad1f5618 | ||
|
97ffd370f4 | ||
|
a789c01d26 | ||
|
f92f546c44 | ||
|
0ea48a1f23 | ||
|
22e0ea84c8 | ||
|
a5b7b1edc0 | ||
|
f222db9ce6 | ||
|
ef7eaedd63 | ||
|
de0702d065 | ||
|
0e4a6d55e9 | ||
|
173e8bbfb3 | ||
|
c9c1c60f19 | ||
|
47210d0238 | ||
|
cd66f45bfe | ||
|
cb2713bfa8 | ||
|
b7aaabf86f | ||
|
1486ed877a | ||
|
7a8b1590d5 | ||
|
211a46cf82 | ||
|
331a33a1bc | ||
|
3fd81d8740 | ||
|
8e8d3ba8e5 | ||
|
1fdad05332 | ||
|
ed5b981186 | ||
|
a8cc3ad1b0 | ||
|
c3e646b47f | ||
|
7e139aafe0 | ||
|
095472c0da | ||
|
83e72d5f10 | ||
|
83a5b533e2 | ||
|
205c03894b | ||
|
486fd225d4 | ||
|
2f10f4238a | ||
|
6dc5fd7181 | ||
|
663af052c0 | ||
|
cd4915e2c9 | ||
|
8b766d97fd | ||
|
6c5b628eee | ||
|
9c4165adfa | ||
|
ce1ecc6d48 | ||
|
1b62f00d8e | ||
|
7aa54cf749 | ||
|
03e11df547 | ||
|
f0c5ebdc0d | ||
|
15ba5c2731 | ||
|
d13d8d4e5f | ||
|
f41cb81efc | ||
|
d52e91c980 | ||
|
90fae67de9 | ||
|
392555bb0f | ||
|
f9862abdc9 | ||
|
b742792c08 | ||
|
bf5423ea7d | ||
|
8d1e5dbf99 | ||
|
e7dd6ecdd1 | ||
|
b2f4c4b0d4 | ||
|
3204d8e949 | ||
|
cf75c1b4fb | ||
|
829c421b93 | ||
|
9bb0d1b539 | ||
|
276c7463f3 | ||
|
84c9e2f87b | ||
|
44cd54c24e | ||
|
6e358ae704 | ||
|
e70d4ce8d6 | ||
|
00f34af570 | ||
|
9ad43c8b25 | ||
|
5b781a6729 | ||
|
1db8dc4a2b | ||
|
bb84929ec5 | ||
|
cce442ba7c | ||
|
24f25c8af1 | ||
|
4708a349af | ||
|
fb96bc75a7 | ||
|
f8e5ed929c | ||
|
b64f0a5fc7 | ||
|
63986ba653 | ||
|
0bb6242172 | ||
|
31334ecb03 | ||
|
c521c4947e | ||
|
e1fdd3f3d9 | ||
|
d35b028e04 | ||
|
cae67e55f7 | ||
|
846df3e03c | ||
|
1ddfb726b2 | ||
|
32956769e9 | ||
|
7a5e62674f | ||
|
ae128b358e | ||
|
918a745c19 | ||
|
00e6d8ab78 | ||
|
e800f425f2 | ||
|
c9e3527262 | ||
|
24e2b35da2 | ||
|
da99271dcb | ||
|
19320af45a | ||
|
f70ab56e16 | ||
|
b108e45518 | ||
|
764835a5d5 | ||
|
50dacf0581 | ||
|
5ee3522ce5 | ||
|
653d24e092 | ||
|
7919906660 | ||
|
b4085ce66c | ||
|
d3358961db | ||
|
9556da13ba | ||
|
6a71ee861c | ||
|
e7e5298cca | ||
|
9fe17bd344 | ||
|
22c0b72105 | ||
|
1540e053dd | ||
|
eacf9d88f9 | ||
|
049977d042 | ||
|
5cf34cf07e | ||
|
7d8c3dbaba | ||
|
942e67c3a3 | ||
|
28a156b14c | ||
|
7335902d0f | ||
|
0cbe5ee3a9 | ||
|
75e824e8bc | ||
|
1811a0927b | ||
|
288d4f8b91 | ||
|
03424b1b89 | ||
|
ffdd3c9861 | ||
|
343a06a58b | ||
|
c8159c3d03 | ||
|
a5a9cc2ab0 | ||
|
8546f11e49 | ||
|
645889ad25 | ||
|
4fdae9972d | ||
|
94613352b5 | ||
|
548dffb11f | ||
|
85664da6de | ||
|
ed2ec17c54 | ||
|
1724ca8b5c | ||
|
0c6b0c6668 | ||
|
4161828546 | ||
|
71b9ed15f5 | ||
|
0c85071392 | ||
|
71499aafed | ||
|
2e4df4bfaf | ||
|
6164f93ca2 | ||
|
901ed91ce1 | ||
|
ce83033f35 | ||
|
8a16a98e59 | ||
|
dca2d56ff5 | ||
|
37ed3ae338 | ||
|
61f04363db | ||
|
402e2f7cf8 | ||
|
d8fcb5e835 | ||
|
c0cd186f82 | ||
|
30b7213465 | ||
|
e437cc535e | ||
|
9ec3cd2d38 | ||
|
36195a44c3 | ||
|
f58f51637f | ||
|
3c4f84521e | ||
|
7c697725f1 | ||
|
f0ded96ffb | ||
|
e464c180c4 | ||
|
437a79a631 | ||
|
83a4ad53fa | ||
|
8658ef93e3 | ||
|
020a1653a4 | ||
|
c68d524366 | ||
|
0ec0dc85ec | ||
|
8082a771db | ||
|
57c79232a5 | ||
|
47ca6bfb05 | ||
|
31fe72b638 | ||
|
d9cde669c3 | ||
|
f3cab6cf19 | ||
|
6f38c86f45 | ||
|
ec1b28a357 | ||
|
8bb6da4ae6 | ||
|
a559d70856 | ||
|
f2ab8671bf | ||
|
3377b96271 | ||
|
403603f74f | ||
|
6a097cd6c4 | ||
|
83a136ac4a | ||
|
3794e8d6b0 | ||
|
9c1175db9e | ||
|
cbee8f8dc7 | ||
|
2e4c3bf87a | ||
|
89e3037cc9 | ||
|
8e19f54e55 | ||
|
8d41cad743 | ||
|
6a5391afa9 | ||
|
96f6c703b1 | ||
|
3b7003909e | ||
|
050207ec17 | ||
|
e894bd397c | ||
|
b7245f129a | ||
|
b81abd0d1d | ||
|
6113a16ab3 | ||
|
0b5eceb638 | ||
|
258e5c7427 | ||
|
82a5f02c86 | ||
|
963e36f852 | ||
|
77d4384e31 | ||
|
4c075b7090 | ||
|
0f442030c4 | ||
|
b578915045 | ||
|
2201e9b300 | ||
|
b15a4a4a26 | ||
|
eacaaf44c0 | ||
|
c81f40e0fe | ||
|
09fcd88955 | ||
|
b92fd37cb0 | ||
|
e7fa076d94 | ||
|
a6c65e881e | ||
|
52b9ca21ac | ||
|
865a17302b | ||
|
fda91381cd | ||
|
1a8caf94ab | ||
|
adb21613bc | ||
|
2c8c812ff3 | ||
|
70b62288b4 | ||
|
8e7dda219e | ||
|
5e68f8f373 | ||
|
039df3032c | ||
|
8ef38fd9f8 | ||
|
d4714748d8 | ||
|
d421fbda2f | ||
|
a576b02cb9 | ||
|
cb73d83f63 | ||
|
93f30ee67a | ||
|
de90d3e084 | ||
|
3b7e6277be | ||
|
1a2b91971d | ||
|
937afade13 | ||
|
0e191b5ebc | ||
|
bf62af352e | ||
|
8ec77cd74c | ||
|
3321fc55fc | ||
|
ec5d715214 | ||
|
04b833fb81 | ||
|
429fdefcd7 | ||
|
29fd317b4b | ||
|
99d96a2b78 | ||
|
27b1df435f | ||
|
02718e6af4 | ||
|
8c1375b922 | ||
|
84028727cb | ||
|
237c5c0242 | ||
|
3d0145a5a3 | ||
|
42b1f941b0 | ||
|
f2b36d323e | ||
|
b5c01940ac | ||
|
adb85931ab | ||
|
32f3104396 | ||
|
d4486ad2c2 | ||
|
32f904b877 | ||
|
85f7de5c78 | ||
|
ee33aa3f2b | ||
|
8556b795c3 | ||
|
67b888f0f3 | ||
|
504d911e5a | ||
|
835b048113 | ||
|
9d75efc125 | ||
|
562159286d | ||
|
0580ae4b9b | ||
|
cd8528426b | ||
|
fcc864256f | ||
|
f4764b9ab2 | ||
|
cd31c795b0 | ||
|
fddfd9e1f1 | ||
|
e1e9ea4097 | ||
|
c93d67707f | ||
|
ebf776c5b8 | ||
|
302a1ecae3 | ||
|
88961c3eca | ||
|
4a377e1375 | ||
|
1af9f46981 | ||
|
1a8319ea1a | ||
|
c611452fe8 | ||
|
77ae802305 | ||
|
7981795a89 | ||
|
6afafc42fc | ||
|
576c608dac | ||
|
99ba739f6a | ||
|
10bd072488 | ||
|
6c49baf214 | ||
|
a4352768d7 | ||
|
3cc8e98a96 | ||
|
98c67f0f16 | ||
|
d3f3e35f54 | ||
|
a2ae327513 | ||
|
e08d628d42 | ||
|
e3582f7f92 | ||
|
fb83aca503 | ||
|
6411a32c16 | ||
|
93521c94f5 | ||
|
a46a73a677 | ||
|
d76419bd54 | ||
|
7daab4530c | ||
|
421db2ada5 | ||
|
384223b34b | ||
|
54b8489125 | ||
|
ca2869177e | ||
|
8036af01d8 | ||
|
0b237b676d | ||
|
da2fd5acd8 | ||
|
6108b321fc | ||
|
9c31977bcc | ||
|
a54a9cd3b1 | ||
|
445783deea | ||
|
14e5a313d1 | ||
|
db89aa764f | ||
|
2dc1ca847f | ||
|
b1229561e5 | ||
|
b0ad200675 | ||
|
3b94ab1836 | ||
|
96edf638ff | ||
|
d6b30953cc | ||
|
f045d570d3 | ||
|
921cf810d6 | ||
|
4b78d26f11 | ||
|
42bcb12b40 | ||
|
f7b4b3435b | ||
|
d3c7cfeba9 | ||
|
a4313e3b38 | ||
|
7124df9b59 | ||
|
9e8d860761 | ||
|
844f90fba6 | ||
|
07e285be62 | ||
|
097ead306c | ||
|
4fdfb5587f | ||
|
a35b27b14d | ||
|
14a31d6774 | ||
|
045c8df996 | ||
|
ee66f09217 | ||
|
eb53bce493 | ||
|
d752a3c394 | ||
|
df5ddbca48 | ||
|
a339970ac4 | ||
|
a30f8da836 | ||
|
3a70a28254 | ||
|
c7386783a6 | ||
|
e508a2b616 | ||
|
35d60de221 | ||
|
1b2dab346d | ||
|
e80658dacc | ||
|
9f3280c9c4 | ||
|
ef4e8ebdd4 | ||
|
b25ba5b701 | ||
|
f690fb046b | ||
|
606a317805 | ||
|
76ff52f7c9 | ||
|
63ad540d40 | ||
|
0e6ca3948f | ||
|
1e33e2f3ae | ||
|
b68dc582b8 | ||
|
2d0f46e391 | ||
|
bdb9373a32 | ||
|
1e7ecb7be0 | ||
|
341366c67a | ||
|
c3c979c7b8 | ||
|
0fff366e0f | ||
|
6d57cea923 | ||
|
194330c765 | ||
|
af673e0778 | ||
|
eeff964ac1 | ||
|
6fe190576e | ||
|
58d5bf3ae2 | ||
|
e89ba6b3ca | ||
|
c0e6654255 | ||
|
4d5cd6e05d | ||
|
98c9fc2d06 | ||
|
080b749f7d | ||
|
50f7d0a393 | ||
|
5873607e5c | ||
|
0354a70ce8 | ||
|
4b9fc37a48 | ||
|
09f50eb328 | ||
|
f5f4c6ce36 | ||
|
162437627a | ||
|
7212f3c176 | ||
|
4f8fccd11a | ||
|
d9a50173fb | ||
|
4158c64a7e | ||
|
2e907fab47 | ||
|
dda88f5eee | ||
|
deb63b954b | ||
|
1378f26027 | ||
|
76e23cdba3 | ||
|
7826e2dd83 | ||
|
accb325754 | ||
|
442275372d | ||
|
e7ffb21b6b | ||
|
377771d93a | ||
|
afaee31547 | ||
|
fa762db4ed | ||
|
8d854fa93f | ||
|
702c190d47 | ||
|
5a56a532f2 | ||
|
141ddc08d6 | ||
|
c7ce8392e0 | ||
|
189e08b45a | ||
|
30764ab524 | ||
|
a9c317d27c | ||
|
47c93b637e | ||
|
0a07a7d852 | ||
|
186837b05e | ||
|
9318daf2b7 | ||
|
ef7a25a73e | ||
|
beed393c67 | ||
|
aa44b26115 | ||
|
6d14cac77d | ||
|
bdce924e12 | ||
|
3526dff094 | ||
|
15f03b25a6 | ||
|
730fc65465 | ||
|
e99762c031 | ||
|
2f2dc32851 | ||
|
1404c10bca | ||
|
d3f175108b | ||
|
2cd2fac87f | ||
|
cb29fb86c0 | ||
|
8d823dabdc | ||
|
e9d7ad4dbf | ||
|
ca36c2cc8f | ||
|
3d8dea7e2e | ||
|
d015713e78 | ||
|
de20db997d | ||
|
2d5e89e1cd | ||
|
d8edb3856b | ||
|
1192d9ecd0 | ||
|
51ab940072 | ||
|
eb158888a0 | ||
|
97d69640d0 | ||
|
c57e060dc3 | ||
|
5e0e6ceb8f | ||
|
b6a3d6ad88 | ||
|
3e79ed960a | ||
|
55842641bb | ||
|
5df6ed1c52 | ||
|
bf09fab3b6 | ||
|
496fd9fb93 | ||
|
eedb15434a | ||
|
05a8bfed08 | ||
|
b9cf5e6d2b | ||
|
880d870ea4 | ||
|
bd3e41f600 | ||
|
fd368161d9 | ||
|
bf2c4b942a | ||
|
3bdb723286 | ||
|
aaa2b34e81 | ||
|
97b305b71c | ||
|
3ac81fb1c5 | ||
|
6491f9335e | ||
|
b9c6012844 | ||
|
19bf0c6900 | ||
|
26ac77dbe2 | ||
|
b34590ebf8 | ||
|
308978f6aa | ||
|
1fb454751d | ||
|
5807634c6e | ||
|
8fd0d89b7d | ||
|
b855ef7757 | ||
|
8636c073a3 | ||
|
a2bd1fbb8b | ||
|
6e50d0eb2f | ||
|
6292dad031 | ||
|
da052901fd | ||
|
e22454beda | ||
|
af88eefff2 | ||
|
ee495e4cab | ||
|
9354814833 | ||
|
2f34c1a97e | ||
|
bee5a36e15 | ||
|
91dd52fe3b | ||
|
f94dfb3897 | ||
|
4e00f54113 | ||
|
4ad3c82fff | ||
|
5eaac5b574 | ||
|
f03b31e838 | ||
|
6c7873e1a5 | ||
|
cd79f7b0d9 | ||
|
f9032263ab | ||
|
c8b7a961ff | ||
|
c39755aa1c | ||
|
26607f41ae | ||
|
fda09b3f66 | ||
|
a1f79c1e00 | ||
|
38cfbffa15 | ||
|
eb3b9ddac4 | ||
|
2b63ff5d38 | ||
|
59990c225c | ||
|
5442f43593 | ||
|
08bf1d5d98 | ||
|
fdd4c4d0a4 | ||
|
513abb883f | ||
|
555526fbff | ||
|
147a1f7e70 | ||
|
e8f65ba610 | ||
|
44f889cb5f | ||
|
09cc749c7d | ||
|
84fba40bea | ||
|
f90fbcc192 | ||
|
f58557a80d | ||
|
b913871062 | ||
|
b1f541081a | ||
|
585266618c | ||
|
733b25e1a9 | ||
|
96997d6511 | ||
|
4a82abc831 | ||
|
d1dea842a0 | ||
|
42b3e73ede | ||
|
47fc03d21a | ||
|
ee21d1542c | ||
|
67c8c225f4 | ||
|
c67d60484b | ||
|
3924dd226e | ||
|
49e399d8c0 | ||
|
35d367d8dd | ||
|
fa5593acee | ||
|
973f253905 | ||
|
d8a0a1c930 | ||
|
f02d4a64a1 | ||
|
3988b155d7 | ||
|
e5f56a004e | ||
|
185d7c3ee4 | ||
|
baeea2909c | ||
|
e93a3a18fc | ||
|
a8aa2258e8 | ||
|
e2f4e132c1 | ||
|
7d33179be4 | ||
|
445c7bca97 | ||
|
6f95262744 | ||
|
b7084589db | ||
|
75212e68fd | ||
|
9adfefacbd | ||
|
d08f23a71c | ||
|
a1db952fde | ||
|
5740d24a02 | ||
|
51c1d535fc | ||
|
60161cfac9 | ||
|
3170a63c6f | ||
|
05a7f61d90 | ||
|
2c99715a09 | ||
|
da4cc40ce0 | ||
|
8a985b8492 | ||
|
e42b1b71ae | ||
|
e15bbde041 | ||
|
86b3203fb1 | ||
|
79a4c912b5 | ||
|
1de711d740 | ||
|
eea22fd5ff | ||
|
20a2bdc9c3 | ||
|
34cfc23c75 | ||
|
aea1dc7174 | ||
|
21b020b543 | ||
|
a4f7bf5849 | ||
|
3f3e668e3e | ||
|
84912ef8b7 | ||
|
7c0d801cb4 | ||
|
425b21c7e3 | ||
|
b41ec29ad2 | ||
|
33737618bc | ||
|
8591268f8f | ||
|
779812aa23 | ||
|
8ce88dfa24 | ||
|
17260efd72 | ||
|
96bcf4f9cc | ||
|
59bd9598bc | ||
|
51a9ecbc68 | ||
|
703f03c342 | ||
|
064998bf8b | ||
|
a62da4c56f | ||
|
f4b6093eee | ||
|
237387ad31 | ||
|
4f9297b0ee | ||
|
1da7aa8c4a | ||
|
bb250157d9 | ||
|
52860855bf | ||
|
68f30f26d2 | ||
|
12d9e30820 | ||
|
dbb88122c9 | ||
|
3351077305 | ||
|
abbe77c16b | ||
|
bcb276d2ae | ||
|
8362557923 | ||
|
dbbb98cd9e | ||
|
e7d63784e8 | ||
|
3d49ce4485 | ||
|
d6c9c1b71e | ||
|
53ccf1c0ba | ||
|
f8c5636c42 | ||
|
10992a81d3 | ||
|
f641dada64 | ||
|
7b30ac82dd | ||
|
ea7c631cd4 | ||
|
494f8eacda | ||
|
f97d84a63b | ||
|
c368d904fc | ||
|
7874bf5430 | ||
|
f469b27cac | ||
|
376aa62a5d | ||
|
188781dbbd | ||
|
4d1c1c3c70 | ||
|
bbee61e50e | ||
|
f44fdfb032 | ||
|
99f73df9b4 | ||
|
480b358063 | ||
|
7e99520bd3 | ||
|
28be2e8a17 | ||
|
415ca026b4 | ||
|
d7e1a32274 | ||
|
4720388fc5 | ||
|
b078fa025d | ||
|
eb750029be | ||
|
e379e25847 | ||
|
523050b607 | ||
|
ba81034d1a | ||
|
9ef6ff8c4d | ||
|
820f05f0c5 | ||
|
0104114590 | ||
|
69754f3253 | ||
|
3dfaaa4d1d | ||
|
4f37a20b74 | ||
|
6ba636000f | ||
|
bab004238d | ||
|
ea5ac909f8 | ||
|
26345af835 | ||
|
bada28f00f | ||
|
159933045e | ||
|
216870690e | ||
|
43b06bf976 | ||
|
c13cace125 | ||
|
7328394a2a | ||
|
8f5bda17b3 | ||
|
019df10ed0 | ||
|
3cc487d140 | ||
|
f4dcad9933 | ||
|
f1d93f0bee | ||
|
849c2b0b5f | ||
|
1620f478e5 | ||
|
6dfec4b8d9 | ||
|
1fc8878582 | ||
|
73a2995f98 | ||
|
1be06faf73 | ||
|
80a24267cb | ||
|
8a3f08bc6f | ||
|
f5a7a9e1a9 | ||
|
83b968da1a | ||
|
c7107a453c | ||
|
b3daa5a322 | ||
|
2fb40b2cd2 | ||
|
91773b3f0d | ||
|
1b113a811d | ||
|
d9300df9e6 | ||
|
f485492a1e | ||
|
5a2762f083 | ||
|
e5f741e5d4 | ||
|
b8505921fc | ||
|
0f05afcced | ||
|
deea56b14f | ||
|
2f3ebe4c1a | ||
|
d84a4d519d | ||
|
e3c10211e4 | ||
|
4e28924cdb | ||
|
7cb74906e1 | ||
|
f368ba4b28 | ||
|
3f6638b82b | ||
|
d7ace8a929 | ||
|
e066e2566a | ||
|
3efb0e4bbd | ||
|
88a2dafd70 | ||
|
ef8698d677 | ||
|
b0a6bb75bc | ||
|
98243feda0 | ||
|
15db3cf513 | ||
|
df4b7d9894 | ||
|
12ed316d02 | ||
|
6955ce29ed | ||
|
9eeb92ac44 | ||
|
f0e9f0d3ff | ||
|
fb20fa43a0 | ||
|
3438012b66 | ||
|
4f43043985 | ||
|
08793a6da9 | ||
|
e63fdcd600 | ||
|
511eb3e71d | ||
|
b780fc0057 | ||
|
a17203df9e | ||
|
181cbcf49e | ||
|
659d096cea | ||
|
1c68fb912d | ||
|
cd212ee425 | ||
|
353149f8f2 | ||
|
5b3ed31135 | ||
|
f5526d3613 | ||
|
63ee409315 | ||
|
2d19ad2578 | ||
|
426bb74a93 | ||
|
2e12c11a90 | ||
|
0377efa2e9 | ||
|
b656febdf0 | ||
|
46cd520d1e | ||
|
8fd2b35cbe | ||
|
da599db240 | ||
|
3ad1cd4a67 | ||
|
0996d32a07 | ||
|
5fdff4a5b4 | ||
|
2193517f1b | ||
|
bbda1088f7 | ||
|
dc743689dd | ||
|
d1c8aaa3ee | ||
|
cc1fcb9584 | ||
|
cdddaeea10 | ||
|
03c046d1d5 | ||
|
fe47ec10b7 | ||
|
4370573a45 | ||
|
fac9339629 | ||
|
480df2cf57 | ||
|
904a68b6f6 | ||
|
11207aa4c2 | ||
|
9732ef1cb8 | ||
|
f4b8bf2fd1 | ||
|
64d452a82d | ||
|
697e0cdd12 | ||
|
ca8bf9766e | ||
|
9f8276c7d4 | ||
|
1c8ac192c6 | ||
|
d33a1e8b7b | ||
|
28c0bed36a | ||
|
a07a98dbe5 | ||
|
88d42654d7 | ||
|
5183bfc60c | ||
|
d7716e1ec9 | ||
|
d786bf877e | ||
|
9cc7121f68 | ||
|
a2d93e735a | ||
|
117247fd2c | ||
|
789dbcd4e3 | ||
|
b29483b980 | ||
|
b008b592cc | ||
|
96f5fca9e4 | ||
|
b13480f269 | ||
|
2bc6945a25 | ||
|
27d1065d38 | ||
|
300aaa8f77 | ||
|
5143c96b4f | ||
|
3fb435df3a | ||
|
c0f09a2e88 | ||
|
43f5c4930f | ||
|
8088e4c628 | ||
|
191ebf4d45 | ||
|
99646f7ee4 | ||
|
33ebcd800c | ||
|
bdb310a720 | ||
|
e37ce17035 | ||
|
a1b8f5489d | ||
|
83141d3a74 | ||
|
5100cabffa | ||
|
135ce19c67 | ||
|
80d2803f70 | ||
|
cc47eed9ca | ||
|
fcaf9e704e | ||
|
343e14b3e2 | ||
|
efad36b8e9 | ||
|
84eacd3032 | ||
|
872f1044c8 | ||
|
98e8d44a9e | ||
|
129caaddf1 | ||
|
afb02ca57c | ||
|
21840a6c0a | ||
|
2eebb742ab | ||
|
01fa3fe74d | ||
|
4204da658a | ||
|
bd83cb56d2 | ||
|
6b6267d320 | ||
|
99397a94d0 | ||
|
59fae84103 | ||
|
fcbb6b37bf | ||
|
afdefa8e84 | ||
|
9b8f6fa217 | ||
|
2189c64415 | ||
|
84bfc0d503 | ||
|
0460407f86 | ||
|
91c9bd3d71 | ||
|
68fdcf29fd | ||
|
6981d3ecf6 | ||
|
542acbee80 | ||
|
57591e0edb | ||
|
fb6261e9ba | ||
|
d134f1702e | ||
|
95f99113a6 | ||
|
ebe0155da5 | ||
|
6ab5e82fc3 | ||
|
19bcc6049d | ||
|
1f33eb9ff0 | ||
|
2db0bbdecd | ||
|
26a80c2246 | ||
|
d3db92b294 | ||
|
1772ead058 | ||
|
59a12e9034 | ||
|
b85cfb6fd4 | ||
|
3723b7b1d8 | ||
|
bfabd11afb | ||
|
5615ab3770 | ||
|
68237521ed | ||
|
61b64bd92a | ||
|
c43e86bda6 | ||
|
41328253cd | ||
|
0e929d5fd6 | ||
|
b96340e6f4 | ||
|
ceae98ef7a | ||
|
9f3b9298c0 | ||
|
dc16900b10 | ||
|
21156596eb | ||
|
501662d307 | ||
|
4d0986499b | ||
|
206b0a6792 | ||
|
2702ed5a3d | ||
|
3d0c4d2e7b | ||
|
4dbd4ee604 | ||
|
b3eb36dfb6 | ||
|
736b80cd76 | ||
|
cabec8729e | ||
|
1e1af41e4b | ||
|
e83bf4f7e1 | ||
|
37b09a9a1a | ||
|
3fed184012 | ||
|
239c1f50b0 | ||
|
3e1c4e0021 | ||
|
cba349dc6e | ||
|
267a710851 | ||
|
25093cf311 | ||
|
e604d44b4b | ||
|
37123da440 | ||
|
0fb0dd8361 | ||
|
2154485967 | ||
|
6a86a6c893 | ||
|
37d403aa1c | ||
|
cb281cfc8c | ||
|
d1f9b20611 | ||
|
43bcf4c950 | ||
|
5b211fbf54 | ||
|
3b111dbe53 | ||
|
a103e4e201 | ||
|
5b09e9c2c3 | ||
|
dbf2885911 | ||
|
8c023dee92 | ||
|
fa755cf187 | ||
|
d11bb14faa | ||
|
aa21b5090a | ||
|
6a2c187404 | ||
|
5a7faf1e02 | ||
|
dfd4f3278c | ||
|
09dc1241b7 | ||
|
fcec64291d | ||
|
3e0a432117 | ||
|
eb29e7071f | ||
|
40fab78bcf | ||
|
621f9767c8 | ||
|
2f82899bba | ||
|
16d57d674f | ||
|
601c163b1c | ||
|
2f20fe2222 | ||
|
bcd055ae10 | ||
|
ea129d333a | ||
|
fa8ba9a10e | ||
|
352d44d268 | ||
|
32321f51b4 | ||
|
4dff340069 | ||
|
748a3af8e7 | ||
|
f920114415 | ||
|
35b45b332b | ||
|
954f4710fa | ||
|
35ec54d3c5 | ||
|
525fd27d24 | ||
|
136edc27f9 | ||
|
07d09af8cc | ||
|
64acfbb2be | ||
|
1464778143 | ||
|
47608cc184 | ||
|
de53ac1ee1 | ||
|
97d590469d | ||
|
760ac9abdd | ||
|
deb818d619 | ||
|
74d52dedf8 | ||
|
0071943936 | ||
|
29bf79638e | ||
|
2148cce296 | ||
|
15770d1a1c | ||
|
b0f1bf1c51 | ||
|
d467e0c72d | ||
|
2116861993 | ||
|
fc4e7a035c | ||
|
3210d001bf | ||
|
1a584f14bf | ||
|
f1f2204967 | ||
|
58e81f24f1 | ||
|
d9b815ac5c | ||
|
1ed01484e7 | ||
|
f409b413be | ||
|
f09d8a3b94 | ||
|
be44e7a5f4 | ||
|
1724915f18 | ||
|
1a2bf4ebfc | ||
|
64e0c5c617 | ||
|
7cc92097f6 | ||
|
37980ec800 | ||
|
58580a7e3c | ||
|
08c6402af6 | ||
|
9b5ae11a39 | ||
|
bebb14d53d | ||
|
b6b0af42a0 | ||
|
019faef468 | ||
|
8767fe35a3 | ||
|
45961fa0a5 | ||
|
14329e037b | ||
|
c49edcd039 | ||
|
e846929090 | ||
|
241c426ca8 | ||
|
405c846fc4 | ||
|
71599f0a0a | ||
|
0f3cd383b7 | ||
|
f90e5ed24a | ||
|
d0c6b305af | ||
|
4c6224f523 | ||
|
dbd25a9f8a | ||
|
6172afe90d | ||
|
eecb035112 | ||
|
397f14ce52 | ||
|
a959b08869 | ||
|
acd9676ebb | ||
|
fdb8ab1db9 | ||
|
81dc0f5d41 | ||
|
f19c82dd2a | ||
|
27ced3613f | ||
|
a9f4558ff1 | ||
|
0cd121f9e1 | ||
|
6d9f443958 | ||
|
98b99630a5 | ||
|
8576d6a454 | ||
|
792064e93f | ||
|
6ba549f2a5 | ||
|
f6853b4a5d | ||
|
ef02ad9ee7 | ||
|
909e23737c | ||
|
579b10c2be | ||
|
292d1a2fdd | ||
|
2e492c85ab | ||
|
1ebfaf0c59 | ||
|
fa156b74fc | ||
|
d02af7bbb9 | ||
|
40d432c482 | ||
|
885df446a3 | ||
|
9c0571f341 | ||
|
f2debe4d8b | ||
|
be11d578d1 | ||
|
ee6b1d97e7 | ||
|
6342bd1ab3 | ||
|
a02bb1438a |
347
docs/latex/wx/mouseevt.tex
Normal file
347
docs/latex/wx/mouseevt.tex
Normal file
@@ -0,0 +1,347 @@
|
|||||||
|
\section{\class{wxMouseEvent}}\label{wxmouseevent}
|
||||||
|
|
||||||
|
This event class contains information about mouse events.
|
||||||
|
See \helpref{wxWindow::OnMouseEvent}{wxwindowonmouseevent}.
|
||||||
|
|
||||||
|
{\bf NB: } Note that under Windows mouse enter and leave events are not natively supported
|
||||||
|
by the system but are generated by wxWindows itself. This has several
|
||||||
|
drawbacks: the LEAVE\_WINDOW event might be received some time after the mouse
|
||||||
|
left the window and the state variables for it may have changed during this
|
||||||
|
time.
|
||||||
|
|
||||||
|
{\bf NB: } Note the difference between methods like
|
||||||
|
\helpref{LeftDown}{wxmouseeventleftdown} and
|
||||||
|
\helpref{LeftIsDown}{wxmouseeventleftisdown}: the formet returns {\tt TRUE}
|
||||||
|
when the event corresponds to the left mouse button click while the latter
|
||||||
|
returns {\tt TRUE} if the left mouse button is currently being pressed. For
|
||||||
|
example, when the user is dragging the mouse you can use
|
||||||
|
\helpref{LeftIsDown}{wxmouseeventleftisdown} to test
|
||||||
|
whether the left mouse button is (still) depressed. Also, by convention, if
|
||||||
|
\helpref{LeftDown}{wxmouseeventleftdown} returns {\tt TRUE},
|
||||||
|
\helpref{LeftIsDown}{wxmouseeventleftisdown} will also return {\tt TRUE} in
|
||||||
|
wxWindows whatever the underlying GUI behaviour is (which is
|
||||||
|
platform-dependent). The same applies, of course, to other mouse buttons as
|
||||||
|
well.
|
||||||
|
|
||||||
|
\wxheading{Derived from}
|
||||||
|
|
||||||
|
\helpref{wxEvent}{wxevent}
|
||||||
|
|
||||||
|
\wxheading{Include files}
|
||||||
|
|
||||||
|
<wx/event.h>
|
||||||
|
|
||||||
|
\wxheading{Event table macros}
|
||||||
|
|
||||||
|
To process a mouse event, use these event handler macros to direct input to member
|
||||||
|
functions that take a wxMouseEvent argument.
|
||||||
|
|
||||||
|
\twocolwidtha{7cm}
|
||||||
|
\begin{twocollist}\itemsep=0pt
|
||||||
|
\twocolitem{{\bf EVT\_LEFT\_DOWN(func)}}{Process a wxEVT\_LEFT\_DOWN event.}
|
||||||
|
\twocolitem{{\bf EVT\_LEFT\_UP(func)}}{Process a wxEVT\_LEFT\_UP event.}
|
||||||
|
\twocolitem{{\bf EVT\_LEFT\_DCLICK(func)}}{Process a wxEVT\_LEFT\_DCLICK event.}
|
||||||
|
\twocolitem{{\bf EVT\_MIDDLE\_DOWN(func)}}{Process a wxEVT\_MIDDLE\_DOWN event.}
|
||||||
|
\twocolitem{{\bf EVT\_MIDDLE\_UP(func)}}{Process a wxEVT\_MIDDLE\_UP event.}
|
||||||
|
\twocolitem{{\bf EVT\_MIDDLE\_DCLICK(func)}}{Process a wxEVT\_MIDDLE\_DCLICK event.}
|
||||||
|
\twocolitem{{\bf EVT\_RIGHT\_DOWN(func)}}{Process a wxEVT\_RIGHT\_DOWN event.}
|
||||||
|
\twocolitem{{\bf EVT\_RIGHT\_UP(func)}}{Process a wxEVT\_RIGHT\_UP event.}
|
||||||
|
\twocolitem{{\bf EVT\_RIGHT\_DCLICK(func)}}{Process a wxEVT\_RIGHT\_DCLICK event.}
|
||||||
|
\twocolitem{{\bf EVT\_MOTION(func)}}{Process a wxEVT\_MOTION event.}
|
||||||
|
\twocolitem{{\bf EVT\_ENTER\_WINDOW(func)}}{Process a wxEVT\_ENTER\_WINDOW event.}
|
||||||
|
\twocolitem{{\bf EVT\_LEAVE\_WINDOW(func)}}{Process a wxEVT\_LEAVE\_WINDOW event.}
|
||||||
|
\twocolitem{{\bf EVT\_MOUSE\_EVENTS(func)}}{Process all mouse events.}
|
||||||
|
\end{twocollist}%
|
||||||
|
|
||||||
|
\latexignore{\rtfignore{\wxheading{Members}}}
|
||||||
|
|
||||||
|
\membersection{wxMouseEvent::m\_altDown}
|
||||||
|
|
||||||
|
\member{bool}{m\_altDown}
|
||||||
|
|
||||||
|
TRUE if the Alt key is pressed down.
|
||||||
|
|
||||||
|
\membersection{wxMouseEvent::m\_controlDown}
|
||||||
|
|
||||||
|
\member{bool}{m\_controlDown}
|
||||||
|
|
||||||
|
TRUE if control key is pressed down.
|
||||||
|
|
||||||
|
\membersection{wxMouseEvent::m\_leftDown}
|
||||||
|
|
||||||
|
\member{bool}{m\_leftDown}
|
||||||
|
|
||||||
|
TRUE if the left mouse button is currently pressed down.
|
||||||
|
|
||||||
|
\membersection{wxMouseEvent::m\_middleDown}
|
||||||
|
|
||||||
|
\member{bool}{m\_middleDown}
|
||||||
|
|
||||||
|
TRUE if the middle mouse button is currently pressed down.
|
||||||
|
|
||||||
|
\membersection{wxMouseEvent::m\_rightDown}
|
||||||
|
|
||||||
|
\member{bool}{m\_rightDown}
|
||||||
|
|
||||||
|
TRUE if the right mouse button is currently pressed down.
|
||||||
|
|
||||||
|
\membersection{wxMouseEvent::m\_leftDown}
|
||||||
|
|
||||||
|
\member{bool}{m\_leftDown}
|
||||||
|
|
||||||
|
TRUE if the left mouse button is currently pressed down.
|
||||||
|
|
||||||
|
\membersection{wxMouseEvent::m\_metaDown}
|
||||||
|
|
||||||
|
\member{bool}{m\_metaDown}
|
||||||
|
|
||||||
|
TRUE if the Meta key is pressed down.
|
||||||
|
|
||||||
|
\membersection{wxMouseEvent::m\_shiftDown}
|
||||||
|
|
||||||
|
\member{bool}{m\_shiftDown}
|
||||||
|
|
||||||
|
TRUE if shift is pressed down.
|
||||||
|
|
||||||
|
\membersection{wxMouseEvent::m\_x}
|
||||||
|
|
||||||
|
\member{long}{m\_x}
|
||||||
|
|
||||||
|
X-coordinate of the event.
|
||||||
|
|
||||||
|
\membersection{wxMouseEvent::m\_y}
|
||||||
|
|
||||||
|
\member{long}{m\_y}
|
||||||
|
|
||||||
|
Y-coordinate of the event.
|
||||||
|
|
||||||
|
\membersection{wxMouseEvent::wxMouseEvent}
|
||||||
|
|
||||||
|
\func{}{wxMouseEvent}{\param{WXTYPE}{ mouseEventType = 0}, \param{int}{ id = 0}}
|
||||||
|
|
||||||
|
Constructor. Valid event types are:
|
||||||
|
|
||||||
|
\begin{itemize}
|
||||||
|
\itemsep=0pt
|
||||||
|
\item {\bf wxEVT\_ENTER\_WINDOW}
|
||||||
|
\item {\bf wxEVT\_LEAVE\_WINDOW}
|
||||||
|
\item {\bf wxEVT\_LEFT\_DOWN}
|
||||||
|
\item {\bf wxEVT\_LEFT\_UP}
|
||||||
|
\item {\bf wxEVT\_LEFT\_DCLICK}
|
||||||
|
\item {\bf wxEVT\_MIDDLE\_DOWN}
|
||||||
|
\item {\bf wxEVT\_MIDDLE\_UP}
|
||||||
|
\item {\bf wxEVT\_MIDDLE\_DCLICK}
|
||||||
|
\item {\bf wxEVT\_RIGHT\_DOWN}
|
||||||
|
\item {\bf wxEVT\_RIGHT\_UP}
|
||||||
|
\item {\bf wxEVT\_RIGHT\_DCLICK}
|
||||||
|
\item {\bf wxEVT\_MOTION}
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
|
\membersection{wxMouseEvent::AltDown}
|
||||||
|
|
||||||
|
\func{bool}{AltDown}{\void}
|
||||||
|
|
||||||
|
Returns TRUE if the Alt key was down at the time of the event.
|
||||||
|
|
||||||
|
\membersection{wxMouseEvent::Button}
|
||||||
|
|
||||||
|
\func{bool}{Button}{\param{int}{ button}}
|
||||||
|
|
||||||
|
Returns TRUE if the identified mouse button is changing state. Valid
|
||||||
|
values of {\it button} are 1, 2 or 3 for left, middle and right
|
||||||
|
buttons respectively.
|
||||||
|
|
||||||
|
Not all mice have middle buttons so a portable application should avoid
|
||||||
|
this one.
|
||||||
|
|
||||||
|
\membersection{wxMouseEvent::ButtonDClick}\label{buttondclick}
|
||||||
|
|
||||||
|
\func{bool}{ButtonDClick}{\param{int}{ but = -1}}
|
||||||
|
|
||||||
|
If the argument is omitted, this returns TRUE if the event was a mouse
|
||||||
|
double click event. Otherwise the argument specifies which double click event
|
||||||
|
was generated (1, 2 or 3 for left, middle and right buttons respectively).
|
||||||
|
|
||||||
|
\membersection{wxMouseEvent::ButtonDown}
|
||||||
|
|
||||||
|
\func{bool}{ButtonDown}{\param{int}{ but = -1}}
|
||||||
|
|
||||||
|
If the argument is omitted, this returns TRUE if the event was a mouse
|
||||||
|
button down event. Otherwise the argument specifies which button-down event
|
||||||
|
was generated (1, 2 or 3 for left, middle and right buttons respectively).
|
||||||
|
|
||||||
|
\membersection{wxMouseEvent::ButtonUp}
|
||||||
|
|
||||||
|
\func{bool}{ButtonUp}{\param{int}{ but = -1}}
|
||||||
|
|
||||||
|
If the argument is omitted, this returns TRUE if the event was a mouse
|
||||||
|
button up event. Otherwise the argument specifies which button-up event
|
||||||
|
was generated (1, 2 or 3 for left, middle and right buttons respectively).
|
||||||
|
|
||||||
|
\membersection{wxMouseEvent::ControlDown}
|
||||||
|
|
||||||
|
\func{bool}{ControlDown}{\void}
|
||||||
|
|
||||||
|
Returns TRUE if the control key was down at the time of the event.
|
||||||
|
|
||||||
|
\membersection{wxMouseEvent::Dragging}
|
||||||
|
|
||||||
|
\func{bool}{Dragging}{\void}
|
||||||
|
|
||||||
|
Returns TRUE if this was a dragging event (motion while a button is depressed).
|
||||||
|
|
||||||
|
\membersection{wxMouseEvent::Entering}\label{wxmouseevententering}
|
||||||
|
|
||||||
|
\func{bool}{Entering}{\void}
|
||||||
|
|
||||||
|
Returns TRUE if the mouse was entering the window.
|
||||||
|
|
||||||
|
See also \helpref{wxMouseEvent::Leaving}{wxmouseeventleaving}.
|
||||||
|
|
||||||
|
\membersection{wxMouseEvent::GetPosition}\label{wxmouseeventgetposition}
|
||||||
|
|
||||||
|
\constfunc{wxPoint}{GetPosition}{\void}
|
||||||
|
|
||||||
|
\constfunc{void}{GetPosition}{\param{wxCoord*}{ x}, \param{wxCoord*}{ y}}
|
||||||
|
|
||||||
|
\constfunc{void}{GetPosition}{\param{long*}{ x}, \param{long*}{ y}}
|
||||||
|
|
||||||
|
Sets *x and *y to the position at which the event occurred.
|
||||||
|
|
||||||
|
Returns the physical mouse position in pixels.
|
||||||
|
|
||||||
|
\membersection{wxMouseEvent::GetLogicalPosition}\label{wxmouseeventgetlogicalposition}
|
||||||
|
|
||||||
|
\constfunc{wxPoint}{GetLogicalPosition}{\param{const wxDC\&}{ dc}}
|
||||||
|
|
||||||
|
Returns the logical mouse position in pixels (i.e. translated according to the
|
||||||
|
translation set for the DC, which usually indicates that the window has been scrolled).
|
||||||
|
|
||||||
|
\membersection{wxMouseEvent::GetX}\label{wxmouseeventgetx}
|
||||||
|
|
||||||
|
\constfunc{long}{GetX}{\void}
|
||||||
|
|
||||||
|
Returns X coordinate of the physical mouse event position.
|
||||||
|
|
||||||
|
\membersection{wxMouseEvent::GetY}\label{wxmouseeventgety}
|
||||||
|
|
||||||
|
\func{long}{GetY}{\void}
|
||||||
|
|
||||||
|
Returns Y coordinate of the physical mouse event position.
|
||||||
|
|
||||||
|
\membersection{wxMouseEvent::IsButton}
|
||||||
|
|
||||||
|
\constfunc{bool}{IsButton}{\void}
|
||||||
|
|
||||||
|
Returns TRUE if the event was a mouse button event (not necessarily a button down event -
|
||||||
|
that may be tested using {\it ButtonDown}).
|
||||||
|
|
||||||
|
\membersection{wxMouseEvent::Leaving}\label{wxmouseeventleaving}
|
||||||
|
|
||||||
|
\constfunc{bool}{Leaving}{\void}
|
||||||
|
|
||||||
|
Returns TRUE if the mouse was leaving the window.
|
||||||
|
|
||||||
|
See also \helpref{wxMouseEvent::Entering}{wxmouseevententering}.
|
||||||
|
|
||||||
|
\membersection{wxMouseEvent::LeftDClick}
|
||||||
|
|
||||||
|
\constfunc{bool}{LeftDClick}{\void}
|
||||||
|
|
||||||
|
Returns TRUE if the event was a left double click.
|
||||||
|
|
||||||
|
\membersection{wxMouseEvent::LeftDown}\label{wxmouseeventleftdown}
|
||||||
|
|
||||||
|
\constfunc{bool}{LeftDown}{\void}
|
||||||
|
|
||||||
|
Returns TRUE if the left mouse button changed to down.
|
||||||
|
|
||||||
|
\membersection{wxMouseEvent::LeftIsDown}\label{wxmouseeventleftisdown}
|
||||||
|
|
||||||
|
\constfunc{bool}{LeftIsDown}{\void}
|
||||||
|
|
||||||
|
Returns TRUE if the left mouse button is currently down, independent
|
||||||
|
of the current event type.
|
||||||
|
|
||||||
|
Please notice that it is {\bf not} the same as
|
||||||
|
\helpref{LeftDown}{wxmouseeventleftdown} which returns TRUE if the left mouse
|
||||||
|
button was just pressed. Rather, it describes the state of the mouse button
|
||||||
|
before the event happened.
|
||||||
|
|
||||||
|
This event is usually used in the mouse event handlers which process "move
|
||||||
|
mouse" messages to determine whether the user is (still) dragging the mouse.
|
||||||
|
|
||||||
|
\membersection{wxMouseEvent::LeftUp}
|
||||||
|
|
||||||
|
\constfunc{bool}{LeftUp}{\void}
|
||||||
|
|
||||||
|
Returns TRUE if the left mouse button changed to up.
|
||||||
|
|
||||||
|
\membersection{wxMouseEvent::MetaDown}
|
||||||
|
|
||||||
|
\constfunc{bool}{MetaDown}{\void}
|
||||||
|
|
||||||
|
Returns TRUE if the Meta key was down at the time of the event.
|
||||||
|
|
||||||
|
\membersection{wxMouseEvent::MiddleDClick}
|
||||||
|
|
||||||
|
\constfunc{bool}{MiddleDClick}{\void}
|
||||||
|
|
||||||
|
Returns TRUE if the event was a middle double click.
|
||||||
|
|
||||||
|
\membersection{wxMouseEvent::MiddleDown}
|
||||||
|
|
||||||
|
\constfunc{bool}{MiddleDown}{\void}
|
||||||
|
|
||||||
|
Returns TRUE if the middle mouse button changed to down.
|
||||||
|
|
||||||
|
\membersection{wxMouseEvent::MiddleIsDown}\label{wxmouseeventmiddleisdown}
|
||||||
|
|
||||||
|
\constfunc{bool}{MiddleIsDown}{\void}
|
||||||
|
|
||||||
|
Returns TRUE if the middle mouse button is currently down, independent
|
||||||
|
of the current event type.
|
||||||
|
|
||||||
|
\membersection{wxMouseEvent::MiddleUp}
|
||||||
|
|
||||||
|
\constfunc{bool}{MiddleUp}{\void}
|
||||||
|
|
||||||
|
Returns TRUE if the middle mouse button changed to up.
|
||||||
|
|
||||||
|
\membersection{wxMouseEvent::Moving}
|
||||||
|
|
||||||
|
\constfunc{bool}{Moving}{\void}
|
||||||
|
|
||||||
|
Returns TRUE if this was a motion event (no buttons depressed).
|
||||||
|
|
||||||
|
\membersection{wxMouseEvent::RightDClick}
|
||||||
|
|
||||||
|
\constfunc{bool}{RightDClick}{\void}
|
||||||
|
|
||||||
|
Returns TRUE if the event was a right double click.
|
||||||
|
|
||||||
|
\membersection{wxMouseEvent::RightDown}
|
||||||
|
|
||||||
|
\constfunc{bool}{RightDown}{\void}
|
||||||
|
|
||||||
|
Returns TRUE if the right mouse button changed to down.
|
||||||
|
|
||||||
|
\membersection{wxMouseEvent::RightIsDown}\label{wxmouseeventrightisdown}
|
||||||
|
|
||||||
|
\constfunc{bool}{RightIsDown}{\void}
|
||||||
|
|
||||||
|
Returns TRUE if the right mouse button is currently down, independent
|
||||||
|
of the current event type.
|
||||||
|
|
||||||
|
\membersection{wxMouseEvent::RightUp}
|
||||||
|
|
||||||
|
\constfunc{bool}{RightUp}{\void}
|
||||||
|
|
||||||
|
Returns TRUE if the right mouse button changed to up.
|
||||||
|
|
||||||
|
\membersection{wxMouseEvent::ShiftDown}
|
||||||
|
|
||||||
|
\constfunc{bool}{ShiftDown}{\void}
|
||||||
|
|
||||||
|
Returns TRUE if the shift key was down at the time of the event.
|
||||||
|
|
1936
include/wx/event.h
Normal file
1936
include/wx/event.h
Normal file
File diff suppressed because it is too large
Load Diff
154
include/wx/generic/scrolwin.h
Normal file
154
include/wx/generic/scrolwin.h
Normal file
@@ -0,0 +1,154 @@
|
|||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Name: wx/generic/scrolwin.h
|
||||||
|
// Purpose: wxScrolledWindow class
|
||||||
|
// Author: Julian Smart
|
||||||
|
// Modified by:
|
||||||
|
// Created: 01/02/97
|
||||||
|
// RCS-ID: $Id$
|
||||||
|
// Copyright: (c) Julian Smart and Markus Holzem
|
||||||
|
// Licence: wxWindows license
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#ifndef _WX_GENERIC_SCROLLWIN_H_
|
||||||
|
#define _WX_GENERIC_SCROLLWIN_H_
|
||||||
|
|
||||||
|
#ifdef __GNUG__
|
||||||
|
#pragma interface "scrolwin.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// headers and constants
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
#include "wx/window.h"
|
||||||
|
#include "wx/panel.h"
|
||||||
|
|
||||||
|
WXDLLEXPORT_DATA(extern const wxChar*) wxPanelNameStr;
|
||||||
|
|
||||||
|
// default scrolled window style
|
||||||
|
#ifndef wxScrolledWindowStyle
|
||||||
|
#define wxScrolledWindowStyle (wxHSCROLL | wxVSCROLL)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// wxGenericScrolledWindow
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
class WXDLLEXPORT wxGenericScrolledWindow : public wxPanel
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
wxGenericScrolledWindow();
|
||||||
|
wxGenericScrolledWindow(wxWindow *parent,
|
||||||
|
wxWindowID id = -1,
|
||||||
|
const wxPoint& pos = wxDefaultPosition,
|
||||||
|
const wxSize& size = wxDefaultSize,
|
||||||
|
long style = wxScrolledWindowStyle,
|
||||||
|
const wxString& name = wxPanelNameStr)
|
||||||
|
{
|
||||||
|
Create(parent, id, pos, size, style, name);
|
||||||
|
}
|
||||||
|
|
||||||
|
~wxGenericScrolledWindow();
|
||||||
|
|
||||||
|
bool Create(wxWindow *parent,
|
||||||
|
wxWindowID id,
|
||||||
|
const wxPoint& pos = wxDefaultPosition,
|
||||||
|
const wxSize& size = wxDefaultSize,
|
||||||
|
long style = wxScrolledWindowStyle,
|
||||||
|
const wxString& name = wxPanelNameStr);
|
||||||
|
|
||||||
|
// Normally the wxGenericScrolledWindow will scroll itself, but in
|
||||||
|
// some rare occasions you might want it to scroll another
|
||||||
|
// window (e.g. a child of it in order to scroll only a portion
|
||||||
|
// the area between the scrollbars (spreadsheet: only cell area
|
||||||
|
// will move).
|
||||||
|
virtual void SetTargetWindow( wxWindow *target );
|
||||||
|
virtual wxWindow *GetTargetWindow();
|
||||||
|
|
||||||
|
// Number of pixels per user unit (0 or -1 for no scrollbar)
|
||||||
|
// Length of virtual canvas in user units
|
||||||
|
// Length of page in user units
|
||||||
|
virtual void SetScrollbars(int pixelsPerUnitX, int pixelsPerUnitY,
|
||||||
|
int noUnitsX, int noUnitsY,
|
||||||
|
int xPos = 0, int yPos = 0,
|
||||||
|
bool noRefresh = FALSE );
|
||||||
|
|
||||||
|
// Physically scroll the window
|
||||||
|
virtual void Scroll(int x_pos, int y_pos);
|
||||||
|
|
||||||
|
#if WXWIN_COMPATIBILITY
|
||||||
|
virtual void GetScrollUnitsPerPage(int *x_page, int *y_page) const;
|
||||||
|
virtual void CalcUnscrolledPosition(int x, int y, float *xx, float *yy) const;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
int GetScrollPageSize(int orient) const;
|
||||||
|
void SetScrollPageSize(int orient, int pageSize);
|
||||||
|
|
||||||
|
virtual void GetScrollPixelsPerUnit(int *x_unit, int *y_unit) const;
|
||||||
|
|
||||||
|
// Enable/disable Windows scrolling in either direction.
|
||||||
|
// If TRUE, wxWindows scrolls the canvas and only a bit of
|
||||||
|
// the canvas is invalidated; no Clear() is necessary.
|
||||||
|
// If FALSE, the whole canvas is invalidated and a Clear() is
|
||||||
|
// necessary. Disable for when the scroll increment is used
|
||||||
|
// to actually scroll a non-constant distance
|
||||||
|
virtual void EnableScrolling(bool x_scrolling, bool y_scrolling);
|
||||||
|
|
||||||
|
// Get the view start
|
||||||
|
virtual void GetViewStart(int *x, int *y) const;
|
||||||
|
// Compatibility
|
||||||
|
void ViewStart(int *x, int *y) const
|
||||||
|
{ GetViewStart( x, y ); }
|
||||||
|
|
||||||
|
// Actual size in pixels when scrolling is taken into account
|
||||||
|
virtual void GetVirtualSize(int *x, int *y) const;
|
||||||
|
|
||||||
|
// Set the scale factor, used in PrepareDC
|
||||||
|
void SetScale(double xs, double ys) { m_scaleX = xs; m_scaleY = ys; }
|
||||||
|
double GetScaleX() const { return m_scaleX; }
|
||||||
|
double GetScaleY() const { return m_scaleY; }
|
||||||
|
|
||||||
|
virtual void CalcScrolledPosition(int x, int y, int *xx, int *yy) const;
|
||||||
|
virtual void CalcUnscrolledPosition(int x, int y, int *xx, int *yy) const;
|
||||||
|
|
||||||
|
// Adjust the scrollbars
|
||||||
|
virtual void AdjustScrollbars(void);
|
||||||
|
|
||||||
|
// Override this function to draw the graphic (or just process EVT_PAINT)
|
||||||
|
virtual void OnDraw(wxDC& WXUNUSED(dc)) {};
|
||||||
|
|
||||||
|
// Override this function if you don't want to have wxGenericScrolledWindow
|
||||||
|
// automatically change the origin according to the scroll position.
|
||||||
|
virtual void PrepareDC(wxDC& dc);
|
||||||
|
|
||||||
|
// implementation from now on
|
||||||
|
void OnScroll(wxScrollWinEvent& event);
|
||||||
|
void OnSize(wxSizeEvent& event);
|
||||||
|
void OnPaint(wxPaintEvent& event);
|
||||||
|
void OnChar(wxKeyEvent& event);
|
||||||
|
|
||||||
|
// Calculate scroll increment
|
||||||
|
virtual int CalcScrollInc(wxScrollWinEvent& event);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
wxWindow *m_targetWindow;
|
||||||
|
int m_xScrollPixelsPerLine;
|
||||||
|
int m_yScrollPixelsPerLine;
|
||||||
|
bool m_xScrollingEnabled;
|
||||||
|
bool m_yScrollingEnabled;
|
||||||
|
int m_xScrollPosition;
|
||||||
|
int m_yScrollPosition;
|
||||||
|
int m_xScrollLines;
|
||||||
|
int m_yScrollLines;
|
||||||
|
int m_xScrollLinesPerPage;
|
||||||
|
int m_yScrollLinesPerPage;
|
||||||
|
double m_scaleX;
|
||||||
|
double m_scaleY;
|
||||||
|
|
||||||
|
private:
|
||||||
|
DECLARE_EVENT_TABLE()
|
||||||
|
DECLARE_ABSTRACT_CLASS(wxGenericScrolledWindow)
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
||||||
|
// _WX_GENERIC_SCROLLWIN_H_
|
936
include/wx/msw/setup0.h
Normal file
936
include/wx/msw/setup0.h
Normal file
@@ -0,0 +1,936 @@
|
|||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Name: wx/msw/setup.h
|
||||||
|
// Purpose: Configuration for the library
|
||||||
|
// Author: Julian Smart
|
||||||
|
// Modified by:
|
||||||
|
// Created: 01/02/97
|
||||||
|
// RCS-ID: $Id$
|
||||||
|
// Copyright: (c) Julian Smart
|
||||||
|
// Licence: wxWindows license
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#ifndef _WX_SETUP_H_
|
||||||
|
#define _WX_SETUP_H_
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// global settings
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
// define this to 0 when building wxBase library - this can also be done from
|
||||||
|
// makefile/project file overriding the value here
|
||||||
|
#ifndef wxUSE_GUI
|
||||||
|
#define wxUSE_GUI 1
|
||||||
|
#endif // wxUSE_GUI
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// compatibility settings
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
// This setting determines the compatibility with 1.68 API:
|
||||||
|
// Level 0: no backward compatibility, all new features
|
||||||
|
// Level 1: some extra methods are defined for compatibility.
|
||||||
|
//
|
||||||
|
// Default is 0.
|
||||||
|
//
|
||||||
|
// Recommended setting: 0 (in fact the compatibility code is now very minimal
|
||||||
|
// so there is little advantage to setting it to 1.
|
||||||
|
#define WXWIN_COMPATIBILITY 0
|
||||||
|
|
||||||
|
// in wxMSW version 2.1.11 and earlier, wxIcon always derives from wxBitmap,
|
||||||
|
// but this is very dangerous because you can mistakenly pass an icon instead
|
||||||
|
// of a bitmap to a function taking "const wxBitmap&" - which will *not* work
|
||||||
|
// because an icon is not a valid bitmap
|
||||||
|
//
|
||||||
|
// Starting from 2.1.12, you have the choice under this backwards compatible
|
||||||
|
// behaviour (your code will still compile, but probably won't behave as
|
||||||
|
// expected!) and not deriving wxIcon class from wxBitmap, but providing a
|
||||||
|
// conversion ctor wxBitmap(const wxIcon&) instead.
|
||||||
|
//
|
||||||
|
// Recommended setting: 0
|
||||||
|
#define wxICON_IS_BITMAP 0
|
||||||
|
|
||||||
|
// Define as 1 for font size to be backward compatible to 1.63 and earlier.
|
||||||
|
// 1.64 and later define point sizes to be compatible with Windows.
|
||||||
|
//
|
||||||
|
// Default is 0
|
||||||
|
//
|
||||||
|
// Recommended setting: 0
|
||||||
|
#define wxFONT_SIZE_COMPATIBILITY 0
|
||||||
|
|
||||||
|
// Set to 0 for accurate dialog units, else 1 to be as per 2.1.16 and before.
|
||||||
|
// If migrating between versions, your dialogs may seem to shrink.
|
||||||
|
//
|
||||||
|
// Default is 1
|
||||||
|
//
|
||||||
|
// Recommended setting: 0 (the new calculations are more correct!)
|
||||||
|
#define wxDIALOG_UNIT_COMPATIBILITY 1
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// debugging settings
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
// Generic comment about debugging settings: they are very useful if you don't
|
||||||
|
// use any other memory leak detection tools such as Purify/BoundsChecker, but
|
||||||
|
// are probably redundant otherwise. Also, Visual C++ CRT has the same features
|
||||||
|
// as wxWindows memory debugging subsystem built in since version 5.0 and you
|
||||||
|
// may prefer to use it instead of built in memory debugging code because it is
|
||||||
|
// faster and more fool proof.
|
||||||
|
//
|
||||||
|
// Using VC++ CRT memory debugging is enabled by default in debug mode
|
||||||
|
// (__WXDEBUG__) if wxUSE_GLOBAL_MEMORY_OPERATORS is *not* enabled (i.e. is 0)
|
||||||
|
// and if __NO_VC_CRTDBG__ is not defined.
|
||||||
|
|
||||||
|
// If 1, enables wxDebugContext, for writing error messages to file, etc. If
|
||||||
|
// __WXDEBUG__ is not defined, will still use normal memory operators. It's
|
||||||
|
// recommended to set this to 1, since you may well need to output an error log
|
||||||
|
// in a production version (or non-debugging beta).
|
||||||
|
//
|
||||||
|
// Default is 1.
|
||||||
|
//
|
||||||
|
// Recommended setting: 1 but see comment above
|
||||||
|
#define wxUSE_DEBUG_CONTEXT 1
|
||||||
|
|
||||||
|
// If 1, enables debugging versions of wxObject::new and wxObject::delete *IF*
|
||||||
|
// __WXDEBUG__ is also defined.
|
||||||
|
//
|
||||||
|
// WARNING: this code may not work with all architectures, especially if
|
||||||
|
// alignment is an issue. This switch is currently ignored for mingw / cygwin
|
||||||
|
//
|
||||||
|
// Default is 1
|
||||||
|
//
|
||||||
|
// Recommended setting: 1 but see comment in the beginning of this section
|
||||||
|
#define wxUSE_MEMORY_TRACING 1
|
||||||
|
|
||||||
|
// In debug mode, cause new and delete to be redefined globally.
|
||||||
|
// If this causes problems (e.g. link errors), set this to 0.
|
||||||
|
// This switch is currently ignored for mingw / cygwin
|
||||||
|
//
|
||||||
|
// Default is 1
|
||||||
|
//
|
||||||
|
// Recommended setting: 1 but see comment in the beginning of this section
|
||||||
|
#define wxUSE_GLOBAL_MEMORY_OPERATORS 1
|
||||||
|
|
||||||
|
// In debug mode, causes new to be defined to be WXDEBUG_NEW (see object.h). If
|
||||||
|
// this causes problems (e.g. link errors), set this to 0. You may need to set
|
||||||
|
// this to 0 if using templates (at least for VC++). This switch is currently
|
||||||
|
// ignored for mingw / cygwin
|
||||||
|
//
|
||||||
|
// Default is 1
|
||||||
|
//
|
||||||
|
// Recommended setting: 1 but see comment in the beginning of this section
|
||||||
|
#define wxUSE_DEBUG_NEW_ALWAYS 1
|
||||||
|
|
||||||
|
// wxHandleFatalExceptions() may be used to catch the program faults at run
|
||||||
|
// time and, instead of terminating the program with a usual GPF message box,
|
||||||
|
// call the user-defined wxApp::OnFatalException() function. If you set
|
||||||
|
// wxUSE_ON_FATAL_EXCEPTION to 0, wxHandleFatalExceptions() will not work.
|
||||||
|
//
|
||||||
|
// This setting is for Win32 only and can only be enabled if your compiler
|
||||||
|
// supports Win32 structured exception handling (currently only VC++ does)
|
||||||
|
//
|
||||||
|
// Default is 1
|
||||||
|
//
|
||||||
|
// Recommended setting: 1 if your compiler supports it.
|
||||||
|
#ifdef _MSC_VER
|
||||||
|
#define wxUSE_ON_FATAL_EXCEPTION 1
|
||||||
|
#else
|
||||||
|
#define wxUSE_ON_FATAL_EXCEPTION 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// Unicode support
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
// Set wxUSE_UNICODE to 1 to compile wxWindows in Unicode mode: wxChar will be
|
||||||
|
// defined as wchar_t, wxString will use Unicode internally. If you set this
|
||||||
|
// to 1, you must use wxT() macro for all literal strings in the program.
|
||||||
|
//
|
||||||
|
// Unicode is currently only fully supported under Windows NT/2000 (Windows 9x
|
||||||
|
// doesn't support it and the programs compiled in Unicode mode will not run
|
||||||
|
// under 9x).
|
||||||
|
//
|
||||||
|
// Default is 0
|
||||||
|
//
|
||||||
|
// Recommended setting: 0 (unless you only plan to use Windows NT/2000)
|
||||||
|
#define wxUSE_UNICODE 0
|
||||||
|
|
||||||
|
// Setting wxUSE_WCHAR_T to 1 gives you some degree of Unicode support without
|
||||||
|
// compiling the program in Unicode mode. More precisely, it will be possible
|
||||||
|
// to construct wxString from a wide (Unicode) string and convert any wxString
|
||||||
|
// to Unicode.
|
||||||
|
//
|
||||||
|
// Default is 1
|
||||||
|
//
|
||||||
|
// Recommended setting: 1
|
||||||
|
#define wxUSE_WCHAR_T 1
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// global features
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
// Support for message/error logging. This includes wxLogXXX() functions and
|
||||||
|
// wxLog and derived classes. Don't set this to 0 unless you really know what
|
||||||
|
// you are doing.
|
||||||
|
//
|
||||||
|
// Default is 1
|
||||||
|
//
|
||||||
|
// Recommended setting: 1 (always)
|
||||||
|
#define wxUSE_LOG 1
|
||||||
|
|
||||||
|
// Support for multithreaded applications: if 1, compile in thread classes
|
||||||
|
// (thread.h) and make the library a bit more thread safe. Although thread
|
||||||
|
// support is quite stable by now, you may still consider recompiling the
|
||||||
|
// library without it if you have no use for it - this will result in a
|
||||||
|
// somewhat smaller and faster operation.
|
||||||
|
//
|
||||||
|
// This is ignored under Win16, threads are only supported under Win32.
|
||||||
|
//
|
||||||
|
// Default is 1
|
||||||
|
//
|
||||||
|
// Recommended setting: 0 unless you do plan to develop MT applications
|
||||||
|
#define wxUSE_THREADS 1
|
||||||
|
|
||||||
|
// If enabled (1), compiles wxWindows streams classes
|
||||||
|
#define wxUSE_STREAMS 1
|
||||||
|
|
||||||
|
// Use standard C++ streams if 1. If 0, use wxWin streams implementation.
|
||||||
|
#define wxUSE_STD_IOSTREAM 0
|
||||||
|
|
||||||
|
// Use serialization (requires utils/serialize)
|
||||||
|
#define wxUSE_SERIAL 0
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// non GUI features selection
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
// Set wxUSE_LONGLONG to 1 to compile the wxLongLong class. This is a 64 bit
|
||||||
|
// integer which is implemented in terms of native 64 bit integers if any or
|
||||||
|
// uses emulation otherwise.
|
||||||
|
//
|
||||||
|
// This class is required by wxDateTime and so you should enable it if you want
|
||||||
|
// to use wxDateTime. For most modern platforms, it will use the native 64 bit
|
||||||
|
// integers in which case (almost) all of its functions are inline and it
|
||||||
|
// almost does not take any space, so there should be no reason to switch it
|
||||||
|
// off.
|
||||||
|
//
|
||||||
|
// Recommended setting: 1
|
||||||
|
#define wxUSE_LONGLONG 1
|
||||||
|
|
||||||
|
// Set wxUSE_TIMEDATE to 1 to compile the wxDateTime and related classes which
|
||||||
|
// allow to manipulate dates, times and time intervals. wxDateTime replaces the
|
||||||
|
// old wxTime and wxDate classes which are still provided for backwards
|
||||||
|
// compatibility (and implemented in terms of wxDateTime).
|
||||||
|
//
|
||||||
|
// Note that this class is relatively new and is still officially in alpha
|
||||||
|
// stage because some features are not yet (fully) implemented. It is already
|
||||||
|
// quite useful though and should only be disabled if you are aiming at
|
||||||
|
// absolutely minimal version of the library.
|
||||||
|
//
|
||||||
|
// Requires: wxUSE_LONGLONG
|
||||||
|
//
|
||||||
|
// Recommended setting: 1
|
||||||
|
#define wxUSE_TIMEDATE 1
|
||||||
|
|
||||||
|
// Setting wxUSE_CONFIG to 1 enables the use of wxConfig and related classes
|
||||||
|
// which allow the application to store its settings in the persistent
|
||||||
|
// storage. Setting this to 1 will also enable on-demand creation of the
|
||||||
|
// global config object in wxApp.
|
||||||
|
//
|
||||||
|
// See also wxUSE_CONFIG_NATIVE below.
|
||||||
|
//
|
||||||
|
// Recommended setting: 1
|
||||||
|
#define wxUSE_CONFIG 1
|
||||||
|
|
||||||
|
// If wxUSE_CONFIG is 1, you may choose to use either the native config
|
||||||
|
// classes under Windows (using .INI files under Win16 and the registry under
|
||||||
|
// Win32) or the portable text file format used by the config classes under
|
||||||
|
// Unix.
|
||||||
|
//
|
||||||
|
// Default is 1 to use native classes. Note that you may still use
|
||||||
|
// wxFileConfig even if you set this to 1 - just the config object created by
|
||||||
|
// default for the applications needs will be a wxRegConfig or wxIniConfig and
|
||||||
|
// not wxFileConfig.
|
||||||
|
//
|
||||||
|
// Recommended setting: 1
|
||||||
|
#define wxUSE_CONFIG_NATIVE 1
|
||||||
|
|
||||||
|
// If wxUSE_DIALUP_MANAGER is 1, compile in wxDialUpManager class which allows
|
||||||
|
// to connect/disconnect from the network and be notified whenever the dial-up
|
||||||
|
// network connection is established/terminated. Requires wxUSE_DYNLIB_CLASS.
|
||||||
|
//
|
||||||
|
// Default is 1.
|
||||||
|
//
|
||||||
|
// Recommended setting: 1
|
||||||
|
#define wxUSE_DIALUP_MANAGER 1
|
||||||
|
|
||||||
|
// Compile in wxLibrary class for run-time DLL loading and function calling.
|
||||||
|
// Required by wxUSE_DIALUP_MANAGER.
|
||||||
|
//
|
||||||
|
// This setting is for Win32 only
|
||||||
|
//
|
||||||
|
// Default is 1.
|
||||||
|
//
|
||||||
|
// Recommended setting: 1
|
||||||
|
#define wxUSE_DYNLIB_CLASS 1
|
||||||
|
|
||||||
|
// Set to 1 to use socket classes
|
||||||
|
#define wxUSE_SOCKETS 1
|
||||||
|
|
||||||
|
// Set to 1 to enable virtual file systems (required by wxHTML)
|
||||||
|
#define wxUSE_FILESYSTEM 1
|
||||||
|
|
||||||
|
// Set to 1 to enable virtual ZIP filesystem (requires wxUSE_FILESYSTEM)
|
||||||
|
#define wxUSE_FS_ZIP 1
|
||||||
|
|
||||||
|
// Set to 1 to enable virtual Internet filesystem (requires wxUSE_FILESYSTEM)
|
||||||
|
#define wxUSE_FS_INET 1
|
||||||
|
|
||||||
|
// Set to 1 to compile wxZipInput/OutputStream classes.
|
||||||
|
#define wxUSE_ZIPSTREAM 1
|
||||||
|
|
||||||
|
// Set to 1 to compile wxZlibInput/OutputStream classes. Also required by
|
||||||
|
// wxUSE_LIBPNG.
|
||||||
|
#define wxUSE_ZLIB 1
|
||||||
|
|
||||||
|
// If enabled, the code written by Apple will be used to write, in a portable
|
||||||
|
// way, float on the disk. See extended.c for the license which is different
|
||||||
|
// from wxWindows one.
|
||||||
|
//
|
||||||
|
// Default is 1.
|
||||||
|
//
|
||||||
|
// Recommended setting: 1 unless you don't like the license terms (unlikely)
|
||||||
|
#define wxUSE_APPLE_IEEE 1
|
||||||
|
|
||||||
|
// Use wxFile class.
|
||||||
|
//
|
||||||
|
// Default is 1.
|
||||||
|
//
|
||||||
|
// Recommended setting: 1 (highly recommended, required i18n code, wxConfig...)
|
||||||
|
#define wxUSE_FILE 1
|
||||||
|
|
||||||
|
// use wxTextFile class: requires wxFile, required by wxFileConfig
|
||||||
|
#define wxUSE_TEXTFILE 1
|
||||||
|
|
||||||
|
// i18n support: _() macro, wxLocale class. Requires wxTextFile.
|
||||||
|
#define wxUSE_INTL 1
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// Optional controls
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
// wxToolBar related settings: if wxUSE_TOOLBAR is 0, don't compile any toolbar
|
||||||
|
// classes at all. Otherwise, use the native toolbar class unless
|
||||||
|
// wxUSE_TOOLBAR_NATIVE is 0. Additionally, the generic toolbar class which
|
||||||
|
// supports some features which might not be supported by the native wxToolBar
|
||||||
|
// class may be compiled in if wxUSE_TOOLBAR_SIMPLE is 1.
|
||||||
|
//
|
||||||
|
// Default is 1 for all settings.
|
||||||
|
//
|
||||||
|
// Recommended setting: 1 for wxUSE_TOOLBAR and wxUSE_TOOLBAR_NATIVE and 0 for
|
||||||
|
// wxUSE_TOOLBAR_SIMPLE (the default is 1 mainly for backwards compatibility).
|
||||||
|
#define wxUSE_TOOLBAR 1
|
||||||
|
#define wxUSE_TOOLBAR_NATIVE 1
|
||||||
|
#define wxUSE_TOOLBAR_SIMPLE 1
|
||||||
|
|
||||||
|
// wxNotebook is a control with several "tabs" located on one of its sides. It
|
||||||
|
// may be used ot logically organise the data presented to the user instead of
|
||||||
|
// putting everything in one huge dialog. It replaces wxTabControl and related
|
||||||
|
// classes of wxWin 1.6x.
|
||||||
|
//
|
||||||
|
// Default is 1.
|
||||||
|
//
|
||||||
|
// Recommended setting: 1
|
||||||
|
#define wxUSE_NOTEBOOK 1
|
||||||
|
|
||||||
|
// The corresponding controls will be compiled in if wxUSE_<CONTROL> is set to
|
||||||
|
// 1 and not compiled into the library otherwise.
|
||||||
|
//
|
||||||
|
// Default is 1 for everything.
|
||||||
|
//
|
||||||
|
// Recommended setting: 1 (library might fail to compile for some combinations
|
||||||
|
// of disabled controls)
|
||||||
|
#define wxUSE_CARET 1
|
||||||
|
#define wxUSE_CHECKBOX 1
|
||||||
|
#define wxUSE_CHECKLISTBOX 1 // requires wxUSE_OWNER_DRAWN
|
||||||
|
#define wxUSE_CHOICE 1
|
||||||
|
#define wxUSE_COMBOBOX 1
|
||||||
|
#define wxUSE_GAUGE 1
|
||||||
|
#define wxUSE_LISTBOX 1
|
||||||
|
#define wxUSE_RADIOBOX 1
|
||||||
|
#define wxUSE_RADIOBTN 1
|
||||||
|
#define wxUSE_SASH 1 // wxSashWindow
|
||||||
|
#define wxUSE_SCROLLBAR 1
|
||||||
|
#define wxUSE_SLIDER 1
|
||||||
|
#define wxUSE_SPINBTN 1
|
||||||
|
#define wxUSE_SPINCTRL 1
|
||||||
|
#define wxUSE_STATLINE 1
|
||||||
|
#define wxUSE_STATUSBAR 1
|
||||||
|
#define wxUSE_TOGGLEBTN 1 // requires wxButton
|
||||||
|
#define wxUSE_TOOLTIPS 1 // wxToolTip and wxWindow::SetToolTip()
|
||||||
|
|
||||||
|
// Two status bar implementations are available under Win32: the generic one
|
||||||
|
// or the wrapper around native control. For native look and feel the native
|
||||||
|
// version should be used.
|
||||||
|
//
|
||||||
|
// Default is 1.
|
||||||
|
//
|
||||||
|
// Recommended setting: 1
|
||||||
|
#define wxUSE_NATIVE_STATUSBAR 1
|
||||||
|
|
||||||
|
// this setting is obsolete, value is ignored
|
||||||
|
#define wxUSE_BUTTONBAR 1
|
||||||
|
|
||||||
|
// wxGrid class comes in two flavours: the original (pre wxWin 2.2) one and
|
||||||
|
// the new, much imporved and enhanced version. The new version is backwards
|
||||||
|
// compatible with the old one and should be used whenever possible, i.e. if
|
||||||
|
// you set wxUSE_GRID to 1, set wxUSE_NEW_GRID to 1 too.
|
||||||
|
//
|
||||||
|
// Default is 1 for both options.
|
||||||
|
//
|
||||||
|
// Recommended setting: 1 for wxUSE_NEW_GRID, 0 if you have an old code using
|
||||||
|
// wxGrid and 100% backwards compatibality (with all old wxGrid quirks) is
|
||||||
|
// essential.
|
||||||
|
//
|
||||||
|
// WIN16/BC++ resets wxUSE_NEW_GRID to 0 because it exceeds the data limit.
|
||||||
|
#define wxUSE_GRID 1
|
||||||
|
#define wxUSE_NEW_GRID 1
|
||||||
|
|
||||||
|
// wxValidator class and related methods
|
||||||
|
#define wxUSE_VALIDATORS 1
|
||||||
|
|
||||||
|
// wxAcceleratorTable/Entry classes and support for them in wxMenu(Bar)
|
||||||
|
#define wxUSE_ACCEL 1
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// common dialogs
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
// Define 1 to use generic dialogs in Windows, even though they duplicate
|
||||||
|
// native common dialog (e.g. wxColourDialog). This is mainly useful for
|
||||||
|
// testing.
|
||||||
|
//
|
||||||
|
// Default is 0
|
||||||
|
//
|
||||||
|
// Recommended setting: 0
|
||||||
|
#define wxUSE_GENERIC_DIALOGS_IN_MSW 0
|
||||||
|
|
||||||
|
// On rare occasions (e.g. using DJGPP) may want to omit common dialogs (e.g.
|
||||||
|
// file selector, printer dialog). Switching this off also switches off the
|
||||||
|
// printing architecture and interactive wxPrinterDC.
|
||||||
|
//
|
||||||
|
// Default is 1
|
||||||
|
//
|
||||||
|
// Recommended setting: 1 (unless it really doesn't work)
|
||||||
|
#define wxUSE_COMMON_DIALOGS 1
|
||||||
|
|
||||||
|
// text entry dialog and wxGetTextFromUser function
|
||||||
|
#define wxUSE_TEXTDLG 1
|
||||||
|
|
||||||
|
// progress dialog class for lengthy operations
|
||||||
|
#define wxUSE_PROGRESSDLG 1
|
||||||
|
|
||||||
|
// wxBusyInfo displays window with message when app is busy. Works in same way
|
||||||
|
// as wxBusyCursor
|
||||||
|
#define wxUSE_BUSYINFO 1
|
||||||
|
|
||||||
|
// wxDirDlg class for getting a directory name from user
|
||||||
|
#define wxUSE_DIRDLG 1
|
||||||
|
|
||||||
|
// support for startup tips (wxShowTip &c)
|
||||||
|
#define wxUSE_STARTUP_TIPS 1
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// Metafiles support
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
// Windows supports the graphics format known as metafile which is, though not
|
||||||
|
// portable, is widely used under Windows and so is supported by wxWin (under
|
||||||
|
// Windows only, of course). Win16 (Win3.1) used the so-called "Window
|
||||||
|
// MetaFiles" or WMFs which were replaced with "Enhanced MetaFiles" or EMFs in
|
||||||
|
// Win32 (Win9x, NT, 2000). Both of these are supported in wxWin and, by
|
||||||
|
// default, WMFs will be used under Win16 and EMFs under Win32. This may be
|
||||||
|
// changed by setting wxUSE_WIN_METAFILES_ALWAYS to 1 and/or setting
|
||||||
|
// wxUSE_ENH_METAFILE to 0. You may also set wxUSE_METAFILE to 0 to not compile
|
||||||
|
// in any metafile related classes at all.
|
||||||
|
//
|
||||||
|
// Default is 1 for wxUSE_ENH_METAFILE and 0 for wxUSE_WIN_METAFILES_ALWAYS.
|
||||||
|
//
|
||||||
|
// Recommended setting: default or 0 for everything for portable programs.
|
||||||
|
#define wxUSE_METAFILE 1
|
||||||
|
#define wxUSE_ENH_METAFILE 1
|
||||||
|
#define wxUSE_WIN_METAFILES_ALWAYS 0
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// Big GUI components
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
// Set to 0 to disable document/view architecture
|
||||||
|
#define wxUSE_DOC_VIEW_ARCHITECTURE 1
|
||||||
|
|
||||||
|
// Set to 0 to disable MDI document/view architecture
|
||||||
|
#define wxUSE_MDI_ARCHITECTURE 1
|
||||||
|
|
||||||
|
// Set to 0 to disable print/preview architecture code
|
||||||
|
#define wxUSE_PRINTING_ARCHITECTURE 1
|
||||||
|
|
||||||
|
// wxHTML sublibrary allows to display HTML in wxWindow programs and much,
|
||||||
|
// much more.
|
||||||
|
//
|
||||||
|
// Default is 1.
|
||||||
|
//
|
||||||
|
// Recommended setting: 1 (wxHTML is great!), set to 0 if you want compile a
|
||||||
|
// smaller library.
|
||||||
|
#define wxUSE_HTML 1
|
||||||
|
|
||||||
|
// wxPlot is a class to display functions plots in wxWindow.
|
||||||
|
//
|
||||||
|
// Default is 1.
|
||||||
|
//
|
||||||
|
// Recommended setting: 1
|
||||||
|
#define wxUSE_PLOT 1
|
||||||
|
|
||||||
|
// OpenGL canvas
|
||||||
|
#define wxUSE_GLCANVAS 0
|
||||||
|
|
||||||
|
// wxTreeLayout class
|
||||||
|
#define wxUSE_TREELAYOUT 1
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// miscellaneous settings
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
#define wxUSE_IPC 1
|
||||||
|
// 0 for no interprocess comms
|
||||||
|
#define wxUSE_HELP 1
|
||||||
|
// 0 for no help facility
|
||||||
|
#define wxUSE_MS_HTML_HELP 0
|
||||||
|
// 0 for no MS HTML Help
|
||||||
|
#define wxUSE_RESOURCES 1
|
||||||
|
// 0 for no wxGetResource/wxWriteResource
|
||||||
|
#define wxUSE_CONSTRAINTS 1
|
||||||
|
// 0 for no window layout constraint system
|
||||||
|
|
||||||
|
#define wxUSE_CLIPBOARD 1
|
||||||
|
// 0 for no clipboard functions
|
||||||
|
|
||||||
|
#define wxUSE_SPLINES 1
|
||||||
|
// 0 for no splines
|
||||||
|
|
||||||
|
#define wxUSE_DRAG_AND_DROP 1
|
||||||
|
// 0 for no drag and drop
|
||||||
|
|
||||||
|
#define wxUSE_XPM_IN_MSW 1
|
||||||
|
// 0 for no XPM support in wxBitmap.
|
||||||
|
// Default is 1, as XPM is now fully
|
||||||
|
// supported this makes easier the issue
|
||||||
|
// of portable icons and bitmaps.
|
||||||
|
#define wxUSE_IMAGE_LOADING_IN_MSW 1
|
||||||
|
// Use dynamic DIB loading/saving code in utils/dib under MSW.
|
||||||
|
#define wxUSE_RESOURCE_LOADING_IN_MSW 1
|
||||||
|
// Use dynamic icon/cursor loading/saving code
|
||||||
|
// under MSW.
|
||||||
|
#define wxUSE_WX_RESOURCES 1
|
||||||
|
// Use .wxr resource mechanism (requires PrologIO library)
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// postscript support settings
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
// Set to 1 for PostScript device context.
|
||||||
|
#define wxUSE_POSTSCRIPT 0
|
||||||
|
|
||||||
|
// Set to 1 to use font metric files in GetTextExtent
|
||||||
|
#define wxUSE_AFM_FOR_POSTSCRIPT 0
|
||||||
|
|
||||||
|
// Set to 0 to disable PostScript print/preview architecture code under Windows
|
||||||
|
// (just use Windows printing).
|
||||||
|
#define wxUSE_POSTSCRIPT_ARCHITECTURE_IN_MSW 1
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// database classes
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
// Define 1 to use ODBC classes
|
||||||
|
#define wxUSE_ODBC 0
|
||||||
|
|
||||||
|
// For backward compatibility reasons, this parameter now only controls the
|
||||||
|
// default scrolling method used by cursors. This default behavior can be
|
||||||
|
// overriden by setting the second param of wxDB::wxDbGetConnection() or
|
||||||
|
// wxDb() constructor to indicate whether the connection (and any wxDbTable()s
|
||||||
|
// that use the connection) should support forward only scrolling of cursors,
|
||||||
|
// or both forward and backward support for backward scrolling cursors is
|
||||||
|
// dependent on the data source as well as the ODBC driver being used.
|
||||||
|
#define wxODBC_FWD_ONLY_CURSORS 1
|
||||||
|
|
||||||
|
// Default is 0. Set to 1 to use the deprecated classes, enum types, function,
|
||||||
|
// member variables. With a setting of 1, full backward compatability with the
|
||||||
|
// 2.0.x release is possible. It is STRONGLY recommended that this be set to 0,
|
||||||
|
// as future development will be done only on the non-deprecated
|
||||||
|
// functions/classes/member variables/etc.
|
||||||
|
#define wxODBC_BACKWARD_COMPATABILITY 0
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// other compiler (mis)features
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
// Set this to 0 if your compiler can't cope with omission of prototype
|
||||||
|
// parameters.
|
||||||
|
//
|
||||||
|
// Default is 1.
|
||||||
|
//
|
||||||
|
// Recommended setting: 1 (should never need to set this to 0)
|
||||||
|
#define REMOVE_UNUSED_ARG 1
|
||||||
|
|
||||||
|
// VC++ 4.2 and above allows <iostream> and <iostream.h> but you can't mix
|
||||||
|
// them. Set to 1 for <iostream.h>, 0 for <iostream>
|
||||||
|
//
|
||||||
|
// Default is 1.
|
||||||
|
//
|
||||||
|
// Recommended setting: whatever your compiler likes more
|
||||||
|
#define wxUSE_IOSTREAMH 1
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// image format support
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
// wxImage supports many different image formats which can be configured at
|
||||||
|
// compile-time. BMP is always supported, others are optional and can be safely
|
||||||
|
// disabled if you don't plan to use images in such format sometimes saving
|
||||||
|
// substantial amount of code in the final library.
|
||||||
|
//
|
||||||
|
// Some formats require an extra library which is included in wxWin sources
|
||||||
|
// which is mentioned if it is the case.
|
||||||
|
|
||||||
|
// Set to 1 for wxImage support (recommended).
|
||||||
|
#define wxUSE_IMAGE 1
|
||||||
|
|
||||||
|
// Set to 1 for PNG format support (requires libpng). Also requires wxUSE_ZLIB.
|
||||||
|
#define wxUSE_LIBPNG 1
|
||||||
|
|
||||||
|
// Set to 1 for JPEG format support (requires libjpeg)
|
||||||
|
#define wxUSE_LIBJPEG 1
|
||||||
|
|
||||||
|
// Set to 1 for TIFF format support (requires libtiff)
|
||||||
|
#define wxUSE_LIBTIFF 1
|
||||||
|
|
||||||
|
// Set to 1 for GIF format support
|
||||||
|
#define wxUSE_GIF 1
|
||||||
|
|
||||||
|
// Set to 1 for PNM format support
|
||||||
|
#define wxUSE_PNM 1
|
||||||
|
|
||||||
|
// Set to 1 for PCX format support
|
||||||
|
#define wxUSE_PCX 1
|
||||||
|
|
||||||
|
// Set to 1 for XPM format support
|
||||||
|
#define wxUSE_XPM 1
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// Windows-only settings
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
// Set this to 1 if you want to use wxWindows and MFC in the same program. This
|
||||||
|
// will override some other settings (see below)
|
||||||
|
//
|
||||||
|
// Default is 0.
|
||||||
|
//
|
||||||
|
// Recommended setting: 0 unless you really have to use MFC
|
||||||
|
#define wxUSE_MFC 0
|
||||||
|
|
||||||
|
// Set this to 1 for generic OLE support: this is required for drag-and-drop,
|
||||||
|
// clipboard, OLE Automation. Only set it to 0 if your compiler is very old and
|
||||||
|
// can't compile/doesn't have the OLE headers.
|
||||||
|
//
|
||||||
|
// Default is 1.
|
||||||
|
//
|
||||||
|
// Recommended setting: 1
|
||||||
|
#define wxUSE_OLE 1
|
||||||
|
|
||||||
|
// Set this to 1 to use Microsoft CTL3D library for "3D-look" under Win16 or NT
|
||||||
|
// 3.x. This setting is ignored under Win9x and NT 4.0+.
|
||||||
|
//
|
||||||
|
// Default is 0 for (most) Win32 (systems), 1 for Win16
|
||||||
|
//
|
||||||
|
// Recommended setting: same as default
|
||||||
|
#if defined(__WIN95__)
|
||||||
|
#define wxUSE_CTL3D 0
|
||||||
|
#else
|
||||||
|
#define wxUSE_CTL3D 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Define as 1 to use Microsoft's ItsyBitsy small title bar library, for
|
||||||
|
// wxMiniFrame. This setting is only used for Win3.1; Win9x and NT use native
|
||||||
|
// miniframes support instead.
|
||||||
|
//
|
||||||
|
// Default is 0 for (most) Win32 (systems), 1 for Win16
|
||||||
|
//
|
||||||
|
// Recommended setting: same as default
|
||||||
|
#if defined(__WIN95__)
|
||||||
|
#define wxUSE_ITSY_BITSY 0
|
||||||
|
#else
|
||||||
|
#define wxUSE_ITSY_BITSY 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Set this to 1 to use RICHEDIT controls for wxTextCtrl with style wxTE_RICH
|
||||||
|
// which allows to put more than ~32Kb of text in it even under Win9x (NT
|
||||||
|
// doesn't have such limitation).
|
||||||
|
//
|
||||||
|
// Default is 1 for compilers which support it
|
||||||
|
//
|
||||||
|
// Recommended setting: 1, only set it to 0 if your compiler doesn't have
|
||||||
|
// or can't compile <richedit.h>
|
||||||
|
#if defined(__WIN95__) && !defined(__TWIN32__) && !defined(__GNUWIN32_OLD__)
|
||||||
|
#define wxUSE_RICHEDIT 1
|
||||||
|
#else
|
||||||
|
#define wxUSE_RICHEDIT 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Set this to 1 to enable support for the owner-drawn menu and listboxes. This
|
||||||
|
// is required by wxUSE_CHECKLISTBOX.
|
||||||
|
//
|
||||||
|
// Default is 1.
|
||||||
|
//
|
||||||
|
// Recommended setting: 1, set to 0 for a small library size reduction
|
||||||
|
#define wxUSE_OWNER_DRAWN 1
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// obsolete settings
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
// NB: all settings in this section are obsolete and should not be used/changed
|
||||||
|
// at all, they will disappear
|
||||||
|
|
||||||
|
// Set to 1 to use PenWindows
|
||||||
|
#define wxUSE_PENWINDOWS 0
|
||||||
|
|
||||||
|
// Define 1 to use bitmap messages.
|
||||||
|
#define wxUSE_BITMAP_MESSAGE 1
|
||||||
|
|
||||||
|
// If 1, enables provision of run-time type information.
|
||||||
|
// NOW MANDATORY: don't change.
|
||||||
|
#define wxUSE_DYNAMIC_CLASSES 1
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// disable the settings which don't work for some compilers
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
#ifndef wxUSE_NORLANDER_HEADERS
|
||||||
|
#if (defined(__MINGW32__) || defined(__CYGWIN__)) && ((__GNUC__>2) ||((__GNUC__==2) && (__GNUC_MINOR__>=95)))
|
||||||
|
# define wxUSE_NORLANDER_HEADERS 1
|
||||||
|
#else
|
||||||
|
# define wxUSE_NORLANDER_HEADERS 0
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(__GNUWIN32__)
|
||||||
|
// These don't work as expected for mingw32 and cygwin32
|
||||||
|
#undef wxUSE_MEMORY_TRACING
|
||||||
|
#define wxUSE_MEMORY_TRACING 0
|
||||||
|
|
||||||
|
#undef wxUSE_GLOBAL_MEMORY_OPERATORS
|
||||||
|
#define wxUSE_GLOBAL_MEMORY_OPERATORS 0
|
||||||
|
|
||||||
|
#undef wxUSE_DEBUG_NEW_ALWAYS
|
||||||
|
#define wxUSE_DEBUG_NEW_ALWAYS 0
|
||||||
|
|
||||||
|
#undef wxUSE_MS_HTML_HELP
|
||||||
|
#define wxUSE_MS_HTML_HELP 0
|
||||||
|
|
||||||
|
// Cygwin betas don't have wcslen
|
||||||
|
#if defined(__CYGWIN__) || defined(__CYGWIN32__)
|
||||||
|
# if ! ((__GNUC__>2) ||((__GNUC__==2) && (__GNUC_MINOR__>=95)))
|
||||||
|
# undef wxUSE_WCHAR_T
|
||||||
|
# define wxUSE_WCHAR_T 0
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif // __GNUWIN32__
|
||||||
|
|
||||||
|
// MFC duplicates these operators
|
||||||
|
#if wxUSE_MFC
|
||||||
|
#undef wxUSE_GLOBAL_MEMORY_OPERATORS
|
||||||
|
#define wxUSE_GLOBAL_MEMORY_OPERATORS 0
|
||||||
|
|
||||||
|
#undef wxUSE_DEBUG_NEW_ALWAYS
|
||||||
|
#define wxUSE_DEBUG_NEW_ALWAYS 0
|
||||||
|
#endif // wxUSE_MFC
|
||||||
|
|
||||||
|
// ODBC classes aren't Unicode-compatible yet
|
||||||
|
#if wxUSE_UNICODE
|
||||||
|
#undef wxUSE_ODBC
|
||||||
|
#define wxUSE_ODBC 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (!defined(WIN32) && !defined(__WIN32__)) || (defined(__GNUWIN32__) && !wxUSE_NORLANDER_HEADERS)
|
||||||
|
// Can't use OLE drag and drop in Windows 3.1 because we don't know how
|
||||||
|
// to implement UUIDs
|
||||||
|
// GnuWin32 doesn't have appropriate headers for e.g. IUnknown.
|
||||||
|
#undef wxUSE_DRAG_AND_DROP
|
||||||
|
#define wxUSE_DRAG_AND_DROP 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Only WIN32 supports wxStatusBar95
|
||||||
|
#if !defined(__WIN32__) && wxUSE_NATIVE_STATUSBAR
|
||||||
|
#undef wxUSE_NATIVE_STATUSBAR
|
||||||
|
#define wxUSE_NATIVE_STATUSBAR 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !wxUSE_OWNER_DRAWN
|
||||||
|
#undef wxUSE_CHECKLISTBOX
|
||||||
|
#define wxUSE_CHECKLISTBOX 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Salford C++ doesn't like some of the memory operator definitions
|
||||||
|
#ifdef __SALFORDC__
|
||||||
|
#undef wxUSE_MEMORY_TRACING
|
||||||
|
#define wxUSE_MEMORY_TRACING 0
|
||||||
|
|
||||||
|
#undef wxUSE_GLOBAL_MEMORY_OPERATORS
|
||||||
|
#define wxUSE_GLOBAL_MEMORY_OPERATORS 0
|
||||||
|
|
||||||
|
#undef wxUSE_DEBUG_NEW_ALWAYS
|
||||||
|
#define wxUSE_DEBUG_NEW_ALWAYS 0
|
||||||
|
|
||||||
|
#undef wxUSE_THREADS
|
||||||
|
#define wxUSE_THREADS 0
|
||||||
|
|
||||||
|
#undef wxUSE_OWNER_DRAWN
|
||||||
|
#define wxUSE_OWNER_DRAWN 0
|
||||||
|
#endif // __SALFORDC__
|
||||||
|
|
||||||
|
#ifdef __TWIN32__
|
||||||
|
|
||||||
|
#undef wxUSE_THREADS
|
||||||
|
#define wxUSE_THREADS 0
|
||||||
|
|
||||||
|
#undef wxUSE_ODBC
|
||||||
|
#define wxUSE_ODBC 0
|
||||||
|
|
||||||
|
#endif // __TWIN32__
|
||||||
|
|
||||||
|
// BC++/Win16 can't cope with the amount of data in resource.cpp
|
||||||
|
#if defined(__WIN16__) && defined(__BORLANDC__)
|
||||||
|
#undef wxUSE_WX_RESOURCES
|
||||||
|
#define wxUSE_WX_RESOURCES 0
|
||||||
|
|
||||||
|
#undef wxUSE_ODBC
|
||||||
|
#define wxUSE_ODBC 0
|
||||||
|
|
||||||
|
#undef wxUSE_NEW_GRID
|
||||||
|
#define wxUSE_NEW_GRID 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(__BORLANDC__) && (__BORLANDC__ < 0x500)
|
||||||
|
// BC++ 4.0 can't compile JPEG library
|
||||||
|
#undef wxUSE_LIBJPEG
|
||||||
|
#define wxUSE_LIBJPEG 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(__BORLANDC__)
|
||||||
|
// Need a BC++-specific htmlhelp.lib before we can enable this
|
||||||
|
#undef wxUSE_MS_HTML_HELP
|
||||||
|
#define wxUSE_MS_HTML_HELP 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// wxUSE_DEBUG_NEW_ALWAYS = 1 not compatible with BC++ in DLL mode
|
||||||
|
#if defined(__BORLANDC__) && (defined(WXMAKINGDLL) || defined(WXUSINGDLL))
|
||||||
|
#undef wxUSE_DEBUG_NEW_ALWAYS
|
||||||
|
#define wxUSE_DEBUG_NEW_ALWAYS 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(__WXMSW__) && defined(__WATCOMC__)
|
||||||
|
/*
|
||||||
|
#undef wxUSE_GLCANVAS
|
||||||
|
#define wxUSE_GLCANVAS 0
|
||||||
|
*/
|
||||||
|
|
||||||
|
#undef wxUSE_MS_HTML_HELP
|
||||||
|
#define wxUSE_MS_HTML_HELP 0
|
||||||
|
|
||||||
|
#undef wxUSE_WCHAR_T
|
||||||
|
#define wxUSE_WCHAR_T 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(__WXMSW__) && !defined(__WIN32__)
|
||||||
|
|
||||||
|
#undef wxUSE_SOCKETS
|
||||||
|
#define wxUSE_SOCKETS 0
|
||||||
|
|
||||||
|
#undef wxUSE_THREADS
|
||||||
|
#define wxUSE_THREADS 0
|
||||||
|
|
||||||
|
#undef wxUSE_TOOLTIPS
|
||||||
|
#define wxUSE_TOOLTIPS 0
|
||||||
|
|
||||||
|
#undef wxUSE_SPINCTRL
|
||||||
|
#define wxUSE_SPINCTRL 0
|
||||||
|
|
||||||
|
#undef wxUSE_SPINBTN
|
||||||
|
#define wxUSE_SPINBTN 0
|
||||||
|
|
||||||
|
#undef wxUSE_LIBPNG
|
||||||
|
#define wxUSE_LIBPNG 0
|
||||||
|
|
||||||
|
#undef wxUSE_LIBJPEG
|
||||||
|
#define wxUSE_LIBJPEG 0
|
||||||
|
|
||||||
|
#undef wxUSE_LIBTIFF
|
||||||
|
#define wxUSE_LIBTIFF 0
|
||||||
|
|
||||||
|
#undef wxUSE_GIF
|
||||||
|
#define wxUSE_GIF 0
|
||||||
|
|
||||||
|
#undef wxUSE_PNM
|
||||||
|
#define wxUSE_PNM 0
|
||||||
|
|
||||||
|
#undef wxUSE_PCX
|
||||||
|
#define wxUSE_PCX 0
|
||||||
|
|
||||||
|
#undef wxUSE_GLCANVAS
|
||||||
|
#define wxUSE_GLCANVAS 0
|
||||||
|
|
||||||
|
#undef wxUSE_MS_HTML_HELP
|
||||||
|
#define wxUSE_MS_HTML_HELP 0
|
||||||
|
|
||||||
|
#undef wxUSE_WCHAR_T
|
||||||
|
#define wxUSE_WCHAR_T 0
|
||||||
|
|
||||||
|
#endif // Win16
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// undef the things which don't make sense for wxBase build
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
#if !wxUSE_GUI
|
||||||
|
|
||||||
|
#undef wxUSE_HTML
|
||||||
|
#define wxUSE_HTML 0
|
||||||
|
|
||||||
|
#endif // !wxUSE_GUI
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// check the settings consistency: do it here to abort compilation immediately
|
||||||
|
// and not almost in the very end when the relevant file fails to compile and
|
||||||
|
// you need to modify setup.h and rebuild everything
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
#if wxUSE_TIMEDATE && !wxUSE_LONGLONG
|
||||||
|
#error wxDateTime requires wxLongLong
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if wxUSE_TEXTFILE && !wxUSE_FILE
|
||||||
|
#error You cannot compile wxTextFile without wxFile
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if wxUSE_FILESYSTEM && !wxUSE_STREAMS
|
||||||
|
#error You cannot compile virtual file systems without wxUSE_STREAMS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if wxUSE_HTML && !wxUSE_FILESYSTEM
|
||||||
|
#error You cannot compile wxHTML without virtual file systems
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// add more tests here...
|
||||||
|
|
||||||
|
#endif
|
||||||
|
// _WX_SETUP_H_
|
451
include/wx/msw/window.h
Normal file
451
include/wx/msw/window.h
Normal file
@@ -0,0 +1,451 @@
|
|||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Name: window.h
|
||||||
|
// Purpose: wxWindow class
|
||||||
|
// Author: Julian Smart
|
||||||
|
// Modified by:
|
||||||
|
// Created: 01/02/97
|
||||||
|
// RCS-ID: $Id$
|
||||||
|
// Copyright: (c) Julian Smart and Markus Holzem
|
||||||
|
// Licence: wxWindows licence
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#ifndef _WX_WINDOW_H_
|
||||||
|
#define _WX_WINDOW_H_
|
||||||
|
|
||||||
|
// ---------------------------------------------------------------------------
|
||||||
|
// headers
|
||||||
|
// ---------------------------------------------------------------------------
|
||||||
|
|
||||||
|
#ifdef __GNUG__
|
||||||
|
#pragma interface "window.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// #include "wx/msw/winundef.h"
|
||||||
|
|
||||||
|
// VZ: apparently some version of Windows send extra mouse move messages after
|
||||||
|
// a mouse click. My tests under NT 4.0 and 95 didn't show it so I'm
|
||||||
|
// tempted to think that it was just an effect of a poor mouse and so the
|
||||||
|
// code to work around this is currently disabled - just define this as 1
|
||||||
|
// to reenable it
|
||||||
|
#define wxUSE_MOUSEEVENT_HACK 0
|
||||||
|
|
||||||
|
// ---------------------------------------------------------------------------
|
||||||
|
// forward declarations
|
||||||
|
// ---------------------------------------------------------------------------
|
||||||
|
|
||||||
|
class WXDLLEXPORT wxButton;
|
||||||
|
|
||||||
|
// ---------------------------------------------------------------------------
|
||||||
|
// constants
|
||||||
|
// ---------------------------------------------------------------------------
|
||||||
|
|
||||||
|
// FIXME does anybody use those? they're unused by wxWindows...
|
||||||
|
enum
|
||||||
|
{
|
||||||
|
wxKEY_SHIFT = 1,
|
||||||
|
wxKEY_CTRL = 2
|
||||||
|
};
|
||||||
|
|
||||||
|
// ---------------------------------------------------------------------------
|
||||||
|
// wxWindow declaration for MSW
|
||||||
|
// ---------------------------------------------------------------------------
|
||||||
|
|
||||||
|
class WXDLLEXPORT wxWindow : public wxWindowBase
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
wxWindow() { Init(); }
|
||||||
|
|
||||||
|
wxWindow(wxWindow *parent,
|
||||||
|
wxWindowID id,
|
||||||
|
const wxPoint& pos = wxDefaultPosition,
|
||||||
|
const wxSize& size = wxDefaultSize,
|
||||||
|
long style = 0,
|
||||||
|
const wxString& name = wxPanelNameStr)
|
||||||
|
{
|
||||||
|
Init();
|
||||||
|
Create(parent, id, pos, size, style, name);
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual ~wxWindow();
|
||||||
|
|
||||||
|
bool Create(wxWindow *parent,
|
||||||
|
wxWindowID id,
|
||||||
|
const wxPoint& pos = wxDefaultPosition,
|
||||||
|
const wxSize& size = wxDefaultSize,
|
||||||
|
long style = 0,
|
||||||
|
const wxString& name = wxPanelNameStr);
|
||||||
|
|
||||||
|
// implement base class pure virtuals
|
||||||
|
virtual void SetTitle( const wxString& title);
|
||||||
|
virtual wxString GetTitle() const;
|
||||||
|
|
||||||
|
virtual void Raise();
|
||||||
|
virtual void Lower();
|
||||||
|
|
||||||
|
virtual bool Show( bool show = TRUE );
|
||||||
|
virtual bool Enable( bool enable = TRUE );
|
||||||
|
|
||||||
|
virtual void SetFocus();
|
||||||
|
|
||||||
|
virtual bool Reparent( wxWindowBase *newParent );
|
||||||
|
|
||||||
|
virtual void WarpPointer(int x, int y);
|
||||||
|
virtual void CaptureMouse();
|
||||||
|
virtual void ReleaseMouse();
|
||||||
|
|
||||||
|
virtual void Refresh( bool eraseBackground = TRUE,
|
||||||
|
const wxRect *rect = (const wxRect *) NULL );
|
||||||
|
virtual void Clear();
|
||||||
|
|
||||||
|
virtual bool SetCursor( const wxCursor &cursor );
|
||||||
|
virtual bool SetFont( const wxFont &font );
|
||||||
|
|
||||||
|
virtual int GetCharHeight() const;
|
||||||
|
virtual int GetCharWidth() const;
|
||||||
|
virtual void GetTextExtent(const wxString& string,
|
||||||
|
int *x, int *y,
|
||||||
|
int *descent = (int *) NULL,
|
||||||
|
int *externalLeading = (int *) NULL,
|
||||||
|
const wxFont *theFont = (const wxFont *) NULL)
|
||||||
|
const;
|
||||||
|
|
||||||
|
virtual bool DoPopupMenu( wxMenu *menu, int x, int y );
|
||||||
|
|
||||||
|
virtual void SetScrollbar( int orient, int pos, int thumbVisible,
|
||||||
|
int range, bool refresh = TRUE );
|
||||||
|
virtual void SetScrollPos( int orient, int pos, bool refresh = TRUE );
|
||||||
|
virtual int GetScrollPos( int orient ) const;
|
||||||
|
virtual int GetScrollThumb( int orient ) const;
|
||||||
|
virtual int GetScrollRange( int orient ) const;
|
||||||
|
virtual void ScrollWindow( int dx, int dy,
|
||||||
|
const wxRect* rect = (wxRect *) NULL );
|
||||||
|
|
||||||
|
#if wxUSE_DRAG_AND_DROP
|
||||||
|
virtual void SetDropTarget( wxDropTarget *dropTarget );
|
||||||
|
#endif // wxUSE_DRAG_AND_DROP
|
||||||
|
|
||||||
|
// Accept files for dragging
|
||||||
|
virtual void DragAcceptFiles(bool accept);
|
||||||
|
|
||||||
|
#if WXWIN_COMPATIBILITY
|
||||||
|
// Set/get scroll attributes
|
||||||
|
virtual void SetScrollRange(int orient, int range, bool refresh = TRUE);
|
||||||
|
virtual void SetScrollPage(int orient, int page, bool refresh = TRUE);
|
||||||
|
virtual int OldGetScrollRange(int orient) const;
|
||||||
|
virtual int GetScrollPage(int orient) const;
|
||||||
|
|
||||||
|
// event handlers
|
||||||
|
// Handle a control command
|
||||||
|
virtual void OnCommand(wxWindow& win, wxCommandEvent& event);
|
||||||
|
|
||||||
|
// Override to define new behaviour for default action (e.g. double
|
||||||
|
// clicking on a listbox)
|
||||||
|
virtual void OnDefaultAction(wxControl * WXUNUSED(initiatingItem)) { }
|
||||||
|
#endif // WXWIN_COMPATIBILITY
|
||||||
|
|
||||||
|
#if wxUSE_CARET && WXWIN_COMPATIBILITY
|
||||||
|
// caret manipulation (old MSW only functions, see wxCaret class for the
|
||||||
|
// new API)
|
||||||
|
void CreateCaret(int w, int h);
|
||||||
|
void CreateCaret(const wxBitmap *bitmap);
|
||||||
|
void DestroyCaret();
|
||||||
|
void ShowCaret(bool show);
|
||||||
|
void SetCaretPos(int x, int y);
|
||||||
|
void GetCaretPos(int *x, int *y) const;
|
||||||
|
#endif // wxUSE_CARET
|
||||||
|
|
||||||
|
// Native resource loading (implemented in src/msw/nativdlg.cpp)
|
||||||
|
// FIXME: should they really be all virtual?
|
||||||
|
virtual bool LoadNativeDialog(wxWindow* parent, wxWindowID& id);
|
||||||
|
virtual bool LoadNativeDialog(wxWindow* parent, const wxString& name);
|
||||||
|
wxWindow* GetWindowChild1(wxWindowID id);
|
||||||
|
wxWindow* GetWindowChild(wxWindowID id);
|
||||||
|
|
||||||
|
// a MSW only function which sends a size event to the window using its
|
||||||
|
// current size - this has an effect of refreshing the window layout
|
||||||
|
/*
|
||||||
|
FUNCTION IS NOW A MEMBER OF wxFrame - gt
|
||||||
|
void SendSizeEvent();
|
||||||
|
*/
|
||||||
|
|
||||||
|
// implementation from now on
|
||||||
|
// --------------------------
|
||||||
|
|
||||||
|
// simple accessors
|
||||||
|
// ----------------
|
||||||
|
|
||||||
|
WXHWND GetHWND() const { return m_hWnd; }
|
||||||
|
void SetHWND(WXHWND hWnd) { m_hWnd = hWnd; }
|
||||||
|
virtual WXWidget GetHandle() const { return GetHWND(); }
|
||||||
|
|
||||||
|
bool GetUseCtl3D() const { return m_useCtl3D; }
|
||||||
|
bool GetTransparentBackground() const { return m_backgroundTransparent; }
|
||||||
|
void SetTransparent(bool t = TRUE) { m_backgroundTransparent = t; }
|
||||||
|
|
||||||
|
// event handlers
|
||||||
|
// --------------
|
||||||
|
|
||||||
|
void OnSetFocus(wxFocusEvent& event);
|
||||||
|
void OnEraseBackground(wxEraseEvent& event);
|
||||||
|
void OnIdle(wxIdleEvent& event);
|
||||||
|
void OnPaint(wxPaintEvent& event);
|
||||||
|
|
||||||
|
public:
|
||||||
|
// For implementation purposes - sometimes decorations make the client area
|
||||||
|
// smaller
|
||||||
|
virtual wxPoint GetClientAreaOrigin() const;
|
||||||
|
|
||||||
|
// Makes an adjustment to the window position (for example, a frame that has
|
||||||
|
// a toolbar that it manages itself).
|
||||||
|
virtual void AdjustForParentClientOrigin(int& x, int& y, int sizeFlags);
|
||||||
|
|
||||||
|
// Windows subclassing
|
||||||
|
void SubclassWin(WXHWND hWnd);
|
||||||
|
void UnsubclassWin();
|
||||||
|
|
||||||
|
WXFARPROC MSWGetOldWndProc() const { return m_oldWndProc; }
|
||||||
|
void MSWSetOldWndProc(WXFARPROC proc) { m_oldWndProc = proc; }
|
||||||
|
|
||||||
|
wxWindow *FindItem(long id) const;
|
||||||
|
wxWindow *FindItemByHWND(WXHWND hWnd, bool controlOnly = FALSE) const;
|
||||||
|
|
||||||
|
// Make a Windows extended style from the given wxWindows window style
|
||||||
|
static WXDWORD MakeExtendedStyle(long style,
|
||||||
|
bool eliminateBorders = FALSE);
|
||||||
|
// Determine whether 3D effects are wanted
|
||||||
|
WXDWORD Determine3DEffects(WXDWORD defaultBorderStyle, bool *want3D) const;
|
||||||
|
|
||||||
|
// MSW only: TRUE if this control is part of the main control
|
||||||
|
virtual bool ContainsHWND(WXHWND WXUNUSED(hWnd)) const { return FALSE; };
|
||||||
|
|
||||||
|
// returns TRUE if the window has been created
|
||||||
|
bool MSWCreate(int id,
|
||||||
|
wxWindow *parent,
|
||||||
|
const wxChar *wclass,
|
||||||
|
wxWindow *wx_win,
|
||||||
|
const wxChar *title,
|
||||||
|
int x, int y, int width, int height,
|
||||||
|
WXDWORD style,
|
||||||
|
const wxChar *dialog_template = NULL,
|
||||||
|
WXDWORD exendedStyle = 0);
|
||||||
|
virtual bool MSWCommand(WXUINT param, WXWORD id);
|
||||||
|
|
||||||
|
#if WXWIN_COMPATIBILITY
|
||||||
|
wxObject *GetChild(int number) const;
|
||||||
|
virtual void MSWDeviceToLogical(float *x, float *y) const;
|
||||||
|
#endif // WXWIN_COMPATIBILITY
|
||||||
|
|
||||||
|
// Create an appropriate wxWindow from a HWND
|
||||||
|
virtual wxWindow* CreateWindowFromHWND(wxWindow* parent, WXHWND hWnd);
|
||||||
|
|
||||||
|
// Make sure the window style reflects the HWND style (roughly)
|
||||||
|
virtual void AdoptAttributesFromHWND();
|
||||||
|
|
||||||
|
// Setup background and foreground colours correctly
|
||||||
|
virtual void SetupColours();
|
||||||
|
|
||||||
|
// ------------------------------------------------------------------------
|
||||||
|
// helpers for message handlers: these perform the same function as the
|
||||||
|
// message crackers from <windowsx.h> - they unpack WPARAM and LPARAM into
|
||||||
|
// the correct parameters
|
||||||
|
// ------------------------------------------------------------------------
|
||||||
|
|
||||||
|
void UnpackCommand(WXWPARAM wParam, WXLPARAM lParam,
|
||||||
|
WXWORD *id, WXHWND *hwnd, WXWORD *cmd);
|
||||||
|
void UnpackActivate(WXWPARAM wParam, WXLPARAM lParam,
|
||||||
|
WXWORD *state, WXWORD *minimized, WXHWND *hwnd);
|
||||||
|
void UnpackScroll(WXWPARAM wParam, WXLPARAM lParam,
|
||||||
|
WXWORD *code, WXWORD *pos, WXHWND *hwnd);
|
||||||
|
void UnpackCtlColor(WXWPARAM wParam, WXLPARAM lParam,
|
||||||
|
WXWORD *nCtlColor, WXHDC *hdc, WXHWND *hwnd);
|
||||||
|
void UnpackMenuSelect(WXWPARAM wParam, WXLPARAM lParam,
|
||||||
|
WXWORD *item, WXWORD *flags, WXHMENU *hmenu);
|
||||||
|
|
||||||
|
// ------------------------------------------------------------------------
|
||||||
|
// internal handlers for MSW messages: all handlers return a boolean value:
|
||||||
|
// TRUE means that the handler processed the event and FALSE that it didn't
|
||||||
|
// ------------------------------------------------------------------------
|
||||||
|
|
||||||
|
// there are several cases where we have virtual functions for Windows
|
||||||
|
// message processing: this is because these messages often require to be
|
||||||
|
// processed in a different manner in the derived classes. For all other
|
||||||
|
// messages, however, we do *not* have corresponding MSWOnXXX() function
|
||||||
|
// and if the derived class wants to process them, it should override
|
||||||
|
// MSWWindowProc() directly.
|
||||||
|
|
||||||
|
// scroll event (both horizontal and vertical)
|
||||||
|
virtual bool MSWOnScroll(int orientation, WXWORD nSBCode,
|
||||||
|
WXWORD pos, WXHWND control);
|
||||||
|
|
||||||
|
// child control notifications
|
||||||
|
#ifdef __WIN95__
|
||||||
|
virtual bool MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result);
|
||||||
|
#endif // __WIN95__
|
||||||
|
|
||||||
|
// owner-drawn controls need to process these messages
|
||||||
|
virtual bool MSWOnDrawItem(int id, WXDRAWITEMSTRUCT *item);
|
||||||
|
virtual bool MSWOnMeasureItem(int id, WXMEASUREITEMSTRUCT *item);
|
||||||
|
|
||||||
|
// the rest are not virtual
|
||||||
|
bool HandleCreate(WXLPCREATESTRUCT cs, bool *mayCreate);
|
||||||
|
bool HandleInitDialog(WXHWND hWndFocus);
|
||||||
|
bool HandleDestroy();
|
||||||
|
|
||||||
|
bool HandlePaint();
|
||||||
|
bool HandleEraseBkgnd(WXHDC pDC);
|
||||||
|
|
||||||
|
bool HandleMinimize();
|
||||||
|
bool HandleMaximize();
|
||||||
|
bool HandleSize(int x, int y, WXUINT flag);
|
||||||
|
bool HandleGetMinMaxInfo(void *mmInfo);
|
||||||
|
|
||||||
|
bool HandleShow(bool show, int status);
|
||||||
|
bool HandleActivate(int flag, bool minimized, WXHWND activate);
|
||||||
|
|
||||||
|
bool HandleCommand(WXWORD id, WXWORD cmd, WXHWND control);
|
||||||
|
bool HandleSysCommand(WXWPARAM wParam, WXLPARAM lParam);
|
||||||
|
|
||||||
|
bool HandleCtlColor(WXHBRUSH *hBrush,
|
||||||
|
WXHDC hdc,
|
||||||
|
WXHWND hWnd,
|
||||||
|
WXUINT nCtlColor,
|
||||||
|
WXUINT message,
|
||||||
|
WXWPARAM wParam,
|
||||||
|
WXLPARAM lParam);
|
||||||
|
|
||||||
|
bool HandlePaletteChanged(WXHWND hWndPalChange);
|
||||||
|
bool HandleQueryNewPalette();
|
||||||
|
bool HandleSysColorChange();
|
||||||
|
|
||||||
|
bool HandleQueryEndSession(long logOff, bool *mayEnd);
|
||||||
|
bool HandleEndSession(bool endSession, long logOff);
|
||||||
|
|
||||||
|
bool HandleSetFocus(WXHWND wnd);
|
||||||
|
bool HandleKillFocus(WXHWND wnd);
|
||||||
|
|
||||||
|
bool HandleDropFiles(WXWPARAM wParam);
|
||||||
|
|
||||||
|
bool HandleMouseEvent(WXUINT msg, int x, int y, WXUINT flags);
|
||||||
|
bool HandleMouseMove(int x, int y, WXUINT flags);
|
||||||
|
|
||||||
|
bool HandleChar(WXWPARAM wParam, WXLPARAM lParam, bool isASCII = FALSE);
|
||||||
|
bool HandleKeyDown(WXWPARAM wParam, WXLPARAM lParam);
|
||||||
|
bool HandleKeyUp(WXWPARAM wParam, WXLPARAM lParam);
|
||||||
|
|
||||||
|
bool HandleQueryDragIcon(WXHICON *hIcon);
|
||||||
|
|
||||||
|
bool HandleSetCursor(WXHWND hWnd, short nHitTest, int mouseMsg);
|
||||||
|
|
||||||
|
// Window procedure
|
||||||
|
virtual long MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam);
|
||||||
|
|
||||||
|
// Calls an appropriate default window procedure
|
||||||
|
virtual long MSWDefWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam);
|
||||||
|
virtual bool MSWProcessMessage(WXMSG* pMsg);
|
||||||
|
virtual bool MSWTranslateMessage(WXMSG* pMsg);
|
||||||
|
virtual void MSWDestroyWindow();
|
||||||
|
|
||||||
|
// Detach "Window" menu from menu bar so it doesn't get deleted
|
||||||
|
void MSWDetachWindowMenu();
|
||||||
|
|
||||||
|
// this function should return the brush to paint the window background
|
||||||
|
// with or 0 for the default brush
|
||||||
|
virtual WXHBRUSH OnCtlColor(WXHDC hDC,
|
||||||
|
WXHWND hWnd,
|
||||||
|
WXUINT nCtlColor,
|
||||||
|
WXUINT message,
|
||||||
|
WXWPARAM wParam,
|
||||||
|
WXLPARAM lParam);
|
||||||
|
|
||||||
|
#if WXWIN_COMPATIBILITY
|
||||||
|
void SetShowing(bool show) { (void)Show(show); }
|
||||||
|
bool IsUserEnabled() const { return IsEnabled(); }
|
||||||
|
#endif // WXWIN_COMPATIBILITY
|
||||||
|
|
||||||
|
// Responds to colour changes: passes event on to children.
|
||||||
|
void OnSysColourChanged(wxSysColourChangedEvent& event);
|
||||||
|
|
||||||
|
// initialize various fields of wxMouseEvent (common part of MSWOnMouseXXX)
|
||||||
|
void InitMouseEvent(wxMouseEvent& event, int x, int y, WXUINT flags);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
// the window handle
|
||||||
|
WXHWND m_hWnd;
|
||||||
|
|
||||||
|
// the old window proc (we subclass all windows)
|
||||||
|
WXFARPROC m_oldWndProc;
|
||||||
|
|
||||||
|
// additional (MSW specific) flags
|
||||||
|
bool m_useCtl3D:1; // Using CTL3D for this control
|
||||||
|
bool m_backgroundTransparent:1;
|
||||||
|
bool m_mouseInWindow:1;
|
||||||
|
bool m_doubleClickAllowed:1;
|
||||||
|
bool m_winCaptured:1;
|
||||||
|
|
||||||
|
// the size of one page for scrolling
|
||||||
|
int m_xThumbSize;
|
||||||
|
int m_yThumbSize;
|
||||||
|
|
||||||
|
#if wxUSE_MOUSEEVENT_HACK
|
||||||
|
// the coordinates of the last mouse event and the type of it
|
||||||
|
long m_lastMouseX,
|
||||||
|
m_lastMouseY;
|
||||||
|
int m_lastMouseEvent;
|
||||||
|
#endif // wxUSE_MOUSEEVENT_HACK
|
||||||
|
|
||||||
|
WXHMENU m_hMenu; // Menu, if any
|
||||||
|
|
||||||
|
// the return value of WM_GETDLGCODE handler
|
||||||
|
long m_lDlgCode;
|
||||||
|
|
||||||
|
// implement the base class pure virtuals
|
||||||
|
virtual void DoClientToScreen( int *x, int *y ) const;
|
||||||
|
virtual void DoScreenToClient( int *x, int *y ) const;
|
||||||
|
virtual void DoGetPosition( int *x, int *y ) const;
|
||||||
|
virtual void DoGetSize( int *width, int *height ) const;
|
||||||
|
virtual void DoGetClientSize( int *width, int *height ) const;
|
||||||
|
virtual void DoSetSize(int x, int y,
|
||||||
|
int width, int height,
|
||||||
|
int sizeFlags = wxSIZE_AUTO);
|
||||||
|
virtual void DoSetClientSize(int width, int height);
|
||||||
|
|
||||||
|
// move the window to the specified location and resize it: this is called
|
||||||
|
// from both DoSetSize() and DoSetClientSize() and would usually just call
|
||||||
|
// ::MoveWindow() except for composite controls which will want to arrange
|
||||||
|
// themselves inside the given rectangle
|
||||||
|
virtual void DoMoveWindow(int x, int y, int width, int height);
|
||||||
|
|
||||||
|
#if wxUSE_TOOLTIPS
|
||||||
|
virtual void DoSetToolTip( wxToolTip *tip );
|
||||||
|
#endif // wxUSE_TOOLTIPS
|
||||||
|
|
||||||
|
private:
|
||||||
|
// common part of all ctors
|
||||||
|
void Init();
|
||||||
|
|
||||||
|
// the (non-virtual) handlers for the events
|
||||||
|
bool HandleMove(int x, int y);
|
||||||
|
bool HandleJoystickEvent(WXUINT msg, int x, int y, WXUINT flags);
|
||||||
|
|
||||||
|
#ifdef __WIN95__
|
||||||
|
bool HandleNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result);
|
||||||
|
#endif // __WIN95__
|
||||||
|
|
||||||
|
// the helper functions used by HandleChar/KeyXXX methods
|
||||||
|
wxKeyEvent CreateKeyEvent(wxEventType evType, int id, WXLPARAM lp) const;
|
||||||
|
|
||||||
|
DECLARE_DYNAMIC_CLASS(wxWindow);
|
||||||
|
DECLARE_NO_COPY_CLASS(wxWindow);
|
||||||
|
DECLARE_EVENT_TABLE()
|
||||||
|
};
|
||||||
|
|
||||||
|
// ---------------------------------------------------------------------------
|
||||||
|
// global functions
|
||||||
|
// ---------------------------------------------------------------------------
|
||||||
|
|
||||||
|
// kbd code translation
|
||||||
|
WXDLLEXPORT int wxCharCodeMSWToWX(int keySym);
|
||||||
|
WXDLLEXPORT int wxCharCodeWXToMSW(int id, bool *IsVirtual);
|
||||||
|
|
||||||
|
#endif
|
||||||
|
// _WX_WINDOW_H_
|
1145
src/common/event.cpp
Normal file
1145
src/common/event.cpp
Normal file
File diff suppressed because it is too large
Load Diff
8538
src/generic/grid.cpp
Normal file
8538
src/generic/grid.cpp
Normal file
File diff suppressed because it is too large
Load Diff
704
src/generic/scrolwin.cpp
Normal file
704
src/generic/scrolwin.cpp
Normal file
@@ -0,0 +1,704 @@
|
|||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Name: generic/scrolwin.cpp
|
||||||
|
// Purpose: wxGenericScrolledWindow implementation
|
||||||
|
// Author: Julian Smart
|
||||||
|
// Modified by:
|
||||||
|
// Created: 01/02/97
|
||||||
|
// RCS-ID: $Id$
|
||||||
|
// Copyright: (c) Julian Smart and Markus Holzem
|
||||||
|
// Licence: wxWindows license
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
// ============================================================================
|
||||||
|
// declarations
|
||||||
|
// ============================================================================
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// headers
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
#ifdef __GNUG__
|
||||||
|
#pragma implementation "scrolwin.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef __VMS
|
||||||
|
#define XtDisplay XTDISPLAY
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// For compilers that support precompilation, includes "wx.h".
|
||||||
|
#include "wx/wxprec.h"
|
||||||
|
|
||||||
|
#ifdef __BORLANDC__
|
||||||
|
#pragma hdrstop
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "wx/utils.h"
|
||||||
|
#include "wx/dcclient.h"
|
||||||
|
|
||||||
|
#include "wx/generic/scrolwin.h"
|
||||||
|
#include "wx/panel.h"
|
||||||
|
|
||||||
|
#ifdef __WXMSW__
|
||||||
|
#include "windows.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef __WXMOTIF__
|
||||||
|
// For wxRETAINED implementation
|
||||||
|
#ifdef __VMS__ //VMS's Xm.h is not (yet) compatible with C++
|
||||||
|
//This code switches off the compiler warnings
|
||||||
|
# pragma message disable nosimpint
|
||||||
|
#endif
|
||||||
|
#include <Xm/Xm.h>
|
||||||
|
#ifdef __VMS__
|
||||||
|
# pragma message enable nosimpint
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef __WXGTK__
|
||||||
|
#include "wx/scrolwin.h"
|
||||||
|
IMPLEMENT_CLASS(wxScrolledWindow, wxGenericScrolledWindow)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// event tables
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
BEGIN_EVENT_TABLE(wxGenericScrolledWindow, wxPanel)
|
||||||
|
EVT_SCROLLWIN(wxGenericScrolledWindow::OnScroll)
|
||||||
|
EVT_SIZE(wxGenericScrolledWindow::OnSize)
|
||||||
|
EVT_PAINT(wxGenericScrolledWindow::OnPaint)
|
||||||
|
EVT_CHAR(wxGenericScrolledWindow::OnChar)
|
||||||
|
END_EVENT_TABLE()
|
||||||
|
|
||||||
|
IMPLEMENT_DYNAMIC_CLASS(wxGenericScrolledWindow, wxPanel)
|
||||||
|
|
||||||
|
// ============================================================================
|
||||||
|
// implementation
|
||||||
|
// ============================================================================
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// wxGenericScrolledWindow creation
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
wxGenericScrolledWindow::wxGenericScrolledWindow()
|
||||||
|
{
|
||||||
|
m_xScrollPixelsPerLine = 0;
|
||||||
|
m_yScrollPixelsPerLine = 0;
|
||||||
|
m_xScrollingEnabled = TRUE;
|
||||||
|
m_yScrollingEnabled = TRUE;
|
||||||
|
m_xScrollPosition = 0;
|
||||||
|
m_yScrollPosition = 0;
|
||||||
|
m_xScrollLines = 0;
|
||||||
|
m_yScrollLines = 0;
|
||||||
|
m_xScrollLinesPerPage = 0;
|
||||||
|
m_yScrollLinesPerPage = 0;
|
||||||
|
m_scaleX = 1.0;
|
||||||
|
m_scaleY = 1.0;
|
||||||
|
m_targetWindow = (wxWindow*) NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool wxGenericScrolledWindow::Create(wxWindow *parent,
|
||||||
|
wxWindowID id,
|
||||||
|
const wxPoint& pos,
|
||||||
|
const wxSize& size,
|
||||||
|
long style,
|
||||||
|
const wxString& name)
|
||||||
|
{
|
||||||
|
m_xScrollPixelsPerLine = 0;
|
||||||
|
m_yScrollPixelsPerLine = 0;
|
||||||
|
m_xScrollingEnabled = TRUE;
|
||||||
|
m_yScrollingEnabled = TRUE;
|
||||||
|
m_xScrollPosition = 0;
|
||||||
|
m_yScrollPosition = 0;
|
||||||
|
m_xScrollLines = 0;
|
||||||
|
m_yScrollLines = 0;
|
||||||
|
m_xScrollLinesPerPage = 0;
|
||||||
|
m_yScrollLinesPerPage = 0;
|
||||||
|
m_scaleX = 1.0;
|
||||||
|
m_scaleY = 1.0;
|
||||||
|
|
||||||
|
m_targetWindow = this;
|
||||||
|
|
||||||
|
bool ok = wxPanel::Create(parent, id, pos, size, style, name);
|
||||||
|
|
||||||
|
#ifdef __WXMSW__
|
||||||
|
// we need to process arrows ourselves for scrolling
|
||||||
|
m_lDlgCode |= DLGC_WANTARROWS;
|
||||||
|
#endif // __WXMSW__
|
||||||
|
|
||||||
|
return ok;
|
||||||
|
}
|
||||||
|
|
||||||
|
wxGenericScrolledWindow::~wxGenericScrolledWindow()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// setting scrolling parameters
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
/*
|
||||||
|
* pixelsPerUnitX/pixelsPerUnitY: number of pixels per unit (e.g. pixels per text line)
|
||||||
|
* noUnitsX/noUnitsY: : no. units per scrollbar
|
||||||
|
*/
|
||||||
|
void wxGenericScrolledWindow::SetScrollbars (int pixelsPerUnitX, int pixelsPerUnitY,
|
||||||
|
int noUnitsX, int noUnitsY,
|
||||||
|
int xPos, int yPos, bool noRefresh )
|
||||||
|
{
|
||||||
|
int xpos, ypos;
|
||||||
|
|
||||||
|
CalcUnscrolledPosition(xPos, yPos, &xpos, &ypos);
|
||||||
|
bool do_refresh =
|
||||||
|
(
|
||||||
|
(noUnitsX != 0 && m_xScrollLines == 0) ||
|
||||||
|
(noUnitsX < m_xScrollLines && xpos > pixelsPerUnitX*noUnitsX) ||
|
||||||
|
|
||||||
|
(noUnitsY != 0 && m_yScrollLines == 0) ||
|
||||||
|
(noUnitsY < m_yScrollLines && ypos > pixelsPerUnitY*noUnitsY) ||
|
||||||
|
(xPos != m_xScrollPosition) ||
|
||||||
|
(yPos != m_yScrollPosition)
|
||||||
|
// (pixelsPerUnitX != m_xScrollPixelsPerLine) ||
|
||||||
|
// (pixelsPerUnitY != m_yScrollPixelsPerLine)
|
||||||
|
);
|
||||||
|
|
||||||
|
m_xScrollPixelsPerLine = pixelsPerUnitX;
|
||||||
|
m_yScrollPixelsPerLine = pixelsPerUnitY;
|
||||||
|
m_xScrollPosition = xPos;
|
||||||
|
m_yScrollPosition = yPos;
|
||||||
|
m_xScrollLines = noUnitsX;
|
||||||
|
m_yScrollLines = noUnitsY;
|
||||||
|
|
||||||
|
#ifdef __WXMOTIF__
|
||||||
|
// Sorry, some Motif-specific code to implement a backing pixmap
|
||||||
|
// for the wxRETAINED style. Implementing a backing store can't
|
||||||
|
// be entirely generic because it relies on the wxWindowDC implementation
|
||||||
|
// to duplicate X drawing calls for the backing pixmap.
|
||||||
|
|
||||||
|
if ((m_windowStyle & wxRETAINED) == wxRETAINED)
|
||||||
|
{
|
||||||
|
Display* dpy = XtDisplay((Widget) GetMainWidget());
|
||||||
|
|
||||||
|
int totalPixelWidth = m_xScrollLines * m_xScrollPixelsPerLine;
|
||||||
|
int totalPixelHeight = m_yScrollLines * m_yScrollPixelsPerLine;
|
||||||
|
if (m_backingPixmap &&
|
||||||
|
!((m_pixmapWidth == totalPixelWidth) &&
|
||||||
|
(m_pixmapHeight == totalPixelHeight)))
|
||||||
|
{
|
||||||
|
XFreePixmap (dpy, (Pixmap) m_backingPixmap);
|
||||||
|
m_backingPixmap = (WXPixmap) 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!m_backingPixmap &&
|
||||||
|
(noUnitsX != 0) && (noUnitsY != 0))
|
||||||
|
{
|
||||||
|
int depth = wxDisplayDepth();
|
||||||
|
m_pixmapWidth = totalPixelWidth;
|
||||||
|
m_pixmapHeight = totalPixelHeight;
|
||||||
|
m_backingPixmap = (WXPixmap) XCreatePixmap (dpy, RootWindow (dpy, DefaultScreen (dpy)),
|
||||||
|
m_pixmapWidth, m_pixmapHeight, depth);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
#endif // Motif
|
||||||
|
|
||||||
|
AdjustScrollbars();
|
||||||
|
|
||||||
|
if (do_refresh && !noRefresh)
|
||||||
|
m_targetWindow->Refresh();
|
||||||
|
|
||||||
|
#ifdef __WXMSW__
|
||||||
|
// GRG: if this turns out to be really necessary, we could
|
||||||
|
// at least move it to the above if { ... } so that it is
|
||||||
|
// only done if noRefresh = FALSE (the default). OTOH, if
|
||||||
|
// this doesn't break anything, which seems to be the
|
||||||
|
// case, we could just leave it out.
|
||||||
|
|
||||||
|
// Necessary?
|
||||||
|
// UpdateWindow ((HWND) m_targetWindow->GetHWND());
|
||||||
|
#endif
|
||||||
|
#ifdef __WXMAC__
|
||||||
|
m_targetWindow->MacUpdateImmediately() ;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// target window handling
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
void wxGenericScrolledWindow::SetTargetWindow( wxWindow *target )
|
||||||
|
{
|
||||||
|
wxASSERT_MSG( target, wxT("target window must not be NULL") );
|
||||||
|
m_targetWindow = target;
|
||||||
|
}
|
||||||
|
|
||||||
|
wxWindow *wxGenericScrolledWindow::GetTargetWindow()
|
||||||
|
{
|
||||||
|
return m_targetWindow;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// scrolling implementation itself
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
void wxGenericScrolledWindow::OnScroll(wxScrollWinEvent& event)
|
||||||
|
{
|
||||||
|
int orient = event.GetOrientation();
|
||||||
|
|
||||||
|
int nScrollInc = CalcScrollInc(event);
|
||||||
|
if (nScrollInc == 0) return;
|
||||||
|
|
||||||
|
if (orient == wxHORIZONTAL)
|
||||||
|
{
|
||||||
|
int newPos = m_xScrollPosition + nScrollInc;
|
||||||
|
SetScrollPos(wxHORIZONTAL, newPos, TRUE );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
int newPos = m_yScrollPosition + nScrollInc;
|
||||||
|
SetScrollPos(wxVERTICAL, newPos, TRUE );
|
||||||
|
}
|
||||||
|
|
||||||
|
if (orient == wxHORIZONTAL)
|
||||||
|
{
|
||||||
|
m_xScrollPosition += nScrollInc;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
m_yScrollPosition += nScrollInc;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (orient == wxHORIZONTAL)
|
||||||
|
{
|
||||||
|
if (m_xScrollingEnabled)
|
||||||
|
m_targetWindow->ScrollWindow(-m_xScrollPixelsPerLine * nScrollInc, 0, (const wxRect *) NULL);
|
||||||
|
else
|
||||||
|
m_targetWindow->Refresh();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (m_yScrollingEnabled)
|
||||||
|
m_targetWindow->ScrollWindow(0, -m_yScrollPixelsPerLine * nScrollInc, (const wxRect *) NULL);
|
||||||
|
else
|
||||||
|
m_targetWindow->Refresh();
|
||||||
|
}
|
||||||
|
#ifdef __WXMAC__
|
||||||
|
m_targetWindow->MacUpdateImmediately() ;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
int wxGenericScrolledWindow::CalcScrollInc(wxScrollWinEvent& event)
|
||||||
|
{
|
||||||
|
int pos = event.GetPosition();
|
||||||
|
int orient = event.GetOrientation();
|
||||||
|
|
||||||
|
int nScrollInc = 0;
|
||||||
|
if (event.GetEventType() == wxEVT_SCROLLWIN_TOP)
|
||||||
|
{
|
||||||
|
if (orient == wxHORIZONTAL)
|
||||||
|
nScrollInc = - m_xScrollPosition;
|
||||||
|
else
|
||||||
|
nScrollInc = - m_yScrollPosition;
|
||||||
|
} else
|
||||||
|
if (event.GetEventType() == wxEVT_SCROLLWIN_BOTTOM)
|
||||||
|
{
|
||||||
|
if (orient == wxHORIZONTAL)
|
||||||
|
nScrollInc = m_xScrollLines - m_xScrollPosition;
|
||||||
|
else
|
||||||
|
nScrollInc = m_yScrollLines - m_yScrollPosition;
|
||||||
|
} else
|
||||||
|
if (event.GetEventType() == wxEVT_SCROLLWIN_LINEUP)
|
||||||
|
{
|
||||||
|
nScrollInc = -1;
|
||||||
|
} else
|
||||||
|
if (event.GetEventType() == wxEVT_SCROLLWIN_LINEDOWN)
|
||||||
|
{
|
||||||
|
nScrollInc = 1;
|
||||||
|
} else
|
||||||
|
if (event.GetEventType() == wxEVT_SCROLLWIN_PAGEUP)
|
||||||
|
{
|
||||||
|
if (orient == wxHORIZONTAL)
|
||||||
|
nScrollInc = -GetScrollPageSize(wxHORIZONTAL);
|
||||||
|
else
|
||||||
|
nScrollInc = -GetScrollPageSize(wxVERTICAL);
|
||||||
|
} else
|
||||||
|
if (event.GetEventType() == wxEVT_SCROLLWIN_PAGEDOWN)
|
||||||
|
{
|
||||||
|
if (orient == wxHORIZONTAL)
|
||||||
|
nScrollInc = GetScrollPageSize(wxHORIZONTAL);
|
||||||
|
else
|
||||||
|
nScrollInc = GetScrollPageSize(wxVERTICAL);
|
||||||
|
} else
|
||||||
|
if ((event.GetEventType() == wxEVT_SCROLLWIN_THUMBTRACK) ||
|
||||||
|
(event.GetEventType() == wxEVT_SCROLLWIN_THUMBRELEASE))
|
||||||
|
{
|
||||||
|
if (orient == wxHORIZONTAL)
|
||||||
|
nScrollInc = pos - m_xScrollPosition;
|
||||||
|
else
|
||||||
|
nScrollInc = pos - m_yScrollPosition;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (orient == wxHORIZONTAL)
|
||||||
|
{
|
||||||
|
if (m_xScrollPixelsPerLine > 0)
|
||||||
|
{
|
||||||
|
int w, h;
|
||||||
|
m_targetWindow->GetClientSize(&w, &h);
|
||||||
|
|
||||||
|
int nMaxWidth = m_xScrollLines*m_xScrollPixelsPerLine;
|
||||||
|
int noPositions = (int) ( ((nMaxWidth - w)/(double)m_xScrollPixelsPerLine) + 0.5 );
|
||||||
|
if (noPositions < 0)
|
||||||
|
noPositions = 0;
|
||||||
|
|
||||||
|
if ( (m_xScrollPosition + nScrollInc) < 0 )
|
||||||
|
nScrollInc = -m_xScrollPosition; // As -ve as we can go
|
||||||
|
else if ( (m_xScrollPosition + nScrollInc) > noPositions )
|
||||||
|
nScrollInc = noPositions - m_xScrollPosition; // As +ve as we can go
|
||||||
|
}
|
||||||
|
else
|
||||||
|
m_targetWindow->Refresh();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (m_yScrollPixelsPerLine > 0)
|
||||||
|
{
|
||||||
|
int w, h;
|
||||||
|
m_targetWindow->GetClientSize(&w, &h);
|
||||||
|
|
||||||
|
int nMaxHeight = m_yScrollLines*m_yScrollPixelsPerLine;
|
||||||
|
int noPositions = (int) ( ((nMaxHeight - h)/(double)m_yScrollPixelsPerLine) + 0.5 );
|
||||||
|
if (noPositions < 0)
|
||||||
|
noPositions = 0;
|
||||||
|
|
||||||
|
if ( (m_yScrollPosition + nScrollInc) < 0 )
|
||||||
|
nScrollInc = -m_yScrollPosition; // As -ve as we can go
|
||||||
|
else if ( (m_yScrollPosition + nScrollInc) > noPositions )
|
||||||
|
nScrollInc = noPositions - m_yScrollPosition; // As +ve as we can go
|
||||||
|
}
|
||||||
|
else
|
||||||
|
m_targetWindow->Refresh();
|
||||||
|
}
|
||||||
|
|
||||||
|
return nScrollInc;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Adjust the scrollbars - new version.
|
||||||
|
void wxGenericScrolledWindow::AdjustScrollbars()
|
||||||
|
{
|
||||||
|
int w, h;
|
||||||
|
m_targetWindow->GetClientSize(&w, &h);
|
||||||
|
|
||||||
|
int oldXScroll = m_xScrollPosition;
|
||||||
|
int oldYScroll = m_yScrollPosition;
|
||||||
|
|
||||||
|
if (m_xScrollLines > 0)
|
||||||
|
{
|
||||||
|
// Calculate page size i.e. number of scroll units you get on the
|
||||||
|
// current client window
|
||||||
|
int noPagePositions = (int) ( (w/(double)m_xScrollPixelsPerLine) + 0.5 );
|
||||||
|
if (noPagePositions < 1) noPagePositions = 1;
|
||||||
|
|
||||||
|
// Correct position if greater than extent of canvas minus
|
||||||
|
// the visible portion of it or if below zero
|
||||||
|
m_xScrollPosition = wxMin( m_xScrollLines-noPagePositions, m_xScrollPosition);
|
||||||
|
m_xScrollPosition = wxMax( 0, m_xScrollPosition );
|
||||||
|
|
||||||
|
SetScrollbar(wxHORIZONTAL, m_xScrollPosition, noPagePositions, m_xScrollLines);
|
||||||
|
// The amount by which we scroll when paging
|
||||||
|
SetScrollPageSize(wxHORIZONTAL, noPagePositions);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
m_xScrollPosition = 0;
|
||||||
|
SetScrollbar (wxHORIZONTAL, 0, 0, 0, FALSE);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (m_yScrollLines > 0)
|
||||||
|
{
|
||||||
|
// Calculate page size i.e. number of scroll units you get on the
|
||||||
|
// current client window
|
||||||
|
int noPagePositions = (int) ( (h/(double)m_yScrollPixelsPerLine) + 0.5 );
|
||||||
|
if (noPagePositions < 1) noPagePositions = 1;
|
||||||
|
|
||||||
|
// Correct position if greater than extent of canvas minus
|
||||||
|
// the visible portion of it or if below zero
|
||||||
|
m_yScrollPosition = wxMin( m_yScrollLines-noPagePositions, m_yScrollPosition );
|
||||||
|
m_yScrollPosition = wxMax( 0, m_yScrollPosition );
|
||||||
|
|
||||||
|
SetScrollbar(wxVERTICAL, m_yScrollPosition, noPagePositions, m_yScrollLines);
|
||||||
|
// The amount by which we scroll when paging
|
||||||
|
SetScrollPageSize(wxVERTICAL, noPagePositions);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
m_yScrollPosition = 0;
|
||||||
|
SetScrollbar (wxVERTICAL, 0, 0, 0, FALSE);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (oldXScroll != m_xScrollPosition)
|
||||||
|
{
|
||||||
|
if (m_xScrollingEnabled)
|
||||||
|
m_targetWindow->ScrollWindow( m_xScrollPixelsPerLine * (oldXScroll-m_xScrollPosition), 0, (const wxRect *) NULL );
|
||||||
|
else
|
||||||
|
m_targetWindow->Refresh();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (oldYScroll != m_yScrollPosition)
|
||||||
|
{
|
||||||
|
if (m_yScrollingEnabled)
|
||||||
|
m_targetWindow->ScrollWindow( 0, m_yScrollPixelsPerLine * (oldYScroll-m_yScrollPosition), (const wxRect *) NULL );
|
||||||
|
else
|
||||||
|
m_targetWindow->Refresh();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Override this function if you don't want to have wxGenericScrolledWindow
|
||||||
|
// automatically change the origin according to the scroll position.
|
||||||
|
void wxGenericScrolledWindow::PrepareDC(wxDC& dc)
|
||||||
|
{
|
||||||
|
dc.SetDeviceOrigin( -m_xScrollPosition * m_xScrollPixelsPerLine,
|
||||||
|
-m_yScrollPosition * m_yScrollPixelsPerLine );
|
||||||
|
dc.SetUserScale( m_scaleX, m_scaleY );
|
||||||
|
}
|
||||||
|
|
||||||
|
#if WXWIN_COMPATIBILITY
|
||||||
|
void wxGenericScrolledWindow::GetScrollUnitsPerPage (int *x_page, int *y_page) const
|
||||||
|
{
|
||||||
|
*x_page = GetScrollPageSize(wxHORIZONTAL);
|
||||||
|
*y_page = GetScrollPageSize(wxVERTICAL);
|
||||||
|
}
|
||||||
|
|
||||||
|
void wxGenericScrolledWindow::CalcUnscrolledPosition(int x, int y, float *xx, float *yy) const
|
||||||
|
{
|
||||||
|
if ( xx )
|
||||||
|
*xx = (float)(x + m_xScrollPosition * m_xScrollPixelsPerLine);
|
||||||
|
if ( yy )
|
||||||
|
*yy = (float)(y + m_yScrollPosition * m_yScrollPixelsPerLine);
|
||||||
|
}
|
||||||
|
#endif // WXWIN_COMPATIBILITY
|
||||||
|
|
||||||
|
void wxGenericScrolledWindow::GetScrollPixelsPerUnit (int *x_unit, int *y_unit) const
|
||||||
|
{
|
||||||
|
if ( x_unit )
|
||||||
|
*x_unit = m_xScrollPixelsPerLine;
|
||||||
|
if ( y_unit )
|
||||||
|
*y_unit = m_yScrollPixelsPerLine;
|
||||||
|
}
|
||||||
|
|
||||||
|
int wxGenericScrolledWindow::GetScrollPageSize(int orient) const
|
||||||
|
{
|
||||||
|
if ( orient == wxHORIZONTAL )
|
||||||
|
return m_xScrollLinesPerPage;
|
||||||
|
else
|
||||||
|
return m_yScrollLinesPerPage;
|
||||||
|
}
|
||||||
|
|
||||||
|
void wxGenericScrolledWindow::SetScrollPageSize(int orient, int pageSize)
|
||||||
|
{
|
||||||
|
if ( orient == wxHORIZONTAL )
|
||||||
|
m_xScrollLinesPerPage = pageSize;
|
||||||
|
else
|
||||||
|
m_yScrollLinesPerPage = pageSize;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Scroll to given position (scroll position, not pixel position)
|
||||||
|
*/
|
||||||
|
void wxGenericScrolledWindow::Scroll( int x_pos, int y_pos )
|
||||||
|
{
|
||||||
|
if (!m_targetWindow)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (((x_pos == -1) || (x_pos == m_xScrollPosition)) &&
|
||||||
|
((y_pos == -1) || (y_pos == m_yScrollPosition))) return;
|
||||||
|
|
||||||
|
int w, h;
|
||||||
|
m_targetWindow->GetClientSize(&w, &h);
|
||||||
|
|
||||||
|
if ((x_pos != -1) && (m_xScrollPixelsPerLine))
|
||||||
|
{
|
||||||
|
int old_x = m_xScrollPosition;
|
||||||
|
m_xScrollPosition = x_pos;
|
||||||
|
|
||||||
|
// Calculate page size i.e. number of scroll units you get on the
|
||||||
|
// current client window
|
||||||
|
int noPagePositions = (int) ( (w/(double)m_xScrollPixelsPerLine) + 0.5 );
|
||||||
|
if (noPagePositions < 1) noPagePositions = 1;
|
||||||
|
|
||||||
|
// Correct position if greater than extent of canvas minus
|
||||||
|
// the visible portion of it or if below zero
|
||||||
|
m_xScrollPosition = wxMin( m_xScrollLines-noPagePositions, m_xScrollPosition );
|
||||||
|
m_xScrollPosition = wxMax( 0, m_xScrollPosition );
|
||||||
|
|
||||||
|
if (old_x != m_xScrollPosition) {
|
||||||
|
m_targetWindow->SetScrollPos( wxHORIZONTAL, m_xScrollPosition, TRUE );
|
||||||
|
m_targetWindow->ScrollWindow( (old_x-m_xScrollPosition)*m_xScrollPixelsPerLine, 0 );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ((y_pos != -1) && (m_yScrollPixelsPerLine))
|
||||||
|
{
|
||||||
|
int old_y = m_yScrollPosition;
|
||||||
|
m_yScrollPosition = y_pos;
|
||||||
|
|
||||||
|
// Calculate page size i.e. number of scroll units you get on the
|
||||||
|
// current client window
|
||||||
|
int noPagePositions = (int) ( (h/(double)m_yScrollPixelsPerLine) + 0.5 );
|
||||||
|
if (noPagePositions < 1) noPagePositions = 1;
|
||||||
|
|
||||||
|
// Correct position if greater than extent of canvas minus
|
||||||
|
// the visible portion of it or if below zero
|
||||||
|
m_yScrollPosition = wxMin( m_yScrollLines-noPagePositions, m_yScrollPosition );
|
||||||
|
m_yScrollPosition = wxMax( 0, m_yScrollPosition );
|
||||||
|
|
||||||
|
if (old_y != m_yScrollPosition) {
|
||||||
|
m_targetWindow->SetScrollPos( wxVERTICAL, m_yScrollPosition, TRUE );
|
||||||
|
m_targetWindow->ScrollWindow( 0, (old_y-m_yScrollPosition)*m_yScrollPixelsPerLine );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef __WXMAC__
|
||||||
|
m_targetWindow->MacUpdateImmediately();
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
void wxGenericScrolledWindow::EnableScrolling (bool x_scroll, bool y_scroll)
|
||||||
|
{
|
||||||
|
m_xScrollingEnabled = x_scroll;
|
||||||
|
m_yScrollingEnabled = y_scroll;
|
||||||
|
}
|
||||||
|
|
||||||
|
void wxGenericScrolledWindow::GetVirtualSize (int *x, int *y) const
|
||||||
|
{
|
||||||
|
if ( x )
|
||||||
|
*x = m_xScrollPixelsPerLine * m_xScrollLines;
|
||||||
|
if ( y )
|
||||||
|
*y = m_yScrollPixelsPerLine * m_yScrollLines;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Where the current view starts from
|
||||||
|
void wxGenericScrolledWindow::GetViewStart (int *x, int *y) const
|
||||||
|
{
|
||||||
|
if ( x )
|
||||||
|
*x = m_xScrollPosition;
|
||||||
|
if ( y )
|
||||||
|
*y = m_yScrollPosition;
|
||||||
|
}
|
||||||
|
|
||||||
|
void wxGenericScrolledWindow::CalcScrolledPosition(int x, int y, int *xx, int *yy) const
|
||||||
|
{
|
||||||
|
if ( xx )
|
||||||
|
*xx = x - m_xScrollPosition * m_xScrollPixelsPerLine;
|
||||||
|
if ( yy )
|
||||||
|
*yy = y - m_yScrollPosition * m_yScrollPixelsPerLine;
|
||||||
|
}
|
||||||
|
|
||||||
|
void wxGenericScrolledWindow::CalcUnscrolledPosition(int x, int y, int *xx, int *yy) const
|
||||||
|
{
|
||||||
|
if ( xx )
|
||||||
|
*xx = x + m_xScrollPosition * m_xScrollPixelsPerLine;
|
||||||
|
if ( yy )
|
||||||
|
*yy = y + m_yScrollPosition * m_yScrollPixelsPerLine;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// event handlers
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
// Default OnSize resets scrollbars, if any
|
||||||
|
void wxGenericScrolledWindow::OnSize(wxSizeEvent& WXUNUSED(event))
|
||||||
|
{
|
||||||
|
#if wxUSE_CONSTRAINTS
|
||||||
|
if (GetAutoLayout())
|
||||||
|
Layout();
|
||||||
|
#endif
|
||||||
|
|
||||||
|
AdjustScrollbars();
|
||||||
|
}
|
||||||
|
|
||||||
|
// This calls OnDraw, having adjusted the origin according to the current
|
||||||
|
// scroll position
|
||||||
|
void wxGenericScrolledWindow::OnPaint(wxPaintEvent& WXUNUSED(event))
|
||||||
|
{
|
||||||
|
wxPaintDC dc(this);
|
||||||
|
PrepareDC(dc);
|
||||||
|
|
||||||
|
OnDraw(dc);
|
||||||
|
}
|
||||||
|
|
||||||
|
// kbd handling: notice that we use OnChar() and not OnKeyDown() for
|
||||||
|
// compatibility here - if we used OnKeyDown(), the programs which process
|
||||||
|
// arrows themselves in their OnChar() would never get the message and like
|
||||||
|
// this they always have the priority
|
||||||
|
void wxGenericScrolledWindow::OnChar(wxKeyEvent& event)
|
||||||
|
{
|
||||||
|
int stx, sty, // view origin
|
||||||
|
szx, szy, // view size (total)
|
||||||
|
clix, cliy; // view size (on screen)
|
||||||
|
|
||||||
|
ViewStart(&stx, &sty);
|
||||||
|
GetClientSize(&clix, &cliy);
|
||||||
|
GetVirtualSize(&szx, &szy);
|
||||||
|
|
||||||
|
if( m_xScrollPixelsPerLine )
|
||||||
|
{
|
||||||
|
clix /= m_xScrollPixelsPerLine;
|
||||||
|
szx /= m_xScrollPixelsPerLine;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
clix = 0;
|
||||||
|
szx = -1;
|
||||||
|
}
|
||||||
|
if( m_yScrollPixelsPerLine )
|
||||||
|
{
|
||||||
|
cliy /= m_yScrollPixelsPerLine;
|
||||||
|
szy /= m_yScrollPixelsPerLine;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
cliy = 0;
|
||||||
|
szy = -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
int dsty;
|
||||||
|
switch ( event.KeyCode() )
|
||||||
|
{
|
||||||
|
case WXK_PAGEUP:
|
||||||
|
case WXK_PRIOR:
|
||||||
|
dsty = sty - (5 * cliy / 6);
|
||||||
|
Scroll(-1, (dsty == -1) ? 0 : dsty);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case WXK_PAGEDOWN:
|
||||||
|
case WXK_NEXT:
|
||||||
|
Scroll(-1, sty + (5 * cliy / 6));
|
||||||
|
break;
|
||||||
|
|
||||||
|
case WXK_HOME:
|
||||||
|
Scroll(0, event.ControlDown() ? 0 : -1);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case WXK_END:
|
||||||
|
Scroll(szx - clix, event.ControlDown() ? szy - cliy : -1);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case WXK_UP:
|
||||||
|
Scroll(-1, sty - 1);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case WXK_DOWN:
|
||||||
|
Scroll(-1, sty + 1);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case WXK_LEFT:
|
||||||
|
Scroll(stx - 1, -1);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case WXK_RIGHT:
|
||||||
|
Scroll(stx + 1, -1);
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
// not for us
|
||||||
|
event.Skip();
|
||||||
|
}
|
||||||
|
}
|
4473
src/msw/window.cpp
Normal file
4473
src/msw/window.cpp
Normal file
File diff suppressed because it is too large
Load Diff
1278
src/univ/listbox.cpp
1278
src/univ/listbox.cpp
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user