Compare commits
791 Commits
wip/matthi
...
no-init-ar
Author | SHA1 | Date | |
---|---|---|---|
|
1ae7240932 | ||
|
a3e2fc2df6 | ||
|
deed306e5a | ||
|
9cc64449a8 | ||
|
72877343fd | ||
|
8a816dbc19 | ||
|
002d616ca4 | ||
|
3ea1b37aff | ||
|
1d6435db48 | ||
|
5b411031ba | ||
|
68b39a4727 | ||
|
a5f8a74ec1 | ||
|
293248c1d3 | ||
|
af917c4ade | ||
|
c0c44c7b9c | ||
|
573ceb0340 | ||
|
d7e867aa95 | ||
|
3c8518dce3 | ||
|
599cc995f3 | ||
|
5017c3be65 | ||
|
3a79b17309 | ||
|
c7083a5d37 | ||
|
2a7171534e | ||
|
71bbd8881f | ||
|
5d10174031 | ||
|
476cadc7f8 | ||
|
78582dd5e9 | ||
|
eacf725778 | ||
|
c99b46c46d | ||
|
5878f9d8af | ||
|
b30225e67c | ||
|
16a9a82021 | ||
|
aa0ec774bf | ||
|
81c487b841 | ||
|
18b65a2378 | ||
|
b11b7dfb1a | ||
|
2bca24c455 | ||
|
1d84555729 | ||
|
89d38ae93f | ||
|
23d10df6c6 | ||
|
2750bb5e87 | ||
|
6cc08d60ef | ||
|
b97e4e8631 | ||
|
a36e5ceea7 | ||
|
513a8c46af | ||
|
a0f65d16bc | ||
|
b901572d86 | ||
|
c412a717f1 | ||
|
677c5bdedf | ||
|
af6e7cc169 | ||
|
4bb0c70c11 | ||
|
4e866ec06b | ||
|
5e089c4345 | ||
|
087ea8e531 | ||
|
08f9a6078b | ||
|
adcde3034e | ||
|
786d3a013e | ||
|
b0d5224de5 | ||
|
6c56793147 | ||
|
d58799ff7a | ||
|
be8c999fe8 | ||
|
2d2209859e | ||
|
373e08d6d4 | ||
|
98086014d8 | ||
|
d2622d93ad | ||
|
df5e12fc1d | ||
|
814b66e1a8 | ||
|
b4ac7ffed4 | ||
|
735846cc82 | ||
|
91c71b10e6 | ||
|
c88d279416 | ||
|
3a38bc9bf7 | ||
|
5fa1733944 | ||
|
0efeaf9508 | ||
|
f1825f5eff | ||
|
23edff1606 | ||
|
e64947662a | ||
|
a2f0c860ee | ||
|
924efd988d | ||
|
961286b7cd | ||
|
a571e53491 | ||
|
2b4dfeec7c | ||
|
230d27b079 | ||
|
22110ef5a4 | ||
|
2d4b46f4f9 | ||
|
4ee45b76ca | ||
|
cfade39459 | ||
|
24eeea46fa | ||
|
def94f03e2 | ||
|
acaa04c031 | ||
|
c4065b9ee0 | ||
|
22a657004b | ||
|
2cbe057351 | ||
|
1b553478f6 | ||
|
6c20ddc119 | ||
|
0dbdf0c428 | ||
|
613194a246 | ||
|
4d9eedafcd | ||
|
95a2a5c54c | ||
|
f2f5941d65 | ||
|
3f75b11982 | ||
|
c87db76cb5 | ||
|
94e906c802 | ||
|
2034e83a20 | ||
|
fcc1f554d6 | ||
|
4fc64ae3dd | ||
|
2480e0d575 | ||
|
071c9a8221 | ||
|
15e8a22f08 | ||
|
6e31fc4300 | ||
|
75b76af221 | ||
|
9af468cdec | ||
|
a9809e5d30 | ||
|
1760e0d3f3 | ||
|
1b90ce6b33 | ||
|
b04eecf860 | ||
|
4c74695a85 | ||
|
5dfb74c70c | ||
|
b4f04d0c1d | ||
|
e68b18aa4e | ||
|
9aecd6dd56 | ||
|
453478719d | ||
|
65e9894450 | ||
|
e492a63e4c | ||
|
8ad7c435ca | ||
|
9822fe81a3 | ||
|
6b29dbf26a | ||
|
30438c6e8b | ||
|
3e4fd32b54 | ||
|
7b9ace488b | ||
|
85559d1fd9 | ||
|
ba7ac637bc | ||
|
81297857cc | ||
|
3ef03c8bc0 | ||
|
e8cd71228a | ||
|
cf520b7a1f | ||
|
3e26fadb24 | ||
|
2118f394d2 | ||
|
08a2a29c26 | ||
|
7d837a2ae6 | ||
|
f4f0dba5c6 | ||
|
62eb9d42aa | ||
|
58b2c1d009 | ||
|
cd68c93b4c | ||
|
3d5173d4ac | ||
|
dd1cf1ac0f | ||
|
23e35706b4 | ||
|
f96f16899d | ||
|
fa9b0f9965 | ||
|
e26f84fca0 | ||
|
a2dfb1e93f | ||
|
c04bece131 | ||
|
6d012fb4ea | ||
|
59d638a09f | ||
|
0a0cbcdcb6 | ||
|
b0175421f2 | ||
|
1137483d15 | ||
|
1f988d8b05 | ||
|
68a54ae81f | ||
|
07d39299ea | ||
|
671d43b873 | ||
|
ed6643cf69 | ||
|
429346fa7e | ||
|
c258ee403a | ||
|
e6d423e0e2 | ||
|
b120075698 | ||
|
ee9aca882d | ||
|
6129daf29b | ||
|
361e2cda27 | ||
|
e82d02432e | ||
|
02131d590e | ||
|
ca80e9decf | ||
|
67fb129ed7 | ||
|
19753062c4 | ||
|
e2625f8649 | ||
|
d691dfc894 | ||
|
a8f2b3e75e | ||
|
3eb7c4719b | ||
|
4d376c80f3 | ||
|
d907f60843 | ||
|
e4ee65fd19 | ||
|
684d25bd1a | ||
|
be8b9406e5 | ||
|
a97b819b81 | ||
|
8830a1a1ad | ||
|
f16d523cb2 | ||
|
3af4fba895 | ||
|
abd184efc9 | ||
|
cb5c5170f4 | ||
|
52d2faef88 | ||
|
d1b80a6baa | ||
|
8c8691b469 | ||
|
ac5e277a71 | ||
|
f258af9cce | ||
|
6fb46e3943 | ||
|
9bff1c12d4 | ||
|
ff884385c0 | ||
|
04a2c1499a | ||
|
174d6a5613 | ||
|
a47cb4d450 | ||
|
0ae27a3879 | ||
|
4a13bd7a3f | ||
|
696c48d0be | ||
|
7ea199c831 | ||
|
faf2295440 | ||
|
76e5fd4d0f | ||
|
a2da4ddceb | ||
|
7331735499 | ||
|
f5818c594c | ||
|
9791641d43 | ||
|
4a7e7c00c1 | ||
|
62627bc833 | ||
|
2090219abb | ||
|
e09fd1eb8a | ||
|
e755d9357d | ||
|
3ba5c70028 | ||
|
d9619abb11 | ||
|
1733a3de0e | ||
|
182dad304a | ||
|
8900d6cc45 | ||
|
edf8ffecdf | ||
|
96a94fc21d | ||
|
795f38b4cc | ||
|
087cb3f987 | ||
|
339f6e141a | ||
|
2cb975ea77 | ||
|
330c7feaa2 | ||
|
5bf28a3869 | ||
|
5c3192c75a | ||
|
cacd1da8a1 | ||
|
c4fd5bc233 | ||
|
b1f2e3b581 | ||
|
8fb311cb4b | ||
|
0eecc6f686 | ||
|
404cdd5d02 | ||
|
75c3d193f6 | ||
|
5aea108802 | ||
|
d7148a4718 | ||
|
438ad208e7 | ||
|
cb8483b0a6 | ||
|
f8932d643d | ||
|
2faad03f2f | ||
|
3e9811d91c | ||
|
4ae50bf38e | ||
|
2c0564a46e | ||
|
98f5e794a6 | ||
|
3dd4f76703 | ||
|
5b6a837b17 | ||
|
17c8ebc4a8 | ||
|
f52dd12569 | ||
|
6525fbe90f | ||
|
b3388aaca9 | ||
|
35d1dc6dd5 | ||
|
cf470f31ca | ||
|
93448b8c7e | ||
|
b3a1732a3e | ||
|
f4685e0291 | ||
|
e989375c04 | ||
|
8756deec58 | ||
|
17c11dd97b | ||
|
c160ef16c1 | ||
|
85bc9ff36b | ||
|
b2e30fb66e | ||
|
ac9d48151b | ||
|
adff39953d | ||
|
9635598124 | ||
|
eb94153a2c | ||
|
747df7aa3c | ||
|
3c5b25b1d1 | ||
|
681554787b | ||
|
583956266e | ||
|
13b53656ea | ||
|
3c4b952256 | ||
|
9120bdd9e9 | ||
|
5e4f95d77f | ||
|
a7cbbaf8fc | ||
|
2a0e7f8829 | ||
|
3f7cc013cc | ||
|
8ba2898e08 | ||
|
06657fa23b | ||
|
3e59b11700 | ||
|
5bea4ff45e | ||
|
325efe7078 | ||
|
a753f047df | ||
|
0c8e7d0ac0 | ||
|
b6227aa998 | ||
|
e11a6a0e68 | ||
|
e22cb94e50 | ||
|
4ef8bf821e | ||
|
6d1d6e6792 | ||
|
cca547e5bc | ||
|
843fe3eec1 | ||
|
87ae5885dd | ||
|
9a7b0847b9 | ||
|
489aee5d00 | ||
|
1aa1676d9d | ||
|
be9adea58e | ||
|
55b1f231fb | ||
|
c4a6c37767 | ||
|
4c12c4ba02 | ||
|
ea22bd9d40 | ||
|
07a9b202ab | ||
|
3063d4a5e3 | ||
|
cd2b898353 | ||
|
a85a97c1a1 | ||
|
060365a9bb | ||
|
82401032c5 | ||
|
fdec3e8a3f | ||
|
3c2aefddd4 | ||
|
32b3928eda | ||
|
e27e8e6e1c | ||
|
8915be00d1 | ||
|
582ea50faa | ||
|
9597caef5e | ||
|
ca78f5d3cb | ||
|
60567db486 | ||
|
e950a5190d | ||
|
358aca9e20 | ||
|
da8d886b17 | ||
|
725a7236c0 | ||
|
db8e3065bd | ||
|
e38bd27d58 | ||
|
e87b472143 | ||
|
182d18bcd1 | ||
|
4b484557f5 | ||
|
4967257f3a | ||
|
bddfd7bb41 | ||
|
77d336de17 | ||
|
e42e27304a | ||
|
332ed7be5b | ||
|
9c041f6bcc | ||
|
a860bbbe46 | ||
|
633631a47b | ||
|
f6b4477393 | ||
|
ac20c3eb22 | ||
|
7096d6dd28 | ||
|
5ee590fbc8 | ||
|
1ab3d32808 | ||
|
7f8d0acfd3 | ||
|
d45e5ef3dc | ||
|
5b05c12780 | ||
|
9f98138ffb | ||
|
0d68b22479 | ||
|
8efc91c4e0 | ||
|
3dac21f20b | ||
|
8a543ab23c | ||
|
49508ddfdb | ||
|
31ed68dbfa | ||
|
fa4d6e8918 | ||
|
36377e9964 | ||
|
8d36fbfbaa | ||
|
1f7b03bb2b | ||
|
975a3fa4aa | ||
|
e723fd6a23 | ||
|
a72dbeba06 | ||
|
e09b78f7f7 | ||
|
970f99615e | ||
|
92a1abcd23 | ||
|
1c51da82bd | ||
|
7d18a86140 | ||
|
318e19f570 | ||
|
5563841603 | ||
|
ce98df881f | ||
|
efd04b47aa | ||
|
bdcfc17c43 | ||
|
d12c81f177 | ||
|
e28d94bc8b | ||
|
238334c74e | ||
|
bd4519922c | ||
|
c8b92cb0d2 | ||
|
ee1ae7f9ed | ||
|
0037d4d257 | ||
|
316b24e0a0 | ||
|
3efbb75619 | ||
|
82b2bf2184 | ||
|
e2881d1e4f | ||
|
8161f8dcca | ||
|
7ebbd075b9 | ||
|
4939cfd67e | ||
|
cae8fc74ac | ||
|
624e0e1409 | ||
|
d7876bde74 | ||
|
4b6e70b9c8 | ||
|
39200e75b6 | ||
|
ae29d4db5a | ||
|
3414f10bad | ||
|
1af817e254 | ||
|
593b75fb69 | ||
|
c14c9aca34 | ||
|
10a7c65f47 | ||
|
3a947fa318 | ||
|
1dded6d633 | ||
|
0e37d67393 | ||
|
0cb35bf394 | ||
|
2a27b7ecc6 | ||
|
ef75ca2d53 | ||
|
4dedafb79b | ||
|
4850271ae8 | ||
|
b7869c65a8 | ||
|
8cb96dec7e | ||
|
cb1a349d17 | ||
|
5ab18062a3 | ||
|
eb5b8b22e2 | ||
|
368e0117ed | ||
|
8fb9d1578d | ||
|
331302005c | ||
|
9e3bd03d3e | ||
|
17fe2288e8 | ||
|
1f7ab7c069 | ||
|
6e197afc44 | ||
|
7ae83717af | ||
|
4cbe079767 | ||
|
8e5e165f79 | ||
|
895fd0e773 | ||
|
bd73a55f32 | ||
|
efd92da101 | ||
|
724e7f48e7 | ||
|
18b1305d08 | ||
|
a33b551f83 | ||
|
8a88745186 | ||
|
7625beec50 | ||
|
e62a4d8eea | ||
|
84918c7e6f | ||
|
78888ade0d | ||
|
196737a958 | ||
|
dfd9150a82 | ||
|
fef2f96add | ||
|
1492175a28 | ||
|
cb18752f94 | ||
|
1912d992d8 | ||
|
39bf2ba96f | ||
|
aa084333c8 | ||
|
be237dbb5a | ||
|
32adb31428 | ||
|
b404ecf294 | ||
|
b0303c539c | ||
|
b93c26f559 | ||
|
305ea71b97 | ||
|
38f226b5ce | ||
|
c45f8b1a25 | ||
|
2745c2502f | ||
|
8afb655347 | ||
|
fd6d28dd8d | ||
|
1bffefce7d | ||
|
5170218a1d | ||
|
9bacbb489b | ||
|
64a75ec87d | ||
|
2d65156be3 | ||
|
b0feee803f | ||
|
6734f354b4 | ||
|
d0f8e324b1 | ||
|
712196c416 | ||
|
3dc53dab69 | ||
|
c9c391bd55 | ||
|
c418ce0365 | ||
|
158afb4ef9 | ||
|
9dae0a9b00 | ||
|
0d1c54b6cc | ||
|
270af15f16 | ||
|
0392acd875 | ||
|
76b8adcfbd | ||
|
dc634fe6db | ||
|
14b746eeaa | ||
|
a1deb8e459 | ||
|
ca47c75272 | ||
|
4a604cf927 | ||
|
915e791586 | ||
|
295066dad8 | ||
|
aa74d96532 | ||
|
7d34229cdd | ||
|
dbfc1d72fc | ||
|
ff4b8512be | ||
|
ef6d95879f | ||
|
d52fcd914c | ||
|
fe23c3165e | ||
|
e950d0cd8b | ||
|
0a75bb4353 | ||
|
b15bc437a6 | ||
|
36575a4424 | ||
|
665c3a2877 | ||
|
f73c5dd8dd | ||
|
5c1af1af04 | ||
|
0311a1883c | ||
|
95c13ee471 | ||
|
9ecb34b4a0 | ||
|
3c5dbc2f17 | ||
|
3ee2138ee7 | ||
|
f2fb2da8bd | ||
|
a57fe52fc6 | ||
|
4a06d22c7d | ||
|
cd8d84beb6 | ||
|
dd6fb87443 | ||
|
b0f392534f | ||
|
979b56e86f | ||
|
5940625e9e | ||
|
41d1e1fea8 | ||
|
100ac17505 | ||
|
585b1d5f67 | ||
|
39e3b3a483 | ||
|
efa1c6cbd5 | ||
|
f8f2b8144f | ||
|
9a06b0fd5f | ||
|
c162b87ebd | ||
|
214eb5860d | ||
|
0cec768b54 | ||
|
957274ed1a | ||
|
55fda57c44 | ||
|
f4929360aa | ||
|
fbbd3ccfd7 | ||
|
5b3b111260 | ||
|
2f197ac0c2 | ||
|
0bc79910e0 | ||
|
77aa562415 | ||
|
16bce17168 | ||
|
21570a57f2 | ||
|
ce36ac93f4 | ||
|
4ad4275c24 | ||
|
ab60cbd86a | ||
|
28b32d336f | ||
|
7493f90662 | ||
|
5dfe788e9e | ||
|
6d9725f7fd | ||
|
c22a9a03f9 | ||
|
bcf70e3a03 | ||
|
56e11f057c | ||
|
48e7f4191f | ||
|
40565fb030 | ||
|
455ce80ff7 | ||
|
6e9ee9e03c | ||
|
f728f33382 | ||
|
2e9ff11c85 | ||
|
b8710d8962 | ||
|
313a708006 | ||
|
e2fb970889 | ||
|
e8381f84d6 | ||
|
475cffd7f8 | ||
|
ada70f4872 | ||
|
d38cf9fee2 | ||
|
82eb223c58 | ||
|
9c1da58ad1 | ||
|
47a82640a8 | ||
|
30e0bbeaaa | ||
|
150f75af66 | ||
|
a2b1aef6bd | ||
|
dad8703e03 | ||
|
0cf9f70ccd | ||
|
3a18bed7d7 | ||
|
703d80eac0 | ||
|
e253f408e3 | ||
|
4b8b06bb08 | ||
|
c0aa065ac1 | ||
|
92e6b3a000 | ||
|
55de4e7140 | ||
|
9b6dfa83e2 | ||
|
349f55f2fe | ||
|
ab47479045 | ||
|
4c9033b62d | ||
|
8c77b6f7f1 | ||
|
cc1b422f64 | ||
|
64e802c441 | ||
|
8ac7918e0b | ||
|
e3b1c9f1cd | ||
|
da207c9fdd | ||
|
4e06d8f73c | ||
|
ae2477b1bc | ||
|
2cd9e5170e | ||
|
79d2d0e40d | ||
|
9006e697fb | ||
|
d1fec79c00 | ||
|
956edd83a7 | ||
|
bb9626dc29 | ||
|
b1154be1c4 | ||
|
93cbba6c3e | ||
|
f90dcb33f9 | ||
|
4c7f907d16 | ||
|
d462c31233 | ||
|
8b75268d1c | ||
|
34e26017e3 | ||
|
83712a48f4 | ||
|
23354ff6e7 | ||
|
03b8a8a880 | ||
|
4ae1eab3b1 | ||
|
5ccc570cca | ||
|
2520662d13 | ||
|
c944bf7330 | ||
|
4e445e8e53 | ||
|
0d88fe65ba | ||
|
95eed97586 | ||
|
9a0513d911 | ||
|
997fd3c81e | ||
|
26746c8369 | ||
|
fdc0c6426b | ||
|
5e06701f53 | ||
|
fcd216a409 | ||
|
718efc2f59 | ||
|
0d364173f6 | ||
|
3c27774a5d | ||
|
5e19e06dcc | ||
|
547970b0bc | ||
|
c7d119614f | ||
|
8121860251 | ||
|
641b42f9f5 | ||
|
942e904bcc | ||
|
c836be0508 | ||
|
7b2313a6df | ||
|
38a8e4ee7c | ||
|
d163aba030 | ||
|
1259a489f2 | ||
|
09359197a7 | ||
|
46eb2c1be9 | ||
|
71aeb8075b | ||
|
7c55830d02 | ||
|
c16a7d96b8 | ||
|
46b9b07a11 | ||
|
a54db5adcd | ||
|
f9da4f0270 | ||
|
8d212ae5c2 | ||
|
5b8646c6e8 | ||
|
2a5a94b260 | ||
|
fa7d77d407 | ||
|
a1e03346d9 | ||
|
b868164381 | ||
|
12d9451b1c | ||
|
1410031e57 | ||
|
069c5e48d4 | ||
|
d674e9c8fa | ||
|
aceba7484f | ||
|
5af1e87f59 | ||
|
c4a4fe32ea | ||
|
e470567fd0 | ||
|
b04e25f29b | ||
|
d2c26c471c | ||
|
9fe8b1e112 | ||
|
3b93773add | ||
|
24d0baec38 | ||
|
13d8ac83ee | ||
|
0e93e39e74 | ||
|
b30afff511 | ||
|
87f07bac6b | ||
|
7a6cab14eb | ||
|
e0600346e2 | ||
|
b7619a2603 | ||
|
b7a72224e1 | ||
|
2f8df5237f | ||
|
2c642dd654 | ||
|
2b53583e80 | ||
|
5416db16f3 | ||
|
a45f96e9cb | ||
|
832f5b892c | ||
|
f4c6994e57 | ||
|
a5b967ed31 | ||
|
96f382e5b0 | ||
|
fdc24c7505 | ||
|
f483d931ec | ||
|
932b9acb39 | ||
|
3b970f4555 | ||
|
846cf681e8 | ||
|
34626eaa16 | ||
|
a47fb1c451 | ||
|
ff75f1c929 | ||
|
079f0427cb | ||
|
2e284451ff | ||
|
a659bbecb9 | ||
|
9707f4d3b3 | ||
|
b9955cfff1 | ||
|
33e7a7898f | ||
|
1dbdbecd39 | ||
|
f4fa111e32 | ||
|
338534fb8d | ||
|
8507083928 | ||
|
b8fc4c246a | ||
|
2c26f0cae4 | ||
|
e75878f976 | ||
|
6abd65c83b | ||
|
3baa4a9741 | ||
|
9898085149 | ||
|
4b88b81e67 | ||
|
7c474c689a | ||
|
77a9e90cb9 | ||
|
8040d78c04 | ||
|
31a0933fe9 | ||
|
ec06a717ce | ||
|
4585af5719 | ||
|
fe08641205 | ||
|
b741d32262 | ||
|
0192f93689 | ||
|
6c6359df4f | ||
|
d8d8059ee1 | ||
|
4ebcb6fd1e | ||
|
a178258a2a | ||
|
993f867744 | ||
|
3885e85f77 | ||
|
5c18bf79a1 | ||
|
e982f31800 | ||
|
53077f15d8 | ||
|
e4c5ce4cc3 | ||
|
493ad0cad4 | ||
|
abef8d4860 | ||
|
2324b96a32 | ||
|
c9a313a125 | ||
|
acd801000c | ||
|
6c3d1fba78 | ||
|
7e9796568d | ||
|
0508526658 | ||
|
d818f3fcd4 | ||
|
bb8b24da47 | ||
|
633a93f418 | ||
|
a7efe10ef8 | ||
|
773c16076b | ||
|
6dddf0447e | ||
|
2d7df8e66a | ||
|
b9f9980bb4 | ||
|
32a5729d18 | ||
|
b0a5e8764c | ||
|
5e07a31d2b | ||
|
8ea1157d38 | ||
|
21b061b0dd | ||
|
2d14217cd7 | ||
|
c607d51890 | ||
|
793f843b08 | ||
|
18f321df94 | ||
|
953c7ba6be | ||
|
68cc1412e5 | ||
|
30a56acc7d | ||
|
3656c9f94c | ||
|
6ed58cfd50 | ||
|
7a2537866b | ||
|
35209f098b | ||
|
17a061b8da | ||
|
6e178aede2 | ||
|
e6d5a3dce2 | ||
|
745c348ff8 | ||
|
72a9c53262 | ||
|
e02ff7c064 | ||
|
3741e6906e | ||
|
4673318028 | ||
|
4265c0e5b0 | ||
|
e6f711a94a | ||
|
98a500a434 | ||
|
59a9eda5ae | ||
|
4129b70b96 | ||
|
a0e63b8a07 | ||
|
e201c4dc92 | ||
|
3d8b00600e | ||
|
02c615cc34 | ||
|
3c1f72671a | ||
|
e96c485afa | ||
|
8854279e2a | ||
|
b40aeb7ab4 | ||
|
b3e5c31b08 | ||
|
f4c4ab6ab1 | ||
|
ee4ba18d5e | ||
|
8dce94c47a | ||
|
212f8a6c7b | ||
|
938598032c | ||
|
e3a3a66370 | ||
|
f415a8bc84 | ||
|
ba9193fc81 | ||
|
679b515170 | ||
|
2f2ff773ae | ||
|
c261d890ad | ||
|
c25a5606d1 | ||
|
5071206d60 | ||
|
567f6373c8 | ||
|
a203b8cc28 | ||
|
50a5deb8e3 | ||
|
50056d804b | ||
|
d7df491656 | ||
|
3ae14630a3 | ||
|
6488dde4fd | ||
|
76ff53193a | ||
|
a829929a41 | ||
|
3154d3f258 | ||
|
86e94d0e0f | ||
|
01723fa02f | ||
|
5147ea96e0 | ||
|
e455843bbb | ||
|
def62a9dda | ||
|
d028667fc6 | ||
|
5bb5213486 | ||
|
91723bfcfc | ||
|
da1348edb4 | ||
|
670948586a | ||
|
73cd739e19 | ||
|
d249e77bcb | ||
|
a334316d5e | ||
|
b69328eb74 | ||
|
42d8142cc7 | ||
|
b2a0105234 | ||
|
5c99f7a670 | ||
|
acbdd5c8f2 |
206
NEWS
206
NEWS
@@ -1,3 +1,209 @@
|
||||
Overview of Changes in GTK+ 3.89.2
|
||||
==================================
|
||||
|
||||
* gtk4-icon-browser works again
|
||||
|
||||
* gtk-encode symbolic works for icons with names containing dots
|
||||
|
||||
* GtkFlowBox and GtkListBox have been changed to no longer emit
|
||||
the ::selected-children-changed signal during destruction
|
||||
|
||||
* gtk-demo has gained an example for using PangoTabArray with GtkTextView
|
||||
|
||||
* We now support CSS border-spacing in GtkGrid, GtkBox and in gadgets
|
||||
|
||||
* The rendering in GDK and GSK has been further refactored. We now
|
||||
only draw toplevel windows, and we always redraw the whole window.
|
||||
|
||||
* A Vulkan implementation has been added in parallel to the GL one
|
||||
|
||||
* Dropped APIs:
|
||||
gdk_window_process_updates
|
||||
gdk_window_process_all_updates
|
||||
gdk_window_reparent
|
||||
support for native and foreign subwindows
|
||||
gsk_render_node_{append/prepend/insert} variations
|
||||
gsk_render_node_make_immutable
|
||||
gtk_cairo_should_draw_window
|
||||
gtk_snapshot_append
|
||||
GtkJunctionSides
|
||||
|
||||
* New APIs:
|
||||
gdk_rgba_is_clear
|
||||
gdk_rgba_is_opaque
|
||||
GdkDrawContext: A base class for vulkan and gl contexts
|
||||
Render node subclasses
|
||||
GskRoundedRect
|
||||
gtk_container_snapshot_child
|
||||
|
||||
* The GSK_USE_SOFTWARE environment variable has been generalized as GSK_RENDERER.
|
||||
Use GSK_RENDERER=help to learn about possible values. Other environment variables
|
||||
that have gained new possible values in clude GSK_DEBUG=vulkan and GTK_DEBUG=snapshot.
|
||||
|
||||
* Bugs fixed
|
||||
749012 GtkStack: Don't emit notify::visible-child during destruction
|
||||
771242 opening menu for certain types of GtkComboBox causes Gdk-CRITICAL assertion...
|
||||
772371 Take advantage of Unicode
|
||||
773299 Ensure GTK+-4.x builds and works on Windows (MSVC in particular)
|
||||
774265 No tilt for wintab devices
|
||||
774534 input shape and opaque region not applied without begin_paint()/end_paint()
|
||||
774686 GtkMenu does not unref all GtkCheckMenuItem it creates
|
||||
774695 GtkProgressbar needs full and empty classes
|
||||
774743 GtkNotebook does not unref all GtkBuiltinIcon it creates
|
||||
774760 inspector: ensure controller is a GtkGesture
|
||||
774784 Failed to get desktop session proxy is not an error!
|
||||
774790 GtkTextHandle does not unref all GtkAdjustment it references
|
||||
774893 Application font sizes scaling gets clamped to 1.00 when starting GtkInspector
|
||||
774915 Destroying the parent of a subsurface causes _gdk_window_destroy_hierarchy: ...
|
||||
774917 child subsurfaces need to be placed relative to their parent
|
||||
774939 GtkLabelAccessible: Initialize link before setting parent
|
||||
775038 Build: Add wayland to GSKs dependencies
|
||||
775212 GtkScaleButton does not unref all GtkAdjustment it references
|
||||
775316 gtk_drag_source_set_icon_pixbuf references the pixbuf received once too much
|
||||
775319 gdk_window_get_toplevel() fails to return the toplevel of a child subsurface
|
||||
775410 gsk/Makefile.am runs g-ir-scanner before libgsk-4.la is linked
|
||||
775525 gtk_flow_box_get_child_at_index shouldn't crash with an invalid index
|
||||
775651 GdkX11-4.0.gir, GdkWin32-4.0.gir, and Gsk-4.0.gir are generated before Gdk-4...
|
||||
776132 Mention the difference between gdk_window_create_similar_image_surface and c...
|
||||
776187 flowbox: Add gtk_flow_box_get_child_at_pos to gtk3
|
||||
776306 flowbox: Sometimes emits child-activated during rubberband selection
|
||||
|
||||
* Translation updates
|
||||
Czech
|
||||
German
|
||||
Hungarian
|
||||
Italian
|
||||
Kazakh
|
||||
Russian
|
||||
Spanish
|
||||
|
||||
|
||||
Overview of Changes in GTK+ 3.89.1
|
||||
==================================
|
||||
|
||||
This release marks the first snapshot of development leading to GTK+ 4,
|
||||
it is unstable and expected to change drastically.
|
||||
|
||||
Do not use it in production.
|
||||
|
||||
GTK+ 3.89 is parallel-installable with the stable GTK+ 3.22.x releases.
|
||||
|
||||
The API documentation contains an initial migration guide for porting
|
||||
from GTK+ 3 to GTK+ 4.
|
||||
|
||||
Detailed changes:
|
||||
|
||||
* GSK has been integrated. Widgets are now rendered into
|
||||
GskRenderNodes, which then get drawn using GL
|
||||
|
||||
* GTK+ now installs a single shared library, libgtk.so, which includes
|
||||
GDK and GSK as well
|
||||
|
||||
* All installed binaries now use a consistent gtk4- prefix to avoid conflicts
|
||||
|
||||
* Dropped APIs:
|
||||
- all APIs that have been deprecated in GTK+ 3
|
||||
- (almost) all widget style properties
|
||||
- offscreen windows
|
||||
- -gtk-gradient in CSS
|
||||
- gdk_pixbuf_get_from_window and gdk_cairo_set_source_window
|
||||
|
||||
* Changed APIs:
|
||||
- GtkCssProvider load functions lost their GError argument
|
||||
|
||||
* New APIs:
|
||||
- GMenu items can now have a text-direction attribute
|
||||
- GtkShortcutsShortcut supports single-finger swipe gestures
|
||||
- gdk_display_is_rgba and gdk_display_is_composited
|
||||
- New GtkButton API to construct image buttons:
|
||||
gtk_button_new_from_icon_name
|
||||
gtk_button_set_icon_name
|
||||
- New GdkWindow constructors replacing gdk_window_new:
|
||||
gdk_window_new_toplevel
|
||||
gdk_window_new_popup
|
||||
gdk_window_new_temp
|
||||
gdk_window_new_child
|
||||
gdk_window_new_input
|
||||
gdk_wayland_window_new_subsurface
|
||||
- gtk_widget_measure replaces gtk_widget_get_preferred_...
|
||||
- gtk_widget_snapshot replaces gtk_widget_render
|
||||
- gtk_drawing_area_set_draw_func replaces the ::draw signal
|
||||
|
||||
* New examples in gtk4-demo:
|
||||
- Gestures
|
||||
- Fishbowl
|
||||
|
||||
* GtkInspector now has a frame recorder which shows detailed information
|
||||
about the widget to render node conversion
|
||||
|
||||
* Hi-DPI is now supported with the Windows backend
|
||||
|
||||
* gtk-builder-tool can now replace the input file
|
||||
|
||||
* Bugs fixed:
|
||||
756570 gtkplacesview no longer provides guidance on address formats
|
||||
767713 Fullscreen in wayland is buggy
|
||||
768531 wayland: Startup notification doesn't work on some apps (eg. gnome-terminal)...
|
||||
771205 Buttons with circular style class have a suddenly clipped shadow at the bottom
|
||||
771320 [Wayland] Maps widget is displayed at wrong position inside gnome-contacts
|
||||
771694 GtkSourceView completion popup window not shown, no grabbed seat found
|
||||
772075 GTK+ uses a lot more CPU under Wayland than under X11
|
||||
772345 placesviewrow: busy_spinner when visible offsets the rest of the widgets on the row
|
||||
772348 placesviewrow: busy_spinner when visible offsets the rest of the widgets on the row
|
||||
772683 Usage of FALSE instead of gint in glarea demo
|
||||
772695 Show the keyboard shortcuts from left to right even in RTL
|
||||
772770 [GtkShortcutsWindow] Support for single-finger swipe gestures
|
||||
772859 Fix memory leaks in implementations of common widgets
|
||||
772922 GtkMenu: Try using gdk_window_move_to_rect() more often
|
||||
772926 shortcutswindow: working version of set_section_name()
|
||||
773007 GtkFilechooser gives completion for non-matching extensions
|
||||
773082 overlay: Document availability of properties
|
||||
773113 tests: fix clipboard test by loading correct icon
|
||||
773180 Don't second-guess whether our GDK GL context is GLES
|
||||
773246 Typo in css color definitions documentation
|
||||
773299 Ensure GTK+-4.x builds and works on Windows (MSVC in particular)
|
||||
773474 Color chooser dialog opened with show-editor=TRUE has black header bar
|
||||
773587 recent-manager: Add a limit to the list's size
|
||||
773799 GtkLevelBar doesn't update blocks on discrete mode
|
||||
773857 gdkwindow-x11: Add support for gdk_window_fullscreen_on_monitor
|
||||
773885 pop down GtkPopover on pressing escape
|
||||
773903 Gtk+4: gtk.h and gtktextiter.h include private gtktextattributes.h
|
||||
773916 GtkComposeTable caches broken: using a same ~/.XCompose does not work twice in a row
|
||||
773954 gtkstylecontext: Clarify memory allocation behaviour of getters
|
||||
773979 GdkGLContext does not chain finalize handler
|
||||
774046 GtkSpinButton does not always unref priv->{up,down}_button
|
||||
774066 GtkHeaderBar does not unref all GtkBox and GtkSeparator it creates
|
||||
774097 GtkPrintOperation should not truncate job names
|
||||
774114 Window shadows are repainted even if only the contents of the window change
|
||||
774185 GtkPlacesSidebar does not unref itsel as many times as it references
|
||||
774347 Fails to build: unknown type name GdkColor
|
||||
774352 GtkAppChooserWidget does not unref all GAppInfo it references
|
||||
774475 wayland: gtk+ prevents using subsurfaces if the parent is not root
|
||||
774476 surfaces with no outputs get scale factor reset
|
||||
774490 Deprecated example for modify color or font
|
||||
774609 small fix to foreign drawing spinbutton demo
|
||||
774614 Wrong #include in Print docs
|
||||
774634 GtkPlacesView does not unref all GDaemonFileEnumerator it references
|
||||
774695 GtkProgressbar needs full and empty classes
|
||||
774699 wintab: list iteration regression causes odd-indexed devices to be ignored during...
|
||||
|
||||
* Translation updates
|
||||
Brazilian Portuguese
|
||||
Catalan
|
||||
Czech
|
||||
Danish
|
||||
French
|
||||
German
|
||||
Greek
|
||||
Hungarian
|
||||
Kazakh
|
||||
Lithuanian
|
||||
Polish
|
||||
|
||||
|
||||
=======================================================================
|
||||
|
||||
|
||||
Overview of Changes in GTK+ 3.22.1
|
||||
==================================
|
||||
|
||||
|
@@ -128,6 +128,8 @@ $(top_builddir)/build/win32/vs12/$(1).vcxproj: Makefile
|
||||
|
||||
$(CPP) -P - <$(top_srcdir)/build/win32/vs12/$(1).vcxprojin >$(top_builddir)/build/win32/vs12/$(1).vcxproj
|
||||
$(CPP) -P - <$(top_srcdir)/build/win32/vs12/$(1).vcxproj.filtersin >$(top_builddir)/build/win32/vs12/$(1).vcxproj.filters
|
||||
$(RM) $(1).vs12.sourcefiles
|
||||
$(RM) $(1).vs12.sourcefiles.filters
|
||||
|
||||
$(top_builddir)/build/win32/vs12/$(1).vs12.headers: Makefile
|
||||
-$(RM) $(top_builddir)/build/win32/vs12/$(1).vs12.headers
|
||||
|
@@ -28,10 +28,10 @@ def main(argv):
|
||||
base_pc.setup(argv, gdk_parser)
|
||||
|
||||
atk_min_ver = '2.15.1'
|
||||
cairo_min_ver = '1.14.0'
|
||||
cairo_min_ver = '1.15.2'
|
||||
gdk_pixbuf_min_ver = '2.30.0'
|
||||
gdk_win32_sys_libs = '-lgdi32 -limm32 -lshell32 -lole32 -Wl,-luuid -lwinmm -ldwmapi'
|
||||
glib_min_ver = '2.45.8'
|
||||
glib_min_ver = '2.49.4'
|
||||
epoxy_min_ver = '1.0'
|
||||
graphene_min_ver = '1.2'
|
||||
|
||||
@@ -54,46 +54,29 @@ def main(argv):
|
||||
'cairo >= ' + cairo_min_ver + ' ' + \
|
||||
'cairo-gobject >= ' + cairo_min_ver
|
||||
|
||||
gdk_pc_replace_items = {'@GDK_PACKAGES@': gio_package + ' ' + \
|
||||
'pangowin32 pangocairo' + ' ' + \
|
||||
pkg_required_packages,
|
||||
'@GDK_PRIVATE_PACKAGES@': gio_package + ' ' + cairo_backends,
|
||||
'@GDK_EXTRA_LIBS@': gdk_win32_sys_libs + broadway_extra_libs,
|
||||
'@GDK_EXTRA_CFLAGS@': '',
|
||||
'gdk-4': 'gdk-4.0'}
|
||||
|
||||
gsk_pc_replace_items = {'@GSK_PACKAGES@': pkg_required_packages, + ' ' + \
|
||||
'graphene-1.0 >= ' + graphene_min_ver
|
||||
'@GSK_PRIVATE_PACKAGES@': 'epoxy >= ' + epoxy_min_ver,
|
||||
'@GSK_EXTRA_LIBS@': '',
|
||||
'@GSK_EXTRA_CFLAGS@': '',
|
||||
'gsk-4': 'gsk-4.0'}
|
||||
|
||||
gtk_pc_replace_items = {'@host@': gdk_args.host,
|
||||
'@GTK_BINARY_VERSION@': '4.0.0',
|
||||
'@GDK_PACKAGES@': gio_package + ' ' + \
|
||||
'pangowin32 pangocairo' + ' ' + \
|
||||
pkg_required_packages,
|
||||
'@GSK_PACKAGES@': pkg_required_packages + ' ' + \
|
||||
'graphene-1.0 >= ' + graphene_min_ver,
|
||||
'@GTK_PACKAGES@': 'atk >= ' + atk_min_ver + ' ' + \
|
||||
pkg_required_packages + ' ' + \
|
||||
gio_package,
|
||||
'@GDK_PRIVATE_PACKAGES@': gio_package + ' ' + cairo_backends,
|
||||
'@GSK_PRIVATE_PACKAGES@': 'epoxy >= ' + epoxy_min_ver,
|
||||
'@GTK_PRIVATE_PACKAGES@': 'atk',
|
||||
'@GDK_EXTRA_CFLAGS@': '',
|
||||
'@GSK_EXTRA_CFLAGS@': '',
|
||||
'@GTK_EXTRA_CFLAGS@': '',
|
||||
'@GTK_EXTRA_LIBS@': '',
|
||||
'@GTK_EXTRA_CFLAGS@': '',
|
||||
'gtk-4': 'gtk-4.0'}
|
||||
'@GDK_EXTRA_LIBS@': gdk_win32_sys_libs + broadway_extra_libs,
|
||||
'@GSK_EXTRA_LIBS@': '',
|
||||
'@GTK_EXTRA_LIBS@': ''}
|
||||
|
||||
pkg_replace_items.update(base_pc.base_replace_items)
|
||||
gdk_pc_replace_items.update(pkg_replace_items)
|
||||
gtk_pc_replace_items.update(pkg_replace_items)
|
||||
|
||||
# Generate gdk-4.0.pc
|
||||
replace_multi(base_pc.top_srcdir + '/gdk-4.0.pc.in',
|
||||
base_pc.srcdir + '/gdk-4.0.pc',
|
||||
gdk_pc_replace_items)
|
||||
|
||||
# Generate gsk-4.0.pc
|
||||
replace_multi(base_pc.top_srcdir + '/gsk-4.0.pc.in',
|
||||
base_pc.srcdir + '/gsk-4.0.pc',
|
||||
gsk_pc_replace_items)
|
||||
|
||||
# Generate gtk+-4.0.pc
|
||||
replace_multi(base_pc.top_srcdir + '/gtk+-4.0.pc.in',
|
||||
base_pc.srcdir + '/gtk+-4.0.pc',
|
||||
|
@@ -5,14 +5,14 @@ GENERATED_ITEMS = \
|
||||
gdk4-win32.vcxproj.filters \
|
||||
gdk4-broadway.vcxproj \
|
||||
gdk4-broadway.vcxproj.filters \
|
||||
broadwayd.vcxproj \
|
||||
broadwayd.vcxproj.filters \
|
||||
gdk-4.vcxproj \
|
||||
gdk-4.vcxproj.filters \
|
||||
gsk-4.vcxproj \
|
||||
gsk-4.vcxproj.filters \
|
||||
gtk-4.vcxproj \
|
||||
gtk-4.vcxproj.filters \
|
||||
gtk4-broadwayd.vcxproj \
|
||||
gtk4-broadwayd.vcxproj.filters \
|
||||
gtk4-demo.vcxproj \
|
||||
gtk4-demo.vcxproj.filters \
|
||||
gtk4-demo-application.vcxproj \
|
||||
@@ -38,14 +38,14 @@ EXTRA_DIST += \
|
||||
gdk4-win32.vcxproj.filtersin \
|
||||
gdk4-broadway.vcxprojin \
|
||||
gdk4-broadway.vcxproj.filtersin \
|
||||
broadwayd.vcxprojin \
|
||||
broadwayd.vcxproj.filtersin \
|
||||
gdk-4.vcxprojin \
|
||||
gdk-4.vcxproj.filtersin \
|
||||
gsk-4.vcxprojin \
|
||||
gsk-4.vcxproj.filtersin \
|
||||
gtk-4.vcxprojin \
|
||||
gtk-4.vcxproj.filtersin \
|
||||
gtk4-broadwayd.vcxprojin \
|
||||
gtk4-broadwayd.vcxproj.filtersin \
|
||||
gtk4-builder-tool.vcxproj \
|
||||
gtk4-builder-tool.vcxproj.filters \
|
||||
gtk4-encode-symbolic-svg.vcxproj \
|
||||
@@ -63,7 +63,7 @@ EXTRA_DIST += \
|
||||
gtk4-install.vcxproj \
|
||||
gtk4-install.vcxproj.filters \
|
||||
gtk4-build-defines.props \
|
||||
gtk4-copy-gdk-broadway.props \
|
||||
gtk4-copy-gtk-broadway.props \
|
||||
gtk4-gen-srcs.props \
|
||||
gtk4-ignore-broadway.props \
|
||||
gtk4-install.propsin \
|
||||
|
@@ -14,9 +14,6 @@
|
||||
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ResourceCompile Include="..\..\..\gdk\win32\rc\gdk.rc"><Filter>Resource Files</Filter></ResourceCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
#include "gdk-4.vs12.sourcefiles.filters"
|
||||
<ClCompile Include="..\..\..\gdk\gdkkeynames.c"><Filter>Source Files</Filter></ClCompile>
|
||||
|
@@ -41,46 +41,46 @@
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<PlatformToolset>v120</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<PlatformToolset>v120</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<PlatformToolset>v120</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<PlatformToolset>v120</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|Win32'" Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<PlatformToolset>v120</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|Win32'" Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<PlatformToolset>v120</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|x64'" Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<PlatformToolset>v120</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|x64'" Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<PlatformToolset>v120</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
@@ -89,35 +89,35 @@
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="gtk4-ignore-broadway.props" />
|
||||
<Import Project="gtk4-build-defines.props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="gtk4-ignore-broadway.props" />
|
||||
<Import Project="gtk4-build-defines.props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="gtk4-ignore-broadway.props" />
|
||||
<Import Project="gtk4-build-defines.props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="gtk4-ignore-broadway.props" />
|
||||
<Import Project="gtk4-build-defines.props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="gtk4-copy-gdk-broadway.props" />
|
||||
<Import Project="gtk4-build-defines.props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="gtk4-copy-gdk-broadway.props" />
|
||||
<Import Project="gtk4-build-defines.props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|x64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="gtk4-copy-gdk-broadway.props" />
|
||||
<Import Project="gtk4-build-defines.props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|x64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="gtk4-copy-gdk-broadway.props" />
|
||||
<Import Project="gtk4-build-defines.props" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup>
|
||||
@@ -143,15 +143,6 @@
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>$(GdkAdditionalLibs);%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<OutputFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll</OutputFile>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<ProgramDatabaseFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).pdb</ProgramDatabaseFile>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<ImportLibrary>$(TargetDir)$(ProjectName).0.lib</ImportLibrary>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|Win32'">
|
||||
<ClCompile>
|
||||
@@ -166,15 +157,6 @@
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>$(GdkAdditionalLibs);$(GdkBroadwayAdditionalLibs);%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<OutputFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll</OutputFile>
|
||||
<ImportLibrary>$(TargetDir)$(ProjectName).0.lib</ImportLibrary>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<ProgramDatabaseFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).pdb</ProgramDatabaseFile>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<ClCompile>
|
||||
@@ -186,17 +168,6 @@
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>$(GdkAdditionalLibs);%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<OutputFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll</OutputFile>
|
||||
<ImportLibrary>$(TargetDir)$(ProjectName).0.lib</ImportLibrary>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<ProgramDatabaseFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).pdb</ProgramDatabaseFile>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|Win32'">
|
||||
<ClCompile>
|
||||
@@ -208,17 +179,6 @@
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>$(GdkAdditionalLibs);$(GdkBroadwayAdditionalLibs);%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<OutputFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll</OutputFile>
|
||||
<ImportLibrary>$(TargetDir)$(ProjectName).0.lib</ImportLibrary>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<ProgramDatabaseFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).pdb</ProgramDatabaseFile>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<ClCompile>
|
||||
@@ -233,15 +193,6 @@
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>$(GdkAdditionalLibs);%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<OutputFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll</OutputFile>
|
||||
<ImportLibrary>$(TargetDir)$(ProjectName).0.lib</ImportLibrary>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<ProgramDatabaseFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).pdb</ProgramDatabaseFile>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<TargetMachine>MachineX64</TargetMachine>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|x64'">
|
||||
<ClCompile>
|
||||
@@ -256,15 +207,6 @@
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>$(GdkAdditionalLibs);$(GdkBroadwayAdditionalLibs);%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<OutputFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll</OutputFile>
|
||||
<ImportLibrary>$(TargetDir)$(ProjectName).0.lib</ImportLibrary>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<ProgramDatabaseFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).pdb</ProgramDatabaseFile>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<TargetMachine>MachineX64</TargetMachine>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<ClCompile>
|
||||
@@ -276,17 +218,6 @@
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>$(GdkAdditionalLibs);%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<OutputFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll</OutputFile>
|
||||
<ImportLibrary>$(TargetDir)$(ProjectName).0.lib</ImportLibrary>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<ProgramDatabaseFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).pdb</ProgramDatabaseFile>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<TargetMachine>MachineX64</TargetMachine>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|x64'">
|
||||
<ClCompile>
|
||||
@@ -298,35 +229,11 @@
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>$(GdkAdditionalLibs);$(GdkBroadwayAdditionalLibs);%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<OutputFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll</OutputFile>
|
||||
<ImportLibrary>$(TargetDir)$(ProjectName).0.lib</ImportLibrary>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<ProgramDatabaseFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).pdb</ProgramDatabaseFile>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<TargetMachine>MachineX64</TargetMachine>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ResourceCompile Include="..\..\..\gdk\win32\rc\gdk.rc" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
#include "gdk-4.vs12.sourcefiles"
|
||||
<ClCompile Include="..\..\..\gdk\gdkkeynames.c" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="gdk4-broadway.vcxproj">
|
||||
<Project>{1df4c475-4472-4ee4-ac2b-3ab5a4c1a453}</Project>
|
||||
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="gdk4-win32.vcxproj">
|
||||
<Project>{aba7685a-7cbb-4626-b5e5-6eeea5b489ef}</Project>
|
||||
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
|
@@ -25,24 +25,24 @@
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<PlatformToolset>v120</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<PlatformToolset>v120</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<PlatformToolset>v120</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<PlatformToolset>v120</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
@@ -85,15 +85,6 @@
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<OutputFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll</OutputFile>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<ProgramDatabaseFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).pdb</ProgramDatabaseFile>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<ImportLibrary>$(TargetDir)$(ProjectName).0.lib</ImportLibrary>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<ClCompile>
|
||||
@@ -105,17 +96,6 @@
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<OutputFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll</OutputFile>
|
||||
<ImportLibrary>$(TargetDir)$(ProjectName).0.lib</ImportLibrary>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<ProgramDatabaseFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).pdb</ProgramDatabaseFile>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<ClCompile>
|
||||
@@ -130,15 +110,6 @@
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<OutputFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll</OutputFile>
|
||||
<ImportLibrary>$(TargetDir)$(ProjectName).0.lib</ImportLibrary>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<ProgramDatabaseFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).pdb</ProgramDatabaseFile>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<TargetMachine>MachineX64</TargetMachine>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<ClCompile>
|
||||
@@ -150,17 +121,6 @@
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<OutputFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll</OutputFile>
|
||||
<ImportLibrary>$(TargetDir)$(ProjectName).0.lib</ImportLibrary>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<ProgramDatabaseFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).pdb</ProgramDatabaseFile>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<TargetMachine>MachineX64</TargetMachine>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<CustomBuild Include="..\..\..\gsk\gskenumtypes.c.template">
|
||||
@@ -195,12 +155,6 @@
|
||||
<ItemGroup>
|
||||
#include "gsk-4.vs12.sourcefiles"
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="gdk-4.vcxproj">
|
||||
<Project>{5ae8f5ce-9103-4951-aede-ea2f3b573be8}</Project>
|
||||
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
|
@@ -6,7 +6,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gdk4-win32", "gdk4-win32.vc
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gdk4-broadway", "gdk4-broadway.vcxproj", "{1DF4C475-4472-4EE4-AC2B-3AB5A4C1A453}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "broadwayd", "broadwayd.vcxproj", "{E9687D21-E214-4A0C-9EB4-8B38EBB783E5}"
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gtk4-broadwayd", "gtk4-broadwayd.vcxproj", "{E9687D21-E214-4A0C-9EB4-8B38EBB783E5}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gdk-4", "gdk-4.vcxproj", "{5AE8F5CE-9103-4951-AEDE-EA2F3B573BE8}"
|
||||
EndProject
|
||||
@@ -138,14 +138,14 @@ Global
|
||||
{95A4B53D-2773-4406-A2C1-8FD2840BBAD8}.Release|Win32.Build.0 = Release|Win32
|
||||
{95A4B53D-2773-4406-A2C1-8FD2840BBAD8}.Release|x64.ActiveCfg = Release|x64
|
||||
{95A4B53D-2773-4406-A2C1-8FD2840BBAD8}.Release|x64.Build.0 = Release|x64
|
||||
{95A4B53D-2773-4406-A2C1-8FD2840BBAD8}.Debug_Broadway|Win32.ActiveCfg = Debug|Win32
|
||||
{95A4B53D-2773-4406-A2C1-8FD2840BBAD8}.Debug_Broadway|Win32.Build.0 = Debug|Win32
|
||||
{95A4B53D-2773-4406-A2C1-8FD2840BBAD8}.Debug_Broadway|x64.ActiveCfg = Debug|x64
|
||||
{95A4B53D-2773-4406-A2C1-8FD2840BBAD8}.Debug_Broadway|x64.Build.0 = Debug|x64
|
||||
{95A4B53D-2773-4406-A2C1-8FD2840BBAD8}.Release_Broadway|Win32.ActiveCfg = Release|Win32
|
||||
{95A4B53D-2773-4406-A2C1-8FD2840BBAD8}.Release_Broadway|Win32.Build.0 = Release|Win32
|
||||
{95A4B53D-2773-4406-A2C1-8FD2840BBAD8}.Release_Broadway|x64.ActiveCfg = Release|x64
|
||||
{95A4B53D-2773-4406-A2C1-8FD2840BBAD8}.Release_Broadway|x64.Build.0 = Release|x64
|
||||
{95A4B53D-2773-4406-A2C1-8FD2840BBAD8}.Debug_Broadway|Win32.ActiveCfg = Debug_Broadway|Win32
|
||||
{95A4B53D-2773-4406-A2C1-8FD2840BBAD8}.Debug_Broadway|Win32.Build.0 = Debug_Broadway|Win32
|
||||
{95A4B53D-2773-4406-A2C1-8FD2840BBAD8}.Debug_Broadway|x64.ActiveCfg = Debug_Broadway|x64
|
||||
{95A4B53D-2773-4406-A2C1-8FD2840BBAD8}.Debug_Broadway|x64.Build.0 = Debug_Broadway|x64
|
||||
{95A4B53D-2773-4406-A2C1-8FD2840BBAD8}.Release_Broadway|Win32.ActiveCfg = Release_Broadway|Win32
|
||||
{95A4B53D-2773-4406-A2C1-8FD2840BBAD8}.Release_Broadway|Win32.Build.0 = Release_Broadway|Win32
|
||||
{95A4B53D-2773-4406-A2C1-8FD2840BBAD8}.Release_Broadway|x64.ActiveCfg = Release_Broadway|x64
|
||||
{95A4B53D-2773-4406-A2C1-8FD2840BBAD8}.Release_Broadway|x64.Build.0 = Release_Broadway|x64
|
||||
{BDAE6DE2-6BCC-4107-94F0-DA12214A02DE}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{BDAE6DE2-6BCC-4107-94F0-DA12214A02DE}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{BDAE6DE2-6BCC-4107-94F0-DA12214A02DE}.Debug|x64.ActiveCfg = Debug|x64
|
||||
|
@@ -5,20 +5,36 @@
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug_Broadway|Win32">
|
||||
<Configuration>Debug_Broadway</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug_Broadway|x64">
|
||||
<Configuration>Debug_Broadway</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release_Broadway|Win32">
|
||||
<Configuration>Release_Broadway</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release_Broadway|x64">
|
||||
<Configuration>Release_Broadway</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{95A4B53D-2773-4406-A2C1-8FD2840BBAD8}</ProjectGuid>
|
||||
@@ -26,17 +42,12 @@
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<PlatformToolset>v120</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<PlatformToolset>v120</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|Win32'" Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<PlatformToolset>v120</PlatformToolset>
|
||||
@@ -46,31 +57,78 @@
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<PlatformToolset>v120</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|x64'" Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<PlatformToolset>v120</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<PlatformToolset>v120</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|Win32'" Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<PlatformToolset>v120</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<PlatformToolset>v120</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|x64'" Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<PlatformToolset>v120</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="gtk4-gen-srcs.props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="gtk4-gen-srcs.props" />
|
||||
<Import Project="gtk4-ignore-broadway.props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="gtk4-gen-srcs.props" />
|
||||
<Import Project="gtk4-copy-gtk-broadway.props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="gtk4-gen-srcs.props" />
|
||||
<Import Project="gtk4-ignore-broadway.props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|x64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="gtk4-copy-gtk-broadway.props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="gtk4-ignore-broadway.props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="gtk4-copy-gtk-broadway.props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="gtk4-ignore-broadway.props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|x64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="gtk4-copy-gtk-broadway.props" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup>
|
||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
|
||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|Win32'">true</LinkIncremental>
|
||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
|
||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|Win32'">false</LinkIncremental>
|
||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>
|
||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|x64'">true</LinkIncremental>
|
||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
|
||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|x64'">false</LinkIncremental>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
@@ -88,7 +146,30 @@
|
||||
<Link>
|
||||
<AdditionalDependencies>$(GtkAdditionalLibs);%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<OutputFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll</OutputFile>
|
||||
<ImportLibrary>$(TargetDir)$(ProjectName).0.lib</ImportLibrary>
|
||||
<ImportLibrary>$(TargetDir)$(ProjectName).lib</ImportLibrary>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<ProgramDatabaseFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).pdb</ProgramDatabaseFile>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|Win32'">
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<AdditionalIncludeDirectories>..\..\..\gtk;..\..\..\gdk;..\..\..\gdk\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>_DEBUG;G_ENABLE_DEBUG;$(GtkDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<MinimalRebuild>true</MinimalRebuild>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||
<PrecompiledHeader>
|
||||
</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>$(GtkAdditionalLibs);%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<OutputFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll</OutputFile>
|
||||
<ImportLibrary>$(TargetDir)$(ProjectName).lib</ImportLibrary>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<ProgramDatabaseFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).pdb</ProgramDatabaseFile>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
@@ -108,7 +189,29 @@
|
||||
<Link>
|
||||
<AdditionalDependencies>$(GtkAdditionalLibs);%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<OutputFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll</OutputFile>
|
||||
<ImportLibrary>$(TargetDir)$(ProjectName).0.lib</ImportLibrary>
|
||||
<ImportLibrary>$(TargetDir)$(ProjectName).lib</ImportLibrary>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<ProgramDatabaseFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).pdb</ProgramDatabaseFile>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|Win32'">
|
||||
<ClCompile>
|
||||
<AdditionalIncludeDirectories>..\..\..\gtk;..\..\..\gdk;..\..\..\gdk\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>$(GtkDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||
<PrecompiledHeader>
|
||||
</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>$(GtkAdditionalLibs);%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<OutputFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll</OutputFile>
|
||||
<ImportLibrary>$(TargetDir)$(ProjectName).lib</ImportLibrary>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<ProgramDatabaseFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).pdb</ProgramDatabaseFile>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
@@ -133,7 +236,30 @@
|
||||
<Link>
|
||||
<AdditionalDependencies>$(GtkAdditionalLibs);%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<OutputFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll</OutputFile>
|
||||
<ImportLibrary>$(TargetDir)$(ProjectName).0.lib</ImportLibrary>
|
||||
<ImportLibrary>$(TargetDir)$(ProjectName).lib</ImportLibrary>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<ProgramDatabaseFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).pdb</ProgramDatabaseFile>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<TargetMachine>MachineX64</TargetMachine>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|x64'">
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<AdditionalIncludeDirectories>..\..\..\gtk;..\..\..\gdk;..\..\..\gdk\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>_DEBUG;G_ENABLE_DEBUG;$(GtkDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<MinimalRebuild>true</MinimalRebuild>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||
<PrecompiledHeader>
|
||||
</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>$(GtkAdditionalLibs);%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<OutputFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll</OutputFile>
|
||||
<ImportLibrary>$(TargetDir)$(ProjectName).lib</ImportLibrary>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<ProgramDatabaseFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).pdb</ProgramDatabaseFile>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
@@ -153,7 +279,29 @@
|
||||
<Link>
|
||||
<AdditionalDependencies>$(GtkAdditionalLibs);%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<OutputFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll</OutputFile>
|
||||
<ImportLibrary>$(TargetDir)$(ProjectName).0.lib</ImportLibrary>
|
||||
<ImportLibrary>$(TargetDir)$(ProjectName).lib</ImportLibrary>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<ProgramDatabaseFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).pdb</ProgramDatabaseFile>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<TargetMachine>MachineX64</TargetMachine>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|x64'">
|
||||
<ClCompile>
|
||||
<AdditionalIncludeDirectories>..\..\..\gtk;..\..\..\gdk;..\..\..\gdk\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>$(GtkDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||
<PrecompiledHeader>
|
||||
</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>$(GtkAdditionalLibs);%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<OutputFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll</OutputFile>
|
||||
<ImportLibrary>$(TargetDir)$(ProjectName).lib</ImportLibrary>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<ProgramDatabaseFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).pdb</ProgramDatabaseFile>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
@@ -176,6 +324,18 @@
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Generating GTK+ DBus Sources...</Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(GenerateGtkDbusBuiltSourcesX64)</Command>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">..\..\..\gtk\gtkdbusgenerated.c;..\..\..\gtk\gtkdbusgenerated.h;%(Outputs)</Outputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|Win32'">Generating GTK+ DBus Sources...</Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|Win32'">$(GenerateGtkDbusBuiltSources)</Command>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|Win32'">..\..\..\gtk\gtkdbusgenerated.c;..\..\..\gtk\gtkdbusgenerated.h;%(Outputs)</Outputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|x64'">Generating GTK+ DBus Sources...</Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|x64'">$(GenerateGtkDbusBuiltSourcesX64)</Command>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|x64'">..\..\..\gtk\gtkdbusgenerated.c;..\..\..\gtk\gtkdbusgenerated.h;%(Outputs)</Outputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|Win32'">Generating GTK+ DBus Sources...</Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|Win32'">$(GenerateGtkDbusBuiltSources)</Command>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|Win32'">..\..\..\gtk\gtkdbusgenerated.c;..\..\..\gtk\gtkdbusgenerated.h;%(Outputs)</Outputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|x64'">Generating GTK+ DBus Sources...</Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|x64'">$(GenerateGtkDbusBuiltSourcesX64)</Command>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|x64'">..\..\..\gtk\gtkdbusgenerated.c;..\..\..\gtk\gtkdbusgenerated.h;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\..\..\gtk\gtk-win32.rc.body">
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Copying GTK+ Win32 Version Resource...</Message>
|
||||
@@ -190,6 +350,18 @@
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Copying GTK+ Win32 Version Resource...</Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(CopyGtkWin32RC)</Command>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">..\..\..\gtk\gtk-win32.rc;%(Outputs)</Outputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|Win32'">Copying GTK+ Win32 Version Resource...</Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|Win32'">$(CopyGtkWin32RC)</Command>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|Win32'">..\..\..\gtk\gtk-win32.rc;%(Outputs)</Outputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|x64'">Copying GTK+ Win32 Version Resource...</Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|x64'">$(CopyGtkWin32RC)</Command>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|x64'">..\..\..\gtk\gtk-win32.rc;%(Outputs)</Outputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|Win32'">Copying GTK+ Win32 Version Resource...</Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|Win32'">$(CopyGtkWin32RC)</Command>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|Win32'">..\..\..\gtk\gtk-win32.rc;%(Outputs)</Outputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|x64'">Copying GTK+ Win32 Version Resource...</Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|x64'">$(CopyGtkWin32RC)</Command>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|x64'">..\..\..\gtk\gtk-win32.rc;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\..\..\gtk\libgtk4.manifest.in">
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating GTK+ Win32 Manifest...</Message>
|
||||
@@ -204,10 +376,24 @@
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Generating GTK+ Win32 Manifest...</Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(GenerateGtkWin32Manifest)</Command>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">..\..\..\gtk\libgtk4.manifest;%(Outputs)</Outputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|Win32'">Generating GTK+ Win32 Manifest...</Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|Win32'">$(GenerateGtkWin32Manifest)</Command>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|Win32'">..\..\..\gtk\libgtk4.manifest;%(Outputs)</Outputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|x64'">Generating GTK+ Win32 Manifest...</Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|x64'">$(GenerateGtkWin32Manifest)</Command>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|x64'">..\..\..\gtk\libgtk4.manifest;%(Outputs)</Outputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|Win32'">Generating GTK+ Win32 Manifest...</Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|Win32'">$(GenerateGtkWin32Manifest)</Command>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|Win32'">..\..\..\gtk\libgtk4.manifest;%(Outputs)</Outputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|x64'">Generating GTK+ Win32 Manifest...</Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|x64'">$(GenerateGtkWin32Manifest)</Command>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|x64'">..\..\..\gtk\libgtk4.manifest;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ResourceCompile Include="..\..\..\gtk\gtk-win32.rc" />
|
||||
<ResourceCompile Include="..\..\..\gtk\gtk-win32.rc">
|
||||
<AdditionalIncludeDirectories>..\..\..\gdk\win32\rc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
</ResourceCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
#include "gtk-4.vs12.sourcefiles"
|
||||
@@ -231,6 +417,14 @@
|
||||
<Manifest Include="..\..\..\gtk\libgtk4.manifest" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="gdk4-broadway.vcxproj">
|
||||
<Project>{1df4c475-4472-4ee4-ac2b-3ab5a4c1a453}</Project>
|
||||
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="gdk4-win32.vcxproj">
|
||||
<Project>{aba7685a-7cbb-4626-b5e5-6eeea5b489ef}</Project>
|
||||
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="gdk-4.vcxproj">
|
||||
<Project>{5ae8f5ce-9103-4951-aede-ea2f3b573be8}</Project>
|
||||
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||
|
@@ -15,6 +15,6 @@
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
#include "broadwayd.vs12.sourcefiles.filters"
|
||||
#include "gtk4-broadwayd.vs12.sourcefiles.filters"
|
||||
</ItemGroup>
|
||||
</Project>
|
@@ -163,7 +163,7 @@
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
#include "broadwayd.vs12.sourcefiles"
|
||||
#include "gtk4-broadwayd.vs12.sourcefiles"
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="gtk4-prebuild.vcxproj">
|
@@ -14,7 +14,7 @@
|
||||
<GtkGdkCommonLibs>imm32.lib</GtkGdkCommonLibs>
|
||||
<GdkAdditionalLibs>winmm.lib;dwmapi.lib;setupapi.lib;$(GtkGdkCommonLibs)</GdkAdditionalLibs>
|
||||
<GdkBroadwayAdditionalLibs>ws2_32.lib</GdkBroadwayAdditionalLibs>
|
||||
<GtkAdditionalLibs>atk-1.0.lib;pangowin32-1.0.lib;winspool.lib;comctl32.lib;$(GtkGdkCommonLibs)</GtkAdditionalLibs>
|
||||
<GtkAdditionalLibs>atk-1.0.lib;pangowin32-1.0.lib;winspool.lib;comctl32.lib;$(GdkAdditionalLibs)</GtkAdditionalLibs>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<_PropertySheetDisplayName>gtk4builddefinesprops</_PropertySheetDisplayName>
|
||||
|
@@ -166,10 +166,6 @@
|
||||
<ClCompile Include="..\..\..\gtk\gtk-builder-tool.c" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="gdk-4.vcxproj">
|
||||
<Project>{5ae8f5ce-9103-4951-aede-ea2f3b573be8}</Project>
|
||||
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="gtk-4.vcxproj">
|
||||
<Project>{95a4b53d-2773-4406-a2c1-8fd2840bbad8}</Project>
|
||||
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||
|
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ImportGroup Label="PropertySheets">
|
||||
<Import Project="gtk4-build-defines.props" />
|
||||
<Import Project="gtk4-gen-srcs.props" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup>
|
||||
<_PropertySheetDisplayName>gtk4copygdkbroadwayprops</_PropertySheetDisplayName>
|
||||
@@ -13,36 +13,22 @@
|
||||
<PostBuildEvent>
|
||||
<Command>
|
||||
if "$(Configuration)" == "Release" goto END
|
||||
|
||||
if "$(Configuration)" == "Debug" goto END
|
||||
|
||||
if "$(Configuration)" == "Release_Broadway" goto DoRelease
|
||||
|
||||
if "$(Configuration)" == "Debug_Broadway" goto DoDebug
|
||||
|
||||
|
||||
:DoRelease
|
||||
|
||||
mkdir .\Release\$(Platform)\bin
|
||||
|
||||
copy /b $(Configuration)\$(Platform)\bin\$(GtkDllPrefix)gdk$(GtkDllSuffix).dll .\Release\$(Platform)\bin\
|
||||
|
||||
copy /b $(Configuration)\$(Platform)\bin\gdk-$(ApiVersion).lib .\Release\$(Platform)\bin\
|
||||
|
||||
copy /b $(Configuration)\$(Platform)\bin\$(GtkDllPrefix)gtk$(GtkDllSuffix).dll .\Release\$(Platform)\bin\
|
||||
copy /b $(Configuration)\$(Platform)\bin\gtk-$(ApiVersion).lib .\Release\$(Platform)\bin\
|
||||
goto END
|
||||
|
||||
|
||||
:DoDebug
|
||||
|
||||
mkdir .\Debug\$(Platform)\bin
|
||||
|
||||
copy /b $(Configuration)\$(Platform)\bin\$(GtkDllPrefix)gdk$(GtkDllSuffix).dll .\Debug\$(Platform)\bin\
|
||||
|
||||
copy /b $(Configuration)\$(Platform)\bin\gdk-$(ApiVersion).lib .\Debug\$(Platform)\bin\
|
||||
|
||||
copy /b $(Configuration)\$(Platform)\bin\$(GtkDllPrefix)gtk$(GtkDllSuffix).dll .\Debug\$(Platform)\bin\
|
||||
copy /b $(Configuration)\$(Platform)\bin\gtk-$(ApiVersion).lib .\Debug\$(Platform)\bin\
|
||||
goto END
|
||||
|
||||
|
||||
:END
|
||||
</Command>
|
||||
</PostBuildEvent>
|
@@ -158,10 +158,6 @@
|
||||
#include "gtk4-demo-application.vs12.sourcefiles"
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="gdk-4.vcxproj">
|
||||
<Project>{5ae8f5ce-9103-4951-aede-ea2f3b573be8}</Project>
|
||||
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="gtk-4.vcxproj">
|
||||
<Project>{95a4b53d-2773-4406-a2c1-8fd2840bbad8}</Project>
|
||||
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||
|
@@ -172,10 +172,6 @@
|
||||
#include "gtk4-demo.vs12.sourcefiles"
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="gdk-4.vcxproj">
|
||||
<Project>{5ae8f5ce-9103-4951-aede-ea2f3b573be8}</Project>
|
||||
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="gtk-4.vcxproj">
|
||||
<Project>{95a4b53d-2773-4406-a2c1-8fd2840bbad8}</Project>
|
||||
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||
|
@@ -166,8 +166,8 @@
|
||||
<ClCompile Include="..\..\..\gtk\encodesymbolic.c" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="gdk-4.vcxproj">
|
||||
<Project>{5ae8f5ce-9103-4951-aede-ea2f3b573be8}</Project>
|
||||
<ProjectReference Include="gtk-4.vcxproj">
|
||||
<Project>{95a4b53d-2773-4406-a2c1-8fd2840bbad8}</Project>
|
||||
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
|
@@ -162,10 +162,6 @@
|
||||
#include "gtk4-icon-browser.vs12.sourcefiles"
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="gdk-4.vcxproj">
|
||||
<Project>{5ae8f5ce-9103-4951-aede-ea2f3b573be8}</Project>
|
||||
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="gtk-4.vcxproj">
|
||||
<Project>{95a4b53d-2773-4406-a2c1-8fd2840bbad8}</Project>
|
||||
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||
|
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ImportGroup Label="PropertySheets">
|
||||
<Import Project="gtk4-build-defines.props" />
|
||||
<Import Project="gtk4-gen-srcs.props" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup>
|
||||
<_PropertySheetDisplayName>gtk4ignorebroadwayprops</_PropertySheetDisplayName>
|
||||
@@ -11,7 +11,7 @@
|
||||
<LinkLibraryDependencies>false</LinkLibraryDependencies>
|
||||
</ProjectReference>
|
||||
<Link>
|
||||
<AdditionalDependencies>$(OutDir)\gdk4-win32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>$(OutDir)\gsk-4.lib;$(OutDir)\gdk-4.lib;$(OutDir)\gdk4-win32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalOptions>/EXPORT:gdk_win32_display_manager_get_type</AdditionalOptions>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
|
@@ -9,18 +9,11 @@
|
||||
mkdir $(CopyDir)\bin
|
||||
mkdir $(CopyDir)\lib\pkgconfig
|
||||
|
||||
copy "$(BinDir)\$(GtkDllPrefix)gdk-4$(GtkDllSuffix).dll" $(CopyDir)\bin
|
||||
copy "$(BinDir)\$(GtkDllPrefix)gdk-4$(GtkDllSuffix).pdb" $(CopyDir)\bin
|
||||
copy "$(BinDir)\gdk-$(ApiVersion).lib" $(CopyDir)\lib
|
||||
|
||||
if "$(Configuration)" == "Release_Broadway" goto DO_BROADWAY_BIN
|
||||
if "$(Configuration)" == "Debug_Broadway" goto DO_BROADWAY_BIN
|
||||
copy "$(BinDir)\$(GtkDllPrefix)gsk-4$(GtkDllSuffix).dll" $(CopyDir)\bin
|
||||
copy "$(BinDir)\$(GtkDllPrefix)gsk-4$(GtkDllSuffix).pdb" $(CopyDir)\bin
|
||||
copy "$(BinDir)\gsk-$(ApiVersion).lib" $(CopyDir)\lib
|
||||
copy "$(BinDir)\$(GtkDllPrefix)gtk-4$(GtkDllSuffix).dll" $(CopyDir)\bin
|
||||
copy "$(BinDir)\$(GtkDllPrefix)gtk-4$(GtkDllSuffix).pdb" $(CopyDir)\bin
|
||||
copy "$(BinDir)\gtk-$(ApiVersion).lib" $(CopyDir)\lib
|
||||
copy "$(BinDir)\gtk-$(ApiVersionShort).lib" $(CopyDir)\lib
|
||||
copy "$(BinDir)\gtk4-demo.exe" $(CopyDir)\bin
|
||||
copy "$(BinDir)\gtk4-demo.pdb" $(CopyDir)\bin
|
||||
copy "$(BinDir)\gtk4-demo-application.exe" $(CopyDir)\bin
|
||||
@@ -44,12 +37,9 @@ copy "$(BinDir)\broadwayd.pdb" $(CopyDir)\bin
|
||||
if "$(Configuration)" == "Release_Broadway" goto DO_BROADWAY_RELEASE
|
||||
if "$(Configuration)" == "Debug_Broadway" goto DO_BROADWAY_DEBUG
|
||||
:DO_BROADWAY_RELEASE
|
||||
copy .\Release\$(Platform)\bin\$(GtkDllPrefix)gsk-4$(GtkDllSuffix).dll $(CopyDir)\bin
|
||||
copy .\Release\$(Platform)\bin\$(GtkDllPrefix)gsk-4$(GtkDllSuffix).pdb $(CopyDir)\bin
|
||||
copy .\Release\$(Platform)\bin\gsk-$(ApiVersion).lib $(CopyDir)\lib
|
||||
copy .\Release\$(Platform)\bin\$(GtkDllPrefix)gtk-4$(GtkDllSuffix).dll $(CopyDir)\bin
|
||||
copy .\Release\$(Platform)\bin\$(GtkDllPrefix)gtk-4$(GtkDllSuffix).pdb $(CopyDir)\bin
|
||||
copy .\Release\$(Platform)\bin\gtk-$(ApiVersion).lib $(CopyDir)\lib
|
||||
copy .\Release\$(Platform)\bin\gtk-$(ApiVersionShort).lib $(CopyDir)\lib
|
||||
copy .\Release\$(Platform)\bin\gtk4-demo.exe $(CopyDir)\bin
|
||||
copy .\Release\$(Platform)\bin\gtk4-demo.pdb $(CopyDir)\bin
|
||||
copy .\Release\$(Platform)\bin\gtk4-demo-application.exe $(CopyDir)\bin
|
||||
@@ -68,12 +58,9 @@ copy .\Release\$(Platform)\bin\gtk4-builder-tool.pdb $(CopyDir)\bin
|
||||
goto DONE_BIN
|
||||
|
||||
:DO_BROADWAY_DEBUG
|
||||
copy .\Debug\$(Platform)\bin\$(GtkDllPrefix)gsk-4$(GtkDllSuffix).dll $(CopyDir)\bin
|
||||
copy .\Debug\$(Platform)\bin\$(GtkDllPrefix)gsk-4$(GtkDllSuffix).pdb $(CopyDir)\bin
|
||||
copy .\Debug\$(Platform)\bin\gsk-$(ApiVersion).lib $(CopyDir)\lib
|
||||
copy .\Debug\$(Platform)\bin\$(GtkDllPrefix)gtk-4$(GtkDllSuffix).dll $(CopyDir)\bin
|
||||
copy .\Debug\$(Platform)\bin\$(GtkDllPrefix)gtk-4$(GtkDllSuffix).pdb $(CopyDir)\bin
|
||||
copy .\Debug\$(Platform)\bin\gtk-$(ApiVersion).lib $(CopyDir)\lib
|
||||
copy .\Debug\$(Platform)\bin\gtk-$(ApiVersionShort).lib $(CopyDir)\lib
|
||||
copy .\Debug\$(Platform)\bin\gtk4-demo.exe $(CopyDir)\bin
|
||||
copy .\Debug\$(Platform)\bin\gtk4-demo.pdb $(CopyDir)\bin
|
||||
copy .\Debug\$(Platform)\bin\gtk4-demo-application.exe $(CopyDir)\bin
|
||||
@@ -91,9 +78,8 @@ copy .\Debug\$(Platform)\bin\gtk4-builder-tool.pdb $(CopyDir)\bin
|
||||
|
||||
:DONE_BIN
|
||||
|
||||
copy ..\gdk-4.0.pc $(CopyDir)\lib\pkgconfig
|
||||
copy ..\gsk-4.0.pc $(CopyDir)\lib\pkgconfig
|
||||
copy "..\gtk+-4.0.pc" $(CopyDir)\lib\pkgconfig
|
||||
copy "..\gtk+-4.0.pc" "$(CopyDir)\lib\pkgconfig\gtk+-win32-4.0.pc"
|
||||
</GtkDoInstallBin>
|
||||
<GtkDoInstall>
|
||||
echo off
|
||||
@@ -131,7 +117,7 @@ $(CopyDir)\bin\gtk4-update-icon-cache.exe --ignore-theme-index --force "$(CopyDi
|
||||
</GtkPostInstall>
|
||||
<GenerateGtkPC>$(PythonPath)\python ..\gtkpc.py --prefix=$(CopyDir) --version=$(GtkVersion) --host=i686-pc-vs$(VSVer)</GenerateGtkPC>
|
||||
<GenerateGtkPCX64>$(PythonPathX64)\python ..\gtkpc.py --prefix=$(CopyDir) --version=$(GtkVersion) --host=x86_64-pc-vs$(VSVer)</GenerateGtkPCX64>
|
||||
<GtkPCFiles>..\gdk-4.0.pc;..\gsk-4.0.pc;..\gtk+-4.0.pc</GtkPCFiles>
|
||||
<GtkPCFiles>..\gtk+-4.0.pc</GtkPCFiles>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<_PropertySheetDisplayName>gtk4installsprops</_PropertySheetDisplayName>
|
||||
|
@@ -217,14 +217,6 @@
|
||||
</CustomBuild>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="gdk-4.vcxproj">
|
||||
<Project>{5ae8f5ce-9103-4951-aede-ea2f3b573be8}</Project>
|
||||
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="gsk-4.vcxproj">
|
||||
<Project>{5ae8f5ce-9103-4951-aede-eb2f3b573be8}</Project>
|
||||
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="gtk4-demo.vcxproj">
|
||||
<Project>{bdae6de2-6bcc-4107-94f0-da12214a02de}</Project>
|
||||
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||
@@ -233,6 +225,10 @@
|
||||
<Project>{95a4b53d-2773-4406-a2c1-8fd2840bbad8}</Project>
|
||||
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="gtk4-broadwayd.vcxproj">
|
||||
<Project>{e9687d21-e214-4a0c-9eb4-8b38ebb783e5}</Project>
|
||||
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="gtk4-demo-application.vcxproj">
|
||||
<Project>{be6b4973-c6ff-4c8f-8e97-a47793c50f44}</Project>
|
||||
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||
@@ -241,10 +237,6 @@
|
||||
<Project>{343333c4-d46c-4c97-a986-959cca6f1de0}</Project>
|
||||
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="broadwayd.vcxproj">
|
||||
<Project>{e9687d21-e214-4a0c-9eb4-8b38ebb783e5}</Project>
|
||||
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="gtk4-encode-symbolic-svg.vcxproj">
|
||||
<Project>{f280bf1a-777a-4fb5-8005-dfbe04621edb}</Project>
|
||||
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||
|
@@ -166,10 +166,6 @@
|
||||
<ClCompile Include="..\..\..\gtk\gtk-query-settings.c" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="gdk-4.vcxproj">
|
||||
<Project>{5ae8f5ce-9103-4951-aede-ea2f3b573be8}</Project>
|
||||
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="gtk-4.vcxproj">
|
||||
<Project>{95a4b53d-2773-4406-a2c1-8fd2840bbad8}</Project>
|
||||
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||
|
@@ -4,7 +4,8 @@
|
||||
<VSVer>12</VSVer>
|
||||
<GlibEtcInstallRoot>$(SolutionDir)\..\..\..\..\vs$(VSVer)\$(Platform)</GlibEtcInstallRoot>
|
||||
<CopyDir>..\..\..\..\vs$(VSVer)\$(Platform)</CopyDir>
|
||||
<ApiVersion>4.0</ApiVersion>
|
||||
<ApiVersionShort>4</ApiVersionShort>
|
||||
<ApiVersion>$(ApiVersionShort).0</ApiVersion>
|
||||
<GtkVersion>@GTK_VERSION@</GtkVersion>
|
||||
<GtkLibtoolCompatibleDllPrefix>lib</GtkLibtoolCompatibleDllPrefix>
|
||||
<GtkLibtoolCompatibleDllSuffix>.0-0</GtkLibtoolCompatibleDllSuffix>
|
||||
@@ -28,6 +29,9 @@
|
||||
<BuildMacro Include="CopyDir">
|
||||
<Value>$(CopyDir)</Value>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="ApiVersionShort">
|
||||
<Value>$(ApiVersionShort)</Value>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="ApiVersion">
|
||||
<Value>$(ApiVersion)</Value>
|
||||
</BuildMacro>
|
||||
|
@@ -29,12 +29,12 @@ EXTRA_DIST += \
|
||||
gtk4-icon-browser.vcxproj.filters \
|
||||
gtk4-install.vcxproj \
|
||||
gtk4-install.vcxproj.filters \
|
||||
broadwayd.vcxproj \
|
||||
broadwayd.vcxproj.filters \
|
||||
gtk4-broadwayd.vcxproj \
|
||||
gtk4-broadwayd.vcxproj.filters \
|
||||
gdk4-broadway.vcxproj \
|
||||
gdk4-broadway.vcxproj.filters \
|
||||
gtk4-build-defines.props \
|
||||
gtk4-copy-gdk-broadway.props \
|
||||
gtk4-copy-gtk-broadway.props \
|
||||
gtk4-gen-srcs.props \
|
||||
gtk4-ignore-broadway.props \
|
||||
gtk4-install.props \
|
||||
|
42
configure.ac
42
configure.ac
@@ -10,7 +10,7 @@
|
||||
|
||||
m4_define([gtk_major_version], [3])
|
||||
m4_define([gtk_minor_version], [89])
|
||||
m4_define([gtk_micro_version], [0])
|
||||
m4_define([gtk_micro_version], [2])
|
||||
m4_define([gtk_interface_age], [0])
|
||||
m4_define([gtk_binary_age],
|
||||
[m4_eval(100 * gtk_minor_version + gtk_micro_version)])
|
||||
@@ -64,7 +64,7 @@ m4_define([wayland_protocols_required_version], [1.7])
|
||||
m4_define([mirclient_required_version], [0.22.0])
|
||||
m4_define([mircookie_required_version], [0.17.0])
|
||||
m4_define([epoxy_required_version], [1.0])
|
||||
m4_define([graphene_required_version], [1.2])
|
||||
m4_define([graphene_required_version], [1.5.1])
|
||||
GLIB_REQUIRED_VERSION=glib_required_version
|
||||
PANGO_REQUIRED_VERSION=pango_required_version
|
||||
ATK_REQUIRED_VERSION=atk_required_version
|
||||
@@ -297,6 +297,11 @@ AC_ARG_ENABLE(installed_tests,
|
||||
[enable_installed_tests=no])
|
||||
AM_CONDITIONAL(BUILDOPT_INSTALL_TESTS, test x$enable_installed_tests = xyes)
|
||||
|
||||
AC_ARG_ENABLE(vulkan,
|
||||
[AS_HELP_STRING([--enable-vulkan],
|
||||
[support Vulkan graphics API [default=maybe]])],,
|
||||
[enable_vulkan="maybe"])
|
||||
|
||||
AC_ARG_ENABLE(xkb,
|
||||
[AS_HELP_STRING([--enable-xkb],
|
||||
[support XKB extension [default=maybe]])],,
|
||||
@@ -404,7 +409,7 @@ if test "x$enable_quartz_backend" = xyes; then
|
||||
backend_immodules="$backend_immodules,quartz"
|
||||
GDK_WINDOWING="$GDK_WINDOWING
|
||||
#define GDK_WINDOWING_QUARTZ"
|
||||
GDK_EXTRA_LIBS="$GDK_EXTRA_LIBS -framework Cocoa"
|
||||
GDK_EXTRA_LIBS="$GDK_EXTRA_LIBS -framework Cocoa -framework Carbon"
|
||||
DISABLE_ON_QUARTZ='%'
|
||||
AM_CONDITIONAL(USE_QUARTZ, true)
|
||||
if test "x$quartz_relocation" = xyes; then
|
||||
@@ -1314,6 +1319,33 @@ else
|
||||
GDK_GIO_PACKAGE="gio-2.0 >= glib_required_version"
|
||||
fi
|
||||
|
||||
# Check for Vulkan support.
|
||||
|
||||
if test "x$enable_vulkan" != "xno"; then
|
||||
vulkan_error=""
|
||||
AC_CHECK_HEADER([vulkan/vulkan.h],
|
||||
[AC_CHECK_LIB([vulkan], [vkCreateInstance], [], [vulkan_error="Vulkan library not found"])],
|
||||
[vulkan_error="Vulkan header not found"])
|
||||
if test "x$vulkan_error" != "x"; then
|
||||
if "x$enable_vulkan" = "xyes"; then
|
||||
AC_MSG_ERROR($vulkan_error)
|
||||
else
|
||||
AC_MSG_WARN($vulkan_error)
|
||||
fi
|
||||
vulkan_result="no ($vulkan_error)"
|
||||
else
|
||||
GDK_EXTRA_LIBS="-lvulkan"
|
||||
GDK_WINDOWING="$GDK_WINDOWING
|
||||
#define GDK_RENDERING_VULKAN"
|
||||
AC_PATH_PROG([GLSLC], [glslc])
|
||||
vulkan_result="yes"
|
||||
fi
|
||||
else
|
||||
AC_MSG_WARN(Vulkan support explicitly disabled)
|
||||
vulkan_result="no (Vulkan support explicitly disabled)"
|
||||
fi
|
||||
AM_CONDITIONAL(HAVE_VULKAN, test "$vulkan_result" = "yes")
|
||||
|
||||
# Check for Pango flags
|
||||
|
||||
AC_MSG_CHECKING(Pango flags)
|
||||
@@ -1374,7 +1406,7 @@ GSK_EXTRA_LIBS=
|
||||
GSK_EXTRA_CFLAGS=
|
||||
|
||||
GSK_PACKAGES="gdk-pixbuf-2.0 >= gdk_pixbuf_required_version cairo >= cairo_required_version cairo-gobject >= cairo_required_version graphene-1.0 >= graphene_required_version"
|
||||
GSK_PRIVATE_PACKAGES="epoxy >= epoxy_required_version"
|
||||
GSK_PRIVATE_PACKAGES="epoxy >= epoxy_required_version $WAYLAND_PACKAGES"
|
||||
|
||||
PKG_CHECK_MODULES(GSK_DEP, $PANGO_PACKAGES $GSK_PACKAGES $GSK_PRIVATE_PACKAGES)
|
||||
GSK_DEP_LIBS="$GSK_EXTRA_LIBS $GSK_DEP_LIBS $MATH_LIB"
|
||||
@@ -1999,7 +2031,6 @@ gdk/broadway/Makefile
|
||||
gdk/x11/Makefile
|
||||
gdk/win32/Makefile
|
||||
gdk/win32/rc/Makefile
|
||||
gdk/win32/rc/gdk.rc
|
||||
gdk/quartz/Makefile
|
||||
gdk/wayland/Makefile
|
||||
gdk/mir/Makefile
|
||||
@@ -2035,6 +2066,7 @@ echo " GDK backends: $GDK_BACKENDS"
|
||||
if test "$enable_x11_backend" = "yes"; then
|
||||
echo " X11 extensions: $X_EXTENSIONS"
|
||||
fi
|
||||
echo " Vulkan support: $vulkan_result"
|
||||
echo " Print backends: $PRINT_BACKENDS"
|
||||
echo " Dynamic modules: $build_dynamic_modules"
|
||||
echo " Included immodules: $included_immodules"
|
||||
|
@@ -27,6 +27,7 @@ demos_base = \
|
||||
event_axes.c \
|
||||
expander.c \
|
||||
filtermodel.c \
|
||||
fishbowl.c \
|
||||
foreigndrawing.c \
|
||||
gestures.c \
|
||||
glarea.c \
|
||||
@@ -61,6 +62,7 @@ demos_base = \
|
||||
spinbutton.c \
|
||||
spinner.c \
|
||||
stack.c \
|
||||
tabs.c \
|
||||
textmask.c \
|
||||
textview.c \
|
||||
textscroll.c \
|
||||
|
@@ -212,7 +212,7 @@ activate_about (GSimpleAction *action,
|
||||
"comments", "Program to demonstrate GTK+ functions.",
|
||||
"authors", authors,
|
||||
"documenters", documentors,
|
||||
"logo-icon-name", "gtk3-demo",
|
||||
"logo-icon-name", "gtk4-demo",
|
||||
"title", "About GTK+ Code Demos",
|
||||
NULL);
|
||||
}
|
||||
|
@@ -63,10 +63,10 @@ do_application_demo (GtkWidget *toplevel)
|
||||
const gchar *command;
|
||||
GError *error = NULL;
|
||||
|
||||
if (g_file_test ("./gtk3-demo-application" APP_EXTENSION, G_FILE_TEST_IS_EXECUTABLE))
|
||||
command = "./gtk3-demo-application" APP_EXTENSION;
|
||||
if (g_file_test ("./gtk4-demo-application" APP_EXTENSION, G_FILE_TEST_IS_EXECUTABLE))
|
||||
command = "./gtk4-demo-application" APP_EXTENSION;
|
||||
else
|
||||
command = "gtk3-demo-application";
|
||||
command = "gtk4-demo-application";
|
||||
|
||||
if (!g_spawn_command_line_async (command, &error))
|
||||
{
|
||||
|
@@ -15,15 +15,15 @@ static GtkWidget *frame;
|
||||
|
||||
/* draw callback for the drawing area
|
||||
*/
|
||||
static gboolean
|
||||
draw_callback (GtkWidget *widget,
|
||||
cairo_t *cr,
|
||||
gpointer data)
|
||||
static void
|
||||
draw_function (GtkDrawingArea *da,
|
||||
cairo_t *cr,
|
||||
int width,
|
||||
int height,
|
||||
gpointer data)
|
||||
{
|
||||
gdk_cairo_set_source_rgba (cr, &color);
|
||||
cairo_paint (cr);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -87,11 +87,9 @@ do_colorsel (GtkWidget *do_widget)
|
||||
gtk_box_pack_start (GTK_BOX (vbox), frame, TRUE, TRUE);
|
||||
|
||||
da = gtk_drawing_area_new ();
|
||||
|
||||
g_signal_connect (da, "draw", G_CALLBACK (draw_callback), NULL);
|
||||
|
||||
/* set a minimum size */
|
||||
gtk_widget_set_size_request (da, 200, 200);
|
||||
gtk_drawing_area_set_content_width (GTK_DRAWING_AREA (da), 200);
|
||||
gtk_drawing_area_set_content_height (GTK_DRAWING_AREA (da), 200);
|
||||
gtk_drawing_area_set_draw_func (GTK_DRAWING_AREA (da), draw_function, NULL, NULL);
|
||||
|
||||
gtk_container_add (GTK_CONTAINER (frame), da);
|
||||
|
||||
|
@@ -51,22 +51,17 @@ css_text_changed (GtkTextBuffer *buffer,
|
||||
gtk_style_context_reset_widgets (gdk_screen_get_default ());
|
||||
}
|
||||
|
||||
static gboolean
|
||||
drawing_area_draw (GtkWidget *widget,
|
||||
cairo_t *cr)
|
||||
static void
|
||||
drawing_area_draw (GtkDrawingArea *da,
|
||||
cairo_t *cr,
|
||||
int width,
|
||||
int height,
|
||||
gpointer data)
|
||||
{
|
||||
GtkStyleContext *context = gtk_widget_get_style_context (widget);
|
||||
GtkStyleContext *context = gtk_widget_get_style_context (GTK_WIDGET (da));
|
||||
|
||||
gtk_render_background (context, cr,
|
||||
0, 0,
|
||||
gtk_widget_get_allocated_width (widget),
|
||||
gtk_widget_get_allocated_height (widget));
|
||||
gtk_render_frame (context, cr,
|
||||
0, 0,
|
||||
gtk_widget_get_allocated_width (widget),
|
||||
gtk_widget_get_allocated_height (widget));
|
||||
|
||||
return FALSE;
|
||||
gtk_render_background (context, cr, 0, 0, width, height);
|
||||
gtk_render_frame (context, cr, 0, 0, width, height);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -105,8 +100,9 @@ do_css_multiplebgs (GtkWidget *do_widget)
|
||||
|
||||
child = gtk_drawing_area_new ();
|
||||
gtk_widget_set_name (child, "canvas");
|
||||
g_signal_connect (child, "draw",
|
||||
G_CALLBACK (drawing_area_draw), NULL);
|
||||
gtk_drawing_area_set_draw_func (GTK_DRAWING_AREA (child),
|
||||
drawing_area_draw,
|
||||
NULL, NULL);
|
||||
gtk_container_add (GTK_CONTAINER (container), child);
|
||||
|
||||
child = gtk_button_new ();
|
||||
|
@@ -94,6 +94,9 @@
|
||||
<file>zoom_in_cursor.png</file>
|
||||
<file>zoom_out_cursor.png</file>
|
||||
</gresource>
|
||||
<gresource prefix="/fishbowl">
|
||||
<file>fishbowl.ui</file>
|
||||
</gresource>
|
||||
<gresource prefix="/iconview">
|
||||
<file preprocess="to-pixdata">gnome-fs-directory.png</file>
|
||||
<file preprocess="to-pixdata">gnome-fs-regular.png</file>
|
||||
@@ -150,6 +153,7 @@
|
||||
<file>event_axes.c</file>
|
||||
<file>expander.c</file>
|
||||
<file>filtermodel.c</file>
|
||||
<file>fishbowl.c</file>
|
||||
<file>flowbox.c</file>
|
||||
<file>foreigndrawing.c</file>
|
||||
<file>font_features.c</file>
|
||||
@@ -186,6 +190,7 @@
|
||||
<file>stack.c</file>
|
||||
<file>spinbutton.c</file>
|
||||
<file>spinner.c</file>
|
||||
<file>tabs.c</file>
|
||||
<file>textview.c</file>
|
||||
<file>textscroll.c</file>
|
||||
<file>theming_style_classes.c</file>
|
||||
|
@@ -50,15 +50,15 @@ scribble_configure_event (GtkWidget *widget,
|
||||
}
|
||||
|
||||
/* Redraw the screen from the surface */
|
||||
static gboolean
|
||||
scribble_draw (GtkWidget *widget,
|
||||
cairo_t *cr,
|
||||
gpointer data)
|
||||
static void
|
||||
scribble_draw (GtkDrawingArea *da,
|
||||
cairo_t *cr,
|
||||
int width,
|
||||
int height,
|
||||
gpointer data)
|
||||
{
|
||||
cairo_set_source_surface (cr, surface, 0, 0);
|
||||
cairo_paint (cr);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/* Draw a rectangle on the screen */
|
||||
@@ -136,12 +136,14 @@ scribble_motion_notify_event (GtkWidget *widget,
|
||||
}
|
||||
|
||||
|
||||
static gboolean
|
||||
checkerboard_draw (GtkWidget *da,
|
||||
cairo_t *cr,
|
||||
gpointer data)
|
||||
static void
|
||||
checkerboard_draw (GtkDrawingArea *da,
|
||||
cairo_t *cr,
|
||||
int width,
|
||||
int height,
|
||||
gpointer data)
|
||||
{
|
||||
gint i, j, xcount, ycount, width, height;
|
||||
gint i, j, xcount, ycount;
|
||||
|
||||
#define CHECK_SIZE 10
|
||||
#define SPACING 2
|
||||
@@ -154,8 +156,6 @@ checkerboard_draw (GtkWidget *da,
|
||||
*/
|
||||
|
||||
xcount = 0;
|
||||
width = gtk_widget_get_allocated_width (da);
|
||||
height = gtk_widget_get_allocated_height (da);
|
||||
i = SPACING;
|
||||
while (i < width)
|
||||
{
|
||||
@@ -180,11 +180,6 @@ checkerboard_draw (GtkWidget *da,
|
||||
i += CHECK_SIZE + SPACING;
|
||||
++xcount;
|
||||
}
|
||||
|
||||
/* return TRUE because we've handled this event, so no
|
||||
* further processing is required.
|
||||
*/
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -233,14 +228,11 @@ do_drawingarea (GtkWidget *do_widget)
|
||||
gtk_box_pack_start (GTK_BOX (vbox), frame, TRUE, TRUE);
|
||||
|
||||
da = gtk_drawing_area_new ();
|
||||
/* set a minimum size */
|
||||
gtk_widget_set_size_request (da, 100, 100);
|
||||
|
||||
gtk_drawing_area_set_content_width (GTK_DRAWING_AREA (da), 100);
|
||||
gtk_drawing_area_set_content_height (GTK_DRAWING_AREA (da), 100);
|
||||
gtk_drawing_area_set_draw_func (GTK_DRAWING_AREA (da), checkerboard_draw, NULL, NULL);
|
||||
gtk_container_add (GTK_CONTAINER (frame), da);
|
||||
|
||||
g_signal_connect (da, "draw",
|
||||
G_CALLBACK (checkerboard_draw), NULL);
|
||||
|
||||
/*
|
||||
* Create the scribble area
|
||||
*/
|
||||
@@ -255,15 +247,13 @@ do_drawingarea (GtkWidget *do_widget)
|
||||
gtk_box_pack_start (GTK_BOX (vbox), frame, TRUE, TRUE);
|
||||
|
||||
da = gtk_drawing_area_new ();
|
||||
/* set a minimum size */
|
||||
gtk_widget_set_size_request (da, 100, 100);
|
||||
|
||||
gtk_drawing_area_set_content_width (GTK_DRAWING_AREA (da), 100);
|
||||
gtk_drawing_area_set_content_height (GTK_DRAWING_AREA (da), 100);
|
||||
gtk_drawing_area_set_draw_func (GTK_DRAWING_AREA (da), scribble_draw, NULL, NULL);
|
||||
gtk_container_add (GTK_CONTAINER (frame), da);
|
||||
|
||||
/* Signals used to handle backing surface */
|
||||
|
||||
g_signal_connect (da, "draw",
|
||||
G_CALLBACK (scribble_draw), NULL);
|
||||
g_signal_connect (da,"configure-event",
|
||||
G_CALLBACK (scribble_configure_event), NULL);
|
||||
|
||||
|
341
demos/gtk-demo/fishbowl.c
Normal file
341
demos/gtk-demo/fishbowl.c
Normal file
@@ -0,0 +1,341 @@
|
||||
/* Benchmark/Fishbowl
|
||||
*
|
||||
* This demo models the fishbowl demos seen on the web in a GTK way.
|
||||
* It's also a neat little tool to see how fast your computer (or
|
||||
* your GTK version) is.
|
||||
*/
|
||||
|
||||
#include <gtk/gtk.h>
|
||||
|
||||
char **icon_names = NULL;
|
||||
gsize n_icon_names = 0;
|
||||
|
||||
GtkWidget *allow_changes;
|
||||
|
||||
static void
|
||||
init_icon_names (GtkIconTheme *theme)
|
||||
{
|
||||
GPtrArray *icons;
|
||||
GList *l, *icon_list;
|
||||
|
||||
if (icon_names)
|
||||
return;
|
||||
|
||||
icon_list = gtk_icon_theme_list_icons (theme, NULL);
|
||||
icons = g_ptr_array_new ();
|
||||
|
||||
for (l = icon_list; l; l = l->next)
|
||||
{
|
||||
if (g_str_has_suffix (l->data, "symbolic"))
|
||||
continue;
|
||||
|
||||
g_ptr_array_add (icons, g_strdup (l->data));
|
||||
}
|
||||
|
||||
n_icon_names = icons->len;
|
||||
g_ptr_array_add (icons, NULL); /* NULL-terminate the array */
|
||||
icon_names = (char **) g_ptr_array_free (icons, FALSE);
|
||||
|
||||
/* don't free strings, we assigned them to the array */
|
||||
g_list_free_full (icon_list, g_free);
|
||||
}
|
||||
|
||||
static const char *
|
||||
get_random_icon_name (GtkIconTheme *theme)
|
||||
{
|
||||
init_icon_names (theme);
|
||||
|
||||
return icon_names[g_random_int_range(0, n_icon_names)];
|
||||
}
|
||||
|
||||
#define N_STATS 5
|
||||
|
||||
#define STATS_UPDATE_TIME G_USEC_PER_SEC
|
||||
|
||||
typedef struct _Stats Stats;
|
||||
struct _Stats {
|
||||
gint64 last_stats;
|
||||
gint64 last_frame;
|
||||
gint last_suggestion;
|
||||
guint frame_counter_max;
|
||||
|
||||
guint stats_index;
|
||||
guint frame_counter[N_STATS];
|
||||
guint item_counter[N_STATS];
|
||||
};
|
||||
|
||||
static Stats *
|
||||
get_stats (GtkWidget *widget)
|
||||
{
|
||||
static GQuark stats_quark = 0;
|
||||
Stats *stats;
|
||||
|
||||
if (G_UNLIKELY (stats_quark == 0))
|
||||
stats_quark = g_quark_from_static_string ("stats");
|
||||
|
||||
stats = g_object_get_qdata (G_OBJECT (widget), stats_quark);
|
||||
if (stats == NULL)
|
||||
{
|
||||
stats = g_new0 (Stats, 1);
|
||||
g_object_set_qdata_full (G_OBJECT (widget), stats_quark, stats, g_free);
|
||||
stats->last_frame = gdk_frame_clock_get_frame_time (gtk_widget_get_frame_clock (widget));
|
||||
stats->last_stats = stats->last_frame;
|
||||
}
|
||||
|
||||
return stats;
|
||||
}
|
||||
|
||||
static gint64
|
||||
do_stats (GtkWidget *widget,
|
||||
GtkWidget *info_label,
|
||||
gint *suggested_change)
|
||||
{
|
||||
Stats *stats;
|
||||
gint64 frame_time, elapsed;
|
||||
|
||||
stats = get_stats (widget);
|
||||
frame_time = gdk_frame_clock_get_frame_time (gtk_widget_get_frame_clock (widget));
|
||||
elapsed = frame_time - stats->last_frame;
|
||||
|
||||
if (stats->last_stats + STATS_UPDATE_TIME < frame_time)
|
||||
{
|
||||
char *new_label;
|
||||
guint i, n_frames;
|
||||
|
||||
n_frames = 0;
|
||||
for (i = 0; i < N_STATS; i++)
|
||||
{
|
||||
n_frames += stats->frame_counter[i];
|
||||
}
|
||||
|
||||
new_label = g_strdup_printf ("%u icons - %.1f fps",
|
||||
stats->item_counter[stats->stats_index],
|
||||
(double) G_USEC_PER_SEC * n_frames
|
||||
/ (N_STATS * STATS_UPDATE_TIME));
|
||||
gtk_label_set_label (GTK_LABEL (info_label), new_label);
|
||||
g_free (new_label);
|
||||
|
||||
if (stats->frame_counter[stats->stats_index] >= 19 * stats->frame_counter_max / 20)
|
||||
{
|
||||
if (stats->last_suggestion > 0)
|
||||
stats->last_suggestion *= 2;
|
||||
else
|
||||
stats->last_suggestion = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (stats->last_suggestion < 0)
|
||||
stats->last_suggestion--;
|
||||
else
|
||||
stats->last_suggestion = -1;
|
||||
stats->last_suggestion = MAX (stats->last_suggestion, 1 - (int) stats->item_counter[stats->stats_index]);
|
||||
}
|
||||
|
||||
stats->stats_index = (stats->stats_index + 1) % N_STATS;
|
||||
stats->frame_counter[stats->stats_index] = 0;
|
||||
stats->item_counter[stats->stats_index] = stats->item_counter[(stats->stats_index + N_STATS - 1) % N_STATS];
|
||||
stats->last_stats = frame_time;
|
||||
|
||||
if (suggested_change)
|
||||
*suggested_change = stats->last_suggestion;
|
||||
else
|
||||
stats->last_suggestion = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (suggested_change)
|
||||
*suggested_change = 0;
|
||||
}
|
||||
|
||||
stats->last_frame = frame_time;
|
||||
stats->frame_counter[stats->stats_index]++;
|
||||
stats->frame_counter_max = MAX (stats->frame_counter_max, stats->frame_counter[stats->stats_index]);
|
||||
|
||||
return elapsed;
|
||||
}
|
||||
|
||||
static void
|
||||
stats_update (GtkWidget *widget,
|
||||
gint n_items)
|
||||
{
|
||||
Stats *stats;
|
||||
|
||||
stats = get_stats (widget);
|
||||
|
||||
g_assert ((gint) stats->item_counter[stats->stats_index] + n_items > 0);
|
||||
stats->item_counter[stats->stats_index] += n_items;
|
||||
}
|
||||
|
||||
typedef struct _FishData FishData;
|
||||
struct _FishData {
|
||||
double x;
|
||||
double y;
|
||||
double x_speed;
|
||||
double y_speed;
|
||||
};
|
||||
|
||||
static FishData *
|
||||
get_fish_data (GtkWidget *fish)
|
||||
{
|
||||
static GQuark fish_quark = 0;
|
||||
FishData *data;
|
||||
|
||||
if (G_UNLIKELY (fish_quark == 0))
|
||||
fish_quark = g_quark_from_static_string ("fish");
|
||||
|
||||
data = g_object_get_qdata (G_OBJECT (fish), fish_quark);
|
||||
if (data == NULL)
|
||||
{
|
||||
data = g_new0 (FishData, 1);
|
||||
g_object_set_qdata_full (G_OBJECT (fish), fish_quark, data, g_free);
|
||||
data->x = 10;
|
||||
data->y = 10;
|
||||
data->x_speed = g_random_double_range (1, 200);
|
||||
data->y_speed = g_random_double_range (1, 200);
|
||||
}
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
static void
|
||||
add_fish (GtkWidget *bowl,
|
||||
guint n_fish)
|
||||
{
|
||||
GtkWidget *new_fish;
|
||||
guint i;
|
||||
|
||||
for (i = 0; i < n_fish; i++)
|
||||
{
|
||||
new_fish = gtk_image_new_from_icon_name (get_random_icon_name (gtk_icon_theme_get_default ()),
|
||||
GTK_ICON_SIZE_DIALOG);
|
||||
gtk_widget_show (new_fish);
|
||||
|
||||
gtk_fixed_put (GTK_FIXED (bowl),
|
||||
new_fish,
|
||||
10, 10);
|
||||
}
|
||||
|
||||
stats_update (bowl, n_fish);
|
||||
}
|
||||
|
||||
static void
|
||||
remove_fish (GtkWidget *bowl,
|
||||
guint n_fish)
|
||||
{
|
||||
GList *list, *children;
|
||||
guint i;
|
||||
|
||||
children = gtk_container_get_children (GTK_CONTAINER (bowl));
|
||||
g_assert (n_fish < g_list_length (children));
|
||||
|
||||
list = children;
|
||||
for (i = 0; i < n_fish; i++)
|
||||
{
|
||||
gtk_container_remove (GTK_CONTAINER (bowl), list->data);
|
||||
list = list->next;
|
||||
}
|
||||
|
||||
g_list_free (children);
|
||||
|
||||
stats_update (bowl, - (gint) n_fish);
|
||||
|
||||
{
|
||||
Stats *stats = get_stats (bowl);
|
||||
|
||||
children = gtk_container_get_children (GTK_CONTAINER (bowl));
|
||||
g_assert (stats->item_counter[stats->stats_index] == g_list_length (children));
|
||||
g_list_free (children);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
move_one_fish (GtkWidget *fish,
|
||||
gpointer elapsedp)
|
||||
{
|
||||
GtkWidget *fixed = gtk_widget_get_parent (fish);
|
||||
FishData *data = get_fish_data (fish);
|
||||
gint64 elapsed = *(gint64 *) elapsedp;
|
||||
|
||||
data->x += data->x_speed * ((double) elapsed / G_USEC_PER_SEC);
|
||||
data->y += data->y_speed * ((double) elapsed / G_USEC_PER_SEC);
|
||||
|
||||
if (data->x <= 0)
|
||||
{
|
||||
data->x = 0;
|
||||
data->x_speed = - g_random_double_range (1, 200) * (data->x_speed > 0 ? 1 : -1);
|
||||
}
|
||||
else if (data->x > gtk_widget_get_allocated_width (fixed) - gtk_widget_get_allocated_width (fish))
|
||||
{
|
||||
data->x = gtk_widget_get_allocated_width (fixed) - gtk_widget_get_allocated_width (fish);
|
||||
data->x_speed = - g_random_double_range (1, 200) * (data->x_speed > 0 ? 1 : -1);
|
||||
}
|
||||
|
||||
if (data->y <= 0)
|
||||
{
|
||||
data->y = 0;
|
||||
data->y_speed = - g_random_double_range (1, 200) * (data->y_speed > 0 ? 1 : -1);
|
||||
}
|
||||
else if (data->y > gtk_widget_get_allocated_height (fixed) - gtk_widget_get_allocated_height (fish))
|
||||
{
|
||||
data->y = gtk_widget_get_allocated_height (fixed) - gtk_widget_get_allocated_height (fish);
|
||||
data->y_speed = - g_random_double_range (1, 200) * (data->y_speed > 0 ? 1 : -1);
|
||||
}
|
||||
|
||||
gtk_fixed_move (GTK_FIXED (fixed), fish, data->x, data->y);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
move_fish (GtkWidget *bowl,
|
||||
GdkFrameClock *frame_clock,
|
||||
gpointer info_label)
|
||||
{
|
||||
gint64 elapsed;
|
||||
gint suggested_change = 0;
|
||||
|
||||
elapsed = do_stats (bowl,
|
||||
info_label,
|
||||
!gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (allow_changes)) ? &suggested_change : NULL);
|
||||
|
||||
gtk_container_foreach (GTK_CONTAINER (bowl), move_one_fish, &elapsed);
|
||||
|
||||
if (suggested_change > 0)
|
||||
add_fish (bowl, suggested_change);
|
||||
else if (suggested_change < 0)
|
||||
remove_fish (bowl, - suggested_change);
|
||||
|
||||
return G_SOURCE_CONTINUE;
|
||||
}
|
||||
|
||||
GtkWidget *
|
||||
do_fishbowl (GtkWidget *do_widget)
|
||||
{
|
||||
static GtkWidget *window = NULL;
|
||||
|
||||
if (!window)
|
||||
{
|
||||
GtkBuilder *builder;
|
||||
GtkWidget *bowl, *info_label;
|
||||
|
||||
builder = gtk_builder_new_from_resource ("/fishbowl/fishbowl.ui");
|
||||
gtk_builder_connect_signals (builder, NULL);
|
||||
window = GTK_WIDGET (gtk_builder_get_object (builder, "window"));
|
||||
bowl = GTK_WIDGET (gtk_builder_get_object (builder, "bowl"));
|
||||
info_label = GTK_WIDGET (gtk_builder_get_object (builder, "info_label"));
|
||||
allow_changes = GTK_WIDGET (gtk_builder_get_object (builder, "changes_allow"));
|
||||
gtk_window_set_screen (GTK_WINDOW (window),
|
||||
gtk_widget_get_screen (do_widget));
|
||||
g_signal_connect (window, "destroy",
|
||||
G_CALLBACK (gtk_widget_destroyed), &window);
|
||||
|
||||
gtk_widget_realize (window);
|
||||
gtk_widget_add_tick_callback (bowl, move_fish, info_label, NULL);
|
||||
}
|
||||
|
||||
if (!gtk_widget_get_visible (window))
|
||||
gtk_widget_show (window);
|
||||
else
|
||||
gtk_widget_destroy (window);
|
||||
|
||||
|
||||
return window;
|
||||
}
|
49
demos/gtk-demo/fishbowl.ui
Normal file
49
demos/gtk-demo/fishbowl.ui
Normal file
@@ -0,0 +1,49 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<interface>
|
||||
<!-- interface-requires gtk+ 3.6 -->
|
||||
<object class="GtkWindow" id="window">
|
||||
<property name="title" translatable="yes">Fishbowl</property>
|
||||
<child type="titlebar">
|
||||
<object class="GtkHeaderBar" id="">
|
||||
<property name="visible">True</property>
|
||||
<property name="show-close-button">True</property>
|
||||
<child>
|
||||
<object class="GtkLabel" id="info_label">
|
||||
<property name="visible">True</property>
|
||||
<property name="label">0 icons - 0 fps</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="pack_type">end</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkToggleButton" id="changes_allow">
|
||||
<property name="active">False</property>
|
||||
<property name="visible" bind-source="changes_allow" bind-property="active" bind-flags="invert-boolean">True</property>
|
||||
<property name="icon-name">changes-allow</property>
|
||||
<property name="relief">none</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="pack_type">end</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkToggleButton" id="changes_prevent">
|
||||
<property name="active" bind-source="changes_allow" bind-property="active" bind-flags="bidirectional|invert-boolean">True</property>
|
||||
<property name="visible" bind-source="changes_prevent" bind-property="active" bind-flags="invert-boolean">False</property>
|
||||
<property name="icon-name">changes-prevent</property>
|
||||
<property name="relief">none</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="pack_type">end</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkFixed" id="bowl">
|
||||
<property name="visible">True</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</interface>
|
@@ -10,11 +10,14 @@
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
static gboolean
|
||||
draw_color (GtkWidget *drawingarea,
|
||||
cairo_t *cr,
|
||||
const char *color_name)
|
||||
static void
|
||||
draw_color (GtkDrawingArea *drawingarea,
|
||||
cairo_t *cr,
|
||||
int width,
|
||||
int height,
|
||||
gpointer data)
|
||||
{
|
||||
const char *color_name = data;
|
||||
GdkRGBA rgba;
|
||||
|
||||
if (gdk_rgba_parse (&rgba, color_name))
|
||||
@@ -22,8 +25,6 @@ draw_color (GtkWidget *drawingarea,
|
||||
gdk_cairo_set_source_rgba (cr, &rgba);
|
||||
cairo_paint (cr);
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static GtkWidget *
|
||||
@@ -33,8 +34,9 @@ color_swatch_new (const gchar *color)
|
||||
|
||||
button = gtk_button_new ();
|
||||
area = gtk_drawing_area_new ();
|
||||
g_signal_connect (area, "draw", G_CALLBACK (draw_color), (gpointer) color);
|
||||
gtk_widget_set_size_request (area, 24, 24);
|
||||
gtk_drawing_area_set_content_width (GTK_DRAWING_AREA (area), 24);
|
||||
gtk_drawing_area_set_content_height (GTK_DRAWING_AREA (area), 24);
|
||||
gtk_drawing_area_set_draw_func (GTK_DRAWING_AREA (area), draw_color, (gpointer) color, NULL);
|
||||
gtk_container_add (GTK_CONTAINER (button), area);
|
||||
gtk_widget_show_all (button);
|
||||
|
||||
|
@@ -836,7 +836,7 @@ draw_spinbutton (GtkWidget *widget,
|
||||
|
||||
/* This information is taken from the GtkSpinButton docs, see "CSS nodes" */
|
||||
spin_context = get_style (NULL, "spinbutton.horizontal:focus");
|
||||
entry_context = get_style (NULL, "entry:focus");
|
||||
entry_context = get_style (spin_context, "entry:focus");
|
||||
up_context = get_style (spin_context, "button.up:focus:active");
|
||||
down_context = get_style (spin_context, "button.down:focus");
|
||||
|
||||
@@ -881,16 +881,18 @@ draw_spinbutton (GtkWidget *widget,
|
||||
g_object_unref (spin_context);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
draw_cb (GtkWidget *widget,
|
||||
cairo_t *cr)
|
||||
static void
|
||||
draw_func (GtkDrawingArea *da,
|
||||
cairo_t *cr,
|
||||
int width,
|
||||
int height,
|
||||
gpointer data)
|
||||
{
|
||||
gint panewidth, width, height;
|
||||
GtkWidget *widget = GTK_WIDGET (da);
|
||||
gint panewidth;
|
||||
gint x, y;
|
||||
|
||||
width = gtk_widget_get_allocated_width (widget);
|
||||
panewidth = width / 2;
|
||||
height = gtk_widget_get_allocated_height (widget);
|
||||
|
||||
cairo_rectangle (cr, 0, 0, width, height);
|
||||
cairo_set_source_rgb (cr, 0.9, 0.9, 0.9);
|
||||
@@ -944,8 +946,6 @@ draw_cb (GtkWidget *widget,
|
||||
|
||||
y += height + 10;
|
||||
draw_combobox (widget, cr, 10 + panewidth, y, panewidth - 20, TRUE, &height);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
GtkWidget *
|
||||
@@ -968,13 +968,12 @@ do_foreigndrawing (GtkWidget *do_widget)
|
||||
box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 10);
|
||||
gtk_container_add (GTK_CONTAINER (window), box);
|
||||
da = gtk_drawing_area_new ();
|
||||
gtk_widget_set_size_request (da, 400, 400);
|
||||
gtk_drawing_area_set_content_width (GTK_DRAWING_AREA (da), 400);
|
||||
gtk_drawing_area_set_content_height (GTK_DRAWING_AREA (da), 400);
|
||||
gtk_drawing_area_set_draw_func (GTK_DRAWING_AREA (da), draw_func, NULL, NULL);
|
||||
gtk_widget_set_hexpand (da, TRUE);
|
||||
gtk_widget_set_vexpand (da, TRUE);
|
||||
gtk_widget_set_app_paintable (da, TRUE);
|
||||
gtk_container_add (GTK_CONTAINER (box), da);
|
||||
|
||||
g_signal_connect (da, "draw", G_CALLBACK (draw_cb), NULL);
|
||||
}
|
||||
|
||||
if (!gtk_widget_get_visible (window))
|
||||
|
@@ -60,20 +60,18 @@ zoom_scale_changed (GtkGestureZoom *gesture,
|
||||
gtk_widget_queue_draw (widget);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
drawing_area_draw (GtkWidget *widget,
|
||||
cairo_t *cr)
|
||||
static void
|
||||
drawing_area_draw (GtkDrawingArea *area,
|
||||
cairo_t *cr,
|
||||
int width,
|
||||
int height,
|
||||
gpointer data)
|
||||
{
|
||||
GtkAllocation allocation;
|
||||
|
||||
gtk_widget_get_allocation (widget, &allocation);
|
||||
|
||||
if (swipe_x != 0 || swipe_y != 0)
|
||||
{
|
||||
cairo_save (cr);
|
||||
cairo_set_line_width (cr, 6);
|
||||
cairo_move_to (cr, allocation.width / 2,
|
||||
allocation.height / 2);
|
||||
cairo_move_to (cr, width / 2, height / 2);
|
||||
cairo_rel_line_to (cr, swipe_x, swipe_y);
|
||||
cairo_set_source_rgba (cr, 1, 0, 0, 0.5);
|
||||
cairo_stroke (cr);
|
||||
@@ -87,9 +85,7 @@ drawing_area_draw (GtkWidget *widget,
|
||||
gdouble angle, scale;
|
||||
|
||||
cairo_get_matrix (cr, &matrix);
|
||||
cairo_matrix_translate (&matrix,
|
||||
allocation.width / 2,
|
||||
allocation.height / 2);
|
||||
cairo_matrix_translate (&matrix, width / 2, height / 2);
|
||||
|
||||
cairo_save (cr);
|
||||
|
||||
@@ -116,8 +112,8 @@ drawing_area_draw (GtkWidget *widget,
|
||||
if (long_pressed)
|
||||
{
|
||||
cairo_save (cr);
|
||||
cairo_arc (cr, allocation.width / 2,
|
||||
allocation.height / 2,
|
||||
cairo_arc (cr,
|
||||
width / 2, height / 2,
|
||||
50, 0, 2 * G_PI);
|
||||
|
||||
cairo_set_source_rgba (cr, 0, 1, 0, 0.5);
|
||||
@@ -125,8 +121,6 @@ drawing_area_draw (GtkWidget *widget,
|
||||
|
||||
cairo_restore (cr);
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
GtkWidget *
|
||||
@@ -150,8 +144,9 @@ do_gestures (GtkWidget *do_widget)
|
||||
GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK |
|
||||
GDK_POINTER_MOTION_MASK | GDK_TOUCH_MASK);
|
||||
|
||||
g_signal_connect (drawing_area, "draw",
|
||||
G_CALLBACK (drawing_area_draw), NULL);
|
||||
gtk_drawing_area_set_draw_func (GTK_DRAWING_AREA (drawing_area),
|
||||
drawing_area_draw,
|
||||
NULL, NULL);
|
||||
|
||||
/* Swipe */
|
||||
gesture = gtk_gesture_swipe_new (drawing_area);
|
||||
|
@@ -50,6 +50,7 @@ do_pickers (GtkWidget *do_widget)
|
||||
gtk_widget_set_hexpand (label, TRUE);
|
||||
picker = gtk_file_chooser_button_new ("Pick a File",
|
||||
GTK_FILE_CHOOSER_ACTION_OPEN);
|
||||
gtk_file_chooser_set_local_only (GTK_FILE_CHOOSER (picker), FALSE);
|
||||
gtk_grid_attach (GTK_GRID (table), label, 0, 2, 1, 1);
|
||||
gtk_grid_attach (GTK_GRID (table), picker, 1, 2, 1, 1);
|
||||
|
||||
|
@@ -75,15 +75,15 @@ load_pixbufs (GError **error)
|
||||
}
|
||||
|
||||
/* Expose callback for the drawing area */
|
||||
static gint
|
||||
draw_cb (GtkWidget *widget,
|
||||
cairo_t *cr,
|
||||
gpointer data)
|
||||
static void
|
||||
draw_func (GtkDrawingArea *area,
|
||||
cairo_t *cr,
|
||||
int width,
|
||||
int height,
|
||||
gpointer data)
|
||||
{
|
||||
gdk_cairo_set_source_pixbuf (cr, frame, 0, 0);
|
||||
cairo_paint (cr);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
#define CYCLE_TIME 3000000 /* 3 seconds */
|
||||
@@ -204,14 +204,13 @@ do_pixbufs (GtkWidget *do_widget)
|
||||
}
|
||||
else
|
||||
{
|
||||
gtk_widget_set_size_request (window, back_width, back_height);
|
||||
|
||||
frame = gdk_pixbuf_new (GDK_COLORSPACE_RGB, FALSE, 8, back_width, back_height);
|
||||
|
||||
da = gtk_drawing_area_new ();
|
||||
|
||||
g_signal_connect (da, "draw",
|
||||
G_CALLBACK (draw_cb), NULL);
|
||||
gtk_drawing_area_set_content_width (GTK_DRAWING_AREA (da), back_width);
|
||||
gtk_drawing_area_set_content_height (GTK_DRAWING_AREA (da), back_height);
|
||||
gtk_drawing_area_set_draw_func (GTK_DRAWING_AREA (da), draw_func, NULL, NULL);
|
||||
|
||||
gtk_container_add (GTK_CONTAINER (window), da);
|
||||
|
||||
|
@@ -88,10 +88,12 @@ create_fancy_attr_list_for_layout (PangoLayout *layout)
|
||||
return attrs;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
rotated_text_draw (GtkWidget *widget,
|
||||
cairo_t *cr,
|
||||
gpointer data)
|
||||
static void
|
||||
rotated_text_draw (GtkDrawingArea *da,
|
||||
cairo_t *cr,
|
||||
int width,
|
||||
int height,
|
||||
gpointer data)
|
||||
{
|
||||
#define RADIUS 150
|
||||
#define N_WORDS 5
|
||||
@@ -106,15 +108,12 @@ rotated_text_draw (GtkWidget *widget,
|
||||
PangoAttrList *attrs;
|
||||
|
||||
double device_radius;
|
||||
int width, height;
|
||||
int i;
|
||||
|
||||
/* Create a cairo context and set up a transformation matrix so that the user
|
||||
* space coordinates for the centered square where we draw are [-RADIUS, RADIUS],
|
||||
* [-RADIUS, RADIUS].
|
||||
* We first center, then change the scale. */
|
||||
width = gtk_widget_get_allocated_width (widget);
|
||||
height = gtk_widget_get_allocated_height (widget);
|
||||
device_radius = MIN (width, height) / 2.;
|
||||
cairo_translate (cr,
|
||||
device_radius + (width - 2 * device_radius) / 2,
|
||||
@@ -128,7 +127,7 @@ rotated_text_draw (GtkWidget *widget,
|
||||
cairo_set_source (cr, pattern);
|
||||
|
||||
/* Create a PangoContext and set up our shape renderer */
|
||||
context = gtk_widget_create_pango_context (widget);
|
||||
context = gtk_widget_create_pango_context (GTK_WIDGET (da));
|
||||
pango_cairo_context_set_shape_renderer (context,
|
||||
fancy_shape_renderer,
|
||||
NULL, NULL);
|
||||
@@ -164,8 +163,6 @@ rotated_text_draw (GtkWidget *widget,
|
||||
g_object_unref (layout);
|
||||
g_object_unref (context);
|
||||
cairo_pattern_destroy (pattern);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
GtkWidget *
|
||||
@@ -199,8 +196,9 @@ do_rotated_text (GtkWidget *do_widget)
|
||||
gtk_style_context_add_class (gtk_widget_get_style_context (drawing_area),
|
||||
GTK_STYLE_CLASS_VIEW);
|
||||
|
||||
g_signal_connect (drawing_area, "draw",
|
||||
G_CALLBACK (rotated_text_draw), NULL);
|
||||
gtk_drawing_area_set_draw_func (GTK_DRAWING_AREA (drawing_area),
|
||||
rotated_text_draw,
|
||||
NULL, NULL);
|
||||
|
||||
/* And a label */
|
||||
label = gtk_label_new (text);
|
||||
|
61
demos/gtk-demo/tabs.c
Normal file
61
demos/gtk-demo/tabs.c
Normal file
@@ -0,0 +1,61 @@
|
||||
/* Text View/Tabs
|
||||
*
|
||||
* GtkTextView can position text at fixed positions, using tabs.
|
||||
*/
|
||||
|
||||
#include <gtk/gtk.h>
|
||||
#include <gdk/gdkkeysyms.h>
|
||||
|
||||
GtkWidget *
|
||||
do_tabs (GtkWidget *do_widget)
|
||||
{
|
||||
static GtkWidget *window = NULL;
|
||||
|
||||
if (!window)
|
||||
{
|
||||
GtkWidget *view;
|
||||
GtkWidget *sw;
|
||||
GtkTextBuffer *buffer;
|
||||
PangoTabArray *tabs;
|
||||
|
||||
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
|
||||
gtk_window_set_title (GTK_WINDOW (window), "Tabs");
|
||||
gtk_window_set_screen (GTK_WINDOW (window),
|
||||
gtk_widget_get_screen (do_widget));
|
||||
gtk_window_set_default_size (GTK_WINDOW (window), 450, 450);
|
||||
|
||||
g_signal_connect (window, "destroy",
|
||||
G_CALLBACK (gtk_widget_destroyed), &window);
|
||||
|
||||
view = gtk_text_view_new ();
|
||||
gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (view), GTK_WRAP_WORD);
|
||||
gtk_text_view_set_left_margin (GTK_TEXT_VIEW (view), 20);
|
||||
gtk_text_view_set_right_margin (GTK_TEXT_VIEW (view), 20);
|
||||
|
||||
tabs = pango_tab_array_new (3, TRUE);
|
||||
pango_tab_array_set_tab (tabs, 0, PANGO_TAB_LEFT, 0);
|
||||
pango_tab_array_set_tab (tabs, 1, PANGO_TAB_LEFT, 150);
|
||||
pango_tab_array_set_tab (tabs, 2, PANGO_TAB_LEFT, 300);
|
||||
gtk_text_view_set_tabs (GTK_TEXT_VIEW (view), tabs);
|
||||
pango_tab_array_free (tabs);
|
||||
|
||||
buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (view));
|
||||
gtk_text_buffer_set_text (buffer, "one\ttwo\tthree\nfour\tfive\tsix\nseven\teight\tnine", -1);
|
||||
|
||||
sw = gtk_scrolled_window_new (NULL, NULL);
|
||||
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw),
|
||||
GTK_POLICY_AUTOMATIC,
|
||||
GTK_POLICY_AUTOMATIC);
|
||||
gtk_container_add (GTK_CONTAINER (window), sw);
|
||||
gtk_container_add (GTK_CONTAINER (sw), view);
|
||||
|
||||
gtk_widget_show_all (sw);
|
||||
}
|
||||
|
||||
if (!gtk_widget_get_visible (window))
|
||||
gtk_widget_show (window);
|
||||
else
|
||||
gtk_widget_destroy (window);
|
||||
|
||||
return window;
|
||||
}
|
@@ -7,10 +7,12 @@
|
||||
#include <glib/gi18n.h>
|
||||
#include <gtk/gtk.h>
|
||||
|
||||
static gboolean
|
||||
draw_text (GtkWidget *da,
|
||||
cairo_t *cr,
|
||||
gpointer data)
|
||||
static void
|
||||
draw_text (GtkDrawingArea *da,
|
||||
cairo_t *cr,
|
||||
int width,
|
||||
int height,
|
||||
gpointer data)
|
||||
{
|
||||
cairo_pattern_t *pattern;
|
||||
PangoLayout *layout;
|
||||
@@ -18,7 +20,7 @@ draw_text (GtkWidget *da,
|
||||
|
||||
cairo_save (cr);
|
||||
|
||||
layout = gtk_widget_create_pango_layout (da, "Pango power!\nPango power!\nPango power!");
|
||||
layout = gtk_widget_create_pango_layout (GTK_WIDGET (da), "Pango power!\nPango power!\nPango power!");
|
||||
desc = pango_font_description_from_string ("sans bold 34");
|
||||
pango_layout_set_font_description (layout, desc);
|
||||
pango_font_description_free (desc);
|
||||
@@ -27,9 +29,7 @@ draw_text (GtkWidget *da,
|
||||
pango_cairo_layout_path (cr, layout);
|
||||
g_object_unref (layout);
|
||||
|
||||
pattern = cairo_pattern_create_linear (0.0, 0.0,
|
||||
gtk_widget_get_allocated_width (da),
|
||||
gtk_widget_get_allocated_height (da));
|
||||
pattern = cairo_pattern_create_linear (0.0, 0.0, width, height);
|
||||
cairo_pattern_add_color_stop_rgb (pattern, 0.0, 1.0, 0.0, 0.0);
|
||||
cairo_pattern_add_color_stop_rgb (pattern, 0.2, 1.0, 0.0, 0.0);
|
||||
cairo_pattern_add_color_stop_rgb (pattern, 0.3, 1.0, 1.0, 0.0);
|
||||
@@ -49,8 +49,6 @@ draw_text (GtkWidget *da,
|
||||
cairo_stroke (cr);
|
||||
|
||||
cairo_restore (cr);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
GtkWidget *
|
||||
@@ -72,8 +70,7 @@ do_textmask (GtkWidget *do_widget)
|
||||
da = gtk_drawing_area_new ();
|
||||
|
||||
gtk_container_add (GTK_CONTAINER (window), da);
|
||||
g_signal_connect (da, "draw",
|
||||
G_CALLBACK (draw_text), NULL);
|
||||
gtk_drawing_area_set_draw_func (GTK_DRAWING_AREA (da), draw_text, NULL, NULL);
|
||||
}
|
||||
|
||||
if (!gtk_widget_get_visible (window))
|
||||
|
@@ -567,7 +567,6 @@ do_toolpalette (GtkWidget *do_widget)
|
||||
/* ===== passive DnD dest ===== */
|
||||
|
||||
contents = gtk_drawing_area_new ();
|
||||
gtk_widget_set_app_paintable (contents, TRUE);
|
||||
|
||||
g_object_connect (contents,
|
||||
"signal::draw", canvas_draw, NULL,
|
||||
@@ -594,7 +593,6 @@ do_toolpalette (GtkWidget *do_widget)
|
||||
/* ===== interactive DnD dest ===== */
|
||||
|
||||
contents = gtk_drawing_area_new ();
|
||||
gtk_widget_set_app_paintable (contents, TRUE);
|
||||
|
||||
g_object_connect (contents,
|
||||
"signal::draw", canvas_draw, NULL,
|
||||
|
@@ -72,8 +72,9 @@
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkVSeparator">
|
||||
<object class="GtkSeparator">
|
||||
<property name="visible">True</property>
|
||||
<property name="orientation">vertical</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
@@ -110,7 +111,6 @@
|
||||
<property name="xpad">10</property>
|
||||
<property name="ypad">10</property>
|
||||
<property name="stock-size">5</property>
|
||||
<property name="follow-state">True</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
|
@@ -1589,6 +1589,16 @@ scale_format_value (GtkScale *scale, gdouble value)
|
||||
return g_strdup_printf ("%0.*f", 1, value);
|
||||
}
|
||||
|
||||
static void
|
||||
adjustment3_value_changed (GtkAdjustment *adj, GtkProgressBar *pbar)
|
||||
{
|
||||
double fraction;
|
||||
|
||||
fraction = gtk_adjustment_get_value (adj) / (gtk_adjustment_get_upper (adj) - gtk_adjustment_get_lower (adj));
|
||||
|
||||
gtk_progress_bar_set_fraction (pbar, fraction);
|
||||
}
|
||||
|
||||
static void
|
||||
activate (GApplication *app)
|
||||
{
|
||||
@@ -1861,6 +1871,12 @@ activate (GApplication *app)
|
||||
widget2 = (GtkWidget *)gtk_builder_get_object (builder, "decrease_button");
|
||||
g_object_set_data (G_OBJECT (widget), "decrease_button", widget2);
|
||||
|
||||
adj = (GtkAdjustment *)gtk_builder_get_object (builder, "adjustment3");
|
||||
widget = (GtkWidget *)gtk_builder_get_object (builder, "progressbar1");
|
||||
widget2 = (GtkWidget *)gtk_builder_get_object (builder, "progressbar2");
|
||||
g_signal_connect (adj, "value-changed", G_CALLBACK (adjustment3_value_changed), widget);
|
||||
g_signal_connect (adj, "value-changed", G_CALLBACK (adjustment3_value_changed), widget2);
|
||||
|
||||
gtk_widget_show_all (GTK_WIDGET (window));
|
||||
|
||||
g_object_unref (builder);
|
||||
|
@@ -103,8 +103,9 @@
|
||||
<property name="page_increment">10</property>
|
||||
</object>
|
||||
<object class="GtkAdjustment" id="adjustment3">
|
||||
<property name="lower">0</property>
|
||||
<property name="upper">4</property>
|
||||
<property name="value">1</property>
|
||||
<property name="value">2</property>
|
||||
<property name="step_increment">1</property>
|
||||
<property name="page_increment">1</property>
|
||||
</object>
|
||||
@@ -412,16 +413,7 @@ Suspendisse feugiat quam quis dolor accumsan cursus.</property>
|
||||
<property name="visible">1</property>
|
||||
<property name="valign">center</property>
|
||||
<property name="menu_model">gear_menu</property>
|
||||
<style>
|
||||
<class name="image-button"/>
|
||||
</style>
|
||||
<child>
|
||||
<object class="GtkImage" id="gear_image">
|
||||
<property name="visible">1</property>
|
||||
<property name="icon_size">1</property>
|
||||
<property name="icon_name">open-menu-symbolic</property>
|
||||
</object>
|
||||
</child>
|
||||
<property name="icon-name">open-menu-symbolic</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="pack_type">end</property>
|
||||
@@ -536,13 +528,7 @@ Suspendisse feugiat quam quis dolor accumsan cursus.</property>
|
||||
<object class="GtkButton" id="button224">
|
||||
<property name="visible">1</property>
|
||||
<property name="can_focus">1</property>
|
||||
<child>
|
||||
<object class="GtkImage" id="button224img">
|
||||
<property name="visible">1</property>
|
||||
<property name="icon-name">window-close-symbolic</property>
|
||||
<property name="icon-size">1</property>
|
||||
</object>
|
||||
</child>
|
||||
<property name="icon-name">window-close-symbolic</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="fill">0</property>
|
||||
@@ -1802,16 +1788,7 @@ Suspendisse feugiat quam quis dolor accumsan cursus.</property>
|
||||
<property name="visible">1</property>
|
||||
<property name="focus-on-click">0</property>
|
||||
<property name="relief">none</property>
|
||||
<style>
|
||||
<class name="image-button"/>
|
||||
</style>
|
||||
<child>
|
||||
<object class="GtkImage" id="page2dismissi">
|
||||
<property name="visible">1</property>
|
||||
<property name="icon-name">window-close-symbolic</property>
|
||||
<property name="icon-size">1</property>
|
||||
</object>
|
||||
</child>
|
||||
<property name="icon-name">window-close-symbolic</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
@@ -1958,15 +1935,7 @@ microphone-sensitivity-medium-symbolic</property>
|
||||
<property name="menu-model">dinner_menu</property>
|
||||
<property name="halign">center</property>
|
||||
<property name="valign">center</property>
|
||||
<child>
|
||||
<object class="GtkImage">
|
||||
<property name="visible">1</property>
|
||||
<property name="icon-name">emblem-system-symbolic</property>
|
||||
</object>
|
||||
</child>
|
||||
<style>
|
||||
<class name="image-button"/>
|
||||
</style>
|
||||
<property name="icon-name">emblem-system-symbolic</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="pack_type">end</property>
|
||||
@@ -2165,16 +2134,7 @@ microphone-sensitivity-medium-symbolic</property>
|
||||
<property name="margin-bottom">6</property>
|
||||
<property name="margin-start">12</property>
|
||||
<property name="margin-end">12</property>
|
||||
<style>
|
||||
<class name="image-button"/>
|
||||
</style>
|
||||
<child>
|
||||
<object class="GtkImage">
|
||||
<property name="visible">1</property>
|
||||
<property name="icon-size">1</property>
|
||||
<property name="icon-name">appointment-soon-symbolic</property>
|
||||
</object>
|
||||
</child>
|
||||
<property name="icon-name">appointment-soon-symbolic</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
@@ -3031,16 +2991,7 @@ microphone-sensitivity-medium-symbolic</property>
|
||||
<property name="visible">1</property>
|
||||
<property name="draw-indicator">0</property>
|
||||
<property name="active">1</property>
|
||||
<style>
|
||||
<class name="image-button"/>
|
||||
</style>
|
||||
<child>
|
||||
<object class="GtkImage">
|
||||
<property name="visible">1</property>
|
||||
<property name="icon-size">1</property>
|
||||
<property name="icon-name">view-grid-symbolic</property>
|
||||
</object>
|
||||
</child>
|
||||
<property name="icon-name">view-grid-symbolic</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
@@ -3049,16 +3000,7 @@ microphone-sensitivity-medium-symbolic</property>
|
||||
<property name="visible">1</property>
|
||||
<property name="draw-indicator">0</property>
|
||||
<property name="group">grid_button</property>
|
||||
<style>
|
||||
<class name="image-button"/>
|
||||
</style>
|
||||
<child>
|
||||
<object class="GtkImage">
|
||||
<property name="visible">1</property>
|
||||
<property name="icon-size">1</property>
|
||||
<property name="icon-name">view-list-symbolic</property>
|
||||
</object>
|
||||
</child>
|
||||
<property name="icon-name">view-list-symbolic</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
@@ -3066,17 +3008,10 @@ microphone-sensitivity-medium-symbolic</property>
|
||||
<child>
|
||||
<object class="GtkButton" id="circular_button">
|
||||
<property name="visible">1</property>
|
||||
<property name="icon-name">emblem-system-symbolic</property>
|
||||
<style>
|
||||
<class name="image-button"/>
|
||||
<class name="circular"/>
|
||||
</style>
|
||||
<child>
|
||||
<object class="GtkImage">
|
||||
<property name="visible">1</property>
|
||||
<property name="icon-size">1</property>
|
||||
<property name="icon-name">emblem-system-symbolic</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
@@ -3376,48 +3311,21 @@ microphone-sensitivity-medium-symbolic</property>
|
||||
<object class="GtkButton" id="cutbutton">
|
||||
<property name="visible">1</property>
|
||||
<property name="sensitive">0</property>
|
||||
<style>
|
||||
<class name="image-button"/>
|
||||
</style>
|
||||
<child>
|
||||
<object class="GtkImage">
|
||||
<property name="visible">1</property>
|
||||
<property name="icon-size">1</property>
|
||||
<property name="icon-name">edit-cut-symbolic</property>
|
||||
</object>
|
||||
</child>
|
||||
<property name="icon-name">edit-cut-symbolic</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="copybutton">
|
||||
<property name="visible">1</property>
|
||||
<property name="sensitive">0</property>
|
||||
<style>
|
||||
<class name="image-button"/>
|
||||
</style>
|
||||
<child>
|
||||
<object class="GtkImage">
|
||||
<property name="visible">1</property>
|
||||
<property name="icon-size">1</property>
|
||||
<property name="icon-name">edit-copy-symbolic</property>
|
||||
</object>
|
||||
</child>
|
||||
<property name="icon-name">edit-copy-symbolic</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="pastebutton">
|
||||
<property name="visible">1</property>
|
||||
<property name="sensitive">0</property>
|
||||
<style>
|
||||
<class name="image-button"/>
|
||||
</style>
|
||||
<child>
|
||||
<object class="GtkImage">
|
||||
<property name="visible">1</property>
|
||||
<property name="icon-size">1</property>
|
||||
<property name="icon-name">edit-paste-symbolic</property>
|
||||
</object>
|
||||
</child>
|
||||
<property name="icon-name">edit-paste-symbolic</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
@@ -3427,16 +3335,7 @@ microphone-sensitivity-medium-symbolic</property>
|
||||
<property name="visible">1</property>
|
||||
<property name="sensitive">0</property>
|
||||
<property name="valign">end</property>
|
||||
<style>
|
||||
<class name="image-button"/>
|
||||
</style>
|
||||
<child>
|
||||
<object class="GtkImage">
|
||||
<property name="visible">1</property>
|
||||
<property name="icon-size">1</property>
|
||||
<property name="icon-name">edit-delete-symbolic</property>
|
||||
</object>
|
||||
</child>
|
||||
<property name="icon-name">edit-delete-symbolic</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">1</property>
|
||||
@@ -3472,31 +3371,13 @@ microphone-sensitivity-medium-symbolic</property>
|
||||
<child>
|
||||
<object class="GtkButton">
|
||||
<property name="visible">1</property>
|
||||
<style>
|
||||
<class name="image-button"/>
|
||||
</style>
|
||||
<child>
|
||||
<object class="GtkImage">
|
||||
<property name="visible">1</property>
|
||||
<property name="icon-name">pan-start-symbolic</property>
|
||||
<property name="icon-size">1</property>
|
||||
</object>
|
||||
</child>
|
||||
<property name="icon-name">pan-start-symbolic</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton">
|
||||
<property name="visible">1</property>
|
||||
<style>
|
||||
<class name="image-button"/>
|
||||
</style>
|
||||
<child>
|
||||
<object class="GtkImage">
|
||||
<property name="visible">1</property>
|
||||
<property name="icon-name">pan-end-symbolic</property>
|
||||
<property name="icon-size">1</property>
|
||||
</object>
|
||||
</child>
|
||||
<property name="icon-name">pan-end-symbolic</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
@@ -3570,17 +3451,11 @@ microphone-sensitivity-medium-symbolic</property>
|
||||
<property name="visible">1</property>
|
||||
<property name="relief">none</property>
|
||||
<property name="focus-on-click">0</property>
|
||||
<property name="icon-name">window-close-symbolic</property>
|
||||
<signal name="clicked" handler="tab_close_cb" object="closable_page_1"/>
|
||||
<style>
|
||||
<class name="small-button"/>
|
||||
</style>
|
||||
<child>
|
||||
<object class="GtkImage">
|
||||
<property name="visible">1</property>
|
||||
<property name="icon-name">window-close-symbolic</property>
|
||||
<property name="icon-size">1</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="pack-type">end</property>
|
||||
@@ -3611,17 +3486,11 @@ microphone-sensitivity-medium-symbolic</property>
|
||||
<property name="visible">1</property>
|
||||
<property name="relief">none</property>
|
||||
<property name="focus-on-click">0</property>
|
||||
<property name="icon-name">window-close-symbolic</property>
|
||||
<signal name="clicked" handler="tab_close_cb" object="closable_page_2"/>
|
||||
<style>
|
||||
<class name="small-button"/>
|
||||
</style>
|
||||
<child>
|
||||
<object class="GtkImage">
|
||||
<property name="visible">1</property>
|
||||
<property name="icon-name">window-close-symbolic</property>
|
||||
<property name="icon-size">1</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="pack-type">end</property>
|
||||
@@ -3710,15 +3579,8 @@ microphone-sensitivity-medium-symbolic</property>
|
||||
<property name="visible">1</property>
|
||||
<property name="valign">center</property>
|
||||
<property name="popover">notebook_info_popover</property>
|
||||
<child>
|
||||
<object class="GtkImage">
|
||||
<property name="visible">1</property>
|
||||
<property name="icon-name">emblem-important-symbolic</property>
|
||||
<property name="icon-size">1</property>
|
||||
</object>
|
||||
</child>
|
||||
<property name="icon-name">emblem-important-symbolic</property>
|
||||
<style>
|
||||
<class name="image-button"/>
|
||||
<class name="circular"/>
|
||||
<class name="flat"/>
|
||||
</style>
|
||||
|
@@ -34,13 +34,16 @@ IGNORE_HFILES= \
|
||||
gdkdisplaymanagerprivate.h \
|
||||
gdkdisplayprivate.h \
|
||||
gdkdndprivate.h \
|
||||
gdkdrawcontextprivate.h \
|
||||
gdkframeclockprivate.h \
|
||||
gdkglcontextprivate.h \
|
||||
gdkkeysprivate.h \
|
||||
gdkmonitorprivate.h \
|
||||
gdkscreenprivate.h \
|
||||
gdkseatdefaultprivate.h \
|
||||
gdkseatprivate.h \
|
||||
gdkvisualprivate.h \
|
||||
gdkvulkancontextprivate.h \
|
||||
keyname-table.h \
|
||||
win32 \
|
||||
x11 \
|
||||
|
@@ -36,6 +36,7 @@
|
||||
<xi:include href="xml/gdkframetimings.xml" />
|
||||
<xi:include href="xml/gdkdrawingcontext.xml" />
|
||||
<xi:include href="xml/gdkglcontext.xml" />
|
||||
<xi:include href="xml/gdkvulkancontext.xml" />
|
||||
<xi:include href="xml/events.xml" />
|
||||
<xi:include href="xml/event_structs.xml" />
|
||||
<xi:include href="xml/keys.xml" />
|
||||
@@ -53,7 +54,6 @@
|
||||
|
||||
<reference>
|
||||
<title>Deprecated</title>
|
||||
<xi:include href="xml/colors.xml" />
|
||||
<xi:include href="xml/gdkdevicemanager.xml" />
|
||||
</reference>
|
||||
|
||||
|
@@ -114,6 +114,8 @@ gdk_display_put_event
|
||||
gdk_display_has_pending
|
||||
gdk_display_set_double_click_time
|
||||
gdk_display_set_double_click_distance
|
||||
gdk_display_is_rgba
|
||||
gdk_display_is_composited
|
||||
gdk_display_supports_cursor_color
|
||||
gdk_display_supports_cursor_alpha
|
||||
gdk_display_get_default_cursor_size
|
||||
@@ -125,7 +127,6 @@ gdk_display_supports_clipboard_persistence
|
||||
gdk_display_store_clipboard
|
||||
gdk_display_supports_shapes
|
||||
gdk_display_supports_input_shapes
|
||||
gdk_display_supports_composite
|
||||
gdk_display_get_app_launch_context
|
||||
gdk_display_notify_startup_complete
|
||||
gdk_display_get_default_seat
|
||||
@@ -176,27 +177,10 @@ gdk_display_manager_get_type
|
||||
<TITLE>GdkScreen</TITLE>
|
||||
GdkScreen
|
||||
gdk_screen_get_default
|
||||
gdk_screen_get_system_visual
|
||||
gdk_screen_get_rgba_visual
|
||||
gdk_screen_is_composited
|
||||
gdk_screen_get_root_window
|
||||
gdk_screen_get_display
|
||||
gdk_screen_get_number
|
||||
gdk_screen_list_visuals
|
||||
gdk_screen_get_toplevel_windows
|
||||
gdk_screen_get_n_monitors
|
||||
gdk_screen_get_primary_monitor
|
||||
gdk_screen_get_monitor_geometry
|
||||
gdk_screen_get_monitor_workarea
|
||||
gdk_screen_get_monitor_at_point
|
||||
gdk_screen_get_monitor_at_window
|
||||
gdk_screen_get_monitor_height_mm
|
||||
gdk_screen_get_monitor_width_mm
|
||||
gdk_screen_get_monitor_plug_name
|
||||
gdk_screen_get_monitor_scale_factor
|
||||
gdk_screen_get_setting
|
||||
gdk_screen_get_font_options
|
||||
gdk_screen_set_font_options
|
||||
gdk_screen_get_resolution
|
||||
gdk_screen_set_resolution
|
||||
|
||||
@@ -215,34 +199,17 @@ gdk_screen_get_type
|
||||
<SECTION>
|
||||
<TITLE>Pixbufs</TITLE>
|
||||
<FILE>pixbufs</FILE>
|
||||
gdk_pixbuf_get_from_window
|
||||
gdk_pixbuf_get_from_surface
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<TITLE>Colors</TITLE>
|
||||
<FILE>colors</FILE>
|
||||
GdkColor
|
||||
gdk_color_copy
|
||||
gdk_color_free
|
||||
gdk_color_parse
|
||||
gdk_color_equal
|
||||
gdk_color_hash
|
||||
gdk_color_to_string
|
||||
|
||||
<SUBSECTION Standard>
|
||||
GDK_TYPE_COLOR
|
||||
|
||||
<SUBSECTION Private>
|
||||
gdk_color_get_type
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<TITLE>RGBA Colors</TITLE>
|
||||
<FILE>rgba_colors</FILE>
|
||||
GdkRGBA
|
||||
gdk_rgba_copy
|
||||
gdk_rgba_free
|
||||
gdk_rgba_is_clear
|
||||
gdk_rgba_is_opaque
|
||||
gdk_rgba_parse
|
||||
gdk_rgba_equal
|
||||
gdk_rgba_hash
|
||||
@@ -295,9 +262,9 @@ GdkGravity
|
||||
GdkAnchorHints
|
||||
GdkWindowEdge
|
||||
GdkWindowTypeHint
|
||||
GdkWindowAttr
|
||||
GdkWindowAttributesType
|
||||
gdk_window_new
|
||||
gdk_window_new_toplevel
|
||||
gdk_window_new_popup
|
||||
gdk_window_new_temp
|
||||
gdk_window_new_child
|
||||
gdk_window_new_input
|
||||
gdk_window_destroy
|
||||
@@ -336,10 +303,7 @@ gdk_window_resize
|
||||
gdk_window_move_resize
|
||||
gdk_window_scroll
|
||||
gdk_window_move_region
|
||||
gdk_window_flush
|
||||
gdk_window_has_native
|
||||
gdk_window_ensure_native
|
||||
gdk_window_reparent
|
||||
gdk_window_raise
|
||||
gdk_window_lower
|
||||
gdk_window_restack
|
||||
@@ -355,13 +319,13 @@ gdk_window_beep
|
||||
gdk_window_get_scale_factor
|
||||
gdk_window_set_opaque_region
|
||||
gdk_window_create_gl_context
|
||||
gdk_window_create_vulkan_context
|
||||
gdk_window_mark_paint_from_clip
|
||||
|
||||
<SUBSECTION>
|
||||
gdk_window_get_clip_region
|
||||
gdk_window_begin_draw_frame
|
||||
gdk_window_end_draw_frame
|
||||
gdk_window_should_draw
|
||||
gdk_window_get_visible_region
|
||||
|
||||
<SUBSECTION>
|
||||
@@ -372,13 +336,10 @@ gdk_window_invalidate_maybe_recurse
|
||||
gdk_window_get_update_area
|
||||
gdk_window_freeze_updates
|
||||
gdk_window_thaw_updates
|
||||
gdk_window_process_all_updates
|
||||
gdk_window_process_updates
|
||||
gdk_window_get_frame_clock
|
||||
|
||||
<SUBSECTION>
|
||||
gdk_window_set_user_data
|
||||
gdk_window_set_override_redirect
|
||||
gdk_window_set_accept_focus
|
||||
gdk_window_get_accept_focus
|
||||
gdk_window_set_focus_on_map
|
||||
@@ -395,10 +356,6 @@ gdk_window_input_shape_combine_region
|
||||
gdk_window_set_child_input_shapes
|
||||
gdk_window_merge_child_input_shapes
|
||||
gdk_window_set_title
|
||||
gdk_window_set_background
|
||||
gdk_window_set_background_rgba
|
||||
gdk_window_set_background_pattern
|
||||
gdk_window_get_background_pattern
|
||||
GDK_PARENT_RELATIVE
|
||||
gdk_window_set_cursor
|
||||
gdk_window_get_cursor
|
||||
@@ -559,12 +516,12 @@ gdk_cairo_get_clip_rectangle
|
||||
gdk_cairo_get_drawing_context
|
||||
gdk_cairo_set_source_rgba
|
||||
gdk_cairo_set_source_pixbuf
|
||||
gdk_cairo_set_source_window
|
||||
gdk_cairo_rectangle
|
||||
gdk_cairo_region
|
||||
gdk_cairo_region_create_from_surface
|
||||
gdk_cairo_surface_create_from_pixbuf
|
||||
gdk_cairo_draw_from_gl
|
||||
gdk_cairo_surface_upload_to_gl
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
@@ -702,6 +659,7 @@ gdk_device_get_last_event_window
|
||||
<SUBSECTION>
|
||||
gdk_device_tool_get_serial
|
||||
gdk_device_tool_get_tool_type
|
||||
gdk_device_tool_get_hardware_id
|
||||
|
||||
<SUBSECTION Standard>
|
||||
GDK_TYPE_AXIS_USE
|
||||
@@ -721,6 +679,8 @@ GDK_TYPE_DEVICE
|
||||
GdkDeviceClass
|
||||
gdk_device_get_type
|
||||
gdk_device_type_get_type
|
||||
gdk_device_tool_get_type
|
||||
gdk_device_tool_new
|
||||
GDK_MAX_TIMECOORD_AXES
|
||||
</SECTION>
|
||||
|
||||
@@ -1194,6 +1154,7 @@ gdk_wayland_device_get_wl_seat
|
||||
gdk_wayland_display_get_wl_compositor
|
||||
gdk_wayland_display_get_wl_display
|
||||
gdk_wayland_display_get_xdg_shell
|
||||
gdk_wayland_window_new_subsurface
|
||||
gdk_wayland_window_get_wl_surface
|
||||
gdk_wayland_window_set_use_custom_surface
|
||||
GdkWaylandWindowExported
|
||||
@@ -1299,6 +1260,22 @@ gdk_frame_timings_get_predicted_presentation_time
|
||||
gdk_frame_get_type
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>gdkdrawcontext</FILE>
|
||||
GdkDrawContext
|
||||
gdk_draw_context_get_display
|
||||
gdk_draw_context_get_window
|
||||
|
||||
<SUBSECTION Standard>
|
||||
GDK_DRAW_CONTEXT
|
||||
GDK_IS_DRAW_CONTEXT
|
||||
GDK_TYPE_DRAW_CONTEXT
|
||||
GDK_DRAW_CONTEXT_CLASS
|
||||
GDK_DRAW_CONTEXT_GET_CLASS
|
||||
GDK_IS_DRAW_CONTEXT_CLASS
|
||||
gdk_draw_context_get_type
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>gdkglcontext</FILE>
|
||||
GdkGLContext
|
||||
@@ -1321,6 +1298,7 @@ gdk_gl_context_is_legacy
|
||||
<SUBSECTION>
|
||||
GdkGLError
|
||||
gdk_gl_context_realize
|
||||
gdk_gl_context_get_damage
|
||||
gdk_gl_context_make_current
|
||||
gdk_gl_context_get_current
|
||||
gdk_gl_context_clear_current
|
||||
@@ -1378,3 +1356,23 @@ GDK_TYPE_DRAWING_CONTEXT
|
||||
GDK_DRAWING_CONTEXT
|
||||
GDK_IS_DRAWING_CONTEXT
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>gdkvulkancontext</FILE>
|
||||
GdkVulkanContext
|
||||
gdk_vulkan_context_get_device
|
||||
gdk_vulkan_context_get_draw_index
|
||||
gdk_vulkan_context_get_draw_semaphore
|
||||
gdk_vulkan_context_get_image
|
||||
gdk_vulkan_context_get_image_format
|
||||
gdk_vulkan_context_get_instance
|
||||
gdk_vulkan_context_get_n_images
|
||||
gdk_vulkan_context_get_physical_device
|
||||
gdk_vulkan_context_get_queue
|
||||
gdk_vulkan_context_get_queue_family_index
|
||||
|
||||
<SUBSECTION Standard>
|
||||
gdk_vulkan_context_get_type
|
||||
gdk_vulkan_error_quark
|
||||
gdk_vulkan_strerror
|
||||
</SECTION>
|
||||
|
@@ -18,7 +18,6 @@
|
||||
<title>API Reference</title>
|
||||
<xi:include href="xml/GskRenderer.xml" />
|
||||
<xi:include href="xml/GskRenderNode.xml" />
|
||||
<xi:include href="xml/GskRenderNodeIter.xml" />
|
||||
</reference>
|
||||
|
||||
<index id="api-index-full">
|
||||
|
@@ -1,17 +1,18 @@
|
||||
<SECTION>
|
||||
<FILE>GskRenderer</FILE>
|
||||
gsk_renderer_get_for_display
|
||||
gsk_renderer_new_for_window
|
||||
gsk_renderer_set_viewport
|
||||
gsk_renderer_get_viewport
|
||||
gsk_renderer_set_scale_factor
|
||||
gsk_renderer_get_scale_factor
|
||||
gsk_renderer_set_window
|
||||
gsk_renderer_get_window
|
||||
gsk_renderer_get_display
|
||||
gsk_renderer_realize
|
||||
gsk_renderer_unrealize
|
||||
gsk_renderer_create_render_node
|
||||
gsk_renderer_begin_draw_frame
|
||||
gsk_renderer_end_draw_frame
|
||||
gsk_renderer_render
|
||||
gsk_renderer_render_texture
|
||||
<SUBSECTION Standard>
|
||||
GSK_IS_RENDERER
|
||||
GSK_RENDERER
|
||||
@@ -26,40 +27,43 @@ GSK_TYPE_SCALING_FILTER
|
||||
<FILE>GskRenderNode</FILE>
|
||||
gsk_render_node_ref
|
||||
gsk_render_node_unref
|
||||
gsk_render_node_get_parent
|
||||
gsk_render_node_get_first_child
|
||||
gsk_render_node_get_last_child
|
||||
gsk_render_node_get_next_sibling
|
||||
gsk_render_node_get_previous_sibling
|
||||
gsk_render_node_append_child
|
||||
gsk_render_node_prepend_child
|
||||
gsk_render_node_insert_child_at_pos
|
||||
gsk_render_node_insert_child_before
|
||||
gsk_render_node_insert_child_after
|
||||
gsk_render_node_remove_child
|
||||
gsk_render_node_replace_child
|
||||
gsk_render_node_remove_all_children
|
||||
gsk_render_node_get_n_children
|
||||
gsk_render_node_contains
|
||||
gsk_render_node_set_bounds
|
||||
gsk_render_node_set_transform
|
||||
gsk_render_node_set_anchor_point
|
||||
gsk_render_node_set_opacity
|
||||
gsk_render_node_set_hidden
|
||||
gsk_render_node_is_hidden
|
||||
gsk_render_node_set_opaque
|
||||
gsk_render_node_is_opaque
|
||||
gsk_render_node_get_draw_context
|
||||
GskBlendMode
|
||||
gsk_render_node_set_blend_mode
|
||||
GskRenderNodeType
|
||||
gsk_render_node_get_node_type
|
||||
gsk_render_node_draw
|
||||
GskSerializationError
|
||||
gsk_render_node_serialize
|
||||
gsk_render_node_deserialize
|
||||
gsk_render_node_write_to_file
|
||||
GskScalingFilter
|
||||
gsk_render_node_set_scaling_filters
|
||||
gsk_render_node_get_scale_factor
|
||||
gsk_render_node_set_name
|
||||
gsk_value_set_render_node
|
||||
gsk_value_take_render_node
|
||||
gsk_value_get_render_node
|
||||
gsk_value_dup_render_node
|
||||
gsk_render_node_get_name
|
||||
gsk_render_node_get_bounds
|
||||
gsk_color_node_new
|
||||
gsk_linear_gradient_node_new
|
||||
gsk_repeating_linear_gradient_node_new
|
||||
gsk_border_node_new
|
||||
gsk_texture_node_new
|
||||
gsk_inset_shadow_node_new
|
||||
gsk_outset_shadow_node_new
|
||||
gsk_cairo_node_new
|
||||
gsk_cairo_node_get_draw_context
|
||||
gsk_container_node_new
|
||||
gsk_container_node_get_n_children
|
||||
gsk_container_node_get_child
|
||||
gsk_transform_node_new
|
||||
gsk_transform_node_get_child
|
||||
gsk_opacity_node_new
|
||||
gsk_opacity_node_get_child
|
||||
gsk_clip_node_new
|
||||
gsk_clip_node_get_child
|
||||
gsk_rounded_clip_node_new
|
||||
gsk_rounded_clip_node_get_child
|
||||
GskShadow
|
||||
gsk_shadow_node_new
|
||||
GskBlendMode
|
||||
gsk_blend_node_new
|
||||
gsk_cross_fade_node_new
|
||||
<SUBSECTION Standard>
|
||||
GSK_IS_RENDER_NODE
|
||||
GSK_RENDER_NODE
|
||||
@@ -69,19 +73,40 @@ GskRenderNode
|
||||
GskRenderNodeClass
|
||||
gsk_render_node_get_type
|
||||
GSK_TYPE_BLEND_MODE
|
||||
<SUBSECTION Standard>
|
||||
gsk_serialization_error_quark
|
||||
GSK_SERIALIZATION_ERROR
|
||||
GSK_TYPE_SERIALIZATION_ERROR
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>GskRenderNodeIter</FILE>
|
||||
gsk_render_node_iter_new
|
||||
gsk_render_node_iter_free
|
||||
gsk_render_node_iter_init
|
||||
gsk_render_node_iter_is_valid
|
||||
gsk_render_node_iter_prev
|
||||
gsk_render_node_iter_next
|
||||
gsk_render_node_iter_remove
|
||||
<FILE>GskTexture</FILE>
|
||||
gsk_texture_ref
|
||||
gsk_texture_unref
|
||||
gsk_texture_new_for_data
|
||||
gsk_texture_new_for_pixbuf
|
||||
gsk_texture_get_width
|
||||
gsk_texture_get_height
|
||||
gsk_texture_download
|
||||
<SUBSECTION Standard>
|
||||
GSK_TYPE_RENDER_NODE_ITER
|
||||
GskRenderNodeIter
|
||||
gsk_render_node_iter_get_type
|
||||
GskTexture
|
||||
gsk_texture_get_type
|
||||
GSK_TYPE_TEXTURE
|
||||
GSK_IS_TEXTURE
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>GskRoundedRect</FILE>
|
||||
GskCorner
|
||||
GskRoundedRect
|
||||
gsk_rounded_rect_init
|
||||
gsk_rounded_rect_init_copy
|
||||
gsk_rounded_rect_init_from_rect
|
||||
gsk_rounded_rect_normalize
|
||||
gsk_rounded_rect_offset
|
||||
gsk_rounded_rect_shrink
|
||||
gsk_rounded_rect_is_rectilinear
|
||||
gsk_rounded_rect_contains_point
|
||||
gsk_rounded_rect_contains_rect
|
||||
gsk_rounded_rect_intersects_rect
|
||||
</SECTION>
|
||||
|
@@ -1,3 +1,2 @@
|
||||
gsk_render_node_get_type
|
||||
gsk_render_node_iter_get_type
|
||||
gsk_renderer_get_type
|
||||
|
@@ -31,37 +31,48 @@ IGNORE_HFILES = \
|
||||
gtkapplicationprivate.h \
|
||||
gtkbindingsprivate.h \
|
||||
gtkbitmaskprivate.h \
|
||||
gtkboxgadgetprivate.h \
|
||||
gtkboxprivate.h \
|
||||
gtkbuilderprivate.h \
|
||||
gtkbuiltiniconprivate.h \
|
||||
gtkbuttonprivate.h \
|
||||
gtkcairoblurprivate.h \
|
||||
gtkcellareaboxcontextprivate.h \
|
||||
gtkcheckbuttonprivate.h \
|
||||
gtkclipboardprivate.h \
|
||||
gtkcolorchooserprivate.h \
|
||||
gtkcoloreditorprivate.h \
|
||||
gtkcolorplaneprivate.h \
|
||||
gtkcolorscaleprivate.h \
|
||||
gtkcolorswatchprivate.h \
|
||||
gtkcolorutils.h \
|
||||
gtkcomboboxprivate.h \
|
||||
gtkcomposetable.h \
|
||||
gtkcontainerprivate.h \
|
||||
gtkcssanimatedstyleprivate.h \
|
||||
gtkcssanimationprivate.h \
|
||||
gtkcssarrayvalueprivate.h \
|
||||
gtkcssbgsizevalueprivate.h \
|
||||
gtkcssbordervalueprivate.h \
|
||||
gtkcsscalcvalueprivate.h \
|
||||
gtkcsscolorvalueprivate.h \
|
||||
gtkcsscornervalueprivate.h \
|
||||
gtkcsscustomgadgetprivate.h \
|
||||
gtkcsscustompropertyprivate.h \
|
||||
gtkcssdimensionvalueprivate.h \
|
||||
gtkcsseasevalueprivate.h \
|
||||
gtkcssenginevalueprivate.h \
|
||||
gtkcssenumvalueprivate.h \
|
||||
gtkcssgadgetprivate.h \
|
||||
gtkcssiconthemevalueprivate.h \
|
||||
gtkcssimagebuiltinprivate.h \
|
||||
gtkcssimagecrossfadeprivate.h \
|
||||
gtkcssimagefallbackprivate.h \
|
||||
gtkcssimagegradientprivate.h \
|
||||
gtkcssimageiconthemeprivate.h \
|
||||
gtkcssimagelinearprivate.h \
|
||||
gtkcssimageradialprivate.h \
|
||||
gtkcssimageprivate.h \
|
||||
gtkcssimagerecolorprivate.h \
|
||||
gtkcssimagescaledprivate.h \
|
||||
gtkcssimagesurfaceprivate.h \
|
||||
gtkcssimageurlprivate.h \
|
||||
@@ -73,8 +84,10 @@ IGNORE_HFILES = \
|
||||
gtkcsslookupprivate.h \
|
||||
gtkcssmatcherprivate.h \
|
||||
gtkcssnodeprivate.h \
|
||||
gtkcssnodestylecacheprivate.h \
|
||||
gtkcssnodedeclarationprivate.h \
|
||||
gtkcssnumbervalueprivate.h \
|
||||
gtkcsspalettevalueprivate.h \
|
||||
gtkcsspathnodeprivate.h \
|
||||
gtkcssparserprivate.h \
|
||||
gtkcsspositionvalueprivate.h \
|
||||
@@ -88,6 +101,7 @@ IGNORE_HFILES = \
|
||||
gtkcssshorthandpropertyprivate.h\
|
||||
gtkcssstaticstyleprivate.h \
|
||||
gtkcssstringvalueprivate.h \
|
||||
gtkcssstylechangeprivate.h \
|
||||
gtkcssstylefuncsprivate.h \
|
||||
gtkcssstyleprivate.h \
|
||||
gtkcssstylepropertyprivate.h \
|
||||
@@ -99,9 +113,13 @@ IGNORE_HFILES = \
|
||||
gtkcssunsetvalueprivate.h \
|
||||
gtkcssvalueprivate.h \
|
||||
gtkcsswidgetnodeprivate.h \
|
||||
gtkcsswin32sizevalueprivate.h \
|
||||
gtkdebugupdatesprivate.h \
|
||||
gtkdialogprivate.h \
|
||||
gtkdndprivate.h \
|
||||
gtkentryprivate.h \
|
||||
gtkeventcontrollerprivate.h \
|
||||
gtkfilechoosernativeprivate.h \
|
||||
gtkfilechooserprivate.h \
|
||||
gtkfilechooserwidgetprivate.h \
|
||||
gtkfontchooserprivate.h \
|
||||
@@ -116,9 +134,13 @@ IGNORE_HFILES = \
|
||||
gtkgesturezoomprivate.h \
|
||||
gtkheaderbarprivate.h \
|
||||
gtkhslaprivate.h \
|
||||
gtkiconprivate.h \
|
||||
gtkiconhelperprivate.h \
|
||||
gtkiconthemeprivate.h \
|
||||
gtkiconviewprivate.h \
|
||||
gtkimagedefinitionprivate.h \
|
||||
gtkimageprivate.h \
|
||||
gtkimcontextsimpleprivate.h \
|
||||
gtkimmoduleprivate.h \
|
||||
gtklabelprivate.h \
|
||||
gtklockbuttonprivate.h \
|
||||
@@ -138,12 +160,12 @@ IGNORE_HFILES = \
|
||||
gtkprinter-private.h \
|
||||
gtkprintoperation-private.h \
|
||||
gtkprivate.h \
|
||||
gtkprogresstrackerprivate.h \
|
||||
gtkrangeprivate.h \
|
||||
gtkrecentchooserprivate.h \
|
||||
gtkrenderbackgroundprivate.h \
|
||||
gtkrenderborderprivate.h \
|
||||
gtkrendericonprivate.h \
|
||||
gtkrenderprivate.h \
|
||||
gtkroundedboxprivate.h \
|
||||
gtkscaleprivate.h \
|
||||
gtksearchengine.h \
|
||||
@@ -154,25 +176,31 @@ IGNORE_HFILES = \
|
||||
gtksearchentryprivate.h \
|
||||
gtkselectionprivate.h \
|
||||
gtksettingsprivate.h \
|
||||
gtkshortcutsshortcutprivate.h \
|
||||
gtkshortcutswindowprivate.h \
|
||||
gtksidebarrowprivate.h \
|
||||
gtksizegroup-private.h \
|
||||
gtksizerequestcacheprivate.h \
|
||||
gtksnapshotprivate.h \
|
||||
gtkstyleanimationprivate.h \
|
||||
gtkstylecascadeprivate.h \
|
||||
gtkstylecontextprivate.h \
|
||||
gtkstylepropertyprivate.h \
|
||||
gtkstyleproviderprivate.h \
|
||||
gtktextattributes.h \
|
||||
gtktextattributesprivate.h \
|
||||
gtktextchildprivate.h \
|
||||
gtktexthandleprivate.h \
|
||||
gtktextiterprivate.h \
|
||||
gtktextmarkprivate.h \
|
||||
gtktexttagprivate.h \
|
||||
gtktextviewprivate.h \
|
||||
gtktogglebuttonprivate.h \
|
||||
gtktoolbarprivate.h \
|
||||
gtktoolpaletteprivate.h \
|
||||
gtktooltipprivate.h \
|
||||
gtktooltipwindowprivate.h \
|
||||
gtkutilsprivate.h \
|
||||
gtktreeprivate.h \
|
||||
gtkwidgetprivate.h \
|
||||
gtkwin32themeprivate.h \
|
||||
@@ -219,6 +247,8 @@ IGNORE_HFILES = \
|
||||
gtkprinteroption.h \
|
||||
gtkprinteroptionset.h \
|
||||
gtkprinteroptionwidget.h \
|
||||
gtkprinter-private.h \
|
||||
gtkprintoperation-portal.h \
|
||||
gtkprint-win32.h \
|
||||
gtkprintutils.h \
|
||||
gtkprivate.h \
|
||||
@@ -246,7 +276,10 @@ IGNORE_HFILES = \
|
||||
gtktreedatalist.h \
|
||||
gtktreemenu.h \
|
||||
gtktypebuiltins.h \
|
||||
gtkwidgetpathprivate.h \
|
||||
gtkwindow-decorate.h \
|
||||
gtkwin32drawprivate.h \
|
||||
gtkwin32themeprivate.h \
|
||||
xdgmime \
|
||||
xembed.h
|
||||
|
||||
@@ -277,7 +310,6 @@ MKHTML_OPTIONS="--path=\"$(abs_srcdir):$(top_srcdir)/examples\""
|
||||
# Extra SGML files that are included by $(DOC_MAIN_SGML_FILE)
|
||||
content_files = \
|
||||
broadway.xml \
|
||||
broadwayd.xml \
|
||||
building.sgml \
|
||||
compiling.sgml \
|
||||
css-overview.xml \
|
||||
@@ -285,6 +317,7 @@ content_files = \
|
||||
drawing-model.xml \
|
||||
getting_started.xml \
|
||||
glossary.xml \
|
||||
gtk4-broadwayd.xml \
|
||||
gtk4-demo-application.xml \
|
||||
gtk4-demo.xml \
|
||||
gtk4-icon-browser.xml \
|
||||
@@ -485,17 +518,17 @@ EXTRA_DIST += version.xml.in gtk4.types.in
|
||||
########################################################################
|
||||
|
||||
man_MANS = \
|
||||
gtk4-query-immodules.1 \
|
||||
gtk4-update-icon-cache.1 \
|
||||
gtk4-encode-symbolic-svg.1 \
|
||||
gtk4-launch.1 \
|
||||
gtk4-broadwayd.1 \
|
||||
gtk4-builder-tool.1 \
|
||||
gtk4-demo.1 \
|
||||
gtk4-demo-application.1 \
|
||||
gtk4-widget-factory.1 \
|
||||
gtk4-encode-symbolic-svg.1 \
|
||||
gtk4-icon-browser.1 \
|
||||
broadwayd.1 \
|
||||
gtk4-builder-tool.1 \
|
||||
gtk4-query-settings.1
|
||||
gtk4-launch.1 \
|
||||
gtk4-query-immodules.1 \
|
||||
gtk4-query-settings.1 \
|
||||
gtk4-update-icon-cache.1 \
|
||||
gtk4-widget-factory.1
|
||||
|
||||
if ENABLE_MAN
|
||||
|
||||
|
@@ -682,7 +682,6 @@ button {
|
||||
Gradients are images that smoothly fades from one color to another. CSS
|
||||
provides ways to specify repeating and non-repeating linear and radial
|
||||
gradients. Radial gradients can be circular, or axis-aligned ellipses.
|
||||
In addition to CSS gradients, GTK+ has its own -gtk-gradient extensions.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
@@ -734,76 +733,9 @@ label {
|
||||
GTK+ extends the CSS syntax for images and also uses it for specifying icons.
|
||||
</para>
|
||||
|
||||
<literallayout><code>〈gtk image〉 = 〈gtk gradient〉 | 〈themed icon〉 | 〈scaled image〉 | 〈recolored image〉 | 〈win32 theme part〉</code>
|
||||
<literallayout><code>〈gtk image〉 = 〈themed icon〉 | 〈scaled image〉 | 〈recolored image〉 | 〈win32 theme part〉</code>
|
||||
</literallayout>
|
||||
|
||||
<para>
|
||||
GTK+ supports an alternative syntax for linear and radial gradients (which
|
||||
was implemented before CSS gradients were supported).
|
||||
</para>
|
||||
|
||||
<literallayout><code>〈gtk gradient〉 = 〈gtk linear gradient〉 | 〈gtk radial gradient〉</code>
|
||||
<code>〈gtk linear gradient〉 = -gtk-gradient(linear,</code>
|
||||
<code> [ 〈x position〉 〈y position〉 , ]{2}</code>
|
||||
<code> 〈gtk color stops〉 )</code>
|
||||
<code>〈gtk radial gradient〉 = -gtk-gradient(radial,</code>
|
||||
<code> [ 〈x position〉 〈y position〉 , 〈radius〉 , ]{2}</code>
|
||||
<code> 〈gtk color stops〉 )</code>
|
||||
<code>〈x position〉 = left | right | center | 〈number〉</code>
|
||||
<code>〈y position〉 = top | bottom | center | 〈number〉</code>
|
||||
<code>〈radius 〉 = 〈number〉</code>
|
||||
<code>〈gtk color stops〉 = 〈gtk color stop〉 [ , 〈gtk color stop〉 ]+</code>
|
||||
<code>〈gtk color stop〉 = color-stop( 〈number〉 , 〈color〉 ) | from( 〈color〉 ) | to( 〈color〉 )</code>
|
||||
</literallayout>
|
||||
|
||||
<para>
|
||||
The numbers used to specify x and y positions, radii, as well as the
|
||||
positions of color stops, must be between 0 and 1. The keywords for for
|
||||
x and y positions (left, right, top, bottom, center), map to numeric
|
||||
values of 0, 1 and 0.5 in the obvious way. Color stops using the from() and
|
||||
to() syntax are abbreviations for color-stop with numeric positions of
|
||||
0 and 1, respectively.
|
||||
</para>
|
||||
|
||||
<example>
|
||||
<title>Linear gradients</title>
|
||||
<programlisting><![CDATA[
|
||||
button {
|
||||
background-image: -gtk-gradient (linear,
|
||||
left top, right bottom,
|
||||
from(@yellow), to(@blue));
|
||||
}
|
||||
label {
|
||||
background-image: -gtk-gradient (linear,
|
||||
0 0, 0 1,
|
||||
color-stop(0, @yellow),
|
||||
color-stop(0.2, @blue),
|
||||
color-stop(1, #0f0));
|
||||
}
|
||||
]]></programlisting>
|
||||
</example>
|
||||
|
||||
<example>
|
||||
<title>Radial gradients</title>
|
||||
<programlisting><![CDATA[
|
||||
button {
|
||||
background-image: -gtk-gradient (radial,
|
||||
center center, 0,
|
||||
center center, 1,
|
||||
from(@yellow), to(@green));
|
||||
}
|
||||
label {
|
||||
background-image: -gtk-gradient (radial,
|
||||
0.4 0.4, 0.1,
|
||||
0.6 0.6, 0.7,
|
||||
color-stop(0, #f00),
|
||||
color-stop(0.1, $a0f),
|
||||
color-stop(0.2, @yellow),
|
||||
color-stop(1, @green));
|
||||
}
|
||||
]]></programlisting>
|
||||
</example>
|
||||
|
||||
<para>
|
||||
GTK+ has extensive support for loading icons from icon themes. It is
|
||||
accessible from CSS with the -gtk-icontheme syntax.
|
||||
|
@@ -456,9 +456,15 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
</tgroup>
|
||||
</table>
|
||||
|
||||
<literallayout><code>〈transform〉 = matrix( 〈number〉 [ , 〈number〉 ]{5} ) | translate( 〈length〉, 〈length〉 ) | translateX( 〈length〉 ) | translateY( 〈length〉 ) |</code>
|
||||
<code> scale( 〈number〉[ , 〈number〉 ]? ) | scaleX( 〈number〉 ) | scaleY( 〈number〉 ) | rotate( 〈angle〉 ) | skew( 〈angle〉 [ , 〈angle〉 ]? ) |</code>
|
||||
<code> skewX( 〈angle〉 ) | skewY( 〈angle〉 )</code>
|
||||
<literallayout><code>〈transform〉 = matrix( 〈number〉 [ , 〈number〉 ]{5} ) |</code>
|
||||
<code> matrix3d( 〈number〉 [ , 〈number〉 ]{15} ) |</code>
|
||||
<code> translate( 〈length〉, 〈length〉 ) | translate3d( 〈length〉, 〈length〉, 〈length〉 ) |</code>
|
||||
<code> translateX( 〈length〉 ) | translateY( 〈length〉 ) | translateZ( 〈length〉 ) |</code>
|
||||
<code> scale( 〈number〉[ , 〈number〉 ]? ) | scale3d( 〈number〉, 〈number〉, 〈number〉) |</code>
|
||||
<code> scaleX( 〈number〉 ) | scaleY( 〈number〉 ) | scaleZ( 〈number〉 ) |</code>
|
||||
<code> rotate( 〈angle〉 ) | rotate3d( 〈number〉, 〈number〉, 〈number〉, 〈angle〉 ) |</code>
|
||||
<code> rotateX( 〈angle〉 ) | rotateY( 〈angle〉 ) | rotateZ( 〈angle〉 ) |</code>
|
||||
<code> skew( 〈angle〉 [ , 〈angle〉 ]? ) | skewX( 〈angle〉 ) | skewY( 〈angle〉 )</code>
|
||||
<code>〈color palette〉 = default | 〈name〉 〈color〉 [ , 〈name〉 〈color〉 ]*</code>
|
||||
</literallayout>
|
||||
|
||||
@@ -1107,7 +1113,7 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
<entry>✓</entry>
|
||||
<entry><ulink url="http://www.w3.org/TR/2011/REC-CSS2-20110607/colors.html#propdef-background-image">CSS2</ulink>,
|
||||
<ulink url="http://www.w3.org/TR/css3-background/#background-image">CSS3</ulink></entry>
|
||||
<entry>not supported: urls without quotes, CSS radial gradients, colors in crossfades</entry>
|
||||
<entry>not supported: urls without quotes, colors in crossfades</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>background-blend-mode</entry>
|
||||
@@ -1369,5 +1375,33 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
〈binding name〉 must have been assigned to a binding set with a @binding-set rule.
|
||||
</para>
|
||||
|
||||
<table pgwide="1">
|
||||
<title>Table-related properties</title>
|
||||
<tgroup cols="7">
|
||||
<colspec colnum="4" align="center"/>
|
||||
<colspec colnum="5" align="center"/>
|
||||
<thead>
|
||||
<row><entry>Name</entry><entry>Value</entry><entry>Initial</entry><entry>Inh.</entry><entry>Ani.</entry><entry>Reference</entry><entry>Notes</entry></row>
|
||||
</thead>
|
||||
<tbody>
|
||||
<row>
|
||||
<entry>border‑spacing</entry>
|
||||
<entry><code>〈length〉{1,2}</code></entry>
|
||||
<entry><code>0</code></entry>
|
||||
<entry>✓</entry>
|
||||
<entry>✓</entry>
|
||||
<entry><ulink url="https://www.w3.org/TR/CSS2/tables.html#separated-borders">CSS2</ulink>,
|
||||
<ulink url="https://www.w3.org/TR/2016/WD-css-tables-3-20161025/#border-spacing-property">CSS3</ulink></entry>
|
||||
<entry></entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</table>
|
||||
|
||||
<para>
|
||||
The border-spacing property is respected by GtkBox and GtkGrid, and by box gadgets that
|
||||
are used internally in complex widgets.
|
||||
</para>
|
||||
|
||||
</refsect1>
|
||||
</refentry>
|
||||
|
@@ -259,6 +259,7 @@
|
||||
<xi:include href="xml/gtktooltip.xml" />
|
||||
<xi:include href="xml/gtkviewport.xml" />
|
||||
<xi:include href="xml/gtkaccessible.xml" />
|
||||
<xi:include href="xml/gtksnapshot.xml" />
|
||||
</chapter>
|
||||
|
||||
<chapter id="AbstractObjects">
|
||||
@@ -363,7 +364,7 @@
|
||||
<xi:include href="gtk4-builder-tool.xml" />
|
||||
<xi:include href="gtk4-launch.xml" />
|
||||
<xi:include href="gtk4-query-settings.xml" />
|
||||
<xi:include href="broadwayd.xml" />
|
||||
<xi:include href="gtk4-broadwayd.xml" />
|
||||
</part>
|
||||
|
||||
<part id="platform-support">
|
||||
@@ -437,6 +438,10 @@
|
||||
<title>Index of new symbols in 3.22</title>
|
||||
<xi:include href="xml/api-index-3.22.xml"><xi:fallback /></xi:include>
|
||||
</index>
|
||||
<index id="api-index-3-90" role="3.90">
|
||||
<title>Index of new symbols in 3.90</title>
|
||||
<xi:include href="xml/api-index-3.90.xml"><xi:fallback /></xi:include>
|
||||
</index>
|
||||
|
||||
<xi:include href="xml/annotation-glossary.xml"><xi:fallback /></xi:include>
|
||||
|
||||
|
@@ -2,10 +2,10 @@
|
||||
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
|
||||
]>
|
||||
<refentry id="broadwayd">
|
||||
<refentry id="gtk4-broadwayd">
|
||||
|
||||
<refentryinfo>
|
||||
<title>broadwayd</title>
|
||||
<title>gtk4-broadwayd</title>
|
||||
<productname>GTK+</productname>
|
||||
<authorgroup>
|
||||
<author>
|
||||
@@ -17,19 +17,19 @@
|
||||
</refentryinfo>
|
||||
|
||||
<refmeta>
|
||||
<refentrytitle>broadwayd</refentrytitle>
|
||||
<refentrytitle>gtk4-broadwayd</refentrytitle>
|
||||
<manvolnum>1</manvolnum>
|
||||
<refmiscinfo class="manual">User Commands</refmiscinfo>
|
||||
</refmeta>
|
||||
|
||||
<refnamediv>
|
||||
<refname>broadwayd</refname>
|
||||
<refname>gtk4-broadwayd</refname>
|
||||
<refpurpose>Broadway display server</refpurpose>
|
||||
</refnamediv>
|
||||
|
||||
<refsynopsisdiv>
|
||||
<cmdsynopsis>
|
||||
<command>broadwayd</command>
|
||||
<command>gtk4-broadwayd</command>
|
||||
<arg choice="opt">--port <replaceable>PORT</replaceable></arg>
|
||||
<arg choice="opt">--address <replaceable>ADDRESS</replaceable></arg>
|
||||
<arg choice="opt">--unixsocket <replaceable>ADDRESS</replaceable></arg>
|
||||
@@ -39,15 +39,15 @@
|
||||
|
||||
<refsect1><title>Description</title>
|
||||
<para>
|
||||
<command>broadwayd</command> is a display server for the Broadway
|
||||
<command>gtk4-broadwayd</command> is a display server for the Broadway
|
||||
GDK backend. It allows multiple GTK+ applications to display their
|
||||
windows in the same web browser, by connecting to broadwayd.
|
||||
windows in the same web browser, by connecting to gtk4-broadwayd.
|
||||
</para>
|
||||
<para>
|
||||
When using broadwayd, specify the display number to use, prefixed
|
||||
When using gtk4-broadwayd, specify the display number to use, prefixed
|
||||
with a colon, similar to X. The default display number is 0.
|
||||
<programlisting>
|
||||
broadwayd :5
|
||||
gtk4-broadwayd :5
|
||||
</programlisting>
|
||||
Then point your web browser at <literal>http://127.0.0.1:8085</literal>.
|
||||
Start your applications like this:
|
@@ -57,7 +57,8 @@
|
||||
<varlistentry>
|
||||
<term><option>simplify</option></term>
|
||||
<listitem><para>Simplifies the .ui file by removing properties that
|
||||
are set to their default values and write the resulting XML to stdout.</para></listitem>
|
||||
are set to their default values and write the resulting XML to stdout,
|
||||
or back to the input file.</para></listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><option>enumerate</option></term>
|
||||
@@ -71,6 +72,16 @@
|
||||
</variablelist>
|
||||
</refsect1>
|
||||
|
||||
<refsect1><title>Simplify Options</title>
|
||||
<para>The <option>simplify</option> command accepts the following options:</para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><option>--replace</option></term>
|
||||
<listitem><para>Write the content back to the .ui file instead of stdout.</para></listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</refsect1>
|
||||
|
||||
<refsect1><title>Preview Options</title>
|
||||
<para>The <option>preview</option> command accepts the following options:</para>
|
||||
<variablelist>
|
||||
|
@@ -250,24 +250,6 @@ GtkAssistantPrivate
|
||||
gtk_assistant_get_type
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>gtkarrow</FILE>
|
||||
<TITLE>GtkArrow</TITLE>
|
||||
GtkArrow
|
||||
gtk_arrow_new
|
||||
gtk_arrow_set
|
||||
<SUBSECTION Standard>
|
||||
GTK_ARROW
|
||||
GTK_IS_ARROW
|
||||
GTK_TYPE_ARROW
|
||||
GTK_ARROW_CLASS
|
||||
GTK_IS_ARROW_CLASS
|
||||
GTK_ARROW_GET_CLASS
|
||||
<SUBSECTION Private>
|
||||
GtkArrowPrivate
|
||||
gtk_arrow_get_type
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>gtkaspectframe</FILE>
|
||||
<TITLE>GtkAspectFrame</TITLE>
|
||||
@@ -514,28 +496,15 @@ gtk_button_new
|
||||
gtk_button_new_with_label
|
||||
gtk_button_new_with_mnemonic
|
||||
gtk_button_new_from_icon_name
|
||||
gtk_button_pressed
|
||||
gtk_button_released
|
||||
gtk_button_clicked
|
||||
gtk_button_enter
|
||||
gtk_button_leave
|
||||
gtk_button_set_relief
|
||||
gtk_button_get_relief
|
||||
gtk_button_get_label
|
||||
gtk_button_set_label
|
||||
gtk_button_get_use_underline
|
||||
gtk_button_set_use_underline
|
||||
gtk_button_set_focus_on_click
|
||||
gtk_button_get_focus_on_click
|
||||
gtk_button_set_alignment
|
||||
gtk_button_get_alignment
|
||||
gtk_button_set_image
|
||||
gtk_button_get_image
|
||||
gtk_button_set_image_position
|
||||
gtk_button_get_image_position
|
||||
gtk_button_set_always_show_image
|
||||
gtk_button_get_always_show_image
|
||||
gtk_button_get_event_window
|
||||
gtk_button_set_icon_name
|
||||
gtk_button_get_icon_name
|
||||
|
||||
<SUBSECTION Standard>
|
||||
GTK_BUTTON
|
||||
@@ -641,8 +610,6 @@ gtk_check_menu_item_get_type
|
||||
GtkColorButton
|
||||
gtk_color_button_new
|
||||
gtk_color_button_new_with_rgba
|
||||
gtk_color_button_set_rgba
|
||||
gtk_color_button_get_rgba
|
||||
gtk_color_button_set_title
|
||||
gtk_color_button_get_title
|
||||
<SUBSECTION Standard>
|
||||
@@ -657,64 +624,6 @@ gtk_color_button_get_type
|
||||
GtkColorButtonPrivate
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>gtkcolorsel</FILE>
|
||||
<TITLE>GtkColorSelection</TITLE>
|
||||
GtkColorSelection
|
||||
GtkColorSelectionClass
|
||||
gtk_color_selection_new
|
||||
gtk_color_selection_set_has_opacity_control
|
||||
gtk_color_selection_get_has_opacity_control
|
||||
gtk_color_selection_set_has_palette
|
||||
gtk_color_selection_get_has_palette
|
||||
gtk_color_selection_get_current_alpha
|
||||
gtk_color_selection_set_current_alpha
|
||||
gtk_color_selection_get_current_color
|
||||
gtk_color_selection_set_current_color
|
||||
gtk_color_selection_get_previous_alpha
|
||||
gtk_color_selection_set_previous_alpha
|
||||
gtk_color_selection_get_previous_color
|
||||
gtk_color_selection_set_previous_color
|
||||
gtk_color_selection_get_current_rgba
|
||||
gtk_color_selection_set_current_rgba
|
||||
gtk_color_selection_get_previous_rgba
|
||||
gtk_color_selection_set_previous_rgba
|
||||
gtk_color_selection_is_adjusting
|
||||
gtk_color_selection_palette_from_string
|
||||
gtk_color_selection_palette_to_string
|
||||
GtkColorSelectionChangePaletteFunc
|
||||
gtk_color_selection_set_change_palette_with_screen_hook
|
||||
GtkColorSelectionChangePaletteWithScreenFunc
|
||||
<SUBSECTION Standard>
|
||||
GTK_COLOR_SELECTION
|
||||
GTK_IS_COLOR_SELECTION
|
||||
GTK_TYPE_COLOR_SELECTION
|
||||
GTK_COLOR_SELECTION_CLASS
|
||||
GTK_IS_COLOR_SELECTION_CLASS
|
||||
GTK_COLOR_SELECTION_GET_CLASS
|
||||
<SUBSECTION Private>
|
||||
GtkColorSelectionPrivate
|
||||
gtk_color_selection_get_type
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>gtkcolorseldlg</FILE>
|
||||
<TITLE>GtkColorSelectionDialog</TITLE>
|
||||
GtkColorSelectionDialog
|
||||
gtk_color_selection_dialog_new
|
||||
gtk_color_selection_dialog_get_color_selection
|
||||
<SUBSECTION Standard>
|
||||
GTK_COLOR_SELECTION_DIALOG
|
||||
GTK_IS_COLOR_SELECTION_DIALOG
|
||||
GTK_TYPE_COLOR_SELECTION_DIALOG
|
||||
GTK_COLOR_SELECTION_DIALOG_CLASS
|
||||
GTK_IS_COLOR_SELECTION_DIALOG_CLASS
|
||||
GTK_COLOR_SELECTION_DIALOG_GET_CLASS
|
||||
<SUBSECTION Private>
|
||||
GtkColorSelectionDialogPrivate
|
||||
gtk_color_selection_dialog_get_type
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>gtkcombobox</FILE>
|
||||
<TITLE>GtkComboBox</TITLE>
|
||||
@@ -748,10 +657,6 @@ gtk_combo_box_popdown
|
||||
gtk_combo_box_get_popup_accessible
|
||||
gtk_combo_box_get_row_separator_func
|
||||
gtk_combo_box_set_row_separator_func
|
||||
gtk_combo_box_set_add_tearoffs
|
||||
gtk_combo_box_get_add_tearoffs
|
||||
gtk_combo_box_set_title
|
||||
gtk_combo_box_get_title
|
||||
gtk_combo_box_set_button_sensitivity
|
||||
gtk_combo_box_get_button_sensitivity
|
||||
gtk_combo_box_get_has_entry
|
||||
@@ -805,7 +710,6 @@ gtk_combo_box_text_get_type
|
||||
<TITLE>GtkContainer</TITLE>
|
||||
GtkContainer
|
||||
GtkContainerClass
|
||||
GTK_IS_RESIZE_CONTAINER
|
||||
GTK_CONTAINER_WARN_INVALID_CHILD_PROPERTY_ID
|
||||
gtk_container_add
|
||||
gtk_container_remove
|
||||
@@ -820,7 +724,6 @@ gtk_container_get_focus_vadjustment
|
||||
gtk_container_set_focus_vadjustment
|
||||
gtk_container_get_focus_hadjustment
|
||||
gtk_container_set_focus_hadjustment
|
||||
gtk_container_resize_children
|
||||
gtk_container_child_type
|
||||
gtk_container_child_get
|
||||
gtk_container_child_set
|
||||
@@ -832,6 +735,7 @@ gtk_container_child_notify
|
||||
gtk_container_child_notify_by_pspec
|
||||
gtk_container_forall
|
||||
gtk_container_propagate_draw
|
||||
gtk_container_snapshot_child
|
||||
gtk_container_get_focus_chain
|
||||
gtk_container_set_focus_chain
|
||||
gtk_container_unset_focus_chain
|
||||
@@ -873,8 +777,6 @@ gtk_dialog_get_widget_for_response
|
||||
gtk_dialog_get_action_area
|
||||
gtk_dialog_get_content_area
|
||||
gtk_dialog_get_header_bar
|
||||
<SUBSECTION>
|
||||
gtk_alternative_dialog_button_order
|
||||
|
||||
<SUBSECTION Standard>
|
||||
GTK_DIALOG
|
||||
@@ -893,6 +795,12 @@ gtk_dialog_get_type
|
||||
<TITLE>GtkDrawingArea</TITLE>
|
||||
GtkDrawingArea
|
||||
gtk_drawing_area_new
|
||||
gtk_drawing_area_get_content_width
|
||||
gtk_drawing_area_set_content_width
|
||||
gtk_drawing_area_get_content_height
|
||||
gtk_drawing_area_set_content_height
|
||||
GtkDrawingAreaDrawFunc
|
||||
gtk_drawing_area_set_draw_func
|
||||
<SUBSECTION Standard>
|
||||
GTK_DRAWING_AREA
|
||||
GTK_IS_DRAWING_AREA
|
||||
@@ -942,7 +850,6 @@ gtk_entry_set_buffer
|
||||
gtk_entry_set_text
|
||||
gtk_entry_get_text
|
||||
gtk_entry_get_text_length
|
||||
gtk_entry_get_text_area
|
||||
gtk_entry_set_visibility
|
||||
gtk_entry_get_visibility
|
||||
gtk_entry_set_invisible_char
|
||||
@@ -1221,6 +1128,10 @@ gtk_file_chooser_select_file
|
||||
gtk_file_chooser_set_current_folder_file
|
||||
gtk_file_chooser_set_file
|
||||
gtk_file_chooser_unselect_file
|
||||
gtk_file_chooser_add_choice
|
||||
gtk_file_chooser_remove_choice
|
||||
gtk_file_chooser_set_choice
|
||||
gtk_file_chooser_get_choice
|
||||
<SUBSECTION Standard>
|
||||
GTK_FILE_CHOOSER
|
||||
GTK_IS_FILE_CHOOSER
|
||||
@@ -1648,6 +1559,7 @@ gtk_im_context_get_type
|
||||
GtkIMContextSimple
|
||||
gtk_im_context_simple_new
|
||||
gtk_im_context_simple_add_table
|
||||
gtk_im_context_simple_add_compose_file
|
||||
GTK_MAX_COMPOSE_LEN
|
||||
<SUBSECTION Standard>
|
||||
GTK_IM_CONTEXT_SIMPLE
|
||||
@@ -1832,11 +1744,9 @@ gtk_menu_set_accel_group
|
||||
gtk_menu_get_accel_group
|
||||
gtk_menu_set_accel_path
|
||||
gtk_menu_get_accel_path
|
||||
gtk_menu_set_title
|
||||
gtk_menu_get_title
|
||||
gtk_menu_set_monitor
|
||||
gtk_menu_get_monitor
|
||||
gtk_menu_get_tearoff_state
|
||||
gtk_menu_place_on_monitor
|
||||
gtk_menu_set_reserve_toggle_size
|
||||
gtk_menu_get_reserve_toggle_size
|
||||
<SUBSECTION>
|
||||
@@ -1844,7 +1754,6 @@ gtk_menu_popdown
|
||||
gtk_menu_reposition
|
||||
gtk_menu_get_active
|
||||
gtk_menu_set_active
|
||||
gtk_menu_set_tearoff_state
|
||||
gtk_menu_attach_to_widget
|
||||
gtk_menu_detach
|
||||
gtk_menu_get_attach_widget
|
||||
@@ -1924,8 +1833,6 @@ GtkMenuItemClass
|
||||
gtk_menu_item_new
|
||||
gtk_menu_item_new_with_label
|
||||
gtk_menu_item_new_with_mnemonic
|
||||
gtk_menu_item_set_right_justified
|
||||
gtk_menu_item_get_right_justified
|
||||
gtk_menu_item_get_label
|
||||
gtk_menu_item_set_label
|
||||
gtk_menu_item_get_use_underline
|
||||
@@ -2147,6 +2054,7 @@ GTK_IS_PANED_CLASS
|
||||
GTK_PANED_GET_CLASS
|
||||
|
||||
<SUBSECTION Private>
|
||||
GtkPanedPrivate
|
||||
gtk_paned_get_type
|
||||
</SECTION>
|
||||
|
||||
@@ -2295,11 +2203,9 @@ gtk_range_set_upper_stepper_sensitivity
|
||||
gtk_range_get_upper_stepper_sensitivity
|
||||
gtk_range_get_flippable
|
||||
gtk_range_set_flippable
|
||||
gtk_range_get_min_slider_size
|
||||
gtk_range_get_range_rect
|
||||
gtk_range_get_slider_range
|
||||
gtk_range_get_slider_size_fixed
|
||||
gtk_range_set_min_slider_size
|
||||
gtk_range_set_slider_size_fixed
|
||||
|
||||
<SUBSECTION Standard>
|
||||
@@ -2747,8 +2653,6 @@ gtk_rc_property_parse_flags
|
||||
gtk_rc_property_parse_requisition
|
||||
gtk_rc_property_parse_border
|
||||
gtk_settings_reset_property
|
||||
GtkIMPreeditStyle
|
||||
GtkIMStatusStyle
|
||||
<SUBSECTION Standard>
|
||||
GtkSettingsClass
|
||||
GTK_IS_SETTINGS
|
||||
@@ -2908,24 +2812,6 @@ GtkLevelBarPrivate
|
||||
gtk_level_bar_get_type
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>gtktearoffmenuitem</FILE>
|
||||
<TITLE>GtkTearoffMenuItem</TITLE>
|
||||
GtkTearoffMenuItem
|
||||
GtkTearoffMenuItemClass
|
||||
gtk_tearoff_menu_item_new
|
||||
<SUBSECTION Standard>
|
||||
GTK_TEAROFF_MENU_ITEM
|
||||
GTK_IS_TEAROFF_MENU_ITEM
|
||||
GTK_TYPE_TEAROFF_MENU_ITEM
|
||||
GTK_TEAROFF_MENU_ITEM_CLASS
|
||||
GTK_IS_TEAROFF_MENU_ITEM_CLASS
|
||||
GTK_TEAROFF_MENU_ITEM_GET_CLASS
|
||||
<SUBSECTION Private>
|
||||
GtkTearoffMenuItemPrivate
|
||||
gtk_tearoff_menu_item_get_type
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>gtktextbuffer</FILE>
|
||||
<TITLE>GtkTextBuffer</TITLE>
|
||||
@@ -3064,7 +2950,6 @@ gtk_text_iter_inside_sentence
|
||||
gtk_text_iter_is_cursor_position
|
||||
gtk_text_iter_get_chars_in_line
|
||||
gtk_text_iter_get_bytes_in_line
|
||||
gtk_text_iter_get_attributes
|
||||
gtk_text_iter_get_language
|
||||
gtk_text_iter_is_end
|
||||
gtk_text_iter_is_start
|
||||
@@ -3157,13 +3042,6 @@ gtk_text_tag_get_priority
|
||||
gtk_text_tag_set_priority
|
||||
gtk_text_tag_event
|
||||
gtk_text_tag_changed
|
||||
GtkTextAttributes
|
||||
GtkTextAppearance
|
||||
gtk_text_attributes_new
|
||||
gtk_text_attributes_copy
|
||||
gtk_text_attributes_copy_values
|
||||
gtk_text_attributes_unref
|
||||
gtk_text_attributes_ref
|
||||
<SUBSECTION Standard>
|
||||
GTK_TEXT_TAG
|
||||
GTK_IS_TEXT_TAG
|
||||
@@ -3171,11 +3049,9 @@ GTK_TYPE_TEXT_TAG
|
||||
GTK_TEXT_TAG_CLASS
|
||||
GTK_IS_TEXT_TAG_CLASS
|
||||
GTK_TEXT_TAG_GET_CLASS
|
||||
GTK_TYPE_TEXT_ATTRIBUTES
|
||||
<SUBSECTION Private>
|
||||
GtkTextTagPrivate
|
||||
gtk_text_tag_get_type
|
||||
gtk_text_attributes_get_type
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
@@ -3276,7 +3152,6 @@ gtk_text_view_set_tabs
|
||||
gtk_text_view_get_tabs
|
||||
gtk_text_view_set_accepts_tab
|
||||
gtk_text_view_get_accepts_tab
|
||||
gtk_text_view_get_default_attributes
|
||||
gtk_text_view_im_context_filter_keypress
|
||||
gtk_text_view_reset_im_context
|
||||
gtk_text_view_set_input_purpose
|
||||
@@ -3307,30 +3182,6 @@ gtk_text_child_anchor_get_type
|
||||
GtkTextBTree
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>gtktoggleaction</FILE>
|
||||
<TITLE>GtkToggleAction</TITLE>
|
||||
GtkToggleAction
|
||||
gtk_toggle_action_new
|
||||
gtk_toggle_action_toggled
|
||||
gtk_toggle_action_set_active
|
||||
gtk_toggle_action_get_active
|
||||
gtk_toggle_action_set_draw_as_radio
|
||||
gtk_toggle_action_get_draw_as_radio
|
||||
|
||||
<SUBSECTION Standard>
|
||||
GTK_TYPE_TOGGLE_ACTION
|
||||
GTK_TOGGLE_ACTION
|
||||
GTK_TOGGLE_ACTION_CLASS
|
||||
GTK_IS_TOGGLE_ACTION
|
||||
GTK_IS_TOGGLE_ACTION_CLASS
|
||||
GTK_TOGGLE_ACTION_GET_CLASS
|
||||
GtkToggleActionClass
|
||||
<SUBSECTION Private>
|
||||
gtk_toggle_action_get_type
|
||||
GtkToggleActionPrivate
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>gtktogglebutton</FILE>
|
||||
<TITLE>GtkToggleButton</TITLE>
|
||||
@@ -4146,8 +3997,6 @@ gtk_cell_view_set_model
|
||||
gtk_cell_view_get_model
|
||||
gtk_cell_view_set_displayed_row
|
||||
gtk_cell_view_get_displayed_row
|
||||
gtk_cell_view_set_background_color
|
||||
gtk_cell_view_set_background_rgba
|
||||
gtk_cell_view_set_draw_sensitive
|
||||
gtk_cell_view_get_draw_sensitive
|
||||
gtk_cell_view_set_fit_model
|
||||
@@ -4203,7 +4052,7 @@ gtk_cell_area_has_renderer
|
||||
gtk_cell_area_foreach
|
||||
gtk_cell_area_foreach_alloc
|
||||
gtk_cell_area_event
|
||||
gtk_cell_area_render
|
||||
gtk_cell_area_snapshot
|
||||
gtk_cell_area_get_cell_allocation
|
||||
gtk_cell_area_get_cell_at_position
|
||||
gtk_cell_area_create_context
|
||||
@@ -4321,7 +4170,7 @@ GtkCellRendererClass
|
||||
gtk_cell_renderer_class_set_accessible_type
|
||||
gtk_cell_renderer_get_aligned_area
|
||||
gtk_cell_renderer_get_size
|
||||
gtk_cell_renderer_render
|
||||
gtk_cell_renderer_snapshot
|
||||
gtk_cell_renderer_activate
|
||||
gtk_cell_renderer_start_editing
|
||||
gtk_cell_renderer_stop_editing
|
||||
@@ -4601,6 +4450,33 @@ GTK_VOLUME_BUTTON_GET_CLASS
|
||||
gtk_volume_button_get_type
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>gtksnapshot</FILE>
|
||||
<TITLE>GtkSnapshot</TITLE>
|
||||
GtkSnapshot
|
||||
gtk_snapshot_push
|
||||
gtk_snapshot_push_node
|
||||
gtk_snapshot_push_transform
|
||||
gtk_snapshot_push_clip
|
||||
gtk_snapshot_push_rounded_clip
|
||||
gtk_snapshot_pop
|
||||
gtk_snapshot_pop_and_append
|
||||
gtk_snapshot_set_transform
|
||||
gtk_snapshot_transform
|
||||
gtk_snapshot_translate_2d
|
||||
gtk_snapshot_append_node
|
||||
gtk_snapshot_append_cairo_node
|
||||
gtk_snapshot_append_texture_node
|
||||
gtk_snapshot_append_color_node
|
||||
gtk_snapshot_clips_rect
|
||||
gtk_snapshot_render_background
|
||||
gtk_snapshot_render_frame
|
||||
gtk_snapshot_render_focus
|
||||
gtk_snapshot_render_layout
|
||||
gtk_snapshot_render_insertion_cursor
|
||||
gtk_snapshot_render_icon
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>gtkwidget</FILE>
|
||||
<TITLE>GtkWidget</TITLE>
|
||||
@@ -4609,7 +4485,6 @@ GtkWidgetClass
|
||||
GtkCallback
|
||||
GtkRequisition
|
||||
GtkAllocation
|
||||
GtkWidgetHelpType
|
||||
gtk_widget_new
|
||||
gtk_widget_destroy
|
||||
gtk_widget_in_destruction
|
||||
@@ -4662,16 +4537,9 @@ gtk_widget_set_device_enabled
|
||||
gtk_widget_get_device_enabled
|
||||
gtk_widget_get_toplevel
|
||||
gtk_widget_get_ancestor
|
||||
gtk_widget_get_visual
|
||||
gtk_widget_set_visual
|
||||
gtk_widget_is_ancestor
|
||||
gtk_widget_translate_coordinates
|
||||
gtk_widget_hide_on_delete
|
||||
gtk_widget_set_style
|
||||
gtk_widget_ensure_style
|
||||
gtk_widget_get_style
|
||||
gtk_widget_reset_rc_styles
|
||||
gtk_widget_get_default_style
|
||||
gtk_widget_set_direction
|
||||
GtkTextDirection
|
||||
gtk_widget_get_direction
|
||||
@@ -4679,21 +4547,6 @@ gtk_widget_set_default_direction
|
||||
gtk_widget_get_default_direction
|
||||
gtk_widget_shape_combine_region
|
||||
gtk_widget_input_shape_combine_region
|
||||
gtk_widget_path
|
||||
gtk_widget_class_path
|
||||
gtk_widget_override_background_color
|
||||
gtk_widget_override_color
|
||||
gtk_widget_override_font
|
||||
gtk_widget_override_symbolic_color
|
||||
gtk_widget_override_cursor
|
||||
gtk_widget_modify_style
|
||||
gtk_widget_get_modifier_style
|
||||
gtk_widget_modify_fg
|
||||
gtk_widget_modify_bg
|
||||
gtk_widget_modify_text
|
||||
gtk_widget_modify_base
|
||||
gtk_widget_modify_font
|
||||
gtk_widget_modify_cursor
|
||||
gtk_widget_create_pango_context
|
||||
gtk_widget_get_pango_context
|
||||
gtk_widget_set_font_options
|
||||
@@ -4701,22 +4554,17 @@ gtk_widget_get_font_options
|
||||
gtk_widget_set_font_map
|
||||
gtk_widget_get_font_map
|
||||
gtk_widget_create_pango_layout
|
||||
gtk_widget_render_icon
|
||||
gtk_widget_render_icon_pixbuf
|
||||
gtk_widget_queue_draw_area
|
||||
gtk_widget_queue_draw_region
|
||||
gtk_widget_set_app_paintable
|
||||
gtk_widget_set_redraw_on_allocate
|
||||
gtk_widget_mnemonic_activate
|
||||
gtk_widget_class_install_style_property
|
||||
gtk_widget_class_find_style_property
|
||||
gtk_widget_class_list_style_properties
|
||||
gtk_widget_region_intersect
|
||||
gtk_widget_send_focus_change
|
||||
gtk_widget_style_get
|
||||
gtk_widget_style_get_property
|
||||
gtk_widget_style_get_valist
|
||||
gtk_widget_style_attach
|
||||
gtk_widget_class_set_accessible_type
|
||||
gtk_widget_class_set_accessible_role
|
||||
gtk_widget_get_accessible
|
||||
@@ -4739,7 +4587,6 @@ gtk_widget_get_no_show_all
|
||||
gtk_widget_list_mnemonic_labels
|
||||
gtk_widget_add_mnemonic_label
|
||||
gtk_widget_remove_mnemonic_label
|
||||
gtk_widget_is_composited
|
||||
gtk_widget_error_bell
|
||||
gtk_widget_keynav_failed
|
||||
gtk_widget_get_tooltip_markup
|
||||
@@ -4754,7 +4601,6 @@ gtk_widget_trigger_tooltip_query
|
||||
gtk_widget_get_window
|
||||
gtk_widget_register_window
|
||||
gtk_widget_unregister_window
|
||||
gtk_cairo_should_draw_window
|
||||
gtk_cairo_transform_to_window
|
||||
gtk_widget_get_allocated_width
|
||||
gtk_widget_get_allocated_height
|
||||
@@ -4764,7 +4610,6 @@ gtk_widget_get_allocated_baseline
|
||||
gtk_widget_get_allocated_size
|
||||
gtk_widget_get_clip
|
||||
gtk_widget_set_clip
|
||||
gtk_widget_get_app_paintable
|
||||
gtk_widget_get_can_default
|
||||
gtk_widget_set_can_default
|
||||
gtk_widget_get_can_focus
|
||||
@@ -4775,7 +4620,6 @@ gtk_widget_get_has_window
|
||||
gtk_widget_set_has_window
|
||||
gtk_widget_get_sensitive
|
||||
gtk_widget_is_sensitive
|
||||
GtkStateType
|
||||
gtk_widget_get_visible
|
||||
gtk_widget_is_visible
|
||||
gtk_widget_set_visible
|
||||
@@ -4786,7 +4630,6 @@ gtk_widget_has_default
|
||||
gtk_widget_has_focus
|
||||
gtk_widget_has_visible_focus
|
||||
gtk_widget_has_grab
|
||||
gtk_widget_has_rc_style
|
||||
gtk_widget_is_drawable
|
||||
gtk_widget_is_toplevel
|
||||
gtk_widget_set_window
|
||||
@@ -4796,7 +4639,6 @@ gtk_widget_set_support_multidevice
|
||||
gtk_widget_get_support_multidevice
|
||||
gtk_widget_set_realized
|
||||
gtk_widget_get_realized
|
||||
gtk_widget_set_mapped
|
||||
gtk_widget_get_mapped
|
||||
gtk_widget_device_is_shadowed
|
||||
gtk_widget_get_modifier_mask
|
||||
@@ -4896,7 +4738,6 @@ GtkWindowClass
|
||||
GtkWindowType
|
||||
gtk_window_new
|
||||
gtk_window_set_title
|
||||
gtk_window_set_wmclass
|
||||
gtk_window_set_resizable
|
||||
gtk_window_get_resizable
|
||||
gtk_window_add_accel_group
|
||||
@@ -4905,8 +4746,6 @@ gtk_window_activate_focus
|
||||
gtk_window_activate_default
|
||||
gtk_window_set_modal
|
||||
gtk_window_set_default_size
|
||||
gtk_window_set_default_geometry
|
||||
gtk_window_set_geometry_hints
|
||||
gtk_window_set_gravity
|
||||
gtk_window_get_gravity
|
||||
GtkWindowPosition
|
||||
@@ -4985,10 +4824,7 @@ gtk_window_get_group
|
||||
gtk_window_has_group
|
||||
gtk_window_get_window_type
|
||||
gtk_window_move
|
||||
gtk_window_parse_geometry
|
||||
gtk_window_reshow_with_initial_size
|
||||
gtk_window_resize
|
||||
gtk_window_resize_to_geometry
|
||||
gtk_window_set_default_icon_list
|
||||
gtk_window_set_default_icon
|
||||
gtk_window_set_default_icon_from_file
|
||||
@@ -5109,11 +4945,6 @@ gtk_get_micro_version
|
||||
gtk_get_binary_age
|
||||
gtk_get_interface_age
|
||||
gtk_check_version
|
||||
gtk_major_version
|
||||
gtk_minor_version
|
||||
gtk_micro_version
|
||||
gtk_binary_age
|
||||
gtk_interface_age
|
||||
|
||||
<SUBSECTION>
|
||||
GTK_MAJOR_VERSION
|
||||
@@ -5178,8 +5009,6 @@ GTK_STYLE_PROVIDER_PRIORITY_THEME
|
||||
GTK_STYLE_PROVIDER_PRIORITY_SETTINGS
|
||||
GTK_STYLE_PROVIDER_PRIORITY_APPLICATION
|
||||
GTK_STYLE_PROVIDER_PRIORITY_USER
|
||||
gtk_style_provider_get_icon_factory
|
||||
gtk_style_provider_get_style
|
||||
gtk_style_provider_get_style_property
|
||||
<SUBSECTION Standard>
|
||||
GTK_TYPE_STYLE_PROVIDER
|
||||
@@ -5228,7 +5057,6 @@ GTK_STYLE_CLASS_ERROR
|
||||
GTK_STYLE_CLASS_EXPANDER
|
||||
GTK_STYLE_CLASS_FRAME
|
||||
GTK_STYLE_CLASS_FLAT
|
||||
GTK_STYLE_CLASS_GRIP
|
||||
GTK_STYLE_CLASS_HEADER
|
||||
GTK_STYLE_CLASS_HIGHLIGHT
|
||||
GTK_STYLE_CLASS_HORIZONTAL
|
||||
@@ -5296,8 +5124,6 @@ gtk_style_context_new
|
||||
gtk_style_context_add_provider
|
||||
gtk_style_context_add_provider_for_screen
|
||||
gtk_style_context_get
|
||||
GtkJunctionSides
|
||||
gtk_style_context_get_junction_sides
|
||||
gtk_style_context_get_parent
|
||||
gtk_style_context_get_path
|
||||
gtk_style_context_get_property
|
||||
@@ -5315,16 +5141,12 @@ gtk_style_context_get_border_color
|
||||
gtk_style_context_get_border
|
||||
gtk_style_context_get_padding
|
||||
gtk_style_context_get_margin
|
||||
gtk_style_context_get_font
|
||||
gtk_style_context_state_is_running
|
||||
gtk_style_context_lookup_color
|
||||
gtk_style_context_remove_provider
|
||||
gtk_style_context_remove_provider_for_screen
|
||||
gtk_style_context_reset_widgets
|
||||
gtk_style_context_set_background
|
||||
gtk_style_context_restore
|
||||
gtk_style_context_save
|
||||
gtk_style_context_set_junction_sides
|
||||
gtk_style_context_set_parent
|
||||
gtk_style_context_set_path
|
||||
gtk_style_context_add_class
|
||||
@@ -5351,7 +5173,6 @@ gtk_render_background
|
||||
gtk_render_background_get_clip
|
||||
gtk_render_check
|
||||
gtk_render_expander
|
||||
gtk_render_extension
|
||||
gtk_render_focus
|
||||
gtk_render_frame
|
||||
gtk_render_frame_gap
|
||||
@@ -5421,47 +5242,6 @@ gtk_css_provider_error_quark
|
||||
gtk_css_section_get_type
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>gtksymboliccolor</FILE>
|
||||
<TITLE>GtkSymbolicColor</TITLE>
|
||||
GtkSymbolicColor
|
||||
gtk_symbolic_color_new_literal
|
||||
gtk_symbolic_color_new_name
|
||||
gtk_symbolic_color_new_shade
|
||||
gtk_symbolic_color_new_alpha
|
||||
gtk_symbolic_color_new_mix
|
||||
gtk_symbolic_color_new_win32
|
||||
gtk_symbolic_color_ref
|
||||
gtk_symbolic_color_unref
|
||||
gtk_symbolic_color_resolve
|
||||
gtk_symbolic_color_to_string
|
||||
|
||||
<SUBSECTION Standard>
|
||||
GTK_TYPE_SYMBOLIC_COLOR
|
||||
|
||||
<SUBSECTION Private>
|
||||
gtk_symbolic_color_get_type
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>gtkgradient</FILE>
|
||||
<TITLE>GtkGradient</TITLE>
|
||||
GtkGradient
|
||||
gtk_gradient_new_linear
|
||||
gtk_gradient_new_radial
|
||||
gtk_gradient_add_color_stop
|
||||
gtk_gradient_ref
|
||||
gtk_gradient_unref
|
||||
gtk_gradient_resolve
|
||||
gtk_gradient_resolve_for_context
|
||||
gtk_gradient_to_string
|
||||
|
||||
<SUBSECTION Standard>
|
||||
GTK_TYPE_GRADIENT
|
||||
|
||||
gtk_gradient_get_type
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>gtkselection</FILE>
|
||||
<TITLE>Selections</TITLE>
|
||||
@@ -5585,7 +5365,6 @@ GtkTargetFlags
|
||||
GtkDragResult
|
||||
<SUBSECTION Destination Side>
|
||||
gtk_drag_dest_set
|
||||
gtk_drag_dest_set_proxy
|
||||
gtk_drag_dest_unset
|
||||
gtk_drag_dest_find_target
|
||||
gtk_drag_dest_get_target_list
|
||||
@@ -5601,7 +5380,6 @@ gtk_drag_get_source_widget
|
||||
gtk_drag_highlight
|
||||
gtk_drag_unhighlight
|
||||
<SUBSECTION Source Side>
|
||||
gtk_drag_begin
|
||||
gtk_drag_begin_with_coordinates
|
||||
gtk_drag_cancel
|
||||
gtk_drag_set_icon_widget
|
||||
@@ -5641,7 +5419,6 @@ gtk_binding_entry_add_signal
|
||||
gtk_binding_entry_add_signal_from_string
|
||||
gtk_binding_entry_skip
|
||||
gtk_binding_entry_remove
|
||||
gtk_binding_set_add_path
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
@@ -5808,7 +5585,7 @@ GtkPrintOperationPrivate
|
||||
|
||||
|
||||
<SECTION>
|
||||
<INCLUDE>gtk/gtkprintunixdialog.h</INCLUDE>
|
||||
<INCLUDE>gtk/gtkunixprint.h</INCLUDE>
|
||||
<FILE>gtkprintunixdialog</FILE>
|
||||
<TITLE>GtkPrintUnixDialog</TITLE>
|
||||
GtkPrintUnixDialog
|
||||
@@ -6155,7 +5932,7 @@ gtk_print_context_get_type
|
||||
|
||||
|
||||
<SECTION>
|
||||
<INCLUDE>gtk/gtkprintjob.h</INCLUDE>
|
||||
<INCLUDE>gtk/gtkunixprint.h</INCLUDE>
|
||||
<FILE>gtkprintjob</FILE>
|
||||
<TITLE>GtkPrintJob</TITLE>
|
||||
GtkPrintJob
|
||||
@@ -6166,6 +5943,7 @@ gtk_print_job_get_printer
|
||||
gtk_print_job_get_title
|
||||
gtk_print_job_get_status
|
||||
gtk_print_job_set_source_file
|
||||
gtk_print_job_set_source_fd
|
||||
gtk_print_job_get_surface
|
||||
gtk_print_job_send
|
||||
gtk_print_job_set_track_print_status
|
||||
@@ -6206,7 +5984,7 @@ gtk_print_job_get_type
|
||||
|
||||
|
||||
<SECTION>
|
||||
<INCLUDE>gtk/gtkpagesetupunixdialog.h</INCLUDE>
|
||||
<INCLUDE>gtk/gtkunixprint.h</INCLUDE>
|
||||
<FILE>gtkpagesetupunixdialog</FILE>
|
||||
<TITLE>GtkPageSetupUnixDialog</TITLE>
|
||||
GtkPageSetupUnixDialog
|
||||
@@ -6255,7 +6033,7 @@ gtk_mount_operation_get_parent
|
||||
gtk_mount_operation_set_screen
|
||||
gtk_mount_operation_get_screen
|
||||
gtk_show_uri
|
||||
gtk_show_uri_on_parent
|
||||
gtk_show_uri_on_window
|
||||
<SUBSECTION Standard>
|
||||
GTK_IS_MOUNT_OPERATION
|
||||
GTK_IS_MOUNT_OPERATION_CLASS
|
||||
@@ -6812,6 +6590,7 @@ GtkFlowBox
|
||||
gtk_flow_box_new
|
||||
gtk_flow_box_insert
|
||||
gtk_flow_box_get_child_at_index
|
||||
gtk_flow_box_get_child_at_pos
|
||||
gtk_flow_box_set_hadjustment
|
||||
gtk_flow_box_set_vadjustment
|
||||
|
||||
@@ -6895,8 +6674,6 @@ gtk_popover_set_constrain_to
|
||||
gtk_popover_get_constrain_to
|
||||
gtk_popover_set_modal
|
||||
gtk_popover_get_modal
|
||||
gtk_popover_set_transitions_enabled
|
||||
gtk_popover_get_transitions_enabled
|
||||
gtk_popover_set_default_widget
|
||||
gtk_popover_get_default_widget
|
||||
<SUBSECTION Standard>
|
||||
@@ -7264,6 +7041,7 @@ GTK_GET_SHORTCUTS_WINDOW_CLASS
|
||||
<SUBSECTION Private>
|
||||
GtkShortcutsWindowClass
|
||||
gtk_shortcuts_window_get_type
|
||||
GTK_SHORTCUTS_WINDOW_GET_CLASS
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
@@ -7279,6 +7057,7 @@ GTK_GET_SHORTCUTS_SECTION_CLASS
|
||||
<SUBSECTION Private>
|
||||
GtkShortcutsSectionClass
|
||||
gtk_shortcuts_section_get_type
|
||||
GTK_SHORTCUTS_SECTION_GET_CLASS
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
@@ -7294,6 +7073,7 @@ GTK_GET_SHORTCUTS_GROUP_CLASS
|
||||
<SUBSECTION Private>
|
||||
GtkShortcutsGroupClass
|
||||
gtk_shortcuts_group_get_type
|
||||
GTK_SHORTCUTS_GROUP_GET_CLASS
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
@@ -7310,4 +7090,26 @@ GTK_GET_SHORTCUTS_SHORTCUT_CLASS
|
||||
<SUBSECTION Private>
|
||||
GtkShortcutsShortcutClass
|
||||
gtk_shortcuts_shortcut_get_type
|
||||
gtk_shortcuts_shortcut_update_accel
|
||||
GTK_SHORTCUTS_SHORTCUT_GET_CLASS
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>gtkshortcutlabel</FILE>
|
||||
GtkShortcutLabel
|
||||
gtk_shortcut_label_new
|
||||
gtk_shortcut_label_get_accelerator
|
||||
gtk_shortcut_label_get_disabled_text
|
||||
gtk_shortcut_label_set_accelerator
|
||||
gtk_shortcut_label_set_disabled_text
|
||||
|
||||
<SUBSECTION Private>
|
||||
GtkShortcutLabelClass
|
||||
gtk_shortcut_label_get_type
|
||||
GTK_TYPE_SHORTCUT_LABEL
|
||||
GTK_SHORTCUT_LABEL
|
||||
GTK_SHORTCUT_LABEL_CLASS
|
||||
GTK_SHORTCUT_LABEL_GET_CLASS
|
||||
GTK_IS_SHORTCUT_LABEL
|
||||
GTK_IS_SHORTCUT_LABEL_CLASS
|
||||
</SECTION>
|
||||
|
@@ -52,6 +52,14 @@
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<title>Do not use widget style properties</title>
|
||||
<para>
|
||||
Style properties do not exist in GTK+ 4. You should stop using them in
|
||||
your custom CSS.
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<title>Review your window creation flags</title>
|
||||
<para>
|
||||
@@ -98,6 +106,14 @@
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<title>Stop using gdk_pixbuf_get_from_window() and gdk_cairo_set_source_window()</title>
|
||||
<para>
|
||||
These functions are not supported in GTK+ 4. Instead, either use backend-specific
|
||||
APIs, or render your widgets using gtk_widget_render().
|
||||
</para>
|
||||
</section>
|
||||
|
||||
</section>
|
||||
|
||||
<section>
|
||||
@@ -110,6 +126,17 @@
|
||||
have been either impossible or impractical.
|
||||
</para>
|
||||
|
||||
<section>
|
||||
<title>Adapt to GdkWindow API changes</title>
|
||||
<para>
|
||||
The gdk_window_new() function has been replaced by a number of more
|
||||
specialized constructors: gdk_window_new_toplevel(), gdk_window_new_popup(),
|
||||
gdk_window_new_temp(), gdk_window_new_child(), gdk_window_new_input(),
|
||||
gdk_wayland_window_new_subsurface(). Use the appropriate ones to create
|
||||
your windows.
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<title>Adapt to GtkStyleContext API changes</title>
|
||||
<para>
|
||||
@@ -121,6 +148,15 @@
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<title>Adapt to GtkCssProvider API changes</title>
|
||||
<para>
|
||||
In GTK+ 4, the various #GtkCssProvider load functions have lost
|
||||
their #GError argument. If you want to handle CSS loading errors,
|
||||
use the #GtkCssProvider::parsing-error signal instead.
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<title>Stop using GtkContainer::border-width</title>
|
||||
<para>
|
||||
@@ -133,7 +169,7 @@
|
||||
<section>
|
||||
<title>Adapt to GtkWidget's size request changes</title>
|
||||
<para>
|
||||
GTK+3 used five different virtual functions in GtkWidget to
|
||||
GTK+ 3 used five different virtual functions in GtkWidget to
|
||||
implement size requisition, namely the gtk_widget_get_preferred_width()
|
||||
family of functions. To simplify widget implementations, GTK+4 uses
|
||||
only one virtual function, GtkWidgetClass::measure() that widgets
|
||||
@@ -141,6 +177,43 @@
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<title>Don't use -gtk-gradient in your CSS</title>
|
||||
<para>
|
||||
GTK+ now supports standard CSS syntax for both linear and radial
|
||||
gradients, just use those.
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<title>Use gtk_widget_measure</title>
|
||||
<para>
|
||||
gtk_widget_measure replaces the various gtk_widget_get_preferred_ functions
|
||||
for querying sizes.
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<title>Adapt to drawing model changes</title>
|
||||
<para>
|
||||
This area has seen the most radical changes in the transition from GTK+ 3
|
||||
to GTK+ 4. Widgets no longer use a draw() function to render their contents
|
||||
to a cairo surface. Instead, they have a snapshot() function that creates
|
||||
one or more GskRenderNodes to represent their content. Third-party widgets
|
||||
that use a draw() function or a #GtkWidget::draw signal handler for custom
|
||||
drawing will need to be converted to use gtk_snapshot_append_cairo_node().
|
||||
</para>
|
||||
<para>
|
||||
The auxiliary #GtkSnapshot object has APIs to help with creating render
|
||||
nodes.
|
||||
</para>
|
||||
<para>
|
||||
If you are using a #GtkDrawingArea for custom drawing, you need to switch
|
||||
to using gtk_drawing_area_set_draw_func() to set a draw function. This is
|
||||
pretty much a direct replacement for a #GtkWidget::draw signal handler.
|
||||
</para>
|
||||
</section>
|
||||
|
||||
</section>
|
||||
|
||||
</chapter>
|
||||
|
@@ -570,7 +570,7 @@ RGBA drawing capabilities.
|
||||
Note that the presence of an RGBA visual is no guarantee that the
|
||||
window will actually appear transparent on screen. On X11, this
|
||||
requires a compositing manager to be running. See
|
||||
gtk_widget_is_composited() for a way to find out if the alpha
|
||||
gdk_display_is_composited() for a way to find out if the alpha
|
||||
channel will be respected.
|
||||
</para>
|
||||
</answer>
|
||||
|
@@ -178,18 +178,6 @@ additional environment variables.
|
||||
<term>no-css-cache</term>
|
||||
<listitem><para>Bypass caching for CSS style properties</para></listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>no-pixel-cache</term>
|
||||
<listitem><para>Disable the pixel cache</para></listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>plugsocket</term>
|
||||
<listitem><para>Cross-process embedding</para></listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>pixel-cache</term>
|
||||
<listitem><para>Pixel cache</para></listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>printing</term>
|
||||
<listitem><para>Printing support</para></listitem>
|
||||
@@ -222,6 +210,10 @@ additional environment variables.
|
||||
<term>layout</term>
|
||||
<listitem><para>Show layout borders</para></listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>snapshot</term>
|
||||
<listitem><para>Include debug render nodes in the generated snapshots</para></listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
The special value <literal>all</literal> can be used to turn on all
|
||||
debug options. The special value <literal>help</literal> can be used
|
||||
|
@@ -148,13 +148,10 @@ displays after the widget is created with gtk_text_view_set_buffer().
|
||||
|
||||
<para>
|
||||
|
||||
There are two ways to affect text attributes in #GtkTextView.
|
||||
You can change the default attributes for a given #GtkTextView, and you can
|
||||
apply tags that change the attributes for a region of text. For text features
|
||||
that come from the theme — such as font and foreground color — use
|
||||
standard #GtkWidget functions such as gtk_widget_modify_font() or
|
||||
gtk_widget_override_color(). For other attributes there are dedicated methods on
|
||||
#GtkTextView such as gtk_text_view_set_tabs().
|
||||
The way to affect text attributes in #GtkTextView is to
|
||||
apply tags that change the attributes for a region of text.
|
||||
For text features that come from the theme — such as font and
|
||||
foreground color — use CSS to override their default values.
|
||||
|
||||
<informalexample><programlisting>
|
||||
GtkWidget *view;
|
||||
@@ -163,6 +160,8 @@ gtk_widget_override_color(). For other attributes there are dedicated methods on
|
||||
PangoFontDescription *font_desc;
|
||||
GdkRGBA rgba;
|
||||
GtkTextTag *tag;
|
||||
GtkCssProvider *provider;
|
||||
GtkStyleContext *context;
|
||||
|
||||
view = gtk_text_view_new (<!-- -->);
|
||||
|
||||
@@ -170,14 +169,18 @@ gtk_widget_override_color(). For other attributes there are dedicated methods on
|
||||
|
||||
gtk_text_buffer_set_text (buffer, "Hello, this is some text", -1);
|
||||
|
||||
/* Change default font throughout the widget */
|
||||
font_desc = pango_font_description_from_string ("Serif 15");
|
||||
gtk_widget_modify_font (view, font_desc);
|
||||
pango_font_description_free (font_desc);
|
||||
|
||||
/* Change default color throughout the widget */
|
||||
gdk_rgba_parse ("green", &rgba);
|
||||
gtk_widget_override_color (view, GTK_STATE_FLAG_NORMAL, &rgba);
|
||||
/* Change default font and color throughout the widget */
|
||||
provider = gtk_css_provider_new ();
|
||||
gtk_css_provider_load_from_data (provider,
|
||||
"textview {"
|
||||
" font: 15 serif;"
|
||||
" color: green;"
|
||||
"}",
|
||||
-1);
|
||||
context = gtk_widget_get_style_context (view);
|
||||
gtk_style_context_add_provider (context,
|
||||
GTK_STYLE_PROVIDER (provider),
|
||||
GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
|
||||
|
||||
/* Change left margin throughout the widget */
|
||||
gtk_text_view_set_left_margin (GTK_TEXT_VIEW (view), 30);
|
||||
|
@@ -1,6 +1,7 @@
|
||||
#include <gdk/gdk.h>
|
||||
#include <gtk/gtk.h>
|
||||
#include <gdkx.h>
|
||||
#include <cairo-xlib.h>
|
||||
#include <stdio.h>
|
||||
#include <errno.h>
|
||||
#include <sys/wait.h>
|
||||
@@ -136,9 +137,10 @@ static GdkPixbuf *
|
||||
take_window_shot (Window child,
|
||||
DecorationType decor)
|
||||
{
|
||||
GdkWindow *window, *root_window;
|
||||
cairo_surface_t *surface;
|
||||
XWindowAttributes attrs;
|
||||
Window xid;
|
||||
gint x_orig, y_orig;
|
||||
Display *dpy;
|
||||
gint x = 0, y = 0;
|
||||
gint width, height;
|
||||
|
||||
@@ -150,35 +152,39 @@ take_window_shot (Window child,
|
||||
else
|
||||
xid = child;
|
||||
|
||||
window = gdk_x11_window_foreign_new_for_display (gdk_display_get_default (), xid);
|
||||
root_window = gdk_screen_get_root_window (gdk_window_get_screen (window));
|
||||
dpy = gdk_x11_display_get_xdisplay (gdk_display_get_default ());
|
||||
XGetWindowAttributes (dpy, xid, &attrs);
|
||||
|
||||
width = gdk_window_get_width (window);
|
||||
height = gdk_window_get_height (window);
|
||||
gdk_window_get_origin (window, &x_orig, &y_orig);
|
||||
width = attrs.width;
|
||||
height = attrs.height;
|
||||
|
||||
if (x_orig < 0)
|
||||
if (attrs.x < 0)
|
||||
{
|
||||
x = - x_orig;
|
||||
width = width + x_orig;
|
||||
x_orig = 0;
|
||||
x = - attrs.x;
|
||||
width = width + attrs.x;
|
||||
}
|
||||
|
||||
if (y_orig < 0)
|
||||
if (attrs.y < 0)
|
||||
{
|
||||
y = - y_orig;
|
||||
height = height + y_orig;
|
||||
y_orig = 0;
|
||||
y = - attrs.y;
|
||||
height = height + attrs.y;
|
||||
}
|
||||
|
||||
if (x_orig + width > gdk_window_get_width (root_window))
|
||||
width = gdk_window_get_width (root_window) - x_orig;
|
||||
if (attrs.x + x + width > WidthOfScreen (DefaultScreenOfDisplay (dpy)))
|
||||
width = WidthOfScreen (DefaultScreenOfDisplay (dpy)) - attrs.x - x;
|
||||
|
||||
if (y_orig + height > gdk_window_get_height (root_window))
|
||||
height = gdk_window_get_height (root_window) - y_orig;
|
||||
if (attrs.y + y + height > HeightOfScreen (DefaultScreenOfDisplay (dpy)))
|
||||
height = HeightOfScreen (DefaultScreenOfDisplay (dpy)) - attrs.y - y;
|
||||
|
||||
tmp = gdk_pixbuf_get_from_window (window,
|
||||
x, y, width, height);
|
||||
surface = cairo_xlib_surface_create (dpy,
|
||||
xid,
|
||||
attrs.visual,
|
||||
attrs.width,
|
||||
attrs.height);
|
||||
tmp = gdk_pixbuf_get_from_surface (surface,
|
||||
x, y,
|
||||
width, height);
|
||||
cairo_surface_destroy (surface);
|
||||
|
||||
if (tmp != NULL)
|
||||
{
|
||||
@@ -203,8 +209,8 @@ take_window_shot (Window child,
|
||||
|
||||
static GList *toplevels;
|
||||
static guint shot_id;
|
||||
static gboolean
|
||||
|
||||
static gboolean
|
||||
window_is_csd (GdkWindow *window)
|
||||
{
|
||||
gboolean set;
|
||||
|
@@ -798,7 +798,6 @@ create_page_setup_dialog (void)
|
||||
settings);
|
||||
|
||||
info = new_widget_info ("pagesetupdialog", widget, ASIS);
|
||||
gtk_widget_set_app_paintable (info->window, FALSE);
|
||||
info->include_decorations = TRUE;
|
||||
|
||||
return info;
|
||||
|
@@ -15,7 +15,7 @@ main (int argc,
|
||||
GObject *window;
|
||||
GObject *button;
|
||||
|
||||
gtk_init (&argc, &argv);
|
||||
gtk_init ();
|
||||
|
||||
/* Construct a GtkBuilder instance and load our UI description */
|
||||
builder = gtk_builder_new ();
|
||||
|
@@ -67,6 +67,7 @@ gdk_public_h_sources = \
|
||||
gdkdisplay.h \
|
||||
gdkdisplaymanager.h \
|
||||
gdkdnd.h \
|
||||
gdkdrawcontext.h \
|
||||
gdkdrawingcontext.h \
|
||||
gdkevents.h \
|
||||
gdkframetimings.h \
|
||||
@@ -90,14 +91,11 @@ gdk_public_h_sources = \
|
||||
gdkthreads.h \
|
||||
gdktypes.h \
|
||||
gdkvisual.h \
|
||||
gdkvulkancontext.h \
|
||||
gdkwindow.h
|
||||
|
||||
deprecated_h_sources = \
|
||||
deprecated/gdkcolor.h
|
||||
|
||||
gdk_h_sources = \
|
||||
$(gdk_public_h_sources) \
|
||||
$(deprecated_h_sources)
|
||||
$(gdk_public_h_sources)
|
||||
|
||||
gdk_private_headers = \
|
||||
gdk-private.h \
|
||||
@@ -110,6 +108,7 @@ gdk_private_headers = \
|
||||
gdkdisplaymanagerprivate.h \
|
||||
gdkdisplayprivate.h \
|
||||
gdkdndprivate.h \
|
||||
gdkdrawcontextprivate.h \
|
||||
gdkdrawingcontextprivate.h \
|
||||
gdkframeclockidle.h \
|
||||
gdkframeclockprivate.h \
|
||||
@@ -122,14 +121,10 @@ gdk_private_headers = \
|
||||
gdkintl.h \
|
||||
gdkkeysprivate.h \
|
||||
gdkvisualprivate.h \
|
||||
gdkvulkancontextprivate.h \
|
||||
gdkx.h
|
||||
|
||||
deprecated_c_sources = \
|
||||
deprecated/gdkcolor.c
|
||||
|
||||
gdk_c_sources = \
|
||||
$(deprecated_c_sources) \
|
||||
gdk-private.c \
|
||||
gdk.c \
|
||||
gdkapplaunchcontext.c \
|
||||
gdkcairo.c \
|
||||
@@ -142,6 +137,7 @@ gdk_c_sources = \
|
||||
gdkdisplay.c \
|
||||
gdkdisplaymanager.c \
|
||||
gdkdnd.c \
|
||||
gdkdrawcontext.c \
|
||||
gdkdrawingcontext.c \
|
||||
gdkevents.c \
|
||||
gdkframetimings.c \
|
||||
@@ -163,6 +159,7 @@ gdk_c_sources = \
|
||||
gdkseatdefault.c \
|
||||
gdkselection.c \
|
||||
gdkvisual.c \
|
||||
gdkvulkancontext.c \
|
||||
gdkwindow.c \
|
||||
gdkwindowimpl.c
|
||||
|
||||
@@ -211,8 +208,6 @@ endif # USE_QUARTZ
|
||||
|
||||
if USE_WIN32
|
||||
libgdk_4_la_LIBADD += win32/libgdk-win32.la
|
||||
libgdk_4_la_DEPENDENCIES = win32/libgdk-win32.la win32/rc/gdk-win32-res.o
|
||||
libgdk_4_la_LDFLAGS += -Wl,win32/rc/gdk-win32-res.o
|
||||
endif # USE_WIN32
|
||||
|
||||
if USE_BROADWAY
|
||||
@@ -340,7 +335,7 @@ w32_introspection_files = \
|
||||
win32/gdkwindow-win32.c
|
||||
|
||||
if OS_WIN32
|
||||
GdkWin32-noinst-4.0.gir: libgdk-3.la Gdk-noinst-4.0.gir Makefile
|
||||
GdkWin32-noinst-4.0.gir: libgdk-4.la Gdk-noinst-4.0.gir Makefile
|
||||
GdkWin32_noinst_4_0_gir_SCANNERFLAGS = \
|
||||
--identifier-prefix=Gdk \
|
||||
--c-include="gdk/gdkwin32.h" \
|
||||
@@ -355,7 +350,7 @@ endif # OS_WIN32
|
||||
|
||||
noinst_DATA = $(INTROSPECTION_GIRS)
|
||||
|
||||
CLEANFILES += $(gir_DATA)
|
||||
CLEANFILES += $(INTROSPECTION_GIRS)
|
||||
|
||||
endif # HAVE_INTROSPECTION
|
||||
|
||||
@@ -444,29 +439,20 @@ stamp-gc-h: $(top_builddir)/config.status
|
||||
#
|
||||
# Resources
|
||||
#
|
||||
|
||||
glsl_sources := $(wildcard $(srcdir)/resources/glsl/*.glsl)
|
||||
|
||||
gdk.gresource.xml: Makefile.am
|
||||
$(AM_V_GEN) echo "<?xml version='1.0' encoding='UTF-8'?>" > $@; \
|
||||
echo "<gresources>" >> $@; \
|
||||
echo " <gresource prefix='/org/gtk/libgdk'>" >> $@; \
|
||||
for f in $(srcdir)/resources/glsl/*.glsl; do \
|
||||
for f in $(glsl_sources); do \
|
||||
n=`basename $$f`; \
|
||||
echo " <file alias='glsl/$$n'>resources/glsl/$$n</file>" >> $@; \
|
||||
done; \
|
||||
echo " </gresource>" >> $@; \
|
||||
echo "</gresources>" >> $@;
|
||||
|
||||
glsl_sources = \
|
||||
resources/glsl/gl3-texture-2d.fs.glsl \
|
||||
resources/glsl/gl3-texture-2d.vs.glsl \
|
||||
resources/glsl/gl3-texture-rect.fs.glsl \
|
||||
resources/glsl/gl3-texture-rect.vs.glsl \
|
||||
resources/glsl/gl2-texture-2d.fs.glsl \
|
||||
resources/glsl/gl2-texture-2d.fs.glsl \
|
||||
resources/glsl/gl2-texture-rect.vs.glsl \
|
||||
resources/glsl/gl2-texture-rect.vs.glsl \
|
||||
resources/glsl/gles2-texture.fs.glsl \
|
||||
resources/glsl/gles2-texture.vs.glsl
|
||||
|
||||
EXTRA_DIST += $(glsl_sources)
|
||||
CLEANFILES += gdk.gresource.xml
|
||||
|
||||
@@ -510,20 +496,20 @@ INTROSPECTION_INTERMEDIATE_ITEMS = \
|
||||
$(top_builddir)/build/win32/GdkWin32_4_0_gir_list
|
||||
|
||||
Gdk_4_0_gir_MSVC_FILES = $(introspection_files)
|
||||
Gdk_4_0_gir_MSVC_EXPORT_PACKAGES = $(Gdk_4_0_gir_EXPORT_PACKAGES)
|
||||
Gdk_4_0_gir_MSVC_INCLUDE_GIRS = $(Gdk_4_0_gir_INCLUDES)
|
||||
Gdk_4_0_gir_MSVC_LIBS = gdk-4.0
|
||||
Gdk_4_0_gir_MSVC_EXPORT_PACKAGES = $(Gdk_noinst_4_0_gir_EXPORT_PACKAGES)
|
||||
Gdk_4_0_gir_MSVC_INCLUDE_GIRS = $(Gdk_noinst_4_0_gir_INCLUDES)
|
||||
Gdk_4_0_gir_MSVC_LIBS = gtk-4
|
||||
Gdk_4_0_gir_MSVC_CFLAGS = $(BASE_MSVC_GIR_CFLAGS)
|
||||
Gdk_4_0_gir_MSVC_SCANNERFLAGS = $(Gdk_4_0_gir_SCANNERFLAGS)
|
||||
Gdk_4_0_gir_MSVC_SCANNERFLAGS = $(Gdk_noinst_4_0_gir_SCANNERFLAGS)
|
||||
|
||||
GdkWin32_4_0_gir_MSVC_FILES = $(w32_introspection_files)
|
||||
GdkWin32_4_0_gir_MSVC_INCLUDE_GIRS = $(GdkWin32_4_0_gir_INCLUDES)
|
||||
GdkWin32_4_0_gir_MSVC_INCLUDE_GIRS = $(GdkWin32_noinst_4_0_gir_INCLUDES)
|
||||
GdkWin32_4_0_gir_MSVC_LIBS = $(Gdk_4_0_gir_MSVC_LIBS)
|
||||
GdkWin32_4_0_gir_MSVC_CFLAGS = $(BASE_MSVC_GIR_CFLAGS)
|
||||
GdkWin32_4_0_gir_MSVC_SCANNERFLAGS = \
|
||||
--identifier-prefix=Gdk \
|
||||
--c-include="gdk/gdkwin32.h" \
|
||||
--include-uninstalled=./Gdk-noinst-4.0.gir
|
||||
--include-uninstalled=./Gdk-4.0.gir
|
||||
|
||||
include $(top_srcdir)/build/Makefile.msvc-introspection
|
||||
|
||||
|
@@ -20,7 +20,7 @@ LDADDS = $(GDK_DEP_LIBS) -lrt
|
||||
|
||||
noinst_LTLIBRARIES = libgdk-broadway.la
|
||||
|
||||
bin_PROGRAMS = broadwayd
|
||||
bin_PROGRAMS = gtk4-broadwayd
|
||||
|
||||
libgdkinclude_HEADERS = \
|
||||
gdkbroadway.h
|
||||
@@ -29,8 +29,7 @@ libgdkbroadwayinclude_HEADERS = \
|
||||
gdkbroadwaydisplay.h \
|
||||
gdkbroadwaywindow.h \
|
||||
gdkbroadwaycursor.h \
|
||||
gdkbroadwaymonitor.h \
|
||||
gdkbroadwayvisual.h
|
||||
gdkbroadwaymonitor.h
|
||||
|
||||
EXTRA_DIST += toarray.pl
|
||||
|
||||
@@ -73,7 +72,6 @@ libgdk_broadway_la_SOURCES = \
|
||||
gdkscreen-broadway.h \
|
||||
gdkselection-broadway.c \
|
||||
gdktestutils-broadway.c \
|
||||
gdkvisual-broadway.c \
|
||||
gdkwindow-broadway.c \
|
||||
gdkwindow-broadway.h \
|
||||
gdkprivate-broadway.h \
|
||||
@@ -86,7 +84,7 @@ libgdk_broadway_la_LIBADD = \
|
||||
$(NULL)
|
||||
endif
|
||||
|
||||
broadwayd_SOURCES = \
|
||||
gtk4_broadwayd_SOURCES = \
|
||||
broadway-protocol.h \
|
||||
broadwayd.c \
|
||||
broadway-server.h \
|
||||
@@ -97,9 +95,9 @@ broadwayd_SOURCES = \
|
||||
broadway-output.c
|
||||
|
||||
if OS_WIN32
|
||||
broadwayd_LDADD = $(GDK_DEP_LIBS) -lws2_32
|
||||
gtk4_broadwayd_LDADD = $(GDK_DEP_LIBS) -lws2_32
|
||||
else
|
||||
broadwayd_LDADD = $(GDK_DEP_LIBS) @SHM_LIBS@
|
||||
gtk4_broadwayd_LDADD = $(GDK_DEP_LIBS) @SHM_LIBS@
|
||||
endif
|
||||
|
||||
MAINTAINERCLEANFILES = $(broadway_built_sources)
|
||||
@@ -108,7 +106,7 @@ EXTRA_DIST += $(broadway_built_sources)
|
||||
BUILT_SOURCES = $(broadway_built_sources)
|
||||
|
||||
# ------------------- MSVC Build Items ----------------
|
||||
MSVCPROJS = gdk4-broadway broadwayd
|
||||
MSVCPROJS = gdk4-broadway gtk4-broadwayd
|
||||
|
||||
gdk4_broadway_FILES = $(libgdk_broadway_la_SOURCES)
|
||||
gdk4_broadway_EXCLUDES = dummy
|
||||
@@ -118,14 +116,14 @@ gdk4_broadway_HEADERS_INST = $(libgdkbroadwayinclude_HEADERS)
|
||||
|
||||
gdk4_broadway_HEADERS_EXCLUDES = dummy
|
||||
|
||||
broadwayd_FILES = $(broadwayd_SOURCES)
|
||||
broadwayd_EXCLUDES = dummy
|
||||
gtk4_broadwayd_FILES = $(gtk4_broadwayd_SOURCES)
|
||||
gtk4_broadwayd_EXCLUDES = dummy
|
||||
|
||||
include $(top_srcdir)/build/Makefile.msvcproj
|
||||
|
||||
dist-hook: \
|
||||
$(top_builddir)/build/win32/vs12/gdk4-broadway.vcxproj \
|
||||
$(top_builddir)/build/win32/vs12/broadwayd.vcxproj \
|
||||
$(top_builddir)/build/win32/vs12/gtk4-broadwayd.vcxproj \
|
||||
$(top_builddir)/build/win32/vs12/gdk4-broadway.vs12.headers
|
||||
|
||||
-include $(top_srcdir)/git.mk
|
||||
|
@@ -449,7 +449,7 @@ main (int argc, char *argv[])
|
||||
{
|
||||
if (*argv[1] != ':')
|
||||
{
|
||||
g_printerr ("Usage broadwayd [:DISPLAY]\n");
|
||||
g_printerr ("Usage gtk4-broadwayd [:DISPLAY]\n");
|
||||
exit (1);
|
||||
}
|
||||
display = argv[1];
|
||||
|
@@ -33,7 +33,6 @@
|
||||
#include <gdk/broadway/gdkbroadwaywindow.h>
|
||||
#include <gdk/broadway/gdkbroadwaycursor.h>
|
||||
#include <gdk/broadway/gdkbroadwaymonitor.h>
|
||||
#include <gdk/broadway/gdkbroadwayvisual.h>
|
||||
|
||||
#undef __GDKBROADWAY_H_INSIDE__
|
||||
|
||||
|
@@ -1,46 +0,0 @@
|
||||
/* gdkbroadwayvisual.h
|
||||
*
|
||||
* Copyright (C) 2011 Alexander Larsson <alexl@redhat.com>
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef __GDK_BROADWAY_VISUAL_H__
|
||||
#define __GDK_BROADWAY_VISUAL_H__
|
||||
|
||||
#include <gdk/gdk.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define GDK_TYPE_BROADWAY_VISUAL (gdk_broadway_visual_get_type ())
|
||||
#define GDK_BROADWAY_VISUAL(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), GDK_TYPE_BROADWAY_VISUAL, GdkBroadwayVisual))
|
||||
#define GDK_BROADWAY_VISUAL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDK_TYPE_BROADWAY_VISUAL, GdkBroadwayVisualClass))
|
||||
#define GDK_IS_BROADWAY_VISUAL(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_BROADWAY_VISUAL))
|
||||
#define GDK_IS_BROADWAY_VISUAL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDK_TYPE_BROADWAY_VISUAL))
|
||||
#define GDK_BROADWAY_VISUAL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GDK_TYPE_BROADWAY_VISUAL, GdkBroadwayVisualClass))
|
||||
|
||||
#ifdef GDK_COMPILATION
|
||||
typedef struct _GdkBroadwayVisual GdkBroadwayVisual;
|
||||
#else
|
||||
typedef GdkVisual GdkBroadwayVisual;
|
||||
#endif
|
||||
typedef struct _GdkBroadwayVisualClass GdkBroadwayVisualClass;
|
||||
|
||||
|
||||
GDK_AVAILABLE_IN_ALL
|
||||
GType gdk_broadway_visual_get_type (void);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* __GDK_BROADWAY_VISUAL_H__ */
|
@@ -101,8 +101,6 @@ _gdk_broadway_display_open (const gchar *display_name)
|
||||
|
||||
_gdk_broadway_display_init_dnd (display);
|
||||
|
||||
_gdk_broadway_screen_setup (broadway_display->screens[0]);
|
||||
|
||||
if (display_name == NULL)
|
||||
display_name = g_getenv ("BROADWAY_DISPLAY");
|
||||
|
||||
@@ -343,8 +341,6 @@ gdk_broadway_display_class_init (GdkBroadwayDisplayClass * class)
|
||||
display_class->supports_cursor_alpha = _gdk_broadway_display_supports_cursor_alpha;
|
||||
display_class->supports_cursor_color = _gdk_broadway_display_supports_cursor_color;
|
||||
|
||||
display_class->before_process_all_updates = _gdk_broadway_display_before_process_all_updates;
|
||||
display_class->after_process_all_updates = _gdk_broadway_display_after_process_all_updates;
|
||||
display_class->get_next_serial = gdk_broadway_display_get_next_serial;
|
||||
display_class->notify_startup_complete = gdk_broadway_display_notify_startup_complete;
|
||||
display_class->create_window_impl = _gdk_broadway_display_create_window_impl;
|
||||
|
@@ -36,7 +36,6 @@
|
||||
#include "gdkdisplay-broadway.h"
|
||||
|
||||
#include "gdkbroadwaycursor.h"
|
||||
#include "gdkbroadwayvisual.h"
|
||||
#include "gdkbroadwaywindow.h"
|
||||
|
||||
void _gdk_broadway_resync_windows (void);
|
||||
@@ -90,15 +89,12 @@ gboolean _gdk_keymap_key_is_modifier (GdkKeymap *keymap,
|
||||
guint keycode);
|
||||
|
||||
void _gdk_broadway_screen_events_init (GdkScreen *screen);
|
||||
GdkVisual *_gdk_broadway_screen_get_system_visual (GdkScreen * screen);
|
||||
GList *_gdk_broadway_screen_list_visuals (GdkScreen *screen);
|
||||
void _gdk_broadway_screen_size_changed (GdkScreen *screen,
|
||||
BroadwayInputScreenResizeNotify *msg);
|
||||
|
||||
void _gdk_broadway_events_got_input (BroadwayInputMsg *message);
|
||||
|
||||
void _gdk_broadway_screen_init_root_window (GdkScreen *screen);
|
||||
void _gdk_broadway_screen_init_visuals (GdkScreen *screen);
|
||||
void _gdk_broadway_display_init_dnd (GdkDisplay *display);
|
||||
GdkDisplay * _gdk_broadway_display_open (const gchar *display_name);
|
||||
void _gdk_broadway_display_queue_events (GdkDisplay *display);
|
||||
@@ -120,15 +116,12 @@ void _gdk_broadway_display_get_default_cursor_size (GdkDisplay *display,
|
||||
void _gdk_broadway_display_get_maximal_cursor_size (GdkDisplay *display,
|
||||
guint *width,
|
||||
guint *height);
|
||||
void _gdk_broadway_display_before_process_all_updates (GdkDisplay *display);
|
||||
void _gdk_broadway_display_after_process_all_updates (GdkDisplay *display);
|
||||
void _gdk_broadway_display_create_window_impl (GdkDisplay *display,
|
||||
GdkWindow *window,
|
||||
GdkWindow *real_parent,
|
||||
GdkScreen *screen,
|
||||
GdkEventMask event_mask,
|
||||
GdkWindowAttr *attributes,
|
||||
gint attributes_mask);
|
||||
GdkWindowAttr *attributes);
|
||||
gboolean _gdk_broadway_display_set_selection_owner (GdkDisplay *display,
|
||||
GdkWindow *owner,
|
||||
GdkAtom selection,
|
||||
|
@@ -99,27 +99,13 @@ static void
|
||||
gdk_broadway_screen_finalize (GObject *object)
|
||||
{
|
||||
GdkBroadwayScreen *broadway_screen = GDK_BROADWAY_SCREEN (object);
|
||||
gint i;
|
||||
|
||||
if (broadway_screen->root_window)
|
||||
g_object_unref (broadway_screen->root_window);
|
||||
|
||||
/* Visual Part */
|
||||
for (i = 0; i < broadway_screen->nvisuals; i++)
|
||||
g_object_unref (broadway_screen->visuals[i]);
|
||||
g_free (broadway_screen->visuals);
|
||||
|
||||
G_OBJECT_CLASS (gdk_broadway_screen_parent_class)->finalize (object);
|
||||
}
|
||||
|
||||
static GdkVisual *
|
||||
gdk_broadway_screen_get_rgba_visual (GdkScreen *screen)
|
||||
{
|
||||
GdkBroadwayScreen *broadway_screen = GDK_BROADWAY_SCREEN (screen);
|
||||
|
||||
return broadway_screen->rgba_visual;
|
||||
}
|
||||
|
||||
GdkScreen *
|
||||
_gdk_broadway_screen_new (GdkDisplay *display,
|
||||
gint screen_number)
|
||||
@@ -131,29 +117,11 @@ _gdk_broadway_screen_new (GdkDisplay *display,
|
||||
|
||||
broadway_screen = GDK_BROADWAY_SCREEN (screen);
|
||||
broadway_screen->display = display;
|
||||
_gdk_broadway_screen_init_visuals (screen);
|
||||
_gdk_broadway_screen_init_root_window (screen);
|
||||
|
||||
return screen;
|
||||
}
|
||||
|
||||
/*
|
||||
* It is important that we first request the selection
|
||||
* notification, and then setup the initial state of
|
||||
* is_composited to avoid a race condition here.
|
||||
*/
|
||||
void
|
||||
_gdk_broadway_screen_setup (GdkScreen *screen)
|
||||
{
|
||||
}
|
||||
|
||||
static gboolean
|
||||
gdk_broadway_screen_is_composited (GdkScreen *screen)
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
static gboolean
|
||||
gdk_broadway_screen_get_setting (GdkScreen *screen,
|
||||
const gchar *name,
|
||||
@@ -178,10 +146,6 @@ gdk_broadway_screen_class_init (GdkBroadwayScreenClass *klass)
|
||||
|
||||
screen_class->get_display = gdk_broadway_screen_get_display;
|
||||
screen_class->get_root_window = gdk_broadway_screen_get_root_window;
|
||||
screen_class->is_composited = gdk_broadway_screen_is_composited;
|
||||
screen_class->get_setting = gdk_broadway_screen_get_setting;
|
||||
screen_class->get_rgba_visual = gdk_broadway_screen_get_rgba_visual;
|
||||
screen_class->get_system_visual = _gdk_broadway_screen_get_system_visual;
|
||||
screen_class->list_visuals = _gdk_broadway_screen_list_visuals;
|
||||
}
|
||||
|
||||
|
@@ -23,7 +23,6 @@
|
||||
#define __GDK_BROADWAY_SCREEN_H__
|
||||
|
||||
#include <gdk/gdkscreenprivate.h>
|
||||
#include <gdk/gdkvisual.h>
|
||||
#include "gdkprivate-broadway.h"
|
||||
|
||||
G_BEGIN_DECLS
|
||||
@@ -46,16 +45,6 @@ struct _GdkBroadwayScreen
|
||||
|
||||
GdkDisplay *display;
|
||||
GdkWindow *root_window;
|
||||
|
||||
/* Visual Part */
|
||||
GdkVisual **visuals;
|
||||
gint nvisuals;
|
||||
GdkVisual *system_visual;
|
||||
GdkVisual *rgba_visual;
|
||||
gint available_depths[7];
|
||||
gint navailable_depths;
|
||||
GdkVisualType available_types[6];
|
||||
gint navailable_types;
|
||||
};
|
||||
|
||||
struct _GdkBroadwayScreenClass
|
||||
@@ -68,7 +57,6 @@ struct _GdkBroadwayScreenClass
|
||||
GType gdk_broadway_screen_get_type (void);
|
||||
GdkScreen * _gdk_broadway_screen_new (GdkDisplay *display,
|
||||
gint screen_number);
|
||||
void _gdk_broadway_screen_setup (GdkScreen *screen);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
|
@@ -1,137 +0,0 @@
|
||||
/* GDK - The GIMP Drawing Kit
|
||||
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Modified by the GTK+ Team and others 1997-2000. See the AUTHORS
|
||||
* file for a list of people on the GTK+ Team. See the ChangeLog
|
||||
* files for a list of changes. These files are distributed with
|
||||
* GTK+ at ftp://ftp.gtk.org/pub/gtk/.
|
||||
*/
|
||||
|
||||
#include "config.h"
|
||||
|
||||
#include "gdkvisualprivate.h"
|
||||
|
||||
#include "gdkprivate-broadway.h"
|
||||
#include "gdkscreen-broadway.h"
|
||||
#include "gdkinternals.h"
|
||||
|
||||
struct _GdkBroadwayVisual
|
||||
{
|
||||
GdkVisual visual;
|
||||
};
|
||||
|
||||
struct _GdkBroadwayVisualClass
|
||||
{
|
||||
GObjectClass parent_class;
|
||||
};
|
||||
|
||||
G_DEFINE_TYPE (GdkBroadwayVisual, gdk_broadway_visual, GDK_TYPE_VISUAL)
|
||||
|
||||
static void
|
||||
gdk_broadway_visual_finalize (GObject *object)
|
||||
{
|
||||
G_OBJECT_CLASS (gdk_broadway_visual_parent_class)->finalize (object);
|
||||
}
|
||||
|
||||
static void
|
||||
gdk_broadway_visual_class_init (GdkBroadwayVisualClass *visual_class)
|
||||
{
|
||||
GObjectClass *object_class = G_OBJECT_CLASS (visual_class);
|
||||
|
||||
object_class->finalize = gdk_broadway_visual_finalize;
|
||||
}
|
||||
|
||||
static void
|
||||
gdk_broadway_visual_init (GdkBroadwayVisual *visual)
|
||||
{
|
||||
}
|
||||
|
||||
void
|
||||
_gdk_broadway_screen_init_visuals (GdkScreen *screen)
|
||||
{
|
||||
GdkBroadwayScreen *broadway_screen;
|
||||
GdkVisual **visuals;
|
||||
int nvisuals;
|
||||
|
||||
g_return_if_fail (GDK_IS_SCREEN (screen));
|
||||
broadway_screen = GDK_BROADWAY_SCREEN (screen);
|
||||
|
||||
nvisuals = 2;
|
||||
visuals = g_new (GdkVisual *, nvisuals);
|
||||
|
||||
visuals[0] = g_object_new (GDK_TYPE_BROADWAY_VISUAL, NULL);
|
||||
visuals[0]->screen = screen;
|
||||
visuals[0]->type = GDK_VISUAL_TRUE_COLOR;
|
||||
visuals[0]->depth = 32;
|
||||
visuals[0]->byte_order = (G_BYTE_ORDER == G_LITTLE_ENDIAN) ? GDK_LSB_FIRST : GDK_MSB_FIRST;
|
||||
visuals[0]->red_mask = 0xff0000;
|
||||
visuals[0]->green_mask = 0xff00;
|
||||
visuals[0]->blue_mask = 0xff;
|
||||
visuals[0]->colormap_size = 256;
|
||||
visuals[0]->bits_per_rgb = 8;
|
||||
|
||||
visuals[1] = g_object_new (GDK_TYPE_BROADWAY_VISUAL, NULL);
|
||||
visuals[1]->screen = screen;
|
||||
visuals[1]->type = GDK_VISUAL_TRUE_COLOR;
|
||||
visuals[1]->depth = 24;
|
||||
visuals[1]->byte_order = (G_BYTE_ORDER == G_LITTLE_ENDIAN) ? GDK_LSB_FIRST : GDK_MSB_FIRST;
|
||||
visuals[1]->red_mask = 0xff0000;
|
||||
visuals[1]->green_mask = 0xff00;
|
||||
visuals[1]->blue_mask = 0xff;
|
||||
visuals[1]->colormap_size = 256;
|
||||
visuals[1]->bits_per_rgb = 8;
|
||||
|
||||
broadway_screen->system_visual = visuals[1];
|
||||
broadway_screen->rgba_visual = visuals[0];
|
||||
|
||||
broadway_screen->navailable_depths = 2;
|
||||
broadway_screen->available_depths[0] = 32;
|
||||
broadway_screen->available_depths[1] = 24;
|
||||
|
||||
broadway_screen->navailable_types = 1;
|
||||
broadway_screen->available_types[0] = GDK_VISUAL_TRUE_COLOR;
|
||||
|
||||
broadway_screen->visuals = visuals;
|
||||
broadway_screen->nvisuals = nvisuals;
|
||||
}
|
||||
|
||||
GdkVisual *
|
||||
_gdk_broadway_screen_get_system_visual (GdkScreen * screen)
|
||||
{
|
||||
g_return_val_if_fail (GDK_IS_SCREEN (screen), NULL);
|
||||
|
||||
return ((GdkVisual *) GDK_BROADWAY_SCREEN (screen)->system_visual);
|
||||
}
|
||||
|
||||
GList *
|
||||
_gdk_broadway_screen_list_visuals (GdkScreen *screen)
|
||||
{
|
||||
GList *list;
|
||||
GdkBroadwayScreen *broadway_screen;
|
||||
guint i;
|
||||
|
||||
g_return_val_if_fail (GDK_IS_SCREEN (screen), NULL);
|
||||
broadway_screen = GDK_BROADWAY_SCREEN (screen);
|
||||
|
||||
list = NULL;
|
||||
|
||||
for (i = 0; i < broadway_screen->nvisuals; ++i)
|
||||
list = g_list_append (list, broadway_screen->visuals[i]);
|
||||
|
||||
return list;
|
||||
}
|
@@ -256,8 +256,7 @@ _gdk_broadway_display_create_window_impl (GdkDisplay *display,
|
||||
GdkWindow *real_parent,
|
||||
GdkScreen *screen,
|
||||
GdkEventMask event_mask,
|
||||
GdkWindowAttr *attributes,
|
||||
gint attributes_mask)
|
||||
GdkWindowAttr *attributes)
|
||||
{
|
||||
GdkWindowImplBroadway *impl;
|
||||
GdkBroadwayDisplay *broadway_display;
|
||||
@@ -386,11 +385,6 @@ _gdk_broadway_window_destroy (GdkWindow *window,
|
||||
impl->id);
|
||||
}
|
||||
|
||||
static void
|
||||
gdk_broadway_window_destroy_foreign (GdkWindow *window)
|
||||
{
|
||||
}
|
||||
|
||||
/* This function is called when the XWindow is really gone.
|
||||
*/
|
||||
static void
|
||||
@@ -509,26 +503,11 @@ gdk_window_broadway_move_resize (GdkWindow *window,
|
||||
window->resize_count++;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
gdk_window_broadway_reparent (GdkWindow *window,
|
||||
GdkWindow *new_parent,
|
||||
gint x,
|
||||
gint y)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static void
|
||||
gdk_window_broadway_raise (GdkWindow *window)
|
||||
{
|
||||
}
|
||||
|
||||
static void
|
||||
gdk_window_broadway_restack_under (GdkWindow *window,
|
||||
GList *native_siblings /* in requested order, first is bottom-most */)
|
||||
{
|
||||
}
|
||||
|
||||
static void
|
||||
gdk_window_broadway_restack_toplevel (GdkWindow *window,
|
||||
GdkWindow *sibling,
|
||||
@@ -785,13 +764,6 @@ gdk_window_broadway_input_shape_combine_region (GdkWindow *window,
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
gdk_broadway_window_set_override_redirect (GdkWindow *window,
|
||||
gboolean override_redirect)
|
||||
{
|
||||
}
|
||||
|
||||
static void
|
||||
gdk_broadway_window_set_accept_focus (GdkWindow *window,
|
||||
gboolean accept_focus)
|
||||
@@ -1020,18 +992,6 @@ gdk_broadway_window_set_functions (GdkWindow *window,
|
||||
return;
|
||||
}
|
||||
|
||||
static cairo_region_t *
|
||||
gdk_broadway_window_get_shape (GdkWindow *window)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static cairo_region_t *
|
||||
gdk_broadway_window_get_input_shape (GdkWindow *window)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static void
|
||||
gdk_broadway_window_end_paint (GdkWindow *window)
|
||||
{
|
||||
@@ -1297,29 +1257,13 @@ static void
|
||||
create_moveresize_window (MoveResizeData *mv_resize,
|
||||
guint32 timestamp)
|
||||
{
|
||||
GdkWindowAttr attributes;
|
||||
gint attributes_mask;
|
||||
GdkGrabStatus status;
|
||||
GdkSeat *seat;
|
||||
GdkDevice *pointer;
|
||||
|
||||
g_assert (mv_resize->moveresize_emulation_window == NULL);
|
||||
|
||||
attributes.x = -100;
|
||||
attributes.y = -100;
|
||||
attributes.width = 10;
|
||||
attributes.height = 10;
|
||||
attributes.window_type = GDK_WINDOW_TEMP;
|
||||
attributes.wclass = GDK_INPUT_ONLY;
|
||||
attributes.override_redirect = TRUE;
|
||||
attributes.event_mask = 0;
|
||||
|
||||
attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_NOREDIR;
|
||||
|
||||
mv_resize->moveresize_emulation_window =
|
||||
gdk_window_new (gdk_screen_get_root_window (gdk_display_get_default_screen (mv_resize->display)),
|
||||
&attributes,
|
||||
attributes_mask);
|
||||
mv_resize->moveresize_emulation_window = gdk_window_new_temp (mv_resize->display);
|
||||
|
||||
gdk_window_show (mv_resize->moveresize_emulation_window);
|
||||
|
||||
@@ -1515,16 +1459,6 @@ gdk_broadway_window_set_opacity (GdkWindow *window,
|
||||
opacity = 1;
|
||||
}
|
||||
|
||||
void
|
||||
_gdk_broadway_display_before_process_all_updates (GdkDisplay *display)
|
||||
{
|
||||
}
|
||||
|
||||
void
|
||||
_gdk_broadway_display_after_process_all_updates (GdkDisplay *display)
|
||||
{
|
||||
}
|
||||
|
||||
guint32
|
||||
gdk_broadway_get_last_seen_time (GdkWindow *window)
|
||||
{
|
||||
@@ -1550,10 +1484,8 @@ gdk_window_impl_broadway_class_init (GdkWindowImplBroadwayClass *klass)
|
||||
impl_class->get_events = gdk_window_broadway_get_events;
|
||||
impl_class->raise = gdk_window_broadway_raise;
|
||||
impl_class->lower = gdk_window_broadway_lower;
|
||||
impl_class->restack_under = gdk_window_broadway_restack_under;
|
||||
impl_class->restack_toplevel = gdk_window_broadway_restack_toplevel;
|
||||
impl_class->move_resize = gdk_window_broadway_move_resize;
|
||||
impl_class->reparent = gdk_window_broadway_reparent;
|
||||
impl_class->set_device_cursor = gdk_window_broadway_set_device_cursor;
|
||||
impl_class->get_geometry = gdk_window_broadway_get_geometry;
|
||||
impl_class->get_root_coords = gdk_window_broadway_get_root_coords;
|
||||
@@ -1561,9 +1493,6 @@ gdk_window_impl_broadway_class_init (GdkWindowImplBroadwayClass *klass)
|
||||
impl_class->shape_combine_region = gdk_window_broadway_shape_combine_region;
|
||||
impl_class->input_shape_combine_region = gdk_window_broadway_input_shape_combine_region;
|
||||
impl_class->destroy = _gdk_broadway_window_destroy;
|
||||
impl_class->destroy_foreign = gdk_broadway_window_destroy_foreign;
|
||||
impl_class->get_shape = gdk_broadway_window_get_shape;
|
||||
impl_class->get_input_shape = gdk_broadway_window_get_input_shape;
|
||||
impl_class->end_paint = gdk_broadway_window_end_paint;
|
||||
impl_class->beep = gdk_broadway_window_beep;
|
||||
|
||||
@@ -1580,7 +1509,6 @@ gdk_window_impl_broadway_class_init (GdkWindowImplBroadwayClass *klass)
|
||||
impl_class->set_startup_id = gdk_broadway_window_set_startup_id;
|
||||
impl_class->set_transient_for = gdk_broadway_window_set_transient_for;
|
||||
impl_class->get_frame_extents = gdk_broadway_window_get_frame_extents;
|
||||
impl_class->set_override_redirect = gdk_broadway_window_set_override_redirect;
|
||||
impl_class->set_accept_focus = gdk_broadway_window_set_accept_focus;
|
||||
impl_class->set_focus_on_map = gdk_broadway_window_set_focus_on_map;
|
||||
impl_class->set_icon_list = gdk_broadway_window_set_icon_list;
|
||||
|
@@ -1,202 +0,0 @@
|
||||
/* GDK - The GIMP Drawing Kit
|
||||
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Modified by the GTK+ Team and others 1997-2000. See the AUTHORS
|
||||
* file for a list of people on the GTK+ Team. See the ChangeLog
|
||||
* files for a list of changes. These files are distributed with
|
||||
* GTK+ at ftp://ftp.gtk.org/pub/gtk/.
|
||||
*/
|
||||
|
||||
#include "config.h"
|
||||
|
||||
#include "gdkcolor.h"
|
||||
|
||||
#include "gdkscreen.h"
|
||||
#include "gdkinternals.h"
|
||||
|
||||
#include <time.h>
|
||||
|
||||
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
|
||||
|
||||
/**
|
||||
* SECTION:colors
|
||||
* @Short_description: Manipulation of colors
|
||||
* @Title: Colors
|
||||
*
|
||||
* A #GdkColor represents a color.
|
||||
*
|
||||
* When working with cairo, it is often more convenient
|
||||
* to use a #GdkRGBA instead, and #GdkColor has been
|
||||
* deprecated in favor of #GdkRGBA.
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* gdk_color_copy:
|
||||
* @color: a #GdkColor
|
||||
*
|
||||
* Makes a copy of a #GdkColor.
|
||||
*
|
||||
* The result must be freed using gdk_color_free().
|
||||
*
|
||||
* Returns: a copy of @color
|
||||
*
|
||||
* Deprecated: 3.14: Use #GdkRGBA
|
||||
*/
|
||||
GdkColor*
|
||||
gdk_color_copy (const GdkColor *color)
|
||||
{
|
||||
GdkColor *new_color;
|
||||
|
||||
g_return_val_if_fail (color != NULL, NULL);
|
||||
|
||||
new_color = g_slice_new (GdkColor);
|
||||
*new_color = *color;
|
||||
return new_color;
|
||||
}
|
||||
|
||||
/**
|
||||
* gdk_color_free:
|
||||
* @color: a #GdkColor
|
||||
*
|
||||
* Frees a #GdkColor created with gdk_color_copy().
|
||||
*
|
||||
* Deprecated: 3.14: Use #GdkRGBA
|
||||
*/
|
||||
void
|
||||
gdk_color_free (GdkColor *color)
|
||||
{
|
||||
g_return_if_fail (color != NULL);
|
||||
|
||||
g_slice_free (GdkColor, color);
|
||||
}
|
||||
|
||||
/**
|
||||
* gdk_color_hash:
|
||||
* @color: a #GdkColor
|
||||
*
|
||||
* A hash function suitable for using for a hash
|
||||
* table that stores #GdkColors.
|
||||
*
|
||||
* Returns: The hash function applied to @color
|
||||
*
|
||||
* Deprecated: 3.14: Use #GdkRGBA
|
||||
*/
|
||||
guint
|
||||
gdk_color_hash (const GdkColor *color)
|
||||
{
|
||||
return ((color->red) +
|
||||
(color->green << 11) +
|
||||
(color->blue << 22) +
|
||||
(color->blue >> 6));
|
||||
}
|
||||
|
||||
/**
|
||||
* gdk_color_equal:
|
||||
* @colora: a #GdkColor
|
||||
* @colorb: another #GdkColor
|
||||
*
|
||||
* Compares two colors.
|
||||
*
|
||||
* Returns: %TRUE if the two colors compare equal
|
||||
*
|
||||
* Deprecated: 3.14: Use #GdkRGBA
|
||||
*/
|
||||
gboolean
|
||||
gdk_color_equal (const GdkColor *colora,
|
||||
const GdkColor *colorb)
|
||||
{
|
||||
g_return_val_if_fail (colora != NULL, FALSE);
|
||||
g_return_val_if_fail (colorb != NULL, FALSE);
|
||||
|
||||
return ((colora->red == colorb->red) &&
|
||||
(colora->green == colorb->green) &&
|
||||
(colora->blue == colorb->blue));
|
||||
}
|
||||
|
||||
G_DEFINE_BOXED_TYPE (GdkColor, gdk_color,
|
||||
gdk_color_copy,
|
||||
gdk_color_free)
|
||||
|
||||
/**
|
||||
* gdk_color_parse:
|
||||
* @spec: the string specifying the color
|
||||
* @color: (out): the #GdkColor to fill in
|
||||
*
|
||||
* Parses a textual specification of a color and fill in the
|
||||
* @red, @green, and @blue fields of a #GdkColor.
|
||||
*
|
||||
* The string can either one of a large set of standard names
|
||||
* (taken from the X11 `rgb.txt` file), or it can be a hexadecimal
|
||||
* value in the form “\#rgb” “\#rrggbb”, “\#rrrgggbbb” or
|
||||
* “\#rrrrggggbbbb” where “r”, “g” and “b” are hex digits of
|
||||
* the red, green, and blue components of the color, respectively.
|
||||
* (White in the four forms is “\#fff”, “\#ffffff”, “\#fffffffff”
|
||||
* and “\#ffffffffffff”).
|
||||
*
|
||||
* Returns: %TRUE if the parsing succeeded
|
||||
*
|
||||
* Deprecated: 3.14: Use #GdkRGBA
|
||||
*/
|
||||
gboolean
|
||||
gdk_color_parse (const gchar *spec,
|
||||
GdkColor *color)
|
||||
{
|
||||
PangoColor pango_color;
|
||||
|
||||
if (pango_color_parse (&pango_color, spec))
|
||||
{
|
||||
color->red = pango_color.red;
|
||||
color->green = pango_color.green;
|
||||
color->blue = pango_color.blue;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
else
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/**
|
||||
* gdk_color_to_string:
|
||||
* @color: a #GdkColor
|
||||
*
|
||||
* Returns a textual specification of @color in the hexadecimal
|
||||
* form “\#rrrrggggbbbb” where “r”, “g” and “b” are hex digits
|
||||
* representing the red, green and blue components respectively.
|
||||
*
|
||||
* The returned string can be parsed by gdk_color_parse().
|
||||
*
|
||||
* Returns: a newly-allocated text string
|
||||
*
|
||||
* Since: 2.12
|
||||
*
|
||||
* Deprecated: 3.14: Use #GdkRGBA
|
||||
*/
|
||||
gchar *
|
||||
gdk_color_to_string (const GdkColor *color)
|
||||
{
|
||||
PangoColor pango_color;
|
||||
|
||||
g_return_val_if_fail (color != NULL, NULL);
|
||||
|
||||
pango_color.red = color->red;
|
||||
pango_color.green = color->green;
|
||||
pango_color.blue = color->blue;
|
||||
|
||||
return pango_color_to_string (&pango_color);
|
||||
}
|
@@ -1,87 +0,0 @@
|
||||
/* GDK - The GIMP Drawing Kit
|
||||
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Modified by the GTK+ Team and others 1997-2000. See the AUTHORS
|
||||
* file for a list of people on the GTK+ Team. See the ChangeLog
|
||||
* files for a list of changes. These files are distributed with
|
||||
* GTK+ at ftp://ftp.gtk.org/pub/gtk/.
|
||||
*/
|
||||
|
||||
#ifndef __GDK_COLOR_H__
|
||||
#define __GDK_COLOR_H__
|
||||
|
||||
#if !defined (__GDK_H_INSIDE__) && !defined (GDK_COMPILATION)
|
||||
#error "Only <gdk/gdk.h> can be included directly."
|
||||
#endif
|
||||
|
||||
#include <cairo.h>
|
||||
#include <gdk/gdktypes.h>
|
||||
#include <gdk/gdkversionmacros.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
|
||||
/**
|
||||
* GdkColor:
|
||||
* @pixel: For allocated colors, the pixel value used to
|
||||
* draw this color on the screen. Not used anymore.
|
||||
* @red: The red component of the color. This is
|
||||
* a value between 0 and 65535, with 65535 indicating
|
||||
* full intensity
|
||||
* @green: The green component of the color
|
||||
* @blue: The blue component of the color
|
||||
*
|
||||
* A #GdkColor is used to describe a color,
|
||||
* similar to the XColor struct used in the X11 drawing API.
|
||||
*
|
||||
* Deprecated: 3.14: Use #GdkRGBA
|
||||
*/
|
||||
struct _GdkColor
|
||||
{
|
||||
guint32 pixel;
|
||||
guint16 red;
|
||||
guint16 green;
|
||||
guint16 blue;
|
||||
};
|
||||
|
||||
#define GDK_TYPE_COLOR (gdk_color_get_type ())
|
||||
|
||||
GDK_DEPRECATED_IN_3_14_FOR(gdk_rgba_get_type)
|
||||
GType gdk_color_get_type (void) G_GNUC_CONST;
|
||||
|
||||
GDK_DEPRECATED_IN_3_14_FOR(gdk_rgba_copy)
|
||||
GdkColor *gdk_color_copy (const GdkColor *color);
|
||||
GDK_DEPRECATED_IN_3_14_FOR(gdk_rgba_free)
|
||||
void gdk_color_free (GdkColor *color);
|
||||
|
||||
GDK_DEPRECATED_IN_3_14_FOR(gdk_rgba_hash)
|
||||
guint gdk_color_hash (const GdkColor *color);
|
||||
GDK_DEPRECATED_IN_3_14_FOR(gdk_rgba_equal)
|
||||
gboolean gdk_color_equal (const GdkColor *colora,
|
||||
const GdkColor *colorb);
|
||||
|
||||
GDK_DEPRECATED_IN_3_14_FOR(gdk_rgba_parse)
|
||||
gboolean gdk_color_parse (const gchar *spec,
|
||||
GdkColor *color);
|
||||
GDK_DEPRECATED_IN_3_14_FOR(gdk_rgba_to_string)
|
||||
gchar * gdk_color_to_string (const GdkColor *color);
|
||||
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* __GDK_COLOR_H__ */
|
@@ -1,22 +0,0 @@
|
||||
#include "config.h"
|
||||
#include "gdk-private.h"
|
||||
|
||||
GdkPrivateVTable *
|
||||
gdk__private__ (void)
|
||||
{
|
||||
static GdkPrivateVTable table = {
|
||||
gdk_device_grab_info,
|
||||
gdk_display_open_default,
|
||||
gdk_add_option_entries,
|
||||
gdk_pre_parse,
|
||||
gdk_gl_get_flags,
|
||||
gdk_gl_set_flags,
|
||||
gdk_window_freeze_toplevel_updates,
|
||||
gdk_window_thaw_toplevel_updates,
|
||||
gdk_display_get_rendering_mode,
|
||||
gdk_display_set_rendering_mode,
|
||||
gdk_window_move_to_rect
|
||||
};
|
||||
|
||||
return &table;
|
||||
}
|
@@ -4,8 +4,6 @@
|
||||
#include <gdk/gdk.h>
|
||||
#include "gdk/gdkinternals.h"
|
||||
|
||||
#define GDK_PRIVATE_CALL(symbol) (gdk__private__ ()->symbol)
|
||||
|
||||
GdkDisplay * gdk_display_open_default (void);
|
||||
|
||||
gboolean gdk_device_grab_info (GdkDisplay *display,
|
||||
@@ -35,38 +33,4 @@ void gdk_window_move_to_rect (GdkWindow *window,
|
||||
gint rect_anchor_dx,
|
||||
gint rect_anchor_dy);
|
||||
|
||||
typedef struct {
|
||||
/* add all private functions here, initialize them in gdk-private.c */
|
||||
gboolean (* gdk_device_grab_info) (GdkDisplay *display,
|
||||
GdkDevice *device,
|
||||
GdkWindow **grab_window,
|
||||
gboolean *owner_events);
|
||||
|
||||
GdkDisplay *(* gdk_display_open_default) (void);
|
||||
|
||||
void (* gdk_add_option_entries) (GOptionGroup *group);
|
||||
void (* gdk_pre_parse) (void);
|
||||
|
||||
GdkGLFlags (* gdk_gl_get_flags) (void);
|
||||
void (* gdk_gl_set_flags) (GdkGLFlags flags);
|
||||
|
||||
void (* gdk_window_freeze_toplevel_updates) (GdkWindow *window);
|
||||
void (* gdk_window_thaw_toplevel_updates) (GdkWindow *window);
|
||||
|
||||
GdkRenderingMode (* gdk_display_get_rendering_mode) (GdkDisplay *display);
|
||||
void (* gdk_display_set_rendering_mode) (GdkDisplay *display,
|
||||
GdkRenderingMode mode);
|
||||
|
||||
void (* gdk_window_move_to_rect) (GdkWindow *window,
|
||||
const GdkRectangle *rect,
|
||||
GdkGravity rect_anchor,
|
||||
GdkGravity window_anchor,
|
||||
GdkAnchorHints anchor_hints,
|
||||
gint rect_anchor_dx,
|
||||
gint rect_anchor_dy);
|
||||
} GdkPrivateVTable;
|
||||
|
||||
GDK_AVAILABLE_IN_ALL
|
||||
GdkPrivateVTable * gdk__private__ (void);
|
||||
|
||||
#endif /* __GDK__PRIVATE_H__ */
|
||||
|
208
gdk/gdk.c
208
gdk/gdk.c
@@ -150,6 +150,11 @@ static const GDebugKey gdk_gl_keys[] = {
|
||||
{ "gles", GDK_GL_GLES },
|
||||
};
|
||||
|
||||
static const GDebugKey gdk_vulkan_keys[] = {
|
||||
{ "disable", GDK_VULKAN_DISABLE },
|
||||
{ "validate", GDK_VULKAN_VALIDATE },
|
||||
};
|
||||
|
||||
#ifdef G_ENABLE_DEBUG
|
||||
static const GDebugKey gdk_debug_keys[] = {
|
||||
{ "events", GDK_DEBUG_EVENTS },
|
||||
@@ -165,95 +170,10 @@ static const GDebugKey gdk_debug_keys[] = {
|
||||
{ "eventloop", GDK_DEBUG_EVENTLOOP },
|
||||
{ "frames", GDK_DEBUG_FRAMES },
|
||||
{ "settings", GDK_DEBUG_SETTINGS },
|
||||
{ "opengl", GDK_DEBUG_OPENGL }
|
||||
{ "opengl", GDK_DEBUG_OPENGL },
|
||||
{ "vulkan", GDK_DEBUG_VULKAN }
|
||||
};
|
||||
|
||||
static gboolean
|
||||
gdk_arg_debug_cb (const char *key, const char *value, gpointer user_data, GError **error)
|
||||
{
|
||||
guint debug_value = g_parse_debug_string (value,
|
||||
(GDebugKey *) gdk_debug_keys,
|
||||
G_N_ELEMENTS (gdk_debug_keys));
|
||||
|
||||
if (debug_value == 0 && value != NULL && strcmp (value, "") != 0)
|
||||
{
|
||||
g_set_error (error,
|
||||
G_OPTION_ERROR, G_OPTION_ERROR_FAILED,
|
||||
_("Error parsing option --gdk-debug"));
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
_gdk_debug_flags |= debug_value;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
gdk_arg_no_debug_cb (const char *key, const char *value, gpointer user_data, GError **error)
|
||||
{
|
||||
guint debug_value = g_parse_debug_string (value,
|
||||
(GDebugKey *) gdk_debug_keys,
|
||||
G_N_ELEMENTS (gdk_debug_keys));
|
||||
|
||||
if (debug_value == 0 && value != NULL && strcmp (value, "") != 0)
|
||||
{
|
||||
g_set_error (error,
|
||||
G_OPTION_ERROR, G_OPTION_ERROR_FAILED,
|
||||
_("Error parsing option --gdk-no-debug"));
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
_gdk_debug_flags &= ~debug_value;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
#endif /* G_ENABLE_DEBUG */
|
||||
|
||||
static gboolean
|
||||
gdk_arg_class_cb (const char *key, const char *value, gpointer user_data, GError **error)
|
||||
{
|
||||
gdk_set_program_class (value);
|
||||
gdk_progclass_overridden = TRUE;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
gdk_arg_name_cb (const char *key, const char *value, gpointer user_data, GError **error)
|
||||
{
|
||||
g_set_prgname (value);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static const GOptionEntry gdk_args[] = {
|
||||
{ "class", 0, 0, G_OPTION_ARG_CALLBACK, gdk_arg_class_cb,
|
||||
/* Description of --class=CLASS in --help output */ N_("Program class as used by the window manager"),
|
||||
/* Placeholder in --class=CLASS in --help output */ N_("CLASS") },
|
||||
{ "name", 0, 0, G_OPTION_ARG_CALLBACK, gdk_arg_name_cb,
|
||||
/* Description of --name=NAME in --help output */ N_("Program name as used by the window manager"),
|
||||
/* Placeholder in --name=NAME in --help output */ N_("NAME") },
|
||||
#ifndef G_OS_WIN32
|
||||
{ "display", 0, G_OPTION_FLAG_IN_MAIN, G_OPTION_ARG_STRING, &_gdk_display_name,
|
||||
/* Description of --display=DISPLAY in --help output */ N_("X display to use"),
|
||||
/* Placeholder in --display=DISPLAY in --help output */ N_("DISPLAY") },
|
||||
#endif
|
||||
#ifdef G_ENABLE_DEBUG
|
||||
{ "gdk-debug", 0, 0, G_OPTION_ARG_CALLBACK, gdk_arg_debug_cb,
|
||||
/* Description of --gdk-debug=FLAGS in --help output */ N_("GDK debugging flags to set"),
|
||||
/* Placeholder in --gdk-debug=FLAGS in --help output */ N_("FLAGS") },
|
||||
{ "gdk-no-debug", 0, 0, G_OPTION_ARG_CALLBACK, gdk_arg_no_debug_cb,
|
||||
/* Description of --gdk-no-debug=FLAGS in --help output */ N_("GDK debugging flags to unset"),
|
||||
/* Placeholder in --gdk-no-debug=FLAGS in --help output */ N_("FLAGS") },
|
||||
#endif
|
||||
{ NULL }
|
||||
};
|
||||
|
||||
void
|
||||
gdk_add_option_entries (GOptionGroup *group)
|
||||
{
|
||||
g_option_group_add_entries (group, gdk_args);
|
||||
}
|
||||
|
||||
static gpointer
|
||||
register_resources (gpointer dummy G_GNUC_UNUSED)
|
||||
@@ -275,7 +195,7 @@ void
|
||||
gdk_pre_parse (void)
|
||||
{
|
||||
const char *rendering_mode;
|
||||
const gchar *gl_string;
|
||||
const gchar *gl_string, *vulkan_string;
|
||||
|
||||
gdk_initialized = TRUE;
|
||||
|
||||
@@ -304,12 +224,11 @@ gdk_pre_parse (void)
|
||||
(GDebugKey *) gdk_gl_keys,
|
||||
G_N_ELEMENTS (gdk_gl_keys));
|
||||
|
||||
if (getenv ("GDK_NATIVE_WINDOWS"))
|
||||
{
|
||||
g_warning ("The GDK_NATIVE_WINDOWS environment variable is not supported in GTK3.\n"
|
||||
"See the documentation for gdk_window_ensure_native() on how to get native windows.");
|
||||
g_unsetenv ("GDK_NATIVE_WINDOWS");
|
||||
}
|
||||
vulkan_string = getenv("GDK_VULKAN");
|
||||
if (vulkan_string != NULL)
|
||||
_gdk_vulkan_flags = g_parse_debug_string (vulkan_string,
|
||||
(GDebugKey *) gdk_vulkan_keys,
|
||||
G_N_ELEMENTS (gdk_vulkan_keys));
|
||||
|
||||
rendering_mode = g_getenv ("GDK_RENDERING");
|
||||
if (rendering_mode)
|
||||
@@ -323,53 +242,6 @@ gdk_pre_parse (void)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* gdk_parse_args:
|
||||
* @argc: the number of command line arguments.
|
||||
* @argv: (inout) (array length=argc): the array of command line arguments.
|
||||
*
|
||||
* Parse command line arguments, and store for future
|
||||
* use by calls to gdk_display_open().
|
||||
*
|
||||
* Any arguments used by GDK are removed from the array and @argc and @argv are
|
||||
* updated accordingly.
|
||||
*
|
||||
* You shouldn’t call this function explicitly if you are using
|
||||
* gtk_init(), gtk_init_check(), gdk_init(), or gdk_init_check().
|
||||
*
|
||||
* Since: 2.2
|
||||
**/
|
||||
void
|
||||
gdk_parse_args (int *argc,
|
||||
char ***argv)
|
||||
{
|
||||
GOptionContext *option_context;
|
||||
GOptionGroup *option_group;
|
||||
GError *error = NULL;
|
||||
|
||||
if (gdk_initialized)
|
||||
return;
|
||||
|
||||
gdk_pre_parse ();
|
||||
|
||||
option_context = g_option_context_new (NULL);
|
||||
g_option_context_set_ignore_unknown_options (option_context, TRUE);
|
||||
g_option_context_set_help_enabled (option_context, FALSE);
|
||||
option_group = g_option_group_new (NULL, NULL, NULL, NULL, NULL);
|
||||
g_option_context_set_main_group (option_context, option_group);
|
||||
|
||||
g_option_group_add_entries (option_group, gdk_args);
|
||||
|
||||
if (!g_option_context_parse (option_context, argc, argv, &error))
|
||||
{
|
||||
g_warning ("%s", error->message);
|
||||
g_error_free (error);
|
||||
}
|
||||
g_option_context_free (option_context);
|
||||
|
||||
GDK_NOTE (MISC, g_message ("progname: \"%s\"", g_get_prgname ()));
|
||||
}
|
||||
|
||||
/**
|
||||
* gdk_get_display_arg_name:
|
||||
*
|
||||
@@ -419,60 +291,6 @@ gdk_display_open_default (void)
|
||||
return display;
|
||||
}
|
||||
|
||||
/**
|
||||
* gdk_init_check:
|
||||
* @argc: (inout): the number of command line arguments.
|
||||
* @argv: (array length=argc) (inout): the array of command line arguments.
|
||||
*
|
||||
* Initializes the GDK library and connects to the windowing system,
|
||||
* returning %TRUE on success.
|
||||
*
|
||||
* Any arguments used by GDK are removed from the array and @argc and @argv
|
||||
* are updated accordingly.
|
||||
*
|
||||
* GTK+ initializes GDK in gtk_init() and so this function is not usually
|
||||
* needed by GTK+ applications.
|
||||
*
|
||||
* Returns: %TRUE if initialization succeeded.
|
||||
*/
|
||||
gboolean
|
||||
gdk_init_check (int *argc,
|
||||
char ***argv)
|
||||
{
|
||||
gdk_parse_args (argc, argv);
|
||||
|
||||
return gdk_display_open_default () != NULL;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* gdk_init:
|
||||
* @argc: (inout): the number of command line arguments.
|
||||
* @argv: (array length=argc) (inout): the array of command line arguments.
|
||||
*
|
||||
* Initializes the GDK library and connects to the windowing system.
|
||||
* If initialization fails, a warning message is output and the application
|
||||
* terminates with a call to `exit(1)`.
|
||||
*
|
||||
* Any arguments used by GDK are removed from the array and @argc and @argv
|
||||
* are updated accordingly.
|
||||
*
|
||||
* GTK+ initializes GDK in gtk_init() and so this function is not usually
|
||||
* needed by GTK+ applications.
|
||||
*/
|
||||
void
|
||||
gdk_init (int *argc, char ***argv)
|
||||
{
|
||||
if (!gdk_init_check (argc, argv))
|
||||
{
|
||||
const char *display_name = gdk_get_display_arg_name ();
|
||||
g_warning ("cannot open display: %s", display_name ? display_name : "");
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* SECTION:threads
|
||||
* @Short_description: Functions for using GDK in multi-threaded programs
|
||||
|
@@ -39,6 +39,7 @@
|
||||
#include <gdk/gdkdisplay.h>
|
||||
#include <gdk/gdkdisplaymanager.h>
|
||||
#include <gdk/gdkdnd.h>
|
||||
#include <gdk/gdkdrawcontext.h>
|
||||
#include <gdk/gdkdrawingcontext.h>
|
||||
#include <gdk/gdkenumtypes.h>
|
||||
#include <gdk/gdkevents.h>
|
||||
@@ -61,12 +62,9 @@
|
||||
#include <gdk/gdkthreads.h>
|
||||
#include <gdk/gdktypes.h>
|
||||
#include <gdk/gdkvisual.h>
|
||||
#include <gdk/gdkvulkancontext.h>
|
||||
#include <gdk/gdkwindow.h>
|
||||
|
||||
#ifndef GDK_DISABLE_DEPRECATED
|
||||
#include <gdk/deprecated/gdkcolor.h>
|
||||
#endif
|
||||
|
||||
#include <gdk/gdk-autocleanup.h>
|
||||
|
||||
#undef __GDK_H_INSIDE__
|
||||
|
@@ -151,7 +151,7 @@ gdk_cairo_region (cairo_t *cr,
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
void
|
||||
gdk_cairo_surface_paint_pixbuf (cairo_surface_t *surface,
|
||||
const GdkPixbuf *pixbuf)
|
||||
{
|
||||
@@ -198,7 +198,9 @@ gdk_cairo_surface_paint_pixbuf (cairo_surface_t *surface,
|
||||
q[0] = p[2];
|
||||
q[1] = p[1];
|
||||
q[2] = p[0];
|
||||
q[3] = 0xFF;
|
||||
#else
|
||||
q[0] = 0xFF;
|
||||
q[1] = p[0];
|
||||
q[2] = p[1];
|
||||
q[3] = p[2];
|
||||
@@ -323,40 +325,6 @@ gdk_cairo_set_source_pixbuf (cairo_t *cr,
|
||||
cairo_surface_destroy (surface);
|
||||
}
|
||||
|
||||
/**
|
||||
* gdk_cairo_set_source_window:
|
||||
* @cr: a cairo context
|
||||
* @window: a #GdkWindow
|
||||
* @x: X coordinate of location to place upper left corner of @window
|
||||
* @y: Y coordinate of location to place upper left corner of @window
|
||||
*
|
||||
* Sets the given window as the source pattern for @cr.
|
||||
*
|
||||
* The pattern has an extend mode of %CAIRO_EXTEND_NONE and is aligned
|
||||
* so that the origin of @window is @x, @y. The window contains all its
|
||||
* subwindows when rendering.
|
||||
*
|
||||
* Note that the contents of @window are undefined outside of the
|
||||
* visible part of @window, so use this function with care.
|
||||
*
|
||||
* Since: 2.24
|
||||
*/
|
||||
void
|
||||
gdk_cairo_set_source_window (cairo_t *cr,
|
||||
GdkWindow *window,
|
||||
gdouble x,
|
||||
gdouble y)
|
||||
{
|
||||
cairo_surface_t *surface;
|
||||
|
||||
g_return_if_fail (cr != NULL);
|
||||
g_return_if_fail (GDK_IS_WINDOW (window));
|
||||
|
||||
surface = _gdk_window_ref_cairo_surface (window);
|
||||
cairo_set_source_surface (cr, surface, x, y);
|
||||
cairo_surface_destroy (surface);
|
||||
}
|
||||
|
||||
/*
|
||||
* _gdk_cairo_surface_extents:
|
||||
* @surface: surface to measure
|
||||
|
@@ -23,7 +23,6 @@
|
||||
#endif
|
||||
|
||||
#include <gdk/gdkversionmacros.h>
|
||||
#include <gdk/deprecated/gdkcolor.h>
|
||||
#include <gdk/gdkrgba.h>
|
||||
#include <gdk/gdkdrawingcontext.h>
|
||||
#include <gdk/gdkpixbuf.h>
|
||||
@@ -43,11 +42,6 @@ void gdk_cairo_set_source_pixbuf (cairo_t *cr,
|
||||
const GdkPixbuf *pixbuf,
|
||||
gdouble pixbuf_x,
|
||||
gdouble pixbuf_y);
|
||||
GDK_AVAILABLE_IN_ALL
|
||||
void gdk_cairo_set_source_window (cairo_t *cr,
|
||||
GdkWindow *window,
|
||||
gdouble x,
|
||||
gdouble y);
|
||||
|
||||
GDK_AVAILABLE_IN_ALL
|
||||
void gdk_cairo_rectangle (cairo_t *cr,
|
||||
|
163
gdk/gdkdisplay.c
163
gdk/gdkdisplay.c
@@ -24,6 +24,7 @@
|
||||
#include "gdkdisplay.h"
|
||||
#include "gdkdisplayprivate.h"
|
||||
|
||||
#include "gdkintl.h"
|
||||
#include "gdk-private.h"
|
||||
|
||||
#include "gdkdeviceprivate.h"
|
||||
@@ -66,6 +67,15 @@
|
||||
* gdk_display_get_device_manager().
|
||||
*/
|
||||
|
||||
enum
|
||||
{
|
||||
PROP_0,
|
||||
PROP_COMPOSITED,
|
||||
PROP_RGBA,
|
||||
LAST_PROP
|
||||
};
|
||||
|
||||
static GParamSpec *props[LAST_PROP] = { NULL, };
|
||||
|
||||
enum {
|
||||
OPENED,
|
||||
@@ -89,6 +99,29 @@ static guint signals[LAST_SIGNAL] = { 0 };
|
||||
|
||||
G_DEFINE_TYPE (GdkDisplay, gdk_display, G_TYPE_OBJECT)
|
||||
|
||||
static void
|
||||
gdk_display_get_property (GObject *object,
|
||||
guint prop_id,
|
||||
GValue *value,
|
||||
GParamSpec *pspec)
|
||||
{
|
||||
GdkDisplay *display = GDK_DISPLAY (object);
|
||||
|
||||
switch (prop_id)
|
||||
{
|
||||
case PROP_COMPOSITED:
|
||||
g_value_set_boolean (value, gdk_display_is_composited (display));
|
||||
break;
|
||||
|
||||
case PROP_RGBA:
|
||||
g_value_set_boolean (value, gdk_display_is_rgba (display));
|
||||
break;
|
||||
|
||||
default:
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
gdk_display_real_make_default (GdkDisplay *display)
|
||||
{
|
||||
@@ -156,6 +189,7 @@ gdk_display_class_init (GdkDisplayClass *class)
|
||||
|
||||
object_class->finalize = gdk_display_finalize;
|
||||
object_class->dispose = gdk_display_dispose;
|
||||
object_class->get_property = gdk_display_get_property;
|
||||
|
||||
class->get_app_launch_context = gdk_display_real_get_app_launch_context;
|
||||
class->window_type = GDK_TYPE_WINDOW;
|
||||
@@ -168,6 +202,38 @@ gdk_display_class_init (GdkDisplayClass *class)
|
||||
|
||||
class->get_primary_monitor = gdk_display_real_get_primary_monitor;
|
||||
|
||||
/**
|
||||
* GdkDisplay:composited:
|
||||
*
|
||||
* %TRUE if the display properly composits the alpha channel.
|
||||
* See gdk_display_is_composited() for details.
|
||||
*
|
||||
* Since: 3.90
|
||||
*/
|
||||
props[PROP_COMPOSITED] =
|
||||
g_param_spec_boolean ("composited",
|
||||
P_("Composited"),
|
||||
P_("Composited"),
|
||||
TRUE,
|
||||
G_PARAM_READABLE);
|
||||
|
||||
/**
|
||||
* GdkDisplay:rgba:
|
||||
*
|
||||
* %TRUE if the display supports an alpha channel. See gdk_display_is_rgba()
|
||||
* for details.
|
||||
*
|
||||
* Since: 3.90
|
||||
*/
|
||||
props[PROP_RGBA] =
|
||||
g_param_spec_boolean ("rgba",
|
||||
P_("RGBA"),
|
||||
P_("RGBA"),
|
||||
TRUE,
|
||||
G_PARAM_READABLE);
|
||||
|
||||
g_object_class_install_properties (object_class, LAST_PROP, props);
|
||||
|
||||
/**
|
||||
* GdkDisplay::opened:
|
||||
* @display: the object on which the signal is emitted
|
||||
@@ -324,6 +390,9 @@ gdk_display_init (GdkDisplay *display)
|
||||
(GDestroyNotify) g_free);
|
||||
|
||||
display->rendering_mode = _gdk_rendering_mode;
|
||||
|
||||
display->composited = TRUE;
|
||||
display->rgba = TRUE;
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -1862,16 +1931,14 @@ _gdk_display_create_window_impl (GdkDisplay *display,
|
||||
GdkWindow *real_parent,
|
||||
GdkScreen *screen,
|
||||
GdkEventMask event_mask,
|
||||
GdkWindowAttr *attributes,
|
||||
gint attributes_mask)
|
||||
GdkWindowAttr *attributes)
|
||||
{
|
||||
GDK_DISPLAY_GET_CLASS (display)->create_window_impl (display,
|
||||
window,
|
||||
real_parent,
|
||||
screen,
|
||||
event_mask,
|
||||
attributes,
|
||||
attributes_mask);
|
||||
attributes);
|
||||
}
|
||||
|
||||
GdkWindow *
|
||||
@@ -2068,6 +2135,94 @@ gdk_display_set_rendering_mode (GdkDisplay *display,
|
||||
display->rendering_mode = mode;
|
||||
}
|
||||
|
||||
/**
|
||||
* gdk_display_is_composited:
|
||||
* @display: a #GdkDisplay
|
||||
*
|
||||
* Returns whether windows can reasonably be expected to have
|
||||
* their alpha channel drawn correctly on the screen. Check
|
||||
* gdk_display_is_rgba() for wether the display supports an
|
||||
* alpha channel.
|
||||
*
|
||||
* On X11 this function returns whether a compositing manager is
|
||||
* compositing on @display.
|
||||
*
|
||||
* On modern displays, this value is always %TRUE.
|
||||
*
|
||||
* Returns: Whether windows with RGBA visuals can reasonably be
|
||||
* expected to have their alpha channels drawn correctly on the screen.
|
||||
*
|
||||
* Since: 3.90
|
||||
**/
|
||||
gboolean
|
||||
gdk_display_is_composited (GdkDisplay *display)
|
||||
{
|
||||
g_return_val_if_fail (GDK_IS_DISPLAY (display), FALSE);
|
||||
|
||||
return display->composited;
|
||||
}
|
||||
|
||||
void
|
||||
gdk_display_set_composited (GdkDisplay *display,
|
||||
gboolean composited)
|
||||
{
|
||||
g_return_if_fail (GDK_IS_DISPLAY (display));
|
||||
|
||||
if (display->composited == composited)
|
||||
return;
|
||||
|
||||
display->composited = composited;
|
||||
|
||||
g_object_notify_by_pspec (G_OBJECT (display), props[PROP_COMPOSITED]);
|
||||
}
|
||||
|
||||
/**
|
||||
* gdk_display_is_rgba:
|
||||
* @display: a #GdkDisplay
|
||||
*
|
||||
* Returns wether windows on this @display are created with an
|
||||
* alpha channel.
|
||||
*
|
||||
* Even if a %TRUE is returned, it is possible that the
|
||||
* window’s alpha channel won’t be honored when displaying the
|
||||
* window on the screen: in particular, for X an appropriate
|
||||
* windowing manager and compositing manager must be running to
|
||||
* provide appropriate display. Use gdk_display_is_composited()
|
||||
* to check if that is the case.
|
||||
*
|
||||
* For setting an overall opacity for a top-level window, see
|
||||
* gdk_window_set_opacity().
|
||||
*
|
||||
* On modern displays, this value is always %TRUE.
|
||||
*
|
||||
* Returns: %TRUE if windows are created with an alpha channel or
|
||||
* %FALSE if the display does not support this functionality.
|
||||
*
|
||||
* Since: 3.90
|
||||
**/
|
||||
gboolean
|
||||
gdk_display_is_rgba (GdkDisplay *display)
|
||||
{
|
||||
g_return_val_if_fail (GDK_IS_DISPLAY (display), FALSE);
|
||||
|
||||
return display->rgba;
|
||||
}
|
||||
|
||||
void
|
||||
gdk_display_set_rgba (GdkDisplay *display,
|
||||
gboolean rgba)
|
||||
{
|
||||
g_return_if_fail (GDK_IS_DISPLAY (display));
|
||||
|
||||
if (display->rgba == rgba)
|
||||
return;
|
||||
|
||||
display->rgba = rgba;
|
||||
|
||||
g_object_notify_by_pspec (G_OBJECT (display), props[PROP_RGBA]);
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
gdk_display_add_seat (GdkDisplay *display,
|
||||
GdkSeat *seat)
|
||||
|
@@ -65,6 +65,11 @@ void gdk_display_close (GdkDisplay *display);
|
||||
GDK_AVAILABLE_IN_ALL
|
||||
gboolean gdk_display_is_closed (GdkDisplay *display);
|
||||
|
||||
GDK_AVAILABLE_IN_3_90
|
||||
gboolean gdk_display_is_composited (GdkDisplay *display);
|
||||
GDK_AVAILABLE_IN_3_90
|
||||
gboolean gdk_display_is_rgba (GdkDisplay *display);
|
||||
|
||||
GDK_AVAILABLE_IN_ALL
|
||||
GdkEvent* gdk_display_get_event (GdkDisplay *display);
|
||||
GDK_AVAILABLE_IN_ALL
|
||||
|
@@ -24,6 +24,10 @@
|
||||
#include "gdkmonitor.h"
|
||||
#include "gdkinternals.h"
|
||||
|
||||
#ifdef GDK_RENDERING_VULKAN
|
||||
#include <vulkan/vulkan.h>
|
||||
#endif
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define GDK_DISPLAY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDK_TYPE_DISPLAY, GdkDisplayClass))
|
||||
@@ -120,8 +124,18 @@ struct _GdkDisplay
|
||||
guint double_click_time; /* Maximum time between clicks in msecs */
|
||||
guint double_click_distance; /* Maximum distance between clicks in pixels */
|
||||
|
||||
guint has_gl_extension_texture_non_power_of_two : 1;
|
||||
guint has_gl_extension_texture_rectangle : 1;
|
||||
#ifdef GDK_RENDERING_VULKAN
|
||||
VkInstance vk_instance;
|
||||
VkDebugReportCallbackEXT vk_debug_callback;
|
||||
VkPhysicalDevice vk_physical_device;
|
||||
VkDevice vk_device;
|
||||
VkQueue vk_queue;
|
||||
uint32_t vk_queue_family_index;
|
||||
|
||||
guint vulkan_refcount;
|
||||
#endif /* GDK_RENDERING_VULKAN */
|
||||
guint rgba : 1;
|
||||
guint composited : 1;
|
||||
|
||||
GdkRenderingMode rendering_mode;
|
||||
|
||||
@@ -133,6 +147,8 @@ struct _GdkDisplayClass
|
||||
GObjectClass parent_class;
|
||||
|
||||
GType window_type; /* type for native windows for this display, set in class_init */
|
||||
GType vk_context_type; /* type for GdkVulkanContext, must be set if vk_extension_name != NULL */
|
||||
const char *vk_extension_name; /* Name of required windowing vulkan extension or %NULL (default) if Vulkan isn't supported */
|
||||
|
||||
const gchar * (*get_name) (GdkDisplay *display);
|
||||
GdkScreen * (*get_default_screen) (GdkDisplay *display);
|
||||
@@ -175,9 +191,6 @@ struct _GdkDisplayClass
|
||||
|
||||
GdkAppLaunchContext * (*get_app_launch_context) (GdkDisplay *display);
|
||||
|
||||
void (*before_process_all_updates) (GdkDisplay *display);
|
||||
void (*after_process_all_updates) (GdkDisplay *display);
|
||||
|
||||
gulong (*get_next_serial) (GdkDisplay *display);
|
||||
|
||||
void (*notify_startup_complete) (GdkDisplay *display,
|
||||
@@ -192,8 +205,7 @@ struct _GdkDisplayClass
|
||||
GdkWindow *real_parent,
|
||||
GdkScreen *screen,
|
||||
GdkEventMask event_mask,
|
||||
GdkWindowAttr *attributes,
|
||||
gint attributes_mask);
|
||||
GdkWindowAttr *attributes);
|
||||
|
||||
GdkKeymap * (*get_keymap) (GdkDisplay *display);
|
||||
void (*push_error_trap) (GdkDisplay *display);
|
||||
@@ -321,13 +333,17 @@ void _gdk_display_create_window_impl (GdkDisplay *display
|
||||
GdkWindow *real_parent,
|
||||
GdkScreen *screen,
|
||||
GdkEventMask event_mask,
|
||||
GdkWindowAttr *attributes,
|
||||
gint attributes_mask);
|
||||
GdkWindowAttr *attributes);
|
||||
GdkWindow * _gdk_display_create_window (GdkDisplay *display);
|
||||
|
||||
gboolean gdk_display_make_gl_context_current (GdkDisplay *display,
|
||||
GdkGLContext *context);
|
||||
|
||||
void gdk_display_set_rgba (GdkDisplay *display,
|
||||
gboolean rgba);
|
||||
void gdk_display_set_composited (GdkDisplay *display,
|
||||
gboolean composited);
|
||||
|
||||
void gdk_display_add_seat (GdkDisplay *display,
|
||||
GdkSeat *seat);
|
||||
void gdk_display_remove_seat (GdkDisplay *display,
|
||||
|
284
gdk/gdkdrawcontext.c
Normal file
284
gdk/gdkdrawcontext.c
Normal file
@@ -0,0 +1,284 @@
|
||||
/* GDK - The GIMP Drawing Kit
|
||||
*
|
||||
* gdkdrawcontext.c: base class for rendering system support
|
||||
*
|
||||
* Copyright © 2016 Benjamin Otte
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Library General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Library General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Library General Public
|
||||
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "config.h"
|
||||
|
||||
#include "gdkdrawcontextprivate.h"
|
||||
|
||||
#include "gdkinternals.h"
|
||||
#include "gdkintl.h"
|
||||
|
||||
/**
|
||||
* SECTION:gdkdrawcontext
|
||||
* @Title: GdkDrawContext
|
||||
* @Short_description: Drawing context base class
|
||||
*
|
||||
* #GdkDrawContext is the base object used by contexts implementing different
|
||||
* rendering methods, such as #GdkGLContext or #GdkVulkanContext. It provides
|
||||
* shared functionality between those contexts.
|
||||
*
|
||||
* You will always interact with one of those subclasses.
|
||||
*/
|
||||
typedef struct _GdkDrawContextPrivate GdkDrawContextPrivate;
|
||||
|
||||
struct _GdkDrawContextPrivate {
|
||||
GdkWindow *window;
|
||||
|
||||
guint is_drawing : 1;
|
||||
};
|
||||
|
||||
enum {
|
||||
PROP_0,
|
||||
|
||||
PROP_DISPLAY,
|
||||
PROP_WINDOW,
|
||||
|
||||
LAST_PROP
|
||||
};
|
||||
|
||||
static GParamSpec *pspecs[LAST_PROP] = { NULL, };
|
||||
|
||||
G_DEFINE_ABSTRACT_TYPE_WITH_PRIVATE (GdkDrawContext, gdk_draw_context, G_TYPE_OBJECT)
|
||||
|
||||
static void
|
||||
gdk_draw_context_dispose (GObject *gobject)
|
||||
{
|
||||
GdkDrawContext *context = GDK_DRAW_CONTEXT (gobject);
|
||||
GdkDrawContextPrivate *priv = gdk_draw_context_get_instance_private (context);
|
||||
|
||||
g_clear_object (&priv->window);
|
||||
|
||||
G_OBJECT_CLASS (gdk_draw_context_parent_class)->dispose (gobject);
|
||||
}
|
||||
|
||||
static void
|
||||
gdk_draw_context_set_property (GObject *gobject,
|
||||
guint prop_id,
|
||||
const GValue *value,
|
||||
GParamSpec *pspec)
|
||||
{
|
||||
GdkDrawContext *context = GDK_DRAW_CONTEXT (gobject);
|
||||
GdkDrawContextPrivate *priv = gdk_draw_context_get_instance_private (context);
|
||||
|
||||
switch (prop_id)
|
||||
{
|
||||
case PROP_WINDOW:
|
||||
priv->window = g_value_dup_object (value);
|
||||
g_assert (priv->window != NULL);
|
||||
break;
|
||||
|
||||
default:
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, prop_id, pspec);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
gdk_draw_context_get_property (GObject *gobject,
|
||||
guint prop_id,
|
||||
GValue *value,
|
||||
GParamSpec *pspec)
|
||||
{
|
||||
GdkDrawContext *context = GDK_DRAW_CONTEXT (gobject);
|
||||
GdkDrawContextPrivate *priv = gdk_draw_context_get_instance_private (context);
|
||||
|
||||
switch (prop_id)
|
||||
{
|
||||
case PROP_DISPLAY:
|
||||
g_value_set_object (value, gdk_draw_context_get_display (context));
|
||||
break;
|
||||
|
||||
case PROP_WINDOW:
|
||||
g_value_set_object (value, priv->window);
|
||||
break;
|
||||
|
||||
default:
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, prop_id, pspec);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
gdk_draw_context_class_init (GdkDrawContextClass *klass)
|
||||
{
|
||||
GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
|
||||
|
||||
gobject_class->set_property = gdk_draw_context_set_property;
|
||||
gobject_class->get_property = gdk_draw_context_get_property;
|
||||
gobject_class->dispose = gdk_draw_context_dispose;
|
||||
|
||||
/**
|
||||
* GdkDrawContext:display:
|
||||
*
|
||||
* The #GdkDisplay used to create the #GdkDrawContext.
|
||||
*
|
||||
* Since: 3.90
|
||||
*/
|
||||
pspecs[PROP_DISPLAY] =
|
||||
g_param_spec_object ("display",
|
||||
P_("Display"),
|
||||
P_("The GDK display used to create the context"),
|
||||
GDK_TYPE_DISPLAY,
|
||||
G_PARAM_READABLE |
|
||||
G_PARAM_STATIC_STRINGS);
|
||||
|
||||
/**
|
||||
* GdkDrawContext:window:
|
||||
*
|
||||
* The #GdkWindow the gl context is bound to.
|
||||
*
|
||||
* Since: 3.90
|
||||
*/
|
||||
pspecs[PROP_WINDOW] =
|
||||
g_param_spec_object ("window",
|
||||
P_("Window"),
|
||||
P_("The GDK window bound to the context"),
|
||||
GDK_TYPE_WINDOW,
|
||||
G_PARAM_READWRITE |
|
||||
G_PARAM_CONSTRUCT_ONLY |
|
||||
G_PARAM_STATIC_STRINGS);
|
||||
|
||||
g_object_class_install_properties (gobject_class, LAST_PROP, pspecs);
|
||||
}
|
||||
|
||||
static void
|
||||
gdk_draw_context_init (GdkDrawContext *self)
|
||||
{
|
||||
}
|
||||
|
||||
/*< private >
|
||||
* gdk_draw_context_is_drawing:
|
||||
* @context: a #GdkDrawContext
|
||||
*
|
||||
* Returns %TRUE if @context is in the process of drawing to its window. In such
|
||||
* cases, it will have access to the window's backbuffer to render the new frame
|
||||
* onto it.
|
||||
*
|
||||
* Returns: %TRUE if the context is between begin_frame() and end_frame() calls.
|
||||
*
|
||||
* Since: 3.90
|
||||
*/
|
||||
gboolean
|
||||
gdk_draw_context_is_drawing (GdkDrawContext *context)
|
||||
{
|
||||
GdkDrawContextPrivate *priv = gdk_draw_context_get_instance_private (context);
|
||||
|
||||
return priv->is_drawing;
|
||||
}
|
||||
|
||||
/*< private >
|
||||
* gdk_draw_context_begin_frame:
|
||||
* @context: a #GdkDrawContext
|
||||
* @region: (inout): The clip region that needs to be repainted
|
||||
*
|
||||
* Sets up @context and @drawing for a new drawing.
|
||||
*
|
||||
* The @context is free to update @region to the size that actually needs to
|
||||
* be repainted. Contexts that do not support partial blits for example may
|
||||
* want to invalidate the whole window instead.
|
||||
*
|
||||
* The function does not clear the background. Clearing the backgroud is the
|
||||
* job of the renderer. The contents of the backbuffer are undefined after this
|
||||
* function call.
|
||||
*
|
||||
* Since: 3.90
|
||||
*/
|
||||
void
|
||||
gdk_draw_context_begin_frame (GdkDrawContext *context,
|
||||
cairo_region_t *region)
|
||||
{
|
||||
GdkDrawContextPrivate *priv;
|
||||
|
||||
g_return_if_fail (GDK_IS_DRAW_CONTEXT (context));
|
||||
g_return_if_fail (region != NULL);
|
||||
|
||||
priv = gdk_draw_context_get_instance_private (context);
|
||||
priv->is_drawing = TRUE;
|
||||
|
||||
GDK_DRAW_CONTEXT_GET_CLASS (context)->begin_frame (context, region);
|
||||
}
|
||||
|
||||
/*< private >
|
||||
* gdk_draw_context_end_frame:
|
||||
* @context: a #GdkDrawContext
|
||||
* @painted: The area that has been redrawn this frame
|
||||
* @damage: The area that we know is actually different from the last frame
|
||||
*
|
||||
* Copies the back buffer to the front buffer.
|
||||
*
|
||||
* This function may call `glFlush()` implicitly before returning; it
|
||||
* is not recommended to call `glFlush()` explicitly before calling
|
||||
* this function.
|
||||
*
|
||||
* Since: 3.16
|
||||
*/
|
||||
void
|
||||
gdk_draw_context_end_frame (GdkDrawContext *context,
|
||||
cairo_region_t *painted,
|
||||
cairo_region_t *damage)
|
||||
{
|
||||
GdkDrawContextPrivate *priv;
|
||||
|
||||
g_return_if_fail (GDK_IS_DRAW_CONTEXT (context));
|
||||
|
||||
GDK_DRAW_CONTEXT_GET_CLASS (context)->end_frame (context, painted, damage);
|
||||
|
||||
priv = gdk_draw_context_get_instance_private (context);
|
||||
priv->is_drawing = FALSE;
|
||||
}
|
||||
|
||||
/**
|
||||
* gdk_draw_context_get_display:
|
||||
* @context: a #GdkDrawContext
|
||||
*
|
||||
* Retrieves the #GdkDisplay the @context is created for
|
||||
*
|
||||
* Returns: (nullable) (transfer none): a #GdkDisplay or %NULL
|
||||
*
|
||||
* Since: 3.90
|
||||
*/
|
||||
GdkDisplay *
|
||||
gdk_draw_context_get_display (GdkDrawContext *context)
|
||||
{
|
||||
GdkDrawContextPrivate *priv = gdk_draw_context_get_instance_private (context);
|
||||
|
||||
g_return_val_if_fail (GDK_IS_DRAW_CONTEXT (context), NULL);
|
||||
|
||||
return priv->window ? gdk_window_get_display (priv->window) : NULL;
|
||||
}
|
||||
|
||||
/**
|
||||
* gdk_draw_context_get_window:
|
||||
* @context: a #GdkDrawContext
|
||||
*
|
||||
* Retrieves the #GdkWindow used by the @context.
|
||||
*
|
||||
* Returns: (nullable) (transfer none): a #GdkWindow or %NULL
|
||||
*
|
||||
* Since: 3.90
|
||||
*/
|
||||
GdkWindow *
|
||||
gdk_draw_context_get_window (GdkDrawContext *context)
|
||||
{
|
||||
GdkDrawContextPrivate *priv = gdk_draw_context_get_instance_private (context);
|
||||
|
||||
g_return_val_if_fail (GDK_IS_DRAW_CONTEXT (context), NULL);
|
||||
|
||||
return priv->window;
|
||||
}
|
||||
|
47
gdk/gdkdrawcontext.h
Normal file
47
gdk/gdkdrawcontext.h
Normal file
@@ -0,0 +1,47 @@
|
||||
/* GDK - The GIMP Drawing Kit
|
||||
*
|
||||
* gdkdrawcontext.h: base class for rendering system support
|
||||
*
|
||||
* Copyright © 2016 Benjamin Otte
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Library General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Library General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Library General Public
|
||||
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef __GDK_DRAW_CONTEXT__
|
||||
#define __GDK_DRAW_CONTEXT__
|
||||
|
||||
#if !defined (__GDK_H_INSIDE__) && !defined (GDK_COMPILATION)
|
||||
#error "Only <gdk/gdk.h> can be included directly."
|
||||
#endif
|
||||
|
||||
#include <gdk/gdkversionmacros.h>
|
||||
#include <gdk/gdktypes.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define GDK_TYPE_DRAW_CONTEXT (gdk_draw_context_get_type ())
|
||||
#define GDK_DRAW_CONTEXT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GDK_TYPE_DRAW_CONTEXT, GdkDrawContext))
|
||||
#define GDK_IS_DRAW_CONTEXT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GDK_TYPE_DRAW_CONTEXT))
|
||||
|
||||
GDK_AVAILABLE_IN_3_90
|
||||
GType gdk_draw_context_get_type (void) G_GNUC_CONST;
|
||||
|
||||
GDK_AVAILABLE_IN_3_90
|
||||
GdkDisplay * gdk_draw_context_get_display (GdkDrawContext *context);
|
||||
GDK_AVAILABLE_IN_3_90
|
||||
GdkWindow * gdk_draw_context_get_window (GdkDrawContext *context);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* __GDK_DRAW_CONTEXT__ */
|
59
gdk/gdkdrawcontextprivate.h
Normal file
59
gdk/gdkdrawcontextprivate.h
Normal file
@@ -0,0 +1,59 @@
|
||||
/* GDK - The GIMP Drawing Kit
|
||||
*
|
||||
* gdkdrawcontext.h: base class for rendering system support
|
||||
*
|
||||
* Copyright © 2016 Benjamin Otte
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Library General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Library General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Library General Public
|
||||
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef __GDK_DRAW_CONTEXT_PRIVATE__
|
||||
#define __GDK_DRAW_CONTEXT_PRIVATE__
|
||||
|
||||
#include "gdkdrawcontext.h"
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define GDK_DRAW_CONTEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDK_TYPE_DRAW_CONTEXT, GdkDrawContextClass))
|
||||
#define GDK_IS_DRAW_CONTEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDK_TYPE_DRAW_CONTEXT))
|
||||
#define GDK_DRAW_CONTEXT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GDK_TYPE_DRAW_CONTEXT, GdkDrawContextClass))
|
||||
|
||||
typedef struct _GdkDrawContextClass GdkDrawContextClass;
|
||||
|
||||
struct _GdkDrawContext
|
||||
{
|
||||
GObject parent_instance;
|
||||
};
|
||||
|
||||
struct _GdkDrawContextClass
|
||||
{
|
||||
GObjectClass parent_class;
|
||||
|
||||
void (* begin_frame) (GdkDrawContext *context,
|
||||
cairo_region_t *update_area);
|
||||
void (* end_frame) (GdkDrawContext *context,
|
||||
cairo_region_t *painted,
|
||||
cairo_region_t *damage);
|
||||
};
|
||||
|
||||
gboolean gdk_draw_context_is_drawing (GdkDrawContext *context);
|
||||
void gdk_draw_context_begin_frame (GdkDrawContext *context,
|
||||
cairo_region_t *region);
|
||||
void gdk_draw_context_end_frame (GdkDrawContext *context,
|
||||
cairo_region_t *painted,
|
||||
cairo_region_t *damage);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* __GDK__DRAW_CONTEXT_PRIVATE__ */
|
@@ -46,13 +46,24 @@
|
||||
#include "gdkglcontextprivate.h"
|
||||
#include "gdk-private.h"
|
||||
|
||||
G_DEFINE_TYPE (GdkDrawingContext, gdk_drawing_context, G_TYPE_OBJECT)
|
||||
typedef struct _GdkDrawingContextPrivate GdkDrawingContextPrivate;
|
||||
|
||||
struct _GdkDrawingContextPrivate {
|
||||
GdkWindow *window;
|
||||
GdkDrawContext *paint_context;
|
||||
|
||||
cairo_region_t *clip;
|
||||
cairo_t *cr;
|
||||
};
|
||||
|
||||
G_DEFINE_TYPE_WITH_PRIVATE (GdkDrawingContext, gdk_drawing_context, G_TYPE_OBJECT)
|
||||
|
||||
enum {
|
||||
PROP_0,
|
||||
|
||||
PROP_WINDOW,
|
||||
PROP_CLIP,
|
||||
PROP_PAINT_CONTEXT,
|
||||
|
||||
N_PROPS
|
||||
};
|
||||
@@ -63,16 +74,18 @@ static void
|
||||
gdk_drawing_context_dispose (GObject *gobject)
|
||||
{
|
||||
GdkDrawingContext *self = GDK_DRAWING_CONTEXT (gobject);
|
||||
GdkDrawingContextPrivate *priv = gdk_drawing_context_get_instance_private (self);
|
||||
|
||||
/* Unset the drawing context, in case somebody is holding
|
||||
* onto the Cairo context
|
||||
*/
|
||||
if (self->cr != NULL)
|
||||
gdk_cairo_set_drawing_context (self->cr, NULL);
|
||||
if (priv->cr != NULL)
|
||||
gdk_cairo_set_drawing_context (priv->cr, NULL);
|
||||
|
||||
g_clear_object (&self->window);
|
||||
g_clear_pointer (&self->clip, cairo_region_destroy);
|
||||
g_clear_pointer (&self->cr, cairo_destroy);
|
||||
g_clear_object (&priv->window);
|
||||
g_clear_object (&priv->paint_context);
|
||||
g_clear_pointer (&priv->clip, cairo_region_destroy);
|
||||
g_clear_pointer (&priv->cr, cairo_destroy);
|
||||
|
||||
G_OBJECT_CLASS (gdk_drawing_context_parent_class)->dispose (gobject);
|
||||
}
|
||||
@@ -84,15 +97,27 @@ gdk_drawing_context_set_property (GObject *gobject,
|
||||
GParamSpec *pspec)
|
||||
{
|
||||
GdkDrawingContext *self = GDK_DRAWING_CONTEXT (gobject);
|
||||
GdkDrawingContextPrivate *priv = gdk_drawing_context_get_instance_private (self);
|
||||
|
||||
switch (prop_id)
|
||||
{
|
||||
case PROP_WINDOW:
|
||||
self->window = g_value_dup_object (value);
|
||||
priv->window = g_value_dup_object (value);
|
||||
if (priv->window == NULL)
|
||||
{
|
||||
g_critical ("The drawing context of type %s does not have a window "
|
||||
"associated to it. Drawing contexts can only be created "
|
||||
"using gdk_window_begin_draw_frame().",
|
||||
G_OBJECT_TYPE_NAME (gobject));
|
||||
return;
|
||||
}
|
||||
|
||||
case PROP_PAINT_CONTEXT:
|
||||
priv->paint_context = g_value_dup_object (value);
|
||||
break;
|
||||
|
||||
case PROP_CLIP:
|
||||
self->clip = g_value_dup_boxed (value);
|
||||
priv->clip = g_value_dup_boxed (value);
|
||||
break;
|
||||
|
||||
default:
|
||||
@@ -107,15 +132,20 @@ gdk_drawing_context_get_property (GObject *gobject,
|
||||
GParamSpec *pspec)
|
||||
{
|
||||
GdkDrawingContext *self = GDK_DRAWING_CONTEXT (gobject);
|
||||
GdkDrawingContextPrivate *priv = gdk_drawing_context_get_instance_private (self);
|
||||
|
||||
switch (prop_id)
|
||||
{
|
||||
case PROP_WINDOW:
|
||||
g_value_set_object (value, self->window);
|
||||
g_value_set_object (value, priv->window);
|
||||
break;
|
||||
|
||||
case PROP_CLIP:
|
||||
g_value_set_boxed (value, self->clip);
|
||||
g_value_set_boxed (value, priv->clip);
|
||||
break;
|
||||
|
||||
case PROP_PAINT_CONTEXT:
|
||||
g_value_set_object (value, priv->paint_context);
|
||||
break;
|
||||
|
||||
default:
|
||||
@@ -123,28 +153,11 @@ gdk_drawing_context_get_property (GObject *gobject,
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
gdk_drawing_context_constructed (GObject *gobject)
|
||||
{
|
||||
GdkDrawingContext *self = GDK_DRAWING_CONTEXT (gobject);
|
||||
|
||||
if (self->window == NULL)
|
||||
{
|
||||
g_critical ("The drawing context of type %s does not have a window "
|
||||
"associated to it. Drawing contexts can only be created "
|
||||
"using gdk_window_begin_draw_frame().",
|
||||
G_OBJECT_TYPE_NAME (gobject));
|
||||
}
|
||||
|
||||
G_OBJECT_CLASS (gdk_drawing_context_parent_class)->constructed (gobject);
|
||||
}
|
||||
|
||||
static void
|
||||
gdk_drawing_context_class_init (GdkDrawingContextClass *klass)
|
||||
{
|
||||
GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
|
||||
|
||||
gobject_class->constructed = gdk_drawing_context_constructed;
|
||||
gobject_class->set_property = gdk_drawing_context_set_property;
|
||||
gobject_class->get_property = gdk_drawing_context_get_property;
|
||||
gobject_class->dispose = gdk_drawing_context_dispose;
|
||||
@@ -175,6 +188,19 @@ gdk_drawing_context_class_init (GdkDrawingContextClass *klass)
|
||||
G_PARAM_CONSTRUCT_ONLY |
|
||||
G_PARAM_READWRITE |
|
||||
G_PARAM_STATIC_STRINGS);
|
||||
/**
|
||||
* GdkDrawingContext:paint-context:
|
||||
*
|
||||
* The #GdkDrawContext used to draw or %NULL if Cairo is used.
|
||||
*
|
||||
* Since: 3.90
|
||||
*/
|
||||
obj_property[PROP_PAINT_CONTEXT] =
|
||||
g_param_spec_object ("paint-context", "Paint context", "The context used to draw",
|
||||
GDK_TYPE_DRAW_CONTEXT,
|
||||
G_PARAM_CONSTRUCT_ONLY |
|
||||
G_PARAM_READWRITE |
|
||||
G_PARAM_STATIC_STRINGS);
|
||||
|
||||
g_object_class_install_properties (gobject_class, N_PROPS, obj_property);
|
||||
}
|
||||
@@ -214,10 +240,13 @@ gdk_cairo_get_drawing_context (cairo_t *cr)
|
||||
|
||||
/**
|
||||
* gdk_drawing_context_get_cairo_context:
|
||||
* @context:
|
||||
* @context: a #GdkDrawingContext created with a %NULL paint context
|
||||
*
|
||||
* Retrieves a Cairo context to be used to draw on the #GdkWindow
|
||||
* that created the #GdkDrawingContext.
|
||||
* that created the #GdkDrawingContext. The @context must have been
|
||||
* created without a #GdkDrawContext for this function to work. If
|
||||
* gdk_drawing_context_get_paint_context() does not return %NULL,
|
||||
* then this function will.
|
||||
*
|
||||
* The returned context is guaranteed to be valid as long as the
|
||||
* #GdkDrawingContext is valid, that is between a call to
|
||||
@@ -225,36 +254,42 @@ gdk_cairo_get_drawing_context (cairo_t *cr)
|
||||
*
|
||||
* Returns: (transfer none): a Cairo context to be used to draw
|
||||
* the contents of the #GdkWindow. The context is owned by the
|
||||
* #GdkDrawingContext and should not be destroyed
|
||||
* #GdkDrawingContext and should not be destroyed. %NULL is
|
||||
* returned when a paint context is in used.
|
||||
*
|
||||
* Since: 3.22
|
||||
*/
|
||||
cairo_t *
|
||||
gdk_drawing_context_get_cairo_context (GdkDrawingContext *context)
|
||||
{
|
||||
g_return_val_if_fail (GDK_IS_DRAWING_CONTEXT (context), NULL);
|
||||
g_return_val_if_fail (GDK_IS_WINDOW (context->window), NULL);
|
||||
GdkDrawingContextPrivate *priv = gdk_drawing_context_get_instance_private (context);
|
||||
|
||||
if (context->cr == NULL)
|
||||
g_return_val_if_fail (GDK_IS_DRAWING_CONTEXT (context), NULL);
|
||||
g_return_val_if_fail (GDK_IS_WINDOW (priv->window), NULL);
|
||||
|
||||
if (priv->paint_context != NULL)
|
||||
return NULL;
|
||||
|
||||
if (priv->cr == NULL)
|
||||
{
|
||||
cairo_region_t *region;
|
||||
cairo_surface_t *surface;
|
||||
|
||||
surface = _gdk_window_ref_cairo_surface (context->window);
|
||||
context->cr = cairo_create (surface);
|
||||
surface = _gdk_window_ref_cairo_surface (priv->window);
|
||||
priv->cr = cairo_create (surface);
|
||||
|
||||
gdk_cairo_set_drawing_context (context->cr, context);
|
||||
gdk_cairo_set_drawing_context (priv->cr, context);
|
||||
|
||||
region = gdk_window_get_current_paint_region (context->window);
|
||||
cairo_region_union (region, context->clip);
|
||||
gdk_cairo_region (context->cr, region);
|
||||
cairo_clip (context->cr);
|
||||
region = gdk_window_get_current_paint_region (priv->window);
|
||||
cairo_region_union (region, priv->clip);
|
||||
gdk_cairo_region (priv->cr, region);
|
||||
cairo_clip (priv->cr);
|
||||
|
||||
cairo_region_destroy (region);
|
||||
cairo_surface_destroy (surface);
|
||||
}
|
||||
|
||||
return context->cr;
|
||||
return priv->cr;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -270,9 +305,31 @@ gdk_drawing_context_get_cairo_context (GdkDrawingContext *context)
|
||||
GdkWindow *
|
||||
gdk_drawing_context_get_window (GdkDrawingContext *context)
|
||||
{
|
||||
GdkDrawingContextPrivate *priv = gdk_drawing_context_get_instance_private (context);
|
||||
|
||||
g_return_val_if_fail (GDK_IS_DRAWING_CONTEXT (context), NULL);
|
||||
|
||||
return context->window;
|
||||
return priv->window;
|
||||
}
|
||||
|
||||
/**
|
||||
* gdk_drawing_context_get_paint_context:
|
||||
* @context: a #GdkDrawingContext
|
||||
*
|
||||
* Retrieves the paint context used to draw with.
|
||||
*
|
||||
* Returns: (transfer none): a #GdkDrawContext or %NULL
|
||||
*
|
||||
* Since: 3.90
|
||||
*/
|
||||
GdkDrawContext *
|
||||
gdk_drawing_context_get_paint_context (GdkDrawingContext *context)
|
||||
{
|
||||
GdkDrawingContextPrivate *priv = gdk_drawing_context_get_instance_private (context);
|
||||
|
||||
g_return_val_if_fail (GDK_IS_DRAWING_CONTEXT (context), NULL);
|
||||
|
||||
return priv->paint_context;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -288,12 +345,14 @@ gdk_drawing_context_get_window (GdkDrawingContext *context)
|
||||
cairo_region_t *
|
||||
gdk_drawing_context_get_clip (GdkDrawingContext *context)
|
||||
{
|
||||
GdkDrawingContextPrivate *priv = gdk_drawing_context_get_instance_private (context);
|
||||
|
||||
g_return_val_if_fail (GDK_IS_DRAWING_CONTEXT (context), NULL);
|
||||
|
||||
if (context->clip == NULL)
|
||||
if (priv->clip == NULL)
|
||||
return NULL;
|
||||
|
||||
return cairo_region_copy (context->clip);
|
||||
return cairo_region_copy (priv->clip);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -309,12 +368,14 @@ gdk_drawing_context_get_clip (GdkDrawingContext *context)
|
||||
gboolean
|
||||
gdk_drawing_context_is_valid (GdkDrawingContext *context)
|
||||
{
|
||||
GdkDrawingContextPrivate *priv = gdk_drawing_context_get_instance_private (context);
|
||||
|
||||
g_return_val_if_fail (GDK_IS_DRAWING_CONTEXT (context), FALSE);
|
||||
|
||||
if (context->window == NULL)
|
||||
if (priv->window == NULL)
|
||||
return FALSE;
|
||||
|
||||
if (gdk_window_get_drawing_context (context->window) != context)
|
||||
if (gdk_window_get_drawing_context (priv->window) != context)
|
||||
return FALSE;
|
||||
|
||||
return TRUE;
|
||||
|
@@ -31,7 +31,6 @@ G_BEGIN_DECLS
|
||||
#define GDK_DRAWING_CONTEXT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GDK_TYPE_DRAWING_CONTEXT, GdkDrawingContext))
|
||||
#define GDK_IS_DRAWING_CONTEXT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GDK_TYPE_DRAWING_CONTEXT))
|
||||
|
||||
typedef struct _GdkDrawingContext GdkDrawingContext;
|
||||
typedef struct _GdkDrawingContextClass GdkDrawingContextClass;
|
||||
|
||||
GDK_AVAILABLE_IN_3_22
|
||||
@@ -39,6 +38,8 @@ GType gdk_drawing_context_get_type (void) G_GNUC_CONST;
|
||||
|
||||
GDK_AVAILABLE_IN_3_22
|
||||
GdkWindow * gdk_drawing_context_get_window (GdkDrawingContext *context);
|
||||
GDK_AVAILABLE_IN_3_90
|
||||
GdkDrawContext* gdk_drawing_context_get_paint_context (GdkDrawingContext *context);
|
||||
GDK_AVAILABLE_IN_3_22
|
||||
cairo_region_t *gdk_drawing_context_get_clip (GdkDrawingContext *context);
|
||||
|
||||
|
@@ -12,11 +12,6 @@ G_BEGIN_DECLS
|
||||
struct _GdkDrawingContext
|
||||
{
|
||||
GObject parent_instance;
|
||||
|
||||
GdkWindow *window;
|
||||
|
||||
cairo_region_t *clip;
|
||||
cairo_t *cr;
|
||||
};
|
||||
|
||||
struct _GdkDrawingContextClass
|
||||
|
379
gdk/gdkgl.c
379
gdk/gdkgl.c
@@ -340,18 +340,11 @@ gdk_cairo_draw_from_gl (cairo_t *cr,
|
||||
GdkGLContext *paint_context;
|
||||
cairo_surface_t *image;
|
||||
cairo_matrix_t matrix;
|
||||
int dx, dy, window_scale;
|
||||
gboolean trivial_transform;
|
||||
cairo_surface_t *group_target;
|
||||
GdkWindow *direct_window, *impl_window;
|
||||
guint framebuffer;
|
||||
int alpha_size = 0;
|
||||
cairo_region_t *clip_region;
|
||||
GdkGLContextPaintData *paint_data;
|
||||
|
||||
impl_window = window->impl_window;
|
||||
|
||||
window_scale = gdk_window_get_scale_factor (impl_window);
|
||||
int major, minor, version;
|
||||
|
||||
paint_context = gdk_window_get_paint_gl_context (window, NULL);
|
||||
if (paint_context == NULL)
|
||||
@@ -388,324 +381,71 @@ gdk_cairo_draw_from_gl (cairo_t *cr,
|
||||
return;
|
||||
}
|
||||
|
||||
group_target = cairo_get_group_target (cr);
|
||||
direct_window = cairo_surface_get_user_data (group_target, &direct_key);
|
||||
|
||||
cairo_get_matrix (cr, &matrix);
|
||||
|
||||
dx = matrix.x0;
|
||||
dy = matrix.y0;
|
||||
gdk_gl_context_get_version (paint_context, &major, &minor);
|
||||
version = major * 100 + minor;
|
||||
|
||||
/* Trivial == integer-only translation */
|
||||
trivial_transform =
|
||||
(double)dx == matrix.x0 && (double)dy == matrix.y0 &&
|
||||
matrix.xx == 1.0 && matrix.xy == 0.0 &&
|
||||
matrix.yx == 0.0 && matrix.yy == 1.0;
|
||||
/* TODO: Use glTexSubImage2D() and do a row-by-row copy to replace
|
||||
* the GL_UNPACK_ROW_LENGTH support
|
||||
*/
|
||||
if (gdk_gl_context_get_use_es (paint_context) &&
|
||||
!(version >= 300 || gdk_gl_context_has_unpack_subimage (paint_context)))
|
||||
goto out;
|
||||
|
||||
/* For direct paint of non-alpha renderbuffer, we can
|
||||
just do a bitblit */
|
||||
if ((_gdk_gl_flags & GDK_GL_SOFTWARE_DRAW_GL) == 0 &&
|
||||
source_type == GL_RENDERBUFFER &&
|
||||
alpha_size == 0 &&
|
||||
direct_window != NULL &&
|
||||
direct_window->current_paint.use_gl &&
|
||||
trivial_transform &&
|
||||
clip_region != NULL)
|
||||
/* TODO: avoid reading back non-required data due to dest clip */
|
||||
image = cairo_surface_create_similar_image (cairo_get_target (cr),
|
||||
(alpha_size == 0) ? CAIRO_FORMAT_RGB24 : CAIRO_FORMAT_ARGB32,
|
||||
width, height);
|
||||
|
||||
cairo_surface_set_device_scale (image, buffer_scale, buffer_scale);
|
||||
|
||||
framebuffer = paint_data->tmp_framebuffer;
|
||||
glBindFramebufferEXT (GL_FRAMEBUFFER_EXT, framebuffer);
|
||||
|
||||
if (source_type == GL_RENDERBUFFER)
|
||||
{
|
||||
int unscaled_window_height;
|
||||
int i;
|
||||
|
||||
/* Create a framebuffer with the source renderbuffer and
|
||||
make it the current target for reads */
|
||||
framebuffer = paint_data->tmp_framebuffer;
|
||||
glBindFramebufferEXT (GL_FRAMEBUFFER_EXT, framebuffer);
|
||||
glFramebufferRenderbufferEXT (GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT,
|
||||
GL_RENDERBUFFER_EXT, source);
|
||||
glBindFramebufferEXT (GL_DRAW_FRAMEBUFFER_EXT, 0);
|
||||
|
||||
/* Translate to impl coords */
|
||||
cairo_region_translate (clip_region, dx, dy);
|
||||
|
||||
glEnable (GL_SCISSOR_TEST);
|
||||
|
||||
gdk_window_get_unscaled_size (impl_window, NULL, &unscaled_window_height);
|
||||
|
||||
/* We can use glDrawBuffer on OpenGL only; on GLES 2.0 we are already
|
||||
* double buffered so we don't need it...
|
||||
*/
|
||||
if (!gdk_gl_context_get_use_es (paint_context))
|
||||
glDrawBuffer (GL_BACK);
|
||||
else
|
||||
{
|
||||
int maj, min;
|
||||
|
||||
gdk_gl_context_get_version (paint_context, &maj, &min);
|
||||
|
||||
/* ... but on GLES 3.0 we can use the vectorized glDrawBuffers
|
||||
* call.
|
||||
*/
|
||||
if ((maj * 100 + min) >= 300)
|
||||
{
|
||||
static const GLenum buffers[] = { GL_BACK };
|
||||
|
||||
glDrawBuffers (G_N_ELEMENTS (buffers), buffers);
|
||||
}
|
||||
}
|
||||
|
||||
#define FLIP_Y(_y) (unscaled_window_height - (_y))
|
||||
|
||||
for (i = 0; i < cairo_region_num_rectangles (clip_region); i++)
|
||||
{
|
||||
cairo_rectangle_int_t clip_rect, dest;
|
||||
|
||||
cairo_region_get_rectangle (clip_region, i, &clip_rect);
|
||||
clip_rect.x *= window_scale;
|
||||
clip_rect.y *= window_scale;
|
||||
clip_rect.width *= window_scale;
|
||||
clip_rect.height *= window_scale;
|
||||
|
||||
glScissor (clip_rect.x, FLIP_Y (clip_rect.y + clip_rect.height),
|
||||
clip_rect.width, clip_rect.height);
|
||||
|
||||
dest.x = dx * window_scale;
|
||||
dest.y = dy * window_scale;
|
||||
dest.width = width * window_scale / buffer_scale;
|
||||
dest.height = height * window_scale / buffer_scale;
|
||||
|
||||
if (gdk_rectangle_intersect (&clip_rect, &dest, &dest))
|
||||
{
|
||||
int clipped_src_x = x + (dest.x - dx * window_scale);
|
||||
int clipped_src_y = y + (height - dest.height - (dest.y - dy * window_scale));
|
||||
glBlitFramebufferEXT(clipped_src_x, clipped_src_y,
|
||||
(clipped_src_x + dest.width), (clipped_src_y + dest.height),
|
||||
dest.x, FLIP_Y(dest.y + dest.height),
|
||||
dest.x + dest.width, FLIP_Y(dest.y),
|
||||
GL_COLOR_BUFFER_BIT, GL_NEAREST);
|
||||
if (impl_window->current_paint.flushed_region)
|
||||
{
|
||||
cairo_rectangle_int_t flushed_rect;
|
||||
|
||||
flushed_rect.x = dest.x / window_scale;
|
||||
flushed_rect.y = dest.y / window_scale;
|
||||
flushed_rect.width = (dest.x + dest.width + window_scale - 1) / window_scale - flushed_rect.x;
|
||||
flushed_rect.height = (dest.y + dest.height + window_scale - 1) / window_scale - flushed_rect.y;
|
||||
|
||||
cairo_region_union_rectangle (impl_window->current_paint.flushed_region,
|
||||
&flushed_rect);
|
||||
cairo_region_subtract_rectangle (impl_window->current_paint.need_blend_region,
|
||||
&flushed_rect);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
glDisable (GL_SCISSOR_TEST);
|
||||
|
||||
glBindFramebufferEXT (GL_FRAMEBUFFER_EXT, 0);
|
||||
|
||||
#undef FLIP_Y
|
||||
|
||||
}
|
||||
/* For direct paint of alpha or non-alpha textures we can use texturing */
|
||||
else if ((_gdk_gl_flags & GDK_GL_SOFTWARE_DRAW_GL) == 0 &&
|
||||
source_type == GL_TEXTURE &&
|
||||
direct_window != NULL &&
|
||||
direct_window->current_paint.use_gl &&
|
||||
trivial_transform &&
|
||||
clip_region != NULL)
|
||||
{
|
||||
int unscaled_window_height;
|
||||
GLint texture_width;
|
||||
GLint texture_height;
|
||||
int i, n_rects, n_quads;
|
||||
GdkTexturedQuad *quads;
|
||||
cairo_rectangle_int_t clip_rect;
|
||||
|
||||
/* Translate to impl coords */
|
||||
cairo_region_translate (clip_region, dx, dy);
|
||||
|
||||
if (alpha_size != 0)
|
||||
{
|
||||
cairo_region_t *opaque_region, *blend_region;
|
||||
|
||||
opaque_region = cairo_region_copy (clip_region);
|
||||
cairo_region_subtract (opaque_region, impl_window->current_paint.flushed_region);
|
||||
cairo_region_subtract (opaque_region, impl_window->current_paint.need_blend_region);
|
||||
|
||||
if (!cairo_region_is_empty (opaque_region))
|
||||
gdk_gl_texture_from_surface (impl_window->current_paint.surface,
|
||||
opaque_region);
|
||||
|
||||
blend_region = cairo_region_copy (clip_region);
|
||||
cairo_region_intersect (blend_region, impl_window->current_paint.need_blend_region);
|
||||
|
||||
glEnable (GL_BLEND);
|
||||
if (!cairo_region_is_empty (blend_region))
|
||||
gdk_gl_texture_from_surface (impl_window->current_paint.surface,
|
||||
blend_region);
|
||||
|
||||
cairo_region_destroy (opaque_region);
|
||||
cairo_region_destroy (blend_region);
|
||||
}
|
||||
|
||||
glBindTexture (GL_TEXTURE_2D, source);
|
||||
|
||||
if (gdk_gl_context_get_use_es (paint_context))
|
||||
{
|
||||
texture_width = width;
|
||||
texture_height = height;
|
||||
}
|
||||
else
|
||||
{
|
||||
glGetTexLevelParameteriv (GL_TEXTURE_2D, 0, GL_TEXTURE_WIDTH, &texture_width);
|
||||
glGetTexLevelParameteriv (GL_TEXTURE_2D, 0, GL_TEXTURE_HEIGHT, &texture_height);
|
||||
}
|
||||
|
||||
glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
|
||||
glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
|
||||
glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
|
||||
glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
|
||||
|
||||
glEnable (GL_SCISSOR_TEST);
|
||||
|
||||
gdk_window_get_unscaled_size (impl_window, NULL, &unscaled_window_height);
|
||||
|
||||
#define FLIP_Y(_y) (unscaled_window_height - (_y))
|
||||
|
||||
cairo_region_get_extents (clip_region, &clip_rect);
|
||||
|
||||
glScissor (clip_rect.x * window_scale, FLIP_Y ((clip_rect.y + clip_rect.height) * window_scale),
|
||||
clip_rect.width * window_scale, clip_rect.height * window_scale);
|
||||
|
||||
n_quads = 0;
|
||||
n_rects = cairo_region_num_rectangles (clip_region);
|
||||
quads = g_new (GdkTexturedQuad, n_rects);
|
||||
for (i = 0; i < n_rects; i++)
|
||||
{
|
||||
cairo_rectangle_int_t dest;
|
||||
|
||||
cairo_region_get_rectangle (clip_region, i, &clip_rect);
|
||||
|
||||
clip_rect.x *= window_scale;
|
||||
clip_rect.y *= window_scale;
|
||||
clip_rect.width *= window_scale;
|
||||
clip_rect.height *= window_scale;
|
||||
|
||||
dest.x = dx * window_scale;
|
||||
dest.y = dy * window_scale;
|
||||
dest.width = width * window_scale / buffer_scale;
|
||||
dest.height = height * window_scale / buffer_scale;
|
||||
|
||||
if (gdk_rectangle_intersect (&clip_rect, &dest, &dest))
|
||||
{
|
||||
int clipped_src_x = x + (dest.x - dx * window_scale);
|
||||
int clipped_src_y = y + (height - dest.height - (dest.y - dy * window_scale));
|
||||
GdkTexturedQuad quad = {
|
||||
dest.x, FLIP_Y(dest.y),
|
||||
dest.x + dest.width, FLIP_Y(dest.y + dest.height),
|
||||
clipped_src_x / (float)texture_width, (clipped_src_y + dest.height) / (float)texture_height,
|
||||
(clipped_src_x + dest.width) / (float)texture_width, clipped_src_y / (float)texture_height,
|
||||
};
|
||||
|
||||
quads[n_quads++] = quad;
|
||||
|
||||
if (impl_window->current_paint.flushed_region)
|
||||
{
|
||||
cairo_rectangle_int_t flushed_rect;
|
||||
|
||||
flushed_rect.x = dest.x / window_scale;
|
||||
flushed_rect.y = dest.y / window_scale;
|
||||
flushed_rect.width = (dest.x + dest.width + window_scale - 1) / window_scale - flushed_rect.x;
|
||||
flushed_rect.height = (dest.y + dest.height + window_scale - 1) / window_scale - flushed_rect.y;
|
||||
|
||||
cairo_region_union_rectangle (impl_window->current_paint.flushed_region,
|
||||
&flushed_rect);
|
||||
cairo_region_subtract_rectangle (impl_window->current_paint.need_blend_region,
|
||||
&flushed_rect);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (n_quads > 0)
|
||||
gdk_gl_texture_quads (paint_context, GL_TEXTURE_2D, n_quads, quads, FALSE);
|
||||
|
||||
g_free (quads);
|
||||
|
||||
if (alpha_size != 0)
|
||||
glDisable (GL_BLEND);
|
||||
|
||||
#undef FLIP_Y
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Software fallback */
|
||||
int major, minor, version;
|
||||
|
||||
gdk_gl_context_get_version (paint_context, &major, &minor);
|
||||
version = major * 100 + minor;
|
||||
|
||||
/* TODO: Use glTexSubImage2D() and do a row-by-row copy to replace
|
||||
* the GL_UNPACK_ROW_LENGTH support
|
||||
*/
|
||||
if (gdk_gl_context_get_use_es (paint_context) &&
|
||||
!(version >= 300 || gdk_gl_context_has_unpack_subimage (paint_context)))
|
||||
goto out;
|
||||
|
||||
/* TODO: avoid reading back non-required data due to dest clip */
|
||||
image = cairo_surface_create_similar_image (cairo_get_target (cr),
|
||||
(alpha_size == 0) ? CAIRO_FORMAT_RGB24 : CAIRO_FORMAT_ARGB32,
|
||||
width, height);
|
||||
|
||||
cairo_surface_set_device_scale (image, buffer_scale, buffer_scale);
|
||||
|
||||
framebuffer = paint_data->tmp_framebuffer;
|
||||
glBindFramebufferEXT (GL_FRAMEBUFFER_EXT, framebuffer);
|
||||
|
||||
if (source_type == GL_RENDERBUFFER)
|
||||
{
|
||||
/* Create a framebuffer with the source renderbuffer and
|
||||
make it the current target for reads */
|
||||
glFramebufferRenderbufferEXT (GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT,
|
||||
GL_RENDERBUFFER_EXT, source);
|
||||
}
|
||||
else
|
||||
{
|
||||
glFramebufferTexture2DEXT (GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT,
|
||||
GL_TEXTURE_2D, source, 0);
|
||||
}
|
||||
|
||||
glPixelStorei (GL_PACK_ALIGNMENT, 4);
|
||||
glPixelStorei (GL_PACK_ROW_LENGTH, cairo_image_surface_get_stride (image) / 4);
|
||||
|
||||
/* The implicit format conversion is going to make this path slower */
|
||||
if (!gdk_gl_context_get_use_es (paint_context))
|
||||
glReadPixels (x, y, width, height, GL_BGRA, GL_UNSIGNED_INT_8_8_8_8_REV,
|
||||
cairo_image_surface_get_data (image));
|
||||
else
|
||||
glReadPixels (x, y, width, height, GL_RGBA, GL_UNSIGNED_BYTE,
|
||||
cairo_image_surface_get_data (image));
|
||||
|
||||
glPixelStorei (GL_PACK_ROW_LENGTH, 0);
|
||||
|
||||
glBindFramebufferEXT (GL_FRAMEBUFFER_EXT, 0);
|
||||
|
||||
cairo_surface_mark_dirty (image);
|
||||
|
||||
/* Invert due to opengl having different origin */
|
||||
cairo_scale (cr, 1, -1);
|
||||
cairo_translate (cr, 0, -height / buffer_scale);
|
||||
|
||||
cairo_set_source_surface (cr, image, 0, 0);
|
||||
cairo_set_operator (cr, CAIRO_OPERATOR_OVER);
|
||||
cairo_paint (cr);
|
||||
|
||||
cairo_surface_destroy (image);
|
||||
glFramebufferTexture2DEXT (GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT,
|
||||
GL_TEXTURE_2D, source, 0);
|
||||
}
|
||||
|
||||
glPixelStorei (GL_PACK_ALIGNMENT, 4);
|
||||
glPixelStorei (GL_PACK_ROW_LENGTH, cairo_image_surface_get_stride (image) / 4);
|
||||
|
||||
/* The implicit format conversion is going to make this path slower */
|
||||
if (!gdk_gl_context_get_use_es (paint_context))
|
||||
glReadPixels (x, y, width, height, GL_BGRA, GL_UNSIGNED_INT_8_8_8_8_REV,
|
||||
cairo_image_surface_get_data (image));
|
||||
else
|
||||
glReadPixels (x, y, width, height, GL_RGBA, GL_UNSIGNED_BYTE,
|
||||
cairo_image_surface_get_data (image));
|
||||
|
||||
glPixelStorei (GL_PACK_ROW_LENGTH, 0);
|
||||
|
||||
glBindFramebufferEXT (GL_FRAMEBUFFER_EXT, 0);
|
||||
|
||||
cairo_surface_mark_dirty (image);
|
||||
|
||||
/* Invert due to opengl having different origin */
|
||||
cairo_scale (cr, 1, -1);
|
||||
cairo_translate (cr, 0, -height / buffer_scale);
|
||||
|
||||
cairo_set_source_surface (cr, image, 0, 0);
|
||||
cairo_set_operator (cr, CAIRO_OPERATOR_OVER);
|
||||
cairo_paint (cr);
|
||||
|
||||
cairo_surface_destroy (image);
|
||||
|
||||
out:
|
||||
if (clip_region)
|
||||
cairo_region_destroy (clip_region);
|
||||
|
||||
}
|
||||
|
||||
/* This is always called with the paint context current */
|
||||
@@ -726,6 +466,7 @@ gdk_gl_texture_from_surface (cairo_surface_t *surface,
|
||||
float umax, vmax;
|
||||
gboolean use_texture_rectangle;
|
||||
guint target;
|
||||
|
||||
paint_context = gdk_gl_context_get_current ();
|
||||
if ((_gdk_gl_flags & GDK_GL_SOFTWARE_DRAW_SURFACE) == 0 &&
|
||||
paint_context &&
|
||||
@@ -741,10 +482,8 @@ gdk_gl_texture_from_surface (cairo_surface_t *surface,
|
||||
gdk_window_get_unscaled_size (window, NULL, &unscaled_window_height);
|
||||
|
||||
sx = sy = 1;
|
||||
cairo_surface_get_device_scale (window->current_paint.surface, &sx, &sy);
|
||||
|
||||
cairo_surface_get_device_offset (surface,
|
||||
&device_x_offset, &device_y_offset);
|
||||
cairo_surface_get_device_scale (surface, &sx, &sy);
|
||||
cairo_surface_get_device_offset (surface, &device_x_offset, &device_y_offset);
|
||||
|
||||
glGenTextures (1, &texture_id);
|
||||
if (use_texture_rectangle)
|
||||
@@ -780,7 +519,12 @@ gdk_gl_texture_from_surface (cairo_surface_t *surface,
|
||||
e.height *= sy;
|
||||
image = cairo_surface_map_to_image (surface, &e);
|
||||
|
||||
gdk_gl_context_upload_texture (paint_context, image, e.width, e.height, target);
|
||||
gdk_gl_context_upload_texture (paint_context,
|
||||
cairo_image_surface_get_data (image),
|
||||
e.width,
|
||||
e.height,
|
||||
cairo_image_surface_get_stride (image),
|
||||
target);
|
||||
|
||||
cairo_surface_unmap_image (surface, image);
|
||||
|
||||
@@ -855,7 +599,12 @@ gdk_cairo_surface_upload_to_gl (cairo_surface_t *surface,
|
||||
rect.height = height;
|
||||
tmp = cairo_surface_map_to_image (surface, &rect);
|
||||
|
||||
gdk_gl_context_upload_texture (context, tmp, rect.width, rect.height, target);
|
||||
gdk_gl_context_upload_texture (context,
|
||||
cairo_image_surface_get_data (tmp),
|
||||
rect.width,
|
||||
rect.height,
|
||||
cairo_image_surface_get_stride (tmp),
|
||||
target);
|
||||
|
||||
cairo_surface_unmap_image (surface, tmp);
|
||||
}
|
||||
|
@@ -88,8 +88,6 @@
|
||||
#include <epoxy/gl.h>
|
||||
|
||||
typedef struct {
|
||||
GdkDisplay *display;
|
||||
GdkWindow *window;
|
||||
GdkGLContext *shared_context;
|
||||
|
||||
int major;
|
||||
@@ -114,8 +112,6 @@ typedef struct {
|
||||
enum {
|
||||
PROP_0,
|
||||
|
||||
PROP_DISPLAY,
|
||||
PROP_WINDOW,
|
||||
PROP_SHARED_CONTEXT,
|
||||
|
||||
LAST_PROP
|
||||
@@ -125,7 +121,7 @@ static GParamSpec *obj_pspecs[LAST_PROP] = { NULL, };
|
||||
|
||||
G_DEFINE_QUARK (gdk-gl-error-quark, gdk_gl_error)
|
||||
|
||||
G_DEFINE_ABSTRACT_TYPE_WITH_PRIVATE (GdkGLContext, gdk_gl_context, G_TYPE_OBJECT)
|
||||
G_DEFINE_ABSTRACT_TYPE_WITH_PRIVATE (GdkGLContext, gdk_gl_context, GDK_TYPE_DRAW_CONTEXT)
|
||||
|
||||
static GPrivate thread_current_context = G_PRIVATE_INIT (g_object_unref);
|
||||
|
||||
@@ -140,8 +136,6 @@ gdk_gl_context_dispose (GObject *gobject)
|
||||
if (current == context)
|
||||
g_private_replace (&thread_current_context, NULL);
|
||||
|
||||
g_clear_object (&priv->display);
|
||||
g_clear_object (&priv->window);
|
||||
g_clear_object (&priv->shared_context);
|
||||
|
||||
G_OBJECT_CLASS (gdk_gl_context_parent_class)->dispose (gobject);
|
||||
@@ -154,6 +148,7 @@ gdk_gl_context_finalize (GObject *gobject)
|
||||
GdkGLContextPrivate *priv = gdk_gl_context_get_instance_private (context);
|
||||
|
||||
g_clear_pointer (&priv->paint_data, g_free);
|
||||
G_OBJECT_CLASS (gdk_gl_context_parent_class)->finalize (gobject);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -166,34 +161,6 @@ gdk_gl_context_set_property (GObject *gobject,
|
||||
|
||||
switch (prop_id)
|
||||
{
|
||||
case PROP_DISPLAY:
|
||||
{
|
||||
GdkDisplay *display = g_value_get_object (value);
|
||||
|
||||
if (display)
|
||||
g_object_ref (display);
|
||||
|
||||
if (priv->display)
|
||||
g_object_unref (priv->display);
|
||||
|
||||
priv->display = display;
|
||||
}
|
||||
break;
|
||||
|
||||
case PROP_WINDOW:
|
||||
{
|
||||
GdkWindow *window = g_value_get_object (value);
|
||||
|
||||
if (window)
|
||||
g_object_ref (window);
|
||||
|
||||
if (priv->window)
|
||||
g_object_unref (priv->window);
|
||||
|
||||
priv->window = window;
|
||||
}
|
||||
break;
|
||||
|
||||
case PROP_SHARED_CONTEXT:
|
||||
{
|
||||
GdkGLContext *context = g_value_get_object (value);
|
||||
@@ -218,14 +185,6 @@ gdk_gl_context_get_property (GObject *gobject,
|
||||
|
||||
switch (prop_id)
|
||||
{
|
||||
case PROP_DISPLAY:
|
||||
g_value_set_object (value, priv->display);
|
||||
break;
|
||||
|
||||
case PROP_WINDOW:
|
||||
g_value_set_object (value, priv->window);
|
||||
break;
|
||||
|
||||
case PROP_SHARED_CONTEXT:
|
||||
g_value_set_object (value, priv->shared_context);
|
||||
break;
|
||||
@@ -237,9 +196,10 @@ gdk_gl_context_get_property (GObject *gobject,
|
||||
|
||||
void
|
||||
gdk_gl_context_upload_texture (GdkGLContext *context,
|
||||
cairo_surface_t *image_surface,
|
||||
const guchar *data,
|
||||
int width,
|
||||
int height,
|
||||
int stride,
|
||||
guint texture_target)
|
||||
{
|
||||
GdkGLContextPrivate *priv = gdk_gl_context_get_instance_private (context);
|
||||
@@ -253,21 +213,19 @@ gdk_gl_context_upload_texture (GdkGLContext *context,
|
||||
(priv->use_es && (priv->gl_version >= 30 || priv->has_unpack_subimage)))
|
||||
{
|
||||
glPixelStorei (GL_UNPACK_ALIGNMENT, 4);
|
||||
glPixelStorei (GL_UNPACK_ROW_LENGTH, cairo_image_surface_get_stride (image_surface) / 4);
|
||||
glPixelStorei (GL_UNPACK_ROW_LENGTH, stride / 4);
|
||||
|
||||
if (priv->use_es)
|
||||
glTexImage2D (texture_target, 0, GL_RGBA, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE,
|
||||
cairo_image_surface_get_data (image_surface));
|
||||
data);
|
||||
else
|
||||
glTexImage2D (texture_target, 0, GL_RGBA, width, height, 0, GL_BGRA, GL_UNSIGNED_INT_8_8_8_8_REV,
|
||||
cairo_image_surface_get_data (image_surface));
|
||||
data);
|
||||
|
||||
glPixelStorei (GL_UNPACK_ROW_LENGTH, 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
GLvoid *data = cairo_image_surface_get_data (image_surface);
|
||||
int stride = cairo_image_surface_get_stride (image_surface);
|
||||
int i;
|
||||
|
||||
if (priv->use_es)
|
||||
@@ -275,14 +233,14 @@ gdk_gl_context_upload_texture (GdkGLContext *context,
|
||||
glTexImage2D (texture_target, 0, GL_RGBA, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL);
|
||||
|
||||
for (i = 0; i < height; i++)
|
||||
glTexSubImage2D (texture_target, 0, 0, i, width, 1, GL_RGBA, GL_UNSIGNED_BYTE, (unsigned char*) data + (i * stride));
|
||||
glTexSubImage2D (texture_target, 0, 0, i, width, 1, GL_RGBA, GL_UNSIGNED_BYTE, data + (i * stride));
|
||||
}
|
||||
else
|
||||
{
|
||||
glTexImage2D (texture_target, 0, GL_RGBA, width, height, 0, GL_BGRA, GL_UNSIGNED_INT_8_8_8_8_REV, NULL);
|
||||
|
||||
for (i = 0; i < height; i++)
|
||||
glTexSubImage2D (texture_target, 0, 0, i, width, 1, GL_BGRA, GL_UNSIGNED_INT_8_8_8_8_REV, (unsigned char*) data + (i * stride));
|
||||
glTexSubImage2D (texture_target, 0, 0, i, width, 1, GL_BGRA, GL_UNSIGNED_INT_8_8_8_8_REV, data + (i * stride));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -297,44 +255,81 @@ gdk_gl_context_real_realize (GdkGLContext *self,
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static cairo_region_t *
|
||||
gdk_gl_context_real_get_damage (GdkGLContext *context)
|
||||
{
|
||||
GdkWindow *window = gdk_draw_context_get_window (GDK_DRAW_CONTEXT (context));
|
||||
|
||||
return cairo_region_create_rectangle (&(GdkRectangle) {
|
||||
0, 0,
|
||||
gdk_window_get_width (window),
|
||||
gdk_window_get_height (window)
|
||||
});
|
||||
}
|
||||
|
||||
static void
|
||||
gdk_gl_context_real_begin_frame (GdkDrawContext *draw_context,
|
||||
cairo_region_t *region)
|
||||
{
|
||||
GdkGLContext *context = GDK_GL_CONTEXT (draw_context);
|
||||
GdkWindow *window;
|
||||
GdkGLContext *shared;
|
||||
cairo_region_t *damage;
|
||||
int ww, wh;
|
||||
|
||||
shared = gdk_gl_context_get_shared_context (context);
|
||||
if (shared)
|
||||
{
|
||||
gdk_draw_context_begin_frame (GDK_DRAW_CONTEXT (shared), region);
|
||||
return;
|
||||
}
|
||||
|
||||
damage = gdk_gl_context_get_damage (context);
|
||||
cairo_region_union (region, damage);
|
||||
cairo_region_destroy (damage);
|
||||
|
||||
window = gdk_draw_context_get_window (draw_context);
|
||||
ww = gdk_window_get_width (window) * gdk_window_get_scale_factor (window);
|
||||
wh = gdk_window_get_height (window) * gdk_window_get_scale_factor (window);
|
||||
|
||||
gdk_gl_context_make_current (context);
|
||||
|
||||
/* Initial setup */
|
||||
glClearColor (0.0f, 0.0f, 0.0f, 0.0f);
|
||||
glDisable (GL_DEPTH_TEST);
|
||||
glDisable (GL_BLEND);
|
||||
glBlendFunc (GL_ONE, GL_ONE_MINUS_SRC_ALPHA);
|
||||
|
||||
glViewport (0, 0, ww, wh);
|
||||
}
|
||||
|
||||
static void
|
||||
gdk_gl_context_real_end_frame (GdkDrawContext *draw_context,
|
||||
cairo_region_t *painted,
|
||||
cairo_region_t *damage)
|
||||
{
|
||||
GdkGLContext *context = GDK_GL_CONTEXT (draw_context);
|
||||
GdkGLContext *shared;
|
||||
|
||||
shared = gdk_gl_context_get_shared_context (context);
|
||||
if (shared)
|
||||
{
|
||||
gdk_draw_context_end_frame (GDK_DRAW_CONTEXT (shared), painted, damage);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
gdk_gl_context_class_init (GdkGLContextClass *klass)
|
||||
{
|
||||
GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
|
||||
GdkDrawContextClass *draw_context_class = GDK_DRAW_CONTEXT_CLASS (klass);
|
||||
|
||||
klass->realize = gdk_gl_context_real_realize;
|
||||
klass->get_damage = gdk_gl_context_real_get_damage;
|
||||
|
||||
/**
|
||||
* GdkGLContext:display:
|
||||
*
|
||||
* The #GdkDisplay used to create the #GdkGLContext.
|
||||
*
|
||||
* Since: 3.16
|
||||
*/
|
||||
obj_pspecs[PROP_DISPLAY] =
|
||||
g_param_spec_object ("display",
|
||||
P_("Display"),
|
||||
P_("The GDK display used to create the GL context"),
|
||||
GDK_TYPE_DISPLAY,
|
||||
G_PARAM_READWRITE |
|
||||
G_PARAM_CONSTRUCT_ONLY |
|
||||
G_PARAM_STATIC_STRINGS);
|
||||
|
||||
/**
|
||||
* GdkGLContext:window:
|
||||
*
|
||||
* The #GdkWindow the gl context is bound to.
|
||||
*
|
||||
* Since: 3.16
|
||||
*/
|
||||
obj_pspecs[PROP_WINDOW] =
|
||||
g_param_spec_object ("window",
|
||||
P_("Window"),
|
||||
P_("The GDK window bound to the GL context"),
|
||||
GDK_TYPE_WINDOW,
|
||||
G_PARAM_READWRITE |
|
||||
G_PARAM_CONSTRUCT_ONLY |
|
||||
G_PARAM_STATIC_STRINGS);
|
||||
draw_context_class->begin_frame = gdk_gl_context_real_begin_frame;
|
||||
draw_context_class->end_frame = gdk_gl_context_real_end_frame;
|
||||
|
||||
/**
|
||||
* GdkGLContext:shared-context:
|
||||
@@ -368,34 +363,27 @@ gdk_gl_context_init (GdkGLContext *self)
|
||||
priv->use_es = -1;
|
||||
}
|
||||
|
||||
/*< private >
|
||||
* gdk_gl_context_end_frame:
|
||||
/**
|
||||
* gdk_gl_context_get_damage:
|
||||
* @context: a #GdkGLContext
|
||||
* @painted: The area that has been redrawn this frame
|
||||
* @damage: The area that we know is actually different from the last frame
|
||||
*
|
||||
* Copies the back buffer to the front buffer.
|
||||
* Returns the part of the backbuffer that is known to be damaged and would
|
||||
* need to be redrawn. This is the area that needs to be respected in addition
|
||||
* to areas invalidated by GTK or the windowing system itself.
|
||||
*
|
||||
* This function may call `glFlush()` implicitly before returning; it
|
||||
* is not recommended to call `glFlush()` explicitly before calling
|
||||
* this function.
|
||||
*
|
||||
* Since: 3.16
|
||||
*/
|
||||
void
|
||||
gdk_gl_context_end_frame (GdkGLContext *context,
|
||||
cairo_region_t *painted,
|
||||
cairo_region_t *damage)
|
||||
* Returns: The damage to the backbuffer
|
||||
**/
|
||||
cairo_region_t *
|
||||
gdk_gl_context_get_damage (GdkGLContext *context)
|
||||
{
|
||||
g_return_if_fail (GDK_IS_GL_CONTEXT (context));
|
||||
g_return_val_if_fail (GDK_IS_GL_CONTEXT (context), cairo_region_create ());
|
||||
|
||||
GDK_GL_CONTEXT_GET_CLASS (context)->end_frame (context, painted, damage);
|
||||
return GDK_GL_CONTEXT_GET_CLASS (context)->get_damage (context);
|
||||
}
|
||||
|
||||
GdkGLContextPaintData *
|
||||
gdk_gl_context_get_paint_data (GdkGLContext *context)
|
||||
{
|
||||
|
||||
GdkGLContextPrivate *priv = gdk_gl_context_get_instance_private (context);
|
||||
|
||||
if (priv->paint_data == NULL)
|
||||
@@ -882,7 +870,7 @@ gdk_gl_context_make_current (GdkGLContext *context)
|
||||
}
|
||||
}
|
||||
|
||||
if (gdk_display_make_gl_context_current (priv->display, context))
|
||||
if (gdk_display_make_gl_context_current (gdk_draw_context_get_display (GDK_DRAW_CONTEXT (context)), context))
|
||||
{
|
||||
g_private_replace (&thread_current_context, g_object_ref (context));
|
||||
gdk_gl_context_check_extensions (context);
|
||||
@@ -902,11 +890,9 @@ gdk_gl_context_make_current (GdkGLContext *context)
|
||||
GdkDisplay *
|
||||
gdk_gl_context_get_display (GdkGLContext *context)
|
||||
{
|
||||
GdkGLContextPrivate *priv = gdk_gl_context_get_instance_private (context);
|
||||
|
||||
g_return_val_if_fail (GDK_IS_GL_CONTEXT (context), NULL);
|
||||
|
||||
return priv->display;
|
||||
return gdk_draw_context_get_display (GDK_DRAW_CONTEXT (context));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -922,11 +908,9 @@ gdk_gl_context_get_display (GdkGLContext *context)
|
||||
GdkWindow *
|
||||
gdk_gl_context_get_window (GdkGLContext *context)
|
||||
{
|
||||
GdkGLContextPrivate *priv = gdk_gl_context_get_instance_private (context);
|
||||
|
||||
g_return_val_if_fail (GDK_IS_GL_CONTEXT (context), NULL);
|
||||
|
||||
return priv->window;
|
||||
return gdk_draw_context_get_window (GDK_DRAW_CONTEXT (context));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -995,9 +979,7 @@ gdk_gl_context_clear_current (void)
|
||||
current = g_private_get (&thread_current_context);
|
||||
if (current != NULL)
|
||||
{
|
||||
GdkGLContextPrivate *priv = gdk_gl_context_get_instance_private (current);
|
||||
|
||||
if (gdk_display_make_gl_context_current (priv->display, NULL))
|
||||
if (gdk_display_make_gl_context_current (gdk_draw_context_get_display (GDK_DRAW_CONTEXT (current)), NULL))
|
||||
g_private_replace (&thread_current_context, NULL);
|
||||
}
|
||||
}
|
||||
|
@@ -82,6 +82,9 @@ gboolean gdk_gl_context_get_use_es (GdkGLContext *
|
||||
GDK_AVAILABLE_IN_3_16
|
||||
gboolean gdk_gl_context_realize (GdkGLContext *context,
|
||||
GError **error);
|
||||
GDK_AVAILABLE_IN_3_90
|
||||
cairo_region_t * gdk_gl_context_get_damage (GdkGLContext *context);
|
||||
|
||||
GDK_AVAILABLE_IN_3_16
|
||||
void gdk_gl_context_make_current (GdkGLContext *context);
|
||||
GDK_AVAILABLE_IN_3_16
|
||||
|
@@ -22,6 +22,7 @@
|
||||
#define __GDK_GL_CONTEXT_PRIVATE_H__
|
||||
|
||||
#include "gdkglcontext.h"
|
||||
#include "gdkdrawcontextprivate.h"
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
@@ -33,19 +34,18 @@ typedef struct _GdkGLContextClass GdkGLContextClass;
|
||||
|
||||
struct _GdkGLContext
|
||||
{
|
||||
GObject parent_instance;
|
||||
GdkDrawContext parent_instance;
|
||||
};
|
||||
|
||||
struct _GdkGLContextClass
|
||||
{
|
||||
GObjectClass parent_class;
|
||||
GdkDrawContextClass parent_class;
|
||||
|
||||
gboolean (* realize) (GdkGLContext *context,
|
||||
GError **error);
|
||||
|
||||
void (* end_frame) (GdkGLContext *context,
|
||||
cairo_region_t *painted,
|
||||
cairo_region_t *damage);
|
||||
cairo_region_t * (* get_damage) (GdkGLContext *context);
|
||||
|
||||
gboolean (* texture_from_surface) (GdkGLContext *context,
|
||||
cairo_surface_t *surface,
|
||||
cairo_region_t *region);
|
||||
@@ -77,18 +77,16 @@ void gdk_gl_context_set_is_legacy (GdkGLContext
|
||||
gboolean is_legacy);
|
||||
|
||||
void gdk_gl_context_upload_texture (GdkGLContext *context,
|
||||
cairo_surface_t *image_surface,
|
||||
const guchar *data,
|
||||
int width,
|
||||
int height,
|
||||
int stride,
|
||||
guint texture_target);
|
||||
GdkGLContextPaintData * gdk_gl_context_get_paint_data (GdkGLContext *context);
|
||||
gboolean gdk_gl_context_use_texture_rectangle (GdkGLContext *context);
|
||||
gboolean gdk_gl_context_has_framebuffer_blit (GdkGLContext *context);
|
||||
gboolean gdk_gl_context_has_frame_terminator (GdkGLContext *context);
|
||||
gboolean gdk_gl_context_has_unpack_subimage (GdkGLContext *context);
|
||||
void gdk_gl_context_end_frame (GdkGLContext *context,
|
||||
cairo_region_t *painted,
|
||||
cairo_region_t *damage);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
|
@@ -35,4 +35,5 @@ gchar *_gdk_display_name = NULL;
|
||||
gchar *_gdk_display_arg_name = NULL;
|
||||
gboolean _gdk_disable_multidevice = FALSE;
|
||||
guint _gdk_gl_flags = 0;
|
||||
guint _gdk_vulkan_flags = 0;
|
||||
GdkRenderingMode _gdk_rendering_mode = GDK_RENDERING_MODE_SIMILAR;
|
||||
|
@@ -41,6 +41,7 @@ G_BEGIN_DECLS
|
||||
/* Debugging support */
|
||||
|
||||
typedef struct _GdkEventFilter GdkEventFilter;
|
||||
typedef struct _GdkWindowAttr GdkWindowAttr;
|
||||
|
||||
typedef enum {
|
||||
GDK_EVENT_FILTER_REMOVED = 1 << 0
|
||||
@@ -68,6 +69,7 @@ typedef enum {
|
||||
GDK_DEBUG_FRAMES = 1 << 11,
|
||||
GDK_DEBUG_SETTINGS = 1 << 12,
|
||||
GDK_DEBUG_OPENGL = 1 << 13,
|
||||
GDK_DEBUG_VULKAN = 1 << 14
|
||||
} GdkDebugFlag;
|
||||
|
||||
typedef enum {
|
||||
@@ -86,11 +88,17 @@ typedef enum {
|
||||
GDK_GL_GLES = 1 << 6
|
||||
} GdkGLFlags;
|
||||
|
||||
typedef enum {
|
||||
GDK_VULKAN_DISABLE = 1 << 0,
|
||||
GDK_VULKAN_VALIDATE = 1 << 1,
|
||||
} GdkVulkanFlags;
|
||||
|
||||
extern GList *_gdk_default_filters;
|
||||
extern GdkWindow *_gdk_parent_root;
|
||||
|
||||
extern guint _gdk_debug_flags;
|
||||
extern guint _gdk_gl_flags;
|
||||
extern guint _gdk_vulkan_flags;
|
||||
extern GdkRenderingMode _gdk_rendering_mode;
|
||||
|
||||
#ifdef G_ENABLE_DEBUG
|
||||
@@ -147,6 +155,17 @@ struct _GdkEventPrivate
|
||||
|
||||
typedef struct _GdkWindowPaint GdkWindowPaint;
|
||||
|
||||
struct _GdkWindowAttr
|
||||
{
|
||||
gint event_mask;
|
||||
gint x, y;
|
||||
gint width;
|
||||
gint height;
|
||||
GdkWindowWindowClass wclass;
|
||||
GdkWindowType window_type;
|
||||
GdkWindowTypeHint type_hint;
|
||||
};
|
||||
|
||||
struct _GdkWindow
|
||||
{
|
||||
GObject parent_instance;
|
||||
@@ -173,75 +192,6 @@ struct _GdkWindow
|
||||
GList *filters;
|
||||
GList *children;
|
||||
GList children_list_node;
|
||||
GList *native_children;
|
||||
|
||||
/* The paint logic here is a bit complex because of our intermingling of
|
||||
* cairo and GL. Let's first go over the cairo-alone case:
|
||||
*
|
||||
* 1) gdk_window_begin_paint_region() is called with an update region. If
|
||||
* the backend wants it, we redirect drawing to a temporary surface
|
||||
* sized the same as the update region and set `surface_needs_composite`
|
||||
* to TRUE. Otherwise, we paint directly onto the real server-side window.
|
||||
*
|
||||
* 2) Things paint with cairo using GdkDrawingContext
|
||||
*
|
||||
* 3) When everything is painted, the user calls gdk_window_end_paint().
|
||||
* If there was a temporary surface, this is composited back onto the
|
||||
* real backing surface in the appropriate places.
|
||||
*
|
||||
* This is similar to double buffering, except we only have partial surfaces
|
||||
* of undefined contents, and instead of swapping between two buffers, we
|
||||
* create a new temporary buffer every time.
|
||||
*
|
||||
* When we add GL to the mix, we have this instead:
|
||||
*
|
||||
* 1) gdk_window_begin_paint_region() is called with an update region like
|
||||
* before. We always redirect cairo drawing to a temporary surface when
|
||||
* GL is enabled.
|
||||
*
|
||||
* 2) Things paint with cairo using GdkDrawingContext. Whenever
|
||||
* something paints, it calls gdk_window_mark_paint_from_clip() to mark
|
||||
* which regions it has painted in software. We'll learn what this does
|
||||
* soon.
|
||||
*
|
||||
* 3) Something paints with GL and uses gdk_cairo_draw_from_gl() to
|
||||
* composite back into the scene. We paint this onto the backing
|
||||
* store for the window *immediately* by using GL, rather than
|
||||
* painting to the temporary surface, and keep track of the area that
|
||||
* we've painted in `flushed_region`.
|
||||
*
|
||||
* 4) Something paints using software again. It calls
|
||||
* gdk_window_mark_paint_from_clip(), which subtracts the region it
|
||||
* has painted from `flushed_region` and adds the region to
|
||||
* `needs_blended_region`.
|
||||
*
|
||||
* 5) Something paints using GL again, using gdk_cairo_draw_from_gl().
|
||||
* It paints directly to the backing store, removes the region it
|
||||
* painted from `needs_blended_region`, and adds to `flushed_region`.
|
||||
*
|
||||
* 6) gdk_window_end_paint() is called. It composites the temporary surface
|
||||
* back to the window, using GL, except it doesn't bother copying
|
||||
* `flushed_region`, and when it paints `needs_blended_region`, it also
|
||||
* turns on GL blending.
|
||||
*
|
||||
* That means that at any point in time, we have three regions:
|
||||
*
|
||||
* * `region` - This is the original invalidated region and is never
|
||||
* touched.
|
||||
*
|
||||
* * `flushed_region` - This is the portion of `region` that has GL
|
||||
* contents that have been painted directly to the window, and
|
||||
* doesn't have any cairo drawing painted over it.
|
||||
*
|
||||
* * `needs_blended_region` - This is the portion of `region` that
|
||||
* GL contents that have part cairo drawing painted over it.
|
||||
* gdk_window_end_paint() will draw this region using blending.
|
||||
*
|
||||
* `flushed_region` and `needs_blended_region` never intersect, and the
|
||||
* rest of `region` that isn't covered by either is the "opaque region",
|
||||
* which is any area of cairo drawing that didn't ever intersect with GL.
|
||||
* We can paint these from GL without turning on blending.
|
||||
**/
|
||||
|
||||
struct {
|
||||
/* The temporary surface that we're painting to. This will be composited
|
||||
@@ -250,11 +200,8 @@ struct _GdkWindow
|
||||
cairo_surface_t *surface;
|
||||
|
||||
cairo_region_t *region;
|
||||
cairo_region_t *flushed_region;
|
||||
cairo_region_t *need_blend_region;
|
||||
|
||||
gboolean surface_needs_composite;
|
||||
gboolean use_gl;
|
||||
} current_paint;
|
||||
GdkGLContext *gl_paint_context;
|
||||
|
||||
@@ -396,6 +343,9 @@ void gdk_gl_texture_quads (GdkGLContext *paint_context,
|
||||
GdkTexturedQuad *quads,
|
||||
gboolean flip_colors);
|
||||
|
||||
void gdk_cairo_surface_paint_pixbuf (cairo_surface_t *surface,
|
||||
const GdkPixbuf *pixbuf);
|
||||
|
||||
void gdk_cairo_surface_mark_as_direct (cairo_surface_t *surface,
|
||||
GdkWindow *window);
|
||||
cairo_region_t *gdk_cairo_region_from_clip (cairo_t *cr);
|
||||
@@ -410,6 +360,8 @@ void gdk_cairo_set_drawing_context (cairo_t *cr,
|
||||
cairo_surface_t *
|
||||
_gdk_window_ref_cairo_surface (GdkWindow *window);
|
||||
|
||||
GdkWindow* gdk_window_new (GdkWindow *parent,
|
||||
GdkWindowAttr *attributes);
|
||||
void _gdk_window_destroy (GdkWindow *window,
|
||||
gboolean foreign_destroy);
|
||||
void _gdk_window_clear_update_area (GdkWindow *window);
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user