Compare commits
1549 Commits
applicatio
...
wip/paint-
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c52cbb18d6 | ||
|
|
85608e903f | ||
|
|
55b2f3ab4e | ||
|
|
079366259a | ||
|
|
76db970f8e | ||
|
|
ef9a6f205c | ||
|
|
55f76d8bee | ||
|
|
283f7ddd6c | ||
|
|
2cc059a0e7 | ||
|
|
9b34bf17e5 | ||
|
|
9f9edb662e | ||
|
|
9f035742e3 | ||
|
|
0219eea4d7 | ||
|
|
c5ebb61b6f | ||
|
|
9b3ee686ea | ||
|
|
d1a9d764a8 | ||
|
|
4824a73084 | ||
|
|
921f069269 | ||
|
|
6e4643de14 | ||
|
|
046ca498de | ||
|
|
8ac7f64123 | ||
|
|
a1134e5622 | ||
|
|
e09e8718f8 | ||
|
|
7eb42bbc7f | ||
|
|
04900c8caa | ||
|
|
bf4ee1b52b | ||
|
|
ab5fb5dee5 | ||
|
|
ff142ac2ef | ||
|
|
9e31ef616d | ||
|
|
3b8a264a5e | ||
|
|
3a55137709 | ||
|
|
6e90804b30 | ||
|
|
e0d7da3c8c | ||
|
|
206b41c6f6 | ||
|
|
d34b9ed192 | ||
|
|
8cca398a2f | ||
|
|
b613cc6478 | ||
|
|
8d456e3c50 | ||
|
|
6db62c6617 | ||
|
|
f891c58432 | ||
|
|
ba32934ea6 | ||
|
|
cc22469b69 | ||
|
|
f27d7bdea5 | ||
|
|
d2c6533107 | ||
|
|
47969615b2 | ||
|
|
b06f05e72c | ||
|
|
31abdf723a | ||
|
|
17cd0db6a8 | ||
|
|
a62e1b95bc | ||
|
|
098d23c096 | ||
|
|
f2ae6814e7 | ||
|
|
963f6c587a | ||
|
|
2dd3317522 | ||
|
|
c6c1871734 | ||
|
|
bd7e3852ac | ||
|
|
9ae2c1fcf9 | ||
|
|
39529dcfed | ||
|
|
4869aeb28d | ||
|
|
a0aed8402b | ||
|
|
4f9175d7fc | ||
|
|
f87b26a653 | ||
|
|
45c463e376 | ||
|
|
2dbfca9d02 | ||
|
|
88d74e23fa | ||
|
|
95e69afea8 | ||
|
|
d70b7f49b6 | ||
|
|
50cbd23d5b | ||
|
|
3e9bdf6fd9 | ||
|
|
3e2a259a78 | ||
|
|
43250e8faf | ||
|
|
e7f51ef6a4 | ||
|
|
99cfbecf46 | ||
|
|
8353754c17 | ||
|
|
a16722fc3a | ||
|
|
7a5a5e9c5d | ||
|
|
27ad64dccf | ||
|
|
80d3f1fcda | ||
|
|
8d05e74212 | ||
|
|
b5621b3c89 | ||
|
|
cbc358ead8 | ||
|
|
921fc8807c | ||
|
|
18578b33c5 | ||
|
|
f87023d8ee | ||
|
|
0ff28d72f6 | ||
|
|
ef7fddac3b | ||
|
|
28cb8583c3 | ||
|
|
f085c8b272 | ||
|
|
22d28ef47d | ||
|
|
56e797397b | ||
|
|
17ffcb0cc6 | ||
|
|
d7c7f010b0 | ||
|
|
479dc131ee | ||
|
|
aaf0f0f5c3 | ||
|
|
bda1f35585 | ||
|
|
88ef199ed7 | ||
|
|
9d644e9d2d | ||
|
|
e613d26448 | ||
|
|
9ff4f0819f | ||
|
|
733f1710c6 | ||
|
|
85e47b5c4e | ||
|
|
5cbb309841 | ||
|
|
aeec832f0e | ||
|
|
4fc31dd87a | ||
|
|
51820d3e34 | ||
|
|
e774e235d7 | ||
|
|
359818d6b7 | ||
|
|
3d31254fd9 | ||
|
|
34b117865a | ||
|
|
407b73dd80 | ||
|
|
4ca2632d42 | ||
|
|
9d9742f1e5 | ||
|
|
10c76c1c95 | ||
|
|
44cb3bcfed | ||
|
|
9612c64817 | ||
|
|
7c8ee80c5a | ||
|
|
7791013754 | ||
|
|
48de50df89 | ||
|
|
29ce9e679a | ||
|
|
8abb18f910 | ||
|
|
7597a35477 | ||
|
|
031856eb33 | ||
|
|
7d5a85c3ad | ||
|
|
9e661ed0e9 | ||
|
|
b36819957f | ||
|
|
dbdc9c99e5 | ||
|
|
f8b8c95f45 | ||
|
|
e3cc39cb98 | ||
|
|
5e1d8814ca | ||
|
|
803233cc14 | ||
|
|
a2e88f9b80 | ||
|
|
3b7cbaa47f | ||
|
|
af31afb906 | ||
|
|
6bdc9b7f8a | ||
|
|
4469d2cde1 | ||
|
|
25bf8ba4de | ||
|
|
d7c3d378eb | ||
|
|
c143105ae9 | ||
|
|
65c3fc9953 | ||
|
|
b58e3bb30c | ||
|
|
e732c16aab | ||
|
|
c7e024d160 | ||
|
|
abb25b7895 | ||
|
|
0a8abdcdf6 | ||
|
|
d8700a02f1 | ||
|
|
ec7c2acf7b | ||
|
|
4d63d96762 | ||
|
|
2853db41f8 | ||
|
|
eae3183f1c | ||
|
|
bef6c0a4a3 | ||
|
|
e85dad38e2 | ||
|
|
0e0d938cc3 | ||
|
|
f106d369a7 | ||
|
|
5a6ea62125 | ||
|
|
b23dc8477f | ||
|
|
36f1d08bce | ||
|
|
6899956770 | ||
|
|
cf1745a935 | ||
|
|
82712a150a | ||
|
|
e0c2a4e10f | ||
|
|
a4a7a611f2 | ||
|
|
519d758711 | ||
|
|
88cf547029 | ||
|
|
c250a7e673 | ||
|
|
4490aeddf7 | ||
|
|
70228649ee | ||
|
|
4588408268 | ||
|
|
c2ab54a31f | ||
|
|
cabc386252 | ||
|
|
71b4d83144 | ||
|
|
3f3d33ee6c | ||
|
|
ee58c6c37d | ||
|
|
9009683247 | ||
|
|
0afd8be7ef | ||
|
|
120a1006da | ||
|
|
6c258b863d | ||
|
|
ff2476152b | ||
|
|
9d750ad13e | ||
|
|
2f8f0d8eab | ||
|
|
de3e703444 | ||
|
|
f8b573766d | ||
|
|
6c537bd0bf | ||
|
|
31a45c957c | ||
|
|
0ebf090d9e | ||
|
|
9b9ccb56b1 | ||
|
|
f7418b1652 | ||
|
|
c113b8e229 | ||
|
|
5a7cfa7fb9 | ||
|
|
e9a7a2104b | ||
|
|
3267cd08e9 | ||
|
|
480b9f6b11 | ||
|
|
c1e9f4a798 | ||
|
|
2e98e37fe4 | ||
|
|
f8490e425f | ||
|
|
8ed725bad8 | ||
|
|
b04bceb47e | ||
|
|
fe9a45c413 | ||
|
|
f9265ea3b8 | ||
|
|
f6347baf64 | ||
|
|
368f0d0843 | ||
|
|
cadbdd32ba | ||
|
|
bbf189ca0d | ||
|
|
3c4d1cc856 | ||
|
|
e346d26f70 | ||
|
|
4196f56de9 | ||
|
|
e17b9ae8ba | ||
|
|
e3e243688a | ||
|
|
e1b00b52d2 | ||
|
|
22e9fcf6db | ||
|
|
c3851df92d | ||
|
|
718ccc9e4e | ||
|
|
60655a36dc | ||
|
|
04c630d0fd | ||
|
|
2a1650843d | ||
|
|
cc0ada40b5 | ||
|
|
1d21668ecc | ||
|
|
f7a20e35c1 | ||
|
|
2b348f9a48 | ||
|
|
0eab3a7ad7 | ||
|
|
eca2af5230 | ||
|
|
a472d1a400 | ||
|
|
90d9bfe086 | ||
|
|
f0039aa2a4 | ||
|
|
21eae6b6f3 | ||
|
|
8970b174dc | ||
|
|
97bdf55b6d | ||
|
|
9e869af6c5 | ||
|
|
a4c2018452 | ||
|
|
4e71a4df7b | ||
|
|
5a30dad531 | ||
|
|
13c4c554ef | ||
|
|
bbd80b671a | ||
|
|
b4f81fd612 | ||
|
|
a1ee7e7a30 | ||
|
|
846f774642 | ||
|
|
c4705377f4 | ||
|
|
2a9d299aa3 | ||
|
|
78bd97bfbe | ||
|
|
ccaf842919 | ||
|
|
3846988211 | ||
|
|
5fcf06bb91 | ||
|
|
5fbd77526a | ||
|
|
fcbe49829c | ||
|
|
6f3c3c3413 | ||
|
|
30a660213e | ||
|
|
e9c9193ff6 | ||
|
|
872ef111ec | ||
|
|
0555dd0645 | ||
|
|
9595501dbd | ||
|
|
4eac816898 | ||
|
|
8fdcd4bfb2 | ||
|
|
9a6c1e58b6 | ||
|
|
2d3d2a2626 | ||
|
|
fc2da1a137 | ||
|
|
86665897db | ||
|
|
e3957f559d | ||
|
|
0bca60fdd3 | ||
|
|
d35aa02dd5 | ||
|
|
28aa906681 | ||
|
|
32d1defc76 | ||
|
|
448d903c16 | ||
|
|
4e96a84c67 | ||
|
|
036aa0eea9 | ||
|
|
8f91329900 | ||
|
|
98b497eb99 | ||
|
|
f3716aa210 | ||
|
|
908bdf7941 | ||
|
|
0fa0e653d5 | ||
|
|
7c140feb6b | ||
|
|
f64e2df911 | ||
|
|
7203b72193 | ||
|
|
c6e58f84ee | ||
|
|
7acb4d0502 | ||
|
|
1b9029fc64 | ||
|
|
ad474edda8 | ||
|
|
14dc932fd1 | ||
|
|
1408bd9a37 | ||
|
|
82e6e32c77 | ||
|
|
72d48cbc61 | ||
|
|
7f88afef90 | ||
|
|
34ae2ea601 | ||
|
|
e141bd3287 | ||
|
|
b072ea220c | ||
|
|
42f480a537 | ||
|
|
948768c708 | ||
|
|
bf81be51eb | ||
|
|
32c80ca6a9 | ||
|
|
5ac6234815 | ||
|
|
d4fb25f6de | ||
|
|
d9c581900b | ||
|
|
65dee4e31b | ||
|
|
de89fe501d | ||
|
|
69240d9824 | ||
|
|
6c7daaf8b9 | ||
|
|
7adeca53b2 | ||
|
|
06773b1e8b | ||
|
|
f51f39af2a | ||
|
|
e0f290278b | ||
|
|
2b3574dda1 | ||
|
|
296824ecf3 | ||
|
|
3ae29e1d6b | ||
|
|
dec47f062e | ||
|
|
1b170a1a14 | ||
|
|
efefc4e794 | ||
|
|
f0d337a0ca | ||
|
|
7047502d84 | ||
|
|
de0428fe52 | ||
|
|
427226b083 | ||
|
|
e4a0a39a56 | ||
|
|
53214f2584 | ||
|
|
87e29c99d7 | ||
|
|
b81de973af | ||
|
|
d869a1e419 | ||
|
|
f53ad33994 | ||
|
|
eac1959d2c | ||
|
|
3b8184cfee | ||
|
|
945e97e505 | ||
|
|
d947178e42 | ||
|
|
e267ed84db | ||
|
|
aa8561aac2 | ||
|
|
f15860fb31 | ||
|
|
e16f9bc51c | ||
|
|
b8b6ceef16 | ||
|
|
18e489fedd | ||
|
|
b522a1b367 | ||
|
|
d3a90eae72 | ||
|
|
c34c05217c | ||
|
|
41e6da4075 | ||
|
|
bc3d3e6cf4 | ||
|
|
92732ffea0 | ||
|
|
bd4545c03a | ||
|
|
7a2010ae28 | ||
|
|
90beb8a514 | ||
|
|
e13d93a707 | ||
|
|
19d1377494 | ||
|
|
0795f1e0c9 | ||
|
|
e66129015d | ||
|
|
d9c9259861 | ||
|
|
f52a1fcfbd | ||
|
|
5b687d938a | ||
|
|
9403e167b4 | ||
|
|
aa70d351c4 | ||
|
|
cdba1f6519 | ||
|
|
15497825c0 | ||
|
|
ffa5587fb3 | ||
|
|
99eae4e208 | ||
|
|
64dddaf1fe | ||
|
|
f999c8dc29 | ||
|
|
21d6aba620 | ||
|
|
e10f5e9ad5 | ||
|
|
e25208825f | ||
|
|
f0c067063c | ||
|
|
fb43f590e9 | ||
|
|
dca859dfa1 | ||
|
|
6eb6135e2d | ||
|
|
2743f0bdcd | ||
|
|
a145deb083 | ||
|
|
2e5df3306a | ||
|
|
34c6e35152 | ||
|
|
7125712299 | ||
|
|
c5d309e596 | ||
|
|
f5ad38fdc4 | ||
|
|
9826c31a9f | ||
|
|
0a57863f73 | ||
|
|
f44f35548d | ||
|
|
e8e657725c | ||
|
|
6c971ac479 | ||
|
|
fd200f07f5 | ||
|
|
af32c9c9be | ||
|
|
f3ccf2fccf | ||
|
|
b7027d778c | ||
|
|
5f57cede3c | ||
|
|
b89920e203 | ||
|
|
1142c8bf18 | ||
|
|
ec6e97be4d | ||
|
|
67284a57de | ||
|
|
1d3f6b30b0 | ||
|
|
70e6aba0d0 | ||
|
|
326f887ae7 | ||
|
|
9aa4f417d0 | ||
|
|
7947b3faf8 | ||
|
|
45744d9a5f | ||
|
|
0acec382c8 | ||
|
|
0c285bad75 | ||
|
|
8929321cba | ||
|
|
45836db7a5 | ||
|
|
8aa402b610 | ||
|
|
256012bdbd | ||
|
|
e194bc14fd | ||
|
|
5442f5b9f2 | ||
|
|
0ab6956579 | ||
|
|
87940287aa | ||
|
|
38c932ace6 | ||
|
|
c42f6ff4bf | ||
|
|
e1571a5936 | ||
|
|
5625c20759 | ||
|
|
7c62a44324 | ||
|
|
ba21d3e687 | ||
|
|
e65b1cfd76 | ||
|
|
9cd83da6dc | ||
|
|
97b997d59e | ||
|
|
b271c76c06 | ||
|
|
ebba458336 | ||
|
|
f1171c9c07 | ||
|
|
c6f28c3dbc | ||
|
|
07d0c0b921 | ||
|
|
b8ebcdd0e0 | ||
|
|
7af767333e | ||
|
|
ec604d11ec | ||
|
|
dfd0ceab1c | ||
|
|
f8b420783d | ||
|
|
0ad2f57332 | ||
|
|
9c980372d2 | ||
|
|
eed9468e06 | ||
|
|
b452bb768d | ||
|
|
73b6ddbf47 | ||
|
|
9ef1dfc0a3 | ||
|
|
ef56ba83f8 | ||
|
|
3f10e45ea1 | ||
|
|
d207fd05e5 | ||
|
|
b0f078ba43 | ||
|
|
729f80b554 | ||
|
|
830cda9e32 | ||
|
|
b717f1b265 | ||
|
|
8f2fdec7d6 | ||
|
|
5f771c8a9f | ||
|
|
c54968e964 | ||
|
|
bec11c352d | ||
|
|
a4bbe4da10 | ||
|
|
b0c5302115 | ||
|
|
1b9f793311 | ||
|
|
15f48a818d | ||
|
|
67299ed106 | ||
|
|
e63d6dd379 | ||
|
|
fac27827c4 | ||
|
|
ff97485695 | ||
|
|
be8a398bb5 | ||
|
|
70bdbb3f4c | ||
|
|
66bd7c1578 | ||
|
|
6a0c31143f | ||
|
|
2e53b58b01 | ||
|
|
08d05f954d | ||
|
|
748d3d612d | ||
|
|
e0be884297 | ||
|
|
ee15f5aab1 | ||
|
|
c9c9d2ac15 | ||
|
|
79477e097d | ||
|
|
557b9d0b26 | ||
|
|
d992df0a47 | ||
|
|
6f6c81e527 | ||
|
|
475f96216d | ||
|
|
e6d1c8aeab | ||
|
|
1f640d127e | ||
|
|
fe4c61b1ec | ||
|
|
d17ba1d30a | ||
|
|
ce2d6cc015 | ||
|
|
5eabd8c6fa | ||
|
|
8af968946f | ||
|
|
bf8df2daea | ||
|
|
4a23b12911 | ||
|
|
e087fe7e99 | ||
|
|
01a1e16dcf | ||
|
|
f383e1f183 | ||
|
|
21099d31ed | ||
|
|
fadf269a36 | ||
|
|
ad030e1696 | ||
|
|
806bcb10ff | ||
|
|
c46ce97145 | ||
|
|
f94ff0b3b9 | ||
|
|
468e453a31 | ||
|
|
a5e487846a | ||
|
|
1c94efc921 | ||
|
|
f2d7e6c8d4 | ||
|
|
299d533376 | ||
|
|
782af63273 | ||
|
|
8fc35150a2 | ||
|
|
c8b16f66b6 | ||
|
|
ab781bd89b | ||
|
|
0d6461714b | ||
|
|
240ca0bb21 | ||
|
|
00375c7692 | ||
|
|
9daab81ab5 | ||
|
|
818005f3fe | ||
|
|
9a8c9d6579 | ||
|
|
a18ec3485c | ||
|
|
f525837e39 | ||
|
|
327a04807e | ||
|
|
bf3b4438bb | ||
|
|
f679516ce1 | ||
|
|
62f5fdc856 | ||
|
|
bc1cd6c5cb | ||
|
|
0cbe62f943 | ||
|
|
90379ed68a | ||
|
|
fb4ba51d44 | ||
|
|
4aefc82496 | ||
|
|
2e75cecd49 | ||
|
|
e605272436 | ||
|
|
745f110814 | ||
|
|
c85f91e14c | ||
|
|
1d5796c95b | ||
|
|
9233a08991 | ||
|
|
725749cd14 | ||
|
|
02572cdf7e | ||
|
|
ed996bcd68 | ||
|
|
0a6b7e5759 | ||
|
|
7121ec2880 | ||
|
|
c76221426a | ||
|
|
5228913f68 | ||
|
|
d13a2ad66a | ||
|
|
c412c1c752 | ||
|
|
696989d499 | ||
|
|
ec4be3619f | ||
|
|
867ab99b1a | ||
|
|
04e58c192e | ||
|
|
ee8788f766 | ||
|
|
f5a10b05b5 | ||
|
|
892593eff4 | ||
|
|
c68029b778 | ||
|
|
3bd8319a08 | ||
|
|
84671438b0 | ||
|
|
812d9b9948 | ||
|
|
5ea1d78857 | ||
|
|
7108586b16 | ||
|
|
9507670db4 | ||
|
|
d4f08efd57 | ||
|
|
39b376681c | ||
|
|
03cf19e8e2 | ||
|
|
0129b89153 | ||
|
|
0775b0a858 | ||
|
|
e624656c20 | ||
|
|
94f809d439 | ||
|
|
cf4cb4f6d9 | ||
|
|
04d5c477aa | ||
|
|
28b4567159 | ||
|
|
47ee996198 | ||
|
|
571e749d60 | ||
|
|
f08254074c | ||
|
|
eac72ec830 | ||
|
|
504a2d4194 | ||
|
|
b5097de481 | ||
|
|
2ee8fdb79b | ||
|
|
7f486231ac | ||
|
|
0f13411cb0 | ||
|
|
a6ef356107 | ||
|
|
ffed076891 | ||
|
|
a6e936788a | ||
|
|
9f47be2216 | ||
|
|
5b9bbf9de2 | ||
|
|
eee6c002d1 | ||
|
|
894d402c0f | ||
|
|
e316157671 | ||
|
|
a9f198082a | ||
|
|
3607a4c082 | ||
|
|
c51e8bd9e5 | ||
|
|
4701bdb2a8 | ||
|
|
fc52c9daf3 | ||
|
|
0a63e954af | ||
|
|
2fc80e6102 | ||
|
|
c64946c52d | ||
|
|
d7ede44dae | ||
|
|
4515f0803b | ||
|
|
59b227e123 | ||
|
|
913f3fcc9f | ||
|
|
600f52321b | ||
|
|
08e6fc11ad | ||
|
|
e8a6bad00b | ||
|
|
a38472c139 | ||
|
|
e06d04032b | ||
|
|
ce7379a8bd | ||
|
|
6a2124d566 | ||
|
|
b09019560b | ||
|
|
a520b4f372 | ||
|
|
a7208d675f | ||
|
|
c340fb7efd | ||
|
|
b479ff9cb5 | ||
|
|
522becccc0 | ||
|
|
f74f9b2766 | ||
|
|
cadcd029a1 | ||
|
|
4dd215f82d | ||
|
|
b7f2f9a678 | ||
|
|
18a4ed6fd0 | ||
|
|
9bcbdb7494 | ||
|
|
e6b74551d1 | ||
|
|
55c4cdab1a | ||
|
|
8d3319f088 | ||
|
|
2b4efe2690 | ||
|
|
47292f28d5 | ||
|
|
6607f2b794 | ||
|
|
e500f997db | ||
|
|
90b4b88629 | ||
|
|
36f0a96161 | ||
|
|
de2a4d1b1a | ||
|
|
4a9c32dc36 | ||
|
|
6453710266 | ||
|
|
332652f702 | ||
|
|
ebdf26e1d8 | ||
|
|
666539736d | ||
|
|
b69fdbbd04 | ||
|
|
d04bb38b28 | ||
|
|
6d27362620 | ||
|
|
2bedd205c5 | ||
|
|
804fd4b15a | ||
|
|
b370cb0d4c | ||
|
|
3ba78fed2a | ||
|
|
19bad9fecc | ||
|
|
d7335837e0 | ||
|
|
039e0c273a | ||
|
|
ca8a835874 | ||
|
|
99c82af20a | ||
|
|
8ac0e98f98 | ||
|
|
b186680a43 | ||
|
|
db47dd6197 | ||
|
|
f085bc67cd | ||
|
|
b259dd9aba | ||
|
|
e9dd3dc46a | ||
|
|
42947e3cdc | ||
|
|
e31e77eeb8 | ||
|
|
4138e86ad4 | ||
|
|
331999d84d | ||
|
|
ac48f2330d | ||
|
|
3d340d7449 | ||
|
|
3dfb47bc3c | ||
|
|
0d9d599b50 | ||
|
|
134683c9be | ||
|
|
20d1030823 | ||
|
|
84c77c0be3 | ||
|
|
603a840de9 | ||
|
|
5e4aaba482 | ||
|
|
2c1633699f | ||
|
|
c250b3fe1d | ||
|
|
95686cb704 | ||
|
|
547e2cc837 | ||
|
|
3d98537c2e | ||
|
|
6ab793da8d | ||
|
|
4b57560666 | ||
|
|
bfa6ad6e7c | ||
|
|
a7fec8cf46 | ||
|
|
806a7239ae | ||
|
|
8b4d50dd1d | ||
|
|
96b387599d | ||
|
|
6218c16ff8 | ||
|
|
0178bff5c0 | ||
|
|
6ef27387e0 | ||
|
|
dceb149ca4 | ||
|
|
37a62e9367 | ||
|
|
241f38992b | ||
|
|
c65bb2b3b4 | ||
|
|
da9b45be78 | ||
|
|
be1d190b2e | ||
|
|
81f15cf908 | ||
|
|
d80e2897b9 | ||
|
|
ff6e75adbc | ||
|
|
e5e228debf | ||
|
|
f0fd2e3a6e | ||
|
|
24304a2e93 | ||
|
|
4d4871203e | ||
|
|
45a2656e32 | ||
|
|
3f7b36d5cc | ||
|
|
e1544bcc7f | ||
|
|
f2dc8a26ed | ||
|
|
fed19bcf50 | ||
|
|
bea727a142 | ||
|
|
8c325f0d60 | ||
|
|
e59cbd5605 | ||
|
|
abaecf4308 | ||
|
|
07662f288d | ||
|
|
761a1932a6 | ||
|
|
e08d4258bb | ||
|
|
507f37b536 | ||
|
|
f7cfaee18a | ||
|
|
eda14b2d47 | ||
|
|
bbcb737b86 | ||
|
|
71991f339d | ||
|
|
5aad25aa42 | ||
|
|
3fd767c92d | ||
|
|
8b5bc9669b | ||
|
|
a98127fc12 | ||
|
|
92ededc9b4 | ||
|
|
cc9ac5b7ea | ||
|
|
bc6a3f8cd8 | ||
|
|
1773b6d50a | ||
|
|
7dde4d93ad | ||
|
|
93fd2b44c3 | ||
|
|
41f4fd94df | ||
|
|
26c93dc04b | ||
|
|
8578ff4b38 | ||
|
|
94e9a35a16 | ||
|
|
50971f704c | ||
|
|
3c19eea34b | ||
|
|
b47b1428b8 | ||
|
|
3557761fb3 | ||
|
|
65db1100ec | ||
|
|
c45985ae01 | ||
|
|
8026cd386b | ||
|
|
8736d31a04 | ||
|
|
76d7331578 | ||
|
|
84bae92928 | ||
|
|
381c14f1e2 | ||
|
|
61e9f570d9 | ||
|
|
e56a209077 | ||
|
|
aad77642be | ||
|
|
c9ca4beb35 | ||
|
|
b0713fb3bb | ||
|
|
0e1bba6ef5 | ||
|
|
bb90394147 | ||
|
|
fb62d6105f | ||
|
|
9ef738c4ab | ||
|
|
9c3d1080d6 | ||
|
|
59bc9e8860 | ||
|
|
0f88b6808c | ||
|
|
27bc88f7c2 | ||
|
|
ad48f4d52b | ||
|
|
eba2d6cf61 | ||
|
|
e976abe825 | ||
|
|
9e2996decd | ||
|
|
93e203e067 | ||
|
|
e0aa12eb0a | ||
|
|
ca251cf1d4 | ||
|
|
6ba904486c | ||
|
|
330bc154ed | ||
|
|
2ddfaeddad | ||
|
|
14e38da150 | ||
|
|
1592738d2f | ||
|
|
1aea318d0f | ||
|
|
bb7ffddff2 | ||
|
|
e8a60e6123 | ||
|
|
d14687ef4b | ||
|
|
def95d1319 | ||
|
|
743202261a | ||
|
|
ae3be469b3 | ||
|
|
bc7654826f | ||
|
|
1dcd209cdd | ||
|
|
8e117b6f3a | ||
|
|
6b4992d647 | ||
|
|
35e0ad72e4 | ||
|
|
92411d2c84 | ||
|
|
1243b4861c | ||
|
|
e32ab82069 | ||
|
|
c7d73ee587 | ||
|
|
b837ef5a6d | ||
|
|
4f3e5e6ebc | ||
|
|
8d5b4e9f6e | ||
|
|
de3512dbba | ||
|
|
19cab17c22 | ||
|
|
60c920f228 | ||
|
|
8c3900f420 | ||
|
|
ac051a7b2c | ||
|
|
809dbe9f99 | ||
|
|
15a5a231fc | ||
|
|
efbf04236e | ||
|
|
6e9349d858 | ||
|
|
54077d61e2 | ||
|
|
28c66ed9b0 | ||
|
|
bf19aa46e9 | ||
|
|
6aa8941b84 | ||
|
|
ab0e68e586 | ||
|
|
2f78aa3024 | ||
|
|
bf2a7ee1b6 | ||
|
|
8e72e9a7a0 | ||
|
|
67e6ac5af9 | ||
|
|
b9f66d9197 | ||
|
|
3e91238071 | ||
|
|
38e09dcbb1 | ||
|
|
896e249e8f | ||
|
|
560ca1eaad | ||
|
|
57e0b9a979 | ||
|
|
1110375f24 | ||
|
|
f5a06df3dc | ||
|
|
8345760fdb | ||
|
|
e3a8e29a6c | ||
|
|
15d46dd866 | ||
|
|
b140884fec | ||
|
|
a18e2370bf | ||
|
|
2ee532645f | ||
|
|
266476d32b | ||
|
|
8bfb1e0ab8 | ||
|
|
ab4ba69cc8 | ||
|
|
7b42d4feda | ||
|
|
032d3f0ada | ||
|
|
c22b80949d | ||
|
|
419e1548ab | ||
|
|
5ba6295a10 | ||
|
|
ff29972a48 | ||
|
|
b64e91adf0 | ||
|
|
0e484a83d1 | ||
|
|
8204fe6036 | ||
|
|
97ffc36540 | ||
|
|
450beef2a2 | ||
|
|
e02252cdd6 | ||
|
|
9e81022bf6 | ||
|
|
153bfacde0 | ||
|
|
96c3858b21 | ||
|
|
a79637f081 | ||
|
|
85ae875dcb | ||
|
|
a79d6676ac | ||
|
|
ecaa37529c | ||
|
|
31cd439385 | ||
|
|
0fc5433753 | ||
|
|
234d750bb3 | ||
|
|
d93ab58829 | ||
|
|
1dc9451b57 | ||
|
|
474f80442a | ||
|
|
85735112d7 | ||
|
|
daebca19da | ||
|
|
dc1940e99e | ||
|
|
cd2a19a68d | ||
|
|
9debfe243f | ||
|
|
cf68c2636a | ||
|
|
c29f0a1392 | ||
|
|
8960d64cc6 | ||
|
|
cf6eb47758 | ||
|
|
b3079c0d18 | ||
|
|
7e520d908a | ||
|
|
e3fafd7512 | ||
|
|
66e860b5d1 | ||
|
|
08dd02fe25 | ||
|
|
d3661589f4 | ||
|
|
ab248d7ca3 | ||
|
|
65b9fc3e5b | ||
|
|
6eae25e0b0 | ||
|
|
402e3bed47 | ||
|
|
056ec835cc | ||
|
|
e356769f33 | ||
|
|
da0975d5f2 | ||
|
|
6460fb6b3e | ||
|
|
e2a492cf80 | ||
|
|
36437a635d | ||
|
|
149b84dacf | ||
|
|
95eb4a868e | ||
|
|
2a27c90479 | ||
|
|
0dcaad3a85 | ||
|
|
001d16cb87 | ||
|
|
a6a036ce22 | ||
|
|
6624da6393 | ||
|
|
b0b8393f99 | ||
|
|
e748334327 | ||
|
|
7464a9ca08 | ||
|
|
0c662ecb9a | ||
|
|
ceca2ff10c | ||
|
|
73ea777c33 | ||
|
|
843be48572 | ||
|
|
f76fddb8a7 | ||
|
|
dd36afc207 | ||
|
|
91d0728dfa | ||
|
|
3bd93e5bfd | ||
|
|
72ac2175e2 | ||
|
|
e08c43faf4 | ||
|
|
913cdf3be7 | ||
|
|
03c19e37af | ||
|
|
bd277fad50 | ||
|
|
3dda0adf76 | ||
|
|
8fb5bc2583 | ||
|
|
1b0d2fcd51 | ||
|
|
016093d007 | ||
|
|
a76d198508 | ||
|
|
efaed1b8f1 | ||
|
|
f8cfb895ed | ||
|
|
d9e7680735 | ||
|
|
a338d5dea5 | ||
|
|
e4dc454f59 | ||
|
|
50ef420378 | ||
|
|
89e8f79f07 | ||
|
|
a48d28848e | ||
|
|
ec2f2c3daf | ||
|
|
0993bc4d1c | ||
|
|
29044f0f0e | ||
|
|
5533264958 | ||
|
|
d05d713068 | ||
|
|
2d0a655201 | ||
|
|
87141cf4c8 | ||
|
|
801875b805 | ||
|
|
2ab562a6f7 | ||
|
|
cb24bcc613 | ||
|
|
b654afcb48 | ||
|
|
9934007420 | ||
|
|
4e6a665e61 | ||
|
|
bc366cef52 | ||
|
|
eb81216e32 | ||
|
|
4a5e0a35b9 | ||
|
|
ca3348f8f1 | ||
|
|
3963d5aa76 | ||
|
|
319bc22c5c | ||
|
|
d04e557370 | ||
|
|
c78a23bdca | ||
|
|
eeaf576316 | ||
|
|
8a210673fb | ||
|
|
278957a5a4 | ||
|
|
d5278b5994 | ||
|
|
c50db9c208 | ||
|
|
d5c2cb7bcb | ||
|
|
87b192773c | ||
|
|
fc5b39a4b8 | ||
|
|
134f9774dd | ||
|
|
3c5f9fd1a2 | ||
|
|
2f966e8418 | ||
|
|
88a90b8abb | ||
|
|
d7d940c71e | ||
|
|
956a3f53e1 | ||
|
|
08ddea5069 | ||
|
|
e6da33a302 | ||
|
|
3b63ef0ac6 | ||
|
|
bf3b5f785e | ||
|
|
d8f3a162c8 | ||
|
|
7e78999034 | ||
|
|
78ccc74879 | ||
|
|
3fdb4f6069 | ||
|
|
9c2eca5b06 | ||
|
|
3685db091d | ||
|
|
fc46f2ca2f | ||
|
|
1be5f91491 | ||
|
|
d095448be3 | ||
|
|
f42814168c | ||
|
|
00ce32d940 | ||
|
|
6aa846cc4d | ||
|
|
03b6a9b6a0 | ||
|
|
18b47b6cd0 | ||
|
|
46f15e7d68 | ||
|
|
76b21033f9 | ||
|
|
d433a60611 | ||
|
|
97cd2500c3 | ||
|
|
a60a933ca6 | ||
|
|
ece148eec0 | ||
|
|
55d5d3679e | ||
|
|
2994fa11fb | ||
|
|
e78851b928 | ||
|
|
31b709d08a | ||
|
|
68568cff66 | ||
|
|
c9ccc7551b | ||
|
|
f2279d5e51 | ||
|
|
42a90aa00c | ||
|
|
6b5672c199 | ||
|
|
0ff6aedca0 | ||
|
|
3302f22da2 | ||
|
|
4230f7998b | ||
|
|
c3a19a4a14 | ||
|
|
e4af3782d3 | ||
|
|
1956cf8d28 | ||
|
|
d28af9cbb9 | ||
|
|
658f99b8ee | ||
|
|
095fb1afe4 | ||
|
|
399580f9e1 | ||
|
|
299454b7ed | ||
|
|
15ea566813 | ||
|
|
7670b13d19 | ||
|
|
6e5d65c9af | ||
|
|
5484211c90 | ||
|
|
7eadf45888 | ||
|
|
a47e5483b6 | ||
|
|
3a752e03a8 | ||
|
|
787df491f3 | ||
|
|
38fad43129 | ||
|
|
9074f74c6f | ||
|
|
94420f7110 | ||
|
|
267a2156d8 | ||
|
|
b00b1c33a3 | ||
|
|
9688665334 | ||
|
|
b04b1b2e84 | ||
|
|
5032cdf88f | ||
|
|
78dc2debc0 | ||
|
|
34c6ea0307 | ||
|
|
1810943d5d | ||
|
|
213f8e2f1b | ||
|
|
1a980d0be6 | ||
|
|
304b1a1f56 | ||
|
|
6250627d9e | ||
|
|
7879d5af11 | ||
|
|
cc06f3dde6 | ||
|
|
8da741f955 | ||
|
|
d8a90be370 | ||
|
|
e14560cf1e | ||
|
|
8476d22dea | ||
|
|
04e241fd85 | ||
|
|
4491bdbb9d | ||
|
|
972f617b77 | ||
|
|
bbf38a8ebd | ||
|
|
ba158a24fe | ||
|
|
86851b7ad3 | ||
|
|
f84707d6f9 | ||
|
|
6afa615690 | ||
|
|
a026b8227c | ||
|
|
87bf99dcc5 | ||
|
|
8d36170b8d | ||
|
|
29aa3818a4 | ||
|
|
af8539bf11 | ||
|
|
eb10e6b128 | ||
|
|
00438fea3d | ||
|
|
5d6b21e7b2 | ||
|
|
d2d344a531 | ||
|
|
6dd4f32f37 | ||
|
|
d45d970144 | ||
|
|
f733ab0e75 | ||
|
|
34a8213b0f | ||
|
|
67194ed77b | ||
|
|
deaa351630 | ||
|
|
2a2f7c0993 | ||
|
|
face33a411 | ||
|
|
cd7c3625d7 | ||
|
|
e8184f2a46 | ||
|
|
af8efa0b46 | ||
|
|
2425dad948 | ||
|
|
0293e2443d | ||
|
|
c3395dd726 | ||
|
|
8526997205 | ||
|
|
f3ff581c26 | ||
|
|
1e5d7c0225 | ||
|
|
c6a44d8494 | ||
|
|
8d983a4547 | ||
|
|
904769b004 | ||
|
|
29685170cf | ||
|
|
3247a3a7cd | ||
|
|
1b77e36a59 | ||
|
|
523ea1c656 | ||
|
|
c0b8104232 | ||
|
|
24fedeccac | ||
|
|
208e548ab1 | ||
|
|
c1476c951e | ||
|
|
3e4e2b233b | ||
|
|
45e2176683 | ||
|
|
d5a8a3c9bc | ||
|
|
1f1b404194 | ||
|
|
586bbc9b13 | ||
|
|
e1143c2d45 | ||
|
|
06c2777d88 | ||
|
|
2766cd14ad | ||
|
|
a676f9dada | ||
|
|
72fad93587 | ||
|
|
1abb8f6e7f | ||
|
|
c05f344c0a | ||
|
|
891694d9ff | ||
|
|
10ff05fb0c | ||
|
|
1e33284d60 | ||
|
|
f4f607690d | ||
|
|
ff445e2b79 | ||
|
|
27ec5cd556 | ||
|
|
a64869db9e | ||
|
|
f300aefa7e | ||
|
|
1814ea6abd | ||
|
|
d38bf4825a | ||
|
|
65a28efc15 | ||
|
|
f05acd707d | ||
|
|
31d22d3083 | ||
|
|
97cbe801c1 | ||
|
|
fb4661be6d | ||
|
|
54b8b51f43 | ||
|
|
f91e5e2ac9 | ||
|
|
991eaa7580 | ||
|
|
e00ffe3872 | ||
|
|
7325c67570 | ||
|
|
64fca99a89 | ||
|
|
65266d971e | ||
|
|
50aec80efb | ||
|
|
014fc1f73a | ||
|
|
595b27e22d | ||
|
|
1fe89643a5 | ||
|
|
fe16bdd8d4 | ||
|
|
a0e0c9e89c | ||
|
|
e5ed2c02a3 | ||
|
|
56f71f0123 | ||
|
|
29a758d4c2 | ||
|
|
1dc0502b4a | ||
|
|
8856bfc60e | ||
|
|
7eabb8fd3c | ||
|
|
64a852dc76 | ||
|
|
7451827cf9 | ||
|
|
b415d2f79b | ||
|
|
ab93613037 | ||
|
|
f3d6aa8bf3 | ||
|
|
04fd195b9b | ||
|
|
f25ad7899a | ||
|
|
0a1130dcb9 | ||
|
|
07d3f20202 | ||
|
|
b99348e443 | ||
|
|
091335fcb4 | ||
|
|
2201b2abb6 | ||
|
|
b05e897453 | ||
|
|
d9b459dd64 | ||
|
|
6cad69e32a | ||
|
|
1b1845863a | ||
|
|
c6b86761d6 | ||
|
|
7b5656b492 | ||
|
|
4a17e27a1e | ||
|
|
cc70f342d0 | ||
|
|
aad72e59fa | ||
|
|
dd61c2bdea | ||
|
|
e9915fc8d6 | ||
|
|
aa63485b87 | ||
|
|
1e3448f222 | ||
|
|
0baa3feb4b | ||
|
|
e9b85cf100 | ||
|
|
42a0a8143b | ||
|
|
3a89cc150c | ||
|
|
83372be93e | ||
|
|
4def73b386 | ||
|
|
379fc17fa9 | ||
|
|
4ddff2691b | ||
|
|
325a00e40d | ||
|
|
7764ee564c | ||
|
|
f11207c33e | ||
|
|
b62b834eb5 | ||
|
|
7f8aaf04da | ||
|
|
fe2815026b | ||
|
|
2758329204 | ||
|
|
effdde9471 | ||
|
|
90ee7ca493 | ||
|
|
37d62149bb | ||
|
|
0a3431e8f6 | ||
|
|
84297150e8 | ||
|
|
69b6dbdb08 | ||
|
|
26f21cf0e9 | ||
|
|
00152ff835 | ||
|
|
1783b227e8 | ||
|
|
7587ee2dde | ||
|
|
4d928459d3 | ||
|
|
03842616fb | ||
|
|
298b3643aa | ||
|
|
593b32c6ab | ||
|
|
ce977a1a33 | ||
|
|
f8ac83bc07 | ||
|
|
e49c130018 | ||
|
|
d854499f4a | ||
|
|
6b7efdf8a1 | ||
|
|
d52eb49529 | ||
|
|
c6f4e71a31 | ||
|
|
c35fa9bc5a | ||
|
|
dbd395a7ac | ||
|
|
41fcf40648 | ||
|
|
482637a41e | ||
|
|
804ad0dd88 | ||
|
|
4870f2ec30 | ||
|
|
ab27b01fb9 | ||
|
|
551fa5c8df | ||
|
|
91a49bac5a | ||
|
|
4847b9a940 | ||
|
|
f43610e110 | ||
|
|
bf1f03ad5d | ||
|
|
c9dd25bd11 | ||
|
|
c4b452a22c | ||
|
|
c6dcef5089 | ||
|
|
82f521b514 | ||
|
|
063454f630 | ||
|
|
7fd15c82bf | ||
|
|
7e753a9a86 | ||
|
|
5e2c943742 | ||
|
|
1f9eb57338 | ||
|
|
34e63dcd46 | ||
|
|
3f101bb08c | ||
|
|
1c6b3f53a0 | ||
|
|
a44969e877 | ||
|
|
ae47b7925a | ||
|
|
e3be606a1c | ||
|
|
7b4cf7587a | ||
|
|
40e3d43394 | ||
|
|
a1c2a00d63 | ||
|
|
7d9c4b71a9 | ||
|
|
46e65a9164 | ||
|
|
6f74ff20a2 | ||
|
|
b1924555df | ||
|
|
104fdae2bf | ||
|
|
c8afa3f000 | ||
|
|
bd52a8541e | ||
|
|
42c71a1d4a | ||
|
|
f332976871 | ||
|
|
b012f0f930 | ||
|
|
07e38c51e8 | ||
|
|
1577a7d415 | ||
|
|
26d837dd2f | ||
|
|
0059a30f0d | ||
|
|
4a9c3bc214 | ||
|
|
252a8fc048 | ||
|
|
1b7b30bf31 | ||
|
|
4210ec87b0 | ||
|
|
067f418604 | ||
|
|
40dbb2deb2 | ||
|
|
5d48658f58 | ||
|
|
b6306a0def | ||
|
|
76b0a349ef | ||
|
|
3d77c49e16 | ||
|
|
26fcfcc5a6 | ||
|
|
6b3a2fede6 | ||
|
|
3d942908d3 | ||
|
|
3204cf726c | ||
|
|
5bf0ed62d7 | ||
|
|
4011b70928 | ||
|
|
8c4783da05 | ||
|
|
e80db673b1 | ||
|
|
6a28e7b164 | ||
|
|
876c0b2937 | ||
|
|
5fa4a05ccc | ||
|
|
6c6bb9b3d3 | ||
|
|
45aafa477f | ||
|
|
12e83244b1 | ||
|
|
2164e18cd8 | ||
|
|
fe1a39b1f2 | ||
|
|
df5ade16ab | ||
|
|
4ef5035674 | ||
|
|
bfbfa9a589 | ||
|
|
50f5b1289c | ||
|
|
e020217622 | ||
|
|
0b2e5bcb30 | ||
|
|
804c800979 | ||
|
|
10ceb9da68 | ||
|
|
9016f0d9a6 | ||
|
|
005e8a6c2f | ||
|
|
af7a187919 | ||
|
|
f7a6c05158 | ||
|
|
c9340c37a9 | ||
|
|
02b50d71ce | ||
|
|
a64bd5d1f0 | ||
|
|
7ef9cc3a1c | ||
|
|
491bfd6355 | ||
|
|
41c2024d22 | ||
|
|
3d3e9d85d1 | ||
|
|
af04aeeaed | ||
|
|
de8b07c3df | ||
|
|
0e1eee26b9 | ||
|
|
ad3e451632 | ||
|
|
d73c11b549 | ||
|
|
52e5f36dc3 | ||
|
|
9c26bd525f | ||
|
|
9f762fe86c | ||
|
|
e2a82c70b4 | ||
|
|
fa565f3a3e | ||
|
|
0cb7aa9c7b | ||
|
|
8c14bf009d | ||
|
|
0cb1f9a180 | ||
|
|
f65265fff9 | ||
|
|
501eeaff11 | ||
|
|
ffa07ee21e | ||
|
|
f730af8360 | ||
|
|
1229bfc620 | ||
|
|
24d8c776d4 | ||
|
|
813da6a39a | ||
|
|
bbebe979da | ||
|
|
d6bfd81323 | ||
|
|
bddb72476c | ||
|
|
b2545e1732 | ||
|
|
203c06342d | ||
|
|
3115de0c36 | ||
|
|
6917d46749 | ||
|
|
ce08b9bb01 | ||
|
|
db3af409cc | ||
|
|
0ea8572d89 | ||
|
|
e057cb8b4d | ||
|
|
434b3e1072 | ||
|
|
2944561ba3 | ||
|
|
8805b58e62 | ||
|
|
7993ee6d0e | ||
|
|
a0a302f7f7 | ||
|
|
6a88255e00 | ||
|
|
c411df5406 | ||
|
|
14cc894dd7 | ||
|
|
dc7a8f9be7 | ||
|
|
0b29f4e769 | ||
|
|
374d5094a3 | ||
|
|
83c20d4b32 | ||
|
|
ca7d3f9081 | ||
|
|
fc170551b6 | ||
|
|
6334d13de5 | ||
|
|
05e33f69eb | ||
|
|
cc09ec0732 | ||
|
|
c989d3000a | ||
|
|
97fbf97be2 | ||
|
|
1516c86ca4 | ||
|
|
e6ed4da215 | ||
|
|
05134768fe | ||
|
|
8313c7fdbb | ||
|
|
e4a83370c4 | ||
|
|
cd00b0a490 | ||
|
|
8b917eeaf6 | ||
|
|
159caba3e2 | ||
|
|
ddc184ec79 | ||
|
|
48c34b6868 | ||
|
|
ac94b406a1 | ||
|
|
aa8a1a8a8e | ||
|
|
a151eac4fb | ||
|
|
416d132a72 | ||
|
|
2acf529b3b | ||
|
|
eff92cb1d6 | ||
|
|
bde0f9a8f6 | ||
|
|
d819bc4814 | ||
|
|
9c6696dfcc | ||
|
|
709e05cdb2 | ||
|
|
ccacd3a46a | ||
|
|
c9d08d02e5 | ||
|
|
4f37e6833c | ||
|
|
aaf70d1327 | ||
|
|
de285edc72 | ||
|
|
2513636877 | ||
|
|
6b19815f87 | ||
|
|
ad571a3a5e | ||
|
|
727122b8d6 | ||
|
|
f3c3e47db7 | ||
|
|
e98f760e9c | ||
|
|
e42033d2cc | ||
|
|
7b9e2b941c | ||
|
|
1e706ed64f | ||
|
|
8868e77fa0 | ||
|
|
7182a2dc19 | ||
|
|
c7bd2ad1c9 | ||
|
|
c4f280651a | ||
|
|
075661d376 | ||
|
|
7fd148fc59 | ||
|
|
d0d2a6f12c | ||
|
|
09fbed7bc9 | ||
|
|
a50843e160 | ||
|
|
25fc4d97f8 | ||
|
|
1308731580 | ||
|
|
c3a59fbfcc | ||
|
|
54ac92aaaf | ||
|
|
089892df27 | ||
|
|
f7a8bac5e6 | ||
|
|
23c9cee274 | ||
|
|
6a48a042c7 | ||
|
|
0fa7d810e7 | ||
|
|
ef2d37cdaf | ||
|
|
ac3ddfa2a7 | ||
|
|
acf33c9e4c | ||
|
|
90ac7b915c | ||
|
|
f7608c33ac | ||
|
|
9c026fb32e | ||
|
|
1ac8d80e34 | ||
|
|
fea39c078b | ||
|
|
4c16995868 | ||
|
|
61d4a019f8 | ||
|
|
0cef9c2bbe | ||
|
|
65ac54bb23 | ||
|
|
a581401920 | ||
|
|
805e0d1082 | ||
|
|
9f1939cbd5 | ||
|
|
4729460a4f | ||
|
|
3fc31e88b0 | ||
|
|
db5fc43759 | ||
|
|
56e7abb8a4 | ||
|
|
755bd51757 | ||
|
|
a6fcc75774 | ||
|
|
3df6726656 | ||
|
|
f1620b5ce1 | ||
|
|
46206f8bb8 | ||
|
|
600fbd3e74 | ||
|
|
66048b2f92 | ||
|
|
9ee5176492 | ||
|
|
a9e99e7f5b | ||
|
|
c661eb73a1 | ||
|
|
a3057d0150 | ||
|
|
5eb76955fd | ||
|
|
8f21b09eee | ||
|
|
e85dfc7cc4 | ||
|
|
d2b1da4e84 | ||
|
|
53b9bdc3fc | ||
|
|
1c4ce45a42 | ||
|
|
89d28eb09d | ||
|
|
92f4882497 | ||
|
|
559ae63f01 | ||
|
|
9b713fa4fd | ||
|
|
14fe04ec89 | ||
|
|
6f5084551a | ||
|
|
2a72ffd4de | ||
|
|
a1a1b135ac | ||
|
|
7489c260eb | ||
|
|
84015d4d3f | ||
|
|
39b47eaf25 | ||
|
|
b926ce719b | ||
|
|
d18abf42b7 | ||
|
|
17b8bee168 | ||
|
|
46794cc65c | ||
|
|
638e415a6d | ||
|
|
a513bdf3f7 | ||
|
|
8f19db7565 | ||
|
|
548ebc29e5 | ||
|
|
119d48c89b | ||
|
|
d54c2cfeee | ||
|
|
32c95ebe27 | ||
|
|
24a867f8da | ||
|
|
4f8dbd4a8d | ||
|
|
11ee2abacc | ||
|
|
a66e4ebe1a | ||
|
|
472b9d6f66 | ||
|
|
1481ab6626 | ||
|
|
50266ca95d | ||
|
|
2c40c2b7c8 | ||
|
|
3a1ba3bd1e | ||
|
|
316b9da873 | ||
|
|
89d4eb6ded | ||
|
|
ad8f1ef85b | ||
|
|
7f985e760a | ||
|
|
3eb197b51f | ||
|
|
fb48e023d2 | ||
|
|
e3bd926c1e | ||
|
|
73030c462f | ||
|
|
79ef5de505 | ||
|
|
7844d3b8db | ||
|
|
f760538f17 | ||
|
|
61e34032ec | ||
|
|
2a12f74c8e | ||
|
|
0824862e3b | ||
|
|
a2b72c5953 | ||
|
|
4047d0526d | ||
|
|
93fa95e79f | ||
|
|
2686af2fbb | ||
|
|
99e8a76cab | ||
|
|
8397e8e219 | ||
|
|
623c6239ac | ||
|
|
ae5700f64b | ||
|
|
e15e37b6ce | ||
|
|
8b2108a8a4 | ||
|
|
1d8aec51cc | ||
|
|
9ddef2365f | ||
|
|
3ccc617052 | ||
|
|
4198dd8519 | ||
|
|
59e7571aae | ||
|
|
32d365f476 | ||
|
|
35105ab2b4 | ||
|
|
03dfaf3c3e | ||
|
|
651bed57a4 | ||
|
|
208ba9bb50 | ||
|
|
c9579f3ca4 | ||
|
|
63958858c1 | ||
|
|
e83a8826e6 | ||
|
|
95b3e63057 | ||
|
|
6c76243f46 | ||
|
|
32869d439d | ||
|
|
b220c2b975 | ||
|
|
119a04e0cb | ||
|
|
963e1ec033 | ||
|
|
76267f9d06 | ||
|
|
dcdb00adb4 | ||
|
|
92d34337f7 | ||
|
|
519eae8729 | ||
|
|
3a34295b9c | ||
|
|
080e8ab0a8 | ||
|
|
ae66d4feb4 | ||
|
|
cffda84e93 | ||
|
|
7df17ad475 | ||
|
|
cd3510ce1f | ||
|
|
237ed3bbf8 | ||
|
|
c4b129bac2 | ||
|
|
02068350ff | ||
|
|
57550e1b47 | ||
|
|
5e8c274e32 | ||
|
|
97f361c98f | ||
|
|
ca513cec2e | ||
|
|
de401fd06d | ||
|
|
decbe42212 | ||
|
|
f03ce229e9 | ||
|
|
5d5332a493 | ||
|
|
5f1827983b | ||
|
|
1fa7f1085e | ||
|
|
14d4bc3c40 | ||
|
|
c774b0fbdb | ||
|
|
5a02536da4 | ||
|
|
a37ec87ed7 | ||
|
|
cfa3a71c7b | ||
|
|
2db020890e | ||
|
|
b13480702b | ||
|
|
b478081b7d | ||
|
|
331d77f3d7 | ||
|
|
37c502eae3 | ||
|
|
5649431acb | ||
|
|
ccc26207fe | ||
|
|
b68801f168 | ||
|
|
7b213d5604 | ||
|
|
610e29892e | ||
|
|
9bac13b1f5 | ||
|
|
761b0ea3ae | ||
|
|
188884a9b1 | ||
|
|
831afa2159 | ||
|
|
760ba34bd8 | ||
|
|
4d07fa5772 | ||
|
|
1e64e36b58 | ||
|
|
da49daecc4 | ||
|
|
73ae8a787e | ||
|
|
e0efb8798a | ||
|
|
e8bf80ebea | ||
|
|
8630657324 | ||
|
|
0a451f508b | ||
|
|
6dd7e5af08 | ||
|
|
a625e587a3 | ||
|
|
17bd528df5 | ||
|
|
58ef2afdfa | ||
|
|
6d4bae5ccc | ||
|
|
c1c9b7dfc8 | ||
|
|
a22ebc974f | ||
|
|
59db821725 | ||
|
|
7f1801eae1 | ||
|
|
c122d31c29 | ||
|
|
a8d805ffbc | ||
|
|
ff25b0dc20 | ||
|
|
5cd6d309ea | ||
|
|
da426ec97c | ||
|
|
8dd3317502 | ||
|
|
526aac1fda | ||
|
|
41621e212b | ||
|
|
5fd0c28c78 | ||
|
|
671c506dfc | ||
|
|
4181abd69a | ||
|
|
6eed185502 | ||
|
|
8f6a014de4 | ||
|
|
847d401df3 | ||
|
|
0310626938 | ||
|
|
dec093d9f1 | ||
|
|
3e469d737e | ||
|
|
f1074be1ed | ||
|
|
8c035b6048 | ||
|
|
373128ce29 | ||
|
|
de6314d084 | ||
|
|
d203b830a9 | ||
|
|
2883a274cc | ||
|
|
8adfc326f8 | ||
|
|
b806701cdb | ||
|
|
c90ba0a3be | ||
|
|
90cd0f6ae7 | ||
|
|
ac34031b4e | ||
|
|
fe603cccf2 | ||
|
|
5616a82c0a | ||
|
|
917f5c1272 | ||
|
|
1c5ee1df12 | ||
|
|
ccc3d2c69f | ||
|
|
c1a2ecc369 | ||
|
|
90db251624 | ||
|
|
a94ff624b6 | ||
|
|
d3ef6af1a6 | ||
|
|
6852137e13 | ||
|
|
82efd2d92f | ||
|
|
910ad4872c | ||
|
|
0a8043da13 | ||
|
|
4a7cff0cab | ||
|
|
cd9a9e1548 | ||
|
|
9ee3d73a19 | ||
|
|
1af1362a36 | ||
|
|
6330ea9e43 | ||
|
|
1bfa931e20 | ||
|
|
4682d563cf | ||
|
|
0fd82767ff | ||
|
|
ad9a9b7915 | ||
|
|
1411613a70 | ||
|
|
a9e96106f9 | ||
|
|
edbee1d9fc | ||
|
|
442f7fb2a6 | ||
|
|
a1be4eccb0 | ||
|
|
e42c29ca98 | ||
|
|
ddcbc0e051 | ||
|
|
271d66fc81 | ||
|
|
7491e9e97a | ||
|
|
89d0955431 | ||
|
|
0754f2d72f | ||
|
|
133f0744b9 | ||
|
|
8eeeb97de6 | ||
|
|
cfa241a891 | ||
|
|
678e738f8d | ||
|
|
5c2966dda3 |
@@ -5,9 +5,11 @@ GTK+ requires the following packages:
|
||||
|
||||
- The GLib, Pango, GdkPixbuf, ATK and cairo libraries, available at
|
||||
the same location as GTK+. GTK+ @GTK_VERSION@ requires at least
|
||||
GLib 2.23.6, Pango 1.20, GdkPixbuf 2.21.0 ATK 1.29.2 and cairo 1.6.0.
|
||||
GLib @GLIB_REQUIRED_VERSION@, Pango @PANGO_REQUIRED_VERSION@,
|
||||
GdkPixbuf @GDK_PIXBUF_REQUIRED_VERSION@, ATK @ATK_REQUIRED_VERSION@
|
||||
and cairo @CAIRO_REQUIRED_VERSION@.
|
||||
|
||||
- gobject-introspection 0.6.7 or newer.
|
||||
- gobject-introspection 0.9.3 or newer.
|
||||
|
||||
Simple install procedure
|
||||
========================
|
||||
|
||||
81
Makefile.am
81
Makefile.am
@@ -1,12 +1,13 @@
|
||||
## Makefile.am for GTK+
|
||||
include $(top_srcdir)/Makefile.decl
|
||||
|
||||
SRC_SUBDIRS = gdk gtk modules demos tests perf
|
||||
SRC_SUBDIRS = gdk gtk modules demos tests perf examples
|
||||
SUBDIRS = po po-properties $(SRC_SUBDIRS) docs m4macros build
|
||||
|
||||
ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS}
|
||||
|
||||
EXTRA_DIST += \
|
||||
autogen.sh \
|
||||
HACKING \
|
||||
makecopyright \
|
||||
NEWS.pre-1-0 \
|
||||
@@ -30,82 +31,8 @@ EXTRA_DIST += \
|
||||
gtk-zip.sh.in \
|
||||
sanitize-la.sh \
|
||||
po/README.translators \
|
||||
po/po2tbl.sed.in \
|
||||
examples/aspectframe/Makefile \
|
||||
examples/aspectframe/aspectframe.c \
|
||||
examples/Makefile \
|
||||
examples/README.1ST \
|
||||
examples/extract.awk \
|
||||
examples/extract.sh \
|
||||
examples/arrow/Makefile \
|
||||
examples/arrow/arrow.c \
|
||||
examples/base/Makefile \
|
||||
examples/base/base.c \
|
||||
examples/buttonbox/Makefile \
|
||||
examples/buttonbox/buttonbox.c \
|
||||
examples/buttons/Makefile \
|
||||
examples/buttons/buttons.c \
|
||||
examples/buttons/info.xpm \
|
||||
examples/calendar/Makefile \
|
||||
examples/calendar/calendar.c \
|
||||
examples/entry/Makefile \
|
||||
examples/entry/entry.c \
|
||||
examples/eventbox/Makefile \
|
||||
examples/eventbox/eventbox.c \
|
||||
examples/gtkdial/Makefile \
|
||||
examples/gtkdial/dial_test.c \
|
||||
examples/gtkdial/gtkdial.c \
|
||||
examples/gtkdial/gtkdial.h \
|
||||
examples/helloworld/Makefile \
|
||||
examples/helloworld/helloworld.c \
|
||||
examples/helloworld2/Makefile \
|
||||
examples/helloworld2/helloworld2.c \
|
||||
examples/label/Makefile \
|
||||
examples/label/label.c \
|
||||
examples/menu/Makefile \
|
||||
examples/menu/menu.c \
|
||||
examples/notebook/Makefile \
|
||||
examples/notebook/notebook.c \
|
||||
examples/packbox/Makefile \
|
||||
examples/packbox/packbox.c \
|
||||
examples/paned/Makefile \
|
||||
examples/paned/paned.c \
|
||||
examples/pixmap/Makefile \
|
||||
examples/pixmap/pixmap.c \
|
||||
examples/progressbar/Makefile \
|
||||
examples/progressbar/progressbar.c \
|
||||
examples/radiobuttons/Makefile \
|
||||
examples/radiobuttons/radiobuttons.c \
|
||||
examples/rangewidgets/Makefile \
|
||||
examples/rangewidgets/rangewidgets.c \
|
||||
examples/rulers/Makefile \
|
||||
examples/rulers/rulers.c \
|
||||
examples/scribble-simple/Makefile \
|
||||
examples/scribble-simple/scribble-simple.c \
|
||||
examples/scribble-xinput/Makefile \
|
||||
examples/scribble-xinput/scribble-xinput.c \
|
||||
examples/scrolledwin/Makefile \
|
||||
examples/scrolledwin/scrolledwin.c \
|
||||
examples/selection/Makefile \
|
||||
examples/selection/gettargets.c \
|
||||
examples/selection/setselection.c \
|
||||
examples/statusbar/Makefile \
|
||||
examples/statusbar/statusbar.c \
|
||||
examples/table/Makefile \
|
||||
examples/table/table.c \
|
||||
examples/tictactoe/Makefile \
|
||||
examples/tictactoe/tictactoe.c \
|
||||
examples/tictactoe/tictactoe.h \
|
||||
examples/tictactoe/ttt_test.c \
|
||||
examples/wheelbarrow/Makefile \
|
||||
examples/wheelbarrow/wheelbarrow.c \
|
||||
examples/fixed/fixed.c \
|
||||
examples/fixed/Makefile \
|
||||
examples/frame/frame.c \
|
||||
examples/frame/Makefile \
|
||||
examples/spinbutton/spinbutton.c \
|
||||
examples/spinbutton/Makefile \
|
||||
examples/find-examples.sh
|
||||
po/po2tbl.sed.in
|
||||
|
||||
MAINTAINERCLEANFILES = \
|
||||
$(srcdir)/INSTALL \
|
||||
$(srcdir)/README \
|
||||
|
||||
@@ -30,13 +30,17 @@ XVFB_START = \
|
||||
# call as: $(XVFB_START) && someprogram
|
||||
|
||||
# test: run all tests in cwd and subdirs
|
||||
test: ${TEST_PROGS}
|
||||
test: test-cwd test-recurse
|
||||
# test-cwd: run tests in cwd
|
||||
test-cwd: ${TEST_PROGS}
|
||||
@$(SKIP_GDKTARGET) || test -z "${TEST_PROGS}" || { \
|
||||
$(XVFB_START) && { set -e; ${GTESTER} --verbose ${TEST_PROGS}; }; \
|
||||
$(XVFB_START) && { set -e; $(TESTS_ENVIRONMENT) ${GTESTER} --verbose ${TEST_PROGS}; }; \
|
||||
}
|
||||
# test-recurse: run tests in subdirs
|
||||
test-recurse:
|
||||
@ for subdir in $(SUBDIRS) ; do \
|
||||
test "$$subdir" = "." -o "$$subdir" = "po" -o "$$subdir" = "po-properties" || \
|
||||
( cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $@ ) || exit $? ; \
|
||||
( cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) test ) || exit $? ; \
|
||||
done
|
||||
# test-report: run tests in subdirs and generate report
|
||||
# perf-report: run tests in subdirs with -m perf and generate report
|
||||
@@ -77,6 +81,6 @@ test-report perf-report full-report: ${TEST_PROGS}
|
||||
rm -rf "$$GTESTER_LOGDIR"/ ; \
|
||||
${GTESTER_REPORT} --version 2>/dev/null 1>&2 ; test "$$?" != 0 || ${GTESTER_REPORT} $@.xml >$@.html ; \
|
||||
}
|
||||
.PHONY: test test-report perf-report full-report
|
||||
# run make test as part of make check
|
||||
check-local: test
|
||||
.PHONY: test test-cwd test-recurse test-report perf-report full-report
|
||||
# run make test-cwd as part of make check
|
||||
check-local: test-cwd
|
||||
|
||||
371
NEWS
371
NEWS
@@ -1,3 +1,374 @@
|
||||
Overview of Changes from GTK+ 2.91.0 to 2.91.1
|
||||
==============================================
|
||||
|
||||
* GTK+ can now add a resize grip to any window. The resize
|
||||
grip functionality in GtkStatusbar has been removed.
|
||||
|
||||
* A very old bug in the handling of geometry widgets has
|
||||
been fixed, and a way to set geometry in terms of the
|
||||
geometry widget has been added: gtk_window_resize_to_geometry()
|
||||
|
||||
* The GtkFileChooser now uses GSettings to store its settings
|
||||
instead of the keyfile ~/.config/gtk-2.0/gtkfilechooser.ini
|
||||
|
||||
* GtkWrapBox has been dropped from GTK+ again. The widget
|
||||
will be available in libegg until clear use cases have
|
||||
been established.
|
||||
|
||||
* GtkWidget now has horizontal and vertical expand flags, in
|
||||
the form of ::hexpand and ::vexpand properties. These flags
|
||||
are intended to obsolete most custom container-specific
|
||||
expand child properties, over time.
|
||||
Expandability is inherited up the widget hierarchy.
|
||||
|
||||
* GtkComboBoxEntry has been deprecated in favor of a
|
||||
::has-entry property on GtkComboBox.
|
||||
|
||||
* The GtkComboBox text convenience API (gtk_combo_box_new_text(), etc)
|
||||
has been deprecated in favor of a new GtkComboBoxText class.
|
||||
|
||||
* GtkLinkButton has gained a ::activate-link signal that
|
||||
can be used to suppress the default behavior.
|
||||
|
||||
* The very outdated tutorial has been dropped from the GTK+ distribution,
|
||||
and a new 'Getting started' section has been added to the API
|
||||
documentation that will accumulate tutorial material over time.
|
||||
|
||||
* Bugs fixed:
|
||||
68668 Fix handling of geometry widget
|
||||
313350 Return type of gtk_accelerator_get_default_mod_mask...
|
||||
351247 GtkScrolledWindow is mis documented
|
||||
423201 gtk_combo_box_entry_active_changed does not transform...
|
||||
563002 Doesn't call 'update-preview' on set_filename
|
||||
612396 Implement GtkComboBoxText subclass to supersede "text"...
|
||||
613728 Rationalize GtkTreeView focus
|
||||
628902 use expand flags to determine window resizability
|
||||
629722 save_entry_get_info_cb() doesn't behave correctly
|
||||
629778 Scrolled window does not behave properly with height-for...
|
||||
629955 Deprecate / remove gtk_main and gtk_init_add / remove* API
|
||||
630850 Use GSettings for the filechooser settings
|
||||
630900 GtkCellRendererClass: unify const of GdkRectangle args
|
||||
631203 Scrolling in GtkTextView can use 100% cpu
|
||||
631311 Obvious fix for nasty crash in menu code
|
||||
631473 Fix GTK+3 documentation
|
||||
631475 Two old GDK_foo key macros left in gdk/quartz/gdkkeys-quartz.c
|
||||
631599 Allow to use arbitrary surfaces for offscreen windows
|
||||
631719 Action-based menu accelerators don't synch with GtkMenuItem
|
||||
631794 Warn when calling gtk_window_parse_geometry() on an empty...
|
||||
631976 Remove GtkWidgetAuxInfo from GtkScrolledWindow
|
||||
632059 Move the introduction of the tutorial in the reference
|
||||
632095 GtkTargetEntry: Add boxed type and constructor
|
||||
632140 optionally take hotspot coordinates from the pixbuf...
|
||||
632218 BadMatch when starting gnome-shell
|
||||
|
||||
* New or updated translations:
|
||||
Catalan
|
||||
Estonian
|
||||
Galician
|
||||
Greek
|
||||
Kazakh
|
||||
Kikongo
|
||||
Lithuanian
|
||||
Punjabi
|
||||
Slovenian
|
||||
Spanish
|
||||
|
||||
|
||||
Overview of Changes from GTK+ 2.90.7 to 2.91.0
|
||||
==============================================
|
||||
|
||||
* The rendering cleanup work has landed. This is a large change that
|
||||
affects many APIs.
|
||||
- All gtkstyle functions have been changed to take a cairo_t argument
|
||||
instead of a window + area.
|
||||
- GdkPixmap is gone. APIs that took pixmaps are being replaced by ones
|
||||
that take pixbufs or cairo surfaces, or regions (where pixmaps were
|
||||
used as masks). In background handling, pixmaps have been replaced
|
||||
by cairo patterns, see gdk_window_set_background_pattern().
|
||||
- GdkColormap is gone. It is replaced by visuals, see
|
||||
gtk_widget_set_visual().
|
||||
- The ::expose-event signal on GtkWidget has been replaced by a
|
||||
::draw signal.
|
||||
- gtk_widget_get_snapshot() has been removed. Instead, gtk_widget_draw()
|
||||
can render a widget onto an cairo_t.
|
||||
|
||||
* The GtkSizeRequest interface has been merged into GtkWidget, and
|
||||
GtkCellSizeRequest has been merged into GtkCellRenderer. The wrapper
|
||||
functions have been renamed to include 'preferred', e.g
|
||||
gtk_size_request_get_width() is now gtk_widget_get_preferred_width()
|
||||
and gtk_cell_size_request_get_width_for_height() is now
|
||||
gtk_cell_renderer_get_preferred_width_for_height().
|
||||
|
||||
* GtkObject has been removed. The ::destroy signal has been moved
|
||||
to GtkWidget. At the same time, GtkWidgetFlags have been removed,
|
||||
they already had getters and setters anyway.
|
||||
|
||||
* GtkWidget has gained generic alignment and padding properties:
|
||||
halign, valign, margin-left, margin-right, margin-top, margin-bottom
|
||||
These can be used instead of container-specific child properties or
|
||||
GtkMisc and GtkAlignment widgets.
|
||||
|
||||
* Container widgets can now let GTK+ handle border-width for them, using
|
||||
gtk_container_class_handle_border_width()
|
||||
|
||||
* The GtkEditableClass struct has been renamed to GtkEditableInterface
|
||||
|
||||
* Mouse wheel scrolling has been removed from GtkNotebook
|
||||
|
||||
* The default policy for scrolled windows has been changed to 'automatic'
|
||||
|
||||
* Global url hooks have been removed from GtkAboutDialog and GtkLinkButton
|
||||
|
||||
* The global window creation hook has been removed from GtkNotebook
|
||||
|
||||
* The error handling in GDK has been modernized and avoids synchronizing
|
||||
X requests as much as possible
|
||||
|
||||
* Fixed Bugs:
|
||||
323904 GtkEditable header is slightly incorrect
|
||||
339745 Return value of gtk_link_button_set_uri_hook not usable
|
||||
468672 GTK_POLICY_AUTOMATIC should be the default policy...
|
||||
486839 Filechooser 'Places' items should not move up and down...
|
||||
601731 Drag and Drop from Workspace to Activities Overview
|
||||
617316 Move documentation to inline comments: GtkEditable
|
||||
621590 Add length to gtk_tree_path_get_indices
|
||||
623664 Missing accessors for gtk_menu_get_position_func{,_data}
|
||||
628829 Chain get_width_for_height default impl to vfunc...
|
||||
629177 Do not use deprecated gtk_widget_get_child_requisition()
|
||||
629277 Hanging because do_syntheszie_crossing_event is called...
|
||||
629387 Use gint16 for GtkBorder
|
||||
629598 Do not use deprecated gtk_widget_size_request()
|
||||
629608 Revamp and modernize X error traps
|
||||
629733 There is a misprint in the description of the gtk_check_...
|
||||
629748 Fails to build without XComposite
|
||||
629785 Do not use deprecated gtk_cell_renderer_get_size()
|
||||
630033 Improve tests for X error traps, fix two bugs
|
||||
630226 Removing tab scrolling from GtkNotebook
|
||||
630520 Don't try to unref event->dnd.context unconditionally...
|
||||
630521 Remove some remaining API warts from tab dnd api
|
||||
630532 invalid drop point in drag-data-received callback
|
||||
|
||||
Updated translations:
|
||||
Catalan
|
||||
Czech
|
||||
Danish
|
||||
Dutch
|
||||
German
|
||||
Gujarati
|
||||
Japanese
|
||||
Simplified Chinese
|
||||
|
||||
|
||||
Overview of Changes from GTK+ 2.90.6 to 2.90.7
|
||||
==============================================
|
||||
|
||||
* Various deprecated APIs have been removed:
|
||||
- the GtkWidget::draw-border style property
|
||||
- the GtkEntry::state-hint style property
|
||||
- the GtkTreeView::row-ending-details style property
|
||||
- the GtkRange::trough-side-details style property
|
||||
- the GtkRange::stepper-position-details style property
|
||||
- the GtkRange::activate-slider style property
|
||||
- the GTK_CALENDAR_WEEK_START_MONDAY option
|
||||
- the GtkFrame::shadow and GtkHandleBox::shadow properties
|
||||
- the GtkTextView::page-horizontally signal
|
||||
- the GDK_WINDOW_DIALOG window type
|
||||
- the GTK_SELECTION_EXTENDED selection mode
|
||||
- the GtkProgressBarOrientation, GtkAnchorType and GtkVisibility
|
||||
enumerations
|
||||
- GtkDialog separators, including the GtkDialog::has-separator
|
||||
property, including setter/getter, the GTK_DIALOG_NO_SEPARATOR
|
||||
flag and the GtkMessageDialog::use-separator style property
|
||||
- gtk_status_icon_set/get_blinking
|
||||
- gdk_window_et_deskrelative_origin
|
||||
- The GtkItem class has been removed. Its functionality has
|
||||
been merged into is sole subclass, GtkMenuItem
|
||||
|
||||
* The GtkIconView::orientation property has been renamed
|
||||
to 'item-orientation'
|
||||
|
||||
* GtkProgressBar and GtkCellRendererProgress implement GtkOrientable
|
||||
now, and their 'orientation' property have been split into
|
||||
a 'orientation' property of type GtkOrientation and a boolean
|
||||
'inverted' property
|
||||
|
||||
* GDK no longer exports variables: gdk_threads_lock, gdk_threads_unlock,
|
||||
gdk_threads_mutex and gdk_display are no longer available
|
||||
|
||||
* GTK no longer exports variables: gtk_major_version, gtk_minor_version,
|
||||
gtk_micro_version, gtk_binary_age, gtk_interface_age have been
|
||||
converted to functions. gtk_debug_flags has a getter and a setter.
|
||||
Misc. variables that had been exported by the semi-private text
|
||||
API have been removed.
|
||||
|
||||
* All GDK keysym names have been changed from GDK_keysym to GDK_KEY_keysym;
|
||||
the previous names are still available in gdkkeysyms-compat.h.
|
||||
|
||||
* GtkWrapBox is a new container, which distributes its children
|
||||
over multiple rows/columns
|
||||
|
||||
* GTK+ now uses standard icon names when looking up stock icons
|
||||
|
||||
* More widgets and cell renderers have been converted to support
|
||||
width-for-height: GtkCellRendererText, GtkAccelLabel, GtkCellView,
|
||||
GtkComboBox, GtkMenu, GtkMenuItem
|
||||
|
||||
* Button boxes are now semi-homogeneous.
|
||||
|
||||
* The directfb backend has been removed
|
||||
|
||||
* Bugs fixed:
|
||||
77669 GtkWrapBox for gtk itself, not gimp?
|
||||
84188 "Dialogue" button widths should not be homogenous
|
||||
414712 gtk_container_set_focus_child leaks widget
|
||||
527499 FileFilter combo becames too wide
|
||||
528257 File selector and stock string problems
|
||||
605186 Use G_DEFINE_INTERFACE macro
|
||||
614006 File chooser crashes when creating a new folder...
|
||||
616401 Noneffective gdk_keymap_map_virtual_modifiers in early use
|
||||
626710 GailScaleButton calculates wrong value for minimum increment
|
||||
627028 Marked state of calendar day is not accessible
|
||||
627139 gtkfilechooserentry shows completion progress tooltip on first show
|
||||
627445 Removal of GtkWidget::draw-border breaks gtk_widget_queue_draw()
|
||||
627580 GtkFontSelection: don't notify the non-existent "font" property
|
||||
627643 gtkaboutdialog gettext problem
|
||||
627828 Drag and drop between treeviews in different window groups broken...
|
||||
627843 set_active_iter doc: remove restriction on path length
|
||||
627867 tests/testsocket is broken
|
||||
627912 misprint in the desc. of "hover-expand" and "hover-selection"...
|
||||
628160 introspection: Update to new scanner API
|
||||
628308 docs referencing non existing icons
|
||||
628656 _gdk_windowing_get_startup_notify_id memory leak
|
||||
628807 Add more "reserved for expansion" fields to GtkWidgetClass
|
||||
628808 Warn if a widget requests minimum size > natural size
|
||||
628884 Use a bitfield for Widget::private_flags, ::state, ::saved_state
|
||||
628935 add gtk_radio_button_join_group method for bindings
|
||||
629110 gtk_spinner_accessible_get_type always returns null
|
||||
|
||||
* Translation updates
|
||||
Arabic
|
||||
Armenian
|
||||
Brazilian Portuguese
|
||||
British English
|
||||
Bulgarian
|
||||
Danish
|
||||
Estonian
|
||||
French
|
||||
Galician
|
||||
Hebrew
|
||||
Hungarian
|
||||
Indonesian
|
||||
Kazakh
|
||||
Norwegian bokmål
|
||||
Norwegian Nynorsk
|
||||
Portuguese
|
||||
Serbian
|
||||
Slovenian
|
||||
Spanish
|
||||
Telugu
|
||||
Traditional Chinese
|
||||
|
||||
|
||||
Overview of Changes from GTK+ 2.90.5 to 2.90.6
|
||||
==============================================
|
||||
|
||||
* All drawing done by GTK+ itself has been ported from
|
||||
GDK drawing APIs to cairo
|
||||
|
||||
* GtkExpander and GtkFrame now implement GtkSizeRequest
|
||||
|
||||
* GtkExpander gained a ::label-fill property to make the label
|
||||
fill the entire horizontal space
|
||||
|
||||
* Allow windows to be dragged by clicking on empty
|
||||
areas in menubars and toolbars
|
||||
|
||||
* GtkAboutDialog can now refer to licenses using a ::license-type
|
||||
enumeration instead of embedding the license text
|
||||
|
||||
* Deprecations and cleanups:
|
||||
- Remove GtkNotebookPage
|
||||
- Remove public struct members in many classes
|
||||
- Remove the GtkRecentManager::limit property
|
||||
- Remove all GDK drawing functions, ie gdk_draw_*. Use cairo instead
|
||||
- Remove all GdkGC functions. Use cairo instead
|
||||
- Remove all of GdkImage. Use cairo instead
|
||||
- Remove all of GdkRGB. Use cairo instead
|
||||
- Remove gdk_{bit,pix}map_create_from_data
|
||||
- GDK no longer depends on the render X extension
|
||||
|
||||
* New accessors:
|
||||
- gdk_cursor_get_cursor_type
|
||||
- gdk_device_get_n_axes
|
||||
- gdk_display_is_closed
|
||||
- gtk_notebook_get_tab_[hv]border
|
||||
|
||||
* New cairo-related APIs:
|
||||
- gdk_window_create_similar_surface
|
||||
- gdk_window_get_background_pattern
|
||||
|
||||
* Bugs fixed:
|
||||
90935 GtkIMContextClass inheritance ...
|
||||
97414 gtkaccellabel: s/seperator/separator/
|
||||
336225 Support for common licenses in about dialog
|
||||
554926 gtk_init_with_args: not setting translation domain...
|
||||
557263 Notebooks return 1 selection even if they have no pages
|
||||
579583 GtkStatusIcon's scroll-event documentation missing "Since: ..."
|
||||
580291 Gail does not work with custom treemodels
|
||||
596125 Property string fixes
|
||||
604391 Gtk-CRITICAL when switching between tab
|
||||
605190 Should delete the description of xim related options...
|
||||
609264 gtk_(tree/list)_store_set documentation unclear about ownership
|
||||
611313 Window dragging from menubars/toolbars
|
||||
612919 crash in System Monitor: I was moving up-down wit...
|
||||
614049 Allow packing options for GtkExpander label widgets
|
||||
614443 Doxygen 'forgets' #define documentation under certain conditions
|
||||
615474 gtk_widget_set_has_window() documentation is not correct
|
||||
618327 GtkNotebookPage should be deprecated
|
||||
621571 Fix damage events on offscreen windows
|
||||
622658 GTK_STOCK_FILE Stock Label
|
||||
623603 meld built with pygtk-2.16.0 giving warnings
|
||||
623865 gtkdnd: pointer grab may never finish (ungrab before grab)
|
||||
624087 Missing accessor for GdkCursor.type
|
||||
624224 Missing accessor for GdkDisplay.closed
|
||||
624270 crash in gtk_entry_completion_default_completion_func
|
||||
624333 Deprecate GtkRecentManager:limit
|
||||
624362 access an invalid ActionGroup
|
||||
624367 GtkButtonBox is broken
|
||||
624397 Move GtkBoxChild from public .h to gtkbox.c
|
||||
624432 GtkRadioMenuItem is broken
|
||||
624540 GtkRadionAction loop in its activate handler
|
||||
624687 switch-page bug when activated from menu
|
||||
624707 warnings when showing gnome-terminal menus on gtk master
|
||||
624779 GtkCalendar padding/margin/spacing/border/whatever is hard-coded
|
||||
625104 Don't try and use the child of a GtkSeparatorMenuItem
|
||||
625235 Tooltips cause warnings
|
||||
625300 Buttons order in dialogs broken in gtk+3
|
||||
625416 gtk_file_chooser_default_map should not reload directory
|
||||
625650 Add annotations to gtk_tree_model_iter_next() and...
|
||||
625655 win32 compile failure due to G_SEAL
|
||||
625715 comment string in GtkAboutDialog is not centered
|
||||
625953 GailAdjustment does not implement get_minimum_increment...
|
||||
626052 Activating a file in GtkFileChooserDialog activates action...
|
||||
626276 gtk_tree_selection_set_select_function() should allow...
|
||||
626514 License dialog doesn't take into account long copyrights
|
||||
|
||||
* Translation updates:
|
||||
Asturian
|
||||
Galician
|
||||
German
|
||||
Hebrew
|
||||
Indonesian
|
||||
Norwegian bokmål
|
||||
Punjabi
|
||||
Romanian
|
||||
Simplified Chinese
|
||||
Slovenian
|
||||
Spanish
|
||||
Swedish
|
||||
Traditional Chinese
|
||||
|
||||
|
||||
Overview of Changes from GTK+ 2.90.4 to 2.90.5
|
||||
==============================================
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@ if libtoolize --version < /dev/null > /dev/null 2>&1 ; then
|
||||
sed -e 's/^\(.*\)([^)]*)\(.*\)$/\1\2/g' \
|
||||
-e 's/^[^0-9]*\([0-9.][0-9.]*\).*/\1/'`
|
||||
case $libtool_version in
|
||||
2.2*)
|
||||
2.*)
|
||||
have_libtool=true
|
||||
;;
|
||||
esac
|
||||
@@ -110,10 +110,11 @@ rm -rf autom4te.cache
|
||||
# regenerated from their corresponding *.in files by ./configure anyway.
|
||||
touch README INSTALL
|
||||
|
||||
gtkdocize || exit $?
|
||||
|
||||
$ACLOCAL -I m4 $ACLOCAL_FLAGS || exit $?
|
||||
|
||||
libtoolize --force || exit $?
|
||||
gtkdocize || exit $?
|
||||
|
||||
autoheader || exit $?
|
||||
|
||||
|
||||
@@ -134,7 +134,6 @@
|
||||
<File RelativePath="..\..\..\gdk\win32\gdkgeometry-win32.c" />
|
||||
<File RelativePath="..\..\..\gdk\win32\gdkglobals-win32.c" />
|
||||
<File RelativePath="..\..\..\gdk\win32\gdkim-win32.c" />
|
||||
<File RelativePath="..\..\..\gdk\win32\gdkimage-win32.c" />
|
||||
<File RelativePath="..\..\..\gdk\win32\gdkinput-win32.c" />
|
||||
<File RelativePath="..\..\..\gdk\win32\gdkinput.c" />
|
||||
<File RelativePath="..\..\..\gdk\win32\gdkkeys-win32.c" />
|
||||
|
||||
@@ -108,7 +108,6 @@ copy ..\..\..\gdk\gdkevents.h $(OutDir)\include\gtk-$(GtkApiVersion)\gdk
&#
|
||||
copy ..\..\..\gdk\gdkfont.h $(OutDir)\include\gtk-$(GtkApiVersion)\gdk

|
||||
copy ..\..\..\gdk\gdkgc.h $(OutDir)\include\gtk-$(GtkApiVersion)\gdk

|
||||
copy ..\..\..\gdk\gdki18n.h $(OutDir)\include\gtk-$(GtkApiVersion)\gdk

|
||||
copy ..\..\..\gdk\gdkimage.h $(OutDir)\include\gtk-$(GtkApiVersion)\gdk

|
||||
copy ..\..\..\gdk\gdkinput.h $(OutDir)\include\gtk-$(GtkApiVersion)\gdk

|
||||
copy ..\..\..\gdk\gdkkeys.h $(OutDir)\include\gtk-$(GtkApiVersion)\gdk

|
||||
copy ..\..\..\gdk\gdkkeysyms.h $(OutDir)\include\gtk-$(GtkApiVersion)\gdk

|
||||
|
||||
162
configure.ac
162
configure.ac
@@ -2,6 +2,14 @@
|
||||
# require autoconf 2.54
|
||||
AC_PREREQ([2.62])
|
||||
|
||||
AC_INIT([gtk+], [gtk_version],
|
||||
[http://bugzilla.gnome.org/enter_bug.cgi?product=gtk%2B],
|
||||
[gtk+])
|
||||
|
||||
AC_CONFIG_HEADER([config.h])
|
||||
AC_CONFIG_SRCDIR([gdk/gdktypes.h])
|
||||
AC_CONFIG_MACRO_DIR([m4])
|
||||
|
||||
# Making releases:
|
||||
# GTK_MICRO_VERSION += 1;
|
||||
# GTK_INTERFACE_AGE += 1;
|
||||
@@ -11,8 +19,8 @@ AC_PREREQ([2.62])
|
||||
# set GTK_BINARY_AGE and GTK_INTERFACE_AGE to 0.
|
||||
|
||||
m4_define([gtk_major_version], [2])
|
||||
m4_define([gtk_minor_version], [90])
|
||||
m4_define([gtk_micro_version], [6])
|
||||
m4_define([gtk_minor_version], [91])
|
||||
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)])
|
||||
@@ -31,21 +39,23 @@ m4_define([gtk_api_version], [3.0])
|
||||
m4_define([gtk_binary_version], [3.0.0])
|
||||
|
||||
# required versions of other packages
|
||||
m4_define([glib_required_version], [2.25.12])
|
||||
m4_define([glib_required_version], [2.27.1])
|
||||
m4_define([pango_required_version], [1.20])
|
||||
m4_define([atk_required_version], [1.29.2])
|
||||
m4_define([cairo_required_version], [1.9.10])
|
||||
m4_define([cairo_required_version], [1.10.0])
|
||||
m4_define([gdk_pixbuf_required_version], [2.21.0])
|
||||
GLIB_REQUIRED_VERSION=glib_required_version
|
||||
PANGO_REQUIRED_VERSION=pango_required_version
|
||||
ATK_REQUIRED_VERSION=atk_required_version
|
||||
CAIRO_REQUIRED_VERSION=cairo_required_version
|
||||
GDK_PIXBUF_REQUIRED_VERSION=gdk_pixbuf_required_version
|
||||
AC_SUBST(GLIB_REQUIRED_VERSION)
|
||||
AC_SUBST(PANGO_REQUIRED_VERSION)
|
||||
AC_SUBST(ATK_REQUIRED_VERSION)
|
||||
AC_SUBST(CAIRO_REQUIRED_VERSION)
|
||||
AC_SUBST(GDK_PIXBUF_REQUIRED_VERSION)
|
||||
|
||||
|
||||
AC_INIT([gtk+], [gtk_version],
|
||||
[http://bugzilla.gnome.org/enter_bug.cgi?product=gtk%2B],
|
||||
[gtk+])
|
||||
|
||||
AC_CONFIG_HEADER([config.h])
|
||||
AC_CONFIG_SRCDIR([gdk/gdktypes.h])
|
||||
AC_CONFIG_MACRO_DIR([m4])
|
||||
|
||||
# Save this value here, since automake will set cflags later
|
||||
cflags_set=${CFLAGS+set}
|
||||
|
||||
@@ -227,10 +237,6 @@ AC_ARG_ENABLE(debug,
|
||||
AC_HELP_STRING([--enable-debug=@<:@no/minimum/yes@:>@],
|
||||
[turn on debugging @<:@default=debug_default@:>@]),,
|
||||
enable_debug=debug_default)
|
||||
AC_ARG_ENABLE(shm,
|
||||
[AC_HELP_STRING([--enable-shm],
|
||||
[support shared memory if available [default=yes]])],,
|
||||
[enable_shm="yes"])
|
||||
AC_ARG_ENABLE(xkb,
|
||||
[AC_HELP_STRING([--enable-xkb],
|
||||
[support XKB [default=maybe]])],,
|
||||
@@ -243,10 +249,6 @@ AC_ARG_ENABLE(rebuilds,
|
||||
[AC_HELP_STRING([--disable-rebuilds],
|
||||
[disable all source autogeneration rules])],,
|
||||
[enable_rebuilds=yes])
|
||||
AC_ARG_ENABLE(visibility,
|
||||
[AC_HELP_STRING([--disable-visibility],
|
||||
[do not use ELF visibility attributes])],,
|
||||
[enable_visibility=yes])
|
||||
|
||||
AC_ARG_WITH(xinput,
|
||||
[AC_HELP_STRING([--with-xinput=@<:@no/yes@:>@], [support XInput])])
|
||||
@@ -257,13 +259,13 @@ else
|
||||
gdktarget=x11
|
||||
fi
|
||||
|
||||
AC_ARG_WITH(gdktarget, [ --with-gdktarget=[[x11/win32/quartz/directfb]] select non-default GDK target],
|
||||
AC_ARG_WITH(gdktarget, [ --with-gdktarget=[[x11/win32/quartz]] select non-default GDK target],
|
||||
gdktarget=$with_gdktarget)
|
||||
|
||||
AC_SUBST(gdktarget)
|
||||
case $gdktarget in
|
||||
x11|win32|quartz|directfb) ;;
|
||||
*) AC_MSG_ERROR([Invalid target for GDK: use x11, quartz, directfb or win32.]);;
|
||||
x11|win32|quartz) ;;
|
||||
*) AC_MSG_ERROR([Invalid target for GDK: use x11, quartz or win32.]);;
|
||||
esac
|
||||
|
||||
gdktargetlib=libgdk-$gdktarget-$GTK_API_VERSION.la
|
||||
@@ -284,11 +286,6 @@ else
|
||||
fi
|
||||
|
||||
|
||||
if test "x$enable_visibility" = "xno"; then
|
||||
GTK_DEBUG_FLAGS="$GTK_DEBUG_FLAGS -DDISABLE_VISIBILITY"
|
||||
fi
|
||||
|
||||
|
||||
AC_DEFINE_UNQUOTED(GTK_COMPILED_WITH_DEBUGGING, "${enable_debug}",
|
||||
[Define if debugging is enabled])
|
||||
|
||||
@@ -365,6 +362,7 @@ PKG_CHECK_MODULES(BASE_DEPENDENCIES,
|
||||
atk >= atk_required_version dnl
|
||||
pango >= pango_required_version dnl
|
||||
cairo >= cairo_required_version dnl
|
||||
cairo-gobject >= cairo_required_version dnl
|
||||
gdk-pixbuf-2.0 >= gdk_pixbuf_required_version])
|
||||
|
||||
## In addition to checking that cairo is present, we also need to
|
||||
@@ -486,18 +484,6 @@ if test "$gtk_ok" = "yes"; then
|
||||
[Define if _NL_PAPER_WIDTH is available])
|
||||
fi
|
||||
|
||||
# sigsetjmp is a macro on some platforms, so AC_CHECK_FUNCS is not reliable
|
||||
AC_MSG_CHECKING(for sigsetjmp)
|
||||
AC_TRY_LINK([#include <setjmp.h>], [
|
||||
sigjmp_buf env;
|
||||
sigsetjmp(env, 0);
|
||||
], gtk_ok=yes, gtk_ok=no)
|
||||
AC_MSG_RESULT($gtk_ok)
|
||||
if test "$gtk_ok" = "yes"; then
|
||||
AC_DEFINE(HAVE_SIGSETJMP, 1,
|
||||
[Define to 1 if sigsetjmp is available])
|
||||
fi
|
||||
|
||||
# i18n stuff
|
||||
ALL_LINGUAS="`grep -v '^#' "$srcdir/po/LINGUAS" | tr '\n' ' '`"
|
||||
AM_GLIB_GNU_GETTEXT
|
||||
@@ -942,11 +928,11 @@ if test "x$gdktarget" = "xx11"; then
|
||||
#
|
||||
# Check for basic X packages; we use pkg-config if available
|
||||
#
|
||||
if $PKG_CONFIG --exists x11 xext xrender; then
|
||||
if $PKG_CONFIG --exists x11 xext; then
|
||||
have_base_x_pc=true
|
||||
X_PACKAGES="$X_PACKAGES x11 xext xrender"
|
||||
x_libs="`$PKG_CONFIG --libs x11 xext xrender`"
|
||||
X_CFLAGS="`$PKG_CONFIG --cflags x11 xext xrender`"
|
||||
X_PACKAGES="$X_PACKAGES x11 xext"
|
||||
x_libs="`$PKG_CONFIG --libs x11 xext`"
|
||||
X_CFLAGS="`$PKG_CONFIG --cflags x11 xext`"
|
||||
|
||||
# Strip out any .la files that pkg-config might give us (this happens
|
||||
# with -uninstalled.pc files)
|
||||
@@ -967,9 +953,9 @@ if test "x$gdktarget" = "xx11"; then
|
||||
fi
|
||||
|
||||
x_cflags="$X_CFLAGS"
|
||||
x_libs_for_checks="$X_LIBS -lXext -lXrender -lX11 $X_EXTRA_LIBS"
|
||||
x_libs_for_checks="$X_LIBS -lXext -lX11 $X_EXTRA_LIBS"
|
||||
|
||||
GTK_DEP_LIBS_FOR_X="$X_LIBS -lXrender -lX11 $X_EXTRA_LIBS"
|
||||
GTK_DEP_LIBS_FOR_X="$X_LIBS -lX11 $X_EXTRA_LIBS"
|
||||
fi
|
||||
|
||||
# Extra libraries found during checks (-lXinerama, etc), not from pkg-config.
|
||||
@@ -988,8 +974,6 @@ if test "x$gdktarget" = "xx11"; then
|
||||
AC_MSG_ERROR([*** libX11 not found. Check 'config.log' for more details.]))
|
||||
AC_CHECK_FUNC(XextFindDisplay, :,
|
||||
AC_MSG_ERROR([*** libXext not found. Check 'config.log' for more details.]))
|
||||
AC_CHECK_FUNC(XRenderQueryExtension, :,
|
||||
AC_MSG_ERROR([*** libXrender not found. Check 'config.log' for more details.]))
|
||||
|
||||
# Check for xReply
|
||||
|
||||
@@ -1052,54 +1036,6 @@ if test "x$gdktarget" = "xx11"; then
|
||||
|
||||
CFLAGS="$gtk_save_CFLAGS"
|
||||
|
||||
# Xshm checks
|
||||
|
||||
if test "x$enable_shm" = "xyes"; then
|
||||
# Check for the XShm extension, normally in Xext
|
||||
AC_CHECK_FUNC(XShmAttach,
|
||||
:,
|
||||
# On AIX, it is in XextSam instead
|
||||
[AC_CHECK_LIB(XextSam, XShmAttach,
|
||||
[GTK_ADD_LIB(x_extra_libs,XextSam)])])
|
||||
fi
|
||||
|
||||
if test "x$enable_shm" = "xyes"; then
|
||||
# Check for shared memory
|
||||
AC_CHECK_HEADER(sys/ipc.h,
|
||||
AC_DEFINE(HAVE_IPC_H, 1,
|
||||
[Define to 1 if ipc.h is available]),
|
||||
no_sys_ipc=yes)
|
||||
AC_CHECK_HEADER(sys/shm.h,
|
||||
AC_DEFINE(HAVE_SHM_H, 1,
|
||||
[Define to 1 if shm.h is available]),
|
||||
no_sys_shm=yes)
|
||||
|
||||
# Check for the X shared memory extension header file
|
||||
have_xshm=no
|
||||
AC_MSG_CHECKING(X11/extensions/XShm.h)
|
||||
if test "x$no_xext_lib" = "xyes"; then
|
||||
:
|
||||
else
|
||||
gtk_save_CFLAGS="$CFLAGS"
|
||||
CFLAGS="$CFLAGS $x_cflags"
|
||||
AC_TRY_COMPILE([
|
||||
#include <stdlib.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/ipc.h>
|
||||
#include <sys/shm.h>
|
||||
#include <X11/Xlib.h>
|
||||
#include <X11/Xutil.h>
|
||||
#include <X11/extensions/XShm.h>
|
||||
], [XShmSegmentInfo *x_shm_info;], have_xshm=yes)
|
||||
CFLAGS="$gtk_save_CFLAGS"
|
||||
fi
|
||||
AC_MSG_RESULT($have_xshm)
|
||||
if test $have_xshm = yes ; then
|
||||
AC_DEFINE(HAVE_XSHM_H, 1,
|
||||
[Define to 1 if xshm.h is available])
|
||||
fi
|
||||
fi
|
||||
|
||||
if test "x$enable_xinerama" = "xyes"; then
|
||||
# Check for Xinerama extension (Solaris impl or Xfree impl)
|
||||
gtk_save_cppflags="$CPPFLAGS"
|
||||
@@ -1250,17 +1186,6 @@ else
|
||||
AM_CONDITIONAL(USE_QUARTZ, false)
|
||||
fi
|
||||
|
||||
if test "x$gdktarget" = "xdirectfb"; then
|
||||
DIRECTFB_REQUIRED_VERSION=1.0.0
|
||||
AC_MSG_CHECKING(for DirectFB)
|
||||
|
||||
PKG_CHECK_MODULES(DIRECTFB, [directfb >= $DIRECTFB_REQUIRED_VERSION])
|
||||
AM_CONDITIONAL(USE_DIRECTFB, true)
|
||||
else
|
||||
AM_CONDITIONAL(USE_DIRECTFB, false)
|
||||
fi
|
||||
|
||||
|
||||
# Check for Pango flags
|
||||
|
||||
if test "x$gdktarget" = "xwin32"; then
|
||||
@@ -1300,9 +1225,9 @@ LDFLAGS="$saved_ldflags"
|
||||
|
||||
# Pull in gio-unix for GDesktopAppInfo usage, see at least gdkapplaunchcontext-x11.c
|
||||
if test "x$gdktarget" = "xx11"; then
|
||||
GDK_PACKAGES="$PANGO_PACKAGES gio-unix-2.0 $X_PACKAGES gdk-pixbuf-2.0 cairo-$cairo_backend"
|
||||
GDK_PACKAGES="$PANGO_PACKAGES gio-unix-2.0 $X_PACKAGES gdk-pixbuf-2.0 cairo-$cairo_backend cairo-gobject"
|
||||
else
|
||||
GDK_PACKAGES="$PANGO_PACKAGES gio-2.0 gdk-pixbuf-2.0 cairo-$cairo_backend"
|
||||
GDK_PACKAGES="$PANGO_PACKAGES gio-2.0 gdk-pixbuf-2.0 cairo-$cairo_backend cairo-gobject"
|
||||
fi
|
||||
|
||||
GDK_DEP_LIBS="$GDK_EXTRA_LIBS `$PKG_CONFIG --libs $GDK_PACKAGES`"
|
||||
@@ -1352,7 +1277,7 @@ else
|
||||
LIBS="$gtk_save_LIBS"
|
||||
fi
|
||||
|
||||
GTK_PACKAGES="atk cairo gdk-pixbuf-2.0 gio-2.0"
|
||||
GTK_PACKAGES="atk cairo cairo-gobject gdk-pixbuf-2.0 gio-2.0"
|
||||
if test "x$gdktarget" = "xx11"; then
|
||||
GTK_PACKAGES="$GTK_PACKAGES pangoft2"
|
||||
fi
|
||||
@@ -1552,11 +1477,17 @@ if test -n "$export_dynamic"; then
|
||||
GTK_DEP_LIBS=`echo $GTK_DEP_LIBS | sed -e "s/$export_dynamic//"`
|
||||
fi
|
||||
|
||||
#############
|
||||
# GSettings #
|
||||
#############
|
||||
|
||||
GLIB_GSETTINGS
|
||||
|
||||
##################################################
|
||||
# GObject introspection
|
||||
##################################################
|
||||
|
||||
GOBJECT_INTROSPECTION_CHECK([0.9.0])
|
||||
GOBJECT_INTROSPECTION_CHECK([0.9.3])
|
||||
|
||||
##################################################
|
||||
# Checks for gtk-doc and docbook-tools
|
||||
@@ -1654,9 +1585,6 @@ elif test "x$gdktarget" = "xwin32" ; then
|
||||
elif test "x$gdktarget" = "xquartz" ; then
|
||||
gdk_windowing='
|
||||
#define GDK_WINDOWING_QUARTZ'
|
||||
elif test "x$gdktarget" = "xdirectfb" ; then
|
||||
gdk_windowing='
|
||||
#define GDK_WINDOWING_DIRECTFB'
|
||||
fi
|
||||
|
||||
if test x$gdk_wchar_h = xyes; then
|
||||
@@ -1712,6 +1640,7 @@ po-properties/Makefile.in
|
||||
demos/Makefile
|
||||
demos/gtk-demo/Makefile
|
||||
demos/gtk-demo/geninclude.pl
|
||||
examples/Makefile
|
||||
tests/Makefile
|
||||
docs/Makefile
|
||||
docs/reference/Makefile
|
||||
@@ -1720,9 +1649,7 @@ docs/reference/gdk/version.xml
|
||||
docs/reference/gtk/Makefile
|
||||
docs/reference/gtk/version.xml
|
||||
docs/reference/libgail-util/Makefile
|
||||
docs/faq/Makefile
|
||||
docs/tools/Makefile
|
||||
docs/tutorial/Makefile
|
||||
build/Makefile
|
||||
build/win32/Makefile
|
||||
build/win32/vs9/Makefile
|
||||
@@ -1732,7 +1659,6 @@ gdk/win32/Makefile
|
||||
gdk/win32/rc/Makefile
|
||||
gdk/win32/rc/gdk.rc
|
||||
gdk/quartz/Makefile
|
||||
gdk/directfb/Makefile
|
||||
gdk/tests/Makefile
|
||||
gtk/Makefile
|
||||
gtk/makefile.msc
|
||||
@@ -1763,4 +1689,4 @@ perf/Makefile
|
||||
AC_OUTPUT
|
||||
|
||||
echo "configuration:
|
||||
target: $gdktarget"
|
||||
target: $gdktarget"
|
||||
|
||||
@@ -22,42 +22,24 @@ LDADDS = \
|
||||
$(MATH_LIB)
|
||||
|
||||
noinst_PROGRAMS = \
|
||||
testpixbuf-drawable \
|
||||
testanimation \
|
||||
testpixbuf-color \
|
||||
testpixbuf-save \
|
||||
testpixbuf-scale \
|
||||
pixbuf-demo
|
||||
|
||||
# Need to build test-inline-pixbufs.h for testpixbuf
|
||||
noinst_PROGRAMS += testpixbuf
|
||||
BUILT_SOURCES = test-inline-pixbufs.h
|
||||
|
||||
test-inline-pixbufs.h: apple-red.png gnome-foot.png
|
||||
$(GDK_PIXBUF_CSOURCE) --raw --build-list \
|
||||
apple_red $(srcdir)/apple-red.png \
|
||||
gnome_foot $(srcdir)/gnome-foot.png \
|
||||
> test-inline-pixbufs.h \
|
||||
|| (rm -f test-inline-pixbufs.h && false)
|
||||
|
||||
testpixbuf_DEPENDENCIES = $(DEPS)
|
||||
testpixbuf_drawable_DEPENDENCIES = $(DEPS)
|
||||
testpixbuf_save_DEPENDENCIES = $(DEPS)
|
||||
testpixbuf_color_DEPENDENCIES = $(DEPS)
|
||||
testpixbuf_scale_DEPENDENCIES = $(DEPS)
|
||||
testanimation_DEPENDENCIES = $(DEPS)
|
||||
pixbuf_demo_DEPENDENCIES = $(DEPS)
|
||||
|
||||
testpixbuf_LDADD = $(LDADDS)
|
||||
testpixbuf_drawable_LDADD = $(LDADDS)
|
||||
testpixbuf_save_LDADD = $(LDADDS)
|
||||
testpixbuf_color_LDADD = $(LDADDS)
|
||||
testpixbuf_scale_LDADD = $(LDADDS)
|
||||
testanimation_LDADD = $(LDADDS)
|
||||
pixbuf_demo_LDADD = $(LDADDS)
|
||||
|
||||
testpixbuf_SOURCES = testpixbuf.c pixbuf-init.c
|
||||
testpixbuf_drawable_SOURCES = testpixbuf-drawable.c pixbuf-init.c
|
||||
testpixbuf_save_SOURCES = testpixbuf-save.c
|
||||
testpixbuf_color_SOURCES = testpixbuf-color.c
|
||||
testpixbuf_scale_SOURCES = testpixbuf-scale.c pixbuf-init.c
|
||||
@@ -75,6 +57,4 @@ EXTRA_DIST += \
|
||||
gnome-gsame.png \
|
||||
gnu-keys.png
|
||||
|
||||
DISTCLEANFILES = test-inline-pixbufs.h
|
||||
|
||||
-include $(top_srcdir)/git.mk
|
||||
|
||||
@@ -67,25 +67,6 @@ activate_radio_action (GtkAction *action, GtkRadioAction *current)
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
activate_email (GtkAboutDialog *about,
|
||||
const gchar *link,
|
||||
gpointer data)
|
||||
{
|
||||
gchar *text;
|
||||
text = g_strdup_printf ("send mail to %s", link);
|
||||
g_print ("%s\n", text);
|
||||
g_free (text);
|
||||
}
|
||||
|
||||
static void
|
||||
activate_url (GtkAboutDialog *about,
|
||||
const gchar *link,
|
||||
gpointer data)
|
||||
{
|
||||
g_print ("show url %s\n", link);
|
||||
}
|
||||
|
||||
static void
|
||||
about_cb (GtkAction *action,
|
||||
GtkWidget *window)
|
||||
@@ -109,22 +90,6 @@ about_cb (GtkAction *action,
|
||||
NULL
|
||||
};
|
||||
|
||||
const gchar *license =
|
||||
"This library is free software; you can redistribute it and/or\n"
|
||||
"modify it under the terms of the GNU Library General Public License as\n"
|
||||
"published by the Free Software Foundation; either version 2 of the\n"
|
||||
"License, or (at your option) any later version.\n"
|
||||
"\n"
|
||||
"This library is distributed in the hope that it will be useful,\n"
|
||||
"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
|
||||
"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n"
|
||||
"Library General Public License for more details.\n"
|
||||
"\n"
|
||||
"You should have received a copy of the GNU Library General Public\n"
|
||||
"License along with the Gnome Library; see the file COPYING.LIB. If not,\n"
|
||||
"write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,\n"
|
||||
"Boston, MA 02111-1307, USA.\n";
|
||||
|
||||
pixbuf = NULL;
|
||||
transparent = NULL;
|
||||
filename = demo_find_file ("gtk-logo-rgb.gif", NULL);
|
||||
@@ -136,13 +101,15 @@ about_cb (GtkAction *action,
|
||||
g_object_unref (pixbuf);
|
||||
}
|
||||
|
||||
gtk_about_dialog_set_email_hook (activate_email, NULL, NULL);
|
||||
gtk_about_dialog_set_url_hook (activate_url, NULL, NULL);
|
||||
gtk_show_about_dialog (GTK_WINDOW (window),
|
||||
"program-name", "GTK+ Code Demos",
|
||||
"version", PACKAGE_VERSION,
|
||||
"version", g_strdup_printf ("%s,\nRunning against GTK+ %d.%d.%d",
|
||||
PACKAGE_VERSION,
|
||||
gtk_get_major_version (),
|
||||
gtk_get_minor_version (),
|
||||
gtk_get_micro_version ()),
|
||||
"copyright", "(C) 1997-2009 The GTK+ Team",
|
||||
"license", license,
|
||||
"license-type", GTK_LICENSE_LGPL_2_1,
|
||||
"website", "http://www.gtk.org",
|
||||
"comments", "Program to demonstrate GTK+ functions.",
|
||||
"authors", authors,
|
||||
@@ -417,23 +384,6 @@ mark_set_callback (GtkTextBuffer *buffer,
|
||||
update_statusbar (buffer, GTK_STATUSBAR (data));
|
||||
}
|
||||
|
||||
static void
|
||||
update_resize_grip (GtkWidget *widget,
|
||||
GdkEventWindowState *event,
|
||||
GtkStatusbar *statusbar)
|
||||
{
|
||||
if (event->changed_mask & (GDK_WINDOW_STATE_MAXIMIZED |
|
||||
GDK_WINDOW_STATE_FULLSCREEN))
|
||||
{
|
||||
gboolean maximized;
|
||||
|
||||
maximized = event->new_window_state & (GDK_WINDOW_STATE_MAXIMIZED |
|
||||
GDK_WINDOW_STATE_FULLSCREEN);
|
||||
gtk_statusbar_set_has_resize_grip (statusbar, !maximized);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
GtkWidget *
|
||||
do_appwindow (GtkWidget *do_widget)
|
||||
{
|
||||
@@ -459,7 +409,7 @@ do_appwindow (GtkWidget *do_widget)
|
||||
gtk_window_set_screen (GTK_WINDOW (window),
|
||||
gtk_widget_get_screen (do_widget));
|
||||
gtk_window_set_title (GTK_WINDOW (window), "Application Window");
|
||||
gtk_window_set_icon_name (GTK_WINDOW (window), "gtk-open");
|
||||
gtk_window_set_icon_name (GTK_WINDOW (window), "document-open");
|
||||
|
||||
/* NULL window variable when window is closed */
|
||||
g_signal_connect (window, "destroy",
|
||||
@@ -602,12 +552,6 @@ do_appwindow (GtkWidget *do_widget)
|
||||
statusbar,
|
||||
0);
|
||||
|
||||
g_signal_connect_object (window,
|
||||
"window_state_event",
|
||||
G_CALLBACK (update_resize_grip),
|
||||
statusbar,
|
||||
0);
|
||||
|
||||
update_statusbar (buffer, GTK_STATUSBAR (statusbar));
|
||||
}
|
||||
|
||||
|
||||
@@ -128,7 +128,7 @@ query_for_toplevel (GdkScreen *screen,
|
||||
gtk_widget_show_all (popup);
|
||||
cursor = gdk_cursor_new_for_display (display, GDK_CROSSHAIR);
|
||||
|
||||
if (gdk_pointer_grab (popup->window, FALSE,
|
||||
if (gdk_pointer_grab (gtk_widget_get_window (popup), FALSE,
|
||||
GDK_BUTTON_RELEASE_MASK,
|
||||
NULL,
|
||||
cursor,
|
||||
@@ -585,7 +585,7 @@ destroy_info (ChangeDisplayInfo *info)
|
||||
}
|
||||
|
||||
static void
|
||||
destroy_cb (GtkObject *object,
|
||||
destroy_cb (GObject *object,
|
||||
ChangeDisplayInfo **info)
|
||||
{
|
||||
destroy_info (*info);
|
||||
@@ -610,7 +610,7 @@ do_changedisplay (GtkWidget *do_widget)
|
||||
|
||||
info->window = gtk_dialog_new_with_buttons ("Change Screen or display",
|
||||
GTK_WINDOW (do_widget),
|
||||
GTK_DIALOG_NO_SEPARATOR,
|
||||
0,
|
||||
GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE,
|
||||
"Change", GTK_RESPONSE_OK,
|
||||
NULL);
|
||||
|
||||
@@ -15,22 +15,16 @@ static GtkWidget *frame;
|
||||
/* Expose callback for the drawing area
|
||||
*/
|
||||
static gboolean
|
||||
expose_event_callback (GtkWidget *widget,
|
||||
GdkEventExpose *event,
|
||||
gpointer data)
|
||||
draw_callback (GtkWidget *widget,
|
||||
cairo_t *cr,
|
||||
gpointer data)
|
||||
{
|
||||
if (widget->window)
|
||||
{
|
||||
GtkStyle *style;
|
||||
GtkStyle *style;
|
||||
|
||||
style = gtk_widget_get_style (widget);
|
||||
style = gtk_widget_get_style (widget);
|
||||
|
||||
gdk_draw_rectangle (widget->window,
|
||||
style->bg_gc[GTK_STATE_NORMAL],
|
||||
TRUE,
|
||||
event->area.x, event->area.y,
|
||||
event->area.width, event->area.height);
|
||||
}
|
||||
gdk_cairo_set_source_color (cr, &style->bg[GTK_STATE_NORMAL]);
|
||||
cairo_paint (cr);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
@@ -106,8 +100,8 @@ do_colorsel (GtkWidget *do_widget)
|
||||
|
||||
da = gtk_drawing_area_new ();
|
||||
|
||||
g_signal_connect (da, "expose_event",
|
||||
G_CALLBACK (expose_event_callback), NULL);
|
||||
g_signal_connect (da, "draw",
|
||||
G_CALLBACK (draw_callback), NULL);
|
||||
|
||||
/* set a minimum size */
|
||||
gtk_widget_set_size_request (da, 200, 200);
|
||||
|
||||
@@ -238,12 +238,12 @@ is_capital_sensitive (GtkCellLayout *cell_layout,
|
||||
}
|
||||
|
||||
static void
|
||||
fill_combo_entry (GtkWidget *entry)
|
||||
fill_combo_entry (GtkWidget *combo)
|
||||
{
|
||||
gtk_combo_box_append_text (GTK_COMBO_BOX (entry), "One");
|
||||
gtk_combo_box_append_text (GTK_COMBO_BOX (entry), "Two");
|
||||
gtk_combo_box_append_text (GTK_COMBO_BOX (entry), "2\302\275");
|
||||
gtk_combo_box_append_text (GTK_COMBO_BOX (entry), "Three");
|
||||
gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo), "One");
|
||||
gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo), "Two");
|
||||
gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo), "2\302\275");
|
||||
gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo), "Three");
|
||||
}
|
||||
|
||||
|
||||
@@ -271,7 +271,7 @@ struct _MaskEntryClass
|
||||
};
|
||||
|
||||
|
||||
static void mask_entry_editable_init (GtkEditableClass *iface);
|
||||
static void mask_entry_editable_init (GtkEditableInterface *iface);
|
||||
|
||||
G_DEFINE_TYPE_WITH_CODE (MaskEntry, mask_entry, GTK_TYPE_ENTRY,
|
||||
G_IMPLEMENT_INTERFACE (GTK_TYPE_EDITABLE,
|
||||
@@ -316,7 +316,7 @@ mask_entry_class_init (MaskEntryClass *klass)
|
||||
|
||||
|
||||
static void
|
||||
mask_entry_editable_init (GtkEditableClass *iface)
|
||||
mask_entry_editable_init (GtkEditableInterface *iface)
|
||||
{
|
||||
iface->changed = mask_entry_changed;
|
||||
}
|
||||
@@ -428,7 +428,7 @@ do_combobox (GtkWidget *do_widget)
|
||||
gtk_container_set_border_width (GTK_CONTAINER (box), 5);
|
||||
gtk_container_add (GTK_CONTAINER (frame), box);
|
||||
|
||||
combo = gtk_combo_box_entry_new_text ();
|
||||
combo = gtk_combo_box_text_new_with_entry ();
|
||||
fill_combo_entry (combo);
|
||||
gtk_container_add (GTK_CONTAINER (box), combo);
|
||||
|
||||
|
||||
@@ -17,52 +17,46 @@
|
||||
|
||||
static GtkWidget *window = NULL;
|
||||
/* Pixmap for scribble area, to store current scribbles */
|
||||
static GdkPixmap *pixmap = NULL;
|
||||
static cairo_surface_t *surface = NULL;
|
||||
|
||||
/* Create a new pixmap of the appropriate size to store our scribbles */
|
||||
/* Create a new surface of the appropriate size to store our scribbles */
|
||||
static gboolean
|
||||
scribble_configure_event (GtkWidget *widget,
|
||||
GdkEventConfigure *event,
|
||||
gpointer data)
|
||||
{
|
||||
if (pixmap)
|
||||
g_object_unref (pixmap);
|
||||
GtkAllocation allocation;
|
||||
cairo_t *cr;
|
||||
|
||||
pixmap = gdk_pixmap_new (widget->window,
|
||||
widget->allocation.width,
|
||||
widget->allocation.height,
|
||||
-1);
|
||||
if (surface)
|
||||
cairo_surface_destroy (surface);
|
||||
|
||||
/* Initialize the pixmap to white */
|
||||
gdk_draw_rectangle (pixmap,
|
||||
widget->style->white_gc,
|
||||
TRUE,
|
||||
0, 0,
|
||||
widget->allocation.width,
|
||||
widget->allocation.height);
|
||||
gtk_widget_get_allocation (widget, &allocation);
|
||||
surface = gdk_window_create_similar_surface (gtk_widget_get_window (widget),
|
||||
CAIRO_CONTENT_COLOR,
|
||||
allocation.width,
|
||||
allocation.height);
|
||||
|
||||
/* Initialize the surface to white */
|
||||
cr = cairo_create (surface);
|
||||
|
||||
cairo_set_source_rgb (cr, 1, 1, 1);
|
||||
cairo_paint (cr);
|
||||
|
||||
cairo_destroy (cr);
|
||||
|
||||
/* We've handled the configure event, no need for further processing. */
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/* Redraw the screen from the pixmap */
|
||||
/* Redraw the screen from the surface */
|
||||
static gboolean
|
||||
scribble_expose_event (GtkWidget *widget,
|
||||
GdkEventExpose *event,
|
||||
gpointer data)
|
||||
scribble_draw (GtkWidget *widget,
|
||||
cairo_t *cr,
|
||||
gpointer data)
|
||||
{
|
||||
/* We use the "foreground GC" for the widget since it already exists,
|
||||
* but honestly any GC would work. The only thing to worry about
|
||||
* is whether the GC has an inappropriate clip region set.
|
||||
*/
|
||||
|
||||
gdk_draw_drawable (widget->window,
|
||||
widget->style->fg_gc[gtk_widget_get_state (widget)],
|
||||
pixmap,
|
||||
/* Only copy the area that was exposed. */
|
||||
event->area.x, event->area.y,
|
||||
event->area.x, event->area.y,
|
||||
event->area.width, event->area.height);
|
||||
cairo_set_source_surface (cr, surface, 0, 0);
|
||||
cairo_paint (cr);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
@@ -74,21 +68,23 @@ draw_brush (GtkWidget *widget,
|
||||
gdouble y)
|
||||
{
|
||||
GdkRectangle update_rect;
|
||||
cairo_t *cr;
|
||||
|
||||
update_rect.x = x - 3;
|
||||
update_rect.y = y - 3;
|
||||
update_rect.width = 6;
|
||||
update_rect.height = 6;
|
||||
|
||||
/* Paint to the pixmap, where we store our state */
|
||||
gdk_draw_rectangle (pixmap,
|
||||
widget->style->black_gc,
|
||||
TRUE,
|
||||
update_rect.x, update_rect.y,
|
||||
update_rect.width, update_rect.height);
|
||||
/* Paint to the surface, where we store our state */
|
||||
cr = cairo_create (surface);
|
||||
|
||||
gdk_cairo_rectangle (cr, &update_rect);
|
||||
cairo_fill (cr);
|
||||
|
||||
cairo_destroy (cr);
|
||||
|
||||
/* Now invalidate the affected region of the drawing area. */
|
||||
gdk_window_invalidate_rect (widget->window,
|
||||
gdk_window_invalidate_rect (gtk_widget_get_window (widget),
|
||||
&update_rect,
|
||||
FALSE);
|
||||
}
|
||||
@@ -98,7 +94,7 @@ scribble_button_press_event (GtkWidget *widget,
|
||||
GdkEventButton *event,
|
||||
gpointer data)
|
||||
{
|
||||
if (pixmap == NULL)
|
||||
if (surface == NULL)
|
||||
return FALSE; /* paranoia check, in case we haven't gotten a configure event */
|
||||
|
||||
if (event->button == 1)
|
||||
@@ -116,7 +112,7 @@ scribble_motion_notify_event (GtkWidget *widget,
|
||||
int x, y;
|
||||
GdkModifierType state;
|
||||
|
||||
if (pixmap == NULL)
|
||||
if (surface == NULL)
|
||||
return FALSE; /* paranoia check, in case we haven't gotten a configure event */
|
||||
|
||||
/* This call is very important; it requests the next motion event.
|
||||
@@ -141,65 +137,41 @@ scribble_motion_notify_event (GtkWidget *widget,
|
||||
|
||||
|
||||
static gboolean
|
||||
checkerboard_expose (GtkWidget *da,
|
||||
GdkEventExpose *event,
|
||||
gpointer data)
|
||||
checkerboard_draw (GtkWidget *da,
|
||||
cairo_t *cr,
|
||||
gpointer data)
|
||||
{
|
||||
gint i, j, xcount, ycount;
|
||||
GdkGC *gc1, *gc2;
|
||||
GdkColor color;
|
||||
gint i, j, xcount, ycount, width, height;
|
||||
|
||||
#define CHECK_SIZE 10
|
||||
#define SPACING 2
|
||||
|
||||
/* At the start of an expose handler, a clip region of event->area
|
||||
* is set on the window, and event->area has been cleared to the
|
||||
/* At the start of a draw handler, a clip region has been set on
|
||||
* the Cairo context, and the contents have been cleared to the
|
||||
* widget's background color. The docs for
|
||||
* gdk_window_begin_paint_region() give more details on how this
|
||||
* works.
|
||||
*/
|
||||
|
||||
/* It would be a bit more efficient to keep these
|
||||
* GC's around instead of recreating on each expose, but
|
||||
* this is the lazy/slow way.
|
||||
*/
|
||||
gc1 = gdk_gc_new (da->window);
|
||||
color.red = 30000;
|
||||
color.green = 0;
|
||||
color.blue = 30000;
|
||||
gdk_gc_set_rgb_fg_color (gc1, &color);
|
||||
|
||||
gc2 = gdk_gc_new (da->window);
|
||||
color.red = 65535;
|
||||
color.green = 65535;
|
||||
color.blue = 65535;
|
||||
gdk_gc_set_rgb_fg_color (gc2, &color);
|
||||
|
||||
xcount = 0;
|
||||
width = gtk_widget_get_allocated_width (da);
|
||||
height = gtk_widget_get_allocated_height (da);
|
||||
i = SPACING;
|
||||
while (i < da->allocation.width)
|
||||
while (i < width)
|
||||
{
|
||||
j = SPACING;
|
||||
ycount = xcount % 2; /* start with even/odd depending on row */
|
||||
while (j < da->allocation.height)
|
||||
while (j < height)
|
||||
{
|
||||
GdkGC *gc;
|
||||
|
||||
if (ycount % 2)
|
||||
gc = gc1;
|
||||
cairo_set_source_rgb (cr, 0.45777, 0, 0.45777);
|
||||
else
|
||||
gc = gc2;
|
||||
cairo_set_source_rgb (cr, 1, 1, 1);
|
||||
|
||||
/* If we're outside event->area, this will do nothing.
|
||||
* It might be mildly more efficient if we handled
|
||||
* the clipping ourselves, but again we're feeling lazy.
|
||||
/* If we're outside the clip, this will do nothing.
|
||||
*/
|
||||
gdk_draw_rectangle (da->window,
|
||||
gc,
|
||||
TRUE,
|
||||
i, j,
|
||||
CHECK_SIZE,
|
||||
CHECK_SIZE);
|
||||
cairo_rectangle (cr, i, j, CHECK_SIZE, CHECK_SIZE);
|
||||
cairo_fill (cr);
|
||||
|
||||
j += CHECK_SIZE + SPACING;
|
||||
++ycount;
|
||||
@@ -209,9 +181,6 @@ checkerboard_expose (GtkWidget *da,
|
||||
++xcount;
|
||||
}
|
||||
|
||||
g_object_unref (gc1);
|
||||
g_object_unref (gc2);
|
||||
|
||||
/* return TRUE because we've handled this event, so no
|
||||
* further processing is required.
|
||||
*/
|
||||
@@ -223,9 +192,9 @@ close_window (void)
|
||||
{
|
||||
window = NULL;
|
||||
|
||||
if (pixmap)
|
||||
g_object_unref (pixmap);
|
||||
pixmap = NULL;
|
||||
if (surface)
|
||||
cairo_surface_destroy (surface);
|
||||
surface = NULL;
|
||||
}
|
||||
|
||||
GtkWidget *
|
||||
@@ -270,8 +239,8 @@ do_drawingarea (GtkWidget *do_widget)
|
||||
|
||||
gtk_container_add (GTK_CONTAINER (frame), da);
|
||||
|
||||
g_signal_connect (da, "expose-event",
|
||||
G_CALLBACK (checkerboard_expose), NULL);
|
||||
g_signal_connect (da, "draw",
|
||||
G_CALLBACK (checkerboard_draw), NULL);
|
||||
|
||||
/*
|
||||
* Create the scribble area
|
||||
@@ -292,10 +261,10 @@ do_drawingarea (GtkWidget *do_widget)
|
||||
|
||||
gtk_container_add (GTK_CONTAINER (frame), da);
|
||||
|
||||
/* Signals used to handle backing pixmap */
|
||||
/* Signals used to handle backing surface */
|
||||
|
||||
g_signal_connect (da, "expose-event",
|
||||
G_CALLBACK (scribble_expose_event), NULL);
|
||||
g_signal_connect (da, "draw",
|
||||
G_CALLBACK (scribble_draw), NULL);
|
||||
g_signal_connect (da,"configure-event",
|
||||
G_CALLBACK (scribble_configure_event), NULL);
|
||||
|
||||
|
||||
@@ -113,8 +113,8 @@ key_press_event (GtkWidget *text_view,
|
||||
|
||||
switch (event->keyval)
|
||||
{
|
||||
case GDK_Return:
|
||||
case GDK_KP_Enter:
|
||||
case GDK_KEY_Return:
|
||||
case GDK_KEY_KP_Enter:
|
||||
buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (text_view));
|
||||
gtk_text_buffer_get_iter_at_mark (buffer, &iter,
|
||||
gtk_text_buffer_get_insert (buffer));
|
||||
@@ -225,7 +225,8 @@ motion_notify_event (GtkWidget *text_view,
|
||||
|
||||
set_cursor_if_appropriate (GTK_TEXT_VIEW (text_view), x, y);
|
||||
|
||||
gdk_window_get_pointer (text_view->window, NULL, NULL, NULL);
|
||||
gdk_window_get_pointer (gtk_widget_get_window (text_view),
|
||||
NULL, NULL, NULL);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
@@ -237,9 +238,10 @@ visibility_notify_event (GtkWidget *text_view,
|
||||
GdkEventVisibility *event)
|
||||
{
|
||||
gint wx, wy, bx, by;
|
||||
|
||||
gdk_window_get_pointer (text_view->window, &wx, &wy, NULL);
|
||||
|
||||
|
||||
gdk_window_get_pointer (gtk_widget_get_window (text_view),
|
||||
&wx, &wy, NULL);
|
||||
|
||||
gtk_text_view_window_to_buffer_coords (GTK_TEXT_VIEW (text_view),
|
||||
GTK_TEXT_WINDOW_WIDGET,
|
||||
wx, wy, &bx, &by);
|
||||
|
||||
@@ -120,8 +120,8 @@ do_iconview_edit (GtkWidget *do_widget)
|
||||
|
||||
gtk_icon_view_set_selection_mode (GTK_ICON_VIEW (icon_view),
|
||||
GTK_SELECTION_SINGLE);
|
||||
gtk_icon_view_set_orientation (GTK_ICON_VIEW (icon_view),
|
||||
GTK_ORIENTATION_HORIZONTAL);
|
||||
gtk_icon_view_set_item_orientation (GTK_ICON_VIEW (icon_view),
|
||||
GTK_ORIENTATION_HORIZONTAL);
|
||||
gtk_icon_view_set_columns (GTK_ICON_VIEW (icon_view), 2);
|
||||
gtk_icon_view_set_reorderable (GTK_ICON_VIEW (icon_view), TRUE);
|
||||
|
||||
|
||||
@@ -261,7 +261,7 @@ start_progressive_loading (GtkWidget *image)
|
||||
}
|
||||
|
||||
static void
|
||||
cleanup_callback (GtkObject *object,
|
||||
cleanup_callback (GObject *object,
|
||||
gpointer data)
|
||||
{
|
||||
if (load_timeout)
|
||||
|
||||
@@ -223,7 +223,6 @@ static gchar *types[] =
|
||||
"FALSE",
|
||||
"TRUE",
|
||||
"FILE ",
|
||||
"GtkObject ",
|
||||
"GtkColorSelection ",
|
||||
"GtkWidget ",
|
||||
"GtkButton ",
|
||||
@@ -279,7 +278,7 @@ static gchar *types[] =
|
||||
"GtkTreeStore ",
|
||||
"GtkEntry ",
|
||||
"GtkEditable ",
|
||||
"GtkEditableClass ",
|
||||
"GtkEditableInterface ",
|
||||
"GdkPixmap ",
|
||||
"GdkEventConfigure ",
|
||||
"GdkEventMotion ",
|
||||
|
||||
@@ -45,8 +45,8 @@ static void gtk_rotated_bin_size_allocate (GtkWidget *widget,
|
||||
GtkAllocation *allocation);
|
||||
static gboolean gtk_rotated_bin_damage (GtkWidget *widget,
|
||||
GdkEventExpose *event);
|
||||
static gboolean gtk_rotated_bin_expose (GtkWidget *widget,
|
||||
GdkEventExpose *offscreen);
|
||||
static gboolean gtk_rotated_bin_draw (GtkWidget *widget,
|
||||
cairo_t *cr);
|
||||
|
||||
static void gtk_rotated_bin_add (GtkContainer *container,
|
||||
GtkWidget *child);
|
||||
@@ -74,7 +74,7 @@ to_child (GtkRotatedBin *bin,
|
||||
|
||||
s = sin (bin->angle);
|
||||
c = cos (bin->angle);
|
||||
child_area = bin->child->allocation;
|
||||
gtk_widget_get_allocation (bin->child, &child_area);
|
||||
|
||||
w = c * child_area.width + s * child_area.height;
|
||||
h = s * child_area.width + c * child_area.height;
|
||||
@@ -114,7 +114,7 @@ to_parent (GtkRotatedBin *bin,
|
||||
|
||||
s = sin (bin->angle);
|
||||
c = cos (bin->angle);
|
||||
child_area = bin->child->allocation;
|
||||
gtk_widget_get_allocation (bin->child, &child_area);
|
||||
|
||||
w = c * child_area.width + s * child_area.height;
|
||||
h = s * child_area.width + c * child_area.height;
|
||||
@@ -150,7 +150,7 @@ gtk_rotated_bin_class_init (GtkRotatedBinClass *klass)
|
||||
widget_class->unrealize = gtk_rotated_bin_unrealize;
|
||||
widget_class->size_request = gtk_rotated_bin_size_request;
|
||||
widget_class->size_allocate = gtk_rotated_bin_size_allocate;
|
||||
widget_class->expose_event = gtk_rotated_bin_expose;
|
||||
widget_class->draw = gtk_rotated_bin_draw;
|
||||
|
||||
g_signal_override_class_closure (g_signal_lookup ("damage-event", GTK_TYPE_WIDGET),
|
||||
GTK_TYPE_ROTATED_BIN,
|
||||
@@ -188,7 +188,7 @@ pick_offscreen_child (GdkWindow *offscreen_window,
|
||||
{
|
||||
to_child (bin, widget_x, widget_y, &x, &y);
|
||||
|
||||
child_area = bin->child->allocation;
|
||||
gtk_widget_get_allocation (bin->child, &child_area);
|
||||
|
||||
if (x >= 0 && x < child_area.width &&
|
||||
y >= 0 && y < child_area.height)
|
||||
@@ -224,6 +224,9 @@ static void
|
||||
gtk_rotated_bin_realize (GtkWidget *widget)
|
||||
{
|
||||
GtkRotatedBin *bin = GTK_ROTATED_BIN (widget);
|
||||
GtkAllocation allocation;
|
||||
GtkStyle *style;
|
||||
GdkWindow *window;
|
||||
GdkWindowAttr attributes;
|
||||
gint attributes_mask;
|
||||
guint border_width;
|
||||
@@ -231,12 +234,13 @@ gtk_rotated_bin_realize (GtkWidget *widget)
|
||||
|
||||
gtk_widget_set_realized (widget, TRUE);
|
||||
|
||||
gtk_widget_get_allocation (widget, &allocation);
|
||||
border_width = gtk_container_get_border_width (GTK_CONTAINER (widget));
|
||||
|
||||
attributes.x = widget->allocation.x + border_width;
|
||||
attributes.y = widget->allocation.y + border_width;
|
||||
attributes.width = widget->allocation.width - 2 * border_width;
|
||||
attributes.height = widget->allocation.height - 2 * border_width;
|
||||
attributes.x = allocation.x + border_width;
|
||||
attributes.y = allocation.y + border_width;
|
||||
attributes.width = allocation.width - 2 * border_width;
|
||||
attributes.height = allocation.height - 2 * border_width;
|
||||
attributes.window_type = GDK_WINDOW_CHILD;
|
||||
attributes.event_mask = gtk_widget_get_events (widget)
|
||||
| GDK_EXPOSURE_MASK
|
||||
@@ -248,15 +252,15 @@ gtk_rotated_bin_realize (GtkWidget *widget)
|
||||
| GDK_LEAVE_NOTIFY_MASK;
|
||||
|
||||
attributes.visual = gtk_widget_get_visual (widget);
|
||||
attributes.colormap = gtk_widget_get_colormap (widget);
|
||||
attributes.wclass = GDK_INPUT_OUTPUT;
|
||||
|
||||
attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL | GDK_WA_COLORMAP;
|
||||
attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL;
|
||||
|
||||
widget->window = gdk_window_new (gtk_widget_get_parent_window (widget),
|
||||
&attributes, attributes_mask);
|
||||
gdk_window_set_user_data (widget->window, widget);
|
||||
g_signal_connect (widget->window, "pick-embedded-child",
|
||||
window = gdk_window_new (gtk_widget_get_parent_window (widget),
|
||||
&attributes, attributes_mask);
|
||||
gtk_widget_set_window (widget, window);
|
||||
gdk_window_set_user_data (window, widget);
|
||||
g_signal_connect (window, "pick-embedded-child",
|
||||
G_CALLBACK (pick_offscreen_child), bin);
|
||||
|
||||
attributes.window_type = GDK_WINDOW_OFFSCREEN;
|
||||
@@ -264,24 +268,27 @@ gtk_rotated_bin_realize (GtkWidget *widget)
|
||||
child_requisition.width = child_requisition.height = 0;
|
||||
if (bin->child && gtk_widget_get_visible (bin->child))
|
||||
{
|
||||
attributes.width = bin->child->allocation.width;
|
||||
attributes.height = bin->child->allocation.height;
|
||||
GtkAllocation child_allocation;
|
||||
|
||||
gtk_widget_get_allocation (bin->child, &child_allocation);
|
||||
attributes.width = child_allocation.width;
|
||||
attributes.height = child_allocation.height;
|
||||
}
|
||||
bin->offscreen_window = gdk_window_new (gtk_widget_get_root_window (widget),
|
||||
&attributes, attributes_mask);
|
||||
gdk_window_set_user_data (bin->offscreen_window, widget);
|
||||
if (bin->child)
|
||||
gtk_widget_set_parent_window (bin->child, bin->offscreen_window);
|
||||
gdk_offscreen_window_set_embedder (bin->offscreen_window, widget->window);
|
||||
gdk_offscreen_window_set_embedder (bin->offscreen_window, window);
|
||||
g_signal_connect (bin->offscreen_window, "to-embedder",
|
||||
G_CALLBACK (offscreen_window_to_parent), bin);
|
||||
g_signal_connect (bin->offscreen_window, "from-embedder",
|
||||
G_CALLBACK (offscreen_window_from_parent), bin);
|
||||
|
||||
widget->style = gtk_style_attach (widget->style, widget->window);
|
||||
|
||||
gtk_style_set_background (widget->style, widget->window, GTK_STATE_NORMAL);
|
||||
gtk_style_set_background (widget->style, bin->offscreen_window, GTK_STATE_NORMAL);
|
||||
gtk_widget_style_attach (widget);
|
||||
style = gtk_widget_get_style (widget);
|
||||
gtk_style_set_background (style, window, GTK_STATE_NORMAL);
|
||||
gtk_style_set_background (style, bin->offscreen_window, GTK_STATE_NORMAL);
|
||||
gdk_window_show (bin->offscreen_window);
|
||||
}
|
||||
|
||||
@@ -384,7 +391,8 @@ gtk_rotated_bin_size_request (GtkWidget *widget,
|
||||
child_requisition.height = 0;
|
||||
|
||||
if (bin->child && gtk_widget_get_visible (bin->child))
|
||||
gtk_widget_size_request (bin->child, &child_requisition);
|
||||
gtk_widget_get_preferred_size ( (bin->child),
|
||||
&child_requisition, NULL);
|
||||
|
||||
s = sin (bin->angle);
|
||||
c = cos (bin->angle);
|
||||
@@ -405,7 +413,7 @@ gtk_rotated_bin_size_allocate (GtkWidget *widget,
|
||||
gint w, h;
|
||||
gdouble s, c;
|
||||
|
||||
widget->allocation = *allocation;
|
||||
gtk_widget_set_allocation (widget, allocation);
|
||||
|
||||
border_width = gtk_container_get_border_width (GTK_CONTAINER (widget));
|
||||
|
||||
@@ -413,7 +421,7 @@ gtk_rotated_bin_size_allocate (GtkWidget *widget,
|
||||
h = allocation->height - border_width * 2;
|
||||
|
||||
if (gtk_widget_get_realized (widget))
|
||||
gdk_window_move_resize (widget->window,
|
||||
gdk_window_move_resize (gtk_widget_get_window (widget),
|
||||
allocation->x + border_width,
|
||||
allocation->y + border_width,
|
||||
w, h);
|
||||
@@ -426,7 +434,8 @@ gtk_rotated_bin_size_allocate (GtkWidget *widget,
|
||||
s = sin (bin->angle);
|
||||
c = cos (bin->angle);
|
||||
|
||||
gtk_widget_get_child_requisition (bin->child, &child_requisition);
|
||||
gtk_widget_get_preferred_size (bin->child,
|
||||
&child_requisition, NULL);
|
||||
child_allocation.x = 0;
|
||||
child_allocation.y = 0;
|
||||
child_allocation.height = child_requisition.height;
|
||||
@@ -454,69 +463,67 @@ static gboolean
|
||||
gtk_rotated_bin_damage (GtkWidget *widget,
|
||||
GdkEventExpose *event)
|
||||
{
|
||||
gdk_window_invalidate_rect (widget->window, NULL, FALSE);
|
||||
gdk_window_invalidate_rect (gtk_widget_get_window (widget),
|
||||
NULL, FALSE);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
gtk_rotated_bin_expose (GtkWidget *widget,
|
||||
GdkEventExpose *event)
|
||||
gtk_rotated_bin_draw (GtkWidget *widget,
|
||||
cairo_t *cr)
|
||||
{
|
||||
GtkRotatedBin *bin = GTK_ROTATED_BIN (widget);
|
||||
gint width, height;
|
||||
GdkWindow *window;
|
||||
gdouble s, c;
|
||||
gdouble w, h;
|
||||
|
||||
if (gtk_widget_is_drawable (widget))
|
||||
window = gtk_widget_get_window (widget);
|
||||
if (gtk_cairo_should_draw_window (cr, window))
|
||||
{
|
||||
if (event->window == widget->window)
|
||||
cairo_surface_t *surface;
|
||||
GtkAllocation child_area;
|
||||
|
||||
if (bin->child && gtk_widget_get_visible (bin->child))
|
||||
{
|
||||
GdkPixmap *pixmap;
|
||||
GtkAllocation child_area;
|
||||
cairo_t *cr;
|
||||
surface = gdk_offscreen_window_get_surface (bin->offscreen_window);
|
||||
gtk_widget_get_allocation (bin->child, &child_area);
|
||||
|
||||
if (bin->child && gtk_widget_get_visible (bin->child))
|
||||
{
|
||||
pixmap = gdk_offscreen_window_get_pixmap (bin->offscreen_window);
|
||||
child_area = bin->child->allocation;
|
||||
/* transform */
|
||||
s = sin (bin->angle);
|
||||
c = cos (bin->angle);
|
||||
w = c * child_area.width + s * child_area.height;
|
||||
h = s * child_area.width + c * child_area.height;
|
||||
|
||||
cr = gdk_cairo_create (widget->window);
|
||||
cairo_translate (cr, (w - child_area.width) / 2, (h - child_area.height) / 2);
|
||||
cairo_translate (cr, child_area.width / 2, child_area.height / 2);
|
||||
cairo_rotate (cr, bin->angle);
|
||||
cairo_translate (cr, -child_area.width / 2, -child_area.height / 2);
|
||||
|
||||
/* transform */
|
||||
s = sin (bin->angle);
|
||||
c = cos (bin->angle);
|
||||
w = c * child_area.width + s * child_area.height;
|
||||
h = s * child_area.width + c * child_area.height;
|
||||
|
||||
cairo_translate (cr, (w - child_area.width) / 2, (h - child_area.height) / 2);
|
||||
cairo_translate (cr, child_area.width / 2, child_area.height / 2);
|
||||
cairo_rotate (cr, bin->angle);
|
||||
cairo_translate (cr, -child_area.width / 2, -child_area.height / 2);
|
||||
|
||||
/* clip */
|
||||
gdk_drawable_get_size (pixmap, &width, &height);
|
||||
cairo_rectangle (cr, 0, 0, width, height);
|
||||
cairo_clip (cr);
|
||||
/* paint */
|
||||
gdk_cairo_set_source_pixmap (cr, pixmap, 0, 0);
|
||||
cairo_paint (cr);
|
||||
|
||||
cairo_destroy (cr);
|
||||
}
|
||||
/* clip */
|
||||
cairo_rectangle (cr,
|
||||
0, 0,
|
||||
gdk_window_get_width (bin->offscreen_window),
|
||||
gdk_window_get_height (bin->offscreen_window));
|
||||
cairo_clip (cr);
|
||||
/* paint */
|
||||
cairo_set_source_surface (cr, surface, 0, 0);
|
||||
cairo_paint (cr);
|
||||
}
|
||||
else if (event->window == bin->offscreen_window)
|
||||
{
|
||||
gtk_paint_flat_box (widget->style, event->window,
|
||||
GTK_STATE_NORMAL, GTK_SHADOW_NONE,
|
||||
&event->area, widget, "blah",
|
||||
0, 0, -1, -1);
|
||||
}
|
||||
if (gtk_cairo_should_draw_window (cr, bin->offscreen_window))
|
||||
{
|
||||
gtk_paint_flat_box (gtk_widget_get_style (widget), cr,
|
||||
GTK_STATE_NORMAL, GTK_SHADOW_NONE,
|
||||
widget, "blah",
|
||||
0, 0,
|
||||
gdk_window_get_width (bin->offscreen_window),
|
||||
gdk_window_get_height (bin->offscreen_window));
|
||||
|
||||
if (bin->child)
|
||||
gtk_container_propagate_expose (GTK_CONTAINER (widget),
|
||||
bin->child,
|
||||
event);
|
||||
}
|
||||
if (bin->child)
|
||||
gtk_container_propagate_draw (GTK_CONTAINER (widget),
|
||||
bin->child,
|
||||
cr);
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
|
||||
@@ -41,8 +41,8 @@ static void gtk_mirror_bin_size_allocate (GtkWidget *widget,
|
||||
GtkAllocation *allocation);
|
||||
static gboolean gtk_mirror_bin_damage (GtkWidget *widget,
|
||||
GdkEventExpose *event);
|
||||
static gboolean gtk_mirror_bin_expose (GtkWidget *widget,
|
||||
GdkEventExpose *offscreen);
|
||||
static gboolean gtk_mirror_bin_draw (GtkWidget *widget,
|
||||
cairo_t *cr);
|
||||
|
||||
static void gtk_mirror_bin_add (GtkContainer *container,
|
||||
GtkWidget *child);
|
||||
@@ -88,7 +88,7 @@ gtk_mirror_bin_class_init (GtkMirrorBinClass *klass)
|
||||
widget_class->unrealize = gtk_mirror_bin_unrealize;
|
||||
widget_class->size_request = gtk_mirror_bin_size_request;
|
||||
widget_class->size_allocate = gtk_mirror_bin_size_allocate;
|
||||
widget_class->expose_event = gtk_mirror_bin_expose;
|
||||
widget_class->draw = gtk_mirror_bin_draw;
|
||||
|
||||
g_signal_override_class_closure (g_signal_lookup ("damage-event", GTK_TYPE_WIDGET),
|
||||
GTK_TYPE_MIRROR_BIN,
|
||||
@@ -126,7 +126,7 @@ pick_offscreen_child (GdkWindow *offscreen_window,
|
||||
{
|
||||
to_child (bin, widget_x, widget_y, &x, &y);
|
||||
|
||||
child_area = bin->child->allocation;
|
||||
gtk_widget_get_allocation (bin->child, &child_area);
|
||||
|
||||
if (x >= 0 && x < child_area.width &&
|
||||
y >= 0 && y < child_area.height)
|
||||
@@ -162,6 +162,9 @@ static void
|
||||
gtk_mirror_bin_realize (GtkWidget *widget)
|
||||
{
|
||||
GtkMirrorBin *bin = GTK_MIRROR_BIN (widget);
|
||||
GtkAllocation allocation;
|
||||
GtkStyle *style;
|
||||
GdkWindow *window;
|
||||
GdkWindowAttr attributes;
|
||||
gint attributes_mask;
|
||||
guint border_width;
|
||||
@@ -169,12 +172,13 @@ gtk_mirror_bin_realize (GtkWidget *widget)
|
||||
|
||||
gtk_widget_set_realized (widget, TRUE);
|
||||
|
||||
gtk_widget_get_allocation (widget, &allocation);
|
||||
border_width = gtk_container_get_border_width (GTK_CONTAINER (widget));
|
||||
|
||||
attributes.x = widget->allocation.x + border_width;
|
||||
attributes.y = widget->allocation.y + border_width;
|
||||
attributes.width = widget->allocation.width - 2 * border_width;
|
||||
attributes.height = widget->allocation.height - 2 * border_width;
|
||||
attributes.x = allocation.x + border_width;
|
||||
attributes.y = allocation.y + border_width;
|
||||
attributes.width = allocation.width - 2 * border_width;
|
||||
attributes.height = allocation.height - 2 * border_width;
|
||||
attributes.window_type = GDK_WINDOW_CHILD;
|
||||
attributes.event_mask = gtk_widget_get_events (widget)
|
||||
| GDK_EXPOSURE_MASK
|
||||
@@ -186,15 +190,15 @@ gtk_mirror_bin_realize (GtkWidget *widget)
|
||||
| GDK_LEAVE_NOTIFY_MASK;
|
||||
|
||||
attributes.visual = gtk_widget_get_visual (widget);
|
||||
attributes.colormap = gtk_widget_get_colormap (widget);
|
||||
attributes.wclass = GDK_INPUT_OUTPUT;
|
||||
|
||||
attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL | GDK_WA_COLORMAP;
|
||||
attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL;
|
||||
|
||||
widget->window = gdk_window_new (gtk_widget_get_parent_window (widget),
|
||||
&attributes, attributes_mask);
|
||||
gdk_window_set_user_data (widget->window, widget);
|
||||
g_signal_connect (widget->window, "pick-embedded-child",
|
||||
window = gdk_window_new (gtk_widget_get_parent_window (widget),
|
||||
&attributes, attributes_mask);
|
||||
gtk_widget_set_window (widget, window);
|
||||
gdk_window_set_user_data (window, widget);
|
||||
g_signal_connect (window, "pick-embedded-child",
|
||||
G_CALLBACK (pick_offscreen_child), bin);
|
||||
|
||||
attributes.window_type = GDK_WINDOW_OFFSCREEN;
|
||||
@@ -202,24 +206,27 @@ gtk_mirror_bin_realize (GtkWidget *widget)
|
||||
child_requisition.width = child_requisition.height = 0;
|
||||
if (bin->child && gtk_widget_get_visible (bin->child))
|
||||
{
|
||||
attributes.width = bin->child->allocation.width;
|
||||
attributes.height = bin->child->allocation.height;
|
||||
GtkAllocation child_allocation;
|
||||
|
||||
gtk_widget_get_allocation (bin->child, &child_allocation);
|
||||
attributes.width = child_allocation.width;
|
||||
attributes.height = child_allocation.height;
|
||||
}
|
||||
bin->offscreen_window = gdk_window_new (gtk_widget_get_root_window (widget),
|
||||
&attributes, attributes_mask);
|
||||
gdk_window_set_user_data (bin->offscreen_window, widget);
|
||||
if (bin->child)
|
||||
gtk_widget_set_parent_window (bin->child, bin->offscreen_window);
|
||||
gdk_offscreen_window_set_embedder (bin->offscreen_window, widget->window);
|
||||
gdk_offscreen_window_set_embedder (bin->offscreen_window, window);
|
||||
g_signal_connect (bin->offscreen_window, "to-embedder",
|
||||
G_CALLBACK (offscreen_window_to_parent), bin);
|
||||
g_signal_connect (bin->offscreen_window, "from-embedder",
|
||||
G_CALLBACK (offscreen_window_from_parent), bin);
|
||||
|
||||
widget->style = gtk_style_attach (widget->style, widget->window);
|
||||
|
||||
gtk_style_set_background (widget->style, widget->window, GTK_STATE_NORMAL);
|
||||
gtk_style_set_background (widget->style, bin->offscreen_window, GTK_STATE_NORMAL);
|
||||
gtk_widget_style_attach (widget);
|
||||
style = gtk_widget_get_style (widget);
|
||||
gtk_style_set_background (style, window, GTK_STATE_NORMAL);
|
||||
gtk_style_set_background (style, bin->offscreen_window, GTK_STATE_NORMAL);
|
||||
gdk_window_show (bin->offscreen_window);
|
||||
}
|
||||
|
||||
@@ -308,7 +315,8 @@ gtk_mirror_bin_size_request (GtkWidget *widget,
|
||||
child_requisition.height = 0;
|
||||
|
||||
if (bin->child && gtk_widget_get_visible (bin->child))
|
||||
gtk_widget_size_request (bin->child, &child_requisition);
|
||||
gtk_widget_get_preferred_size ( (bin->child),
|
||||
&child_requisition, NULL);
|
||||
|
||||
border_width = gtk_container_get_border_width (GTK_CONTAINER (widget));
|
||||
requisition->width = border_width * 2 + child_requisition.width + 10;
|
||||
@@ -323,7 +331,7 @@ gtk_mirror_bin_size_allocate (GtkWidget *widget,
|
||||
gint w, h;
|
||||
guint border_width;
|
||||
|
||||
widget->allocation = *allocation;
|
||||
gtk_widget_set_allocation (widget, allocation);
|
||||
|
||||
border_width = gtk_container_get_border_width (GTK_CONTAINER (widget));
|
||||
|
||||
@@ -331,7 +339,7 @@ gtk_mirror_bin_size_allocate (GtkWidget *widget,
|
||||
h = allocation->height - border_width * 2;
|
||||
|
||||
if (gtk_widget_get_realized (widget))
|
||||
gdk_window_move_resize (widget->window,
|
||||
gdk_window_move_resize (gtk_widget_get_window (widget),
|
||||
allocation->x + border_width,
|
||||
allocation->y + border_width,
|
||||
w, h);
|
||||
@@ -341,7 +349,8 @@ gtk_mirror_bin_size_allocate (GtkWidget *widget,
|
||||
GtkRequisition child_requisition;
|
||||
GtkAllocation child_allocation;
|
||||
|
||||
gtk_widget_get_child_requisition (bin->child, &child_requisition);
|
||||
gtk_widget_get_preferred_size (bin->child,
|
||||
&child_requisition, NULL);
|
||||
child_allocation.x = 0;
|
||||
child_allocation.y = 0;
|
||||
child_allocation.height = child_requisition.height;
|
||||
@@ -360,82 +369,70 @@ static gboolean
|
||||
gtk_mirror_bin_damage (GtkWidget *widget,
|
||||
GdkEventExpose *event)
|
||||
{
|
||||
gdk_window_invalidate_rect (widget->window, NULL, FALSE);
|
||||
gdk_window_invalidate_rect (gtk_widget_get_window (widget),
|
||||
NULL, FALSE);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
gtk_mirror_bin_expose (GtkWidget *widget,
|
||||
GdkEventExpose *event)
|
||||
gtk_mirror_bin_draw (GtkWidget *widget,
|
||||
cairo_t *cr)
|
||||
{
|
||||
GtkMirrorBin *bin = GTK_MIRROR_BIN (widget);
|
||||
gint width, height;
|
||||
GdkWindow *window;
|
||||
|
||||
if (gtk_widget_is_drawable (widget))
|
||||
window = gtk_widget_get_window (widget);
|
||||
if (gtk_cairo_should_draw_window (cr, window))
|
||||
{
|
||||
if (event->window == widget->window)
|
||||
cairo_surface_t *surface;
|
||||
cairo_matrix_t matrix;
|
||||
cairo_pattern_t *mask;
|
||||
int height;
|
||||
|
||||
if (bin->child && gtk_widget_get_visible (bin->child))
|
||||
{
|
||||
GdkPixmap *pixmap;
|
||||
cairo_t *cr;
|
||||
cairo_matrix_t matrix;
|
||||
cairo_pattern_t *mask;
|
||||
surface = gdk_offscreen_window_get_surface (bin->offscreen_window);
|
||||
height = gdk_window_get_height (bin->offscreen_window);
|
||||
|
||||
if (bin->child && gtk_widget_get_visible (bin->child))
|
||||
{
|
||||
pixmap = gdk_offscreen_window_get_pixmap (bin->offscreen_window);
|
||||
gdk_drawable_get_size (pixmap, &width, &height);
|
||||
/* paint the offscreen child */
|
||||
cairo_set_source_surface (cr, surface, 0, 0);
|
||||
cairo_paint (cr);
|
||||
|
||||
cr = gdk_cairo_create (widget->window);
|
||||
cairo_matrix_init (&matrix, 1.0, 0.0, 0.3, 1.0, 0.0, 0.0);
|
||||
cairo_matrix_scale (&matrix, 1.0, -1.0);
|
||||
cairo_matrix_translate (&matrix, -10, - 3 * height - 10);
|
||||
cairo_transform (cr, &matrix);
|
||||
|
||||
cairo_save (cr);
|
||||
cairo_set_source_surface (cr, surface, 0, height);
|
||||
|
||||
cairo_rectangle (cr, 0, 0, width, height);
|
||||
cairo_clip (cr);
|
||||
/* create linear gradient as mask-pattern to fade out the source */
|
||||
mask = cairo_pattern_create_linear (0.0, height, 0.0, 2*height);
|
||||
cairo_pattern_add_color_stop_rgba (mask, 0.0, 0.0, 0.0, 0.0, 0.0);
|
||||
cairo_pattern_add_color_stop_rgba (mask, 0.25, 0.0, 0.0, 0.0, 0.01);
|
||||
cairo_pattern_add_color_stop_rgba (mask, 0.5, 0.0, 0.0, 0.0, 0.25);
|
||||
cairo_pattern_add_color_stop_rgba (mask, 0.75, 0.0, 0.0, 0.0, 0.5);
|
||||
cairo_pattern_add_color_stop_rgba (mask, 1.0, 0.0, 0.0, 0.0, 1.0);
|
||||
|
||||
/* paint the offscreen child */
|
||||
gdk_cairo_set_source_pixmap (cr, pixmap, 0, 0);
|
||||
cairo_paint (cr);
|
||||
/* paint the reflection */
|
||||
cairo_mask (cr, mask);
|
||||
|
||||
cairo_restore (cr);
|
||||
|
||||
cairo_matrix_init (&matrix, 1.0, 0.0, 0.3, 1.0, 0.0, 0.0);
|
||||
cairo_matrix_scale (&matrix, 1.0, -1.0);
|
||||
cairo_matrix_translate (&matrix, -10, - 3 * height - 10);
|
||||
cairo_transform (cr, &matrix);
|
||||
|
||||
cairo_rectangle (cr, 0, height, width, height);
|
||||
cairo_clip (cr);
|
||||
|
||||
gdk_cairo_set_source_pixmap (cr, pixmap, 0, height);
|
||||
|
||||
/* create linear gradient as mask-pattern to fade out the source */
|
||||
mask = cairo_pattern_create_linear (0.0, height, 0.0, 2*height);
|
||||
cairo_pattern_add_color_stop_rgba (mask, 0.0, 0.0, 0.0, 0.0, 0.0);
|
||||
cairo_pattern_add_color_stop_rgba (mask, 0.25, 0.0, 0.0, 0.0, 0.01);
|
||||
cairo_pattern_add_color_stop_rgba (mask, 0.5, 0.0, 0.0, 0.0, 0.25);
|
||||
cairo_pattern_add_color_stop_rgba (mask, 0.75, 0.0, 0.0, 0.0, 0.5);
|
||||
cairo_pattern_add_color_stop_rgba (mask, 1.0, 0.0, 0.0, 0.0, 1.0);
|
||||
|
||||
/* paint the reflection */
|
||||
cairo_mask (cr, mask);
|
||||
|
||||
cairo_pattern_destroy (mask);
|
||||
cairo_destroy (cr);
|
||||
}
|
||||
cairo_pattern_destroy (mask);
|
||||
}
|
||||
else if (event->window == bin->offscreen_window)
|
||||
{
|
||||
gtk_paint_flat_box (widget->style, event->window,
|
||||
GTK_STATE_NORMAL, GTK_SHADOW_NONE,
|
||||
&event->area, widget, "blah",
|
||||
0, 0, -1, -1);
|
||||
}
|
||||
else if (gtk_cairo_should_draw_window (cr, bin->offscreen_window))
|
||||
{
|
||||
gtk_paint_flat_box (gtk_widget_get_style (widget), cr,
|
||||
GTK_STATE_NORMAL, GTK_SHADOW_NONE,
|
||||
widget, "blah",
|
||||
0, 0,
|
||||
gdk_window_get_width (bin->offscreen_window),
|
||||
gdk_window_get_height (bin->offscreen_window));
|
||||
|
||||
if (bin->child)
|
||||
gtk_container_propagate_expose (GTK_CONTAINER (widget),
|
||||
bin->child,
|
||||
event);
|
||||
}
|
||||
if (bin->child)
|
||||
gtk_container_propagate_draw (GTK_CONTAINER (widget),
|
||||
bin->child,
|
||||
cr);
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
|
||||
@@ -17,17 +17,23 @@ void
|
||||
toggle_resize (GtkWidget *widget,
|
||||
GtkWidget *child)
|
||||
{
|
||||
GtkPaned *paned = GTK_PANED (child->parent);
|
||||
gboolean is_child1 = (child == gtk_paned_get_child1 (paned));
|
||||
GtkWidget *parent;
|
||||
GtkPaned *paned;
|
||||
gboolean is_child1;
|
||||
gboolean resize, shrink;
|
||||
|
||||
parent = gtk_widget_get_parent (child);
|
||||
paned = GTK_PANED (parent);
|
||||
|
||||
is_child1 = (child == gtk_paned_get_child1 (paned));
|
||||
|
||||
gtk_container_child_get (GTK_CONTAINER (paned), child,
|
||||
"resize", &resize,
|
||||
"shrink", &shrink,
|
||||
NULL);
|
||||
|
||||
g_object_ref (child);
|
||||
gtk_container_remove (GTK_CONTAINER (child->parent), child);
|
||||
gtk_container_remove (GTK_CONTAINER (parent), child);
|
||||
if (is_child1)
|
||||
gtk_paned_pack1 (paned, child, !resize, shrink);
|
||||
else
|
||||
@@ -39,17 +45,23 @@ void
|
||||
toggle_shrink (GtkWidget *widget,
|
||||
GtkWidget *child)
|
||||
{
|
||||
GtkPaned *paned = GTK_PANED (child->parent);
|
||||
gboolean is_child1 = (child == gtk_paned_get_child1 (paned));
|
||||
GtkWidget *parent;
|
||||
GtkPaned *paned;
|
||||
gboolean is_child1;
|
||||
gboolean resize, shrink;
|
||||
|
||||
parent = gtk_widget_get_parent (child);
|
||||
paned = GTK_PANED (parent);
|
||||
|
||||
is_child1 = (child == gtk_paned_get_child1 (paned));
|
||||
|
||||
gtk_container_child_get (GTK_CONTAINER (paned), child,
|
||||
"resize", &resize,
|
||||
"shrink", &shrink,
|
||||
NULL);
|
||||
|
||||
g_object_ref (child);
|
||||
gtk_container_remove (GTK_CONTAINER (child->parent), child);
|
||||
gtk_container_remove (GTK_CONTAINER (parent), child);
|
||||
if (is_child1)
|
||||
gtk_paned_pack1 (paned, child, resize, !shrink);
|
||||
else
|
||||
|
||||
@@ -96,24 +96,12 @@ load_pixbufs (GError **error)
|
||||
|
||||
/* Expose callback for the drawing area */
|
||||
static gint
|
||||
expose_cb (GtkWidget *widget,
|
||||
GdkEventExpose *event,
|
||||
gpointer data)
|
||||
draw_cb (GtkWidget *widget,
|
||||
cairo_t *cr,
|
||||
gpointer data)
|
||||
{
|
||||
guchar *pixels;
|
||||
int rowstride;
|
||||
|
||||
rowstride = gdk_pixbuf_get_rowstride (frame);
|
||||
|
||||
pixels = gdk_pixbuf_get_pixels (frame) + rowstride * event->area.y + event->area.x * 3;
|
||||
|
||||
gdk_draw_rgb_image_dithalign (widget->window,
|
||||
widget->style->black_gc,
|
||||
event->area.x, event->area.y,
|
||||
event->area.width, event->area.height,
|
||||
GDK_RGB_DITHER_NORMAL,
|
||||
pixels, rowstride,
|
||||
event->area.x, event->area.y);
|
||||
gdk_cairo_set_source_pixbuf (cr, frame, 0, 0);
|
||||
cairo_paint (cr);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
@@ -198,7 +186,7 @@ timeout (gpointer data)
|
||||
static guint timeout_id;
|
||||
|
||||
static void
|
||||
cleanup_callback (GtkObject *object,
|
||||
cleanup_callback (GObject *object,
|
||||
gpointer data)
|
||||
{
|
||||
g_source_remove (timeout_id);
|
||||
@@ -251,8 +239,8 @@ do_pixbufs (GtkWidget *do_widget)
|
||||
|
||||
da = gtk_drawing_area_new ();
|
||||
|
||||
g_signal_connect (da, "expose-event",
|
||||
G_CALLBACK (expose_cb), NULL);
|
||||
g_signal_connect (da, "draw",
|
||||
G_CALLBACK (draw_cb), NULL);
|
||||
|
||||
gtk_container_add (GTK_CONTAINER (window), da);
|
||||
|
||||
|
||||
@@ -91,9 +91,9 @@ create_fancy_attr_list_for_layout (PangoLayout *layout)
|
||||
}
|
||||
|
||||
static gboolean
|
||||
rotated_text_expose_event (GtkWidget *widget,
|
||||
GdkEventExpose *event,
|
||||
gpointer data)
|
||||
rotated_text_draw (GtkWidget *widget,
|
||||
cairo_t *cr,
|
||||
gpointer data)
|
||||
{
|
||||
#define RADIUS 150
|
||||
#define N_WORDS 5
|
||||
@@ -103,21 +103,20 @@ rotated_text_expose_event (GtkWidget *widget,
|
||||
PangoLayout *layout;
|
||||
PangoFontDescription *desc;
|
||||
|
||||
cairo_t *cr;
|
||||
cairo_pattern_t *pattern;
|
||||
|
||||
PangoAttrList *attrs;
|
||||
|
||||
int width = widget->allocation.width;
|
||||
int height = widget->allocation.height;
|
||||
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. */
|
||||
cr = gdk_cairo_create (widget->window);
|
||||
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,
|
||||
@@ -167,7 +166,6 @@ rotated_text_expose_event (GtkWidget *widget,
|
||||
g_object_unref (layout);
|
||||
g_object_unref (context);
|
||||
cairo_pattern_destroy (pattern);
|
||||
cairo_destroy (cr);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
@@ -203,8 +201,8 @@ do_rotated_text (GtkWidget *do_widget)
|
||||
/* This overrides the background color from the theme */
|
||||
gtk_widget_modify_bg (drawing_area, GTK_STATE_NORMAL, &white);
|
||||
|
||||
g_signal_connect (drawing_area, "expose-event",
|
||||
G_CALLBACK (rotated_text_expose_event), NULL);
|
||||
g_signal_connect (drawing_area, "draw",
|
||||
G_CALLBACK (rotated_text_draw), NULL);
|
||||
|
||||
/* And a label */
|
||||
|
||||
|
||||
@@ -25,10 +25,10 @@ create_combo_box (const char **strings)
|
||||
GtkWidget *combo_box;
|
||||
const char **str;
|
||||
|
||||
combo_box = gtk_combo_box_new_text ();
|
||||
combo_box = gtk_combo_box_text_new ();
|
||||
|
||||
for (str = strings; *str; str++)
|
||||
gtk_combo_box_append_text (GTK_COMBO_BOX (combo_box), *str);
|
||||
gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo_box), *str);
|
||||
|
||||
gtk_combo_box_set_active (GTK_COMBO_BOX (combo_box), 0);
|
||||
|
||||
|
||||
@@ -58,18 +58,10 @@ stock_item_info_copy (StockItemInfo *src)
|
||||
return info;
|
||||
}
|
||||
|
||||
static GType
|
||||
stock_item_info_get_type (void)
|
||||
{
|
||||
static GType our_type = 0;
|
||||
|
||||
if (our_type == 0)
|
||||
our_type = g_boxed_type_register_static ("StockItemInfo",
|
||||
(GBoxedCopyFunc) stock_item_info_copy,
|
||||
(GBoxedFreeFunc) stock_item_info_free);
|
||||
|
||||
return our_type;
|
||||
}
|
||||
static
|
||||
G_DEFINE_BOXED_TYPE (StockItemInfo, stock_item_info,
|
||||
stock_item_info_copy,
|
||||
stock_item_info_free)
|
||||
|
||||
typedef struct _StockItemDisplay StockItemDisplay;
|
||||
struct _StockItemDisplay
|
||||
|
||||
@@ -14,17 +14,9 @@
|
||||
|
||||
static void easter_egg_callback (GtkWidget *button, gpointer data);
|
||||
|
||||
#define gray50_width 2
|
||||
#define gray50_height 2
|
||||
static char gray50_bits[] = {
|
||||
0x02, 0x01
|
||||
};
|
||||
|
||||
static void
|
||||
create_tags (GtkTextBuffer *buffer)
|
||||
{
|
||||
GdkBitmap *stipple;
|
||||
|
||||
/* Create a bunch of tags. Note that it's also possible to
|
||||
* create tags with gtk_text_tag_new() then add them to the
|
||||
* tag table for the buffer, gtk_text_buffer_create_tag() is
|
||||
@@ -74,18 +66,6 @@ create_tags (GtkTextBuffer *buffer)
|
||||
gtk_text_buffer_create_tag (buffer, "red_background",
|
||||
"background", "red", NULL);
|
||||
|
||||
stipple = gdk_bitmap_create_from_data (NULL,
|
||||
gray50_bits, gray50_width,
|
||||
gray50_height);
|
||||
|
||||
gtk_text_buffer_create_tag (buffer, "background_stipple",
|
||||
"background_stipple", stipple, NULL);
|
||||
|
||||
gtk_text_buffer_create_tag (buffer, "foreground_stipple",
|
||||
"foreground_stipple", stipple, NULL);
|
||||
|
||||
g_object_unref (stipple);
|
||||
|
||||
gtk_text_buffer_create_tag (buffer, "big_gap_before_line",
|
||||
"pixels_above_lines", 30, NULL);
|
||||
|
||||
@@ -227,17 +207,9 @@ insert_text (GtkTextBuffer *buffer)
|
||||
"red_background", NULL);
|
||||
gtk_text_buffer_insert (buffer, &iter, " or even ", -1);
|
||||
gtk_text_buffer_insert_with_tags_by_name (buffer, &iter,
|
||||
"a stippled red background", -1,
|
||||
"red_background",
|
||||
"background_stipple",
|
||||
NULL);
|
||||
|
||||
gtk_text_buffer_insert (buffer, &iter, " or ", -1);
|
||||
gtk_text_buffer_insert_with_tags_by_name (buffer, &iter,
|
||||
"a stippled blue foreground on solid red background", -1,
|
||||
"a blue foreground on red background", -1,
|
||||
"blue_foreground",
|
||||
"red_background",
|
||||
"foreground_stipple",
|
||||
NULL);
|
||||
gtk_text_buffer_insert (buffer, &iter, " (select that to read it) can be used.\n\n", -1);
|
||||
|
||||
@@ -399,11 +371,11 @@ attach_widgets (GtkTextView *text_view)
|
||||
}
|
||||
else if (i == 1)
|
||||
{
|
||||
widget = gtk_combo_box_new_text ();
|
||||
widget = gtk_combo_box_text_new ();
|
||||
|
||||
gtk_combo_box_append_text (GTK_COMBO_BOX (widget), "Option 1");
|
||||
gtk_combo_box_append_text (GTK_COMBO_BOX (widget), "Option 2");
|
||||
gtk_combo_box_append_text (GTK_COMBO_BOX (widget), "Option 3");
|
||||
gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (widget), "Option 1");
|
||||
gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (widget), "Option 2");
|
||||
gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (widget), "Option 3");
|
||||
}
|
||||
else if (i == 2)
|
||||
{
|
||||
|
||||
@@ -81,19 +81,13 @@ canvas_item_draw (const CanvasItem *item,
|
||||
}
|
||||
|
||||
static gboolean
|
||||
canvas_expose_event (GtkWidget *widget,
|
||||
GdkEventExpose *event)
|
||||
canvas_draw (GtkWidget *widget,
|
||||
cairo_t *cr)
|
||||
{
|
||||
cairo_t *cr;
|
||||
GList *iter;
|
||||
|
||||
cr = gdk_cairo_create (widget->window);
|
||||
gdk_cairo_region (cr, event->region);
|
||||
cairo_clip (cr);
|
||||
|
||||
cairo_set_source_rgb (cr, 1, 1, 1);
|
||||
cairo_rectangle (cr, 0, 0, widget->allocation.width, widget->allocation.height);
|
||||
cairo_fill (cr);
|
||||
cairo_paint (cr);
|
||||
|
||||
for (iter = canvas_items; iter; iter = iter->next)
|
||||
canvas_item_draw (iter->data, cr, FALSE);
|
||||
@@ -101,8 +95,6 @@ canvas_expose_event (GtkWidget *widget,
|
||||
if (drop_item)
|
||||
canvas_item_draw (drop_item, cr, TRUE);
|
||||
|
||||
cairo_destroy (cr);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@@ -173,6 +165,7 @@ palette_drag_data_received (GtkWidget *widget,
|
||||
guint time,
|
||||
gpointer data)
|
||||
{
|
||||
GtkAllocation allocation;
|
||||
GtkToolItemGroup *drop_group = NULL;
|
||||
GtkWidget *drag_palette = gtk_drag_get_source_widget (context);
|
||||
GtkWidget *drag_item = NULL;
|
||||
@@ -193,10 +186,13 @@ palette_drag_data_received (GtkWidget *widget,
|
||||
GTK_TOOL_ITEM_GROUP (drag_item),
|
||||
drop_group);
|
||||
else if (GTK_IS_TOOL_ITEM (drag_item) && drop_group)
|
||||
palette_drop_item (GTK_TOOL_ITEM (drag_item),
|
||||
drop_group,
|
||||
x - GTK_WIDGET (drop_group)->allocation.x,
|
||||
y - GTK_WIDGET (drop_group)->allocation.y);
|
||||
{
|
||||
gtk_widget_get_allocation (GTK_WIDGET (drop_group), &allocation);
|
||||
palette_drop_item (GTK_TOOL_ITEM (drag_item),
|
||||
drop_group,
|
||||
x - allocation.x,
|
||||
y - allocation.y);
|
||||
}
|
||||
}
|
||||
|
||||
/********************************/
|
||||
@@ -372,11 +368,13 @@ on_combo_orientation_changed (GtkComboBox *combo_box,
|
||||
gpointer user_data)
|
||||
{
|
||||
GtkToolPalette *palette = GTK_TOOL_PALETTE (user_data);
|
||||
GtkScrolledWindow *sw = GTK_SCROLLED_WINDOW (GTK_WIDGET (palette)->parent);
|
||||
GtkScrolledWindow *sw;
|
||||
GtkTreeModel *model = gtk_combo_box_get_model (combo_box);
|
||||
GtkTreeIter iter;
|
||||
gint val = 0;
|
||||
|
||||
sw = GTK_SCROLLED_WINDOW (gtk_widget_get_parent (GTK_WIDGET (palette)));
|
||||
|
||||
if (!gtk_combo_box_get_active_iter (combo_box, &iter))
|
||||
return;
|
||||
|
||||
@@ -563,7 +561,7 @@ do_toolpalette (GtkWidget *do_widget)
|
||||
gtk_widget_set_app_paintable (contents, TRUE);
|
||||
|
||||
g_object_connect (contents,
|
||||
"signal::expose-event", canvas_expose_event, NULL,
|
||||
"signal::draw", canvas_draw, NULL,
|
||||
"signal::drag-data-received", passive_canvas_drag_data_received, NULL,
|
||||
NULL);
|
||||
|
||||
@@ -591,7 +589,7 @@ do_toolpalette (GtkWidget *do_widget)
|
||||
gtk_widget_set_app_paintable (contents, TRUE);
|
||||
|
||||
g_object_connect (contents,
|
||||
"signal::expose-event", canvas_expose_event, NULL,
|
||||
"signal::draw", canvas_draw, NULL,
|
||||
"signal::drag-motion", interactive_canvas_drag_motion, NULL,
|
||||
"signal::drag-data-received", interactive_canvas_drag_data_received, NULL,
|
||||
"signal::drag-leave", interactive_canvas_drag_leave, NULL,
|
||||
|
||||
@@ -86,23 +86,11 @@ load_pixbufs (void)
|
||||
}
|
||||
|
||||
/* Expose callback for the drawing area */
|
||||
static gint
|
||||
expose_cb (GtkWidget *widget, GdkEventExpose *event, gpointer data)
|
||||
static gboolean
|
||||
draw_cb (GtkWidget *widget, cairo_t *cr, gpointer data)
|
||||
{
|
||||
guchar *pixels;
|
||||
int rowstride;
|
||||
|
||||
rowstride = gdk_pixbuf_get_rowstride (frame);
|
||||
|
||||
pixels = gdk_pixbuf_get_pixels (frame) + rowstride * event->area.y + event->area.x * 3;
|
||||
|
||||
gdk_draw_rgb_image_dithalign (widget->window,
|
||||
widget->style->black_gc,
|
||||
event->area.x, event->area.y,
|
||||
event->area.width, event->area.height,
|
||||
GDK_RGB_DITHER_NORMAL,
|
||||
pixels, rowstride,
|
||||
event->area.x, event->area.y);
|
||||
gdk_cairo_set_source_pixbuf (cr, frame, 0, 0);
|
||||
cairo_paint (cr);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
@@ -185,7 +173,7 @@ static guint timeout_id;
|
||||
|
||||
/* Destroy handler for the window */
|
||||
static void
|
||||
destroy_cb (GtkObject *object, gpointer data)
|
||||
destroy_cb (GObject *object, gpointer data)
|
||||
{
|
||||
g_source_remove (timeout_id);
|
||||
timeout_id = 0;
|
||||
@@ -220,8 +208,8 @@ main (int argc, char **argv)
|
||||
|
||||
da = gtk_drawing_area_new ();
|
||||
|
||||
g_signal_connect (da, "expose_event",
|
||||
G_CALLBACK (expose_cb), NULL);
|
||||
g_signal_connect (da, "draw",
|
||||
G_CALLBACK (draw_cb), NULL);
|
||||
|
||||
gtk_container_add (GTK_CONTAINER (window), da);
|
||||
|
||||
|
||||
@@ -369,16 +369,16 @@ main (int argc, char **argv)
|
||||
gtk_label_new ("Source"));
|
||||
|
||||
tag = gtk_text_buffer_create_tag (info_buffer, "title");
|
||||
gtk_object_set (GTK_OBJECT (tag),
|
||||
"font", "Sans 18",
|
||||
NULL);
|
||||
g_object_set (tag,
|
||||
"font", "Sans 18",
|
||||
NULL);
|
||||
|
||||
tag = gtk_text_buffer_create_tag (info_buffer, "source");
|
||||
gtk_object_set (GTK_OBJECT (tag),
|
||||
"font", "Courier 10",
|
||||
"pixels_above_lines", 0,
|
||||
"pixels_below_lines", 0,
|
||||
NULL);
|
||||
g_object_set (tag,
|
||||
"font", "Courier 10",
|
||||
"pixels_above_lines", 0,
|
||||
"pixels_below_lines", 0,
|
||||
NULL);
|
||||
|
||||
gtk_window_set_default_size (GTK_WINDOW (window), 600, 400);
|
||||
gtk_widget_show_all (window);
|
||||
|
||||
@@ -111,11 +111,9 @@ main (int argc, char **argv)
|
||||
|
||||
gtk_init (&argc, &argv);
|
||||
|
||||
gtk_widget_set_default_colormap (gdk_rgb_get_colormap ());
|
||||
|
||||
root = gdk_get_default_root_window ();
|
||||
pixbuf = gdk_pixbuf_get_from_drawable (NULL, root, NULL,
|
||||
0, 0, 0, 0, 150, 160);
|
||||
pixbuf = gdk_pixbuf_get_from_window (root,
|
||||
0, 0, 150, 160);
|
||||
|
||||
/* PASS */
|
||||
g_debug ("try to save PNG with a profile");
|
||||
|
||||
@@ -1,115 +0,0 @@
|
||||
#include "config.h"
|
||||
#include <gtk/gtk.h>
|
||||
|
||||
int
|
||||
close_app (GtkWidget *widget, gpointer data)
|
||||
{
|
||||
gtk_main_quit ();
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
int
|
||||
expose_cb (GtkWidget *drawing_area, GdkEventExpose *evt, gpointer data)
|
||||
{
|
||||
GdkPixbuf *pixbuf;
|
||||
|
||||
pixbuf = (GdkPixbuf *) g_object_get_data (G_OBJECT (drawing_area), "pixbuf");
|
||||
if (gdk_pixbuf_get_has_alpha (pixbuf))
|
||||
{
|
||||
gdk_draw_rgb_32_image (drawing_area->window,
|
||||
drawing_area->style->black_gc,
|
||||
evt->area.x, evt->area.y,
|
||||
evt->area.width,
|
||||
evt->area.height,
|
||||
GDK_RGB_DITHER_MAX,
|
||||
gdk_pixbuf_get_pixels (pixbuf) +
|
||||
(evt->area.y * gdk_pixbuf_get_rowstride (pixbuf)) +
|
||||
(evt->area.x * gdk_pixbuf_get_n_channels (pixbuf)),
|
||||
gdk_pixbuf_get_rowstride (pixbuf));
|
||||
}
|
||||
else
|
||||
{
|
||||
gdk_draw_rgb_image (drawing_area->window,
|
||||
drawing_area->style->black_gc,
|
||||
evt->area.x, evt->area.y,
|
||||
evt->area.width,
|
||||
evt->area.height,
|
||||
GDK_RGB_DITHER_NORMAL,
|
||||
gdk_pixbuf_get_pixels (pixbuf) +
|
||||
(evt->area.y * gdk_pixbuf_get_rowstride (pixbuf)) +
|
||||
(evt->area.x * gdk_pixbuf_get_n_channels (pixbuf)),
|
||||
gdk_pixbuf_get_rowstride (pixbuf));
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
int
|
||||
configure_cb (GtkWidget *drawing_area, GdkEventConfigure *evt, gpointer data)
|
||||
{
|
||||
GdkPixbuf *pixbuf;
|
||||
|
||||
pixbuf = (GdkPixbuf *) g_object_get_data (G_OBJECT (drawing_area), "pixbuf");
|
||||
|
||||
g_print ("X:%d Y:%d\n", evt->width, evt->height);
|
||||
if (evt->width != gdk_pixbuf_get_width (pixbuf) || evt->height != gdk_pixbuf_get_height (pixbuf))
|
||||
{
|
||||
GdkWindow *root;
|
||||
GdkPixbuf *new_pixbuf;
|
||||
|
||||
root = gdk_get_default_root_window ();
|
||||
new_pixbuf = gdk_pixbuf_get_from_drawable (NULL, root, NULL,
|
||||
0, 0, 0, 0, evt->width, evt->height);
|
||||
g_object_set_data (G_OBJECT (drawing_area), "pixbuf", new_pixbuf);
|
||||
g_object_unref (pixbuf);
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
extern void pixbuf_init (void);
|
||||
|
||||
int
|
||||
main (int argc, char **argv)
|
||||
{
|
||||
GdkWindow *root;
|
||||
GtkWidget *window;
|
||||
GtkWidget *vbox;
|
||||
GtkWidget *drawing_area;
|
||||
GdkPixbuf *pixbuf;
|
||||
|
||||
pixbuf_init ();
|
||||
|
||||
gtk_init (&argc, &argv);
|
||||
gdk_rgb_set_verbose (TRUE);
|
||||
|
||||
gtk_widget_set_default_colormap (gdk_rgb_get_colormap ());
|
||||
|
||||
root = gdk_get_default_root_window ();
|
||||
pixbuf = gdk_pixbuf_get_from_drawable (NULL, root, NULL,
|
||||
0, 0, 0, 0, 150, 160);
|
||||
|
||||
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
|
||||
g_signal_connect (window, "delete_event",
|
||||
G_CALLBACK (close_app), NULL);
|
||||
g_signal_connect (window, "destroy",
|
||||
G_CALLBACK (close_app), NULL);
|
||||
|
||||
vbox = gtk_vbox_new (FALSE, 0);
|
||||
gtk_container_add (GTK_CONTAINER (window), vbox);
|
||||
|
||||
drawing_area = gtk_drawing_area_new ();
|
||||
gtk_widget_set_size_request (GTK_WIDGET (drawing_area),
|
||||
gdk_pixbuf_get_width (pixbuf),
|
||||
gdk_pixbuf_get_height (pixbuf));
|
||||
g_signal_connect (drawing_area, "expose_event",
|
||||
G_CALLBACK (expose_cb), NULL);
|
||||
|
||||
g_signal_connect (drawing_area, "configure_event",
|
||||
G_CALLBACK (configure_cb), NULL);
|
||||
g_object_set_data (G_OBJECT (drawing_area), "pixbuf", pixbuf);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), drawing_area, TRUE, TRUE, 0);
|
||||
|
||||
gtk_widget_show_all (window);
|
||||
gtk_main ();
|
||||
return 0;
|
||||
}
|
||||
@@ -307,36 +307,17 @@ close_app (GtkWidget *widget, gpointer data)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static int
|
||||
expose_cb (GtkWidget *drawing_area, GdkEventExpose *evt, gpointer data)
|
||||
static gboolean
|
||||
draw_cb (GtkWidget *drawing_area, cairo_t *cr, gpointer data)
|
||||
{
|
||||
GdkPixbuf *pixbuf;
|
||||
|
||||
pixbuf = (GdkPixbuf *) g_object_get_data (G_OBJECT (drawing_area),
|
||||
"pixbuf");
|
||||
if (gdk_pixbuf_get_has_alpha (pixbuf)) {
|
||||
gdk_draw_rgb_32_image (drawing_area->window,
|
||||
drawing_area->style->black_gc,
|
||||
evt->area.x, evt->area.y,
|
||||
evt->area.width,
|
||||
evt->area.height,
|
||||
GDK_RGB_DITHER_MAX,
|
||||
gdk_pixbuf_get_pixels (pixbuf) +
|
||||
(evt->area.y * gdk_pixbuf_get_rowstride (pixbuf)) +
|
||||
(evt->area.x * gdk_pixbuf_get_n_channels (pixbuf)),
|
||||
gdk_pixbuf_get_rowstride (pixbuf));
|
||||
} else {
|
||||
gdk_draw_rgb_image (drawing_area->window,
|
||||
drawing_area->style->black_gc,
|
||||
evt->area.x, evt->area.y,
|
||||
evt->area.width,
|
||||
evt->area.height,
|
||||
GDK_RGB_DITHER_NORMAL,
|
||||
gdk_pixbuf_get_pixels (pixbuf) +
|
||||
(evt->area.y * gdk_pixbuf_get_rowstride (pixbuf)) +
|
||||
(evt->area.x * gdk_pixbuf_get_n_channels (pixbuf)),
|
||||
gdk_pixbuf_get_rowstride (pixbuf));
|
||||
}
|
||||
|
||||
gdk_cairo_set_source_pixbuf (cr, pixbuf, 0, 0);
|
||||
cairo_paint (cr);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
@@ -354,8 +335,8 @@ configure_cb (GtkWidget *drawing_area, GdkEventConfigure *evt, gpointer data)
|
||||
GdkPixbuf *new_pixbuf;
|
||||
|
||||
root = gdk_get_default_root_window ();
|
||||
new_pixbuf = gdk_pixbuf_get_from_drawable (NULL, root, NULL,
|
||||
0, 0, 0, 0, evt->width, evt->height);
|
||||
new_pixbuf = gdk_pixbuf_get_from_window (root,
|
||||
0, 0, evt->width, evt->height);
|
||||
g_object_set_data_full (G_OBJECT (drawing_area), "pixbuf", new_pixbuf,
|
||||
(GDestroyNotify) g_object_unref);
|
||||
}
|
||||
@@ -374,11 +355,9 @@ main (int argc, char **argv)
|
||||
|
||||
gtk_init (&argc, &argv);
|
||||
|
||||
gtk_widget_set_default_colormap (gdk_rgb_get_colormap ());
|
||||
|
||||
root = gdk_get_default_root_window ();
|
||||
pixbuf = gdk_pixbuf_get_from_drawable (NULL, root, NULL,
|
||||
0, 0, 0, 0, 150, 160);
|
||||
pixbuf = gdk_pixbuf_get_from_window (root,
|
||||
0, 0, 150, 160);
|
||||
|
||||
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
|
||||
g_signal_connect (window, "delete_event",
|
||||
@@ -393,8 +372,8 @@ main (int argc, char **argv)
|
||||
gtk_widget_set_size_request (GTK_WIDGET (drawing_area),
|
||||
gdk_pixbuf_get_width (pixbuf),
|
||||
gdk_pixbuf_get_height (pixbuf));
|
||||
g_signal_connect (drawing_area, "expose_event",
|
||||
G_CALLBACK (expose_cb), NULL);
|
||||
g_signal_connect (drawing_area, "draw",
|
||||
G_CALLBACK (draw_cb), NULL);
|
||||
|
||||
g_signal_connect (drawing_area, "configure_event",
|
||||
G_CALLBACK (configure_cb), NULL);
|
||||
|
||||
@@ -32,27 +32,27 @@ overall_changed_cb (GtkAdjustment *adjustment, gpointer data)
|
||||
}
|
||||
|
||||
gboolean
|
||||
expose_cb (GtkWidget *widget, GdkEventExpose *event, gpointer data)
|
||||
draw_cb (GtkWidget *widget, cairo_t *cr, gpointer data)
|
||||
{
|
||||
GdkPixbuf *dest;
|
||||
int width, height;
|
||||
|
||||
gdk_window_set_back_pixmap (widget->window, NULL, FALSE);
|
||||
|
||||
dest = gdk_pixbuf_new (GDK_COLORSPACE_RGB, FALSE, 8, event->area.width, event->area.height);
|
||||
width = gtk_widget_get_allocated_width (widget);
|
||||
height = gtk_widget_get_allocated_height (widget);
|
||||
|
||||
dest = gdk_pixbuf_new (GDK_COLORSPACE_RGB, FALSE, 8, width, height);
|
||||
|
||||
gdk_pixbuf_composite_color (pixbuf, dest,
|
||||
0, 0, event->area.width, event->area.height,
|
||||
-event->area.x, -event->area.y,
|
||||
(double) widget->allocation.width / gdk_pixbuf_get_width (pixbuf),
|
||||
(double) widget->allocation.height / gdk_pixbuf_get_height (pixbuf),
|
||||
0, 0, width, height,
|
||||
0, 0,
|
||||
(double) width / gdk_pixbuf_get_width (pixbuf),
|
||||
(double) height / gdk_pixbuf_get_height (pixbuf),
|
||||
interp_type, overall_alpha,
|
||||
event->area.x, event->area.y, 16, 0xaaaaaa, 0x555555);
|
||||
0, 0, 16, 0xaaaaaa, 0x555555);
|
||||
|
||||
gdk_cairo_set_source_pixbuf (cr, dest, 0, 0);
|
||||
cairo_paint (cr);
|
||||
|
||||
gdk_draw_pixbuf (widget->window, widget->style->fg_gc[GTK_STATE_NORMAL], dest,
|
||||
0, 0, event->area.x, event->area.y,
|
||||
event->area.width, event->area.height,
|
||||
GDK_RGB_DITHER_NORMAL, event->area.x, event->area.y);
|
||||
|
||||
g_object_unref (dest);
|
||||
|
||||
return TRUE;
|
||||
@@ -101,12 +101,12 @@ main(int argc, char **argv)
|
||||
vbox = gtk_vbox_new (FALSE, 0);
|
||||
gtk_container_add (GTK_CONTAINER (window), vbox);
|
||||
|
||||
combo_box = gtk_combo_box_new_text ();
|
||||
combo_box = gtk_combo_box_text_new ();
|
||||
|
||||
gtk_combo_box_append_text (GTK_COMBO_BOX (combo_box), "NEAREST");
|
||||
gtk_combo_box_append_text (GTK_COMBO_BOX (combo_box), "BILINEAR");
|
||||
gtk_combo_box_append_text (GTK_COMBO_BOX (combo_box), "TILES");
|
||||
gtk_combo_box_append_text (GTK_COMBO_BOX (combo_box), "HYPER");
|
||||
gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo_box), "NEAREST");
|
||||
gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo_box), "BILINEAR");
|
||||
gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo_box), "TILES");
|
||||
gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo_box), "HYPER");
|
||||
|
||||
gtk_combo_box_set_active (GTK_COMBO_BOX (combo_box), 1);
|
||||
|
||||
@@ -123,7 +123,7 @@ main(int argc, char **argv)
|
||||
label = gtk_label_new ("Overall Alpha:");
|
||||
gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
|
||||
|
||||
adjustment = GTK_ADJUSTMENT (gtk_adjustment_new (overall_alpha, 0, 255, 1, 10, 0));
|
||||
adjustment = gtk_adjustment_new (overall_alpha, 0, 255, 1, 10, 0);
|
||||
g_signal_connect (adjustment, "value_changed",
|
||||
G_CALLBACK (overall_changed_cb), NULL);
|
||||
|
||||
@@ -135,13 +135,14 @@ main(int argc, char **argv)
|
||||
gtk_widget_show_all (vbox);
|
||||
|
||||
/* Compute the size without the drawing area, so we know how big to make the default size */
|
||||
gtk_widget_size_request (vbox, &scratch_requisition);
|
||||
gtk_widget_get_preferred_size ( (vbox),
|
||||
&scratch_requisition, NULL);
|
||||
|
||||
darea = gtk_drawing_area_new ();
|
||||
gtk_box_pack_start (GTK_BOX (vbox), darea, TRUE, TRUE, 0);
|
||||
|
||||
g_signal_connect (darea, "expose_event",
|
||||
G_CALLBACK (expose_cb), NULL);
|
||||
g_signal_connect (darea, "draw",
|
||||
G_CALLBACK (draw_cb), NULL);
|
||||
|
||||
gtk_window_set_default_size (GTK_WINDOW (window),
|
||||
gdk_pixbuf_get_width (pixbuf),
|
||||
|
||||
@@ -1,640 +0,0 @@
|
||||
/* testpixbuf -- test program for gdk-pixbuf code
|
||||
* Copyright (C) 1999 Mark Crichton, Larry Ewing
|
||||
*
|
||||
* 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, write to the
|
||||
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
* Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#include "config.h"
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
#include <string.h>
|
||||
#include <gtk/gtk.h>
|
||||
#include <gdk-pixbuf/gdk-pixbuf.h>
|
||||
|
||||
#include "test-inline-pixbufs.h"
|
||||
|
||||
typedef struct {
|
||||
FILE *imagefile;
|
||||
GdkPixbufLoader *loader;
|
||||
GtkWidget **rgbwin;
|
||||
guchar *buf;
|
||||
guint timeout;
|
||||
guint readlen;
|
||||
} ProgressFileStatus;
|
||||
|
||||
|
||||
#define DEFAULT_WIDTH 24
|
||||
#define DEFAULT_HEIGHT 24
|
||||
|
||||
static const unsigned char default_image[] = {
|
||||
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
||||
0xff, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xae, 0xb3, 0xb3, 0xc6, 0xc9, 0xcd, 0xd7, 0xd4, 0xdf,
|
||||
0xec, 0xde, 0xf3, 0xe7, 0xcb, 0xe9, 0xd9, 0xb5, 0xd3, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0x00, 0x00, 0x00, 0xb1, 0xb7, 0xa5,
|
||||
0xb0, 0xb8, 0xad, 0xb3, 0xb9, 0xb6, 0xc1, 0xc6, 0xc8, 0xd5, 0xd3, 0xdc,
|
||||
0xec, 0xde, 0xf3, 0xe5, 0xca, 0xe6, 0xe0, 0xbb, 0xd7, 0xe1, 0xad, 0xc2,
|
||||
0xe3, 0xac, 0xa3, 0x00, 0x00, 0x00, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
||||
0xff, 0x00, 0xff, 0x00, 0x00, 0x00, 0xca, 0xc1, 0xa4, 0xc5, 0xc7, 0xac,
|
||||
0xb7, 0xbe, 0xaf, 0xad, 0xb4, 0xaf, 0xbd, 0xc2, 0xc3, 0xd1, 0xd0, 0xd8,
|
||||
0xec, 0xde, 0xf3, 0xe5, 0xc7, 0xe4, 0xe0, 0xb6, 0xd1, 0xe7, 0xa9, 0xb4,
|
||||
0xed, 0xcd, 0xb6, 0xd6, 0xcf, 0xae, 0x00, 0x00, 0x00, 0xff, 0x00, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
||||
0x00, 0x00, 0x00, 0xdf, 0xa7, 0x9f, 0xdd, 0xbf, 0xaa, 0xcf, 0xc5, 0xa9,
|
||||
0xc1, 0xc4, 0xac, 0xb2, 0xba, 0xaf, 0xb6, 0xbb, 0xbb, 0xcd, 0xce, 0xd4,
|
||||
0xec, 0xde, 0xf3, 0xe4, 0xc4, 0xe1, 0xe0, 0xaf, 0xc7, 0xea, 0xbc, 0xae,
|
||||
0xe1, 0xd6, 0xb6, 0xc7, 0xcc, 0xae, 0xa2, 0xab, 0x9a, 0x00, 0x00, 0x00,
|
||||
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
||||
0x00, 0x00, 0x00, 0xe3, 0xab, 0xc0, 0xe6, 0xa3, 0xa7, 0xdf, 0xba, 0xa8,
|
||||
0xcf, 0xc5, 0xa9, 0xbd, 0xc2, 0xae, 0xad, 0xb4, 0xaf, 0xc6, 0xc9, 0xcd,
|
||||
0xec, 0xde, 0xf3, 0xe2, 0xbf, 0xdc, 0xe7, 0xa9, 0xb4, 0xe7, 0xd6, 0xb8,
|
||||
0xc7, 0xcc, 0xae, 0xac, 0xb6, 0xa6, 0x9d, 0xa8, 0x9f, 0x00, 0x00, 0x00,
|
||||
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0x00, 0x00, 0x00,
|
||||
0xd9, 0xaf, 0xcf, 0xe1, 0xb4, 0xd2, 0xe2, 0xb0, 0xcb, 0xe4, 0xa9, 0xbb,
|
||||
0xe2, 0xb2, 0xa6, 0xcf, 0xc5, 0xa9, 0x6a, 0x6a, 0x6a, 0x0d, 0x0d, 0x0d,
|
||||
0x0d, 0x0d, 0x0d, 0x6a, 0x6a, 0x6a, 0xed, 0xcd, 0xb6, 0xc7, 0xcc, 0xae,
|
||||
0xa6, 0xb1, 0xa3, 0x98, 0xa2, 0x9c, 0x8f, 0x97, 0x96, 0x7e, 0x84, 0x85,
|
||||
0x00, 0x00, 0x00, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0x00, 0x00, 0x00,
|
||||
0xe8, 0xc6, 0xe7, 0xe5, 0xc2, 0xe3, 0xe3, 0xbd, 0xdd, 0xe1, 0xb6, 0xd5,
|
||||
0xe2, 0xb0, 0xcb, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0x00, 0xff, 0x00, 0xff,
|
||||
0xff, 0x00, 0xff, 0x00, 0x00, 0x00, 0x6a, 0x6a, 0x6a, 0x9d, 0xa8, 0x9f,
|
||||
0x8f, 0x97, 0x96, 0x8b, 0x90, 0x92, 0x97, 0x9e, 0xa2, 0xa0, 0xa7, 0xae,
|
||||
0x00, 0x00, 0x00, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0x00, 0x00, 0x00,
|
||||
0xe7, 0xd3, 0xed, 0xe8, 0xd1, 0xed, 0xe8, 0xce, 0xec, 0xe9, 0xcc, 0xeb,
|
||||
0xe8, 0xc6, 0xe7, 0x0d, 0x0d, 0x0d, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0x0d, 0x0d, 0x0d, 0x97, 0x9e, 0xa2,
|
||||
0xa7, 0xae, 0xb7, 0xb2, 0xb6, 0xc5, 0xba, 0xbc, 0xce, 0xbf, 0xbe, 0xd3,
|
||||
0x00, 0x00, 0x00, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0x00, 0x00, 0x00,
|
||||
0xe9, 0xdf, 0xf0, 0xe9, 0xdf, 0xf0, 0xe9, 0xdf, 0xf0, 0xe9, 0xdf, 0xf0,
|
||||
0xe9, 0xdf, 0xf0, 0x0d, 0x0d, 0x0d, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0x0d, 0x0d, 0x0d, 0xe1, 0xd2, 0xf7,
|
||||
0xe1, 0xd2, 0xf7, 0xe1, 0xd2, 0xf7, 0xe1, 0xd2, 0xf7, 0xe1, 0xd2, 0xf7,
|
||||
0x00, 0x00, 0x00, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0x00, 0x00, 0x00,
|
||||
0xca, 0xc7, 0xd2, 0xc5, 0xc4, 0xcd, 0xbf, 0xbf, 0xc7, 0xb8, 0xb9, 0xc0,
|
||||
0xae, 0xaf, 0xb6, 0x6a, 0x6a, 0x6a, 0x00, 0x00, 0x00, 0xff, 0x00, 0xff,
|
||||
0xff, 0x00, 0xff, 0x00, 0x00, 0x00, 0x6a, 0x6a, 0x6a, 0xd5, 0xa8, 0xe1,
|
||||
0xd8, 0xb2, 0xe9, 0xd9, 0xb8, 0xed, 0xdb, 0xbd, 0xf0, 0xdc, 0xbf, 0xf1,
|
||||
0x00, 0x00, 0x00, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0x00, 0x00, 0x00,
|
||||
0xa4, 0xa6, 0xac, 0xa8, 0xaa, 0xaf, 0xa0, 0xa6, 0xa8, 0x98, 0x9e, 0x9c,
|
||||
0xa1, 0xa8, 0x9e, 0xb1, 0xb6, 0xa1, 0x6a, 0x6a, 0x6a, 0x0d, 0x0d, 0x0d,
|
||||
0x0d, 0x0d, 0x0d, 0x6a, 0x6a, 0x6a, 0xc0, 0x8c, 0xad, 0xcc, 0x90, 0xb5,
|
||||
0xd3, 0x94, 0xca, 0xd6, 0xa2, 0xdb, 0xd5, 0xa8, 0xe1, 0xcf, 0xa7, 0xdf,
|
||||
0x00, 0x00, 0x00, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
||||
0x00, 0x00, 0x00, 0x98, 0x9f, 0x9b, 0xa1, 0xa8, 0x9e, 0xac, 0xb3, 0xa0,
|
||||
0xb9, 0xb9, 0xa4, 0xd0, 0xb8, 0xa8, 0xc5, 0xb5, 0xb8, 0xb6, 0xbb, 0xad,
|
||||
0xe3, 0xd7, 0xb5, 0xdd, 0xb4, 0xa9, 0xcb, 0x89, 0xac, 0xc0, 0x8c, 0xad,
|
||||
0xc8, 0x91, 0xb5, 0xd1, 0x8d, 0xb7, 0xd3, 0x94, 0xca, 0x00, 0x00, 0x00,
|
||||
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
||||
0x00, 0x00, 0x00, 0xa1, 0xa7, 0x98, 0xb1, 0xb6, 0xa1, 0xbd, 0xb9, 0xa5,
|
||||
0xd0, 0xb8, 0xa8, 0xca, 0xb5, 0xb7, 0xb8, 0xb1, 0xb1, 0xc2, 0xc8, 0xb2,
|
||||
0xe3, 0xd7, 0xb5, 0xe1, 0xbf, 0xaf, 0xdb, 0x92, 0x9a, 0xbe, 0x82, 0xa6,
|
||||
0xc0, 0x8c, 0xad, 0xc8, 0x91, 0xb4, 0xc7, 0x8b, 0xb0, 0x00, 0x00, 0x00,
|
||||
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
||||
0xff, 0x00, 0xff, 0x00, 0x00, 0x00, 0xbc, 0xb6, 0xa1, 0xd0, 0xb8, 0xa8,
|
||||
0xcd, 0xb6, 0xb7, 0xc0, 0xb4, 0xb5, 0xb1, 0xb1, 0xaa, 0xca, 0xd1, 0xb4,
|
||||
0xe3, 0xd7, 0xb5, 0xe2, 0xc1, 0xb0, 0xdb, 0xa8, 0xa3, 0xd2, 0x8a, 0xa9,
|
||||
0xb7, 0x7e, 0xa2, 0xbd, 0x89, 0xa9, 0x00, 0x00, 0x00, 0xff, 0x00, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0x00, 0x00, 0x00, 0xc9, 0xaf, 0xaf,
|
||||
0xc5, 0xb5, 0xb8, 0xb8, 0xb1, 0xb1, 0xb6, 0xbb, 0xad, 0xd0, 0xd6, 0xb5,
|
||||
0xe3, 0xd7, 0xb5, 0xe2, 0xbf, 0xaf, 0xdd, 0xb4, 0xa9, 0xdb, 0x92, 0x9a,
|
||||
0xc6, 0x84, 0xa7, 0x00, 0x00, 0x00, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xac, 0xaa, 0xa6, 0xbd, 0xc3, 0xb0, 0xd2, 0xd7, 0xb5,
|
||||
0xe3, 0xd7, 0xb5, 0xe2, 0xbf, 0xae, 0xdb, 0xb6, 0xa8, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
||||
0xff, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff
|
||||
};
|
||||
|
||||
|
||||
static const char * book_open_xpm[] = {
|
||||
"16 16 4 1",
|
||||
" c None s None",
|
||||
". c black",
|
||||
"X c #808080",
|
||||
"o c white",
|
||||
" ",
|
||||
" .. ",
|
||||
" .Xo. ... ",
|
||||
" .Xoo. ..oo. ",
|
||||
" .Xooo.Xooo... ",
|
||||
" .Xooo.oooo.X. ",
|
||||
" .Xooo.Xooo.X. ",
|
||||
" .Xooo.oooo.X. ",
|
||||
" .Xooo.Xooo.X. ",
|
||||
" .Xooo.oooo.X. ",
|
||||
" .Xoo.Xoo..X. ",
|
||||
" .Xo.o..ooX. ",
|
||||
" .X..XXXXX. ",
|
||||
" ..X....... ",
|
||||
" .. ",
|
||||
" "};
|
||||
|
||||
static const char * book_closed_xpm[] = {
|
||||
"16 16 6 1",
|
||||
" c None s None",
|
||||
". c black",
|
||||
"X c red",
|
||||
"o c yellow",
|
||||
"O c #808080",
|
||||
"# c white",
|
||||
" ",
|
||||
" .. ",
|
||||
" ..XX. ",
|
||||
" ..XXXXX. ",
|
||||
" ..XXXXXXXX. ",
|
||||
".ooXXXXXXXXX. ",
|
||||
"..ooXXXXXXXXX. ",
|
||||
".X.ooXXXXXXXXX. ",
|
||||
".XX.ooXXXXXX.. ",
|
||||
" .XX.ooXXX..#O ",
|
||||
" .XX.oo..##OO. ",
|
||||
" .XX..##OO.. ",
|
||||
" .X.#OO.. ",
|
||||
" ..O.. ",
|
||||
" .. ",
|
||||
" "};
|
||||
|
||||
static const char * mini_page_xpm[] = {
|
||||
"16 16 4 1",
|
||||
" c None s None",
|
||||
". c black",
|
||||
"X c white",
|
||||
"o c #808080",
|
||||
" ",
|
||||
" ....... ",
|
||||
" .XXXXX.. ",
|
||||
" .XoooX.X. ",
|
||||
" .XXXXX.... ",
|
||||
" .XooooXoo.o ",
|
||||
" .XXXXXXXX.o ",
|
||||
" .XooooooX.o ",
|
||||
" .XXXXXXXX.o ",
|
||||
" .XooooooX.o ",
|
||||
" .XXXXXXXX.o ",
|
||||
" .XooooooX.o ",
|
||||
" .XXXXXXXX.o ",
|
||||
" ..........o ",
|
||||
" oooooooooo ",
|
||||
" "};
|
||||
|
||||
static const char * gtk_mini_xpm[] = {
|
||||
"15 20 17 1",
|
||||
" c None",
|
||||
". c #14121F",
|
||||
"+ c #278828",
|
||||
"@ c #9B3334",
|
||||
"# c #284C72",
|
||||
"$ c #24692A",
|
||||
"% c #69282E",
|
||||
"& c #37C539",
|
||||
"* c #1D2F4D",
|
||||
"= c #6D7076",
|
||||
"- c #7D8482",
|
||||
"; c #E24A49",
|
||||
"> c #515357",
|
||||
", c #9B9C9B",
|
||||
"' c #2FA232",
|
||||
") c #3CE23D",
|
||||
"! c #3B6CCB",
|
||||
" ",
|
||||
" ***> ",
|
||||
" >.*!!!* ",
|
||||
" ***....#*= ",
|
||||
" *!*.!!!**!!# ",
|
||||
" .!!#*!#*!!!!# ",
|
||||
" @%#!.##.*!!$& ",
|
||||
" @;%*!*.#!#')) ",
|
||||
" @;;@%!!*$&)'' ",
|
||||
" @%.%@%$'&)$+' ",
|
||||
" @;...@$'*'*)+ ",
|
||||
" @;%..@$+*.')$ ",
|
||||
" @;%%;;$+..$)# ",
|
||||
" @;%%;@$$$'.$# ",
|
||||
" %;@@;;$$+))&* ",
|
||||
" %;;;@+$&)&* ",
|
||||
" %;;@'))+> ",
|
||||
" %;@'&# ",
|
||||
" >%$$ ",
|
||||
" >= "};
|
||||
|
||||
const gchar ** xpms[] = {
|
||||
book_open_xpm,
|
||||
book_closed_xpm,
|
||||
mini_page_xpm,
|
||||
gtk_mini_xpm,
|
||||
NULL
|
||||
};
|
||||
|
||||
static void
|
||||
quit_func (GtkWidget *widget, gpointer dummy)
|
||||
{
|
||||
gtk_main_quit ();
|
||||
}
|
||||
|
||||
static void
|
||||
expose_func (GtkWidget *drawing_area, GdkEventExpose *event, gpointer data)
|
||||
{
|
||||
GdkPixbuf *pixbuf;
|
||||
|
||||
pixbuf = (GdkPixbuf *)g_object_get_data (G_OBJECT (drawing_area), "pixbuf");
|
||||
|
||||
if (gdk_pixbuf_get_has_alpha (pixbuf)) {
|
||||
GdkPixbuf *dest;
|
||||
|
||||
gdk_window_set_back_pixmap (drawing_area->window, NULL, FALSE);
|
||||
|
||||
dest = gdk_pixbuf_new (GDK_COLORSPACE_RGB, FALSE, 8, event->area.width, event->area.height);
|
||||
|
||||
gdk_pixbuf_composite_color (pixbuf, dest,
|
||||
0, 0, event->area.width, event->area.height,
|
||||
-event->area.x, -event->area.y,
|
||||
(double) drawing_area->allocation.width / gdk_pixbuf_get_width (pixbuf),
|
||||
(double) drawing_area->allocation.height / gdk_pixbuf_get_height (pixbuf),
|
||||
GDK_INTERP_BILINEAR, 255,
|
||||
event->area.x, event->area.y, 16, 0xaaaaaa, 0x555555);
|
||||
|
||||
gdk_draw_pixbuf (drawing_area->window, drawing_area->style->fg_gc[GTK_STATE_NORMAL], dest,
|
||||
0, 0, event->area.x, event->area.y,
|
||||
event->area.width, event->area.height,
|
||||
GDK_RGB_DITHER_NORMAL, event->area.x, event->area.y);
|
||||
|
||||
g_object_unref (dest);
|
||||
} else {
|
||||
gdk_draw_rgb_image (drawing_area->window,
|
||||
drawing_area->style->white_gc,
|
||||
event->area.x, event->area.y,
|
||||
event->area.width,
|
||||
event->area.height,
|
||||
GDK_RGB_DITHER_NORMAL,
|
||||
gdk_pixbuf_get_pixels (pixbuf)
|
||||
+ (event->area.y * gdk_pixbuf_get_rowstride (pixbuf))
|
||||
+ (event->area.x * gdk_pixbuf_get_n_channels (pixbuf)),
|
||||
gdk_pixbuf_get_rowstride (pixbuf));
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
config_func (GtkWidget *drawing_area, GdkEventConfigure *event, gpointer data)
|
||||
{
|
||||
#if 0
|
||||
GdkPixbuf *pixbuf;
|
||||
|
||||
pixbuf = (GdkPixbuf *)g_object_get_data (G_OBJECT (drawing_area), "pixbuf");
|
||||
|
||||
if (((event->width) != gdk_pixbuf_get_width (pixbuf)) ||
|
||||
((event->height) != gdk_pixbuf_get_height (pixbuf)))
|
||||
gdk_pixbuf_scale (pixbuf, event->width, event->height);
|
||||
#endif
|
||||
}
|
||||
|
||||
static GtkWidget*
|
||||
new_testrgb_window (GdkPixbuf *pixbuf, gchar *title)
|
||||
{
|
||||
GtkWidget *window;
|
||||
GtkWidget *vbox;
|
||||
GtkWidget *temp_box;
|
||||
GtkWidget *button;
|
||||
GtkWidget *drawing_area;
|
||||
gint w, h;
|
||||
|
||||
g_return_val_if_fail (pixbuf != NULL, NULL);
|
||||
w = gdk_pixbuf_get_width (pixbuf);
|
||||
h = gdk_pixbuf_get_height (pixbuf);
|
||||
|
||||
window = g_object_new (gtk_window_get_type (),
|
||||
"GtkObject::user_data", NULL,
|
||||
"GtkWindow::type", GTK_WINDOW_TOPLEVEL,
|
||||
"GtkWindow::title", title ? title : "testrgb",
|
||||
"GtkWindow::allow_shrink", TRUE,
|
||||
NULL);
|
||||
g_signal_connect (window, "destroy",
|
||||
G_CALLBACK (quit_func), NULL);
|
||||
|
||||
vbox = gtk_vbox_new (FALSE, 0);
|
||||
|
||||
if (title)
|
||||
gtk_box_pack_start (GTK_BOX (vbox), gtk_label_new (title),
|
||||
TRUE, TRUE, 0);
|
||||
|
||||
drawing_area = gtk_drawing_area_new ();
|
||||
|
||||
temp_box = gtk_hbox_new (FALSE, 0);
|
||||
gtk_widget_set_size_request (GTK_WIDGET (drawing_area), w, h);
|
||||
gtk_box_pack_start (GTK_BOX (temp_box), drawing_area, FALSE, FALSE, 0);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), temp_box, FALSE, FALSE, 0);
|
||||
|
||||
|
||||
g_signal_connect (drawing_area, "expose_event",
|
||||
G_CALLBACK (expose_func), NULL);
|
||||
g_signal_connect (drawing_area, "configure_event",
|
||||
G_CALLBACK (config_func), NULL);
|
||||
|
||||
g_object_set_data (G_OBJECT (drawing_area), "pixbuf", pixbuf);
|
||||
|
||||
gtk_widget_show (drawing_area);
|
||||
|
||||
button = gtk_button_new_with_label ("Quit");
|
||||
gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 0);
|
||||
g_signal_connect_swapped (button, "clicked",
|
||||
G_CALLBACK (gtk_widget_destroy), window);
|
||||
|
||||
gtk_widget_show (button);
|
||||
|
||||
gtk_container_add (GTK_CONTAINER (window), vbox);
|
||||
gtk_widget_show_all (vbox);
|
||||
|
||||
gtk_widget_show (window);
|
||||
|
||||
return drawing_area;
|
||||
}
|
||||
|
||||
|
||||
static gint
|
||||
update_timeout (gpointer data)
|
||||
{
|
||||
ProgressFileStatus *status = data;
|
||||
gboolean done;
|
||||
GError *error;
|
||||
|
||||
done = FALSE;
|
||||
error = NULL;
|
||||
|
||||
if (!feof (status->imagefile)) {
|
||||
gint nbytes;
|
||||
|
||||
nbytes = fread (status->buf, 1, status->readlen,
|
||||
status->imagefile);
|
||||
|
||||
|
||||
if (!gdk_pixbuf_loader_write (GDK_PIXBUF_LOADER (status->loader), status->buf, nbytes, &error)) {
|
||||
g_warning ("Error writing to loader: %s",
|
||||
error->message);
|
||||
g_error_free (error);
|
||||
done = TRUE;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
else
|
||||
done = TRUE;
|
||||
|
||||
if (done) {
|
||||
/* ignoring errors, we should not do that. */
|
||||
gdk_pixbuf_loader_close (GDK_PIXBUF_LOADER (status->loader), NULL);
|
||||
gtk_widget_queue_draw (*status->rgbwin);
|
||||
g_object_unref (status->loader);
|
||||
fclose (status->imagefile);
|
||||
g_free (status->buf);
|
||||
}
|
||||
|
||||
return !done;
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
progressive_prepared_callback (GdkPixbufLoader* loader, gpointer data)
|
||||
{
|
||||
GtkWidget** retloc = data;
|
||||
GdkPixbuf* pixbuf;
|
||||
|
||||
pixbuf = gdk_pixbuf_loader_get_pixbuf (loader);
|
||||
|
||||
g_assert (pixbuf != NULL);
|
||||
|
||||
g_object_ref (pixbuf); /* for the RGB window */
|
||||
|
||||
*retloc = new_testrgb_window (pixbuf, "Progressive");
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
progressive_updated_callback (GdkPixbufLoader* loader, guint x, guint y, guint width, guint height, gpointer data)
|
||||
{
|
||||
GtkWidget** window_loc = data;
|
||||
|
||||
if (*window_loc != NULL)
|
||||
gtk_widget_queue_draw_area (*window_loc,
|
||||
x, y, width, height);
|
||||
return;
|
||||
}
|
||||
|
||||
static int readlen = 4096;
|
||||
|
||||
extern void pixbuf_init (void);
|
||||
|
||||
void size_func (GdkPixbufLoader *loader, gint width, gint height, gpointer data)
|
||||
{
|
||||
gdk_pixbuf_loader_set_size (loader, width*2, height*2);
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
main (int argc, char **argv)
|
||||
{
|
||||
int i;
|
||||
int found_valid = FALSE;
|
||||
|
||||
GdkPixbuf *pixbuf;
|
||||
GdkPixbufLoader *pixbuf_loader;
|
||||
|
||||
pixbuf_init ();
|
||||
|
||||
gtk_init (&argc, &argv);
|
||||
|
||||
/* gdk_rgb_set_verbose (TRUE);*/
|
||||
|
||||
gtk_widget_set_default_colormap (gdk_rgb_get_colormap ());
|
||||
|
||||
{
|
||||
char *tbf_readlen = getenv ("TBF_READLEN");
|
||||
if (tbf_readlen) readlen = atoi (tbf_readlen);
|
||||
}
|
||||
|
||||
{
|
||||
char *tbf_bps = getenv ("TBF_KBPS");
|
||||
guint bps;
|
||||
|
||||
if (tbf_bps) {
|
||||
bps = atoi (tbf_bps);
|
||||
g_print ("Simulating %d kBytes/sec\n", bps);
|
||||
readlen = (bps*1024)/10;
|
||||
}
|
||||
}
|
||||
|
||||
i = 1;
|
||||
if (argc == 1) {
|
||||
const gchar*** xpmp;
|
||||
GError *error = NULL;
|
||||
|
||||
pixbuf = gdk_pixbuf_new_from_data (default_image, GDK_COLORSPACE_RGB, FALSE, 8,
|
||||
DEFAULT_WIDTH, DEFAULT_HEIGHT, DEFAULT_WIDTH * 3,
|
||||
NULL, NULL);
|
||||
new_testrgb_window (pixbuf, NULL);
|
||||
|
||||
xpmp = xpms;
|
||||
while (*xpmp) {
|
||||
pixbuf = gdk_pixbuf_new_from_xpm_data (*xpmp);
|
||||
new_testrgb_window (pixbuf, NULL);
|
||||
++xpmp;
|
||||
}
|
||||
|
||||
/* Test loading from inline data. */
|
||||
pixbuf = gdk_pixbuf_new_from_inline (-1, apple_red, FALSE, &error);
|
||||
if (!pixbuf)
|
||||
{
|
||||
fprintf (stderr, "failed to construct \"red apple\" pixbuf: %s\n",
|
||||
error->message);
|
||||
g_error_free (error);
|
||||
}
|
||||
else
|
||||
new_testrgb_window (pixbuf, "Red apple from inlined RLE data");
|
||||
|
||||
pixbuf = gdk_pixbuf_new_from_inline (sizeof (gnome_foot), gnome_foot, TRUE, NULL);
|
||||
new_testrgb_window (pixbuf, "GNOME Foot from inlined RLE data");
|
||||
|
||||
found_valid = TRUE;
|
||||
} else {
|
||||
for (i = 1; i < argc; i++) {
|
||||
GError *error;
|
||||
|
||||
error = NULL;
|
||||
pixbuf = gdk_pixbuf_new_from_file (argv[i], &error);
|
||||
|
||||
if (pixbuf == NULL) {
|
||||
g_warning ("Error loading image: %s",
|
||||
error->message);
|
||||
g_error_free (error);
|
||||
}
|
||||
|
||||
#if 0
|
||||
pixbuf = gdk_pixbuf_rotate (pixbuf, 10.0);
|
||||
#endif
|
||||
|
||||
if (pixbuf) {
|
||||
new_testrgb_window (pixbuf, "File");
|
||||
found_valid = TRUE;
|
||||
}
|
||||
}
|
||||
#if 1
|
||||
{
|
||||
GtkWidget* rgb_window = NULL;
|
||||
ProgressFileStatus status;
|
||||
|
||||
pixbuf_loader = gdk_pixbuf_loader_new ();
|
||||
status.loader = pixbuf_loader;
|
||||
|
||||
status.rgbwin = &rgb_window;
|
||||
|
||||
status.buf = g_malloc (readlen);
|
||||
|
||||
#if 0
|
||||
g_signal_connect (pixbuf_loader, "size_prepared",
|
||||
G_CALLBACK (size_func), NULL);
|
||||
#endif
|
||||
|
||||
g_signal_connect (pixbuf_loader, "area_prepared",
|
||||
G_CALLBACK (progressive_prepared_callback),
|
||||
&rgb_window);
|
||||
g_signal_connect (pixbuf_loader, "area_updated",
|
||||
G_CALLBACK (progressive_updated_callback),
|
||||
&rgb_window);
|
||||
|
||||
status.imagefile = fopen (argv[1], "r");
|
||||
g_assert (status.imagefile != NULL);
|
||||
|
||||
status.readlen = readlen;
|
||||
|
||||
status.timeout = gdk_threads_add_timeout (100, update_timeout, &status);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
if (found_valid)
|
||||
gtk_main ();
|
||||
|
||||
return 0;
|
||||
}
|
||||
635
docs/CODING-STYLE
Normal file
635
docs/CODING-STYLE
Normal file
@@ -0,0 +1,635 @@
|
||||
GTK+ Coding Style
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
This document is intended to be a short description of the preferred
|
||||
coding style to be used for the GTK+ source code. It was strongly
|
||||
inspired by Clutter's CODING_STYLE.
|
||||
|
||||
Coding style is a matter of consistency, readability and maintainance;
|
||||
coding style is also completely arbitrary and a matter of taste. This
|
||||
document will use examples at the very least to provide authoritative
|
||||
and consistent answers to common questions regarding the coding style,
|
||||
and will also try to identify the allowed exceptions.
|
||||
|
||||
The examples will show the preferred coding style; the negative examples
|
||||
will be clearly identified. Please, don't submit code to GTK+ that
|
||||
looks like any of these.
|
||||
|
||||
Part of the rationales for these coding style rules are available either
|
||||
in the kernel CodingStyle document or in Cairo's CODING_STYLE one.
|
||||
|
||||
When in doubt, check the surrounding code and try to imitate it.
|
||||
|
||||
+ Line width
|
||||
|
||||
The maximum line width for source files is 80 characters, whenever possible.
|
||||
Longer lines are usually an indication that you either need a function
|
||||
or a pre-processor macro.
|
||||
|
||||
+ Indentation
|
||||
|
||||
Each new level is indented 2 or more spaces than the previous level:
|
||||
|
||||
if (condition)
|
||||
single_statement ();
|
||||
|
||||
This can only be achieved using space characters. It may not be achieved
|
||||
using tab characters alone, or using a combination of spaces and tabs.
|
||||
|
||||
Do not change the editor's configuration to change the meaning of a
|
||||
tab character (see below); code using tabs to indent will not be accepted
|
||||
into GTK+.
|
||||
|
||||
Even if two spaces for each indentation level allows deeper nesting than
|
||||
8 spaces, GTK+ favours self-documenting function names that can take
|
||||
quite some space. For this reason you should avoid deeply nested code.
|
||||
|
||||
+ Tab characters
|
||||
|
||||
The tab character must always be expanded to spaces. If a literal
|
||||
tab must be used inside the source, the tab must always be interpreted
|
||||
according to its traditional meaning:
|
||||
|
||||
Advance to the next column which is a multiple of 8.
|
||||
[ these two lines should be aligned ]
|
||||
|
||||
+ Braces
|
||||
|
||||
Curly braces should not be used for single statement blocks:
|
||||
|
||||
if (condition)
|
||||
single_statement ();
|
||||
else
|
||||
another_single_statement (arg1);
|
||||
|
||||
In case of multiple statements, curly braces should be put on another
|
||||
indentation level:
|
||||
|
||||
if (condition)
|
||||
{
|
||||
statement_1 ();
|
||||
statement_2 ();
|
||||
statement_3 ();
|
||||
}
|
||||
|
||||
The "no block for single statements" rule has only four exceptions:
|
||||
|
||||
① if the single statement covers multiple lines, e.g. for functions with
|
||||
many arguments, and it is followed by else or else if:
|
||||
|
||||
/* valid */
|
||||
if (condition)
|
||||
{
|
||||
a_single_statement_with_many_arguments (some_lengthy_argument,
|
||||
another_lengthy_argument,
|
||||
and_another_one,
|
||||
plus_one);
|
||||
}
|
||||
else
|
||||
another_single_statement (arg1, arg2);
|
||||
|
||||
② if the condition is composed of many lines:
|
||||
|
||||
/* valid */
|
||||
if (condition1 ||
|
||||
(condition2 && condition3) ||
|
||||
condition4 ||
|
||||
(condition5 && (condition6 || condition7)))
|
||||
{
|
||||
a_single_statement ();
|
||||
}
|
||||
|
||||
③ Nested if's, in which case the block should be placed on the
|
||||
outermost if:
|
||||
|
||||
/* valid */
|
||||
if (condition)
|
||||
{
|
||||
if (another_condition)
|
||||
single_statement ();
|
||||
else
|
||||
another_single_statement ();
|
||||
}
|
||||
|
||||
/* invalid */
|
||||
if (condition)
|
||||
if (another_condition)
|
||||
single_statement ();
|
||||
else if (yet_another_condition)
|
||||
another_single_statement ();
|
||||
|
||||
④ If either side of an if-else statement has braces, both sides
|
||||
should, to match up indentation:
|
||||
|
||||
/* valid */
|
||||
if (condition)
|
||||
{
|
||||
foo ();
|
||||
bar ();
|
||||
}
|
||||
else
|
||||
{
|
||||
baz ();
|
||||
}
|
||||
|
||||
/* invalid */
|
||||
if (condition)
|
||||
{
|
||||
foo ();
|
||||
bar ();
|
||||
}
|
||||
else
|
||||
baz ();
|
||||
|
||||
In general, new blocks should be placed on a new indentation level,
|
||||
like:
|
||||
|
||||
int retval = 0;
|
||||
|
||||
statement_1 ();
|
||||
statement_2 ();
|
||||
|
||||
{
|
||||
int var1 = 42;
|
||||
gboolean res = FALSE;
|
||||
|
||||
res = statement_3 (var1);
|
||||
|
||||
retval = res ? -1 : 1;
|
||||
}
|
||||
|
||||
While curly braces for function definitions should rest on a new line
|
||||
they should not add an indentation level:
|
||||
|
||||
/* valid */
|
||||
static void
|
||||
my_function (int argument)
|
||||
{
|
||||
do_my_things ();
|
||||
}
|
||||
|
||||
/* invalid */
|
||||
static void
|
||||
my_function (int argument) {
|
||||
do_my_things ();
|
||||
}
|
||||
|
||||
/* invalid */
|
||||
static void
|
||||
my_function (int argument)
|
||||
{
|
||||
do_my_things ();
|
||||
}
|
||||
|
||||
Curly braces must not be placed on the same line as a condition:
|
||||
|
||||
/* invalid */
|
||||
if (condition) {
|
||||
statement_1 ();
|
||||
statement_2 ();
|
||||
}
|
||||
+ Conditions
|
||||
|
||||
Do not check boolean values for equality:
|
||||
|
||||
/* invalid */
|
||||
if (condition == TRUE)
|
||||
do_foo ();
|
||||
|
||||
/* valid */
|
||||
if (another_condition)
|
||||
do_bar ();
|
||||
|
||||
Even if C handles NULL equality like a boolean, be explicit:
|
||||
|
||||
/* valid */
|
||||
if (some_pointer == NULL)
|
||||
do_blah ();
|
||||
|
||||
/* invalid */
|
||||
if (some_other_pointer)
|
||||
do_blurp ();
|
||||
|
||||
In case of conditions split over multiple lines, the logical operators should
|
||||
always go at the end of the line:
|
||||
|
||||
/* invalid */
|
||||
if (condition1
|
||||
|| condition2
|
||||
|| condition3)
|
||||
{
|
||||
do_foo ();
|
||||
}
|
||||
|
||||
/* valid */
|
||||
if (condition1 &&
|
||||
condition2 &&
|
||||
(condition3 || (condition4 && condition5)))
|
||||
{
|
||||
do_blah ();
|
||||
}
|
||||
|
||||
+ Functions
|
||||
|
||||
Functions should be declared by placing the returned value on a separate
|
||||
line from the function name:
|
||||
|
||||
void
|
||||
my_function (void)
|
||||
{
|
||||
}
|
||||
|
||||
The arguments list must be broken into a new line for each argument,
|
||||
with the argument names right aligned, taking into account pointers:
|
||||
|
||||
void
|
||||
my_function (some_type_t type,
|
||||
another_type_t *a_pointer,
|
||||
final_type_t another_type)
|
||||
{
|
||||
}
|
||||
|
||||
The alignment also holds when invoking a function without breaking the
|
||||
80 characters limit:
|
||||
|
||||
align_function_arguments (first_argument,
|
||||
second_argument,
|
||||
third_argument);
|
||||
|
||||
To respect the 80 characters limit do not break the function name from
|
||||
the arguments:
|
||||
|
||||
/* invalid */
|
||||
a_very_long_function_name_with_long_parameters
|
||||
(argument_the_first, argument_the_second);
|
||||
|
||||
/* valid */
|
||||
first_a = argument_the_first;
|
||||
second_a = argument_the_second;
|
||||
a_very_long_function_name_with_long_parameters (first_a, second_a);
|
||||
|
||||
+ Whitespace
|
||||
|
||||
Always put a space before a parenthesis but never after:
|
||||
|
||||
/* valid */
|
||||
if (condition)
|
||||
do_my_things ();
|
||||
|
||||
/* valid */
|
||||
switch (condition)
|
||||
{
|
||||
}
|
||||
|
||||
/* invalid */
|
||||
if(condition)
|
||||
do_my_things();
|
||||
|
||||
/* invalid */
|
||||
if ( condition )
|
||||
do_my_things ( );
|
||||
|
||||
A switch() should open a block on a new indentation level, and each case
|
||||
should start on the same indentation level as the curly braces, with the
|
||||
case block on a new indentation level:
|
||||
|
||||
/* valid */
|
||||
switch (condition)
|
||||
{
|
||||
case FOO:
|
||||
do_foo ();
|
||||
break;
|
||||
|
||||
case BAR:
|
||||
do_bar ();
|
||||
break;
|
||||
}
|
||||
|
||||
/* invalid */
|
||||
switch (condition) {
|
||||
case FOO: do_foo (); break;
|
||||
case BAR: do_bar (); break;
|
||||
}
|
||||
|
||||
/* invalid */
|
||||
switch (condition)
|
||||
{
|
||||
case FOO: do_foo ();
|
||||
break;
|
||||
case BAR: do_bar ();
|
||||
break;
|
||||
}
|
||||
|
||||
/* invalid */
|
||||
switch (condition)
|
||||
{
|
||||
case FOO:
|
||||
do_foo ();
|
||||
break;
|
||||
case BAR:
|
||||
do_bar ();
|
||||
break;
|
||||
}
|
||||
|
||||
It is preferable, though not mandatory, to separate the various cases with
|
||||
a newline:
|
||||
|
||||
switch (condition)
|
||||
{
|
||||
case FOO:
|
||||
do_foo ();
|
||||
break;
|
||||
|
||||
case BAR:
|
||||
do_bar ();
|
||||
break;
|
||||
|
||||
default:
|
||||
do_default ();
|
||||
}
|
||||
|
||||
The 'break' statement for the default: case is not mandatory.
|
||||
|
||||
If a case block needs to declare new variables, the same rules as the
|
||||
inner blocks (see above) apply; the break statement should be placed
|
||||
outside of the inner block:
|
||||
|
||||
switch (condition)
|
||||
{
|
||||
case FOO:
|
||||
{
|
||||
int foo;
|
||||
|
||||
foo = do_foo ();
|
||||
}
|
||||
break;
|
||||
|
||||
...
|
||||
}
|
||||
|
||||
When declaring a structure type use newlines to separate logical sections
|
||||
of the structure:
|
||||
|
||||
struct _GtkWrapBoxPrivate
|
||||
{
|
||||
GtkOrientation orientation;
|
||||
GtkWrapAllocationMode mode;
|
||||
|
||||
GtkWrapBoxSpreading horizontal_spreading;
|
||||
GtkWrapBoxSpreading vertical_spreading;
|
||||
|
||||
guint16 vertical_spacing;
|
||||
guint16 horizontal_spacing;
|
||||
|
||||
guint16 minimum_line_children;
|
||||
guint16 natural_line_children;
|
||||
|
||||
GList *children;
|
||||
};
|
||||
|
||||
|
||||
Do not eliminate whitespace and newlines just because something would
|
||||
fit on 80 characters:
|
||||
|
||||
/* invalid */
|
||||
if (condition) foo (); else bar ();
|
||||
|
||||
Do eliminate trailing whitespace on any line, preferably as a separate
|
||||
patch or commit. Never use empty lines at the beginning or at the end of
|
||||
a file.
|
||||
|
||||
Do enable the default git pre-commit hook that detect trailing
|
||||
whitespace for you and help you to avoid corrupting GTK+'s tree with
|
||||
it. Do that as follows:
|
||||
|
||||
chmod a+x .git/hooks/pre-commit
|
||||
|
||||
You might also find the git-stripspace utility helpful which acts as a
|
||||
filter to remove trailing whitespace as well as initial, final, and
|
||||
duplicate blank lines.
|
||||
|
||||
+ Headers
|
||||
|
||||
Headers are special, for GTK+, in that they don't have to obey the
|
||||
80 characters limit. The only major rule for headers is that the function
|
||||
definitions should be vertically aligned in three columns:
|
||||
|
||||
return value function_name (type argument,
|
||||
type argument,
|
||||
type argument);
|
||||
|
||||
The maximum width of each column is given by the longest element in the
|
||||
column:
|
||||
|
||||
void gtk_type_set_property (GtkType *type,
|
||||
const gchar *value,
|
||||
GError **error);
|
||||
G_CONST_RETURN gchar *gtk_type_get_property (GtkType *type);
|
||||
|
||||
It is also possible to align the columns to the next tab:
|
||||
|
||||
void gtk_type_set_prop (GtkType *type,
|
||||
gfloat value);
|
||||
gfloat gtk_type_get_prop (GtkType *type);
|
||||
gint gtk_type_update_foobar (GtkType *type);
|
||||
|
||||
Public headers should never be included directly:
|
||||
|
||||
#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION)
|
||||
#error "Only <gtk/gtk.h> can be included directly."
|
||||
#endif
|
||||
|
||||
All headers should have inclusion guards (for internal usage)
|
||||
and C++ guards:
|
||||
|
||||
#ifndef __GTK_FOO_H__
|
||||
#define __GTK_FOO_H__
|
||||
|
||||
#include <gtk/gtk-bar.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
...
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* __GTK_FOO_H__ */
|
||||
|
||||
+ Includes
|
||||
|
||||
GTK+ source files should never include the global gtk.h header, but
|
||||
instead include the individual headers that are needed. Every file must
|
||||
include config.h first, then its own header, then other GTK+ headers
|
||||
that it needs, then system and third-party headers that it needs.
|
||||
|
||||
/* valid */
|
||||
#include "config.h"
|
||||
|
||||
#include "gtkfoo.h"
|
||||
|
||||
#include "gtkwidget.h"
|
||||
#include "gtkbutton.h"
|
||||
|
||||
...
|
||||
|
||||
#include <string.h>
|
||||
|
||||
|
||||
+ GObject
|
||||
|
||||
GObject classes definition and implementation require some additional
|
||||
coding style notices.
|
||||
|
||||
Typedef declarations should be placed at the beginning of the file:
|
||||
|
||||
typedef struct _GtkFoo GtkFoo;
|
||||
typedef struct _GtkFooClass GtkFooClass;
|
||||
typedef struct _GtkFooPrivate GtkFooPrivate;
|
||||
|
||||
This includes enumeration types:
|
||||
|
||||
typedef enum
|
||||
{
|
||||
GTK_SIZE_REQUEST_WIDTH_FOR_HEIGHT,
|
||||
GTK_SIZE_REQUEST_HEIGHT_FOR_WIDTH
|
||||
} GtkSizeRequestMode;
|
||||
|
||||
And callback types:
|
||||
|
||||
typedef void (* GtkCallback) (GtkWidget *widget,
|
||||
gpointer user_data);
|
||||
|
||||
Instance structures should only contain the parent type and a pointer to a
|
||||
private data structure, and they should be annotated as "private":
|
||||
|
||||
struct _GtkFoo
|
||||
{
|
||||
/*< private >*/
|
||||
GtkWidget parent_instance;
|
||||
|
||||
GtkFooPrivate *priv;
|
||||
};
|
||||
|
||||
All the properties should be stored inside the private data structure, which
|
||||
is defined inside the source file - or, if needed, inside a private header
|
||||
file; the private header filename must end with "private.h" and must not be
|
||||
installed.
|
||||
|
||||
The private data structure should only be accessed internally using the
|
||||
pointer inside the instance structure, and never using the
|
||||
G_TYPE_INSTANCE_GET_PRIVATE() macro or the g_type_instance_get_private()
|
||||
function.
|
||||
|
||||
Always use the G_DEFINE_TYPE(), G_DEFINE_TYPE_WITH_CODE() macros, or
|
||||
their abstract variants G_DEFINE_ABSTRACT_TYPE() and
|
||||
G_DEFINE_ABSTRACT_TYPE_WITH_CODE(), and the similar macros for defining
|
||||
interfaces.
|
||||
|
||||
Interface types should always have the dummy typedef for cast purposes:
|
||||
|
||||
typedef struct _GtkFoo GtkFoo;
|
||||
|
||||
The interface structure should have "Interface" postfixed to the dummy typedef:
|
||||
|
||||
typedef struct _GtkFooInterface GtkFooInterface;
|
||||
|
||||
Interfaces must have the following macros:
|
||||
|
||||
- Macro: - Expands to:
|
||||
• GTK_TYPE_<iface_name> <iface_name>_get_type
|
||||
• GTK_<iface_name> G_TYPE_CHECK_INSTANCE_CAST
|
||||
• GTK_IS_<iface_name> G_TYPE_CHECK_INSTANCE_TYPE
|
||||
• GTK_<iface_name>_GET_IFACE G_TYPE_INSTANCE_GET_INTERFACE
|
||||
|
||||
+ Memory allocation
|
||||
|
||||
When dynamically allocating data on the heap either use g_new() or,
|
||||
if allocating multiple small data structures, g_slice_new().
|
||||
|
||||
Public structure types should always be returned after being zero-ed,
|
||||
either explicitly for each member, or by using g_new0() or g_slice_new0().
|
||||
|
||||
+ Macros
|
||||
|
||||
Try to avoid private macros unless strictly necessary. Remember to #undef
|
||||
them at the end of a block or a series of functions needing them.
|
||||
|
||||
Inline functions are usually preferable to private macros.
|
||||
|
||||
Public macros should not be used unless they evaluate to a constant.
|
||||
|
||||
+ Public API
|
||||
|
||||
Avoid exporting variables as public API, since this is cumbersome on some
|
||||
platforms. It is always preferable to add getters and setters instead.
|
||||
|
||||
All public functions must be listed in the gtk.symbols file.
|
||||
|
||||
+ Private API
|
||||
|
||||
Non-exported functions that are needed in more than one source file
|
||||
should be named "_gtk_...", and declared in a private header file.
|
||||
|
||||
Underscore-prefixed functions are never exported.
|
||||
|
||||
Non-exported functions that are only needed in one source file
|
||||
should be declared static.
|
||||
|
||||
+ Documentation
|
||||
|
||||
All public APIs must have gtk-doc comments. For functions, these should
|
||||
be placed in the source file, directly above the function.
|
||||
|
||||
/* valid */
|
||||
/**
|
||||
* gtk_get_flow:
|
||||
* @widget: a #GtkWidget
|
||||
*
|
||||
* Gets the flow of a widget.
|
||||
*
|
||||
* Note that flows may be laminar or turbulent...
|
||||
*
|
||||
* Returns: (transfer none): the flow of @widget
|
||||
*/
|
||||
GtkFlow *
|
||||
gtk_get_flow (GtkWidget *widget)
|
||||
{
|
||||
|
||||
...
|
||||
|
||||
}
|
||||
|
||||
Doc comments for macros, function types, class structs, etc should be
|
||||
placed next to the definitions, typically in headers.
|
||||
|
||||
Section introductions should be placed in the source file they describe,
|
||||
after the license header:
|
||||
|
||||
/* valid */
|
||||
/**
|
||||
* SECTION:gtksizerequest
|
||||
* @Short_Description: Height-for-width geometry management
|
||||
* @Title: GtkSizeRequest
|
||||
*
|
||||
* The GtkSizeRequest interface is GTK+'s height-for-width (and
|
||||
* width-for-height) geometry management system.
|
||||
* ...
|
||||
*/
|
||||
|
||||
To properly document a new function, macro, function type or struct,
|
||||
it needs to be listed in the gtk3-sections.txt file.
|
||||
|
||||
To properly document a new class, it needs to be given its own section
|
||||
in gtk3-sections.txt, needs to be included in gtk-docs.sgml, and the
|
||||
get_type function needs to listed in gtk3.types.
|
||||
|
||||
+ Old code
|
||||
|
||||
New code that is being added to GTK+ should adhere to the style
|
||||
explained above. Existing GTK+ code does largely follow these
|
||||
conventions, but there are some differences, e.g. occurrences
|
||||
of tabs, etc.
|
||||
|
||||
It is ok to update the style of a code block or function when you
|
||||
are touching it anyway, but sweeping whitespace changes obscure the
|
||||
git history and should be avoided.
|
||||
@@ -1,23 +1,25 @@
|
||||
## Process this file with automake to produce Makefile.in
|
||||
include $(top_srcdir)/Makefile.decl
|
||||
|
||||
SUBDIRS = tutorial faq reference tools
|
||||
SUBDIRS = reference tools
|
||||
|
||||
EXTRA_DIST += \
|
||||
defsformat.txt \
|
||||
CODING-STYLE \
|
||||
developers.txt \
|
||||
dnd_internals.txt \
|
||||
make-todo \
|
||||
refcounting.txt \
|
||||
sizing-test.txt \
|
||||
styles.txt \
|
||||
text_widget.txt \
|
||||
text_widget_internals.txt \
|
||||
tree-column-sizing.txt \
|
||||
widget_geometry.txt \
|
||||
widget_system.txt \
|
||||
focus_tracking.txt \
|
||||
generation.txt \
|
||||
gtkdocs_fix \
|
||||
RELEASE-HOWTO
|
||||
make-todo \
|
||||
refcounting.txt \
|
||||
RELEASE-HOWTO \
|
||||
sizing-test.txt \
|
||||
styles.txt \
|
||||
text_widget_internals.txt \
|
||||
text_widget.txt \
|
||||
tree-column-sizing.png \
|
||||
tree-column-sizing.txt \
|
||||
widget_geometry.txt \
|
||||
widget_system.txt
|
||||
|
||||
-include $(top_srcdir)/git.mk
|
||||
|
||||
@@ -1,338 +0,0 @@
|
||||
|
||||
The overall syntax is:
|
||||
|
||||
(type-of-thing-being-defined name-used-to-refer-to-this-thing
|
||||
(attribute-name attribute-value-depending-on-the-attribute)
|
||||
(attribute-name attribute-value-depending-on-the-attribute)
|
||||
(attribute-name attribute-value-depending-on-the-attribute))
|
||||
|
||||
Some definitions can have a c-declaration field that gives the C code
|
||||
we parsed to arrive at the definition. The c-declaration is a quoted
|
||||
string because it can contain parentheses and such.
|
||||
|
||||
Defined types and their attributes:
|
||||
|
||||
===
|
||||
(module module-name
|
||||
(submodule-of module-name)) ;; submodule is optional
|
||||
|
||||
Ex: (module Gtk)
|
||||
Ex: (module Rgb
|
||||
(submodule-of Gdk))
|
||||
|
||||
modules are later referred to with a list of module names, like
|
||||
(Gdk Rgb) or (Gtk)
|
||||
|
||||
Object and boxed type definitions automatically create a submodule.
|
||||
For example, GtkCList creates the module (module CList (submodule-of
|
||||
(Gtk))) which is referred to as module (Gtk CList).
|
||||
|
||||
===
|
||||
|
||||
(type
|
||||
(alias some-unique-identifier)
|
||||
(in-module module-name) ;; optional, gchar* is not in a module
|
||||
(gtk-type-id gtk-type-system-id) ;; optional, absent if this is not
|
||||
;; in the type system
|
||||
(is-parametric boolean) ;; optional default to #f
|
||||
(in-c-name name-of-symbol-in-C)
|
||||
(out-c-name name-of-symbol-in-C)
|
||||
(inout-c-name name-of-symbol-in-C))
|
||||
|
||||
Ex: (type
|
||||
(alias string)
|
||||
(gtk-type-id GTK_TYPE_STRING)
|
||||
(in-c-name "const gchar*")
|
||||
(out-c-name "gchar**") ;; actually I'm not sure how strings work out/inout
|
||||
(inout-c-name "gchar*"))
|
||||
|
||||
(type
|
||||
(alias list)
|
||||
(gtk-type-id GTK_TYPE_POINTER)
|
||||
(is-parametric #t)
|
||||
(in-c-name "GList*")
|
||||
(out-c-name "GList**")
|
||||
(inout-c-name "GList**"))
|
||||
|
||||
|
||||
;; This one would be implied by the (object) def for GtkWidget I
|
||||
;; think - (type) is only required for types that are not implied
|
||||
;; by other definitions, such as int/boolean/etc.
|
||||
|
||||
(type
|
||||
(alias GtkWidget)
|
||||
(in-module (Gtk))
|
||||
(gtk-type-id GTK_TYPE_WIDGET)
|
||||
(in-c-name "GtkWidget*")
|
||||
(inout-c-name "GtkWidget*")
|
||||
(out-c-name "GtkWidget**"))
|
||||
|
||||
"Type" bindings are automatically assumed for objects, boxed types,
|
||||
etc. as defined below.
|
||||
|
||||
The alias field is used to refer to the type later on.
|
||||
|
||||
Whenever a type alias can be used, it is also possible to use the
|
||||
keyword "native", which implies that the type in question is too
|
||||
C-specific to represent. Then a c-declaration will typically be
|
||||
available for use.
|
||||
|
||||
C types containing [] or () are function pointers or arrays. For
|
||||
arrays that don't specify a size, we just treat them as pointers. For
|
||||
function pointers, we need special (type) syntax/attributes of some
|
||||
kind, but since there basically aren't any of these right now in the
|
||||
libs we care about we can just ignore them. For arrays that specify a
|
||||
size ditto, you would handle them by adding an (array-size) attribute
|
||||
or something or using the "native" keyword and skipping the (type)
|
||||
stuff.
|
||||
|
||||
===
|
||||
(object object-name
|
||||
(in-module module-name-list)
|
||||
(parent object-name optional-module-name-if-different)
|
||||
(abstract boolean-is-abstract-class) ;; omit for default of #f
|
||||
(c-name name-of-the-object-in-C)
|
||||
(field (type-and-name type-alias-of-struct-field name-of-struct-field)
|
||||
(access read-or-write-or-readwrite)))
|
||||
|
||||
|
||||
Ex: (object Widget
|
||||
(in-module (Gtk))
|
||||
(parent Object) ;; could say (parent Object (Gtk))
|
||||
(abstract #t)
|
||||
(c-name GtkWidget)
|
||||
(field (type-and-name GdkWindow* window) (access read)))
|
||||
|
||||
An "object" declaration automatically implies the type definition:
|
||||
|
||||
(type
|
||||
(alias concat-module-elements-and-object-name)
|
||||
(in-c-name pointer-to-c-name)
|
||||
(out-c-name pointer-to-pointer-to-c-name)
|
||||
(inout-c-name pointer-to-c-name))
|
||||
|
||||
Ex:
|
||||
(type (alias GtkWidget)
|
||||
(in-c-name GtkWidget*)
|
||||
(out-c-name GtkWidget**)
|
||||
(inout-c-name GtkWidget*))
|
||||
|
||||
It also implies a module that is the name broken into parts:
|
||||
(module CTree
|
||||
(submodule-of Gtk))
|
||||
|
||||
===
|
||||
|
||||
(function function-name
|
||||
(in-module module-name-list) ;; "static methods" go in their
|
||||
;; object's module
|
||||
(is-constructor-of object-type-alias) ;; optional, marks a constructor
|
||||
(c-name function-name)
|
||||
(return-type return-value-type) ;; defaults to void
|
||||
(caller-owns-return boolean-value) ;; defaults to #f
|
||||
(can-return-null boolean-value) ;; defaults to #t
|
||||
(parameter in-or-out-or-inout
|
||||
(type-and-name parameter-type-alias parameter-name)
|
||||
(type-parameter name-of-contained-type) ;; optional, requires parametric type
|
||||
(c-declaration "c-type-and-name")) ;; c-declaration only required
|
||||
;; if the type alias is "native"
|
||||
(varargs #t) ;; has varargs at the end
|
||||
)
|
||||
|
||||
Ex:
|
||||
(function init
|
||||
(in-module (Gdk Rgb)
|
||||
(c-name gdk_rgb_init)))
|
||||
|
||||
Ex:
|
||||
(function new
|
||||
(in-module (Gdk Rgb Cmap))
|
||||
(is-constructor-of GdkRgbCmap)
|
||||
(c-name gdk_rgb_cmap_new)
|
||||
(return-type GdkRgbCmap)
|
||||
(caller-owns-return #t) ;; perhaps this could be implied by is-constructor-of
|
||||
(parameter in (type-and-name array-of-guint32 colors))
|
||||
(parameter in (type-and-name gint n_colors)))
|
||||
|
||||
Ex:
|
||||
(function config_set_set_handler
|
||||
(in-module (Gnome))
|
||||
(c-name gnome_config_set_set_handler)
|
||||
(parameter in (type-and-name native func)
|
||||
(c-declaration "void (*func)(void*)"))
|
||||
(parameter in (type-and-name gpointer data)))
|
||||
|
||||
===
|
||||
(method method-name
|
||||
(of-object object-name module-name)
|
||||
;; retval/arg attributes as for (function), but with first parameter
|
||||
;; omitted for non-constructors
|
||||
)
|
||||
|
||||
Ex:
|
||||
(method set_text
|
||||
(of-object Label (Gtk))
|
||||
(parameter (type-and-name const-gchar* str)))
|
||||
|
||||
===
|
||||
(object-argument arg-name
|
||||
(of-object object-we-are-an-argument-of optional-objects-module)
|
||||
(type-id argument-type) ;; GTK_TYPE_OBJECT etc.
|
||||
;; flags all default to #f
|
||||
(readable bool-value)
|
||||
(writeable bool-value)
|
||||
(construct-only bool-value))
|
||||
|
||||
Ex:
|
||||
(object-argument label
|
||||
(of-object Label (Gtk))
|
||||
(type GTK_TYPE_STRING)
|
||||
(readable #t)
|
||||
(writeable #t))
|
||||
|
||||
===
|
||||
(signal signal-name
|
||||
(run-action bool-value)
|
||||
(run-first bool-value)
|
||||
(run-last bool-value)
|
||||
(of-object object-we-are-a-signal-of optional-objects-module)
|
||||
;; return value and parameters as for a function, omitting the object
|
||||
;; and user data parameters
|
||||
|
||||
;; what other properties matter for a signal?
|
||||
)
|
||||
|
||||
Ex:
|
||||
(signal select_row
|
||||
(of-object CList (Gtk))
|
||||
(run-first #t)
|
||||
;; return type defaults to void
|
||||
(parameter in (type-and-name gint row))
|
||||
(parameter in (type-and-name gint column))
|
||||
(parameter in (type-and-name GdkEvent* event)))
|
||||
|
||||
===
|
||||
(enum enum-name
|
||||
(in-module modname)
|
||||
(c-name name-in-c)
|
||||
(value (nick value-name-noprefixes-hyphen-lowercase) (c-name value-c-name)))
|
||||
|
||||
Ex:
|
||||
|
||||
(enum DirectionType
|
||||
(in-module Gtk)
|
||||
(c-name GtkDirectionType)
|
||||
(value (nick tab-forward) (c-name GTK_DIR_TAB_FORWARD))
|
||||
(value (nick tab-backward) (c-name GTK_DIR_TAB_BACKWARD))
|
||||
(value (nick up) (c-name GTK_DIR_UP))
|
||||
(value (nick down) (c-name GTK_DIR_DOWN))
|
||||
(value (nick left) (c-name GTK_DIR_LEFT))
|
||||
(value (nick right) (c-name GTK_DIR_RIGHT)))
|
||||
|
||||
(enum Pos
|
||||
(in-module (Gtk CTree))
|
||||
(c-name GtkCTreePos)
|
||||
(value (nick before) (c-name GTK_CTREE_POS_BEFORE))
|
||||
(value (nick as-child) (c-name GTK_CTREE_POS_AS_CHILD))
|
||||
(value (nick after) (c-name GTK_CTREE_POS_AFTER)))
|
||||
|
||||
===
|
||||
(flags) is just like enum, but some bindings may wrap enums and flags differently.
|
||||
|
||||
===
|
||||
|
||||
(boxed boxed-name
|
||||
(in-module modname)
|
||||
(c-name c-name)
|
||||
(ref-func func-to-increase-refcount)
|
||||
(copy-func func-to-copy)
|
||||
(release-func func-to-destroy-or-decrement-refcount)
|
||||
(field (type-and-name type-alias-of-struct-field name-of-struct-field) (access access-rule)))
|
||||
|
||||
It is never OK to use memcpy() to copy a boxed type, or use
|
||||
malloc()/free() to alloc/free one.
|
||||
|
||||
Ex:
|
||||
|
||||
(boxed Pixmap
|
||||
(in-module (Gdk))
|
||||
(c-name GdkPixmap)
|
||||
(ref-func pixmap_ref)
|
||||
(release-func pixmap_unref))
|
||||
|
||||
An "object" declaration automatically implies the type definition:
|
||||
|
||||
(type
|
||||
(alias concat-module-elements-and-boxed-name)
|
||||
(in-c-name pointer-to-c-name)
|
||||
(out-c-name pointer-to-pointer-to-c-name)
|
||||
(inout-c-name pointer-to-c-name))
|
||||
|
||||
Ex:
|
||||
(type (alias GdkPixmap)
|
||||
(in-c-name GdkPixmap*)
|
||||
(out-c-name GdkPixmap**)
|
||||
(inout-c-name GdkPixmap*))
|
||||
|
||||
|
||||
===
|
||||
|
||||
(struct struct-name
|
||||
(in-module modname)
|
||||
(c-name c-name)
|
||||
(field (type-and-name type-alias-of-struct-field name-of-struct-field) (access access-rule)))
|
||||
|
||||
Unlike a boxed type, a struct type can be copied with memcpy() and
|
||||
allocated on the stack or with g_malloc().
|
||||
|
||||
Ex:
|
||||
(struct Rectangle
|
||||
(in-module (Gdk))
|
||||
(c-name GdkRectangle)
|
||||
(field (type-and-name gint16 x) (access readwrite))
|
||||
(field (type-and-name gint16 y) (access readwrite))
|
||||
(field (type-and-name guint16 width) (access readwrite))
|
||||
(field (type-and-name guint16 height) (access readwrite)))
|
||||
|
||||
Implies GdkRectangle type alias:
|
||||
|
||||
(type (alias GdkRectangle)
|
||||
(in-c-name GdkRectangle*)
|
||||
(out-c-name GdkRectangle*) ;; note - not the same as boxed types
|
||||
(inout-c-name GdkRectangle*))
|
||||
|
||||
===
|
||||
|
||||
(user-function name
|
||||
(in-module module)
|
||||
(c-name c-typedef-name)
|
||||
;; return-type and parameters as for (function)
|
||||
)
|
||||
|
||||
Ex:
|
||||
|
||||
(user-function PrintFunc
|
||||
(in-module (Gtk))
|
||||
(parameter in (type-and-name gpointer func_data))
|
||||
(parameter in (type-and-name gchar* str)))
|
||||
|
||||
===
|
||||
|
||||
(typedef new-name
|
||||
(in-module module)
|
||||
(c-name c-full-name)
|
||||
(orig-type alias-of-orig-type))
|
||||
|
||||
Ex:
|
||||
|
||||
(typedef Type
|
||||
(in-module (Gtk))
|
||||
(c-name GtkType)
|
||||
(orig-type guint))
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,44 +0,0 @@
|
||||
include $(top_srcdir)/Makefile.decl
|
||||
|
||||
EXTRA_DIST += \
|
||||
gtk-faq.sgml
|
||||
|
||||
if HAVE_DOCBOOK
|
||||
html:
|
||||
if test -w $(srcdir); then \
|
||||
(cd $(srcdir); \
|
||||
db2html gtk-faq.sgml; \
|
||||
test -d html && rm -r html; \
|
||||
mv gtk-faq html); \
|
||||
fi
|
||||
|
||||
pdf:
|
||||
if test -w $(srcdir); then \
|
||||
(cd $(srcdir); db2pdf gtk-faq.sgml); \
|
||||
fi
|
||||
|
||||
all-local: html
|
||||
|
||||
dist-hook: html
|
||||
cp -Rp $(srcdir)/html $(distdir)
|
||||
else
|
||||
html:
|
||||
echo "***"
|
||||
echo "*** Warning: FAQ not built"
|
||||
echo "***"
|
||||
|
||||
pdf:
|
||||
echo "***"
|
||||
echo "*** Warning: FAQ not built"
|
||||
echo "***"
|
||||
|
||||
dist-hook:
|
||||
echo "***"
|
||||
echo "*** Warning: FAQ not built"
|
||||
echo "*** DISTRIBUTION IS INCOMPLETE"
|
||||
echo "***"
|
||||
endif
|
||||
|
||||
.PHONY: html
|
||||
|
||||
-include $(top_srcdir)/git.mk
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,236 +0,0 @@
|
||||
CONFIGURING PACKAGES TO WORK WITH GTK
|
||||
-------------------------------------
|
||||
|
||||
Compiling a program successfully against the GTK, GDK, and GLIB
|
||||
libraries can require a large number of command line options
|
||||
to your compiler and linker that are hard to guess correctly.
|
||||
The additional libraries required may, for example, depend on the
|
||||
manner which GTK was configured
|
||||
|
||||
Several tools are included in this package to make process
|
||||
easier.
|
||||
|
||||
First, there is the shell script 'gtk-config' (installed in
|
||||
$exec_prefix/bin):
|
||||
|
||||
Invoking gtk-config
|
||||
-------------------
|
||||
|
||||
gtk-config takes the following flags:
|
||||
|
||||
--version
|
||||
Prints out the version of GTK installed
|
||||
|
||||
--cflags
|
||||
Prints '-I' flags pointing to the installed header files.
|
||||
|
||||
--libs
|
||||
Prints out the linker flags necessary to link a program against GTK
|
||||
|
||||
--prefix[=PREFIX]
|
||||
If PREFIX is specified, overrides the configured value of $prefix.
|
||||
(And of exec-prefix, unless --exec-prefix is also specified)
|
||||
Otherwise, prints out the configured value of $prefix
|
||||
|
||||
--exec-prefix[=PREFIX]
|
||||
If PREFIX is specified, overrides the configured value of $exec_prefix.
|
||||
Otherwise, prints out the configured value of $exec_prefix
|
||||
|
||||
You may also add to the command line a list of additional
|
||||
libraries that gtk-config should supply the CFLAGS and LIBS
|
||||
for. The only currently supported library is 'gthread'.
|
||||
|
||||
As an example of this latter usage, you can get the
|
||||
appropriate cflags for a threaded program with:
|
||||
|
||||
gtk-config --cflags gthread
|
||||
|
||||
|
||||
Example of using gtk-config
|
||||
---------------------------
|
||||
|
||||
Typically, gtk-config will be used within a configure script,
|
||||
as described below. It, however, can also be used directly
|
||||
from the command line to compile a simple program. For example:
|
||||
|
||||
cc -o simple `gtk-config --cflags` simple.c `gtk-config --libs`
|
||||
|
||||
This command line might expand to (for example):
|
||||
|
||||
cc -o simple -I/usr/local/lib/glib/include -I/usr/local/include \
|
||||
-I/usr/X11R6/include simple.c -L/usr/local/lib -L/usr/X11R6/lib \
|
||||
-lgtk -lgdk -lglib -lXi -lXext -lX11 -lm
|
||||
|
||||
Not only is the form using gtk-config easier to type, it will
|
||||
work on any system, no matter how GTK was configured.
|
||||
|
||||
|
||||
AM_PATH_GTK
|
||||
-----------
|
||||
|
||||
For packages configured using GNU automake, GTK also provides
|
||||
a macro to automate the process of running GTK.
|
||||
|
||||
AM_PATH_GTK([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
|
||||
|
||||
This macro:
|
||||
|
||||
* Determines the location of GTK using gtk-config, which is either
|
||||
found in the user's path, or from the environment variable
|
||||
GTK_CONFIG
|
||||
|
||||
* Tests the installed libraries to make sure that there version
|
||||
is later than MINIMUM-VERSION. (A default version will be used
|
||||
if not specified)
|
||||
|
||||
* If the required version was found, sets the GTK_CFLAGS variable to
|
||||
the output of `gtk-config --cflags` and the GTK_LIBS variable to
|
||||
the output of `gtk-config --libs`, and calls AC_SUBST() for these
|
||||
variables so they can be used in generated makefiles, and then
|
||||
executes ACTION-IF-FOUND.
|
||||
|
||||
* If the required version was not found, sets GTK_CFLAGS and GTK_LIBS
|
||||
to empty strings, and executes ACTION-IF-NOT-FOUND.
|
||||
|
||||
This macro is in file 'gtk.m4' which is installed in $datadir/aclocal.
|
||||
Note that if automake was installed with a different --prefix than
|
||||
GTK, you will either have to manually move gtk.m4 to automake's
|
||||
$datadir/aclocal, or give aclocal the -I option when running it.
|
||||
|
||||
|
||||
Configuring a package that uses AM_PATH_GTK
|
||||
-------------------------------------------
|
||||
|
||||
Simply make sure that gtk-config is in your path, and run
|
||||
the configure script.
|
||||
|
||||
Notes:
|
||||
|
||||
* The directory where the GTK libraries are installed needs
|
||||
to be found by your system's dynamic linker.
|
||||
|
||||
This is generally done by
|
||||
|
||||
editing /etc/ld.so.conf and running ldconfig
|
||||
|
||||
Or by:
|
||||
|
||||
setting the environment variable LD_LIBRARY_PATH,
|
||||
|
||||
or, as a last resort,
|
||||
|
||||
Giving a -R or -rpath flag (depending on your linker) when
|
||||
running configure, for instance:
|
||||
|
||||
LDFLAGS=-R/usr/home/owen/lib ./configure
|
||||
|
||||
* You can also specify a gtk-config not in your path by
|
||||
setting the GTK_CONFIG environment variable to the
|
||||
name of the executable
|
||||
|
||||
* If you move the GTK package from its installed location,
|
||||
you will need either need to modify gtk-config script
|
||||
manually to point to the new location or rebuild GTK.
|
||||
|
||||
Advanced note:
|
||||
|
||||
* configure flags
|
||||
|
||||
--with-gtk-prefix=PREFIX
|
||||
--with-gtk-exec-prefix=PREFIX
|
||||
|
||||
are provided to override the prefix and exec-prefix that were stored
|
||||
in the gtk-config shell script by GTK's configure. You are generally
|
||||
better off configuring GTK with the right path to begin with.
|
||||
|
||||
Example of a package using AM_PATH_GTK
|
||||
--------------------------------------
|
||||
|
||||
The following shows how to build a simple package using automake
|
||||
and the AM_PATH_GTK macro. The program used here is the testinput.c
|
||||
|
||||
You should first read the introductory portions of the automake
|
||||
Manual, if you are not already familiar with it.
|
||||
|
||||
Two files are needed, 'configure.ac', which is used to build the
|
||||
configure script:
|
||||
|
||||
==configure.ac===
|
||||
dnl Process this file with autoconf to produce a configure script.
|
||||
AC_INIT(testinput.c)
|
||||
|
||||
AM_INIT_AUTOMAKE(testinput.c, 1.0.0)
|
||||
|
||||
AC_PROG_CC
|
||||
AM_PROG_CC_STDC
|
||||
AC_PROG_INSTALL
|
||||
|
||||
AM_PATH_GTK(0.99.5,
|
||||
[LIBS="$LIBS $GTK_LIBS"
|
||||
CFLAGS="$CFLAGS $GTK_CFLAGS"],
|
||||
AC_MSG_ERROR(Cannot find GTK: Is gtk-config in path?))
|
||||
|
||||
AC_OUTPUT(Makefile)
|
||||
=================
|
||||
|
||||
The only command in this which is not standard for automake
|
||||
is the AM_PATH_GTK() macro.
|
||||
|
||||
That command does the following:
|
||||
|
||||
If a GTK version greater than 0.99.5 is found, adds $GTK_LIBS to
|
||||
$LIBS and $GTK_CFLAGS to $CFLAGS. Otherwise, dies with the error
|
||||
message "Cannot find GTK: Is gtk-config in path?"
|
||||
|
||||
And the 'Makefile.am', which will be used to build the Makefile.
|
||||
|
||||
== Makefile.am ==
|
||||
bin_PROGRAMS = testinput
|
||||
testinput_SOURCES = testinput.c
|
||||
=================
|
||||
|
||||
This Makefile.am, says that we are building a single executable,
|
||||
from a single sourcefile 'testinput.c'. Since every program
|
||||
we are building uses GTK we simply added the GTK options
|
||||
to $LIBS and $CFLAGS, but in other circumstances, we might
|
||||
want to specify them on a per-program basis: for instance by
|
||||
adding the lines:
|
||||
|
||||
testinput_LDADD = $(GTK_LIBS)
|
||||
INCLUDES = $(GTK_CFLAGS)
|
||||
|
||||
to the Makefile.am.
|
||||
|
||||
To try this example out, create a new directory, add the two
|
||||
files above two it, and copy the testinput.c file from
|
||||
the gtk/ subdirectory to the new directory. Edit the line:
|
||||
|
||||
#include "gtk.h"
|
||||
|
||||
in testgtk.c, to read:
|
||||
|
||||
#include <gtk/gtk.h>
|
||||
|
||||
|
||||
Now execute the following commands:
|
||||
|
||||
automake --add-missing
|
||||
aclocal
|
||||
autoconf
|
||||
|
||||
You now have a package that can be built in the normal fashion
|
||||
|
||||
./configure
|
||||
make
|
||||
make install
|
||||
|
||||
|
||||
Notes:
|
||||
|
||||
* If you are converting a package that used a pre-1.0 version of
|
||||
GTK, you should remove the autoconf tests for X. The results
|
||||
of these tests are included in gtk-config and will be added
|
||||
to GTK_LIBS and GTK_CFLAGS by the AM_PATH_GTK macro.
|
||||
|
||||
Owen Taylor
|
||||
14 Mar 1997
|
||||
@@ -29,7 +29,6 @@ IGNORE_HFILES= \
|
||||
gdkpoly-generic.h \
|
||||
keyname-table.h \
|
||||
win32 \
|
||||
directfb \
|
||||
x11 \
|
||||
quartz
|
||||
|
||||
|
||||
@@ -17,50 +17,28 @@
|
||||
<reference id="reference">
|
||||
<title>API Reference</title>
|
||||
<xi:include href="xml/general.xml" />
|
||||
|
||||
<xi:include href="multihead.sgml" />
|
||||
<xi:include href="xml/gdkdisplay.xml" />
|
||||
<xi:include href="xml/gdkdisplaymanager.xml" />
|
||||
<xi:include href="xml/gdkscreen.xml" />
|
||||
|
||||
<xi:include href="xml/regions.xml" />
|
||||
<xi:include href="xml/gcs.xml" />
|
||||
<xi:include href="xml/drawing.xml" />
|
||||
|
||||
<xi:include href="xml/pixmaps.xml" />
|
||||
<xi:include href="xml/rgb.xml" />
|
||||
<xi:include href="xml/images.xml" />
|
||||
<xi:include href="xml/pixbufs.xml" />
|
||||
|
||||
<xi:include href="xml/colors.xml" />
|
||||
<xi:include href="xml/visuals.xml" />
|
||||
|
||||
<xi:include href="xml/fonts.xml" />
|
||||
<xi:include href="xml/cursors.xml" />
|
||||
|
||||
<xi:include href="xml/windows.xml" />
|
||||
|
||||
<xi:include href="xml/events.xml" />
|
||||
<xi:include href="xml/event_structs.xml" />
|
||||
|
||||
<xi:include href="xml/keys.xml" />
|
||||
|
||||
<xi:include href="xml/selections.xml" />
|
||||
<xi:include href="xml/dnd.xml" />
|
||||
|
||||
<xi:include href="xml/properties.xml" />
|
||||
|
||||
<xi:include href="xml/threads.xml" />
|
||||
|
||||
<xi:include href="xml/input.xml" />
|
||||
<xi:include href="xml/gdkdevicemanager.xml" />
|
||||
|
||||
<xi:include href="xml/pango_interaction.xml" />
|
||||
<xi:include href="xml/cairo_interaction.xml" />
|
||||
<xi:include href="xml/x_interaction.xml" />
|
||||
|
||||
<xi:include href="xml/gdkapplaunchcontext.xml" />
|
||||
|
||||
<xi:include href="xml/gdktesting.xml" />
|
||||
</reference>
|
||||
|
||||
|
||||
@@ -47,12 +47,12 @@ gdk_beep
|
||||
<SUBSECTION>
|
||||
gdk_error_trap_push
|
||||
gdk_error_trap_pop
|
||||
gdk_error_trap_pop_ignored
|
||||
|
||||
<SUBSECTION>
|
||||
GDK_WINDOWING_X11
|
||||
GDK_WINDOWING_WIN32
|
||||
GDK_WINDOWING_QUARTZ
|
||||
GDK_WINDOWING_DIRECTFB
|
||||
|
||||
<SUBSECTION Standard>
|
||||
GDK_TYPE_GRAB_STATUS
|
||||
@@ -71,25 +71,17 @@ gdk_drag_protocol_get_type
|
||||
gdk_event_mask_get_type
|
||||
gdk_event_type_get_type
|
||||
gdk_extension_mode_get_type
|
||||
gdk_fill_get_type
|
||||
gdk_fill_rule_get_type
|
||||
gdk_filter_return_get_type
|
||||
gdk_function_get_type
|
||||
gdk_gc_values_mask_get_type
|
||||
gdk_grab_ownership_get_type
|
||||
gdk_grab_status_get_type
|
||||
gdk_gravity_get_type
|
||||
gdk_image_type_get_type
|
||||
gdk_input_mode_get_type
|
||||
gdk_input_source_get_type
|
||||
gdk_join_style_get_type
|
||||
gdk_line_style_get_type
|
||||
gdk_modifier_type_get_type
|
||||
gdk_notify_type_get_type
|
||||
gdk_overlap_type_get_type
|
||||
gdk_property_state_get_type
|
||||
gdk_prop_mode_get_type
|
||||
gdk_rgb_dither_get_type
|
||||
gdk_scroll_direction_get_type
|
||||
gdk_setting_action_get_type
|
||||
gdk_status_get_type
|
||||
@@ -129,6 +121,7 @@ gdk_display_beep
|
||||
gdk_display_sync
|
||||
gdk_display_flush
|
||||
gdk_display_close
|
||||
gdk_display_is_closed
|
||||
gdk_display_list_devices
|
||||
gdk_display_get_event
|
||||
gdk_display_peek_event
|
||||
@@ -197,13 +190,7 @@ gdk_display_manager_get_type
|
||||
<TITLE>GdkScreen</TITLE>
|
||||
GdkScreen
|
||||
gdk_screen_get_default
|
||||
gdk_screen_get_default_colormap
|
||||
gdk_screen_set_default_colormap
|
||||
gdk_screen_get_system_colormap
|
||||
gdk_screen_get_system_visual
|
||||
gdk_screen_get_rgb_colormap
|
||||
gdk_screen_get_rgb_visual
|
||||
gdk_screen_get_rgba_colormap
|
||||
gdk_screen_get_rgba_visual
|
||||
gdk_screen_is_composited
|
||||
gdk_screen_get_root_window
|
||||
@@ -249,128 +236,17 @@ GdkScreenClass
|
||||
gdk_screen_get_type
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<TITLE>Bitmaps and Pixmaps</TITLE>
|
||||
<FILE>pixmaps</FILE>
|
||||
GdkPixmap
|
||||
gdk_pixmap_new
|
||||
gdk_bitmap_create_from_data
|
||||
gdk_pixmap_create_from_data
|
||||
gdk_pixmap_create_from_xpm
|
||||
gdk_pixmap_colormap_create_from_xpm
|
||||
gdk_pixmap_create_from_xpm_d
|
||||
gdk_pixmap_colormap_create_from_xpm_d
|
||||
GdkBitmap
|
||||
|
||||
<SUBSECTION Standard>
|
||||
GDK_PIXMAP
|
||||
GDK_PIXMAP_GET_CLASS
|
||||
GDK_PIXMAP_OBJECT
|
||||
GDK_TYPE_PIXMAP
|
||||
GDK_IS_PIXMAP
|
||||
GDK_PIXMAP_CLASS
|
||||
GDK_IS_PIXMAP_CLASS
|
||||
|
||||
<SUBSECTION Private>
|
||||
gdk_pixmap_get_type
|
||||
GdkPixmapObject
|
||||
GdkPixmapObjectClass
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<TITLE>Images</TITLE>
|
||||
<FILE>images</FILE>
|
||||
GdkImage
|
||||
gdk_image_new
|
||||
GdkImageType
|
||||
gdk_image_get_colormap
|
||||
gdk_image_set_colormap
|
||||
gdk_image_get_bits_per_pixel
|
||||
gdk_image_get_bytes_per_pixel
|
||||
gdk_image_get_bytes_per_line
|
||||
gdk_image_get_byte_order
|
||||
gdk_image_get_depth
|
||||
gdk_image_get_height
|
||||
gdk_image_get_image_type
|
||||
gdk_image_get_visual
|
||||
gdk_image_get_width
|
||||
gdk_image_get_pixels
|
||||
|
||||
<SUBSECTION>
|
||||
gdk_image_put_pixel
|
||||
gdk_image_get_pixel
|
||||
|
||||
<SUBSECTION Standard>
|
||||
GDK_IMAGE
|
||||
GDK_TYPE_IMAGE
|
||||
GDK_IS_IMAGE
|
||||
GDK_IMAGE_CLASS
|
||||
GDK_IMAGE_GET_CLASS
|
||||
GDK_IS_IMAGE_CLASS
|
||||
GDK_TYPE_IMAGE_TYPE
|
||||
|
||||
<SUBSECTION Private>
|
||||
GdkImageClass
|
||||
gdk_image_get_type
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<TITLE>GdkRGB</TITLE>
|
||||
<FILE>rgb</FILE>
|
||||
|
||||
<SUBSECTION>
|
||||
gdk_draw_rgb_image
|
||||
gdk_draw_rgb_image_dithalign
|
||||
gdk_draw_indexed_image
|
||||
gdk_draw_gray_image
|
||||
gdk_draw_rgb_32_image
|
||||
gdk_draw_rgb_32_image_dithalign
|
||||
GdkRgbDither
|
||||
|
||||
<SUBSECTION>
|
||||
gdk_rgb_cmap_new
|
||||
gdk_rgb_cmap_free
|
||||
GdkRgbCmap
|
||||
|
||||
<SUBSECTION>
|
||||
gdk_rgb_find_color
|
||||
|
||||
<SUBSECTION>
|
||||
gdk_rgb_set_install
|
||||
gdk_rgb_set_min_colors
|
||||
gdk_rgb_get_visual
|
||||
gdk_rgb_get_colormap
|
||||
gdk_rgb_ditherable
|
||||
gdk_rgb_colormap_ditherable
|
||||
gdk_rgb_set_verbose
|
||||
|
||||
<SUBSECTION Standard>
|
||||
GDK_TYPE_RGB_DITHER
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<TITLE>Pixbufs</TITLE>
|
||||
<FILE>pixbufs</FILE>
|
||||
gdk_pixbuf_render_threshold_alpha
|
||||
gdk_pixbuf_render_pixmap_and_mask
|
||||
gdk_pixbuf_render_pixmap_and_mask_for_colormap
|
||||
gdk_pixbuf_get_from_drawable
|
||||
gdk_pixbuf_get_from_image
|
||||
gdk_pixbuf_get_from_window
|
||||
gdk_pixbuf_get_from_surface
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<TITLE>Colormaps and Colors</TITLE>
|
||||
<TITLE>Colors</TITLE>
|
||||
<FILE>colors</FILE>
|
||||
GdkColor
|
||||
GdkColormap
|
||||
gdk_colormap_new
|
||||
gdk_colormap_get_system
|
||||
gdk_colormap_alloc_colors
|
||||
gdk_colormap_alloc_color
|
||||
gdk_colormap_free_colors
|
||||
gdk_colormap_query_color
|
||||
gdk_colormap_get_visual
|
||||
gdk_colormap_get_screen
|
||||
gdk_color_copy
|
||||
gdk_color_free
|
||||
gdk_color_parse
|
||||
@@ -379,60 +255,17 @@ gdk_color_hash
|
||||
gdk_color_to_string
|
||||
|
||||
<SUBSECTION Standard>
|
||||
GDK_COLORMAP
|
||||
GDK_COLORMAP_GET_CLASS
|
||||
GDK_TYPE_COLORMAP
|
||||
GDK_IS_COLORMAP
|
||||
GDK_COLORMAP_CLASS
|
||||
GDK_IS_COLORMAP_CLASS
|
||||
GDK_TYPE_COLOR
|
||||
|
||||
<SUBSECTION Private>
|
||||
GdkColormapClass
|
||||
gdk_colormap_get_type
|
||||
gdk_color_get_type
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<TITLE>Drawing Primitives</TITLE>
|
||||
<FILE>drawing</FILE>
|
||||
GdkDrawable
|
||||
gdk_drawable_get_display
|
||||
gdk_drawable_get_screen
|
||||
gdk_drawable_get_visual
|
||||
gdk_drawable_set_colormap
|
||||
gdk_drawable_get_colormap
|
||||
gdk_drawable_get_depth
|
||||
gdk_drawable_get_size
|
||||
gdk_drawable_get_clip_region
|
||||
gdk_drawable_get_visible_region
|
||||
|
||||
<SUBSECTION>
|
||||
gdk_draw_point
|
||||
gdk_draw_points
|
||||
gdk_draw_line
|
||||
gdk_draw_lines
|
||||
gdk_draw_pixbuf
|
||||
gdk_draw_segments
|
||||
GdkSegment
|
||||
gdk_draw_rectangle
|
||||
gdk_draw_arc
|
||||
gdk_draw_polygon
|
||||
gdk_draw_trapezoids
|
||||
GdkTrapezoid
|
||||
gdk_draw_glyphs
|
||||
gdk_draw_glyphs_transformed
|
||||
gdk_draw_layout_line
|
||||
gdk_draw_layout_line_with_colors
|
||||
gdk_draw_layout
|
||||
gdk_draw_layout_with_colors
|
||||
|
||||
<SUBSECTION>
|
||||
gdk_draw_drawable
|
||||
gdk_draw_image
|
||||
gdk_drawable_get_image
|
||||
gdk_drawable_copy_to_image
|
||||
|
||||
<SUBSECTION Standard>
|
||||
GDK_DRAWABLE
|
||||
GDK_DRAWABLE_GET_CLASS
|
||||
@@ -445,69 +278,6 @@ GDK_IS_DRAWABLE_CLASS
|
||||
GdkDrawableClass
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<TITLE>Graphics Contexts</TITLE>
|
||||
<FILE>gcs</FILE>
|
||||
GdkGC
|
||||
GdkGCValues
|
||||
GdkGCValuesMask
|
||||
|
||||
GdkFunction
|
||||
|
||||
gdk_gc_new
|
||||
gdk_gc_new_with_values
|
||||
gdk_gc_get_screen
|
||||
gdk_gc_set_values
|
||||
gdk_gc_get_values
|
||||
gdk_gc_set_foreground
|
||||
gdk_gc_set_background
|
||||
gdk_gc_set_rgb_fg_color
|
||||
gdk_gc_set_rgb_bg_color
|
||||
gdk_gc_set_function
|
||||
gdk_gc_set_fill
|
||||
GdkFill
|
||||
gdk_gc_set_tile
|
||||
gdk_gc_set_stipple
|
||||
gdk_gc_set_ts_origin
|
||||
gdk_gc_set_clip_origin
|
||||
gdk_gc_set_clip_mask
|
||||
gdk_gc_set_clip_rectangle
|
||||
gdk_gc_set_clip_region
|
||||
gdk_gc_set_subwindow
|
||||
GdkSubwindowMode
|
||||
gdk_gc_set_exposures
|
||||
gdk_gc_set_line_attributes
|
||||
GdkLineStyle
|
||||
GdkCapStyle
|
||||
GdkJoinStyle
|
||||
gdk_gc_set_dashes
|
||||
gdk_gc_copy
|
||||
gdk_gc_set_colormap
|
||||
gdk_gc_get_colormap
|
||||
|
||||
gdk_gc_offset
|
||||
|
||||
<SUBSECTION Standard>
|
||||
GDK_GC
|
||||
GDK_TYPE_GC
|
||||
GDK_IS_GC
|
||||
GDK_GC_CLASS
|
||||
GDK_GC_GET_CLASS
|
||||
GDK_IS_GC_CLASS
|
||||
GDK_TYPE_CAP_STYLE
|
||||
GDK_TYPE_FILL
|
||||
GDK_TYPE_FILL_RULE
|
||||
GDK_TYPE_FUNCTION
|
||||
GDK_TYPE_GC_VALUES_MASK
|
||||
GDK_TYPE_JOIN_STYLE
|
||||
GDK_TYPE_LINE_STYLE
|
||||
GDK_TYPE_SUBWINDOW_MODE
|
||||
|
||||
<SUBSECTION Private>
|
||||
GdkGCClass
|
||||
gdk_gc_get_type
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<TITLE>Visuals</TITLE>
|
||||
<FILE>visuals</FILE>
|
||||
@@ -565,6 +335,9 @@ GdkWindowAttributesType
|
||||
gdk_window_new
|
||||
gdk_window_destroy
|
||||
gdk_window_get_window_type
|
||||
gdk_window_get_display
|
||||
gdk_window_get_screen
|
||||
gdk_window_get_visual
|
||||
gdk_window_at_pointer
|
||||
gdk_window_show
|
||||
gdk_window_show_unraised
|
||||
@@ -598,9 +371,6 @@ gdk_window_flush
|
||||
gdk_window_has_native
|
||||
gdk_window_ensure_native
|
||||
gdk_window_reparent
|
||||
gdk_window_clear
|
||||
gdk_window_clear_area
|
||||
gdk_window_clear_area_e
|
||||
gdk_window_raise
|
||||
gdk_window_lower
|
||||
gdk_window_restack
|
||||
@@ -619,6 +389,7 @@ gdk_window_end_paint
|
||||
<SUBSECTION>
|
||||
gdk_window_invalidate_rect
|
||||
gdk_window_invalidate_region
|
||||
GdkWindowChildFunc
|
||||
gdk_window_invalidate_maybe_recurse
|
||||
gdk_window_get_update_area
|
||||
gdk_window_freeze_updates
|
||||
@@ -626,7 +397,6 @@ gdk_window_thaw_updates
|
||||
gdk_window_process_all_updates
|
||||
gdk_window_process_updates
|
||||
gdk_window_set_debug_updates
|
||||
gdk_window_get_internal_paint_info
|
||||
gdk_window_enable_synchronized_configure
|
||||
gdk_window_configure_finished
|
||||
|
||||
@@ -642,26 +412,25 @@ gdk_window_remove_filter
|
||||
GdkFilterFunc
|
||||
GdkFilterReturn
|
||||
GdkXEvent
|
||||
gdk_window_shape_combine_mask
|
||||
gdk_window_shape_combine_region
|
||||
gdk_window_set_child_shapes
|
||||
gdk_window_merge_child_shapes
|
||||
gdk_window_input_shape_combine_mask
|
||||
gdk_window_input_shape_combine_region
|
||||
gdk_window_set_child_input_shapes
|
||||
gdk_window_merge_child_input_shapes
|
||||
gdk_window_set_static_gravities
|
||||
gdk_window_set_title
|
||||
gdk_window_set_background
|
||||
gdk_window_get_background
|
||||
gdk_window_set_back_pixmap
|
||||
gdk_window_get_back_pixmap
|
||||
gdk_window_set_background_pattern
|
||||
gdk_window_get_background_pattern
|
||||
GDK_PARENT_RELATIVE
|
||||
gdk_window_set_cursor
|
||||
gdk_window_get_cursor
|
||||
gdk_window_get_user_data
|
||||
gdk_window_get_geometry
|
||||
gdk_window_set_geometry_hints
|
||||
gdk_window_get_width
|
||||
gdk_window_get_height
|
||||
gdk_window_set_icon_list
|
||||
gdk_window_set_modal_hint
|
||||
gdk_window_get_modal_hint
|
||||
@@ -674,7 +443,6 @@ gdk_window_get_position
|
||||
gdk_window_get_root_origin
|
||||
gdk_window_get_frame_extents
|
||||
gdk_window_get_origin
|
||||
gdk_window_get_deskrelative_origin
|
||||
gdk_window_get_root_coords
|
||||
gdk_window_get_pointer
|
||||
gdk_window_get_device_position
|
||||
@@ -685,7 +453,6 @@ gdk_window_get_children
|
||||
gdk_window_peek_children
|
||||
gdk_window_get_events
|
||||
gdk_window_set_events
|
||||
gdk_window_set_icon
|
||||
gdk_window_set_icon_name
|
||||
gdk_window_set_transient_for
|
||||
gdk_window_set_role
|
||||
@@ -712,12 +479,10 @@ GdkPointerHooks
|
||||
gdk_set_pointer_hooks
|
||||
|
||||
<SUBSECTION>
|
||||
gdk_offscreen_window_get_pixmap
|
||||
gdk_offscreen_window_get_surface
|
||||
gdk_offscreen_window_set_embedder
|
||||
gdk_offscreen_window_get_embedder
|
||||
gdk_window_geometry_changed
|
||||
gdk_window_redirect_to_drawable
|
||||
gdk_window_remove_redirection
|
||||
gdk_window_coords_from_parent
|
||||
gdk_window_coords_to_parent
|
||||
gdk_window_get_effective_parent
|
||||
@@ -817,47 +582,25 @@ GDK_TYPE_PROP_MODE
|
||||
<SECTION>
|
||||
<TITLE>Pango Interaction</TITLE>
|
||||
<FILE>pango_interaction</FILE>
|
||||
GdkPangoRenderer
|
||||
GdkPangoRendererClass
|
||||
gdk_pango_renderer_new
|
||||
gdk_pango_renderer_get_default
|
||||
gdk_pango_renderer_set_drawable
|
||||
gdk_pango_renderer_set_gc
|
||||
gdk_pango_renderer_set_stipple
|
||||
gdk_pango_renderer_set_override_color
|
||||
gdk_pango_context_get
|
||||
gdk_pango_context_get_for_screen
|
||||
GdkPangoAttrEmbossed
|
||||
GdkPangoAttrEmbossColor
|
||||
GdkPangoAttrStipple
|
||||
gdk_pango_attr_emboss_color_new
|
||||
gdk_pango_attr_embossed_new
|
||||
gdk_pango_attr_stipple_new
|
||||
gdk_pango_layout_get_clip_region
|
||||
gdk_pango_layout_line_get_clip_region
|
||||
<SUBSECTION Standard>
|
||||
GDK_TYPE_PANGO_RENDERER
|
||||
GDK_PANGO_RENDERER
|
||||
GDK_IS_PANGO_RENDERER
|
||||
GDK_PANGO_RENDERER_CLASS
|
||||
GDK_IS_PANGO_RENDERER_CLASS
|
||||
GDK_PANGO_RENDERER_GET_CLASS
|
||||
|
||||
<SUBSECTION Private>
|
||||
gdk_pango_renderer_get_type
|
||||
GdkPangoRendererPrivate
|
||||
gdk_pango_context_get
|
||||
gdk_pango_context_get_for_screen
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<TITLE>Cairo Interaction</TITLE>
|
||||
<FILE>cairo_interaction</FILE>
|
||||
gdk_window_create_similar_surface
|
||||
gdk_cairo_create
|
||||
gdk_cairo_get_clip_rectangle
|
||||
gdk_cairo_set_source_color
|
||||
gdk_cairo_set_source_pixbuf
|
||||
gdk_cairo_set_source_pixmap
|
||||
gdk_cairo_set_source_window
|
||||
gdk_cairo_rectangle
|
||||
gdk_cairo_region
|
||||
gdk_cairo_reset_clip
|
||||
gdk_cairo_region_create_from_surface
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
@@ -882,7 +625,6 @@ GDK_THREADS_LEAVE
|
||||
gdk_threads_init
|
||||
gdk_threads_enter
|
||||
gdk_threads_leave
|
||||
gdk_threads_mutex
|
||||
gdk_threads_set_lock_functions
|
||||
gdk_threads_add_idle
|
||||
gdk_threads_add_idle_full
|
||||
@@ -890,7 +632,12 @@ gdk_threads_add_timeout
|
||||
gdk_threads_add_timeout_full
|
||||
gdk_threads_add_timeout_seconds
|
||||
gdk_threads_add_timeout_seconds_full
|
||||
|
||||
<SUBSECTION>
|
||||
gdk_threads_get_periodic
|
||||
gdk_threads_set_periodic
|
||||
gdk_threads_periodic_add
|
||||
gdk_threads_periodic_remove
|
||||
gdk_threads_periodic_damaged
|
||||
<SUBSECTION Private>
|
||||
gdk_threads_lock
|
||||
gdk_threads_unlock
|
||||
@@ -1141,12 +888,12 @@ gdk_owner_change_get_type
|
||||
GdkCursor
|
||||
GdkCursorType
|
||||
gdk_cursor_new
|
||||
gdk_cursor_new_from_pixmap
|
||||
gdk_cursor_new_from_pixbuf
|
||||
gdk_cursor_new_from_name
|
||||
gdk_cursor_new_for_display
|
||||
gdk_cursor_get_display
|
||||
gdk_cursor_get_image
|
||||
gdk_cursor_get_cursor_type
|
||||
gdk_cursor_ref
|
||||
gdk_cursor_unref
|
||||
|
||||
@@ -1207,40 +954,24 @@ gdk_drag_context_get_type
|
||||
<TITLE>X Window System Interaction</TITLE>
|
||||
<FILE>x_interaction</FILE>
|
||||
GDK_ROOT_WINDOW
|
||||
GDK_DISPLAY
|
||||
GDK_WINDOW_XDISPLAY
|
||||
GDK_WINDOW_XID
|
||||
GDK_PIXMAP_XDISPLAY
|
||||
GDK_PIXMAP_XID
|
||||
GDK_DISPLAY_XDISPLAY
|
||||
GDK_DRAWABLE_XDISPLAY
|
||||
GDK_DRAWABLE_XID
|
||||
GDK_IMAGE_XDISPLAY
|
||||
GDK_IMAGE_XIMAGE
|
||||
GDK_GC_XDISPLAY
|
||||
GDK_COLORMAP_XDISPLAY
|
||||
GDK_COLORMAP_XCOLORMAP
|
||||
GDK_SCREEN_XDISPLAY
|
||||
GDK_SCREEN_XNUMBER
|
||||
GDK_SCREEN_XSCREEN
|
||||
GDK_VISUAL_XVISUAL
|
||||
GDK_CURSOR_XCURSOR
|
||||
GDK_CURSOR_XDISPLAY
|
||||
GDK_GC_XGC
|
||||
GDK_GC_GET_XGC
|
||||
GDK_WINDOW_XWINDOW
|
||||
gdkx_visual_get
|
||||
gdk_pixmap_foreign_new
|
||||
gdk_pixmap_foreign_new_for_display
|
||||
gdk_pixmap_foreign_new_for_screen
|
||||
gdk_window_foreign_new
|
||||
gdk_window_foreign_new_for_display
|
||||
gdk_xid_table_lookup
|
||||
gdk_xid_table_lookup_for_display
|
||||
gdk_window_lookup
|
||||
gdk_window_lookup_for_display
|
||||
gdk_pixmap_lookup
|
||||
gdk_pixmap_lookup_for_display
|
||||
gdk_x11_lookup_xdisplay
|
||||
gdk_x11_get_server_time
|
||||
gdk_net_wm_supports
|
||||
@@ -1251,9 +982,6 @@ gdk_x11_screen_lookup_visual
|
||||
gdk_x11_window_set_user_time
|
||||
gdk_x11_window_move_to_current_desktop
|
||||
gdk_x11_display_get_user_time
|
||||
gdk_x11_colormap_foreign_new
|
||||
gdk_x11_colormap_get_xcolormap
|
||||
gdk_x11_colormap_get_xdisplay
|
||||
gdk_x11_cursor_get_xcursor
|
||||
gdk_x11_cursor_get_xdisplay
|
||||
gdk_x11_display_broadcast_startup_message
|
||||
@@ -1261,18 +989,17 @@ gdk_x11_display_get_startup_notification_id
|
||||
gdk_x11_display_get_xdisplay
|
||||
gdk_x11_display_grab
|
||||
gdk_x11_display_ungrab
|
||||
gdk_x11_display_error_trap_push
|
||||
gdk_x11_display_error_trap_pop
|
||||
gdk_x11_display_error_trap_pop_ignored
|
||||
gdk_x11_display_set_cursor_theme
|
||||
gdk_x11_register_standard_event_type
|
||||
gdk_x11_drawable_get_xdisplay
|
||||
gdk_x11_drawable_get_xid
|
||||
gdk_x11_gc_get_xdisplay
|
||||
gdk_x11_gc_get_xgc
|
||||
gdk_x11_get_default_root_xwindow
|
||||
gdk_x11_get_default_screen
|
||||
gdk_x11_get_default_xdisplay
|
||||
gdk_x11_grab_server
|
||||
gdk_x11_image_get_xdisplay
|
||||
gdk_x11_image_get_ximage
|
||||
gdk_x11_screen_get_screen_number
|
||||
gdk_x11_screen_get_xscreen
|
||||
gdk_x11_ungrab_server
|
||||
@@ -1287,10 +1014,8 @@ gdk_x11_get_xatom_name
|
||||
gdk_x11_get_xatom_name_for_display
|
||||
|
||||
<SUBSECTION Private>
|
||||
gdk_display
|
||||
GDK_HAVE_WCHAR_H
|
||||
GDK_HAVE_WCTYPE_H
|
||||
gdk_x11_pixmap_get_drawable_impl
|
||||
gdk_x11_window_get_drawable_impl
|
||||
</SECTION>
|
||||
|
||||
|
||||
@@ -5,9 +5,6 @@ gdk_display_manager_get_type
|
||||
gdk_screen_get_type
|
||||
gdk_drawable_get_type
|
||||
gdk_window_object_get_type
|
||||
gdk_pango_renderer_get_type
|
||||
gdk_pixmap_get_type
|
||||
gdk_gc_get_type
|
||||
gdk_keymap_get_type
|
||||
gdk_device_get_type
|
||||
gdk_device_manager_get_type
|
||||
|
||||
@@ -106,12 +106,12 @@ gtk_window_set_screen (window, second_screen);<!--
|
||||
<para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><link linkend="gdk-GdkDisplay">GdkDisplay</link></term>
|
||||
<term><link linkend="GdkDisplay">GdkDisplay</link></term>
|
||||
<listitem><para>the GDK Object used to represent and manipulate display
|
||||
related data</para></listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><link linkend="gdk-GdkScreen">GdkScreen</link></term>
|
||||
<term><link linkend="GdkScreen">GdkScreen</link></term>
|
||||
<listitem><para>the GDK Object used to represent and query screen related
|
||||
data</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
4
docs/reference/gdk/tmpl/.gitignore
vendored
4
docs/reference/gdk/tmpl/.gitignore
vendored
@@ -1,2 +1,6 @@
|
||||
cairo_interaction.sgml
|
||||
colors.sgml
|
||||
dnd.sgml
|
||||
pixbufs.sgml
|
||||
regions.sgml
|
||||
windows.sgml
|
||||
|
||||
@@ -1,99 +0,0 @@
|
||||
<!-- ##### SECTION Title ##### -->
|
||||
Cairo Interaction
|
||||
|
||||
<!-- ##### SECTION Short_Description ##### -->
|
||||
Functions to support using Cairo
|
||||
|
||||
<!-- ##### SECTION Long_Description ##### -->
|
||||
<para>
|
||||
<link href="http://cairographics.org">Cairo</link> is a graphics
|
||||
library that supports vector graphics and image compositing that
|
||||
can be used with GDK. Since 2.8, GTK+ does most of its drawing
|
||||
using Cairo.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
GDK does not wrap the Cairo API, instead it allows to create Cairo
|
||||
contexts which can be used to draw on GDK drawables. Additional
|
||||
functions allow to convert GDK's rectangles and regions into
|
||||
Cairo paths and to use pixbufs as sources for drawing operations.
|
||||
</para>
|
||||
|
||||
<!-- ##### SECTION See_Also ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### SECTION Stability_Level ##### -->
|
||||
|
||||
|
||||
<!-- ##### SECTION Image ##### -->
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_cairo_create ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@drawable:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_cairo_set_source_color ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@cr:
|
||||
@color:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_cairo_set_source_pixbuf ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@cr:
|
||||
@pixbuf:
|
||||
@pixbuf_x:
|
||||
@pixbuf_y:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_cairo_set_source_pixmap ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@cr:
|
||||
@pixmap:
|
||||
@pixmap_x:
|
||||
@pixmap_y:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_cairo_rectangle ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@cr:
|
||||
@rectangle:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_cairo_region ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@cr:
|
||||
@region:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_cairo_reset_clip ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@cr:
|
||||
@drawable:
|
||||
|
||||
|
||||
@@ -1,195 +0,0 @@
|
||||
<!-- ##### SECTION Title ##### -->
|
||||
Colormaps and Colors
|
||||
|
||||
<!-- ##### SECTION Short_Description ##### -->
|
||||
Manipulation of colors and colormaps
|
||||
|
||||
<!-- ##### SECTION Long_Description ##### -->
|
||||
<para>
|
||||
These functions are used to modify colormaps.
|
||||
A colormap is an object that contains the mapping
|
||||
between the color values stored in memory and
|
||||
the RGB values that are used to display color
|
||||
values. In general, colormaps only contain
|
||||
significant information for pseudo-color visuals,
|
||||
but even for other visual types, a colormap object
|
||||
is required in some circumstances.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
There are a couple of special colormaps that can
|
||||
be retrieved. The system colormap (retrieved
|
||||
with gdk_colormap_get_system()) is the default
|
||||
colormap of the system. If you are using GdkRGB,
|
||||
there is another colormap that is important - the
|
||||
colormap in which GdkRGB works, retrieved with
|
||||
gdk_rgb_get_colormap(). However, when using GdkRGB,
|
||||
it is not generally necessary to allocate colors
|
||||
directly.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
In previous revisions of this interface, a number
|
||||
of functions that take a #GdkColormap parameter
|
||||
were replaced with functions whose names began
|
||||
with "gdk_colormap_".
|
||||
</para>
|
||||
|
||||
<!-- ##### SECTION See_Also ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### SECTION Stability_Level ##### -->
|
||||
|
||||
|
||||
<!-- ##### SECTION Image ##### -->
|
||||
|
||||
|
||||
<!-- ##### STRUCT GdkColor ##### -->
|
||||
<para>
|
||||
The #GdkColor structure is used to describe an
|
||||
allocated or unallocated color.
|
||||
</para>
|
||||
|
||||
@pixel: For allocated colors, the value used to
|
||||
draw this color on the screen.
|
||||
@red: The red component of the color. This is
|
||||
a value between 0 and 65535, with 65535 indicating
|
||||
full intensitiy.
|
||||
@green: The green component of the color.
|
||||
@blue: The blue component of the color.
|
||||
|
||||
<!-- ##### STRUCT GdkColormap ##### -->
|
||||
<para>
|
||||
The colormap structure contains the following public fields.
|
||||
</para>
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_colormap_new ##### -->
|
||||
<para>
|
||||
</para>
|
||||
|
||||
@visual:
|
||||
@allocate:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_colormap_get_system ##### -->
|
||||
<para>
|
||||
</para>
|
||||
|
||||
@void:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_colormap_alloc_colors ##### -->
|
||||
<para>
|
||||
</para>
|
||||
|
||||
@colormap:
|
||||
@colors:
|
||||
@n_colors:
|
||||
@writeable:
|
||||
@best_match:
|
||||
@success:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_colormap_alloc_color ##### -->
|
||||
<para>
|
||||
</para>
|
||||
|
||||
@colormap:
|
||||
@color:
|
||||
@writeable:
|
||||
@best_match:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_colormap_free_colors ##### -->
|
||||
<para>
|
||||
</para>
|
||||
|
||||
@colormap:
|
||||
@colors:
|
||||
@n_colors:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_colormap_query_color ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@colormap:
|
||||
@pixel:
|
||||
@result:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_colormap_get_visual ##### -->
|
||||
<para>
|
||||
</para>
|
||||
|
||||
@colormap:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_colormap_get_screen ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@cmap:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_color_copy ##### -->
|
||||
<para>
|
||||
</para>
|
||||
|
||||
@color:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_color_free ##### -->
|
||||
<para>
|
||||
</para>
|
||||
|
||||
@color:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_color_parse ##### -->
|
||||
<para>
|
||||
</para>
|
||||
|
||||
@spec:
|
||||
@color:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_color_equal ##### -->
|
||||
<para>
|
||||
</para>
|
||||
|
||||
@colora:
|
||||
@colorb:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_color_hash ##### -->
|
||||
<para>
|
||||
</para>
|
||||
|
||||
@colora:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_color_to_string ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@color:
|
||||
@Returns:
|
||||
|
||||
|
||||
@@ -8,10 +8,10 @@ Standard and pixmap cursors
|
||||
<para>
|
||||
These functions are used to create and destroy cursors.
|
||||
There is a number of standard cursors, but it is also
|
||||
possible to construct new cursors from pixmaps and
|
||||
pixbufs. There may be limitations as to what kinds of
|
||||
cursors can be constructed on a given display, see
|
||||
gdk_display_supports_cursor_alpha(),
|
||||
possible to construct new cursors from pixbufs. There
|
||||
may be limitations as to what kinds of cursors can be
|
||||
constructed on a given display, see
|
||||
gdk_display_supports_cursor_alpha(),
|
||||
gdk_display_supports_cursor_color(),
|
||||
gdk_display_get_default_cursor_size() and
|
||||
gdk_display_get_maximal_cursor_size().
|
||||
@@ -125,7 +125,7 @@ The standard cursors available.
|
||||
@GDK_LAST_CURSOR: last cursor type
|
||||
@GDK_BLANK_CURSOR: Blank cursor. Since 2.16
|
||||
@GDK_CURSOR_IS_PIXMAP: type of cursors constructed with
|
||||
gdk_cursor_new_from_pixmap() or gdk_cursor_new_from_pixbuf()
|
||||
gdk_cursor_new_from_pixbuf()
|
||||
|
||||
<!-- ##### FUNCTION gdk_cursor_new ##### -->
|
||||
<para>
|
||||
@@ -136,19 +136,6 @@ The standard cursors available.
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_cursor_new_from_pixmap ##### -->
|
||||
<para>
|
||||
</para>
|
||||
|
||||
@source:
|
||||
@mask:
|
||||
@fg:
|
||||
@bg:
|
||||
@x:
|
||||
@y:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_cursor_new_from_pixbuf ##### -->
|
||||
<para>
|
||||
|
||||
@@ -199,6 +186,15 @@ The standard cursors available.
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_cursor_get_cursor_type ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@cursor:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_cursor_ref ##### -->
|
||||
<para>
|
||||
|
||||
|
||||
@@ -45,70 +45,6 @@ or a #GdkWindow.
|
||||
</para>
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_drawable_get_display ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@drawable:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_drawable_get_screen ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@drawable:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_drawable_get_visual ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@drawable:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_drawable_set_colormap ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@drawable:
|
||||
@colormap:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_drawable_get_colormap ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@drawable:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_drawable_get_depth ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@drawable:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_drawable_get_size ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@drawable:
|
||||
@width:
|
||||
@height:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_drawable_get_clip_region ##### -->
|
||||
<para>
|
||||
|
||||
@@ -127,293 +63,3 @@ or a #GdkWindow.
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_draw_point ##### -->
|
||||
<para>
|
||||
</para>
|
||||
|
||||
@drawable:
|
||||
@gc:
|
||||
@x:
|
||||
@y:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_draw_points ##### -->
|
||||
<para>
|
||||
</para>
|
||||
|
||||
@drawable:
|
||||
@gc:
|
||||
@points:
|
||||
@n_points:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_draw_line ##### -->
|
||||
<para>
|
||||
</para>
|
||||
|
||||
@drawable:
|
||||
@gc:
|
||||
@x1_:
|
||||
@y1_:
|
||||
@x2_:
|
||||
@y2_:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_draw_lines ##### -->
|
||||
<para>
|
||||
</para>
|
||||
|
||||
@drawable:
|
||||
@gc:
|
||||
@points:
|
||||
lines.
|
||||
@n_points:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_draw_pixbuf ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@drawable:
|
||||
@gc:
|
||||
@pixbuf:
|
||||
@src_x:
|
||||
@src_y:
|
||||
@dest_x:
|
||||
@dest_y:
|
||||
@width:
|
||||
@height:
|
||||
@dither:
|
||||
@x_dither:
|
||||
@y_dither:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_draw_segments ##### -->
|
||||
<para>
|
||||
</para>
|
||||
|
||||
@drawable:
|
||||
@gc:
|
||||
@segs:
|
||||
@n_segs:
|
||||
|
||||
|
||||
<!-- ##### STRUCT GdkSegment ##### -->
|
||||
<para>
|
||||
Specifies the start and end point of a line for use by the gdk_draw_segments()
|
||||
function.
|
||||
</para>
|
||||
|
||||
@x1: the x coordinate of the start point.
|
||||
@y1: the y coordinate of the start point.
|
||||
@x2: the x coordinate of the end point.
|
||||
@y2: the y coordinate of the end point.
|
||||
|
||||
<!-- ##### FUNCTION gdk_draw_rectangle ##### -->
|
||||
<para>
|
||||
</para>
|
||||
<note>
|
||||
<para>
|
||||
</para>
|
||||
</note>
|
||||
|
||||
@drawable:
|
||||
@gc:
|
||||
@filled:
|
||||
@x:
|
||||
@y:
|
||||
@width:
|
||||
@height:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_draw_arc ##### -->
|
||||
<para>
|
||||
</para>
|
||||
|
||||
@drawable:
|
||||
@gc:
|
||||
@filled:
|
||||
@x:
|
||||
@y:
|
||||
@width:
|
||||
@height:
|
||||
@angle1:
|
||||
@angle2:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_draw_polygon ##### -->
|
||||
<para>
|
||||
</para>
|
||||
|
||||
@drawable:
|
||||
@gc:
|
||||
@filled:
|
||||
@points:
|
||||
@n_points:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_draw_trapezoids ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@drawable:
|
||||
@gc:
|
||||
@trapezoids:
|
||||
@n_trapezoids:
|
||||
|
||||
|
||||
<!-- ##### STRUCT GdkTrapezoid ##### -->
|
||||
<para>
|
||||
Specifies a trapezpoid for use by the gdk_draw_trapezoids().
|
||||
The trapezoids used here have parallel, horizontal top and
|
||||
bottom edges.
|
||||
</para>
|
||||
|
||||
@y1: the y coordinate of the start point.
|
||||
@x11: the x coordinate of the top left corner
|
||||
@x21: the x coordinate of the top right corner
|
||||
@y2: the y coordinate of the end point.
|
||||
@x12: the x coordinate of the bottom left corner
|
||||
@x22: the x coordinate of the bottom right corner
|
||||
|
||||
<!-- ##### FUNCTION gdk_draw_glyphs ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@drawable:
|
||||
@gc:
|
||||
@font:
|
||||
@x:
|
||||
@y:
|
||||
@glyphs:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_draw_glyphs_transformed ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@drawable:
|
||||
@gc:
|
||||
@matrix:
|
||||
@font:
|
||||
@x:
|
||||
@y:
|
||||
@glyphs:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_draw_layout_line ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@drawable:
|
||||
@gc:
|
||||
@x:
|
||||
@y:
|
||||
@line:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_draw_layout_line_with_colors ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@drawable:
|
||||
@gc:
|
||||
@x:
|
||||
@y:
|
||||
@line:
|
||||
@foreground:
|
||||
@background:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_draw_layout ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@drawable:
|
||||
@gc:
|
||||
@x:
|
||||
@y:
|
||||
@layout:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_draw_layout_with_colors ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@drawable:
|
||||
@gc:
|
||||
@x:
|
||||
@y:
|
||||
@layout:
|
||||
@foreground:
|
||||
@background:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_draw_drawable ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@drawable:
|
||||
@gc:
|
||||
@src:
|
||||
@xsrc:
|
||||
@ysrc:
|
||||
@xdest:
|
||||
@ydest:
|
||||
@width:
|
||||
@height:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_draw_image ##### -->
|
||||
<para>
|
||||
</para>
|
||||
|
||||
@drawable:
|
||||
@gc:
|
||||
@image:
|
||||
@xsrc:
|
||||
@ysrc:
|
||||
@xdest:
|
||||
@ydest:
|
||||
@width:
|
||||
@height:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_drawable_get_image ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@drawable:
|
||||
@x:
|
||||
@y:
|
||||
@width:
|
||||
@height:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_drawable_copy_to_image ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@drawable:
|
||||
@image:
|
||||
@src_x:
|
||||
@src_y:
|
||||
@dest_x:
|
||||
@dest_y:
|
||||
@width:
|
||||
@height:
|
||||
@Returns:
|
||||
|
||||
|
||||
|
||||
@@ -382,8 +382,7 @@ union, 16-bit data uses the s array, and 32-bit data uses the l array.
|
||||
|
||||
<!-- ##### STRUCT GdkEventNoExpose ##### -->
|
||||
<para>
|
||||
Generated when the area of a #GdkDrawable being copied, with gdk_draw_drawable()
|
||||
, was completely available.
|
||||
Generated when the area of a #GdkDrawable being copied was completely available.
|
||||
</para>
|
||||
<para>
|
||||
FIXME: add more here.
|
||||
|
||||
@@ -1,427 +0,0 @@
|
||||
<!-- ##### SECTION Title ##### -->
|
||||
Graphics Contexts
|
||||
|
||||
<!-- ##### SECTION Short_Description ##### -->
|
||||
Objects to encapsulate drawing properties
|
||||
|
||||
<!-- ##### SECTION Long_Description ##### -->
|
||||
<para>
|
||||
All drawing operations in GDK take a
|
||||
<firstterm>graphics context</firstterm> (GC) argument.
|
||||
A graphics context encapsulates information about
|
||||
the way things are drawn, such as the foreground
|
||||
color or line width. By using graphics contexts,
|
||||
the number of arguments to each drawing call is
|
||||
greatly reduced, and communication overhead is
|
||||
minimized, since identical arguments do not need
|
||||
to be passed repeatedly.
|
||||
</para>
|
||||
<para>
|
||||
Most values of a graphics context can be set at
|
||||
creation time by using gdk_gc_new_with_values(),
|
||||
or can be set one-by-one using functions such
|
||||
as gdk_gc_set_foreground(). A few of the values
|
||||
in the GC, such as the dash pattern, can only
|
||||
be set by the latter method.
|
||||
</para>
|
||||
|
||||
<!-- ##### SECTION See_Also ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### SECTION Stability_Level ##### -->
|
||||
|
||||
|
||||
<!-- ##### SECTION Image ##### -->
|
||||
|
||||
|
||||
<!-- ##### STRUCT GdkGC ##### -->
|
||||
<para>
|
||||
The #GdkGC structure represents a graphics context.
|
||||
It is an opaque structure with no user-visible
|
||||
elements.
|
||||
</para>
|
||||
|
||||
|
||||
<!-- ##### STRUCT GdkGCValues ##### -->
|
||||
<para>
|
||||
The #GdkGCValues structure holds a set of values used
|
||||
to create or modify a graphics context.
|
||||
</para>
|
||||
|
||||
@foreground: the foreground color. Note that gdk_gc_get_values()
|
||||
only sets the pixel value.
|
||||
@background: the background color. Note that gdk_gc_get_values()
|
||||
only sets the pixel value.
|
||||
@font: the default font.
|
||||
@function: the bitwise operation used when drawing.
|
||||
@fill: the fill style.
|
||||
@tile: the tile pixmap.
|
||||
@stipple: the stipple bitmap.
|
||||
@clip_mask: the clip mask bitmap.
|
||||
@subwindow_mode: the subwindow mode.
|
||||
@ts_x_origin: the x origin of the tile or stipple.
|
||||
@ts_y_origin: the y origin of the tile or stipple.
|
||||
@clip_x_origin: the x origin of the clip mask.
|
||||
@clip_y_origin: the y origin of the clip mask.
|
||||
@graphics_exposures: whether graphics exposures are enabled.
|
||||
@line_width: the line width.
|
||||
@line_style: the way dashed lines are drawn.
|
||||
@cap_style: the way the ends of lines are drawn.
|
||||
@join_style: the way joins between lines are drawn.
|
||||
|
||||
<!-- ##### ENUM GdkGCValuesMask ##### -->
|
||||
<para>
|
||||
A set of bit flags used to indicate which fields
|
||||
#GdkGCValues structure are set.
|
||||
</para>
|
||||
|
||||
@GDK_GC_FOREGROUND: the @foreground is set.
|
||||
@GDK_GC_BACKGROUND: the @background is set.
|
||||
@GDK_GC_FUNCTION: the @function is set.
|
||||
@GDK_GC_FILL: the @fill is set.
|
||||
@GDK_GC_TILE: the @tile is set.
|
||||
@GDK_GC_STIPPLE: the @stipple is set.
|
||||
@GDK_GC_CLIP_MASK: the @clip_mask is set.
|
||||
@GDK_GC_SUBWINDOW: the @subwindow_mode is set.
|
||||
@GDK_GC_TS_X_ORIGIN: the @ts_x_origin is set.
|
||||
@GDK_GC_TS_Y_ORIGIN: the @ts_y_origin is set.
|
||||
@GDK_GC_CLIP_X_ORIGIN: the @clip_x_origin is set.
|
||||
@GDK_GC_CLIP_Y_ORIGIN: the @clip_y_origin is set.
|
||||
@GDK_GC_EXPOSURES: the @graphics_exposures is set.
|
||||
@GDK_GC_LINE_WIDTH: the @line_width is set.
|
||||
@GDK_GC_LINE_STYLE: the @line_style is set.
|
||||
@GDK_GC_CAP_STYLE: the @cap_style is set.
|
||||
@GDK_GC_JOIN_STYLE: the @join_style is set.
|
||||
|
||||
<!-- ##### ENUM GdkFunction ##### -->
|
||||
<para>
|
||||
Determines how the bit values for the source pixels are combined with
|
||||
the bit values for destination pixels to produce the final result. The
|
||||
sixteen values here correspond to the 16 different possible 2x2 truth
|
||||
tables. Only a couple of these values are usually useful; for colored
|
||||
images, only %GDK_COPY, %GDK_XOR and %GDK_INVERT are generally
|
||||
useful. For bitmaps, %GDK_AND and %GDK_OR are also useful.
|
||||
</para>
|
||||
|
||||
@GDK_COPY: <literal>dst = src</literal>
|
||||
@GDK_INVERT: <literal>dst = NOT dst</literal>
|
||||
@GDK_XOR: <literal>dst = src XOR dst</literal>
|
||||
@GDK_CLEAR: <literal>dst = 0</literal>
|
||||
@GDK_AND: <literal>dst = dst AND src</literal>
|
||||
@GDK_AND_REVERSE: <literal>dst = src AND (NOT dst)</literal>
|
||||
@GDK_AND_INVERT: <literal>dst = (NOT src) AND dst</literal>
|
||||
@GDK_NOOP: <literal>dst = dst</literal>
|
||||
@GDK_OR: <literal>dst = src OR dst</literal>
|
||||
@GDK_EQUIV: <literal>dst = (NOT src) XOR dst</literal>
|
||||
@GDK_OR_REVERSE: <literal>dst = src OR (NOT dst)</literal>
|
||||
@GDK_COPY_INVERT: <literal>dst = NOT src</literal>
|
||||
@GDK_OR_INVERT: <literal>dst = (NOT src) OR dst</literal>
|
||||
@GDK_NAND: <literal>dst = (NOT src) OR (NOT dst)</literal>
|
||||
@GDK_NOR: <literal>dst = (NOT src) AND (NOT dst)</literal>
|
||||
@GDK_SET: <literal>dst = 1</literal>
|
||||
|
||||
<!-- ##### FUNCTION gdk_gc_new ##### -->
|
||||
<para>
|
||||
</para>
|
||||
|
||||
@drawable:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_gc_new_with_values ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@drawable:
|
||||
@values:
|
||||
@values_mask:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_gc_get_screen ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@gc:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_gc_set_values ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@gc:
|
||||
@values:
|
||||
@values_mask:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_gc_get_values ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@gc:
|
||||
@values:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_gc_set_foreground ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@gc:
|
||||
@color:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_gc_set_background ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@gc:
|
||||
@color:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_gc_set_rgb_fg_color ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@gc:
|
||||
@color:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_gc_set_rgb_bg_color ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@gc:
|
||||
@color:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_gc_set_function ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@gc:
|
||||
@function:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_gc_set_fill ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@gc:
|
||||
@fill:
|
||||
|
||||
|
||||
<!-- ##### ENUM GdkFill ##### -->
|
||||
<para>
|
||||
Determines how primitives are drawn.
|
||||
</para>
|
||||
|
||||
@GDK_SOLID: draw with the foreground color.
|
||||
@GDK_TILED: draw with a tiled pixmap.
|
||||
@GDK_STIPPLED: draw using the stipple bitmap. Pixels corresponding
|
||||
to bits in the stipple bitmap that are set will be drawn in the
|
||||
foreground color; pixels corresponding to bits that are
|
||||
not set will be left untouched.
|
||||
@GDK_OPAQUE_STIPPLED: draw using the stipple bitmap. Pixels corresponding
|
||||
to bits in the stipple bitmap that are set will be drawn in the
|
||||
foreground color; pixels corresponding to bits that are
|
||||
not set will be drawn with the background color.
|
||||
|
||||
<!-- ##### FUNCTION gdk_gc_set_tile ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@gc:
|
||||
@tile:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_gc_set_stipple ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@gc:
|
||||
@stipple:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_gc_set_ts_origin ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@gc:
|
||||
@x:
|
||||
@y:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_gc_set_clip_origin ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@gc:
|
||||
@x:
|
||||
@y:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_gc_set_clip_mask ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@gc:
|
||||
@mask:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_gc_set_clip_rectangle ##### -->
|
||||
<para>
|
||||
</para>
|
||||
|
||||
@gc:
|
||||
@rectangle:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_gc_set_clip_region ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@gc:
|
||||
@region:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_gc_set_subwindow ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@gc:
|
||||
@mode:
|
||||
|
||||
|
||||
<!-- ##### ENUM GdkSubwindowMode ##### -->
|
||||
<para>
|
||||
Determines how drawing onto a window will affect child
|
||||
windows of that window.
|
||||
</para>
|
||||
|
||||
@GDK_CLIP_BY_CHILDREN: only draw onto the window itself.
|
||||
@GDK_INCLUDE_INFERIORS: draw onto the window and child windows.
|
||||
|
||||
<!-- ##### FUNCTION gdk_gc_set_exposures ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@gc:
|
||||
@exposures:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_gc_set_line_attributes ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@gc:
|
||||
@line_width:
|
||||
@line_style:
|
||||
@cap_style:
|
||||
@join_style:
|
||||
|
||||
|
||||
<!-- ##### ENUM GdkLineStyle ##### -->
|
||||
<para>
|
||||
Determines how lines are drawn.
|
||||
</para>
|
||||
|
||||
@GDK_LINE_SOLID: lines are drawn solid.
|
||||
@GDK_LINE_ON_OFF_DASH: even segments are drawn; odd segments are not drawn.
|
||||
@GDK_LINE_DOUBLE_DASH: even segments are normally. Odd segments are drawn
|
||||
in the background color if the fill style is %GDK_SOLID, or in the background
|
||||
color masked by the stipple if the fill style is %GDK_STIPPLED.
|
||||
|
||||
<!-- ##### ENUM GdkCapStyle ##### -->
|
||||
<para>
|
||||
Determines how the end of lines are drawn.
|
||||
</para>
|
||||
|
||||
@GDK_CAP_NOT_LAST: the same as %GDK_CAP_BUTT for lines of non-zero width.
|
||||
for zero width lines, the final point on the line will not be drawn.
|
||||
@GDK_CAP_BUTT: the ends of the lines are drawn squared off and extending
|
||||
to the coordinates of the end point.
|
||||
@GDK_CAP_ROUND: the ends of the lines are drawn as semicircles with the
|
||||
diameter equal to the line width and centered at the end point.
|
||||
@GDK_CAP_PROJECTING: the ends of the lines are drawn squared off and extending
|
||||
half the width of the line beyond the end point.
|
||||
|
||||
<!-- ##### ENUM GdkJoinStyle ##### -->
|
||||
<para>
|
||||
Determines how the joins between segments of a polygon are drawn.
|
||||
</para>
|
||||
|
||||
@GDK_JOIN_MITER: the sides of each line are extended to meet at an angle.
|
||||
@GDK_JOIN_ROUND: the sides of the two lines are joined by a circular arc.
|
||||
@GDK_JOIN_BEVEL: the sides of the two lines are joined by a straight line which
|
||||
makes an equal angle with each line.
|
||||
|
||||
<!-- ##### FUNCTION gdk_gc_set_dashes ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@gc:
|
||||
@dash_offset:
|
||||
@dash_list:
|
||||
@n:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_gc_copy ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@dst_gc:
|
||||
@src_gc:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_gc_set_colormap ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@gc:
|
||||
@colormap:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_gc_get_colormap ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@gc:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_gc_offset ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@gc:
|
||||
@x_offset:
|
||||
@y_offset:
|
||||
|
||||
|
||||
@@ -190,6 +190,15 @@ of an X display. All its fields are private and should not be accessed directly.
|
||||
@display:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_display_is_closed ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@display:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_display_list_devices ##### -->
|
||||
<para>
|
||||
|
||||
|
||||
@@ -77,33 +77,6 @@ when GDK gets multihead support.
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_screen_get_default_colormap ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@screen:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_screen_set_default_colormap ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@screen:
|
||||
@colormap:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_screen_get_system_colormap ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@screen:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_screen_get_system_visual ##### -->
|
||||
<para>
|
||||
|
||||
@@ -113,33 +86,6 @@ when GDK gets multihead support.
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_screen_get_rgb_colormap ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@screen:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_screen_get_rgb_visual ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@screen:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_screen_get_rgba_colormap ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@screen:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_screen_get_rgba_visual ##### -->
|
||||
<para>
|
||||
|
||||
|
||||
@@ -329,37 +329,25 @@ available.
|
||||
|
||||
<!-- ##### FUNCTION gdk_error_trap_push ##### -->
|
||||
<para>
|
||||
This function allows X errors to be trapped instead of the normal behavior
|
||||
of exiting the application. It should only be used if it is not possible to
|
||||
avoid the X error in any other way.
|
||||
|
||||
</para>
|
||||
<example>
|
||||
<title>Trapping an X error</title>
|
||||
<programlisting>
|
||||
gdk_error_trap_push (<!-- -->);
|
||||
|
||||
/* ... Call the X function which may cause an error here ... */
|
||||
|
||||
/* Flush the X queue to catch errors now. */
|
||||
gdk_flush (<!-- -->);
|
||||
|
||||
if (gdk_error_trap_pop (<!-- -->))
|
||||
{
|
||||
/* ... Handle the error here ... */
|
||||
}
|
||||
</programlisting>
|
||||
</example>
|
||||
|
||||
@void:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_error_trap_pop ##### -->
|
||||
<!-- ##### MACRO gdk_error_trap_pop ##### -->
|
||||
<para>
|
||||
Removes the X error trap installed with gdk_error_trap_push().
|
||||
|
||||
</para>
|
||||
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_error_trap_pop_ignored ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@void:
|
||||
@Returns: the X error code, or 0 if no error occurred.
|
||||
|
||||
|
||||
<!-- ##### MACRO GDK_WINDOWING_X11 ##### -->
|
||||
|
||||
@@ -1,228 +0,0 @@
|
||||
<!-- ##### SECTION Title ##### -->
|
||||
Images
|
||||
|
||||
<!-- ##### SECTION Short_Description ##### -->
|
||||
A client-side area for bit-mapped graphics
|
||||
|
||||
<!-- ##### SECTION Long_Description ##### -->
|
||||
<para>
|
||||
The #GdkImage type represents an area for drawing graphics.
|
||||
It has now been superceded to a large extent by the much more flexible
|
||||
<link linkend="gdk-GdkRGB">GdkRGB</link> functions.
|
||||
</para>
|
||||
<para>
|
||||
To create an empty #GdkImage use gdk_image_new().
|
||||
To create an image from part of a #GdkWindow use gdk_drawable_get_image().
|
||||
</para>
|
||||
<para>
|
||||
The image can be manipulated with gdk_image_get_pixel() and
|
||||
gdk_image_put_pixel(), or alternatively by changing the actual pixel data.
|
||||
Though manipulating the pixel data requires complicated code to cope with
|
||||
the different formats that may be used.
|
||||
</para>
|
||||
<para>
|
||||
To draw a #GdkImage in a #GdkWindow or #GdkPixmap use gdk_draw_image().
|
||||
</para>
|
||||
<para>
|
||||
To destroy a #GdkImage use g_object_unref().
|
||||
</para>
|
||||
|
||||
<!-- ##### SECTION See_Also ##### -->
|
||||
<para>
|
||||
<variablelist>
|
||||
|
||||
<varlistentry>
|
||||
<term><link linkend="gdk-Bitmaps-and-Pixmaps">Bitmaps and Pixmaps</link></term>
|
||||
<listitem><para>
|
||||
Graphics which are stored on the X Windows server.
|
||||
Since these are stored on the server they can be drawn very quickly, and all
|
||||
of the <link linkend="gdk-Drawing-Primitives">Drawing Primitives</link> can be
|
||||
used to draw on them. Their main disadvantage is that manipulating individual
|
||||
pixels can be very slow.
|
||||
</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><link linkend="gdk-GdkRGB">GdkRGB</link></term>
|
||||
<listitem><para>
|
||||
Built on top of #GdkImage, this provides much more functionality,
|
||||
including the dithering of colors to produce better output on low-color
|
||||
displays.
|
||||
</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
</para>
|
||||
|
||||
<!-- ##### SECTION Stability_Level ##### -->
|
||||
|
||||
|
||||
<!-- ##### SECTION Image ##### -->
|
||||
|
||||
|
||||
<!-- ##### STRUCT GdkImage ##### -->
|
||||
<para>
|
||||
The #GdkImage struct contains information on the image and the pixel data.
|
||||
</para>
|
||||
|
||||
@parent_instance: the parent instance
|
||||
|
||||
<!-- ##### FUNCTION gdk_image_new ##### -->
|
||||
<para>
|
||||
Creates a new #GdkImage.
|
||||
</para>
|
||||
|
||||
@type: the type of the #GdkImage, one of %GDK_IMAGE_NORMAL, %GDK_IMAGE_SHARED
|
||||
and %GDK_IMAGE_FASTEST. %GDK_IMAGE_FASTEST is probably the best choice, since
|
||||
it will try creating a %GDK_IMAGE_SHARED image first and if that fails it will
|
||||
then use %GDK_IMAGE_NORMAL.
|
||||
@visual: the #GdkVisual to use for the image.
|
||||
@width: the width of the image in pixels.
|
||||
@height: the height of the image in pixels.
|
||||
@Returns: a new #GdkImage, or %NULL if the image could not be created.
|
||||
|
||||
|
||||
<!-- ##### ENUM GdkImageType ##### -->
|
||||
<para>
|
||||
Specifies the type of a #GdkImage.
|
||||
</para>
|
||||
|
||||
@GDK_IMAGE_NORMAL: The original X image type, which is quite slow since the
|
||||
image has to be transferred from the client to the server to display it.
|
||||
@GDK_IMAGE_SHARED: A faster image type, which uses shared memory to transfer
|
||||
the image data between client and server. However this will only be available
|
||||
if client and server are on the same machine and the shared memory extension
|
||||
is supported by the server.
|
||||
@GDK_IMAGE_FASTEST: Specifies that %GDK_IMAGE_SHARED should be tried first,
|
||||
and if that fails then %GDK_IMAGE_NORMAL will be used.
|
||||
|
||||
<!-- ##### FUNCTION gdk_image_get_colormap ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@image:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_image_set_colormap ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@image:
|
||||
@colormap:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_image_get_bits_per_pixel ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@image:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_image_get_bytes_per_pixel ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@image:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_image_get_bytes_per_line ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@image:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_image_get_byte_order ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@image:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_image_get_depth ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@image:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_image_get_height ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@image:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_image_get_image_type ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@image:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_image_get_visual ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@image:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_image_get_width ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@image:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_image_get_pixels ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@image:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_image_put_pixel ##### -->
|
||||
<para>
|
||||
Sets a pixel in a #GdkImage to a given pixel value.
|
||||
</para>
|
||||
|
||||
@image: a #GdkImage.
|
||||
@x: the x coordinate of the pixel to set.
|
||||
@y: the y coordinate of the pixel to set.
|
||||
@pixel: the pixel value to set.
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_image_get_pixel ##### -->
|
||||
<para>
|
||||
Gets a pixel value at a specified position in a #GdkImage.
|
||||
</para>
|
||||
|
||||
@image: a #GdkImage.
|
||||
@x: the x coordinate of the pixel to get.
|
||||
@y: the y coordinate of the pixel to get.
|
||||
@Returns: the pixel value at the given position.
|
||||
|
||||
|
||||
@@ -11,13 +11,12 @@ They appear in the <structfield>keyval</structfield> field of the
|
||||
#GdkEventKey structure, which is passed to signal handlers for the
|
||||
"key-press-event" and "key-release-event" signals.
|
||||
The complete list of key values can be found in the <filename><gdk/gdkkeysyms.h></filename>
|
||||
header file. <filename><gdk/gdkkeysyms.h></filename> is not included in <filename><gdk/gdk.h></filename>,
|
||||
it must be included independently, because the file is quite large.
|
||||
header file.
|
||||
</para>
|
||||
<para>
|
||||
Key values are regularly updated from the upstream X.org X11 implementation,
|
||||
so new values are added regularly. They will be prefixed with GDK_ rather than
|
||||
XF86XK_ or XK_ (for older symbols).
|
||||
so new values are added regularly. They will be prefixed with GDK_KEY_ rather
|
||||
than XF86XK_ or XK_ (for older symbols).
|
||||
</para>
|
||||
<para>
|
||||
Key values can be converted into a string representation using
|
||||
@@ -30,7 +29,7 @@ gdk_keyval_is_lower(). Key values can be converted to upper or lower case
|
||||
using gdk_keyval_to_upper() and gdk_keyval_to_lower().
|
||||
</para>
|
||||
<para>
|
||||
When it makes sense, key values can be converted to and from
|
||||
When it makes sense, key values can be converted to and from
|
||||
Unicode characters with gdk_keyval_to_unicode() and gdk_unicode_to_keyval().
|
||||
</para>
|
||||
|
||||
@@ -238,6 +237,15 @@ Returns: %PANGO_DIRECTION_LTR or %PANGO_DIRECTION_RTL.
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_keymap_get_num_lock_state ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@keymap:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_keymap_add_virtual_modifiers ##### -->
|
||||
<para>
|
||||
|
||||
@@ -261,7 +269,7 @@ Returns: %PANGO_DIRECTION_LTR or %PANGO_DIRECTION_RTL.
|
||||
<para>
|
||||
Converts a key value into a symbolic name.
|
||||
The names are the same as those in the <filename><gdk/gdkkeysyms.h></filename> header file
|
||||
but without the leading "GDK_".
|
||||
but without the leading "GDK_KEY_".
|
||||
</para>
|
||||
|
||||
@keyval: a key value.
|
||||
|
||||
@@ -7,9 +7,9 @@ Using Pango in GDK
|
||||
<!-- ##### SECTION Long_Description ##### -->
|
||||
<para>
|
||||
Pango is the text layout system used by GDK and GTK+. The functions
|
||||
and types in this section are used to render Pango objects to GDK.
|
||||
drawables, and also extend the set of Pango attributes to include
|
||||
stippling and embossing.
|
||||
and types in this section are used to obtain clip regions for
|
||||
#PangoLayouts, and to get #PangoContexts that can be used with
|
||||
GDK.
|
||||
</para>
|
||||
<para>
|
||||
Creating a #PangoLayout object is the first step in rendering text,
|
||||
@@ -24,52 +24,38 @@ between Pango units and pixels using <link
|
||||
linkend="PANGO-SCALE-CAPS">PANGO_SCALE</link> or the PANGO_PIXELS() macro.)
|
||||
</para>
|
||||
<para>
|
||||
Rendering a Pango layout is done most simply with gdk_draw_layout();
|
||||
you can also draw pieces of the layout with gdk_draw_layout() or
|
||||
gdk_draw_glyphs(). #GdkPangoRenderer is a subclass of #PangoRenderer
|
||||
that is used internally to implement these functions. Using it
|
||||
directly or subclassing it can be useful in some cases. See the
|
||||
#GdkPangoRenderer documentation for details.
|
||||
Rendering a Pango layout is done most simply with pango_cairo_show_layout();
|
||||
you can also draw pieces of the layout with pango_cairo_show_layout_line().
|
||||
</para>
|
||||
<example id="rotated-example">
|
||||
<title>Using #GdkPangoRenderer to draw transformed text</title>
|
||||
<title>Draw transformed text with Pango and cairo</title>
|
||||
<!-- Note that this example is basically the same as
|
||||
demos/gtk-demo/rotated_text.c -->
|
||||
<programlisting>
|
||||
#define RADIUS 100
|
||||
#define N_WORDS 10
|
||||
#define FONT "Sans Bold 18"
|
||||
|
||||
GdkScreen *screen = gdk_drawable_get_screen (drawable);
|
||||
PangoRenderer *renderer;
|
||||
GdkGC *gc;
|
||||
|
||||
PangoMatrix matrix = PANGO_MATRIX_INIT;
|
||||
PangoContext *context;
|
||||
PangoLayout *layout;
|
||||
PangoFontDescription *desc;
|
||||
|
||||
double device_radius;
|
||||
double radius;
|
||||
int width, height;
|
||||
int i;
|
||||
|
||||
/* Get the default renderer for the screen, and set it up for drawing */
|
||||
renderer = gdk_pango_renderer_get_default (screen);
|
||||
gdk_pango_renderer_set_drawable (GDK_PANGO_RENDERER (renderer), drawable);
|
||||
|
||||
gc = gdk_gc_new (drawable);
|
||||
gdk_pango_renderer_set_gc (GDK_PANGO_RENDERER (renderer), gc);
|
||||
|
||||
/* Set up a transformation matrix so that the user space coordinates for
|
||||
* where we are drawing are [-RADIUS, RADIUS], [-RADIUS, RADIUS]
|
||||
* We first center, then change the scale */
|
||||
gdk_drawable_get_size (drawable, &width, &height);
|
||||
device_radius = MIN (width, height) / 2.;
|
||||
|
||||
pango_matrix_translate (&matrix,
|
||||
device_radius + (width - 2 * device_radius) / 2,
|
||||
device_radius + (height - 2 * device_radius) / 2);
|
||||
pango_matrix_scale (&matrix, device_radius / RADIUS, device_radius / RADIUS);
|
||||
width = gdk_window_get_width (window);
|
||||
height = gdk_window_get_height (window);
|
||||
radius = MIN (width, height) / 2.;
|
||||
|
||||
cairo_translate (cr,
|
||||
radius + (width - 2 * radius) / 2,
|
||||
radius + (height - 2 * radius) / 2);
|
||||
cairo_scale (cr, radius / RADIUS, radius / RADIUS);
|
||||
|
||||
/* Create a PangoLayout, set the font and text */
|
||||
context = gdk_pango_context_get_for_screen (screen);
|
||||
@@ -82,41 +68,32 @@ pango_font_description_free (desc);
|
||||
/* Draw the layout N_WORDS times in a circle */
|
||||
for (i = 0; i < N_WORDS; i++)
|
||||
{
|
||||
GdkColor color;
|
||||
PangoMatrix rotated_matrix = matrix;
|
||||
int width, height;
|
||||
double angle = (360. * i) / N_WORDS;
|
||||
double red, green, blue;
|
||||
double angle = 2 * G_PI * i / n_words;
|
||||
|
||||
cairo_save (cr);
|
||||
|
||||
/* Gradient from red at angle == 60 to blue at angle == 300 */
|
||||
color.red = 65535 * (1 + cos ((angle - 60) * M_PI / 180.)) / 2;
|
||||
color.green = 0;
|
||||
color.blue = 65535 - color.red;
|
||||
|
||||
gdk_pango_renderer_set_override_color (GDK_PANGO_RENDERER (renderer),
|
||||
PANGO_RENDER_PART_FOREGROUND, &color);
|
||||
|
||||
pango_matrix_rotate (&rotated_matrix, angle);
|
||||
red = (1 + cos (angle - 60)) / 2;
|
||||
green = 0;
|
||||
blue = 1 - red;
|
||||
|
||||
cairo_set_source_rgb (cr, red, green, blue);
|
||||
cairo_rotate (cr, angle);
|
||||
|
||||
pango_context_set_matrix (context, &rotated_matrix);
|
||||
|
||||
/* Inform Pango to re-layout the text with the new transformation matrix */
|
||||
pango_layout_context_changed (layout);
|
||||
|
||||
pango_cairo_update_layout (cr, layout);
|
||||
|
||||
pango_layout_get_size (layout, &width, &height);
|
||||
pango_renderer_draw_layout (renderer, layout,
|
||||
- width / 2, - RADIUS * PANGO_SCALE);
|
||||
|
||||
cairo_move_to (cr, - width / 2 / PANGO_SCALE, - DEFAULT_TEXT_RADIUS);
|
||||
pango_cairo_show_layout (cr, layout);
|
||||
|
||||
cairo_restore (cr);
|
||||
}
|
||||
|
||||
/* Clean up default renderer, since it is shared */
|
||||
gdk_pango_renderer_set_override_color (GDK_PANGO_RENDERER (renderer),
|
||||
PANGO_RENDER_PART_FOREGROUND, NULL);
|
||||
gdk_pango_renderer_set_drawable (GDK_PANGO_RENDERER (renderer), NULL);
|
||||
gdk_pango_renderer_set_gc (GDK_PANGO_RENDERER (renderer), NULL);
|
||||
|
||||
/* free the objects we created */
|
||||
g_object_unref (layout);
|
||||
g_object_unref (context);
|
||||
g_object_unref (gc);
|
||||
</programlisting>
|
||||
</example>
|
||||
<figure>
|
||||
@@ -135,150 +112,6 @@ g_object_unref (gc);
|
||||
<!-- ##### SECTION Image ##### -->
|
||||
|
||||
|
||||
<!-- ##### STRUCT GdkPangoRenderer ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
|
||||
<!-- ##### ARG GdkPangoRenderer:screen ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### STRUCT GdkPangoRendererClass ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_pango_renderer_new ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@screen:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_pango_renderer_get_default ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@screen:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_pango_renderer_set_drawable ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@gdk_renderer:
|
||||
@drawable:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_pango_renderer_set_gc ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@gdk_renderer:
|
||||
@gc:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_pango_renderer_set_stipple ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@gdk_renderer:
|
||||
@part:
|
||||
@stipple:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_pango_renderer_set_override_color ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@gdk_renderer:
|
||||
@part:
|
||||
@color:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_pango_context_get ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@void:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_pango_context_get_for_screen ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@screen:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### STRUCT GdkPangoAttrEmbossed ##### -->
|
||||
<para>
|
||||
A Pango text attribute containing a embossed bitmap to be used when
|
||||
rendering the text.
|
||||
</para>
|
||||
|
||||
@attr: the #PangoAttribute.
|
||||
@embossed: the embossed bitmap.
|
||||
|
||||
<!-- ##### STRUCT GdkPangoAttrEmbossColor ##### -->
|
||||
<para>
|
||||
A Pango text attribute specifying the color to emboss text with.
|
||||
</para>
|
||||
|
||||
@attr: the #PangoAttribute
|
||||
@color: the color
|
||||
|
||||
<!-- ##### STRUCT GdkPangoAttrStipple ##### -->
|
||||
<para>
|
||||
A Pango text attribute containing a stipple bitmap to be used when
|
||||
rendering the text.
|
||||
</para>
|
||||
|
||||
@attr: the #PangoAttribute.
|
||||
@stipple: the stipple bitmap.
|
||||
|
||||
<!-- ##### FUNCTION gdk_pango_attr_emboss_color_new ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@color:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_pango_attr_embossed_new ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@embossed:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_pango_attr_stipple_new ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@stipple:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_pango_layout_get_clip_region ##### -->
|
||||
<para>
|
||||
|
||||
@@ -305,3 +138,21 @@ rendering the text.
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_pango_context_get ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@void:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_pango_context_get_for_screen ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@screen:
|
||||
@Returns:
|
||||
|
||||
|
||||
|
||||
@@ -1,102 +0,0 @@
|
||||
<!-- ##### SECTION Title ##### -->
|
||||
Pixbufs
|
||||
|
||||
<!-- ##### SECTION Short_Description ##### -->
|
||||
Functions for rendering pixbufs on drawables
|
||||
|
||||
<!-- ##### SECTION Long_Description ##### -->
|
||||
<para>
|
||||
These functions allow to render pixbufs on drawables. Pixbufs are
|
||||
client-side images. For details on how to create and manipulate
|
||||
pixbufs, see the #GdkPixbuf API documentation.
|
||||
</para>
|
||||
|
||||
<!-- ##### SECTION See_Also ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### SECTION Stability_Level ##### -->
|
||||
|
||||
|
||||
<!-- ##### SECTION Image ##### -->
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_pixbuf_render_threshold_alpha ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@pixbuf:
|
||||
@bitmap:
|
||||
@src_x:
|
||||
@src_y:
|
||||
@dest_x:
|
||||
@dest_y:
|
||||
@width:
|
||||
@height:
|
||||
@alpha_threshold:
|
||||
|
||||
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_pixbuf_render_pixmap_and_mask ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@pixbuf:
|
||||
@pixmap_return:
|
||||
@mask_return:
|
||||
@alpha_threshold:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_pixbuf_render_pixmap_and_mask_for_colormap ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@pixbuf:
|
||||
@colormap:
|
||||
@pixmap_return:
|
||||
@mask_return:
|
||||
@alpha_threshold:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_pixbuf_get_from_drawable ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@dest:
|
||||
@src:
|
||||
@cmap:
|
||||
@src_x:
|
||||
@src_y:
|
||||
@dest_x:
|
||||
@dest_y:
|
||||
@width:
|
||||
@height:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_pixbuf_get_from_image ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@dest:
|
||||
@src:
|
||||
@cmap:
|
||||
@src_x:
|
||||
@src_y:
|
||||
@dest_x:
|
||||
@dest_y:
|
||||
@width:
|
||||
@height:
|
||||
@Returns:
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ Offscreen drawables
|
||||
<para>
|
||||
Pixmaps are offscreen drawables. They can be drawn upon with the
|
||||
standard drawing primitives, then copied to another drawable (such as
|
||||
a #GdkWindow) with gdk_draw_drawable(). The depth of a pixmap
|
||||
a #GdkWindow). The depth of a pixmap
|
||||
is the number of bits per pixels. Bitmaps are simply pixmaps
|
||||
with a depth of 1. (That is, they are monochrome bitmaps - each
|
||||
pixel can be either on or off).
|
||||
@@ -49,78 +49,6 @@ for the new pixmap. Can be %NULL if @depth is specified,
|
||||
@Returns: the #GdkPixmap
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_bitmap_create_from_data ##### -->
|
||||
<para>
|
||||
Creates a new bitmap from data in XBM format.
|
||||
</para>
|
||||
|
||||
@drawable: a #GdkDrawable, used to determine default values
|
||||
for the new pixmap. Can be %NULL, in which case the root
|
||||
window is used.
|
||||
@data: a pointer to the XBM data.
|
||||
@width: the width of the new pixmap in pixels.
|
||||
@height: the height of the new pixmap in pixels.
|
||||
@Returns: the #GdkBitmap
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_pixmap_create_from_data ##### -->
|
||||
<para>
|
||||
Create a two-color pixmap from data in XBM data.
|
||||
</para>
|
||||
|
||||
@drawable: a #GdkDrawable, used to determine default values
|
||||
for the new pixmap. Can be %NULL, if the depth is given.
|
||||
@data: a pointer to the data.
|
||||
@width: the width of the new pixmap in pixels.
|
||||
@height: the height of the new pixmap in pixels.
|
||||
@depth: the depth (number of bits per pixel) of the new pixmap.
|
||||
@fg: the foreground color.
|
||||
@bg: the background color.
|
||||
@Returns: the #GdkPixmap
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_pixmap_create_from_xpm ##### -->
|
||||
|
||||
|
||||
@drawable:
|
||||
@mask:
|
||||
@transparent_color:
|
||||
@filename:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_pixmap_colormap_create_from_xpm ##### -->
|
||||
|
||||
|
||||
@drawable:
|
||||
@colormap:
|
||||
@mask:
|
||||
@transparent_color:
|
||||
@filename:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_pixmap_create_from_xpm_d ##### -->
|
||||
|
||||
|
||||
@drawable:
|
||||
@mask:
|
||||
@transparent_color:
|
||||
@data:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_pixmap_colormap_create_from_xpm_d ##### -->
|
||||
|
||||
|
||||
@drawable:
|
||||
@colormap:
|
||||
@mask:
|
||||
@transparent_color:
|
||||
@data:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### TYPEDEF GdkBitmap ##### -->
|
||||
<para>
|
||||
An opaque structure representing an offscreen drawable of depth
|
||||
|
||||
@@ -1,72 +0,0 @@
|
||||
<!-- ##### SECTION Title ##### -->
|
||||
Points and Rectangles
|
||||
|
||||
<!-- ##### SECTION Short_Description ##### -->
|
||||
Simple graphical data types
|
||||
|
||||
<!-- ##### SECTION Long_Description ##### -->
|
||||
<para>
|
||||
GDK provides the #GdkPoint and #GdkRectangle data types for representing pixels
|
||||
and sets of pixels on the screen. Together with Cairo's #cairo_region_t data
|
||||
type, they make up the central types for representing graphical data.
|
||||
</para>
|
||||
<para>
|
||||
#GdkPoint is a simple structure containing an x and y coordinate of a point.
|
||||
</para>
|
||||
<para>
|
||||
#GdkRectangle is a structure holding the position and size of a rectangle.
|
||||
The intersection of two rectangles can be computed with
|
||||
gdk_rectangle_intersect(). To find the union of two rectangles use
|
||||
gdk_rectangle_union().
|
||||
</para>
|
||||
<para>
|
||||
#cairo_region_t is usually used for managing clipping of graphical operations.
|
||||
</para>
|
||||
|
||||
<!-- ##### SECTION See_Also ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### SECTION Stability_Level ##### -->
|
||||
|
||||
|
||||
<!-- ##### SECTION Image ##### -->
|
||||
|
||||
|
||||
<!-- ##### STRUCT GdkPoint ##### -->
|
||||
<para>
|
||||
Defines the x and y coordinates of a point.
|
||||
</para>
|
||||
|
||||
@x: the x coordinate of the point.
|
||||
@y: the y coordinate of the point.
|
||||
|
||||
<!-- ##### TYPEDEF GdkRectangle ##### -->
|
||||
<para>
|
||||
Defines the position and size of a rectangle. It is identical to
|
||||
#cairo_rectangle_int_t.
|
||||
</para>
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_rectangle_intersect ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@src1:
|
||||
@src2:
|
||||
@dest:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_rectangle_union ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@src1:
|
||||
@src2:
|
||||
@dest:
|
||||
|
||||
|
||||
@@ -1,410 +0,0 @@
|
||||
<!-- ##### SECTION Title ##### -->
|
||||
GdkRGB
|
||||
|
||||
<!-- ##### SECTION Short_Description ##### -->
|
||||
Renders RGB, grayscale, or indexed image data to a GdkDrawable
|
||||
|
||||
<!-- ##### SECTION Long_Description ##### -->
|
||||
|
||||
<para>
|
||||
GdkRGB is a low-level module which renders RGB, grayscale, and indexed
|
||||
colormap images to a #GdkDrawable. It does this as efficiently as
|
||||
possible, handling issues such as colormaps, visuals, dithering,
|
||||
temporary buffers, and so on. Most code should use the higher-level
|
||||
#GdkPixbuf features in place of this module; for example,
|
||||
gdk_draw_pixbuf() uses GdkRGB in its implementation.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
GdkRGB allocates a color cube to use when rendering images. You can
|
||||
set the threshold for installing colormaps with
|
||||
gdk_rgb_set_min_colors(). The default is 5x5x5 (125). If a colorcube
|
||||
of this size or larger can be allocated in the default colormap, then
|
||||
that's done. Otherwise, GdkRGB creates its own private colormap.
|
||||
Setting it to 0 means that it always tries to use the default
|
||||
colormap, and setting it to 216 means that it always creates a private
|
||||
one if it cannot allocate the 6x6x6 colormap in the default. If you
|
||||
always want a private colormap (to avoid consuming too many colormap
|
||||
entries for other apps, say), you can use
|
||||
<literal>gdk_rgb_set_install(TRUE)</literal>.
|
||||
Setting the value greater than 216 exercises a bug in older versions
|
||||
of GdkRGB. Note, however, that setting it to 0 doesn't let you get
|
||||
away with ignoring the colormap and visual - a colormap is always
|
||||
created in grayscale and direct color modes, and the visual is changed
|
||||
in cases where a "better" visual than the default is available.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
If GDK is built with the Sun mediaLib library, the GdkRGB functions are
|
||||
accelerated using mediaLib, which provides hardware acceleration on Intel,
|
||||
AMD, and Sparc chipsets. If desired, mediaLib support can be turned off
|
||||
by setting the GDK_DISABLE_MEDIALIB environment variable.
|
||||
</para>
|
||||
|
||||
<example>
|
||||
<title>A simple example program using GdkRGB</title>
|
||||
<programlisting>
|
||||
#include <gtk/gtk.h>
|
||||
|
||||
#define IMAGE_WIDTH 256
|
||||
#define IMAGE_HEIGHT 256
|
||||
|
||||
guchar rgbbuf[IMAGE_WIDTH * IMAGE_HEIGHT * 3];
|
||||
|
||||
gboolean on_darea_expose (GtkWidget *widget,
|
||||
GdkEventExpose *event,
|
||||
gpointer user_data);
|
||||
|
||||
int
|
||||
main (int argc, char *argv[])
|
||||
{
|
||||
GtkWidget *window, *darea;
|
||||
gint x, y;
|
||||
guchar *pos;
|
||||
|
||||
gtk_init (&argc, &argv);
|
||||
|
||||
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
|
||||
darea = gtk_drawing_area_new (<!-- -->);
|
||||
gtk_widget_set_size_request (darea, IMAGE_WIDTH, IMAGE_HEIGHT);
|
||||
gtk_container_add (GTK_CONTAINER (window), darea);
|
||||
gtk_signal_connect (GTK_OBJECT (darea), "expose-event",
|
||||
GTK_SIGNAL_FUNC (on_darea_expose), NULL);
|
||||
gtk_widget_show_all (window);
|
||||
|
||||
/* Set up the RGB buffer. */
|
||||
pos = rgbbuf;
|
||||
for (y = 0; y < IMAGE_HEIGHT; y++)
|
||||
{
|
||||
for (x = 0; x < IMAGE_WIDTH; x++)
|
||||
{
|
||||
*pos++ = x - x % 32; /* Red. */
|
||||
*pos++ = (x / 32) * 4 + y - y % 32; /* Green. */
|
||||
*pos++ = y - y % 32; /* Blue. */
|
||||
}
|
||||
}
|
||||
|
||||
gtk_main (<!-- -->);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
gboolean
|
||||
on_darea_expose (GtkWidget *widget,
|
||||
GdkEventExpose *event,
|
||||
gpointer user_data)
|
||||
{
|
||||
gdk_draw_rgb_image (widget->window, widget->style->fg_gc[GTK_STATE_NORMAL],
|
||||
0, 0, IMAGE_WIDTH, IMAGE_HEIGHT,
|
||||
GDK_RGB_DITHER_MAX, rgbbuf, IMAGE_WIDTH * 3);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
</programlisting>
|
||||
</example>
|
||||
|
||||
<!-- ##### SECTION See_Also ##### -->
|
||||
<para>
|
||||
<variablelist>
|
||||
|
||||
<varlistentry>
|
||||
<term>#GdkColor</term>
|
||||
<listitem><para>The underlying GDK mechanism for allocating
|
||||
colors.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>#GdkPixbuf and gdk_draw_pixbuf()</term>
|
||||
<listitem><para>Higher-level image handling.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### SECTION Stability_Level ##### -->
|
||||
|
||||
|
||||
<!-- ##### SECTION Image ##### -->
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_draw_rgb_image ##### -->
|
||||
<para>
|
||||
Draws an RGB image in the drawable. This is the core GdkRGB
|
||||
function, and likely the only one you will need to use.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The @rowstride parameter allows for lines to be aligned more flexibly.
|
||||
For example, lines may be allocated to begin on 32-bit boundaries,
|
||||
even if the width of the rectangle is odd. Rowstride is also useful
|
||||
when drawing a subrectangle of a larger image in memory. Finally, to
|
||||
replicate the same line a number of times, the trick of setting
|
||||
@rowstride to 0 is allowed.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
In general, for 0 <= i < @width and 0 <= j < height,
|
||||
the pixel (x + i, y + j) is colored with red value @rgb_buf[@j *
|
||||
@rowstride + @i * 3], green value @rgb_buf[@j * @rowstride + @i * 3 +
|
||||
1], and blue value @rgb_buf[@j * @rowstride + @i * 3 + 2].
|
||||
</para>
|
||||
|
||||
@drawable: The #GdkDrawable to draw in (usually a #GdkWindow).
|
||||
@gc: The graphics context (all GDK drawing operations require one; its
|
||||
contents are ignored).
|
||||
@x: The x coordinate of the top-left corner in the drawable.
|
||||
@y: The y coordinate of the top-left corner in the drawable.
|
||||
@width: The width of the rectangle to be drawn.
|
||||
@height: The height of the rectangle to be drawn.
|
||||
@dith: A #GdkRgbDither value, selecting the desired dither mode.
|
||||
@rgb_buf: The pixel data, represented as packed 24-bit data.
|
||||
@rowstride: The number of bytes from the start of one row in @rgb_buf to the
|
||||
start of the next.
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_draw_rgb_image_dithalign ##### -->
|
||||
<para>
|
||||
Draws an RGB image in the drawable, with an adjustment for dither alignment.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
This function is useful when drawing dithered images into a window
|
||||
that may be scrolled. Pixel (x, y) will be drawn dithered as if its
|
||||
actual location is (x + @xdith, y + @ydith). Thus, if you draw an
|
||||
image into a window using zero dither alignment, then scroll up one
|
||||
pixel, subsequent draws to the window should have @ydith = 1.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Setting the dither alignment correctly allows updating of small parts
|
||||
of the screen while avoiding visible "seams" between the different
|
||||
dither textures.
|
||||
</para>
|
||||
|
||||
@drawable: The #GdkDrawable to draw in (usually a #GdkWindow).
|
||||
@gc: The graphics context.
|
||||
@x: The x coordinate of the top-left corner in the drawable.
|
||||
@y: The y coordinate of the top-left corner in the drawable.
|
||||
@width: The width of the rectangle to be drawn.
|
||||
@height: The height of the rectangle to be drawn.
|
||||
@dith: A #GdkRgbDither value, selecting the desired dither mode.
|
||||
@rgb_buf: The pixel data, represented as packed 24-bit data.
|
||||
@rowstride: The number of bytes from the start of one row in @rgb_buf to the
|
||||
start of the next.
|
||||
@xdith: An x offset for dither alignment.
|
||||
@ydith: A y offset for dither alignment.
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_draw_indexed_image ##### -->
|
||||
<para>
|
||||
Draws an indexed image in the drawable, using a #GdkRgbCmap to assign
|
||||
actual colors to the color indices.
|
||||
</para>
|
||||
|
||||
@drawable: The #GdkDrawable to draw in (usually a #GdkWindow).
|
||||
@gc: The graphics context.
|
||||
@x: The x coordinate of the top-left corner in the drawable.
|
||||
@y: The y coordinate of the top-left corner in the drawable.
|
||||
@width: The width of the rectangle to be drawn.
|
||||
@height: The height of the rectangle to be drawn.
|
||||
@dith: A #GdkRgbDither value, selecting the desired dither mode.
|
||||
@buf: The pixel data, represented as 8-bit color indices.
|
||||
@rowstride: The number of bytes from the start of one row in @buf to the
|
||||
start of the next.
|
||||
@cmap: The #GdkRgbCmap used to assign colors to the color indices.
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_draw_gray_image ##### -->
|
||||
<para>
|
||||
Draws a grayscale image in the drawable.
|
||||
|
||||
</para>
|
||||
|
||||
@drawable: The #GdkDrawable to draw in (usually a #GdkWindow).
|
||||
@gc: The graphics context.
|
||||
@x: The x coordinate of the top-left corner in the drawable.
|
||||
@y: The y coordinate of the top-left corner in the drawable.
|
||||
@width: The width of the rectangle to be drawn.
|
||||
@height: The height of the rectangle to be drawn.
|
||||
@dith: A #GdkRgbDither value, selecting the desired dither mode.
|
||||
@buf: The pixel data, represented as 8-bit gray values.
|
||||
@rowstride: The number of bytes from the start of one row in @buf to the
|
||||
start of the next.
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_draw_rgb_32_image ##### -->
|
||||
<para>
|
||||
Draws a padded RGB image in the drawable. The image is stored as one
|
||||
pixel per 32-bit word. It is laid out as a red byte, a green byte, a
|
||||
blue byte, and a padding byte.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
It's unlikely that this function will give significant performance
|
||||
gains in practice. In my experience, the performance gain from having
|
||||
pixels aligned to 32-bit boundaries is cancelled out by the increased
|
||||
memory bandwidth.
|
||||
</para>
|
||||
|
||||
@drawable: The #GdkDrawable to draw in (usually a #GdkWindow).
|
||||
@gc: The graphics context.
|
||||
@x: The x coordinate of the top-left corner in the drawable.
|
||||
@y: The y coordinate of the top-left corner in the drawable.
|
||||
@width: The width of the rectangle to be drawn.
|
||||
@height: The height of the rectangle to be drawn.
|
||||
@dith: A #GdkRgbDither value, selecting the desired dither mode.
|
||||
@buf: The pixel data, represented as padded 32-bit data.
|
||||
@rowstride: The number of bytes from the start of one row in @buf to the
|
||||
start of the next.
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_draw_rgb_32_image_dithalign ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@drawable:
|
||||
@gc:
|
||||
@x:
|
||||
@y:
|
||||
@width:
|
||||
@height:
|
||||
@dith:
|
||||
@buf:
|
||||
@rowstride:
|
||||
@xdith:
|
||||
@ydith:
|
||||
|
||||
|
||||
<!-- ##### ENUM GdkRgbDither ##### -->
|
||||
<para>
|
||||
Selects whether or not GdkRGB applies dithering
|
||||
to the image on display.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Since GdkRGB currently only handles images with 8 bits per component,
|
||||
dithering on 24 bit per pixel displays is a moot point.
|
||||
</para>
|
||||
|
||||
@GDK_RGB_DITHER_NONE: Never use dithering.
|
||||
@GDK_RGB_DITHER_NORMAL: Use dithering in 8 bits per pixel (and below)
|
||||
only.
|
||||
@GDK_RGB_DITHER_MAX: Use dithering in 16 bits per pixel and below.
|
||||
|
||||
<!-- ##### FUNCTION gdk_rgb_cmap_new ##### -->
|
||||
<para>
|
||||
Creates a new #GdkRgbCmap structure. The cmap maps color indexes to
|
||||
RGB colors. If @n_colors is less than 256, then images containing
|
||||
color values greater than or equal to @n_colors will produce undefined
|
||||
results, including possibly segfaults.
|
||||
</para>
|
||||
|
||||
@colors: The colors, represented as 0xRRGGBB integer values.
|
||||
@n_colors: The number of colors in the cmap.
|
||||
@Returns: The newly created #GdkRgbCmap
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_rgb_cmap_free ##### -->
|
||||
<para>
|
||||
Frees the memory associated with a #GdkRgbCmap created by gdk_rgb_cmap_new().
|
||||
</para>
|
||||
|
||||
@cmap: The #GdkRgbCmap to free.
|
||||
|
||||
|
||||
<!-- ##### STRUCT GdkRgbCmap ##### -->
|
||||
<para>
|
||||
A private data structure which maps color indices to actual RGB
|
||||
colors. This is used only for gdk_draw_indexed_image().
|
||||
</para>
|
||||
|
||||
@colors: The colors, represented as 0xRRGGBB integer values.
|
||||
@n_colors: The number of colors in the cmap.
|
||||
|
||||
<!-- ##### FUNCTION gdk_rgb_find_color ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@colormap:
|
||||
@color:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_rgb_set_install ##### -->
|
||||
<para>
|
||||
If @install is %TRUE, directs GdkRGB to always install a new "private"
|
||||
colormap rather than trying to find a best fit with the colors already
|
||||
allocated. Ordinarily, GdkRGB will install a colormap only if a
|
||||
sufficient cube cannot be allocated.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
A private colormap has more colors, leading to better quality display,
|
||||
but also leads to the dreaded "colormap flashing" effect.
|
||||
</para>
|
||||
|
||||
@install: %TRUE to set install mode.
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_rgb_set_min_colors ##### -->
|
||||
<para>
|
||||
Sets the minimum number of colors for the color cube. Generally,
|
||||
GdkRGB tries to allocate the largest color cube it can. If it can't
|
||||
allocate a color cube at least as large as @min_colors, it installs a
|
||||
private colormap.
|
||||
</para>
|
||||
|
||||
@min_colors: The minimum number of colors accepted.
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_rgb_get_visual ##### -->
|
||||
<para>
|
||||
</para>
|
||||
|
||||
@void:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_rgb_get_colormap ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@void:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_rgb_ditherable ##### -->
|
||||
<para>
|
||||
Determines whether the preferred visual is ditherable. This function may be
|
||||
useful for presenting a user interface choice to the user about which
|
||||
dither mode is desired; if the display is not ditherable, it may make
|
||||
sense to gray out or hide the corresponding UI widget.
|
||||
</para>
|
||||
|
||||
@void:
|
||||
@Returns: %TRUE if the preferred visual is ditherable.
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_rgb_colormap_ditherable ##### -->
|
||||
<para>
|
||||
Determines whether the visual associated with @cmap is ditherable. This
|
||||
function may be useful for presenting a user interface choice to the user
|
||||
about which dither mode is desired; if the display is not ditherable, it may
|
||||
make sense to gray out or hide the corresponding UI widget.
|
||||
</para>
|
||||
|
||||
@cmap: a #GdkColormap
|
||||
@Returns: %TRUE if the visual associated with @cmap is ditherable.
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_rgb_set_verbose ##### -->
|
||||
<para>
|
||||
Sets the "verbose" flag. This is generally only useful for debugging.
|
||||
</para>
|
||||
|
||||
@verbose: %TRUE if verbose messages are desired.
|
||||
|
||||
|
||||
@@ -300,13 +300,6 @@ Leaves a critical region begun with gdk_threads_enter().
|
||||
@void:
|
||||
|
||||
|
||||
<!-- ##### VARIABLE gdk_threads_mutex ##### -->
|
||||
<para>
|
||||
The #GMutex used to implement the critical region for
|
||||
gdk_threads_enter()/gdk_threads_leave().
|
||||
</para>
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_threads_set_lock_functions ##### -->
|
||||
<para>
|
||||
|
||||
|
||||
@@ -17,21 +17,9 @@ of an RGB pixel may be in the top 8 bits of the pixel, or may be in the lower
|
||||
4 bits.
|
||||
</para>
|
||||
<para>
|
||||
Usually you can avoid thinking about visuals in GTK+. Visuals are useful to
|
||||
interpret the contents of a #GdkImage, but you should avoid #GdkImage precisely
|
||||
because its contents depend on the display hardware; use #GdkPixbuf instead, for
|
||||
all but the most low-level purposes. Also, anytime you provide a #GdkColormap,
|
||||
the visual is implied as part of the colormap (gdk_colormap_get_visual()), so
|
||||
you won't have to provide a visual in addition.
|
||||
</para>
|
||||
<para>
|
||||
There are several standard visuals. The visual returned
|
||||
by gdk_visual_get_system() is the system's default
|
||||
visual. gdk_rgb_get_visual() return the visual most
|
||||
suited to displaying full-color image data. If you
|
||||
use the calls in #GdkRGB, you should create your windows
|
||||
using this visual (and the colormap returned by
|
||||
gdk_rgb_get_colormap()).
|
||||
by gdk_screen_get_system_visual() is the system's default
|
||||
visual.
|
||||
</para>
|
||||
<para>
|
||||
A number of functions are provided for determining
|
||||
@@ -48,7 +36,7 @@ then %GDK_VISUAL_STATIC_GRAY.
|
||||
|
||||
<!-- ##### SECTION See_Also ##### -->
|
||||
<para>
|
||||
#GdkImage, #GdkColormap, #GdkRGB
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### SECTION Stability_Level ##### -->
|
||||
|
||||
@@ -6,7 +6,17 @@ X backend-specific functions
|
||||
|
||||
<!-- ##### SECTION Long_Description ##### -->
|
||||
<para>
|
||||
|
||||
The functions in this section are specific to the GDK X11 backend.
|
||||
To use them, you need to include the <literal><gdk/gdkx.h></literal>
|
||||
header and use the X11-specific pkg-config files to build your application
|
||||
(either <literal>gdk-x11-3.0</literal> or <literal>gtk+-x11-3.0</literal>.
|
||||
To make your code compile with other GDK backends, guard backend-specific
|
||||
calls by an ifdef as follows:
|
||||
<informalexample><programlisting>
|
||||
#ifdef GDK_WINDOWING_X11
|
||||
/* X11-specific calls here... */
|
||||
#endif
|
||||
</programlisting></informalexample>
|
||||
</para>
|
||||
|
||||
<!-- ##### SECTION See_Also ##### -->
|
||||
@@ -27,14 +37,6 @@ Obtains the Xlib window id of the root window of the current screen.
|
||||
|
||||
|
||||
|
||||
<!-- ##### MACRO GDK_DISPLAY ##### -->
|
||||
<para>
|
||||
The current display.
|
||||
</para>
|
||||
|
||||
@Returns: an Xlib <type>Display*</type>.
|
||||
|
||||
|
||||
<!-- ##### MACRO GDK_WINDOW_XDISPLAY ##### -->
|
||||
<para>
|
||||
Returns the display of a #GdkWindow.
|
||||
@@ -53,24 +55,6 @@ Returns the X window belonging to a #GdkWindow.
|
||||
@Returns: the Xlib <type>Window</type> of @win.
|
||||
|
||||
|
||||
<!-- ##### MACRO GDK_PIXMAP_XDISPLAY ##### -->
|
||||
<para>
|
||||
Returns the display of a #GdkPixmap.
|
||||
</para>
|
||||
|
||||
@pix: a #GdkPixmap.
|
||||
@Returns: an Xlib <type>Display*</type>.
|
||||
|
||||
|
||||
<!-- ##### MACRO GDK_PIXMAP_XID ##### -->
|
||||
<para>
|
||||
Returns the X pixmap belonging to a #GdkPixmap.
|
||||
</para>
|
||||
|
||||
@pix: a #GdkPixmap.
|
||||
@Returns: the Xlib <type>XPixmap</type> of @win.
|
||||
|
||||
|
||||
<!-- ##### MACRO GDK_DISPLAY_XDISPLAY ##### -->
|
||||
<para>
|
||||
Returns the display of a #GdkDisplay.
|
||||
@@ -97,51 +81,6 @@ Returns the X resource (window or pixmap) belonging to a #GdkDrawable.
|
||||
@Returns: the ID of @win's X resource.
|
||||
|
||||
|
||||
<!-- ##### MACRO GDK_IMAGE_XDISPLAY ##### -->
|
||||
<para>
|
||||
Returns the display of a #GdkImage.
|
||||
</para>
|
||||
|
||||
@image: a #GdkImage.
|
||||
@Returns: an Xlib <type>Display*</type>.
|
||||
|
||||
|
||||
<!-- ##### MACRO GDK_IMAGE_XIMAGE ##### -->
|
||||
<para>
|
||||
Returns the X image belonging to a #GdkImage.
|
||||
</para>
|
||||
|
||||
@image: a #GdkImage.
|
||||
@Returns: an <type>XImage*</type>.
|
||||
|
||||
|
||||
<!-- ##### MACRO GDK_GC_XDISPLAY ##### -->
|
||||
<para>
|
||||
Returns the display of a #GdkGC.
|
||||
</para>
|
||||
|
||||
@gc: a #GdkGC.
|
||||
@Returns: an Xlib <type>Display*</type>.
|
||||
|
||||
|
||||
<!-- ##### MACRO GDK_COLORMAP_XDISPLAY ##### -->
|
||||
<para>
|
||||
Returns the display of a #GdkColormap.
|
||||
</para>
|
||||
|
||||
@cmap: a #GdkColormap.
|
||||
@Returns: an Xlib <type>Display*</type>.
|
||||
|
||||
|
||||
<!-- ##### MACRO GDK_COLORMAP_XCOLORMAP ##### -->
|
||||
<para>
|
||||
Returns the X colormap belonging to a #GdkColormap.
|
||||
</para>
|
||||
|
||||
@cmap: a #GdkColormap.
|
||||
@Returns: an Xlib <type>Colormap</type>.
|
||||
|
||||
|
||||
<!-- ##### MACRO GDK_SCREEN_XDISPLAY ##### -->
|
||||
<para>
|
||||
Returns the display of a #GdkScreen.
|
||||
@@ -170,15 +109,6 @@ Returns the screen of a #GdkScreen.
|
||||
@Returns: an Xlib <type>Screen*</type>.
|
||||
|
||||
|
||||
<!-- ##### MACRO GDK_VISUAL_XVISUAL ##### -->
|
||||
<para>
|
||||
Returns the X visual belonging to a #GdkVisual.
|
||||
</para>
|
||||
|
||||
@vis: a #GdkVisual.
|
||||
@Returns: an Xlib <type>Visual*</type>.
|
||||
|
||||
|
||||
<!-- ##### MACRO GDK_CURSOR_XCURSOR ##### -->
|
||||
<para>
|
||||
Returns the X cursor belonging to a #GdkCursor.
|
||||
@@ -197,24 +127,6 @@ Returns the display of a #GdkCursor.
|
||||
@Returns: an Xlib <type>Display*</type>.
|
||||
|
||||
|
||||
<!-- ##### MACRO GDK_GC_XGC ##### -->
|
||||
<para>
|
||||
Returns the X GC of a #GdkGC.
|
||||
</para>
|
||||
|
||||
@gc: a #GdkGC.
|
||||
@Returns: an Xlib <type>GC</type>.
|
||||
|
||||
|
||||
<!-- ##### MACRO GDK_GC_GET_XGC ##### -->
|
||||
<para>
|
||||
Returns the X GC of a #GdkGC.
|
||||
</para>
|
||||
|
||||
@gc: a #GdkGC.
|
||||
@Returns: an Xlib <type>GC</type>.
|
||||
|
||||
|
||||
<!-- ##### MACRO GDK_WINDOW_XWINDOW ##### -->
|
||||
<para>
|
||||
Another name for GDK_DRAWABLE_XID().
|
||||
@@ -231,38 +143,6 @@ Another name for GDK_DRAWABLE_XID().
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_pixmap_foreign_new ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@anid:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_pixmap_foreign_new_for_display ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@display:
|
||||
@anid:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_pixmap_foreign_new_for_screen ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@screen:
|
||||
@anid:
|
||||
@width:
|
||||
@height:
|
||||
@depth:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_window_foreign_new ##### -->
|
||||
<para>
|
||||
|
||||
@@ -319,24 +199,6 @@ Another name for GDK_DRAWABLE_XID().
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_pixmap_lookup ##### -->
|
||||
<para>
|
||||
</para>
|
||||
|
||||
@anid:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_pixmap_lookup_for_display ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@display:
|
||||
@anid:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_x11_lookup_xdisplay ##### -->
|
||||
<para>
|
||||
|
||||
@@ -429,34 +291,6 @@ Another name for GDK_DRAWABLE_XID().
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_x11_colormap_foreign_new ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@visual:
|
||||
@xcolormap:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_x11_colormap_get_xcolormap ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@colormap:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_x11_colormap_get_xdisplay ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@colormap:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_x11_cursor_get_xcursor ##### -->
|
||||
<para>
|
||||
|
||||
@@ -519,6 +353,22 @@ Another name for GDK_DRAWABLE_XID().
|
||||
@display:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_x11_display_error_trap_push ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@display:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_x11_display_error_trap_pop_ignored ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@display:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_x11_display_set_cursor_theme ##### -->
|
||||
<para>
|
||||
|
||||
@@ -557,24 +407,6 @@ Another name for GDK_DRAWABLE_XID().
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_x11_gc_get_xdisplay ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@gc:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_x11_gc_get_xgc ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@gc:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_x11_get_default_root_xwindow ##### -->
|
||||
<para>
|
||||
|
||||
@@ -610,24 +442,6 @@ Another name for GDK_DRAWABLE_XID().
|
||||
@void:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_x11_image_get_xdisplay ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@image:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_x11_image_get_ximage ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@image:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_x11_screen_get_screen_number ##### -->
|
||||
<para>
|
||||
|
||||
|
||||
@@ -117,7 +117,6 @@ content_files = \
|
||||
running.sgml \
|
||||
building.sgml \
|
||||
compiling.sgml \
|
||||
directfb.sgml \
|
||||
drawing-model.xml \
|
||||
glossary.xml \
|
||||
migrating-2to3.xml \
|
||||
@@ -133,138 +132,141 @@ content_files = \
|
||||
gtk-query-immodules-3.0.xml \
|
||||
gtk-update-icon-cache-3.0.xml \
|
||||
gtk-builder-convert-3.0.xml \
|
||||
visual_index.xml
|
||||
visual_index.xml \
|
||||
getting_started.xml \
|
||||
overview.xml
|
||||
|
||||
expand_content_files = \
|
||||
drawing-model.xml \
|
||||
getting_started.xml \
|
||||
glossary.xml \
|
||||
migrating-2to3.xml \
|
||||
migrating-checklist.sgml \
|
||||
tree_widget.sgml \
|
||||
question_index.sgml \
|
||||
text_widget.sgml \
|
||||
question_index.sgml
|
||||
tree_widget.sgml
|
||||
|
||||
# Images to copy into HTML directory
|
||||
HTML_IMAGES = \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-about.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-add.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/help-about.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/list-add.png \
|
||||
$(top_srcdir)/gtk/stock-icons/20/gtk-apply.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-bold.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/format-text-bold.png \
|
||||
$(top_srcdir)/gtk/stock-icons/20/gtk-cancel.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-caps-lock-warning.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-cdrom.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-clear.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-close.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/media-optical.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/edit-clear.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/window-close.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-connect.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-convert.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-copy.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-cut.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-delete.png \
|
||||
$(top_srcdir)/gtk/stock-icons/48/gtk-dialog-authentication.png \
|
||||
$(top_srcdir)/gtk/stock-icons/48/gtk-dialog-error.png \
|
||||
$(top_srcdir)/gtk/stock-icons/48/gtk-dialog-info.png \
|
||||
$(top_srcdir)/gtk/stock-icons/48/gtk-dialog-question.png \
|
||||
$(top_srcdir)/gtk/stock-icons/48/gtk-dialog-warning.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-directory.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/edit-copy.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/edit-cut.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/edit-delete.png \
|
||||
$(top_srcdir)/gtk/stock-icons/48/dialog-password.png \
|
||||
$(top_srcdir)/gtk/stock-icons/48/dialog-error.png \
|
||||
$(top_srcdir)/gtk/stock-icons/48/dialog-information.png \
|
||||
$(top_srcdir)/gtk/stock-icons/48/dialog-question.png \
|
||||
$(top_srcdir)/gtk/stock-icons/48/dialog-warning.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/folder.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-disconnect.png \
|
||||
$(top_srcdir)/gtk/stock-icons/32/gtk-dnd.png \
|
||||
$(top_srcdir)/gtk/stock-icons/32/gtk-dnd-multiple.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-edit.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-execute.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-file.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-find.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-find-and-replace.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-goto-bottom.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-goto-first-ltr.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-goto-first-rtl.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-goto-last-ltr.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-goto-last-rtl.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-goto-top.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-go-back-ltr.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-go-back-rtl.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-go-down.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-go-forward-ltr.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-go-forward-rtl.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-go-up.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-harddisk.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-network.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-help.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-home.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/system-run.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/document-x-generic.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/edit-find.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/edit-find-replace.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/go-bottom.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/go-first-ltr.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/go-first-rtl.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/go-last-ltr.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/go-last-rtl.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/go-top.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/go-previous-ltr.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/go-previous-rtl.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/go-down.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/go-next-ltr.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/go-next-rtl.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/go-up.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/drive-harddisk.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/network-idle.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/help-contents.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/go-home.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-index.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-indent-ltr.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-indent-rtl.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-unindent-ltr.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-unindent-rtl.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-italic.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-jump-to-ltr.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-jump-to-rtl.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-justify-center.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-justify-fill.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-justify-left.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-justify-right.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-missing-image.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-new.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/format-indent-more-ltr.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/format-indent-more-rtl.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/format-indent-less-ltr.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/format-indent-less-rtl.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/format-text-italic.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/go-jump-ltr.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/go-jump-rtl.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/format-justify-center.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/format-justify-fill.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/format-justify-left.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/format-justify-right.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/image-missing.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/document-new.png \
|
||||
$(top_srcdir)/gtk/stock-icons/20/gtk-no.png \
|
||||
$(top_srcdir)/gtk/stock-icons/20/gtk-ok.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-open.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/document-open.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-orientation-landscape.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-orientation-portrait.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-orientation-reverse-landscape.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-orientation-reverse-portrait.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-paste.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/edit-paste.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-preferences.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-print.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-print-error.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-print-paused.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-print-preview.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-print-report.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-print-warning.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-properties.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-quit.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-redo-ltr.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-redo-rtl.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-refresh.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-remove.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-revert-to-saved-ltr.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-revert-to-saved-rtl.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-floppy.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-save.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-save-as.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-select-all.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/document-print.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/printer-error.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/printer-paused.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/document-print-preview.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/printer-info.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/printer-warning.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/document-properties.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/application-exit.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/edit-redo-ltr.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/edit-redo-rtl.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/view-refresh.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/list-remove.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/document-revert-ltr.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/document-revert-rtl.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/media-floppy.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/document-save.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/document-save-as.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/edit-select-all.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-select-color.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-color-picker.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-font.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-sort-ascending.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-sort-descending.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-spell-check.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-stop.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-strikethrough.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/view-sort-ascending.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/view-sort-descending.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/tools-check-spelling.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/process-stop.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/format-text-strikethrough.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-undelete-ltr.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-undelete-rtl.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-underline.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-undo-ltr.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-undo-rtl.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/format-text-underline.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/edit-undo-ltr.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/edit-undo-rtl.png \
|
||||
$(top_srcdir)/gtk/stock-icons/20/gtk-yes.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-zoom-100.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-zoom-fit.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-zoom-in.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-zoom-out.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-media-forward-ltr.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-media-forward-rtl.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-media-next-ltr.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-media-next-rtl.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-media-pause.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-media-play-ltr.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-media-play-rtl.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-media-previous-ltr.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-media-previous-rtl.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-media-record.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-media-rewind-ltr.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-media-rewind-rtl.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-media-stop.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-fullscreen.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-leave-fullscreen.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-info.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/zoom-original.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/zoom-fit-best.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/zoom-in.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/zoom-out.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/media-seek-forward-ltr.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/media-seek-forward-rtl.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/media-skip-forward-ltr.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/media-skip-forward-rtl.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/media-playback-pause.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/media-playback-start-ltr.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/media-playback-start-rtl.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/media-seek-backward-ltr.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/media-seek-backward-rtl.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/media-record.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/media-skip-backward-ltr.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/media-skip-backward-rtl.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/media-playback-stop.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/view-fullscreen.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/view-restore.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-page-setup.png \
|
||||
$(srcdir)/images/aboutdialog.png \
|
||||
$(srcdir)/images/accel-label.png \
|
||||
$(srcdir)/images/assistant.png \
|
||||
@@ -316,7 +318,9 @@ HTML_IMAGES = \
|
||||
$(srcdir)/images/layout-rlbt.png \
|
||||
$(srcdir)/images/layout-rltb.png \
|
||||
$(srcdir)/images/layout-tblr.png \
|
||||
$(srcdir)/images/layout-tbrl.png
|
||||
$(srcdir)/images/layout-tbrl.png \
|
||||
$(srcdir)/images/window-default.png \
|
||||
$(srcdir)/images/hello-world.png
|
||||
|
||||
# Extra options to supply to gtkdoc-fixref
|
||||
FIXXREF_OPTIONS=--extra-dir=../gdk/html \
|
||||
|
||||
@@ -330,20 +330,8 @@ How to compile GTK+ itself
|
||||
<arg>--enable-debug=[no|minimum|yes]</arg>
|
||||
</group>
|
||||
<group>
|
||||
<arg>--disable-visibility</arg>
|
||||
<arg>--enable-visibility</arg>
|
||||
</group>
|
||||
<group>
|
||||
<arg>--disable-shm</arg>
|
||||
<arg>--enable-shm</arg>
|
||||
</group>
|
||||
<group>
|
||||
<arg>--disable-xim</arg>
|
||||
<arg>--enable-xim</arg>
|
||||
</group>
|
||||
<group>
|
||||
<arg>--disable-xim-inst</arg>
|
||||
<arg>--enable-xim-inst</arg>
|
||||
<arg>--disable-Bsymbolic</arg>
|
||||
<arg>--enable-Bsymbolic</arg>
|
||||
</group>
|
||||
<group>
|
||||
<arg>--disable-xkb</arg>
|
||||
@@ -369,7 +357,7 @@ How to compile GTK+ itself
|
||||
<arg>--with-xinput=[no|yes]</arg>
|
||||
</group>
|
||||
<group>
|
||||
<arg>--with-gdktarget=[x11|win32|quartz|directfb]</arg>
|
||||
<arg>--with-gdktarget=[x11|win32|quartz]</arg>
|
||||
</group>
|
||||
<group>
|
||||
<arg>--disable-introspection</arg>
|
||||
@@ -406,7 +394,7 @@ How to compile GTK+ itself
|
||||
|
||||
<formalpara>
|
||||
<title><systemitem>--enable-debug</systemitem></title>
|
||||
|
||||
|
||||
<para>
|
||||
Turns on various amounts of debugging support. Setting this to 'no'
|
||||
disables g_assert(), g_return_if_fail(), g_return_val_if_fail() and
|
||||
@@ -423,15 +411,11 @@ How to compile GTK+ itself
|
||||
</formalpara>
|
||||
|
||||
<formalpara>
|
||||
<title><systemitem>--disable-visibility</systemitem> and
|
||||
<systemitem>--enable-visibility</systemitem></title>
|
||||
<title><systemitem>--disable-Bsymbolic</systemitem> and
|
||||
<systemitem>--enable-Bsymbolic</systemitem></title>
|
||||
<para>
|
||||
The option <systemitem>--disable-visibility</systemitem>
|
||||
turns off the use of ELF visibility attributes for linking
|
||||
optimizations. This makes sense while changing GTK+ itself,
|
||||
since the way in which GTK+ uses visibility attributes
|
||||
forces a full rebuild of all source files for any header
|
||||
modification.
|
||||
The option <systemitem>--disable-Bsymbolic</systemitem>
|
||||
turns off the use of the -Bsymbolic-functions linker flag.
|
||||
</para>
|
||||
</formalpara>
|
||||
|
||||
@@ -460,41 +444,6 @@ How to compile GTK+ itself
|
||||
</para>
|
||||
</formalpara>
|
||||
|
||||
<formalpara>
|
||||
<title><systemitem>--disable-shm</systemitem> and
|
||||
<systemitem>--enable-shm</systemitem></title>
|
||||
|
||||
<para>
|
||||
These options can be used to control whether GTK+ will use shared
|
||||
memory to communicate with the X server when possible.
|
||||
The default is 'yes'.
|
||||
</para>
|
||||
</formalpara>
|
||||
|
||||
<formalpara>
|
||||
<title><systemitem>--disable-xim</systemitem> and
|
||||
<systemitem>--enable-xim</systemitem></title>
|
||||
|
||||
<para>
|
||||
These options can be used to control whether GTK+ will
|
||||
be compiled with support for XIM. (The X Input Method
|
||||
extension, used for Japanese input.) The default is yes.
|
||||
</para>
|
||||
</formalpara>
|
||||
|
||||
<formalpara>
|
||||
<title><systemitem>--disable-xim-inst</systemitem> and
|
||||
<systemitem>--enable-xim-inst</systemitem></title>
|
||||
|
||||
<para>
|
||||
These options determine whether GTK+ will use the
|
||||
XIM instantiate callback.
|
||||
The default is 'yes', unless the host system is Solaris,
|
||||
where <function>XRegisterIMInstantiateCallback()</function>
|
||||
seems to cause a segfault.
|
||||
</para>
|
||||
</formalpara>
|
||||
|
||||
<formalpara>
|
||||
<title><systemitem>--disable-xkb</systemitem> and
|
||||
<systemitem>--enable-xkb</systemitem></title>
|
||||
@@ -583,8 +532,7 @@ How to compile GTK+ itself
|
||||
Toggles between the supported backends for GDK.
|
||||
The default is x11, unless the platform is Windows, in which
|
||||
case the default is win32. Other supported backends are
|
||||
the quartz backend for OS X, and the DirectFB backend
|
||||
for the Linux framebuffer.
|
||||
the quartz backend for OS X.
|
||||
</para>
|
||||
</formalpara>
|
||||
<formalpara>
|
||||
|
||||
@@ -1,44 +0,0 @@
|
||||
<?xml version="1.0"?>
|
||||
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
|
||||
]>
|
||||
<refentry id="gtk-directfb">
|
||||
<refmeta>
|
||||
<refentrytitle>Using GTK+ on DirectFB</refentrytitle>
|
||||
<manvolnum>3</manvolnum>
|
||||
<refmiscinfo>GTK Library</refmiscinfo>
|
||||
</refmeta>
|
||||
|
||||
<refnamediv>
|
||||
<refname>Using GTK+ on DirectFB</refname>
|
||||
<refpurpose>
|
||||
DirectFB-specific aspects of using GTK+
|
||||
</refpurpose>
|
||||
</refnamediv>
|
||||
|
||||
<refsect1>
|
||||
<title>Using GTK+ on DirectFB</title>
|
||||
|
||||
<para>
|
||||
The DirectFB port of GTK+ is an implementation of GDK (and therefore GTK+)
|
||||
on top of the <ulink url="http://www.directfb.org">DirectFB</ulink>
|
||||
libraries.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Like the obsolete linux-fb port of GTK+, it runs on the Linux framebuffer,
|
||||
but the DirectFB libraries provide additional features like hardware graphics
|
||||
acceleration, input device handling and abstraction and an integrated windowing
|
||||
system.
|
||||
</para>
|
||||
|
||||
<refsect2><title>Build requirements</title>
|
||||
|
||||
<para>
|
||||
Beyond the usual GTK+ build requirements, the DirectFB backend (obviously)
|
||||
needs the DirectFB libraries (at least 0.9.21) and cairo compiled with
|
||||
DirectFB support.
|
||||
</para>
|
||||
</refsect2>
|
||||
</refsect1>
|
||||
</refentry>
|
||||
108
docs/reference/gtk/getting_started.xml
Normal file
108
docs/reference/gtk/getting_started.xml
Normal file
@@ -0,0 +1,108 @@
|
||||
<?xml version="1.0"?>
|
||||
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
|
||||
]>
|
||||
<chapter id="gtk-getting-started" xmlns:xi="http://www.w3.org/2003/XInclude">
|
||||
<title>Getting Started with GTK+</title>
|
||||
|
||||
<para>This chapter is contains some tutorial information to get you
|
||||
started with GTK+ programming. It assumes that you have GTK+, its
|
||||
dependencies and a C compiler installed and ready to use. If you
|
||||
need to build GTK+ itself first, refer to the
|
||||
<link linkend="gtk-compiling">Compiling the GTK+ libraries</link>
|
||||
section in this reference.</para>
|
||||
|
||||
<para>To begin our introduction to GTK, we'll start with the simplest
|
||||
program possible. This program will create an empty 200x200 pixel
|
||||
window:</para>
|
||||
|
||||
<para>
|
||||
<inlinegraphic fileref="window-default.png" format="PNG"></inlinegraphic>
|
||||
</para>
|
||||
|
||||
<informalexample><programlisting>
|
||||
<xi:include href="../../../../examples/window-default.c" parse="text">
|
||||
<xi:fallback>FIXME: MISSING XINCLUDE CONTENT</xi:fallback>
|
||||
</xi:include>
|
||||
</programlisting></informalexample>
|
||||
|
||||
<para>You can compile the program above with GCC using:</para>
|
||||
|
||||
<para><literallayout>
|
||||
<literal>gcc `pkg-config --cflags gtk+-3.0` -o window-default window-default.c `pkg-config --libs gtk+-3.0`</literal>
|
||||
</literallayout></para>
|
||||
|
||||
<note><para>For more information on how to compile a GTK+ application, please
|
||||
refer to the <link linkend="gtk-compiling">Compiling GTK+ Applications</link>
|
||||
section in this reference.</para></note>
|
||||
|
||||
<para>All GTK+ applications will, of course, include
|
||||
<filename>gtk/gtk.h</filename>, which declares functions, types and
|
||||
macros required by GTK+ applications.</para>
|
||||
|
||||
<warning><para>Even if GTK+ installs multiple header files, only the
|
||||
top-level <filename>gtk/gtk.h</filename> header can be directly included
|
||||
by third party code. The compiler will abort with an error if any other
|
||||
header will be included.</para></warning>
|
||||
|
||||
<para>We then proceed into the <function>main</function>() function of the
|
||||
application, and we declare a <varname>window</varname> variable as a pointer
|
||||
of type #GtkWidget.</para>
|
||||
|
||||
<para>The following line will call gtk_init(), which
|
||||
is the initialization function for GTK+; this function will set up GTK+,
|
||||
the type system, the connection to the windowing environment, etc. The
|
||||
gtk_init() takes as arguments the pointers to the command line arguments
|
||||
counter and string array; this allows GTK+ to parse specific command line
|
||||
arguments that control the behavior of GTK+ itself. The parsed arguments
|
||||
will be removed from the array, leaving the unrecognized ones for your
|
||||
application to parse.</para>
|
||||
|
||||
<note><para>For more information on which command line arguments GTK+
|
||||
recognizes, please refer to the <link linkend="gtk-running">Running GTK+
|
||||
Applications</link> section in this reference.</para></note>
|
||||
|
||||
<para>The call to gtk_window_new() will create a new #GtkWindow and store
|
||||
it inside the <varname>window</varname> variable. The type of the window
|
||||
is %GTK_WINDOW_TOPLEVEL, which means that the #GtkWindow will be managed
|
||||
by the windowing system: it will have a frame, a title bar and window
|
||||
controls, depending on the platform.</para>
|
||||
|
||||
<para>In order to terminate the application when the #GtkWindow is
|
||||
destroyed, we connect the #GtkWidget::destroy signal to the gtk_main_quit()
|
||||
function. This function will terminate the GTK+ main loop started by calling
|
||||
gtk_main() later. The #GtkWidget::destroy signal is emitted when a widget is
|
||||
destroyed, either by explicitly calling gtk_widget_destroy() or when the
|
||||
widget is unparented. Top-level #GtkWindow<!-- -->s are also destroyed when
|
||||
the Close window control button is clicked.</para>
|
||||
|
||||
<para>#GtkWidget<!-- -->s are hidden by default. By calling gtk_widget_show()
|
||||
on a #GtkWidget we are asking GTK+ to set the visibility attribute so that it
|
||||
can be displayed. All this work is done after the main loop has been
|
||||
started.</para>
|
||||
|
||||
<para>The last line of interest is the call to gtk_main(). This function will
|
||||
start the GTK+ main loop and will block the control flow of the
|
||||
<function>main</function>() until the gtk_main_quit() function is
|
||||
called.</para>
|
||||
|
||||
<para>The following example is slightly more complex, and tries to
|
||||
showcase some of the capabilities of GTK+.</para>
|
||||
|
||||
<para>In the long tradition of programming languages and libraries,
|
||||
it is called <emphasis>Hello, World</emphasis>.</para>
|
||||
|
||||
<para>
|
||||
<inlinegraphic fileref="hello-world.png" format="PNG"></inlinegraphic>
|
||||
</para>
|
||||
|
||||
<example id="gtk-getting-started-hello-world">
|
||||
<title>Hello World in GTK+</title>
|
||||
<programlisting>
|
||||
<xi:include href="../../../../examples/hello-world.c" parse="text">
|
||||
<xi:fallback>FIXME: MISSING XINCLUDE CONTENT</xi:fallback>
|
||||
</xi:include>
|
||||
</programlisting>
|
||||
</example>
|
||||
|
||||
</chapter>
|
||||
@@ -4,7 +4,6 @@
|
||||
<!ENTITY % local.common.attrib "xmlns:xi CDATA #FIXED 'http://www.w3.org/2003/XInclude'">
|
||||
<!ENTITY version SYSTEM "version.xml">
|
||||
]>
|
||||
<!--ENTITY index-Objects-Grouped SYSTEM "objects_grouped.sgml"-->
|
||||
<book id="index" xmlns:xi="http://www.w3.org/2003/XInclude">
|
||||
<bookinfo>
|
||||
<title>GTK+ Reference Manual</title>
|
||||
@@ -17,109 +16,14 @@
|
||||
|
||||
<part id="gtk">
|
||||
<title>GTK+ Overview</title>
|
||||
<partintro>
|
||||
<para>
|
||||
GTK+ is a library for creating graphical user interfaces. It
|
||||
works on many UNIX-like platforms, Windows, and on framebuffer
|
||||
devices. GTK+ is released under the GNU Library General Public License
|
||||
(GNU LGPL), which allows for flexible licensing of client
|
||||
applications. GTK+ has a C-based object-oriented architecture that
|
||||
allows for maximum flexibility. Bindings for other languages have
|
||||
been written, including C++, Objective-C, Guile/Scheme, Perl, Python,
|
||||
TOM, Ada95, Free Pascal, and Eiffel.
|
||||
</para>
|
||||
<para>
|
||||
GTK+ depends on the following libraries:
|
||||
<variablelist>
|
||||
|
||||
<varlistentry>
|
||||
<term>GLib</term>
|
||||
<listitem><para>
|
||||
A general-purpose utility library, not specific to graphical user interfaces.
|
||||
GLib provides many useful data types, macros, type conversions,
|
||||
string utilities, file utilities, a main loop abstraction, and so on.
|
||||
</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>GObject</term>
|
||||
<listitem><para>A library that provides a type system, a collection of
|
||||
fundamental types including an object type, a signal system.
|
||||
</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>GIO</term>
|
||||
<listitem><para>A modern, easy-to-use VFS API including abstractions for
|
||||
files, drives, volumes, stream IO, as well as network programming and
|
||||
DBus communication.
|
||||
</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>cairo</term>
|
||||
<listitem><para>Cairo is a 2D graphics library with support for multiple
|
||||
output devices.
|
||||
</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Pango</term>
|
||||
<listitem><para>
|
||||
Pango is a library for internationalized text handling. It centers
|
||||
around the #PangoLayout object, representing a paragraph of text.
|
||||
Pango provides the engine for #GtkTextView, #GtkLabel, #GtkEntry, and
|
||||
other widgets that display text.
|
||||
</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>ATK</term>
|
||||
<listitem><para>
|
||||
ATK is the Accessibility Toolkit. It provides a set of generic
|
||||
interfaces allowing accessibility technologies to interact with a
|
||||
graphical user interface. For example, a screen reader uses ATK to
|
||||
discover the text in an interface and read it to blind users. GTK+
|
||||
widgets have built-in support for accessibility using the ATK
|
||||
framework.
|
||||
</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>GdkPixbuf</term>
|
||||
<listitem><para>
|
||||
This is a small library which allows you to create #GdkPixbuf
|
||||
("pixel buffer") objects from image data or image files.
|
||||
Use a #GdkPixbuf in combination with #GtkImage to display images.
|
||||
</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>GDK</term>
|
||||
<listitem><para>
|
||||
GDK is the abstraction layer that allows GTK+ to support multiple
|
||||
windowing systems. GDK provides drawing and window system facilities
|
||||
on X11, Windows, and the Linux framebuffer device.
|
||||
</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>GTK+</term>
|
||||
<listitem><para>
|
||||
The GTK+ library itself contains <firstterm>widgets</firstterm>,
|
||||
that is, GUI components such as #GtkButton or #GtkTextView.
|
||||
</para></listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</para>
|
||||
</partintro>
|
||||
<xi:include href="overview.xml"/>
|
||||
<xi:include href="xml/getting_started.xml"/>
|
||||
<xi:include href="building.sgml" />
|
||||
<xi:include href="compiling.sgml" />
|
||||
<xi:include href="running.sgml" />
|
||||
<xi:include href="x11.sgml" />
|
||||
<xi:include href="windows.sgml" />
|
||||
<xi:include href="osx.sgml" />
|
||||
<xi:include href="directfb.sgml" />
|
||||
<xi:include href="resources.sgml" />
|
||||
<xi:include href="xml/question_index.sgml" />
|
||||
<xi:include href="drawing-model.xml" />
|
||||
@@ -129,6 +33,7 @@ that is, GUI components such as #GtkButton or #GtkTextView.
|
||||
<part id="gtkbase">
|
||||
<title>GTK+ Core Reference</title>
|
||||
<xi:include href="xml/gtkmain.xml" />
|
||||
<xi:include href="xml/gtkfeatures.xml" />
|
||||
<xi:include href="xml/gtkaccelgroup.xml" />
|
||||
<xi:include href="xml/gtkaccelmap.xml" />
|
||||
<xi:include href="xml/gtkclipboard.xml" />
|
||||
@@ -140,11 +45,8 @@ that is, GUI components such as #GtkButton or #GtkTextView.
|
||||
<xi:include href="xml/gtksettings.xml" />
|
||||
<xi:include href="xml/gtkbindings.xml" />
|
||||
<xi:include href="xml/gtkenums.xml" />
|
||||
<xi:include href="xml/gtkgc.xml" />
|
||||
<xi:include href="xml/gtkstyle.xml" />
|
||||
<xi:include href="xml/gtkselection.xml" />
|
||||
<xi:include href="xml/gtkfeatures.xml" />
|
||||
<xi:include href="xml/gtktypeutils.xml" />
|
||||
<xi:include href="xml/gtktesting.xml" />
|
||||
<xi:include href="xml/filesystem.xml" />
|
||||
</part>
|
||||
@@ -251,7 +153,7 @@ that is, GUI components such as #GtkButton or #GtkTextView.
|
||||
<chapter id="MenusAndCombos">
|
||||
<title>Menus, Combo Box, Toolbar</title>
|
||||
<xi:include href="xml/gtkcombobox.xml" />
|
||||
<xi:include href="xml/gtkcomboboxentry.xml" />
|
||||
<xi:include href="xml/gtkcomboboxtext.xml" />
|
||||
<xi:include href="xml/gtkmenu.xml" />
|
||||
<xi:include href="xml/gtkmenubar.xml" />
|
||||
<xi:include href="xml/gtkmenuitem.xml" />
|
||||
@@ -284,7 +186,7 @@ that is, GUI components such as #GtkButton or #GtkTextView.
|
||||
</chapter>
|
||||
|
||||
<chapter id="SelectorWidgets">
|
||||
<title>Selectors (File/Font/Color/Input Devices)</title>
|
||||
<title>Selectors (Color/File/Font)</title>
|
||||
<xi:include href="xml/gtkcolorbutton.xml" />
|
||||
<xi:include href="xml/gtkcolorseldlg.xml" />
|
||||
<xi:include href="xml/gtkcolorsel.xml" />
|
||||
@@ -318,7 +220,6 @@ that is, GUI components such as #GtkButton or #GtkTextView.
|
||||
<xi:include href="xml/gtktable.xml" />
|
||||
<xi:include href="xml/gtkexpander.xml" />
|
||||
<xi:include href="xml/gtkorientable.xml" />
|
||||
<xi:include href="xml/gtksizerequest.xml" />
|
||||
</chapter>
|
||||
|
||||
<chapter id="Ornaments">
|
||||
@@ -368,14 +269,12 @@ that is, GUI components such as #GtkButton or #GtkTextView.
|
||||
|
||||
<chapter id="AbstractObjects">
|
||||
<title>Abstract Base Classes</title>
|
||||
<xi:include href="xml/gtkbin.xml" />
|
||||
<xi:include href="xml/gtkwidget.xml" />
|
||||
<xi:include href="xml/gtkcontainer.xml" />
|
||||
<xi:include href="xml/gtkitem.xml" />
|
||||
<xi:include href="xml/gtkbin.xml" />
|
||||
<xi:include href="xml/gtkmenushell.xml" />
|
||||
<xi:include href="xml/gtkmisc.xml" />
|
||||
<xi:include href="xml/gtkobject.xml" />
|
||||
<xi:include href="xml/gtkrange.xml" />
|
||||
<xi:include href="xml/gtkwidget.xml" />
|
||||
<xi:include href="xml/gtkimcontext.xml" />
|
||||
</chapter>
|
||||
|
||||
@@ -428,7 +327,7 @@ that is, GUI components such as #GtkButton or #GtkTextView.
|
||||
</partintro>
|
||||
|
||||
<xi:include href="xml/migrating-checklist.sgml" />
|
||||
<xi:include href="migrating-2to3.xml" />
|
||||
<xi:include href="xml/migrating-2to3.xml" />
|
||||
</part>
|
||||
|
||||
<part>
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
<FILE>gtkaboutdialog</FILE>
|
||||
<TITLE>GtkAboutDialog</TITLE>
|
||||
GtkAboutDialog
|
||||
GtkLicense
|
||||
gtk_about_dialog_new
|
||||
gtk_about_dialog_get_program_name
|
||||
gtk_about_dialog_set_program_name
|
||||
@@ -18,6 +19,8 @@ gtk_about_dialog_get_license
|
||||
gtk_about_dialog_set_license
|
||||
gtk_about_dialog_get_wrap_license
|
||||
gtk_about_dialog_set_wrap_license
|
||||
gtk_about_dialog_get_license_type
|
||||
gtk_about_dialog_set_license_type
|
||||
gtk_about_dialog_get_website
|
||||
gtk_about_dialog_set_website
|
||||
gtk_about_dialog_get_website_label
|
||||
@@ -34,9 +37,6 @@ gtk_about_dialog_get_logo
|
||||
gtk_about_dialog_set_logo
|
||||
gtk_about_dialog_get_logo_icon_name
|
||||
gtk_about_dialog_set_logo_icon_name
|
||||
GtkAboutDialogActivateLinkFunc
|
||||
gtk_about_dialog_set_email_hook
|
||||
gtk_about_dialog_set_url_hook
|
||||
gtk_show_about_dialog
|
||||
<SUBSECTION Standard>
|
||||
GTK_ABOUT_DIALOG
|
||||
@@ -421,7 +421,6 @@ gtk_aspect_frame_get_type
|
||||
<FILE>gtkbbox</FILE>
|
||||
<TITLE>GtkButtonBox</TITLE>
|
||||
GtkButtonBox
|
||||
GTK_BUTTONBOX_DEFAULT
|
||||
gtk_button_box_new
|
||||
gtk_button_box_get_layout
|
||||
gtk_button_box_get_child_secondary
|
||||
@@ -458,7 +457,6 @@ gtk_bin_get_type
|
||||
<FILE>gtkbox</FILE>
|
||||
<TITLE>GtkBox</TITLE>
|
||||
GtkBox
|
||||
GtkBoxChild
|
||||
gtk_box_new
|
||||
gtk_box_pack_start
|
||||
gtk_box_pack_end
|
||||
@@ -593,6 +591,7 @@ gtk_calendar_select_month
|
||||
gtk_calendar_select_day
|
||||
gtk_calendar_mark_day
|
||||
gtk_calendar_unmark_day
|
||||
gtk_calendar_get_day_is_marked
|
||||
gtk_calendar_clear_marks
|
||||
|
||||
<SUBSECTION>
|
||||
@@ -768,6 +767,7 @@ gtk_color_selection_dialog_get_type
|
||||
<TITLE>GtkComboBox</TITLE>
|
||||
GtkComboBox
|
||||
gtk_combo_box_new
|
||||
gtk_combo_box_new_with_entry
|
||||
gtk_combo_box_new_with_model
|
||||
gtk_combo_box_get_wrap_width
|
||||
gtk_combo_box_set_wrap_width
|
||||
@@ -781,12 +781,6 @@ gtk_combo_box_get_active_iter
|
||||
gtk_combo_box_set_active_iter
|
||||
gtk_combo_box_get_model
|
||||
gtk_combo_box_set_model
|
||||
gtk_combo_box_new_text
|
||||
gtk_combo_box_append_text
|
||||
gtk_combo_box_insert_text
|
||||
gtk_combo_box_prepend_text
|
||||
gtk_combo_box_remove_text
|
||||
gtk_combo_box_get_active_text
|
||||
gtk_combo_box_popup_for_device
|
||||
gtk_combo_box_popup
|
||||
gtk_combo_box_popdown
|
||||
@@ -801,6 +795,9 @@ gtk_combo_box_set_focus_on_click
|
||||
gtk_combo_box_get_focus_on_click
|
||||
gtk_combo_box_set_button_sensitivity
|
||||
gtk_combo_box_get_button_sensitivity
|
||||
gtk_combo_box_get_has_entry
|
||||
gtk_combo_box_set_entry_text_column
|
||||
gtk_combo_box_get_entry_text_column
|
||||
<SUBSECTION Standard>
|
||||
GTK_TYPE_COMBO_BOX
|
||||
GTK_COMBO_BOX
|
||||
@@ -814,27 +811,30 @@ gtk_combo_box_get_type
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>gtkcomboboxentry</FILE>
|
||||
<TITLE>GtkComboBoxEntry</TITLE>
|
||||
GtkComboBoxEntry
|
||||
gtk_combo_box_entry_new
|
||||
gtk_combo_box_entry_new_with_model
|
||||
gtk_combo_box_entry_new_text
|
||||
gtk_combo_box_entry_set_text_column
|
||||
gtk_combo_box_entry_get_text_column
|
||||
<FILE>gtkcomboboxtext</FILE>
|
||||
<TITLE>GtkComboBoxText</TITLE>
|
||||
GtkComboBoxText
|
||||
gtk_combo_box_text_new
|
||||
gtk_combo_box_text_new_with_entry
|
||||
gtk_combo_box_text_append_text
|
||||
gtk_combo_box_text_insert_text
|
||||
gtk_combo_box_text_prepend_text
|
||||
gtk_combo_box_text_remove
|
||||
gtk_combo_box_text_get_active_text
|
||||
|
||||
<SUBSECTION Standard>
|
||||
GTK_TYPE_COMBO_BOX_ENTRY
|
||||
GTK_COMBO_BOX_ENTRY
|
||||
GTK_COMBO_BOX_ENTRY_CLASS
|
||||
GTK_IS_COMBO_BOX_ENTRY
|
||||
GTK_IS_COMBO_BOX_ENTRY_CLASS
|
||||
GTK_COMBO_BOX_ENTRY_GET_CLASS
|
||||
GTK_TYPE_COMBO_BOX_TEXT
|
||||
GTK_COMBO_BOX_TEXT
|
||||
GTK_IS_COMBO_BOX_TEXT
|
||||
GTK_COMBO_BOX_TEXT_CLASS
|
||||
GTK_IS_COMBO_BOX_TEXT_CLASS
|
||||
GTK_COMBO_BOX_TEXT_GET_CLASS
|
||||
|
||||
<SUBSECTION Private>
|
||||
GtkComboBoxEntryPrivate
|
||||
gtk_combo_box_entry_get_type
|
||||
GtkComboBoxTextPrivate
|
||||
gtk_combo_box_text_get_type
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>gtkcontainer</FILE>
|
||||
<TITLE>GtkContainer</TITLE>
|
||||
GtkContainer
|
||||
@@ -866,13 +866,15 @@ gtk_container_child_set_valist
|
||||
gtk_container_forall
|
||||
gtk_container_get_border_width
|
||||
gtk_container_set_border_width
|
||||
gtk_container_propagate_expose
|
||||
gtk_container_propagate_draw
|
||||
gtk_container_get_focus_chain
|
||||
gtk_container_set_focus_chain
|
||||
gtk_container_unset_focus_chain
|
||||
gtk_container_class_find_child_property
|
||||
gtk_container_class_install_child_property
|
||||
gtk_container_class_list_child_properties
|
||||
gtk_container_class_handle_border_width
|
||||
|
||||
<SUBSECTION Standard>
|
||||
GTK_CONTAINER
|
||||
GTK_IS_CONTAINER
|
||||
@@ -897,9 +899,7 @@ gtk_dialog_response
|
||||
gtk_dialog_add_button
|
||||
gtk_dialog_add_buttons
|
||||
gtk_dialog_add_action_widget
|
||||
gtk_dialog_get_has_separator
|
||||
gtk_dialog_set_default_response
|
||||
gtk_dialog_set_has_separator
|
||||
gtk_dialog_set_response_sensitive
|
||||
gtk_dialog_get_response_for_widget
|
||||
gtk_dialog_get_widget_for_response
|
||||
@@ -1155,6 +1155,8 @@ gtk_expander_set_use_markup
|
||||
gtk_expander_get_use_markup
|
||||
gtk_expander_set_label_widget
|
||||
gtk_expander_get_label_widget
|
||||
gtk_expander_set_label_fill
|
||||
gtk_expander_get_label_fill
|
||||
<SUBSECTION Standard>
|
||||
GTK_TYPE_EXPANDER
|
||||
GTK_EXPANDER_CLASS
|
||||
@@ -1609,8 +1611,8 @@ gtk_icon_view_get_cursor
|
||||
gtk_icon_view_selected_foreach
|
||||
gtk_icon_view_set_selection_mode
|
||||
gtk_icon_view_get_selection_mode
|
||||
gtk_icon_view_set_orientation
|
||||
gtk_icon_view_get_orientation
|
||||
gtk_icon_view_set_item_orientation
|
||||
gtk_icon_view_get_item_orientation
|
||||
gtk_icon_view_set_columns
|
||||
gtk_icon_view_get_columns
|
||||
gtk_icon_view_set_item_width
|
||||
@@ -1672,9 +1674,7 @@ GtkIconViewPrivate
|
||||
GtkImage
|
||||
GtkImageType
|
||||
gtk_image_get_icon_set
|
||||
gtk_image_get_image
|
||||
gtk_image_get_pixbuf
|
||||
gtk_image_get_pixmap
|
||||
gtk_image_get_stock
|
||||
gtk_image_get_animation
|
||||
gtk_image_get_icon_name
|
||||
@@ -1682,18 +1682,14 @@ gtk_image_get_gicon
|
||||
gtk_image_get_storage_type
|
||||
gtk_image_new_from_file
|
||||
gtk_image_new_from_icon_set
|
||||
gtk_image_new_from_image
|
||||
gtk_image_new_from_pixbuf
|
||||
gtk_image_new_from_pixmap
|
||||
gtk_image_new_from_stock
|
||||
gtk_image_new_from_animation
|
||||
gtk_image_new_from_icon_name
|
||||
gtk_image_new_from_gicon
|
||||
gtk_image_set_from_file
|
||||
gtk_image_set_from_icon_set
|
||||
gtk_image_set_from_image
|
||||
gtk_image_set_from_pixbuf
|
||||
gtk_image_set_from_pixmap
|
||||
gtk_image_set_from_stock
|
||||
gtk_image_set_from_animation
|
||||
gtk_image_set_from_icon_name
|
||||
@@ -1833,24 +1829,6 @@ GTK_INVISIBLE_GET_CLASS
|
||||
gtk_invisible_get_type
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>gtkitem</FILE>
|
||||
<TITLE>GtkItem</TITLE>
|
||||
GtkItem
|
||||
gtk_item_select
|
||||
gtk_item_deselect
|
||||
gtk_item_toggle
|
||||
<SUBSECTION Standard>
|
||||
GTK_ITEM
|
||||
GTK_IS_ITEM
|
||||
GTK_TYPE_ITEM
|
||||
GTK_ITEM_CLASS
|
||||
GTK_IS_ITEM_CLASS
|
||||
GTK_ITEM_GET_CLASS
|
||||
<SUBSECTION Private>
|
||||
gtk_item_get_type
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>gtklabel</FILE>
|
||||
<TITLE>GtkLabel</TITLE>
|
||||
@@ -1944,8 +1922,6 @@ gtk_link_button_new
|
||||
gtk_link_button_new_with_label
|
||||
gtk_link_button_get_uri
|
||||
gtk_link_button_set_uri
|
||||
GtkLinkButtonUriFunc
|
||||
gtk_link_button_set_uri_hook
|
||||
gtk_link_button_get_visited
|
||||
gtk_link_button_set_visited
|
||||
|
||||
@@ -2024,6 +2000,7 @@ GTK_MENU_BAR_CLASS
|
||||
GTK_IS_MENU_BAR_CLASS
|
||||
GTK_MENU_BAR_GET_CLASS
|
||||
<SUBSECTION Private>
|
||||
GtkMenuBarPrivate
|
||||
gtk_menu_bar_get_type
|
||||
</SECTION>
|
||||
|
||||
@@ -2144,6 +2121,7 @@ GTK_MESSAGE_DIALOG_CLASS
|
||||
GTK_IS_MESSAGE_DIALOG_CLASS
|
||||
GTK_MESSAGE_DIALOG_GET_CLASS
|
||||
<SUBSECTION Private>
|
||||
GtkMessageDialogPrivate
|
||||
gtk_message_dialog_get_type
|
||||
</SECTION>
|
||||
|
||||
@@ -2193,6 +2171,7 @@ GTK_MISC_CLASS
|
||||
GTK_IS_MISC_CLASS
|
||||
GTK_MISC_GET_CLASS
|
||||
<SUBSECTION Private>
|
||||
GtkMiscPrivate
|
||||
gtk_misc_get_type
|
||||
</SECTION>
|
||||
|
||||
@@ -2200,7 +2179,6 @@ gtk_misc_get_type
|
||||
<FILE>gtknotebook</FILE>
|
||||
<TITLE>GtkNotebook</TITLE>
|
||||
GtkNotebook
|
||||
GtkNotebookPage
|
||||
gtk_notebook_new
|
||||
gtk_notebook_append_page
|
||||
gtk_notebook_append_page_menu
|
||||
@@ -2238,13 +2216,13 @@ gtk_notebook_get_tab_label_text
|
||||
gtk_notebook_get_tab_pos
|
||||
gtk_notebook_get_tab_reorderable
|
||||
gtk_notebook_get_tab_detachable
|
||||
gtk_notebook_get_tab_hborder
|
||||
gtk_notebook_get_tab_vborder
|
||||
gtk_notebook_set_current_page
|
||||
gtk_notebook_set_group
|
||||
gtk_notebook_get_group
|
||||
gtk_notebook_set_group_name
|
||||
gtk_notebook_get_group_name
|
||||
gtk_notebook_set_action_widget
|
||||
gtk_notebook_get_action_widget
|
||||
GtkNotebookWindowCreationFunc
|
||||
gtk_notebook_set_window_creation_hook
|
||||
<SUBSECTION Standard>
|
||||
GTK_NOTEBOOK
|
||||
GTK_IS_NOTEBOOK
|
||||
@@ -2255,28 +2233,7 @@ GTK_NOTEBOOK_GET_CLASS
|
||||
<SUBSECTION Private>
|
||||
gtk_notebook_get_type
|
||||
GtkNotebookTab
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>gtkobject</FILE>
|
||||
<TITLE>GtkObject</TITLE>
|
||||
GtkObject
|
||||
GtkObjectFlags
|
||||
GTK_OBJECT_FLAGS
|
||||
gtk_object_destroy
|
||||
<SUBSECTION Standard>
|
||||
GTK_OBJECT
|
||||
GTK_IS_OBJECT
|
||||
GTK_TYPE_OBJECT
|
||||
GTK_OBJECT_CLASS
|
||||
GTK_IS_OBJECT_CLASS
|
||||
GTK_OBJECT_GET_CLASS
|
||||
|
||||
<SUBSECTION Private>
|
||||
gtk_object_get_type
|
||||
GTK_ARG_READWRITE
|
||||
GTK_OBJECT_SET_FLAGS
|
||||
GTK_OBJECT_UNSET_FLAGS
|
||||
GtkNotebookPrivate
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
@@ -2284,7 +2241,7 @@ GTK_OBJECT_UNSET_FLAGS
|
||||
<TITLE>GtkOffscreenWindow</TITLE>
|
||||
GtkOffscreenWindow
|
||||
gtk_offscreen_window_new
|
||||
gtk_offscreen_window_get_pixmap
|
||||
gtk_offscreen_window_get_surface
|
||||
gtk_offscreen_window_get_pixbuf
|
||||
<SUBSECTION Standard>
|
||||
GTK_OFFSCREEN_WINDOW
|
||||
@@ -2343,6 +2300,7 @@ GTK_PLUG_CLASS
|
||||
GTK_IS_PLUG_CLASS
|
||||
GTK_PLUG_GET_CLASS
|
||||
<SUBSECTION Private>
|
||||
GtkPlugPrivate
|
||||
gtk_plug_get_type
|
||||
</SECTION>
|
||||
|
||||
@@ -2354,9 +2312,8 @@ gtk_progress_bar_new
|
||||
gtk_progress_bar_pulse
|
||||
gtk_progress_bar_set_fraction
|
||||
gtk_progress_bar_get_fraction
|
||||
GtkProgressBarOrientation
|
||||
gtk_progress_bar_set_orientation
|
||||
gtk_progress_bar_get_orientation
|
||||
gtk_progress_bar_set_inverted
|
||||
gtk_progress_bar_get_inverted
|
||||
gtk_progress_bar_set_show_text
|
||||
gtk_progress_bar_get_show_text
|
||||
gtk_progress_bar_set_text
|
||||
@@ -2373,6 +2330,7 @@ GTK_PROGRESS_BAR_CLASS
|
||||
GTK_IS_PROGRESS_BAR_CLASS
|
||||
GTK_PROGRESS_BAR_GET_CLASS
|
||||
<SUBSECTION Private>
|
||||
GtkProgressBarPrivate
|
||||
gtk_progress_bar_get_type
|
||||
</SECTION>
|
||||
|
||||
@@ -2410,6 +2368,7 @@ gtk_radio_button_new_with_mnemonic
|
||||
gtk_radio_button_new_with_mnemonic_from_widget
|
||||
gtk_radio_button_set_group
|
||||
gtk_radio_button_get_group
|
||||
gtk_radio_button_join_group
|
||||
<SUBSECTION Standard>
|
||||
GTK_RADIO_BUTTON
|
||||
GTK_IS_RADIO_BUTTON
|
||||
@@ -2418,6 +2377,7 @@ GTK_RADIO_BUTTON_CLASS
|
||||
GTK_IS_RADIO_BUTTON_CLASS
|
||||
GTK_RADIO_BUTTON_GET_CLASS
|
||||
<SUBSECTION Private>
|
||||
GtkRadioButtonPrivate
|
||||
gtk_radio_button_get_type
|
||||
</SECTION>
|
||||
|
||||
@@ -2441,6 +2401,7 @@ GTK_RADIO_MENU_ITEM_CLASS
|
||||
GTK_IS_RADIO_MENU_ITEM_CLASS
|
||||
GTK_RADIO_MENU_ITEM_GET_CLASS
|
||||
<SUBSECTION Private>
|
||||
GtkRadioMenuItemPrivate
|
||||
gtk_radio_menu_item_get_type
|
||||
</SECTION>
|
||||
|
||||
@@ -2644,8 +2605,6 @@ gtk_recent_manager_remove_item
|
||||
gtk_recent_manager_lookup_item
|
||||
gtk_recent_manager_has_item
|
||||
gtk_recent_manager_move_item
|
||||
gtk_recent_manager_get_limit
|
||||
gtk_recent_manager_set_limit
|
||||
gtk_recent_manager_get_items
|
||||
gtk_recent_manager_purge_items
|
||||
<SUBSECTION>
|
||||
@@ -2726,9 +2685,8 @@ GTK_RULER_CLASS
|
||||
GTK_IS_RULER_CLASS
|
||||
GTK_RULER_GET_CLASS
|
||||
<SUBSECTION Private>
|
||||
GtkRulerPrivate
|
||||
gtk_ruler_get_type
|
||||
gtk_ruler_draw_ticks
|
||||
gtk_ruler_draw_pos
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
@@ -2755,6 +2713,7 @@ GTK_SCALE_CLASS
|
||||
GTK_IS_SCALE_CLASS
|
||||
GTK_SCALE_GET_CLASS
|
||||
<SUBSECTION Private>
|
||||
GtkScalePrivate
|
||||
gtk_scale_get_type
|
||||
</SECTION>
|
||||
|
||||
@@ -2914,6 +2873,7 @@ GTK_SIZE_GROUP_CLASS
|
||||
GTK_IS_SIZE_GROUP_CLASS
|
||||
GTK_SIZE_GROUP_GET_CLASS
|
||||
<SUBSECTION Private>
|
||||
GtkSizeGroupPrivate
|
||||
gtk_size_group_get_type
|
||||
</SECTION>
|
||||
|
||||
@@ -2975,6 +2935,7 @@ GTK_SPIN_BUTTON_CLASS
|
||||
GTK_IS_SPIN_BUTTON_CLASS
|
||||
GTK_SPIN_BUTTON_GET_CLASS
|
||||
<SUBSECTION Private>
|
||||
GtkSpinButtonPrivate
|
||||
gtk_spin_button_get_type
|
||||
</SECTION>
|
||||
|
||||
@@ -3010,8 +2971,6 @@ gtk_statusbar_push
|
||||
gtk_statusbar_pop
|
||||
gtk_statusbar_remove
|
||||
gtk_statusbar_remove_all
|
||||
gtk_statusbar_set_has_resize_grip
|
||||
gtk_statusbar_get_has_resize_grip
|
||||
gtk_statusbar_get_message_area
|
||||
<SUBSECTION Standard>
|
||||
GTK_STATUSBAR
|
||||
@@ -3021,6 +2980,7 @@ GTK_STATUSBAR_CLASS
|
||||
GTK_IS_STATUSBAR_CLASS
|
||||
GTK_STATUSBAR_GET_CLASS
|
||||
<SUBSECTION Private>
|
||||
GtkStatusbarPrivate
|
||||
gtk_statusbar_get_type
|
||||
</SECTION>
|
||||
|
||||
@@ -3058,8 +3018,6 @@ gtk_status_icon_get_title
|
||||
gtk_status_icon_set_name
|
||||
gtk_status_icon_set_visible
|
||||
gtk_status_icon_get_visible
|
||||
gtk_status_icon_set_blinking
|
||||
gtk_status_icon_get_blinking
|
||||
gtk_status_icon_is_embedded
|
||||
gtk_status_icon_position_menu
|
||||
gtk_status_icon_get_geometry
|
||||
@@ -3104,6 +3062,7 @@ GTK_TABLE_CLASS
|
||||
GTK_IS_TABLE_CLASS
|
||||
GTK_TABLE_GET_CLASS
|
||||
<SUBSECTION Private>
|
||||
GtkTablePrivate
|
||||
GtkTableChild
|
||||
GtkTableRowCol
|
||||
gtk_table_get_type
|
||||
@@ -3122,6 +3081,7 @@ 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>
|
||||
|
||||
@@ -3216,6 +3176,7 @@ GTK_TEXT_BUFFER_CLASS
|
||||
GTK_IS_TEXT_BUFFER_CLASS
|
||||
GTK_TEXT_BUFFER_GET_CLASS
|
||||
<SUBSECTION Private>
|
||||
GtkTextBufferPrivate
|
||||
gtk_text_buffer_get_type
|
||||
GtkTextLogAttrCache
|
||||
</SECTION>
|
||||
@@ -3392,6 +3353,7 @@ GTK_TEXT_TAG_TABLE_CLASS
|
||||
GTK_IS_TEXT_TAG_TABLE_CLASS
|
||||
GTK_TEXT_TAG_TABLE_GET_CLASS
|
||||
<SUBSECTION Private>
|
||||
GtkTextTagTablePrivate
|
||||
gtk_text_tag_table_get_type
|
||||
</SECTION>
|
||||
|
||||
@@ -3481,6 +3443,7 @@ GTK_TEXT_CHILD_ANCHOR_CLASS
|
||||
GTK_IS_TEXT_CHILD_ANCHOR_CLASS
|
||||
GTK_TEXT_CHILD_ANCHOR_GET_CLASS
|
||||
<SUBSECTION Private>
|
||||
GtkTextViewPrivate
|
||||
gtk_text_view_get_type
|
||||
gtk_text_child_anchor_get_type
|
||||
GtkTextBTree
|
||||
@@ -4388,6 +4351,16 @@ gtk_cell_renderer_set_alignment
|
||||
gtk_cell_renderer_get_padding
|
||||
gtk_cell_renderer_set_padding
|
||||
|
||||
<SUBSECTION Width-for-height>
|
||||
gtk_cell_renderer_get_preferred_height
|
||||
gtk_cell_renderer_get_preferred_height_for_width
|
||||
gtk_cell_renderer_get_preferred_size
|
||||
gtk_cell_renderer_get_preferred_width
|
||||
gtk_cell_renderer_get_preferred_width_for_height
|
||||
gtk_cell_renderer_get_request_mode
|
||||
gtk_cell_view_get_desired_height_for_width_of_row
|
||||
gtk_cell_view_get_desired_width_of_row
|
||||
|
||||
<SUBSECTION Standard>
|
||||
GTK_CELL_RENDERER
|
||||
GTK_IS_CELL_RENDERER
|
||||
@@ -4591,6 +4564,7 @@ GTK_LIST_STORE_CLASS
|
||||
GTK_IS_LIST_STORE_CLASS
|
||||
GTK_LIST_STORE_GET_CLASS
|
||||
<SUBSECTION Private>
|
||||
GtkListStorePrivate
|
||||
gtk_list_store_get_type
|
||||
</SECTION>
|
||||
|
||||
@@ -4647,6 +4621,7 @@ GTK_VIEWPORT_CLASS
|
||||
GTK_IS_VIEWPORT_CLASS
|
||||
GTK_VIEWPORT_GET_CLASS
|
||||
<SUBSECTION Private>
|
||||
GtkViewportPrivate
|
||||
gtk_viewport_get_type
|
||||
</SECTION>
|
||||
|
||||
@@ -4753,30 +4728,26 @@ gtk_vseparator_get_type
|
||||
<TITLE>GtkWidget</TITLE>
|
||||
GtkWidget
|
||||
GtkWidgetClass
|
||||
GtkWidgetFlags
|
||||
GTK_WIDGET_FLAGS
|
||||
GTK_WIDGET_SET_FLAGS
|
||||
GTK_WIDGET_UNSET_FLAGS
|
||||
GtkCallback
|
||||
GtkRequisition
|
||||
GtkAllocation
|
||||
GtkSelectionData
|
||||
GtkWidgetAuxInfo
|
||||
GtkWidgetShapeInfo
|
||||
GtkWidgetHelpType
|
||||
gtk_widget_new
|
||||
gtk_widget_destroy
|
||||
gtk_widget_in_destruction
|
||||
gtk_widget_destroyed
|
||||
gtk_widget_unparent
|
||||
gtk_widget_show
|
||||
gtk_widget_show_now
|
||||
gtk_widget_hide
|
||||
gtk_widget_show_all
|
||||
gtk_widget_hide_all
|
||||
gtk_widget_map
|
||||
gtk_widget_unmap
|
||||
gtk_widget_realize
|
||||
gtk_widget_unrealize
|
||||
gtk_widget_draw
|
||||
gtk_widget_queue_draw
|
||||
gtk_widget_queue_resize
|
||||
gtk_widget_queue_resize_no_redraw
|
||||
@@ -4812,9 +4783,8 @@ gtk_widget_get_device_events
|
||||
gtk_widget_add_device_events
|
||||
gtk_widget_get_toplevel
|
||||
gtk_widget_get_ancestor
|
||||
gtk_widget_get_colormap
|
||||
gtk_widget_set_colormap
|
||||
gtk_widget_get_visual
|
||||
gtk_widget_set_visual
|
||||
gtk_widget_get_pointer
|
||||
gtk_widget_is_ancestor
|
||||
gtk_widget_translate_coordinates
|
||||
@@ -4823,19 +4793,14 @@ gtk_widget_set_style
|
||||
gtk_widget_ensure_style
|
||||
gtk_widget_get_style
|
||||
gtk_widget_reset_rc_styles
|
||||
gtk_widget_push_colormap
|
||||
gtk_widget_pop_colormap
|
||||
gtk_widget_set_default_colormap
|
||||
gtk_widget_get_default_style
|
||||
gtk_widget_get_default_colormap
|
||||
gtk_widget_get_default_visual
|
||||
gtk_widget_set_direction
|
||||
GtkTextDirection
|
||||
gtk_widget_get_direction
|
||||
gtk_widget_set_default_direction
|
||||
gtk_widget_get_default_direction
|
||||
gtk_widget_shape_combine_mask
|
||||
gtk_widget_input_shape_combine_mask
|
||||
gtk_widget_shape_combine_region
|
||||
gtk_widget_input_shape_combine_region
|
||||
gtk_widget_path
|
||||
gtk_widget_class_path
|
||||
gtk_widget_get_composite_name
|
||||
@@ -4855,6 +4820,7 @@ gtk_widget_render_icon
|
||||
gtk_widget_pop_composite_child
|
||||
gtk_widget_push_composite_child
|
||||
gtk_widget_queue_draw_area
|
||||
gtk_widget_queue_draw_region
|
||||
gtk_widget_reset_shapes
|
||||
gtk_widget_set_app_paintable
|
||||
gtk_widget_set_double_buffered
|
||||
@@ -4906,8 +4872,11 @@ gtk_widget_set_tooltip_window
|
||||
gtk_widget_get_has_tooltip
|
||||
gtk_widget_set_has_tooltip
|
||||
gtk_widget_trigger_tooltip_query
|
||||
gtk_widget_get_snapshot
|
||||
gtk_widget_get_window
|
||||
gtk_cairo_should_draw_window
|
||||
gtk_cairo_transform_to_window
|
||||
gtk_widget_get_allocated_width
|
||||
gtk_widget_get_allocated_height
|
||||
gtk_widget_get_allocation
|
||||
gtk_widget_set_allocation
|
||||
gtk_widget_get_app_paintable
|
||||
@@ -4946,6 +4915,44 @@ gtk_requisition_new
|
||||
gtk_requisition_copy
|
||||
gtk_requisition_free
|
||||
|
||||
<SUBSECTION Width-for-Height>
|
||||
GtkSizeRequestMode
|
||||
GtkRequestedSize
|
||||
gtk_widget_get_preferred_height
|
||||
gtk_widget_get_preferred_width
|
||||
gtk_widget_get_preferred_height_for_width
|
||||
gtk_widget_get_preferred_width_for_height
|
||||
gtk_widget_get_request_mode
|
||||
gtk_widget_get_preferred_size
|
||||
gtk_distribute_natural_allocation
|
||||
|
||||
<SUBSECTION Alignment and Margins>
|
||||
GtkAlign
|
||||
gtk_widget_get_halign
|
||||
gtk_widget_set_halign
|
||||
gtk_widget_get_valign
|
||||
gtk_widget_set_valign
|
||||
gtk_widget_get_margin_left
|
||||
gtk_widget_set_margin_left
|
||||
gtk_widget_get_margin_right
|
||||
gtk_widget_set_margin_right
|
||||
gtk_widget_get_margin_top
|
||||
gtk_widget_set_margin_top
|
||||
gtk_widget_get_margin_bottom
|
||||
gtk_widget_set_margin_bottom
|
||||
|
||||
<SUBSECTION Expand>
|
||||
gtk_widget_get_hexpand
|
||||
gtk_widget_set_hexpand
|
||||
gtk_widget_get_hexpand_set
|
||||
gtk_widget_set_hexpand_set
|
||||
gtk_widget_get_vexpand
|
||||
gtk_widget_set_vexpand
|
||||
gtk_widget_get_vexpand_set
|
||||
gtk_widget_set_vexpand_set
|
||||
gtk_widget_queue_compute_expand
|
||||
gtk_widget_compute_expand
|
||||
|
||||
<SUBSECTION Standard>
|
||||
GTK_WIDGET
|
||||
GTK_IS_WIDGET
|
||||
@@ -4955,6 +4962,7 @@ GTK_IS_WIDGET_CLASS
|
||||
GTK_WIDGET_GET_CLASS
|
||||
GTK_TYPE_REQUISITION
|
||||
<SUBSECTION Private>
|
||||
GtkWidgetPrivate
|
||||
gtk_widget_get_type
|
||||
gtk_requisition_get_type
|
||||
</SECTION>
|
||||
@@ -5065,6 +5073,11 @@ gtk_window_get_opacity
|
||||
gtk_window_set_opacity
|
||||
gtk_window_get_mnemonics_visible
|
||||
gtk_window_set_mnemonics_visible
|
||||
gtk_window_set_has_resize_grip
|
||||
gtk_window_get_has_resize_grip
|
||||
gtk_window_get_resize_grip_is_visible
|
||||
gtk_window_get_resize_grip_area
|
||||
|
||||
<SUBSECTION Standard>
|
||||
GTK_WINDOW
|
||||
GTK_IS_WINDOW
|
||||
@@ -5074,6 +5087,7 @@ GTK_IS_WINDOW_CLASS
|
||||
GTK_WINDOW_GET_CLASS
|
||||
|
||||
<SUBSECTION Private>
|
||||
GtkWindowPrivate
|
||||
gtk_window_get_type
|
||||
GtkWindowGeometryInfo
|
||||
gtk_window_remove_embedded_xid
|
||||
@@ -5137,9 +5151,12 @@ gtk_device_grab_add
|
||||
gtk_device_grab_remove
|
||||
|
||||
<SUBSECTION>
|
||||
GtkFunction
|
||||
gtk_init_add
|
||||
gtk_quit_add_destroy
|
||||
gtk_quit_add
|
||||
GtkCallbackMarshal
|
||||
GtkArg
|
||||
gtk_quit_add_full
|
||||
gtk_quit_remove
|
||||
gtk_quit_remove_by_data
|
||||
@@ -5170,11 +5187,11 @@ GTKMAIN_C_VAR
|
||||
<SECTION>
|
||||
<FILE>gtkfeatures</FILE>
|
||||
<TITLE>Feature Test Macros</TITLE>
|
||||
gtk_major_version
|
||||
gtk_minor_version
|
||||
gtk_micro_version
|
||||
gtk_binary_age
|
||||
gtk_interface_age
|
||||
gtk_get_major_version
|
||||
gtk_get_minor_version
|
||||
gtk_get_micro_version
|
||||
gtk_get_binary_age
|
||||
gtk_get_interface_age
|
||||
gtk_check_version
|
||||
|
||||
<SUBSECTION>
|
||||
@@ -5186,14 +5203,6 @@ GTK_INTERFACE_AGE
|
||||
GTK_CHECK_VERSION
|
||||
</SECTION>
|
||||
|
||||
|
||||
<SECTION>
|
||||
<FILE>gtkgc</FILE>
|
||||
<TITLE>Graphics Contexts</TITLE>
|
||||
gtk_gc_get
|
||||
gtk_gc_release
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>gtkstyle</FILE>
|
||||
<TITLE>GtkStyle</TITLE>
|
||||
@@ -5222,7 +5231,6 @@ gtk_paint_focus
|
||||
gtk_paint_handle
|
||||
gtk_paint_hline
|
||||
gtk_paint_option
|
||||
gtk_paint_polygon
|
||||
gtk_paint_shadow
|
||||
gtk_paint_shadow_gap
|
||||
gtk_paint_slider
|
||||
@@ -5308,6 +5316,9 @@ GtkRcContext
|
||||
GtkTargetEntry
|
||||
GtkTargetList
|
||||
GtkTargetPair
|
||||
gtk_target_entry_new
|
||||
gtk_target_entry_copy
|
||||
gtk_target_entry_free
|
||||
gtk_target_list_new
|
||||
gtk_target_list_ref
|
||||
gtk_target_list_unref
|
||||
@@ -5434,14 +5445,13 @@ gtk_drag_unhighlight
|
||||
<SUBSECTION Source Side>
|
||||
gtk_drag_begin
|
||||
gtk_drag_set_icon_widget
|
||||
gtk_drag_set_icon_pixmap
|
||||
gtk_drag_set_icon_pixbuf
|
||||
gtk_drag_set_icon_stock
|
||||
gtk_drag_set_icon_surface
|
||||
gtk_drag_set_icon_name
|
||||
gtk_drag_set_icon_default
|
||||
gtk_drag_check_threshold
|
||||
gtk_drag_source_set
|
||||
gtk_drag_source_set_icon
|
||||
gtk_drag_source_set_icon_pixbuf
|
||||
gtk_drag_source_set_icon_stock
|
||||
gtk_drag_source_set_icon_name
|
||||
@@ -5453,17 +5463,6 @@ gtk_drag_source_add_image_targets
|
||||
gtk_drag_source_add_uri_targets
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>gtktypeutils</FILE>
|
||||
<TITLE>Types</TITLE>
|
||||
GtkFunction
|
||||
GtkCallbackMarshal
|
||||
GtkArg
|
||||
<SUBSECTION Private>
|
||||
GTK_TYPE_IDENTIFIER
|
||||
gtk_identifier_get_type
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>gtkbindings</FILE>
|
||||
<TITLE>Bindings</TITLE>
|
||||
@@ -5488,7 +5487,6 @@ gtk_binding_set_add_path
|
||||
<FILE>gtkenums</FILE>
|
||||
<TITLE>Standard Enumerations</TITLE>
|
||||
GtkAccelFlags
|
||||
GtkAnchorType
|
||||
GtkArrowPlacement
|
||||
GtkArrowType
|
||||
GtkAttachOptions
|
||||
@@ -5515,11 +5513,8 @@ GtkScrollType
|
||||
GtkSelectionMode
|
||||
GtkShadowType
|
||||
GtkStateType
|
||||
GtkSubmenuDirection
|
||||
GtkSubmenuPlacement
|
||||
GtkToolbarStyle
|
||||
GtkUpdateType
|
||||
GtkVisibility
|
||||
GtkWindowPosition
|
||||
GtkWindowType
|
||||
GtkSortType
|
||||
@@ -6298,30 +6293,6 @@ GTK_TYPE_ORIENTABLE
|
||||
gtk_orientable_get_type
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>gtksizerequest</FILE>
|
||||
<TITLE>GtkSizeRequest</TITLE>
|
||||
GtkSizeRequest
|
||||
GtkSizeRequestIface
|
||||
GtkSizeRequestMode
|
||||
gtk_size_request_get_height
|
||||
gtk_size_request_get_width
|
||||
gtk_size_request_get_height_for_width
|
||||
gtk_size_request_get_width_for_height
|
||||
gtk_size_request_get_request_mode
|
||||
gtk_size_request_get_size
|
||||
|
||||
<SUBSECTION Standard>
|
||||
GTK_SIZE_REQUEST
|
||||
GTK_SIZE_REQUEST_CLASS
|
||||
GTK_SIZE_REQUEST_GET_IFACE
|
||||
GTK_IS_SIZE_REQUEST
|
||||
GTK_TYPE_SIZE_REQUEST
|
||||
|
||||
<SUBSECTION Private>
|
||||
gtk_size_request_get_type
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>gtkapplication</FILE>
|
||||
<TITLE>GtkApplication</TITLE>
|
||||
@@ -6333,6 +6304,8 @@ gtk_application_quit
|
||||
gtk_application_set_action_group
|
||||
gtk_application_get_window
|
||||
gtk_application_add_window
|
||||
gtk_application_remove_window
|
||||
gtk_application_get_windows
|
||||
gtk_application_create_window
|
||||
|
||||
<SUBSECTION Standard>
|
||||
|
||||
@@ -40,8 +40,8 @@ gtk_clipboard_get_type
|
||||
gtk_color_button_get_type
|
||||
gtk_color_selection_dialog_get_type
|
||||
gtk_color_selection_get_type
|
||||
gtk_combo_box_entry_get_type
|
||||
gtk_combo_box_get_type
|
||||
gtk_combo_box_text_get_type
|
||||
gtk_container_get_type
|
||||
gtk_dialog_get_type
|
||||
gtk_drawing_area_get_type
|
||||
@@ -80,7 +80,6 @@ gtk_im_context_simple_get_type
|
||||
gtk_im_multicontext_get_type
|
||||
gtk_info_bar_get_type
|
||||
gtk_invisible_get_type
|
||||
gtk_item_get_type
|
||||
gtk_label_get_type
|
||||
gtk_layout_get_type
|
||||
gtk_link_button_get_type
|
||||
@@ -94,7 +93,6 @@ gtk_message_dialog_get_type
|
||||
gtk_misc_get_type
|
||||
gtk_mount_operation_get_type
|
||||
gtk_notebook_get_type
|
||||
gtk_object_get_type
|
||||
gtk_offscreen_window_get_type
|
||||
gtk_orientable_get_type
|
||||
gtk_page_setup_get_type
|
||||
@@ -132,7 +130,6 @@ gtk_separator_menu_item_get_type
|
||||
gtk_separator_tool_item_get_type
|
||||
gtk_settings_get_type
|
||||
gtk_size_group_get_type
|
||||
gtk_size_request_get_type
|
||||
gtk_socket_get_type
|
||||
gtk_spin_button_get_type
|
||||
gtk_spinner_get_type
|
||||
|
||||
BIN
docs/reference/gtk/images/hello-world.png
Normal file
BIN
docs/reference/gtk/images/hello-world.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 3.6 KiB |
BIN
docs/reference/gtk/images/window-default.png
Normal file
BIN
docs/reference/gtk/images/window-default.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 4.7 KiB |
@@ -6,16 +6,67 @@
|
||||
<title>Migrating from GTK+ 2.x to GTK+ 3</title>
|
||||
|
||||
<para>
|
||||
There are a number of steps that you can take to prepare your GTK+ 2.x
|
||||
application for the switch to GTK+ 3.
|
||||
GTK+ 3 is a major new version of GTK+ that breaks both API and ABI
|
||||
compared to GTK+ 2.x, which has remained API- and ABI-stable for a
|
||||
long time. Thankfully, most of the changes are not hard to adapt to
|
||||
and there are a number of steps that you can take to prepare your
|
||||
GTK+ 2.x application for the switch to GTK+ 3. After that, there's
|
||||
a small number of adjustments that you may have to do when you actually
|
||||
switch your application to build against GTK+ 3.
|
||||
</para>
|
||||
|
||||
<section>
|
||||
<title>Only single includes</title>
|
||||
<title>Preparation in GTK+ 2.x</title>
|
||||
|
||||
<para>
|
||||
The steps outlined in the following sections assume that your
|
||||
application is working with GTK+ 2.24, which is the final stable
|
||||
release of GTK+ 2.x. It includes all the necessary APIs and tools
|
||||
to help you port your application to GTK+ 3. If you are still using
|
||||
an older version of GTK+ 2.x, you should first get your application
|
||||
to build and work with 2.24.
|
||||
</para>
|
||||
|
||||
<section>
|
||||
<title>Do not include individual headers</title>
|
||||
<para>
|
||||
Make sure your program only include the toplevel headers:
|
||||
With GTK+ 2.x it was common to include just the header files for
|
||||
a few widgets that your application was using, which could lead
|
||||
to problems with missing definitions, etc. GTK+ 3 tightens the
|
||||
rules about which header files you are allowed to include directly.
|
||||
The allowed header files are are
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><filename>gtk/gtk.h</filename></term>
|
||||
<listitem>for GTK</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><filename>gtk/gtkunixprint.h</filename></term>
|
||||
<listitem>for low-level, UNIX-specific printing functions</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><filename>gdk/gdk.h</filename></term>
|
||||
<listitem>for GDK</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><filename>gdk/gdkx.h</filename></term>
|
||||
<listitem>for GDK functions that are X11-specific</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><filename>gdk/gdkwin32.h</filename></term>
|
||||
<listitem>for GDK functions that are Windows-specific</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
(these relative paths are assuming that you are using the include
|
||||
paths that are specified in the gtk+-2.0.pc file, as returned by
|
||||
<literal>pkg-config --cflags gtk+-2.0.pc</literal>.)
|
||||
</para>
|
||||
<para>
|
||||
To check that your application only includes the allowed headers,
|
||||
you can use defines to disable inclusion of individual headers,
|
||||
as follows:
|
||||
<programlisting>
|
||||
make CFLAGS+="-DG_DISABLE_SINGLE_INCLUDES -DGDK_PIXBUF_DISABLE_SINGLE_INCLUDES -DGTK_DISABLE_SINGLE_INCLUDES"
|
||||
make CFLAGS+="-DGTK_DISABLE_SINGLE_INCLUDES"
|
||||
</programlisting>
|
||||
</para>
|
||||
</section>
|
||||
@@ -23,32 +74,633 @@
|
||||
<section>
|
||||
<title>Do not use deprecated symbols</title>
|
||||
<para>
|
||||
Make sure your program doesn't use any functions that have been
|
||||
deprecated in GTK+ 2.x:
|
||||
Over the years, a number of functions, and in some cases, entire
|
||||
widgets have been deprecated. These deprecations are clearly spelled
|
||||
out in the API reference, with hints about the recommended replacements.
|
||||
The API reference also includes an
|
||||
<link linkend="api-index-deprecated">index</link> of all deprecated
|
||||
symbols.
|
||||
</para>
|
||||
<para>
|
||||
To verify that your program does not use any deprecated symbols,
|
||||
you can use defines to remove deprecated symbols from the header files,
|
||||
as follows:
|
||||
<programlisting>
|
||||
make CFLAGS+="-DG_DISABLE_DEPRECATED -DGDK_PIXBUF_DISABLE_DEPRECATED -DGDK_DISABLE_DEPRECATED -DGTK_DISABLE_DEPRECATED"
|
||||
make CFLAGS+="-DGDK_DISABLE_DEPRECATED -DGTK_DISABLE_DEPRECATED"
|
||||
</programlisting>
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<title>Use accessor functions instead direct access</title>
|
||||
<title>Use accessor functions instead of direct access</title>
|
||||
<para>
|
||||
GTK+ 3 removes many implementation details and struct members from
|
||||
its public headers. To ensure that your application does not have problems
|
||||
with this, you define the preprocessor symbol GSEAL_ENABLE. This will
|
||||
make the compiler catch all uses of direct access to struct fields so that
|
||||
you can go through them one by one and replace them with a call to an
|
||||
accessor function instead.
|
||||
its public headers.
|
||||
</para>
|
||||
<para>
|
||||
To ensure that your application does not have problems with this, you
|
||||
define the preprocessor symbol <literal>GSEAL_ENABLE</literal>. This
|
||||
will make the compiler catch all uses of direct access to struct fields
|
||||
so that you can go through them one by one and replace them with a call
|
||||
to an accessor function instead.
|
||||
<programlisting>
|
||||
make CFLAGS+="-DGSEAL_ENABLE"
|
||||
</programlisting>
|
||||
Starting with 2.90.4, GTK+'s .pc files turn on GSEAL_ENABLE by default.
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<title>GTK+ Modules</title>
|
||||
<title>Replace GDK_<keyname> with GDK_KEY_<keyname></title>
|
||||
|
||||
<para>
|
||||
Key constants have gained a <literal>_KEY_</literal> infix.
|
||||
For example, <literal>GDK_a</literal> is now
|
||||
<literal>GDK_KEY_a</literal>. In GTK+ 2, the old names continue
|
||||
to be available. In GTK+ 3 however, the old names will require
|
||||
an explicit include of the <literal>gdkkeysyms-compat.h</literal> header.
|
||||
</para>
|
||||
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<title>Use cairo for drawing</title>
|
||||
<para>
|
||||
In GTK+ 3, the GDK drawing API (which closely mimics the X
|
||||
drawing API, which is itself modeled after PostScript) has been
|
||||
removed. All drawing in GTK+ 3 is done via cairo.
|
||||
</para>
|
||||
<para>
|
||||
The #GdkGC and #GdkImage objects, as well as all the functions using
|
||||
them, are gone. This includes the <literal>gdk_draw</literal> family
|
||||
of functions like gdk_draw_rectangle() and gdk_draw_drawable(). As
|
||||
#GdkGC is roughly equivalent to #cairo_t and #GdkImage was used for
|
||||
drawing images to GdkDrawables, which cairo supports automatically,
|
||||
a transition is usually straightforward.
|
||||
</para>
|
||||
<para>
|
||||
The following examples show a few common drawing idioms used by
|
||||
applications that have been ported to use cairo and how the code
|
||||
was replaced.
|
||||
</para>
|
||||
<example>
|
||||
<title>Drawing a GdkPixbuf onto a GdkDrawable</title>
|
||||
<para>
|
||||
Drawing a pixbuf onto a drawable used to be done like this:
|
||||
<programlisting><![CDATA[
|
||||
gdk_draw_pixbuf (window,
|
||||
gtk_widget_get_style (widget)->black_gc,
|
||||
pixbuf,
|
||||
0, 0
|
||||
x, y,
|
||||
gdk_pixbuf_get_width (pixbuf),
|
||||
gdk_pixbuf_get_height (pixbuf),
|
||||
GDK_RGB_DITHER_NORMAL,
|
||||
0, 0);
|
||||
]]></programlisting>
|
||||
Doing the same thing with cairo:
|
||||
<programlisting><![CDATA[
|
||||
cairo_t *cr = gdk_cairo_create (window);
|
||||
gdk_cairo_set_source_pixbuf (cr, pixbuf, x, y);
|
||||
cairo_paint (cr);
|
||||
cairo_destroy (cr);
|
||||
]]></programlisting>
|
||||
Note that very similar code can be used for drawing pixmaps
|
||||
by using gdk_cairo_set_source_pixmap() instead of
|
||||
gdk_cairo_set_source_pixbuf().
|
||||
</para>
|
||||
</example>
|
||||
<example>
|
||||
<title>Drawing a tiled GdkPixmap to a GdkDrawable</title>
|
||||
<para>
|
||||
Tiled pixmaps are often used for drawing backgrounds.
|
||||
Old code looked something like this:
|
||||
<programlisting><![CDATA[
|
||||
GdkGCValues gc_values;
|
||||
GdkGC *gc;
|
||||
|
||||
/* setup */
|
||||
gc = gtk_widget_get_style (widget)->black_gc;
|
||||
gdk_gc_set_tile (gc, pixmap);
|
||||
gdk_gc_set_fill (gc, GDK_TILED);
|
||||
gdk_gc_set_ts_origin (gc, x_origin, y_origin);
|
||||
/* use */
|
||||
gdk_draw_rectangle (drawable, gc, TRUE, 0, 0, width, height);
|
||||
/* restore */
|
||||
gdk_gc_set_tile (gc, NULL);
|
||||
gdk_gc_set_fill (gc, GDK_SOLID);
|
||||
gdk_gc_set_ts_origin (gc, 0, 0);
|
||||
]]></programlisting>
|
||||
The equivalent cairo code looks like this:
|
||||
<programlisting><![CDATA[
|
||||
cairo_t *cr;
|
||||
|
||||
cr = gdk_cairo_create (drawable);
|
||||
gdk_cairo_set_source_pixmap (cr, pixmap, x_origin, y_origin);
|
||||
cairo_pattern_set_extend (cairo_get_source (cr), CAIRO_EXTEND_REPEAT);
|
||||
cairo_rectangle (cr, 0, 0, width, height);
|
||||
cairo_fill (cr);
|
||||
cairo_destroy (cr);
|
||||
]]></programlisting>
|
||||
Again, you can exchange pixbufs and pixmaps by using
|
||||
gdk_cairo_set_source_pixbuf() instead of
|
||||
gdk_cairo_set_source_pixmap().
|
||||
</para>
|
||||
</example>
|
||||
<example>
|
||||
<title>Drawing a PangoLayout to a clipped area</title>
|
||||
<para>
|
||||
Drawing layouts clipped is often used to avoid overdraw or to
|
||||
allow drawing selections. Code would have looked like this:
|
||||
<programlisting><![CDATA[
|
||||
GdkGC *gc;
|
||||
|
||||
/* setup */
|
||||
gc = gtk_widget_get_style (widget)->text_gc[state];
|
||||
gdk_gc_set_clip_rectangle (gc, &area);
|
||||
/* use */
|
||||
gdk_draw_layout (drawable, gc, x, y, layout);
|
||||
/* restore */
|
||||
gdk_gc_set_clip_rectangle (gc, NULL);
|
||||
]]></programlisting>
|
||||
With cairo, the same effect can be achieved using:
|
||||
<programlisting><![CDATA[
|
||||
cairo_t *cr;
|
||||
|
||||
cr = gdk_cairo_create (drawable);
|
||||
/* clip */
|
||||
gdk_cairo_rectangle (cr, &area);
|
||||
cairo_clip (cr);
|
||||
/* set the correct source color */
|
||||
gdk_cairo_set_source_color (cr, >k_widget_get_style (widget)->text[state]);
|
||||
/* draw the text */
|
||||
cairo_move_to (cr, x, y);
|
||||
pango_cairo_show_layout (cr, layout);
|
||||
cairo_destroy (cr);
|
||||
]]></programlisting>
|
||||
Clipping using cairo_clip() is of course not restricted to text
|
||||
rendering and can be used everywhere where GC clips were used.
|
||||
And using gdk_cairo_set_source_color() with style colors should
|
||||
be used in all the places where a style’s GC was used to achieve
|
||||
a particular color.
|
||||
</para>
|
||||
</example>
|
||||
<section>
|
||||
<title>What should you be aware of ?</title>
|
||||
<formalpara><title>No more stippling</title>
|
||||
<para>
|
||||
Stippling is the usage of a bi-level mask, called a #GdkBitmap.
|
||||
It was often used to achieve a checkerboard effect. You can use
|
||||
cairo_mask() to achieve this effect. To get a checkerbox mask,
|
||||
you can use code like this:
|
||||
<programlisting><![CDATA[
|
||||
static cairo_pattern_t *
|
||||
gtk_color_button_get_checkered (void)
|
||||
{
|
||||
/* need to respect pixman's stride being a multiple of 4 */
|
||||
static unsigned char data[8] = { 0xFF, 0x00, 0x00, 0x00,
|
||||
0x00, 0xFF, 0x00, 0x00 };
|
||||
cairo_surface_t *surface;
|
||||
cairo_pattern_t *pattern;
|
||||
|
||||
surface = cairo_image_surface_create_for_data (data,
|
||||
CAIRO_FORMAT_A8,
|
||||
2, 2,
|
||||
4);
|
||||
pattern = cairo_pattern_create_for_surface (surface);
|
||||
cairo_surface_destroy (surface);
|
||||
cairo_pattern_set_extend (pattern, CAIRO_EXTEND_REPEAT);
|
||||
cairo_pattern_set_filter (pattern, CAIRO_FILTER_NEAREST);
|
||||
|
||||
return pattern;
|
||||
}
|
||||
]]></programlisting>
|
||||
Note that stippling looks very outdated in UIs, and is rarely
|
||||
used in modern applications. All properties that made use of
|
||||
stippling have been removed from GTK+ 3. Most prominently,
|
||||
stippling is absent from text rendering, in particular #GtkTextTag.
|
||||
</para>
|
||||
</formalpara>
|
||||
<formalpara><title>Using the the target drawable also as source or mask</title>
|
||||
<para>
|
||||
The gdk_draw_drawable() function allowed using the same drawable
|
||||
as source and target. This was often used to achieve a scrolling
|
||||
effect. Cairo does not allow this yet. You can however use
|
||||
cairo_push_group() to get a different intermediate target that
|
||||
you can copy to. So you can replace this code:
|
||||
<programlisting><![CDATA[
|
||||
gdk_draw_drawable (pixmap,
|
||||
gc,
|
||||
pixmap,
|
||||
area.x + dx, area.y + dy,
|
||||
area.x, area.y,
|
||||
area.width, area.height);
|
||||
]]></programlisting>
|
||||
By using this code:
|
||||
<programlisting><![CDATA[
|
||||
cairo_t *cr = gdk_cairo_create (pixmap);
|
||||
/* clipping restricts the intermediate surface's size, so it's a good idea
|
||||
* to use it. */
|
||||
gdk_cairo_rectangle (cr, &area);
|
||||
cairo_clip (cr);
|
||||
/* Now push a group to change the target */
|
||||
cairo_push_group (cr);
|
||||
gdk_cairo_set_source_pixmap (cr, pixmap, dx, dy);
|
||||
cairo_paint (cr);
|
||||
/* Now copy the intermediate target back */
|
||||
cairo_pop_group_to_source (cr);
|
||||
cairo_paint (cr);
|
||||
cairo_destroy (cr);
|
||||
]]></programlisting>
|
||||
The cairo developers plan to add self-copies in the future to allow
|
||||
exactly this effect, so you might want to keep up on cairo
|
||||
development to be able to change your code.
|
||||
</para>
|
||||
</formalpara>
|
||||
<formalpara><title>Using pango_cairo_show_layout(<!-- -->) instead of gdk_draw_layout_with_colors(<!-- -->)</title>
|
||||
<para>
|
||||
GDK provided a way to ignore the color attributes of text and use
|
||||
a hardcoded text color with the gdk_draw_layout_with_colors()
|
||||
function. This is often used to draw text shadows or selections.
|
||||
Pango’s cairo support does not yet provide this functionality. If
|
||||
you use Pango layouts that change colors, the easiest way to achieve
|
||||
a similar effect is using pango_cairo_layout_path() and cairo_fill()
|
||||
instead of gdk_draw_layout_with_colors(). Note that this results in
|
||||
a slightly uglier-looking text, as subpixel anti-aliasing is not
|
||||
supported.
|
||||
</para>
|
||||
</formalpara>
|
||||
</section>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<title>Changes that need to be done at the time of the switch</title>
|
||||
|
||||
<para>
|
||||
This section outlines porting tasks that you need to tackle when
|
||||
you get to the point that you actually build your application against
|
||||
GTK+ 3. Making it possible to prepare for these in GTK+ 2.24 would
|
||||
have been either impossible or impractical.
|
||||
</para>
|
||||
|
||||
<section>
|
||||
<title>Replace GdkRegion by cairo_region_t</title>
|
||||
|
||||
<para>
|
||||
Starting with version 1.10, cairo provides a region API that is
|
||||
equivalent to the GDK region API (which was itself copied from
|
||||
the X server). Therefore, the region API has been removed in GTK+ 3.
|
||||
</para>
|
||||
<para>
|
||||
Porting your application to the cairo region API should be a straight
|
||||
find-and-replace task. Please refer to the following table:
|
||||
<table>
|
||||
<tgroup cols="2">
|
||||
<thead>
|
||||
<row><entry>GDK</entry><entry>cairo</entry></row>
|
||||
</thead>
|
||||
<tbody>
|
||||
<row><entry>#GdkRegion</entry><entry>#cairo_region_t</entry></row>
|
||||
<row><entry>#GdkRectangle</entry><entry>#cairo_rectangle_int_t</entry></row>
|
||||
<row><entry>gdk_rectangle_intersect()</entry><entry>this function is still there</entry></row>
|
||||
<row><entry>gdk_rectangle_union()</entry><entry>this function is still there</entry></row>
|
||||
<row><entry>gdk_region_new()</entry><entry>cairo_region_create()</entry></row>
|
||||
<row><entry>gdk_region_copy()</entry><entry>cairo_region_copy()</entry></row>
|
||||
<row><entry>gdk_region_destroy()</entry><entry>cairo_region_destroy()</entry></row>
|
||||
<row><entry>gdk_region_rectangle()</entry><entry>cairo_region_create_rectangle()</entry></row>
|
||||
<row><entry>gdk_region_get_clipbox()</entry><entry>cairo_region_get_extents()</entry></row>
|
||||
<row><entry>gdk_region_get_rectangles()</entry><entry>cairo_region_num_rectangles() and
|
||||
cairo_region_get_rectangle()</entry></row>
|
||||
<row><entry>gdk_region_empty()</entry><entry>cairo_region_is_empty()</entry></row>
|
||||
<row><entry>gdk_region_equal()</entry><entry>cairo_region_equal()</entry></row>
|
||||
<row><entry>gdk_region_point_in()</entry><entry>cairo_region_contains_point()</entry></row>
|
||||
<row><entry>gdk_region_rect_in()</entry><entry>cairo_region_contains_rectangle()</entry></row>
|
||||
<row><entry>gdk_region_offset()</entry><entry>cairo_region_translate()</entry></row>
|
||||
<row><entry>gdk_region_union_with_rect()</entry><entry>cairo_region_union_rectangle()</entry></row>
|
||||
<row><entry>gdk_region_intersect()</entry><entry>cairo_region_intersect()</entry></row>
|
||||
<row><entry>gdk_region_union()</entry><entry>cairo_region_union()</entry></row>
|
||||
<row><entry>gdk_region_subtract()</entry><entry>cairo_region_subtract()</entry></row>
|
||||
<row><entry>gdk_region_xor()</entry><entry>cairo_region_xor()</entry></row>
|
||||
<row><entry>gdk_region_shrink()</entry><entry>no replacement</entry></row>
|
||||
<row><entry>gdk_region_polygon()</entry><entry>no replacement, use cairo paths instead</entry></row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</table>
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<title>Replace GdkPixmap by cairo surfaces</title>
|
||||
<para>
|
||||
The #GdkPixmap object and related functions have been removed.
|
||||
In the cairo-centric world of GTK+ 3, cairo surfaces take over
|
||||
the role of pixmaps.
|
||||
</para>
|
||||
<example>
|
||||
<title>Creating custom cursors</title>
|
||||
<para>
|
||||
One place where pixmaps were commonly used is to create custom
|
||||
cursors:
|
||||
<programlisting>
|
||||
GdkCursor *cursor;
|
||||
GdkPixmap *pixmap;
|
||||
cairo_t *cr;
|
||||
GdkColor fg = { 0, 0, 0, 0 };
|
||||
|
||||
pixmap = gdk_pixmap_new (NULL, 1, 1, 1);
|
||||
|
||||
cr = gdk_cairo_create (pixmap);
|
||||
cairo_rectangle (cr, 0, 0, 1, 1);
|
||||
cairo_fill (cr);
|
||||
cairo_destroy (cr);
|
||||
|
||||
cursor = gdk_cursor_new_from_pixmap (pixmap, pixmap, &fg, &fg, 0, 0);
|
||||
|
||||
g_object_unref (pixmap);
|
||||
</programlisting>
|
||||
The same can be achieved without pixmaps, by drawing onto
|
||||
an image surface:
|
||||
<programlisting>
|
||||
GdkCursor *cursor;
|
||||
cairo_surface_t *s;
|
||||
cairo_t *cr;
|
||||
GdkPixbuf *pixbuf;
|
||||
|
||||
s = cairo_image_surface_create (CAIRO_FORMAT_A1, 3, 3);
|
||||
cr = cairo_create (s);
|
||||
cairo_arc (cr, 1.5, 1.5, 1.5, 0, 2 * M_PI);
|
||||
cairo_fill (cr);
|
||||
cairo_destroy (cr);
|
||||
|
||||
pixbuf = gdk_pixbuf_get_from_surface (NULL, s,
|
||||
0, 0, 0, 0,
|
||||
3, 3);
|
||||
|
||||
cairo_surface_destroy (s);
|
||||
|
||||
cursor = gdk_cursor_new_from_pixbuf (display, pixbuf, 0, 0);
|
||||
|
||||
g_object_unref (pixbuf);
|
||||
</programlisting>
|
||||
</para>
|
||||
</example>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<title>Replace colormaps by visuals</title>
|
||||
<para>
|
||||
For drawing with cairo, it is not necessary to allocate colors, and
|
||||
a #GdkVisual provides enough information for cairo to handle colors
|
||||
in 'native' surfaces. Therefore, #GdkColormap and related functions
|
||||
have been removed in GTK+ 3, and visuals are used instead. The
|
||||
colormap-handling functions of #GtkWidget (gtk_widget_set_colormap(),
|
||||
etc) have been removed and gtk_window_set_visual() has been added.
|
||||
</para>
|
||||
<example><title>Setting up a translucent window</title>
|
||||
<para>You might have a screen-changed handler like the following
|
||||
to set up a translucent window with an alpha-channel:
|
||||
</para>
|
||||
<programlisting>
|
||||
static void
|
||||
on_alpha_screen_changed (GtkWidget *widget,
|
||||
GdkScreen *old_screen,
|
||||
GtkWidget *label)
|
||||
{
|
||||
GdkScreen *screen = gtk_widget_get_screen (widget);
|
||||
GdkColormap *colormap = gdk_screen_get_rgba_colormap (screen);
|
||||
|
||||
if (colormap == NULL)
|
||||
colormap = gdk_screen_get_default_colormap (screen);
|
||||
|
||||
gtk_widget_set_colormap (widget, colormap);
|
||||
}
|
||||
</programlisting>
|
||||
<para>
|
||||
With visuals instead of colormaps, this will look as follows:
|
||||
</para>
|
||||
<programlisting>
|
||||
static void
|
||||
on_alpha_screen_changed (GtkWindow *window,
|
||||
GdkScreen *old_screen,
|
||||
GtkWidget *label)
|
||||
{
|
||||
GdkScreen *screen = gtk_widget_get_screen (GTK_WIDGET (window));
|
||||
GdkVisual *visual = gdk_screen_get_rgba_visual (screen);
|
||||
|
||||
if (visual == NULL)
|
||||
visual = gdk_screen_get_system_visual (screen);
|
||||
|
||||
gtk_window_set_visual (window, visual);
|
||||
}
|
||||
</programlisting>
|
||||
</example>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<title>The GtkWidget::draw signal</title>
|
||||
<para>
|
||||
The GtkWidget #GtkWidget::expose-event signal has been replaced by
|
||||
a new #GtkWidget::draw signal, which takes a #cairo_t instead of
|
||||
an expose event. The cairo context is being set up so that the origin
|
||||
at (0, 0) coincides with the upper left corner of the widget, and
|
||||
is properly clipped.
|
||||
</para>
|
||||
<note><para>In other words, the cairo context of the draw signal is set
|
||||
up in 'widget coordinates', which is different from traditional expose
|
||||
event handlers, which always assume 'window coordinates'.
|
||||
</para></note>
|
||||
<para>
|
||||
The widget is expected to draw itself with its allocated size, which
|
||||
is available via the new gtk_widget_get_allocated_width() and
|
||||
gtk_widget_get_allocated_height() functions. It is not necessary to
|
||||
check for GTK_WIDGET_IS_DRAWABLE(), since GTK+ already does this check
|
||||
before emitting the ::draw signal.
|
||||
</para>
|
||||
<para>
|
||||
There are some special considerations for widgets with multiple windows.
|
||||
Expose events are window-specific, and widgets with multiple windows
|
||||
could expect to get an expose event for each window that needs to be
|
||||
redrawn. Therefore, multi-window expose event handlers typically look
|
||||
like this:
|
||||
<informalexample><programlisting>
|
||||
if (event->window == widget->window1)
|
||||
{
|
||||
/* ... draw window1 ... */
|
||||
}
|
||||
else if (event->window == widget->window2)
|
||||
{
|
||||
/* ... draw window2 ... */
|
||||
}
|
||||
...
|
||||
</programlisting></informalexample>
|
||||
In contrast, the ::draw signal handler may have to draw multiple
|
||||
windows in one call. GTK+ has a convenience function
|
||||
gtk_cairo_should_draw_window() that can be used to find out if
|
||||
a window needs to be drawn. With that, the example above would look
|
||||
like this (note that the 'else' is gone):
|
||||
<informalexample><programlisting>
|
||||
if (gtk_cairo_should_draw_window (cr, widget->window1)
|
||||
{
|
||||
/* ... draw window1 ... */
|
||||
}
|
||||
if (gtk_cairo_should_draw_window (cr, widget->window2)
|
||||
{
|
||||
/* ... draw window2 ... */
|
||||
}
|
||||
...
|
||||
</programlisting></informalexample>
|
||||
Another convenience function that can help when implementing
|
||||
::draw for multi-window widgets is gtk_cairo_transform_to_window(),
|
||||
which transforms a cairo context from widget-relative coordinates
|
||||
to window-relative coordinates.
|
||||
</para>
|
||||
<para>
|
||||
All GtkStyle drawing functions (gtk_paint_box(), etc) have been changed
|
||||
to take a #cairo_t instead of a window and a clip area. ::draw
|
||||
implementations will usually just use the cairo context that has been
|
||||
passed in for this.
|
||||
</para>
|
||||
<example><title>A simple ::draw function</title>
|
||||
<programlisting>
|
||||
gboolean
|
||||
gtk_arrow_draw (GtkWidget *widget,
|
||||
cairo_t *cr)
|
||||
{
|
||||
gint x, y;
|
||||
gint width, height;
|
||||
gint extent;
|
||||
|
||||
width = gtk_widget_get_allocated_width (widget);
|
||||
height = gtk_widget_get_allocated_height (widget);
|
||||
|
||||
extent = MIN (width - 2 * PAD, height - 2 * PAD);
|
||||
x = PAD;
|
||||
y = PAD;
|
||||
|
||||
gtk_paint_arrow (gtk_widget_get_style (widget),
|
||||
cr,
|
||||
gtk_widget_get_state (widget),
|
||||
GTK_SHADOW_OUT,
|
||||
widget,
|
||||
"arrow",
|
||||
widget->priv->arrow_type,
|
||||
TRUE,
|
||||
x, y, extent, extent);
|
||||
}
|
||||
</programlisting>
|
||||
</example>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<title>GtkProgressBar orientation</title>
|
||||
|
||||
<para>
|
||||
In GTK+ 2.x, #GtkProgressBar and #GtkCellRendererProgress were using the
|
||||
GtkProgressBarOrientation enumeration to specify their orientation and
|
||||
direction. In GTK+ 3, both the widget and the cell renderer implement
|
||||
#GtkOrientable, and have an additional 'inverted' property to determine
|
||||
their direction. Therefore, a call to gtk_progress_bar_set_orientation()
|
||||
needs to be replaced by a pair of calls to
|
||||
gtk_orientable_set_orientation() and gtk_progress_bar_set_inverted().
|
||||
The following values correspond:
|
||||
<table>
|
||||
<tgroup cols="3">
|
||||
<colspec colname="1"/>
|
||||
<colspec colname="2"/>
|
||||
<colspec colname="3"/>
|
||||
<thead>
|
||||
<row><entry>GTK+ 2.x</entry><entry namest="2" nameend="3">GTK+ 3</entry></row>
|
||||
<row><entry>GtkProgressBarOrientation</entry><entry>GtkOrientation</entry><entry>inverted</entry></row>
|
||||
</thead>
|
||||
<tbody>
|
||||
<row><entry>GTK_PROGRESS_LEFT_TO_RIGHT</entry><entry>GTK_ORIENTATION_HORIZONTAL</entry><entry>FALSE</entry></row>
|
||||
<row><entry>GTK_PROGRESS_RIGHT_TO_LEFT</entry><entry>GTK_ORIENTATION_HORIZONTAL</entry><entry>TRUE</entry></row>
|
||||
<row><entry>GTK_PROGRESS_TOP_TO_BOTTOM</entry><entry>GTK_ORIENTATION_VERTICAL</entry><entry>FALSE</entry></row>
|
||||
<row><entry>GTK_PROGRESS_BOTTOM_TO_TOP</entry><entry>GTK_ORIENTATION_VERTICAL</entry><entry>TRUE</entry></row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</table>
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<title>GtkScrolledWindow policy</title>
|
||||
|
||||
<para>
|
||||
The default values for the #GtkScrolledWindow:hscrollbar-policy and
|
||||
#GtkScrolledWindow:vscrollbar-policy properties have been changed from
|
||||
'never' to 'automatic'. If your application was relying on the default
|
||||
value, you will have explicitly set it explicitly.
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<title>GtkObject is gone</title>
|
||||
|
||||
<para>
|
||||
GtkObject has been removed in GTK+ 3. Its remaining functionality,
|
||||
the ::destroy signal, has been moved to GtkWidget. If you have non-widget
|
||||
classes that are directly derived from GtkObject, you have to make
|
||||
them derive from #GInitiallyUnowned (or, if you don't need the floating
|
||||
functionality, #GObject). If you have widgets that override the
|
||||
destroy class handler, you have to adust your class_init function,
|
||||
since destroy is now a member of GtkWidgetClass:
|
||||
<informalexample><programlisting>
|
||||
GtkObjectClass *object_class = GTK_OBJECT_CLASS (class);
|
||||
|
||||
object_class->destroy = my_destroy;
|
||||
</programlisting></informalexample>
|
||||
becomes
|
||||
<informalexample><programlisting>
|
||||
GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (class);
|
||||
|
||||
widget_class->destroy = my_destroy;
|
||||
</programlisting></informalexample>
|
||||
In the unlikely case that you have a non-widget class that is derived
|
||||
from GtkObject and makes use of the destroy functionality, you have
|
||||
to implement ::destroy yourself.
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<title>Resize grips</title>
|
||||
|
||||
<para>
|
||||
The resize grip functionality has been moved from #GtkStatusbar
|
||||
to #GtkWindow. Any window can now have resize grips, regardless whether
|
||||
it has a statusbar or not. The functions
|
||||
gtk_statusbar_set_has_resize_grip() and gtk_statusbar_get_has_resize_grip()
|
||||
have disappeared, and instead there are now
|
||||
gtk_window_set_has_resize_grip() and gtk_window_get_has_resize_grip().
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<title>Prevent mixed linkage</title>
|
||||
<para>
|
||||
Linking against GTK+ 2.x and GTK+ 3 in the same process is problematic
|
||||
and can lead to hard-to-diagnose crashes. The gtk_init() function in
|
||||
both GTK+ 2.22 and in GTK+ 3 tries to detect this situation and abort
|
||||
with a diagnostic message, but this check is not 100% reliable (e.g. if
|
||||
the problematic linking happens only in loadable modules).
|
||||
</para>
|
||||
<para>
|
||||
Direct linking of your application against both versions of GTK+ is
|
||||
easy to avoid; the problem gets harder when your application is using
|
||||
libraries that are themselves linked against some version of GTK+.
|
||||
In that case, you have to verify that you are using a version of the
|
||||
library that is linked against GTK+ 3.
|
||||
</para>
|
||||
<para>
|
||||
If you are using packages provided by a distributor, it is likely that
|
||||
parallel installable versions of the library exist for GTK+ 2.x and
|
||||
GTK+ 3, e.g for vte, check for vte3; for webkitgtk look for webkitgtk3,
|
||||
and so on.
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<title>Install GTK+ modules in the right place</title>
|
||||
<para>
|
||||
Some software packages install loadable GTK+ modules such as theme engines,
|
||||
gdk-pixbuf loaders or input methods. Since GTK+ 3 is parallel-installable
|
||||
@@ -78,4 +730,7 @@
|
||||
unhappiness and must be avoided.
|
||||
</para>
|
||||
</section>
|
||||
|
||||
</section>
|
||||
|
||||
</chapter>
|
||||
|
||||
@@ -265,7 +265,7 @@ my_widget_expose_event_handler (GtkWidget *widget, GdkEventExpose *event)
|
||||
static gboolean
|
||||
my_widget_key_press_event_handler (GtkWidget *widget, GdkEventKey *event)
|
||||
{
|
||||
guint modifiers;
|
||||
GdkModifierType modifiers;
|
||||
|
||||
modifiers = gtk_accelerator_get_default_mod_mask (<!-- -->);
|
||||
|
||||
|
||||
@@ -31,7 +31,7 @@ or environment variables.
|
||||
|
||||
<para>
|
||||
For up-to-date information about the current status of this port, see the
|
||||
<ulink url="http://developer.imendio.com/wiki/Gtk_Mac_OS_X">project page</ulink>.
|
||||
<ulink url="http://live.gnome.org/GTK+/OSX">project page</ulink>.
|
||||
</para>
|
||||
|
||||
</refsect1>
|
||||
|
||||
100
docs/reference/gtk/overview.xml
Normal file
100
docs/reference/gtk/overview.xml
Normal file
@@ -0,0 +1,100 @@
|
||||
<?xml version="1.0"?>
|
||||
<!DOCTYPE partintro PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
|
||||
]>
|
||||
<partintro>
|
||||
<para>
|
||||
GTK+ is a library for creating graphical user interfaces. It
|
||||
works on many UNIX-like platforms, Windows, and OS X.
|
||||
GTK+ is released under the GNU Library General Public License
|
||||
(GNU LGPL), which allows for flexible licensing of client
|
||||
applications. GTK+ has a C-based object-oriented architecture that
|
||||
allows for maximum flexibility. Bindings for many other languages have
|
||||
been written, including C++, Objective-C, Guile/Scheme, Perl, Python,
|
||||
TOM, Ada95, Free Pascal, and Eiffel.
|
||||
</para>
|
||||
<para>
|
||||
GTK+ depends on the following libraries:
|
||||
<variablelist>
|
||||
|
||||
<varlistentry>
|
||||
<term>GLib</term>
|
||||
<listitem><para>
|
||||
A general-purpose utility library, not specific to graphical user interfaces.
|
||||
GLib provides many useful data types, macros, type conversions,
|
||||
string utilities, file utilities, a main loop abstraction, and so on.
|
||||
</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>GObject</term>
|
||||
<listitem><para>A library that provides a type system, a collection of
|
||||
fundamental types including an object type, a signal system.
|
||||
</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>GIO</term>
|
||||
<listitem><para>A modern, easy-to-use VFS API including abstractions for
|
||||
files, drives, volumes, stream IO, as well as network programming and
|
||||
DBus communication.
|
||||
</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>cairo</term>
|
||||
<listitem><para>Cairo is a 2D graphics library with support for multiple
|
||||
output devices.
|
||||
</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Pango</term>
|
||||
<listitem><para>
|
||||
Pango is a library for internationalized text handling. It centers
|
||||
around the PangoLayout object, representing a paragraph of text.
|
||||
Pango provides the engine for GtkTextView, GtkLabel, GtkEntry, and
|
||||
other widgets that display text.
|
||||
</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>ATK</term>
|
||||
<listitem><para>
|
||||
ATK is the Accessibility Toolkit. It provides a set of generic
|
||||
interfaces allowing accessibility technologies to interact with a
|
||||
graphical user interface. For example, a screen reader uses ATK to
|
||||
discover the text in an interface and read it to blind users. GTK+
|
||||
widgets have built-in support for accessibility using the ATK
|
||||
framework.
|
||||
</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>GdkPixbuf</term>
|
||||
<listitem><para>
|
||||
This is a small library which allows you to create GdkPixbuf
|
||||
("pixel buffer") objects from image data or image files.
|
||||
Use a GdkPixbuf in combination with GtkImage to display images.
|
||||
</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>GDK</term>
|
||||
<listitem><para>
|
||||
GDK is the abstraction layer that allows GTK+ to support multiple
|
||||
windowing systems. GDK provides window system facilities on X11, Windows,
|
||||
and OS X.
|
||||
</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>GTK+</term>
|
||||
<listitem><para>
|
||||
The GTK+ library itself contains <firstterm>widgets</firstterm>,
|
||||
that is, GUI components such as GtkButton or GtkTextView.
|
||||
</para></listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</para>
|
||||
</partintro>
|
||||
@@ -95,10 +95,10 @@ from functions?
|
||||
<answer>
|
||||
|
||||
<para>
|
||||
See the documentation for #GObject and #GtkObject. For #GObject note
|
||||
specifically g_object_ref() and g_object_unref(). #GtkObject is a subclass
|
||||
of #GObject so the same points apply, except that it has a "floating" state
|
||||
(explained in its documentation).
|
||||
See the documentation for #GObject and #GInitiallyUnowned. For #GObject note
|
||||
specifically g_object_ref() and g_object_unref(). #GInitiallyUnowned is a
|
||||
subclass of #GObject so the same points apply, except that it has a "floating"
|
||||
state (explained in its documentation).
|
||||
</para>
|
||||
|
||||
<para>
|
||||
@@ -115,7 +115,7 @@ url="http://bugzilla.gnome.org">http://bugzilla.gnome.org</ulink>.)
|
||||
<qandaentry>
|
||||
<question>
|
||||
<para>
|
||||
Why does my program leak memory, if I destroy a widget immediately
|
||||
Why does my program leak memory, if I destroy a widget immediately
|
||||
after creating it ?
|
||||
</para>
|
||||
</question>
|
||||
@@ -127,27 +127,26 @@ If <structname>GtkFoo</structname> isn't a toplevel window, then
|
||||
foo = gtk_foo_new (<!-- -->);
|
||||
gtk_widget_destroy (foo);
|
||||
</programlisting></informalexample>
|
||||
is a memory leak, because no one assumed the initial floating
|
||||
reference. If you are using a widget and you aren't immediately
|
||||
packing it into a container, then you probably want standard
|
||||
is a memory leak, because no one assumed the initial floating
|
||||
reference. If you are using a widget and you aren't immediately
|
||||
packing it into a container, then you probably want standard
|
||||
reference counting, not floating reference counting.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
To to get this, you must acquire a reference to the widget and drop the
|
||||
floating reference (<quote>ref and sink</quote> in GTK+ parlance) after
|
||||
To to get this, you must acquire a reference to the widget and drop the
|
||||
floating reference (<quote>ref and sink</quote> in GTK+ parlance) after
|
||||
creating it:
|
||||
<informalexample><programlisting>
|
||||
foo = gtk_foo_new (<!-- -->);
|
||||
g_object_ref (foo);
|
||||
gtk_object_sink (GTK_OBJECT (foo));
|
||||
g_object_ref_sink (foo);
|
||||
</programlisting></informalexample>
|
||||
When you want to get rid of the widget, you must call gtk_widget_destroy()
|
||||
to break any external connections to the widget before dropping your
|
||||
to break any external connections to the widget before dropping your
|
||||
reference:
|
||||
<informalexample><programlisting>
|
||||
gtk_widget_destroy (foo);
|
||||
g_object_unref (foo);
|
||||
gtk_widget_destroy (foo);
|
||||
g_object_unref (foo);
|
||||
</programlisting></informalexample>
|
||||
When you immediately add a widget to a container, it takes care of
|
||||
assuming the initial floating reference and you don't have to worry
|
||||
|
||||
20
docs/reference/gtk/tmpl/.gitignore
vendored
20
docs/reference/gtk/tmpl/.gitignore
vendored
@@ -1,16 +1,29 @@
|
||||
gtkaccelmap.sgml
|
||||
gtkactiongroup.sgml
|
||||
gtkaboutdialog.sgml
|
||||
gtkbbox.sgml
|
||||
gtkbox.sgml
|
||||
gtkbuilder.sgml
|
||||
gtkbutton.sgml
|
||||
gtkcalendar.sgml
|
||||
gtkcelleditable.sgml
|
||||
gtkcombobox.sgml
|
||||
gtkcomboboxentry.sgml
|
||||
gtkcontainer.sgml
|
||||
gtkeditable.sgml
|
||||
gtkentrybuffer.sgml
|
||||
gtkhbox.sgml
|
||||
gtkiconview.sgml
|
||||
gtkimcontextsimple.sgml
|
||||
gtkimmulticontext.sgml
|
||||
gtkitemfactory.sgml
|
||||
gtklinkbutton.sgml
|
||||
gtkmessagedialog.sgml
|
||||
gtknotebook.sgml
|
||||
gtkobject.sgml
|
||||
gtkorientable.sgml
|
||||
gtkpagesetupunixdialog.sgml
|
||||
gtkpapersize.sgml
|
||||
gtkprinter.sgml
|
||||
gtkradioaction.sgml
|
||||
gtkradiobutton.sgml
|
||||
@@ -20,7 +33,10 @@ gtkrecentchooser.sgml
|
||||
gtkrecentchooserdialog.sgml
|
||||
gtkrecentchoosermenu.sgml
|
||||
gtkrecentchooserwidget.sgml
|
||||
gtkrecentmanager.sgml
|
||||
gtkscale.sgml
|
||||
gtkscalebutton.sgml
|
||||
gtkscrolledwindow.sgml
|
||||
gtkseparator.sgml
|
||||
gtkseparatormenuitem.sgml
|
||||
gtkseparatortoolitem.sgml
|
||||
@@ -28,7 +44,11 @@ gtkstatusbar.sgml
|
||||
gtkstyle.sgml
|
||||
gtktesting.sgml
|
||||
gtktextiter.sgml
|
||||
gtktexttagtable.sgml
|
||||
gtktoggleaction.sgml
|
||||
gtktoolbar.sgml
|
||||
gtktoolitem.sgml
|
||||
gtktooltip.sgml
|
||||
gtktreednd.sgml
|
||||
gtktypeutils.sgml
|
||||
gtkwindow.sgml
|
||||
|
||||
@@ -1,173 +0,0 @@
|
||||
<!-- ##### SECTION Title ##### -->
|
||||
Accelerator Maps
|
||||
|
||||
<!-- ##### SECTION Short_Description ##### -->
|
||||
Loadable keyboard accelerator specifications
|
||||
|
||||
<!-- ##### SECTION Long_Description ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### SECTION See_Also ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### SECTION Stability_Level ##### -->
|
||||
|
||||
|
||||
<!-- ##### SECTION Image ##### -->
|
||||
|
||||
|
||||
<!-- ##### STRUCT GtkAccelMap ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
|
||||
<!-- ##### SIGNAL GtkAccelMap::changed ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@accelmap: the object which received the signal.
|
||||
@arg1:
|
||||
@arg2:
|
||||
@arg3:
|
||||
|
||||
<!-- ##### USER_FUNCTION GtkAccelMapForeach ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@data:
|
||||
@accel_path:
|
||||
@accel_key:
|
||||
@accel_mods:
|
||||
@changed:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_accel_map_add_entry ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@accel_path:
|
||||
@accel_key:
|
||||
@accel_mods:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_accel_map_lookup_entry ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@accel_path:
|
||||
@key:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_accel_map_change_entry ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@accel_path:
|
||||
@accel_key:
|
||||
@accel_mods:
|
||||
@replace:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_accel_map_load ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@file_name:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_accel_map_save ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@file_name:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_accel_map_foreach ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@data:
|
||||
@foreach_func:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_accel_map_load_fd ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@fd:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_accel_map_save_fd ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@fd:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_accel_map_load_scanner ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@scanner:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_accel_map_add_filter ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@filter_pattern:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_accel_map_foreach_unfiltered ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@data:
|
||||
@foreach_func:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_accel_map_get ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@void:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_accel_map_lock_path ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@accel_path:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_accel_map_unlock_path ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@accel_path:
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
GtkAdjustment
|
||||
|
||||
<!-- ##### SECTION Short_Description ##### -->
|
||||
A GtkObject representing an adjustable bounded value
|
||||
A representation of an adjustable bounded value
|
||||
|
||||
<!-- ##### SECTION Long_Description ##### -->
|
||||
<para>
|
||||
|
||||
@@ -181,6 +181,11 @@ it cannot be individually modified.
|
||||
</para>
|
||||
|
||||
@parent_class:
|
||||
@get_request_mode:
|
||||
@get_preferred_width:
|
||||
@get_preferred_height_for_width:
|
||||
@get_preferred_height:
|
||||
@get_preferred_width_for_height:
|
||||
@get_size:
|
||||
@render:
|
||||
@activate:
|
||||
@@ -210,11 +215,10 @@ it cannot be individually modified.
|
||||
</para>
|
||||
|
||||
@cell:
|
||||
@window:
|
||||
@cr:
|
||||
@widget:
|
||||
@background_area:
|
||||
@cell_area:
|
||||
@expose_area:
|
||||
@flags:
|
||||
|
||||
|
||||
@@ -353,3 +357,92 @@ it cannot be individually modified.
|
||||
@ypad:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_cell_renderer_get_preferred_height ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@cell:
|
||||
@widget:
|
||||
@minimum_size:
|
||||
@natural_size:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_cell_renderer_get_preferred_height_for_width ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@cell:
|
||||
@widget:
|
||||
@width:
|
||||
@minimum_height:
|
||||
@natural_height:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_cell_renderer_get_preferred_size ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@cell:
|
||||
@widget:
|
||||
@minimum_size:
|
||||
@natural_size:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_cell_renderer_get_preferred_width ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@cell:
|
||||
@widget:
|
||||
@minimum_size:
|
||||
@natural_size:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_cell_renderer_get_preferred_width_for_height ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@cell:
|
||||
@widget:
|
||||
@height:
|
||||
@minimum_width:
|
||||
@natural_width:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_cell_renderer_get_request_mode ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@cell:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_cell_view_get_desired_height_for_width_of_row ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@cell_view:
|
||||
@path:
|
||||
@avail_size:
|
||||
@minimum_size:
|
||||
@natural_size:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_cell_view_get_desired_width_of_row ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@cell_view:
|
||||
@path:
|
||||
@minimum_size:
|
||||
@natural_size:
|
||||
|
||||
|
||||
|
||||
@@ -31,7 +31,7 @@ The #GtkCellRendererProgress cell renderer was added in GTK+ 2.6.
|
||||
</para>
|
||||
|
||||
|
||||
<!-- ##### ARG GtkCellRendererProgress:orientation ##### -->
|
||||
<!-- ##### ARG GtkCellRendererProgress:inverted ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@@ -143,6 +143,11 @@ the #GtkCellRendererText allows to edit its text using an entry.
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### ARG GtkCellRendererText:max-width-chars ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### ARG GtkCellRendererText:rise ##### -->
|
||||
<para>
|
||||
|
||||
|
||||
@@ -1,461 +0,0 @@
|
||||
<!-- ##### SECTION Title ##### -->
|
||||
GtkComboBox
|
||||
|
||||
<!-- ##### SECTION Short_Description ##### -->
|
||||
A widget used to choose from a list of items
|
||||
|
||||
<!-- ##### SECTION Long_Description ##### -->
|
||||
<para>
|
||||
A #GtkComboBox is a widget that allows the user to choose from a
|
||||
list of valid choices. The #GtkComboBox displays the selected
|
||||
choice. When activated, the #GtkComboBox displays a popup
|
||||
which allows the user to make a new choice. The style in which
|
||||
the selected value is displayed, and the style of the popup is
|
||||
determined by the current theme. It may be similar to a #GtkOptionMenu,
|
||||
or similar to a Windows-style combo box.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Unlike its predecessors #GtkCombo and #GtkOptionMenu, the #GtkComboBox
|
||||
uses the model-view pattern; the list of valid choices is specified in the
|
||||
form of a tree model, and the display of the choices can be adapted to
|
||||
the data in the model by using cell renderers, as you would in a tree view.
|
||||
This is possible since #GtkComboBox implements the #GtkCellLayout interface.
|
||||
The tree model holding the valid choices is not restricted to a flat list,
|
||||
it can be a real tree, and the popup will reflect the tree structure.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
In addition to the model-view API, #GtkComboBox offers a simple API which
|
||||
is suitable for text-only combo boxes, and hides the complexity of managing
|
||||
the data in a model. It consists of the functions gtk_combo_box_new_text(),
|
||||
gtk_combo_box_append_text(), gtk_combo_box_insert_text(),
|
||||
gtk_combo_box_prepend_text(), gtk_combo_box_remove_text() and
|
||||
gtk_combo_box_get_active_text().
|
||||
</para>
|
||||
|
||||
<!-- ##### SECTION See_Also ##### -->
|
||||
<para>
|
||||
#GtkComboBoxEntry, #GtkTreeModel, #GtkCellRenderer
|
||||
</para>
|
||||
|
||||
<!-- ##### SECTION Stability_Level ##### -->
|
||||
|
||||
|
||||
<!-- ##### SECTION Image ##### -->
|
||||
|
||||
|
||||
<!-- ##### STRUCT GtkComboBox ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
|
||||
<!-- ##### SIGNAL GtkComboBox::changed ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@combobox: the object which received the signal.
|
||||
|
||||
<!-- ##### SIGNAL GtkComboBox::move-active ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@combobox: the object which received the signal.
|
||||
@arg1:
|
||||
|
||||
<!-- ##### SIGNAL GtkComboBox::popdown ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@combobox: the object which received the signal.
|
||||
@Returns:
|
||||
|
||||
<!-- ##### SIGNAL GtkComboBox::popup ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@combobox: the object which received the signal.
|
||||
|
||||
<!-- ##### ARG GtkComboBox:active ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### ARG GtkComboBox:add-tearoffs ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### ARG GtkComboBox:button-sensitivity ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### ARG GtkComboBox:column-span-column ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### ARG GtkComboBox:focus-on-click ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### ARG GtkComboBox:has-frame ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### ARG GtkComboBox:model ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### ARG GtkComboBox:popup-shown ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### ARG GtkComboBox:row-span-column ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### ARG GtkComboBox:tearoff-title ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### ARG GtkComboBox:wrap-width ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### ARG GtkComboBox:appears-as-list ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### ARG GtkComboBox:arrow-size ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### ARG GtkComboBox:shadow-type ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### FUNCTION gtk_combo_box_new ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@void:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_combo_box_new_with_model ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@model:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_combo_box_get_wrap_width ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@combo_box:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_combo_box_set_wrap_width ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@combo_box:
|
||||
@width:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_combo_box_get_row_span_column ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@combo_box:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_combo_box_set_row_span_column ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@combo_box:
|
||||
@row_span:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_combo_box_get_column_span_column ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@combo_box:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_combo_box_set_column_span_column ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@combo_box:
|
||||
@column_span:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_combo_box_get_active ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@combo_box:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_combo_box_set_active ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@combo_box:
|
||||
@index_:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_combo_box_get_active_iter ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@combo_box:
|
||||
@iter:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_combo_box_set_active_iter ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@combo_box:
|
||||
@iter:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_combo_box_get_model ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@combo_box:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_combo_box_set_model ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@combo_box:
|
||||
@model:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_combo_box_new_text ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@void:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_combo_box_append_text ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@combo_box:
|
||||
@text:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_combo_box_insert_text ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@combo_box:
|
||||
@position:
|
||||
@text:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_combo_box_prepend_text ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@combo_box:
|
||||
@text:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_combo_box_remove_text ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@combo_box:
|
||||
@position:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_combo_box_get_active_text ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@combo_box:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_combo_box_popup_for_device ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@combo_box:
|
||||
@device:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_combo_box_popup ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@combo_box:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_combo_box_popdown ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@combo_box:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_combo_box_get_popup_accessible ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@combo_box:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_combo_box_get_row_separator_func ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@combo_box:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_combo_box_set_row_separator_func ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@combo_box:
|
||||
@func:
|
||||
@data:
|
||||
@destroy:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_combo_box_set_add_tearoffs ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@combo_box:
|
||||
@add_tearoffs:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_combo_box_get_add_tearoffs ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@combo_box:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_combo_box_set_title ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@combo_box:
|
||||
@title:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_combo_box_get_title ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@combo_box:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_combo_box_set_focus_on_click ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@combo:
|
||||
@focus_on_click:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_combo_box_get_focus_on_click ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@combo:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_combo_box_set_button_sensitivity ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@combo_box:
|
||||
@sensitivity:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_combo_box_get_button_sensitivity ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@combo_box:
|
||||
@Returns:
|
||||
|
||||
|
||||
@@ -1,123 +0,0 @@
|
||||
<!-- ##### SECTION Title ##### -->
|
||||
GtkComboBoxEntry
|
||||
|
||||
<!-- ##### SECTION Short_Description ##### -->
|
||||
A text entry field with a dropdown list
|
||||
|
||||
<!-- ##### SECTION Long_Description ##### -->
|
||||
<para>
|
||||
A #GtkComboBoxEntry is a widget that allows the user to choose from a
|
||||
list of valid choices or enter a different value. It is very similar
|
||||
to a #GtkComboBox, but it displays the selected value in an entry to
|
||||
allow modifying it.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
In contrast to a #GtkComboBox, the underlying model of a #GtkComboBoxEntry
|
||||
must always have a text column (see gtk_combo_box_entry_set_text_column()),
|
||||
and the entry will show the content of the text column in the selected row.
|
||||
To get the text from the entry, use gtk_combo_box_get_active_text().
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The changed signal will be emitted while typing into a GtkComboBoxEntry,
|
||||
as well as when selecting an item from the GtkComboBoxEntry's list. Use
|
||||
gtk_combo_box_get_active() or gtk_combo_box_get_active_iter() to discover
|
||||
whether an item was actually selected from the list.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Connect to the activate signal of the GtkEntry (use gtk_bin_get_child())
|
||||
to detect when the user actually finishes entering text.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The convenience API to construct simple text-only #GtkComboBox<!-- -->es
|
||||
can also be used with #GtkComboBoxEntry<!-- -->s which have been constructed
|
||||
with gtk_combo_box_entry_new_text().
|
||||
</para>
|
||||
|
||||
<para>
|
||||
If you have special needs that go beyond a simple entry (e.g. input validation),
|
||||
it is possible to replace the child entry by a different widget using
|
||||
gtk_container_remove() and gtk_container_add().
|
||||
</para>
|
||||
|
||||
<refsect2 id="GtkComboBoxEntry-BUILDER-UI">
|
||||
<title>GtkComboBoxEntry as GtkBuildable</title>
|
||||
<para>
|
||||
Beyond the <attributes> support that is shared by all
|
||||
<link linkend="GtkCellLayout-BUILDER-UI">GtkCellLayout</link> implementation,
|
||||
GtkComboBoxEntry makes the entry available in UI definitions as an internal
|
||||
child with name "entry".
|
||||
</para>
|
||||
</refsect2>
|
||||
|
||||
<!-- ##### SECTION See_Also ##### -->
|
||||
<para>
|
||||
#GtkComboBox
|
||||
</para>
|
||||
|
||||
<!-- ##### SECTION Stability_Level ##### -->
|
||||
|
||||
|
||||
<!-- ##### SECTION Image ##### -->
|
||||
|
||||
|
||||
<!-- ##### STRUCT GtkComboBoxEntry ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
|
||||
<!-- ##### ARG GtkComboBoxEntry:text-column ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### FUNCTION gtk_combo_box_entry_new ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@void:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_combo_box_entry_new_with_model ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@model:
|
||||
@text_column:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_combo_box_entry_new_text ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@void:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_combo_box_entry_set_text_column ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@entry_box:
|
||||
@text_column:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_combo_box_entry_get_text_column ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@entry_box:
|
||||
@Returns:
|
||||
|
||||
|
||||
@@ -1,539 +0,0 @@
|
||||
<!-- ##### SECTION Title ##### -->
|
||||
GtkContainer
|
||||
|
||||
<!-- ##### SECTION Short_Description ##### -->
|
||||
Base class for widgets which contain other widgets
|
||||
|
||||
<!-- ##### SECTION Long_Description ##### -->
|
||||
<para>
|
||||
A GTK+ user interface is constructed by nesting widgets inside widgets.
|
||||
Container widgets are the inner nodes in the resulting tree of widgets:
|
||||
they contain other widgets. So, for example, you might have a #GtkWindow
|
||||
containing a #GtkFrame containing a GtkLabel. If you wanted an image instead
|
||||
of a textual label inside the frame, you might replace the #GtkLabel widget
|
||||
with a #GtkImage widget.
|
||||
</para>
|
||||
<para>
|
||||
There are two major kinds of container widgets in GTK+. Both are subclasses
|
||||
of the abstract #GtkContainer base class.
|
||||
</para>
|
||||
<para>
|
||||
The first type of container widget has a single child widget and derives
|
||||
from #GtkBin. These containers are <firstterm>decorators</firstterm>, which
|
||||
add some kind of functionality to the child. For example, a #GtkButton makes
|
||||
its child into a clickable button; a #GtkFrame draws a frame around its child
|
||||
and a #GtkWindow places its child widget inside a top-level window.
|
||||
</para>
|
||||
<para>
|
||||
The second type of container can have more than one child; its purpose is to
|
||||
manage <firstterm>layout</firstterm>. This means that these containers assign
|
||||
sizes and positions to their children. For example, a #GtkHBox arranges its
|
||||
children in a horizontal row, and a #GtkTable arranges the widgets it contains
|
||||
in a two-dimensional grid.
|
||||
</para>
|
||||
<para>
|
||||
To fulfill its task, a layout container must negotiate the size requirements
|
||||
with its parent and its children. The basic form of this negotiation is
|
||||
carried out in two phases, <firstterm>size requisition</firstterm> and
|
||||
<firstterm>size allocation</firstterm>, which are implemented by the
|
||||
size_request() and size_allocate() virtual functions in #GtkWidget.
|
||||
</para>
|
||||
<para>
|
||||
GTK+ also supports a more complicated form of size negotiation called
|
||||
<firstterm>width-for-height</firstterm> (and its dual
|
||||
<firstterm>height-for-width</firstterm>). See #GtkExtendedLayout
|
||||
to learn more about width-for-height geometry management.
|
||||
</para>
|
||||
<refsect2 id="size-requisition"><title>Size Requisition</title>
|
||||
<para>
|
||||
The size requisition of a widget is it's desired width and height.
|
||||
This is represented by a #GtkRequisition.
|
||||
</para>
|
||||
<para>
|
||||
How a widget determines its desired size depends on the widget.
|
||||
A #GtkLabel, for example, requests enough space to display all its text.
|
||||
Container widgets generally base their size request on the requisitions
|
||||
of their children.
|
||||
</para>
|
||||
<para>
|
||||
The size requisition phase of the widget layout process operates top-down.
|
||||
It starts at a top-level widget, typically a #GtkWindow. The top-level widget
|
||||
asks its child for its size requisition by calling gtk_widget_size_request().
|
||||
To determine its requisition, the child asks its own children for their
|
||||
requisitions and so on. Finally, the top-level widget will get a requisition
|
||||
back from its child.
|
||||
</para>
|
||||
</refsect2>
|
||||
<refsect2 id="size-allocation"><title>Size Allocation</title>
|
||||
<para>
|
||||
When the top-level widget has determined how much space its child would like
|
||||
to have, the second phase of the size negotiation, size allocation, begins.
|
||||
Depending on its configuration (see gtk_window_set_resizable()), the top-level
|
||||
widget may be able to expand in order to satisfy the size request or it may
|
||||
have to ignore the size request and keep its fixed size. It then tells its
|
||||
child widget how much space it gets by calling gtk_widget_size_allocate().
|
||||
The child widget divides the space among its children and tells each child
|
||||
how much space it got, and so on. Under normal circumstances, a #GtkWindow
|
||||
will always give its child the amount of space the child requested.
|
||||
</para>
|
||||
<para>
|
||||
A child's size allocation is represented by a #GtkAllocation. This struct
|
||||
contains not only a width and height, but also a position (i.e. X and Y
|
||||
coordinates), so that containers can tell their children not only how much
|
||||
space they have gotten, but also where they are positioned inside the space
|
||||
available to the container.
|
||||
</para>
|
||||
<para>
|
||||
Widgets are required to honor the size allocation they receive; a size
|
||||
request is only a request, and widgets must be able to cope with any size.
|
||||
</para>
|
||||
</refsect2>
|
||||
<refsect2 id="child-properties"><title>Child properties</title>
|
||||
<para>
|
||||
<structname>GtkContainer</structname> introduces <firstterm>child
|
||||
properties</firstterm> - these are object properties that are not specific
|
||||
to either the container or the contained widget, but rather to their relation.
|
||||
Typical examples of child properties are the position or pack-type of a widget
|
||||
which is contained in a #GtkBox.</para>
|
||||
<para>
|
||||
Use gtk_container_class_install_child_property() to install child properties
|
||||
for a container class and gtk_container_class_find_child_property() or
|
||||
gtk_container_class_list_child_properties() to get information about existing
|
||||
child properties.
|
||||
</para>
|
||||
<para>
|
||||
To set the value of a child property, use gtk_container_child_set_property(),
|
||||
gtk_container_child_set() or gtk_container_child_set_valist().
|
||||
To obtain the value of a child property, use
|
||||
gtk_container_child_get_property(), gtk_container_child_get() or
|
||||
gtk_container_child_get_valist(). To emit notification about child property
|
||||
changes, use gtk_widget_child_notify().
|
||||
</para>
|
||||
</refsect2>
|
||||
|
||||
<refsect2 id="GtkContainer-BUILDER-UI">
|
||||
<title>GtkContainer as GtkBuildable</title>
|
||||
<para>
|
||||
The GtkContainer implementation of the GtkBuildable interface
|
||||
supports a <packing> element for children, which can
|
||||
contain multiple <property> elements that specify
|
||||
child properties for the child.
|
||||
</para>
|
||||
<example>
|
||||
<title>Child properties in UI definitions</title>
|
||||
<programlisting><![CDATA[
|
||||
<object class="GtkVBox">
|
||||
<child>
|
||||
<object class="GtkLabel"/>
|
||||
<packing>
|
||||
<property name="pack-type">start</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
]]></programlisting>
|
||||
</example>
|
||||
<para>
|
||||
Since 2.16, child properties can also be marked as translatable using
|
||||
the same "translatable", "comments" and "context" attributes that are used
|
||||
for regular properties.
|
||||
</para>
|
||||
</refsect2>
|
||||
|
||||
<!-- ##### SECTION See_Also ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### SECTION Stability_Level ##### -->
|
||||
|
||||
|
||||
<!-- ##### SECTION Image ##### -->
|
||||
|
||||
|
||||
<!-- ##### STRUCT GtkContainer ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
|
||||
<!-- ##### SIGNAL GtkContainer::add ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@container: the object which received the signal.
|
||||
@widget:
|
||||
|
||||
<!-- ##### SIGNAL GtkContainer::check-resize ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@container: the object which received the signal.
|
||||
|
||||
<!-- ##### SIGNAL GtkContainer::remove ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@container: the object which received the signal.
|
||||
@widget:
|
||||
|
||||
<!-- ##### SIGNAL GtkContainer::set-focus-child ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@container: the object which received the signal.
|
||||
@widget:
|
||||
|
||||
<!-- ##### ARG GtkContainer:border-width ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### ARG GtkContainer:child ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### ARG GtkContainer:resize-mode ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### MACRO GTK_IS_RESIZE_CONTAINER ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@widget:
|
||||
|
||||
|
||||
<!-- ##### MACRO GTK_CONTAINER_WARN_INVALID_CHILD_PROPERTY_ID ##### -->
|
||||
<para>
|
||||
This macro should be used to emit a standard warning about unexpected
|
||||
properties in set_child_property() and get_child_property() implementations.
|
||||
</para>
|
||||
|
||||
@object: the #GObject on which set_child_property() or get_child_property()
|
||||
was called
|
||||
@property_id: the numeric id of the property
|
||||
@pspec: the #GParamSpec of the property
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_container_add ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@container:
|
||||
@widget:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_container_remove ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@container:
|
||||
@widget:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_container_add_with_properties ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@container:
|
||||
@widget:
|
||||
@first_prop_name:
|
||||
@Varargs:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_container_get_resize_mode ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@container:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_container_set_resize_mode ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@container:
|
||||
@resize_mode:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_container_check_resize ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@container:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_container_foreach ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@container:
|
||||
@callback:
|
||||
@callback_data:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_container_get_children ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@container:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_container_set_reallocate_redraws ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@container:
|
||||
@needs_redraws:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_container_get_focus_child ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@container:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_container_set_focus_child ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@container:
|
||||
@child:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_container_get_focus_vadjustment ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@container:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_container_set_focus_vadjustment ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@container:
|
||||
@adjustment:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_container_get_focus_hadjustment ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@container:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_container_set_focus_hadjustment ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@container:
|
||||
@adjustment:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_container_resize_children ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@container:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_container_child_type ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@container:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_container_child_get ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@container:
|
||||
@child:
|
||||
@first_prop_name:
|
||||
@Varargs:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_container_child_set ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@container:
|
||||
@child:
|
||||
@first_prop_name:
|
||||
@Varargs:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_container_child_get_property ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@container:
|
||||
@child:
|
||||
@property_name:
|
||||
@value:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_container_child_set_property ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@container:
|
||||
@child:
|
||||
@property_name:
|
||||
@value:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_container_child_get_valist ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@container:
|
||||
@child:
|
||||
@first_property_name:
|
||||
@var_args:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_container_child_set_valist ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@container:
|
||||
@child:
|
||||
@first_property_name:
|
||||
@var_args:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_container_forall ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@container:
|
||||
@callback:
|
||||
@callback_data:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_container_get_border_width ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@container:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_container_set_border_width ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@container:
|
||||
@border_width:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_container_propagate_expose ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@container:
|
||||
@child:
|
||||
@event:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_container_get_focus_chain ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@container:
|
||||
@focusable_widgets:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_container_set_focus_chain ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@container:
|
||||
@focusable_widgets:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_container_unset_focus_chain ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@container:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_container_class_find_child_property ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@cclass:
|
||||
@property_name:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_container_class_install_child_property ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@cclass:
|
||||
@property_id:
|
||||
@pspec:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_container_class_list_child_properties ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@cclass:
|
||||
@n_properties:
|
||||
@Returns:
|
||||
|
||||
|
||||
@@ -14,22 +14,22 @@ not require extensive effort on the user's part.
|
||||
|
||||
<para>
|
||||
GTK+ treats a dialog as a window split vertically. The top section is a
|
||||
#GtkVBox, and is where widgets such as a #GtkLabel or a #GtkEntry should
|
||||
be packed. The bottom area is known as the
|
||||
<structfield>action_area</structfield>. This is generally used for
|
||||
packing buttons into the dialog which may perform functions such as
|
||||
cancel, ok, or apply. The two areas are separated by a #GtkHSeparator.
|
||||
#GtkVBox known as the <structfield>content_area</structfield>, and is
|
||||
where widgets such as a #GtkLabel or a #GtkEntry should be packed.
|
||||
The bottom area is known as the <structfield>action_area</structfield>.
|
||||
This is generally used for packing buttons into the dialog which may
|
||||
perform functions such as cancel, ok, or apply.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
#GtkDialog boxes are created with a call to gtk_dialog_new() or
|
||||
gtk_dialog_new_with_buttons(). gtk_dialog_new_with_buttons() is recommended; it
|
||||
allows you to set the dialog title, some convenient flags, and add simple
|
||||
GtkDialog boxes are created with a call to gtk_dialog_new() or
|
||||
gtk_dialog_new_with_buttons(). gtk_dialog_new_with_buttons() is recommended;
|
||||
it allows you to set the dialog title, some convenient flags, and add simple
|
||||
buttons.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
If 'dialog' is a newly created dialog, the two primary areas of the window
|
||||
If 'dialog' is a newly created dialog, the two primary areas of the window
|
||||
can be accessed through gtk_dialog_get_content_area() and
|
||||
gtk_dialog_get_action_area(), as can be seen from the example, below.
|
||||
</para>
|
||||
@@ -196,11 +196,6 @@ as any other #GtkHButtonBox.
|
||||
@dialog:
|
||||
@arg1:
|
||||
|
||||
<!-- ##### ARG GtkDialog:has-separator ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### ARG GtkDialog:action-area-border ##### -->
|
||||
<para>
|
||||
|
||||
@@ -230,8 +225,6 @@ Flags used to influence dialog construction.
|
||||
see gtk_window_set_modal().
|
||||
@GTK_DIALOG_DESTROY_WITH_PARENT: Destroy the dialog when its
|
||||
parent is destroyed, see gtk_window_set_destroy_with_parent().
|
||||
@GTK_DIALOG_NO_SEPARATOR: Don't put a separator between the
|
||||
action area and the dialog content.
|
||||
|
||||
<!-- ##### ENUM GtkResponseType ##### -->
|
||||
<para>
|
||||
@@ -325,15 +318,6 @@ directly, but into the @vbox and @action_area, as described above.
|
||||
@response_id:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_dialog_get_has_separator ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@dialog:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_dialog_set_default_response ##### -->
|
||||
<para>
|
||||
|
||||
@@ -343,15 +327,6 @@ directly, but into the @vbox and @action_area, as described above.
|
||||
@response_id:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_dialog_set_has_separator ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@dialog:
|
||||
@setting:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_dialog_set_response_sensitive ##### -->
|
||||
<para>
|
||||
|
||||
|
||||
@@ -221,12 +221,11 @@ drops.
|
||||
|
||||
<!-- ##### FUNCTION gtk_drag_get_source_widget ##### -->
|
||||
<para>
|
||||
Determines the source widget for a drag.
|
||||
|
||||
</para>
|
||||
|
||||
@context: a (destination side) drag context.
|
||||
@Returns: if the drag is occurring within a single application,
|
||||
a pointer to the source widget. Otherwise, %NULL.
|
||||
@context:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_drag_highlight ##### -->
|
||||
@@ -272,18 +271,6 @@ a widget.
|
||||
@hot_y:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_drag_set_icon_pixmap ##### -->
|
||||
<para>
|
||||
</para>
|
||||
|
||||
@context:
|
||||
@colormap:
|
||||
@pixmap:
|
||||
@mask:
|
||||
@hot_x:
|
||||
@hot_y:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_drag_set_icon_pixbuf ##### -->
|
||||
<para>
|
||||
|
||||
@@ -306,6 +293,15 @@ a widget.
|
||||
@hot_y:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_drag_set_icon_surface ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@context:
|
||||
@surface:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_drag_set_icon_name ##### -->
|
||||
<para>
|
||||
|
||||
@@ -349,16 +345,6 @@ a widget.
|
||||
@actions:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_drag_source_set_icon ##### -->
|
||||
<para>
|
||||
</para>
|
||||
|
||||
@widget:
|
||||
@colormap:
|
||||
@pixmap:
|
||||
@mask:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_drag_source_set_icon_pixbuf ##### -->
|
||||
<para>
|
||||
|
||||
|
||||
@@ -55,11 +55,14 @@ that drawing is implicitly clipped to the exposed area.
|
||||
gboolean
|
||||
expose_event_callback (GtkWidget *widget, GdkEventExpose *event, gpointer data)
|
||||
{
|
||||
gdk_draw_arc (widget->window,
|
||||
widget->style->fg_gc[gtk_widget_get_state (widget)],
|
||||
TRUE,
|
||||
0, 0, widget->allocation.width, widget->allocation.height,
|
||||
0, 64 * 360);
|
||||
cairo_t *cr;
|
||||
|
||||
cr = gdk_cairo_create (event->window);
|
||||
|
||||
cairo_set_source_rgb (cr, 0.0, 0.0, 1.0);
|
||||
cairo_paint (cr);
|
||||
|
||||
cairo_destroy (cr);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@@ -1,214 +0,0 @@
|
||||
<!-- ##### SECTION Title ##### -->
|
||||
GtkEditable
|
||||
|
||||
<!-- ##### SECTION Short_Description ##### -->
|
||||
Interface for text-editing widgets
|
||||
|
||||
<!-- ##### SECTION Long_Description ##### -->
|
||||
<para>
|
||||
The #GtkEditable interface is an interface which should be implemented by
|
||||
text editing widgets, such as #GtkEntry and #GtkText. It contains functions
|
||||
for generically manipulating an editable widget, a large number of action
|
||||
signals used for key bindings, and several signals that an application can
|
||||
connect to to modify the behavior of a widget.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
As an example of the latter usage, by connecting
|
||||
the following handler to "insert_text", an application
|
||||
can convert all entry into a widget into uppercase.
|
||||
|
||||
<example>
|
||||
<title>Forcing entry to uppercase.</title>
|
||||
<programlisting>
|
||||
#include <ctype.h>
|
||||
|
||||
void
|
||||
insert_text_handler (GtkEditable *editable,
|
||||
const gchar *text,
|
||||
gint length,
|
||||
gint *position,
|
||||
gpointer data)
|
||||
{
|
||||
int i;
|
||||
gchar *result = g_utf8_strup (text, length);
|
||||
|
||||
g_signal_handlers_block_by_func (editable,
|
||||
(gpointer) insert_text_handler, data);
|
||||
gtk_editable_insert_text (editable, result, length, position);
|
||||
g_signal_handlers_unblock_by_func (editable,
|
||||
(gpointer) insert_text_handler, data);
|
||||
|
||||
g_signal_stop_emission_by_name (editable, "insert_text");
|
||||
|
||||
g_free (result);
|
||||
}
|
||||
</programlisting>
|
||||
</example>
|
||||
</para>
|
||||
|
||||
<!-- ##### SECTION See_Also ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### SECTION Stability_Level ##### -->
|
||||
|
||||
|
||||
<!-- ##### SECTION Image ##### -->
|
||||
|
||||
|
||||
<!-- ##### STRUCT GtkEditable ##### -->
|
||||
<para>
|
||||
The #GtkEditable structure is an opaque structure whose members
|
||||
cannot be directly accessed.
|
||||
</para>
|
||||
|
||||
|
||||
<!-- ##### SIGNAL GtkEditable::changed ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@editable: the object which received the signal.
|
||||
|
||||
<!-- ##### SIGNAL GtkEditable::delete-text ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@editable:
|
||||
@start_pos:
|
||||
@end_pos:
|
||||
|
||||
<!-- ##### SIGNAL GtkEditable::insert-text ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@editable:
|
||||
@new_text:
|
||||
@new_text_length:
|
||||
@position:
|
||||
|
||||
<!-- ##### FUNCTION gtk_editable_select_region ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@editable:
|
||||
@start_pos:
|
||||
@end_pos:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_editable_get_selection_bounds ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@editable:
|
||||
@start_pos:
|
||||
@end_pos:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_editable_insert_text ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@editable:
|
||||
@new_text:
|
||||
@new_text_length:
|
||||
@position:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_editable_delete_text ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@editable:
|
||||
@start_pos:
|
||||
@end_pos:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_editable_get_chars ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@editable:
|
||||
@start_pos:
|
||||
@end_pos:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_editable_cut_clipboard ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@editable:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_editable_copy_clipboard ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@editable:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_editable_paste_clipboard ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@editable:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_editable_delete_selection ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@editable:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_editable_set_position ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@editable:
|
||||
@position:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_editable_get_position ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@editable:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_editable_set_editable ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@editable:
|
||||
@is_editable:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_editable_get_editable ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@editable:
|
||||
@Returns:
|
||||
|
||||
|
||||
@@ -404,11 +404,6 @@ The #GtkEntry-struct struct contains only private data.
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### ARG GtkEntry:state-hint ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### FUNCTION gtk_entry_new ##### -->
|
||||
<para>
|
||||
|
||||
|
||||
@@ -1,171 +0,0 @@
|
||||
<!-- ##### SECTION Title ##### -->
|
||||
GtkEntryBuffer
|
||||
|
||||
<!-- ##### SECTION Short_Description ##### -->
|
||||
|
||||
|
||||
<!-- ##### SECTION Long_Description ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### SECTION See_Also ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### SECTION Stability_Level ##### -->
|
||||
|
||||
|
||||
<!-- ##### SECTION Image ##### -->
|
||||
|
||||
|
||||
<!-- ##### STRUCT GtkEntryBuffer ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
|
||||
<!-- ##### SIGNAL GtkEntryBuffer::deleted-text ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@entrybuffer: the object which received the signal.
|
||||
@arg1:
|
||||
@arg2:
|
||||
|
||||
<!-- ##### SIGNAL GtkEntryBuffer::inserted-text ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@entrybuffer: the object which received the signal.
|
||||
@arg1:
|
||||
@arg2:
|
||||
@arg3:
|
||||
|
||||
<!-- ##### ARG GtkEntryBuffer:length ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### ARG GtkEntryBuffer:max-length ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### ARG GtkEntryBuffer:text ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### FUNCTION gtk_entry_buffer_new ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@initial_chars:
|
||||
@n_initial_chars:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_entry_buffer_get_text ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@buffer:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_entry_buffer_set_text ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@buffer:
|
||||
@chars:
|
||||
@n_chars:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_entry_buffer_get_bytes ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@buffer:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_entry_buffer_get_length ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@buffer:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_entry_buffer_get_max_length ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@buffer:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_entry_buffer_set_max_length ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@buffer:
|
||||
@max_length:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_entry_buffer_insert_text ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@buffer:
|
||||
@position:
|
||||
@chars:
|
||||
@n_chars:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_entry_buffer_delete_text ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@buffer:
|
||||
@position:
|
||||
@n_chars:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_entry_buffer_emit_deleted_text ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@buffer:
|
||||
@position:
|
||||
@n_chars:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_entry_buffer_emit_inserted_text ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@buffer:
|
||||
@position:
|
||||
@chars:
|
||||
@n_chars:
|
||||
|
||||
|
||||
@@ -29,29 +29,6 @@ Public enumerated types used throughout GTK+
|
||||
@GTK_ACCEL_LOCKED:
|
||||
@GTK_ACCEL_MASK:
|
||||
|
||||
<!-- ##### ENUM GtkAnchorType ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@GTK_ANCHOR_CENTER:
|
||||
@GTK_ANCHOR_NORTH:
|
||||
@GTK_ANCHOR_NORTH_WEST:
|
||||
@GTK_ANCHOR_NORTH_EAST:
|
||||
@GTK_ANCHOR_SOUTH:
|
||||
@GTK_ANCHOR_SOUTH_WEST:
|
||||
@GTK_ANCHOR_SOUTH_EAST:
|
||||
@GTK_ANCHOR_WEST:
|
||||
@GTK_ANCHOR_EAST:
|
||||
@GTK_ANCHOR_N:
|
||||
@GTK_ANCHOR_NW:
|
||||
@GTK_ANCHOR_NE:
|
||||
@GTK_ANCHOR_S:
|
||||
@GTK_ANCHOR_SW:
|
||||
@GTK_ANCHOR_SE:
|
||||
@GTK_ANCHOR_W:
|
||||
@GTK_ANCHOR_E:
|
||||
|
||||
<!-- ##### ENUM GtkArrowPlacement ##### -->
|
||||
<para>
|
||||
Used to specify the placement of scroll arrows in scrolling menus.
|
||||
@@ -89,7 +66,6 @@ Used to dictate the style that a #GtkButtonBox uses to layout the buttons it
|
||||
contains. (See also: #GtkVButtonBox and #GtkHButtonBox).
|
||||
</para>
|
||||
|
||||
@GTK_BUTTONBOX_DEFAULT_STYLE: Default packing.
|
||||
@GTK_BUTTONBOX_SPREAD: Buttons are evenly spread across the box.
|
||||
@GTK_BUTTONBOX_EDGE: Buttons are placed at the edges of the box.
|
||||
@GTK_BUTTONBOX_START: Buttons are grouped towards the start of the box,
|
||||
@@ -334,7 +310,6 @@ Used to control what selections users are allowed to make.
|
||||
The Ctrl key may be used to enlarge the selection, and Shift key to select
|
||||
between the focus and the child pointed to. Some widgets may also allow
|
||||
Click-drag to select a range of elements.
|
||||
@GTK_SELECTION_EXTENDED: Deprecated, behaves identical to %GTK_SELECTION_MULTIPLE.
|
||||
|
||||
<!-- ##### ENUM GtkShadowType ##### -->
|
||||
<para>
|
||||
@@ -363,22 +338,6 @@ the widget and the widget will respond to mouse clicks.
|
||||
@GTK_STATE_INSENSITIVE: State indicating that the widget is
|
||||
unresponsive to user actions.
|
||||
|
||||
<!-- ##### ENUM GtkSubmenuDirection ##### -->
|
||||
<para>
|
||||
Indicates the direction a sub-menu will appear.
|
||||
</para>
|
||||
|
||||
@GTK_DIRECTION_LEFT: A sub-menu will appear to the left of the current menu.
|
||||
@GTK_DIRECTION_RIGHT: A sub-menu will appear to the right of the current menu.
|
||||
|
||||
<!-- ##### ENUM GtkSubmenuPlacement ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@GTK_TOP_BOTTOM:
|
||||
@GTK_LEFT_RIGHT:
|
||||
|
||||
<!-- ##### ENUM GtkToolbarStyle ##### -->
|
||||
<para>
|
||||
Used to customize the appearance of a #GtkToolbar. Note that
|
||||
@@ -403,15 +362,6 @@ Used by #GtkRange to control the policy for notifying value changes.
|
||||
@GTK_UPDATE_DISCONTINUOUS: Notify updates when the mouse button has been released
|
||||
@GTK_UPDATE_DELAYED: Space out updates with a small timeout
|
||||
|
||||
<!-- ##### ENUM GtkVisibility ##### -->
|
||||
<para>
|
||||
Used by #GtkCList and #GtkCTree to indicate whether a row is visible.
|
||||
</para>
|
||||
|
||||
@GTK_VISIBILITY_NONE: The row is not visible.
|
||||
@GTK_VISIBILITY_PARTIAL: The row is partially visible.
|
||||
@GTK_VISIBILITY_FULL: The row is fully visible.
|
||||
|
||||
<!-- ##### ENUM GtkWindowPosition ##### -->
|
||||
<para>
|
||||
Window placement can be influenced using this enumeration. Note that
|
||||
|
||||
@@ -115,6 +115,11 @@ a <child> type attribute.
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### ARG GtkExpander:label-fill ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### ARG GtkExpander:label-widget ##### -->
|
||||
<para>
|
||||
|
||||
@@ -271,3 +276,21 @@ a <child> type attribute.
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_expander_set_label_fill ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@expander:
|
||||
@label_fill:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_expander_get_label_fill ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@expander:
|
||||
@Returns:
|
||||
|
||||
|
||||
|
||||
@@ -22,62 +22,49 @@ typically use the features described here.
|
||||
<!-- ##### SECTION Image ##### -->
|
||||
|
||||
|
||||
<!-- ##### VARIABLE gtk_major_version ##### -->
|
||||
<!-- ##### FUNCTION gtk_get_major_version ##### -->
|
||||
<para>
|
||||
The major version number of the GTK+ library. (e.g. in GTK+ version
|
||||
1.2.5 this is 1.)
|
||||
|
||||
</para>
|
||||
|
||||
@void:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_get_minor_version ##### -->
|
||||
<para>
|
||||
This variable is in the library, so represents the
|
||||
GTK+ library you have linked against. Contrast with the
|
||||
#GTK_MAJOR_VERSION macro, which represents the major version of the
|
||||
GTK+ headers you have included.
|
||||
|
||||
</para>
|
||||
|
||||
@void:
|
||||
@Returns:
|
||||
|
||||
<!-- ##### VARIABLE gtk_minor_version ##### -->
|
||||
|
||||
<!-- ##### FUNCTION gtk_get_micro_version ##### -->
|
||||
<para>
|
||||
The minor version number of the GTK+ library.
|
||||
(e.g. in GTK+ version 1.2.5 this is 2.)
|
||||
|
||||
</para>
|
||||
|
||||
@void:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_get_binary_age ##### -->
|
||||
<para>
|
||||
This variable is in the library, so represents the
|
||||
GTK+ library you have linked against. Contrast with the
|
||||
#GTK_MINOR_VERSION macro, which represents the minor version of the
|
||||
GTK+ headers you have included.
|
||||
|
||||
</para>
|
||||
|
||||
@void:
|
||||
@Returns:
|
||||
|
||||
<!-- ##### VARIABLE gtk_micro_version ##### -->
|
||||
|
||||
<!-- ##### FUNCTION gtk_get_interface_age ##### -->
|
||||
<para>
|
||||
The micro version number of the GTK+ library.
|
||||
(e.g. in GTK+ version 1.2.5 this is 5.)
|
||||
|
||||
</para>
|
||||
|
||||
|
||||
<para>
|
||||
This variable is in the library, so represents the GTK+ library you
|
||||
have linked against. Contrast with the #GTK_MICRO_VERSION macro, which
|
||||
represents the micro version of the GTK+ headers you have included.
|
||||
</para>
|
||||
|
||||
|
||||
<!-- ##### VARIABLE gtk_binary_age ##### -->
|
||||
<para>
|
||||
This is the binary age passed to <application>libtool</application>. If
|
||||
<application>libtool</application> means nothing to you, don't worry
|
||||
about it. ;-)
|
||||
</para>
|
||||
|
||||
|
||||
<!-- ##### VARIABLE gtk_interface_age ##### -->
|
||||
<para>
|
||||
This is the interface age passed to <application>libtool</application>. If
|
||||
<application>libtool</application> means nothing to you, don't worry
|
||||
about it. ;-)
|
||||
</para>
|
||||
@void:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_check_version ##### -->
|
||||
|
||||
@@ -37,7 +37,7 @@ The #GtkFileChooserButton supports the #GtkFileChooserAction<!--
|
||||
<para>
|
||||
The #GtkFileChooserButton will ellipsize the label,
|
||||
and thus will thus request little horizontal space. To give the button
|
||||
more space, you should call gtk_widget_size_request(),
|
||||
more space, you should call gtk_widget_get_preferred_size(),
|
||||
gtk_file_chooser_button_set_width_chars(), or pack the button in
|
||||
such a way that other interface elements give space to the widget.
|
||||
</para>
|
||||
|
||||
@@ -1,226 +0,0 @@
|
||||
<!-- ##### SECTION Title ##### -->
|
||||
GtkFileSelection
|
||||
|
||||
<!-- ##### SECTION Short_Description ##### -->
|
||||
Prompt the user for a file or directory name
|
||||
|
||||
<!-- ##### SECTION Long_Description ##### -->
|
||||
<para>
|
||||
#GtkFileSelection has been superseded by the newer #GtkFileChooser family
|
||||
of widgets.
|
||||
</para>
|
||||
<para>
|
||||
#GtkFileSelection should be used to retrieve file or directory names from
|
||||
the user. It will create a new dialog window containing a directory list,
|
||||
and a file list corresponding to the current working directory. The filesystem
|
||||
can be navigated using the directory list or the drop-down history menu.
|
||||
Alternatively, the TAB key can be used to navigate using filename
|
||||
completion - common in text based editors such as emacs and jed.
|
||||
</para>
|
||||
<para>
|
||||
File selection dialogs are created with a call to gtk_file_selection_new().
|
||||
</para>
|
||||
<para>
|
||||
The default filename can be set using gtk_file_selection_set_filename() and the selected filename retrieved using gtk_file_selection_get_filename().
|
||||
</para>
|
||||
<para>
|
||||
Use gtk_file_selection_complete() to display files and directories
|
||||
that match a given pattern. This can be used for example, to show only
|
||||
*.txt files, or only files beginning with gtk*.
|
||||
</para>
|
||||
<para>
|
||||
Simple file operations; create directory, delete file, and rename file, are available from buttons at the top of the dialog. These can be hidden using gtk_file_selection_hide_fileop_buttons() and shown again using gtk_file_selection_show_fileop_buttons().
|
||||
</para>
|
||||
<para>
|
||||
<example>
|
||||
<title>Getting a filename from the user.</title>
|
||||
<programlisting>
|
||||
|
||||
/* The file selection widget and the string to store the chosen filename */
|
||||
|
||||
void store_filename (GtkWidget *widget, gpointer user_data) {
|
||||
GtkWidget *file_selector = GTK_WIDGET (user_data);
|
||||
const gchar *selected_filename;
|
||||
|
||||
selected_filename = gtk_file_selection_get_filename (GTK_FILE_SELECTION (file_selector));
|
||||
g_print ("Selected filename: %s\n", selected_filename);
|
||||
}
|
||||
|
||||
void create_file_selection (void) {
|
||||
|
||||
GtkWidget *file_selector;
|
||||
|
||||
/* Create the selector */
|
||||
|
||||
file_selector = gtk_file_selection_new ("Please select a file for editing.");
|
||||
|
||||
g_signal_connect (GTK_FILE_SELECTION (file_selector)->ok_button,
|
||||
"clicked",
|
||||
G_CALLBACK (store_filename),
|
||||
file_selector);
|
||||
|
||||
/* Ensure that the dialog box is destroyed when the user clicks a button. */
|
||||
|
||||
g_signal_connect_swapped (GTK_FILE_SELECTION (file_selector)->ok_button,
|
||||
"clicked",
|
||||
G_CALLBACK (gtk_widget_destroy),
|
||||
file_selector);
|
||||
|
||||
g_signal_connect_swapped (GTK_FILE_SELECTION (file_selector)->cancel_button,
|
||||
"clicked",
|
||||
G_CALLBACK (gtk_widget_destroy),
|
||||
file_selector);
|
||||
|
||||
/* Display that dialog */
|
||||
|
||||
gtk_widget_show (file_selector);
|
||||
}
|
||||
|
||||
</programlisting>
|
||||
</example>
|
||||
</para>
|
||||
|
||||
<!-- ##### SECTION See_Also ##### -->
|
||||
|
||||
<para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term>#GtkDialog</term>
|
||||
<listitem><para>Add your own widgets into the #GtkFileSelection.</para></listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</para>
|
||||
|
||||
<!-- ##### SECTION Stability_Level ##### -->
|
||||
|
||||
|
||||
<!-- ##### STRUCT GtkFileSelection ##### -->
|
||||
<para>
|
||||
The #GtkFileSelection struct contains the following #GtkWidget fields:
|
||||
</para>
|
||||
|
||||
@dir_list:
|
||||
@file_list:
|
||||
@selection_entry:
|
||||
@selection_text:
|
||||
@main_vbox:
|
||||
@ok_button:
|
||||
@cancel_button: the two main buttons that signals should be connected
|
||||
to in order to perform an action when the user hits either OK or
|
||||
Cancel.
|
||||
@help_button:
|
||||
@history_pulldown: the #GtkOptionMenu used to create the drop-down
|
||||
directory history.
|
||||
@history_menu:
|
||||
@history_list:
|
||||
@fileop_dialog: the dialog box used to display the #GtkFileSelection.
|
||||
It can be customized by adding/removing widgets from it using the
|
||||
standard #GtkDialog functions.
|
||||
@fileop_entry:
|
||||
@fileop_file:
|
||||
@cmpl_state:
|
||||
@fileop_c_dir:
|
||||
@fileop_del_file:
|
||||
@fileop_ren_file: the buttons that appear at the top of the file
|
||||
selection dialog. These "operation buttons" can be hidden and
|
||||
redisplayed with gtk_file_selection_hide_fileop_buttons() and
|
||||
gtk_file_selection_show_fileop_buttons() respectively.
|
||||
@button_area:
|
||||
@action_area:
|
||||
|
||||
<!-- ##### ARG GtkFileSelection:filename ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### ARG GtkFileSelection:select-multiple ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### ARG GtkFileSelection:show-fileops ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### FUNCTION gtk_file_selection_new ##### -->
|
||||
<para>
|
||||
Creates a new file selection dialog box. By default it will contain a #GtkTreeView of the application's current working directory, and a file listing. Operation buttons that allow the user to create a directory, delete files and rename files, are also present.
|
||||
</para>
|
||||
|
||||
@title: a message that will be placed in the file requestor's titlebar.
|
||||
@Returns: the new file selection.
|
||||
@Deprecated: Use gtk_file_chooser_dialog_new() instead
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_file_selection_set_filename ##### -->
|
||||
<para>
|
||||
</para>
|
||||
|
||||
@filesel:
|
||||
@filename:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_file_selection_get_filename ##### -->
|
||||
<para>
|
||||
</para>
|
||||
|
||||
@filesel:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_file_selection_complete ##### -->
|
||||
<para>
|
||||
Will attempt to match @pattern to a valid filenames or subdirectories in the current directory. If a match can be made, the matched filename will appear in the text entry field of the file selection dialog.
|
||||
If a partial match can be made, the "Files" list will contain those
|
||||
file names which have been partially matched, and the "Folders"
|
||||
list those directories which have been partially matched.
|
||||
</para>
|
||||
|
||||
@filesel: a #GtkFileSelection.
|
||||
@pattern: a string of characters which may or may not match any filenames in the current directory.
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_file_selection_show_fileop_buttons ##### -->
|
||||
<para>
|
||||
Shows the file operation buttons, if they have previously been hidden. The rest of the widgets in the dialog will be resized accordingly.
|
||||
</para>
|
||||
|
||||
@filesel: a #GtkFileSelection.
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_file_selection_hide_fileop_buttons ##### -->
|
||||
<para>
|
||||
Hides the file operation buttons that normally appear at the top of the dialog. Useful if you wish to create a custom file selector, based on #GtkFileSelection.
|
||||
</para>
|
||||
|
||||
@filesel: a #GtkFileSelection.
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_file_selection_get_selections ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@filesel:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_file_selection_set_select_multiple ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@filesel:
|
||||
@select_multiple:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_file_selection_get_select_multiple ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@filesel:
|
||||
@Returns:
|
||||
|
||||
|
||||
@@ -74,11 +74,6 @@ a <child> type attribute.
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### ARG GtkFrame:shadow ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### ARG GtkFrame:shadow-type ##### -->
|
||||
<para>
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user