Compare commits
1598 Commits
gtk-2-6-ma
...
kris-async
Author | SHA1 | Date | |
---|---|---|---|
|
65bdb7ca9a | ||
|
c0d7735260 | ||
|
163fa10926 | ||
|
6694dbddb9 | ||
|
24762914ca | ||
|
7cea08bbb6 | ||
|
31d0084f7e | ||
|
e0792b0e3a | ||
|
32d750ea51 | ||
|
0c9e045b23 | ||
|
064abaf966 | ||
|
31d15343ae | ||
|
9c9ab7d977 | ||
|
614bbed704 | ||
|
914b750cbf | ||
|
2b419300fd | ||
|
5a72f83bc8 | ||
|
77a5e4877d | ||
|
8e337ee801 | ||
|
541805189c | ||
|
33cd7bec0e | ||
|
0ad7ea990a | ||
|
86092bb99a | ||
|
a5a40428d6 | ||
|
80253eef39 | ||
|
67bcafbaa6 | ||
|
5671cd6e72 | ||
|
6d05ff46d0 | ||
|
504e508a94 | ||
|
6d95ee973d | ||
|
640183f70c | ||
|
13e0ec79b5 | ||
|
75984fc181 | ||
|
f0b4533cdc | ||
|
44c163f421 | ||
|
dcec12da93 | ||
|
c14393c33c | ||
|
909146bd83 | ||
|
881e00c1d9 | ||
|
f471b51452 | ||
|
e71098346e | ||
|
dd8ceb472f | ||
|
185de00018 | ||
|
f983226842 | ||
|
08db22f008 | ||
|
a86b453f7a | ||
|
aaac16bf9d | ||
|
8b7d8e13c0 | ||
|
0291a22d10 | ||
|
eb79da2f53 | ||
|
4c8face17d | ||
|
30b574374c | ||
|
2ed17574f9 | ||
|
fa817f76c6 | ||
|
3852054fd2 | ||
|
0b1fa236fd | ||
|
b3f1be3b56 | ||
|
dd7c0d77b1 | ||
|
7499e33c81 | ||
|
5e1335376f | ||
|
d29ec308bd | ||
|
924765a2fe | ||
|
62ed8cb115 | ||
|
4ac1632f10 | ||
|
5eb2aac947 | ||
|
be2dc85cc1 | ||
|
4edf06d016 | ||
|
4ae9ec1361 | ||
|
d9cc3ecab6 | ||
|
6be42231b8 | ||
|
9228dcee29 | ||
|
2aadb2dff2 | ||
|
954deb7bf3 | ||
|
d3a05fe03c | ||
|
7014ef0032 | ||
|
6662729301 | ||
|
3ff34d06e8 | ||
|
575149342b | ||
|
735d98916e | ||
|
ff7a092232 | ||
|
fbb2e3f4f5 | ||
|
9856c1b25a | ||
|
124f1d7116 | ||
|
033087bba0 | ||
|
8007463815 | ||
|
fce9359e47 | ||
|
a2f1956865 | ||
|
ab9c57d34c | ||
|
de3155a4c2 | ||
|
dfa4870b74 | ||
|
1097260aa7 | ||
|
fbebb232db | ||
|
a3c408286e | ||
|
7844a006f4 | ||
|
c613c6bef7 | ||
|
adcf33fa4d | ||
|
5266d78a6e | ||
|
72f709a864 | ||
|
02663e7121 | ||
|
aff2923ad5 | ||
|
3e85dac172 | ||
|
6e4a379e93 | ||
|
478043a1ed | ||
|
58e6fcba9d | ||
|
c8bab6c3d5 | ||
|
9c124b1ab2 | ||
|
47a06a247f | ||
|
9b593427aa | ||
|
81be0b4311 | ||
|
6e802acd48 | ||
|
a77fd024a0 | ||
|
868c9a85d7 | ||
|
f3f1bdc2f0 | ||
|
1500848841 | ||
|
c66f47d451 | ||
|
e00ef950ed | ||
|
35de5c5b78 | ||
|
0877216511 | ||
|
c0b7b9e651 | ||
|
caf8be159a | ||
|
94e4118cf7 | ||
|
0068cec5d3 | ||
|
5411a3a1a2 | ||
|
82f12b610d | ||
|
de28325959 | ||
|
c100ebd2da | ||
|
0fa618282f | ||
|
287dee48be | ||
|
fc7c8bbeb4 | ||
|
e0cad47afc | ||
|
b94e9ee56a | ||
|
6556787e0a | ||
|
83e2e23fe1 | ||
|
938d34c059 | ||
|
14c284c37e | ||
|
cfd7c13b6c | ||
|
8bdc0bf97c | ||
|
1571574ced | ||
|
401468a9f8 | ||
|
3b9a63ec6e | ||
|
9b5c5f9db5 | ||
|
64f1e8378b | ||
|
d08d2c2bd4 | ||
|
15d5ffae32 | ||
|
3514077069 | ||
|
8cec420a71 | ||
|
ee568540c5 | ||
|
a9752c774c | ||
|
0c7e1c1624 | ||
|
fb02547e1e | ||
|
4309a349b5 | ||
|
7d9be7f949 | ||
|
ee26e0f17d | ||
|
0ce29ee614 | ||
|
30ddf7deed | ||
|
57904c8ce6 | ||
|
90942c4fef | ||
|
449f16b238 | ||
|
097038c3e1 | ||
|
fc20f1ca8d | ||
|
30edb63134 | ||
|
bd9e367de7 | ||
|
7f6251a593 | ||
|
796a2e3f4d | ||
|
b983d1c6a7 | ||
|
99633ce535 | ||
|
98048baa52 | ||
|
e087a3bc51 | ||
|
36e1f67ac2 | ||
|
3f49474ebc | ||
|
5dbd2b163a | ||
|
72ea12fec0 | ||
|
5551fc6754 | ||
|
3d18823ae1 | ||
|
542aedc182 | ||
|
a9340696a2 | ||
|
c2c55f8385 | ||
|
aa70008f0b | ||
|
6002bc6582 | ||
|
2b8bac8304 | ||
|
5cac560bcd | ||
|
d6a9db9095 | ||
|
4d1b5589c5 | ||
|
77769e2eeb | ||
|
b3175d1982 | ||
|
735ea6a317 | ||
|
6c107193cf | ||
|
a19b0bc480 | ||
|
bb5e238959 | ||
|
6f85760bb0 | ||
|
6a40c2488b | ||
|
c50df41b52 | ||
|
04f94a98f2 | ||
|
96335d4326 | ||
|
6a047273c3 | ||
|
feb5ffb032 | ||
|
eac8eb4d99 | ||
|
cfaa87847a | ||
|
0ca30e83ea | ||
|
559f204d73 | ||
|
01611dbd0c | ||
|
194e8daff9 | ||
|
1d2f3d38d3 | ||
|
099e832de7 | ||
|
18f32d04d2 | ||
|
7de0d97271 | ||
|
bc41f73c4c | ||
|
e80f12b676 | ||
|
87129bab87 | ||
|
ec76057b9b | ||
|
60ec536ce3 | ||
|
d2a58a39bd | ||
|
87ffaabc2c | ||
|
f29802392a | ||
|
653a6dd9db | ||
|
15f5226ed6 | ||
|
b8bc9a3ed3 | ||
|
80b528bfeb | ||
|
af86cec5e1 | ||
|
86b656aa52 | ||
|
f10f85793d | ||
|
225e5cb472 | ||
|
d77bc26a82 | ||
|
d912015262 | ||
|
f2724a2515 | ||
|
3fe6e98689 | ||
|
890f4a1789 | ||
|
1d6ead6daa | ||
|
d25d65852f | ||
|
f9365c3747 | ||
|
c760ad8924 | ||
|
a086076057 | ||
|
b0fe73aa1a | ||
|
00aabe3ef5 | ||
|
c2615aad1a | ||
|
e7be85d664 | ||
|
647ba5b40d | ||
|
fcacded8ff | ||
|
faff0f5f8b | ||
|
4375d33281 | ||
|
1e99a2c253 | ||
|
1fcf2d3411 | ||
|
13463b2051 | ||
|
2a216c882f | ||
|
cc1cbee983 | ||
|
9f9a51ac51 | ||
|
c9cc13f06d | ||
|
c1d6057965 | ||
|
e6fa7394ba | ||
|
ee5d5f9eb9 | ||
|
d297ff329f | ||
|
b25e6c5b05 | ||
|
e3bf16ec14 | ||
|
1c0d2c75a6 | ||
|
a07a5ecba7 | ||
|
8ad0abb867 | ||
|
080fc7ecef | ||
|
6592f00a6d | ||
|
cca9302927 | ||
|
cab26ded6f | ||
|
5b2d546e9f | ||
|
8725724e39 | ||
|
b863d24089 | ||
|
748c99f0ca | ||
|
56231ad97c | ||
|
e479bd4321 | ||
|
b24876a79c | ||
|
d0952240cb | ||
|
1155f0b3e5 | ||
|
721bc7e7e4 | ||
|
5a65996333 | ||
|
de3cf6c83d | ||
|
d42232ec19 | ||
|
8098c5666c | ||
|
3203940359 | ||
|
1ab667fcbb | ||
|
73a27a3cee | ||
|
ef2c2326f0 | ||
|
1319ffeca3 | ||
|
c693b5d641 | ||
|
0d047a359d | ||
|
51c6eb961e | ||
|
56b4314ae9 | ||
|
f6501cb4bd | ||
|
840796dffe | ||
|
e14ad12b3f | ||
|
c5d43cdbef | ||
|
3e9f549d3b | ||
|
77b5224967 | ||
|
4ac3ee58b5 | ||
|
d1a3c8dc1f | ||
|
f5b53f1359 | ||
|
037e90b856 | ||
|
d52e81d599 | ||
|
2f4eb8fdf4 | ||
|
6cd6a0a24e | ||
|
72851a22cd | ||
|
58a2a79682 | ||
|
aa79f94ac7 | ||
|
e9465843db | ||
|
bca0cefe1c | ||
|
4401280405 | ||
|
3392bdadba | ||
|
112f719305 | ||
|
d7c4602d33 | ||
|
938af0e4c3 | ||
|
e71dfee544 | ||
|
080889e074 | ||
|
155cfe3e9e | ||
|
67a0d5df3d | ||
|
a8a097c08f | ||
|
aecc12a9b2 | ||
|
d46d791df0 | ||
|
cd63ed1eb4 | ||
|
9b64ff7f38 | ||
|
a3b850377f | ||
|
0480e1298a | ||
|
7e1f4b5e7c | ||
|
99b5586acc | ||
|
e5d06c7ca9 | ||
|
1127a03f71 | ||
|
baf847bd1f | ||
|
6c54409759 | ||
|
329bc4e221 | ||
|
4c3151de5c | ||
|
71de8c8ea4 | ||
|
14bcc53ec5 | ||
|
add83ac92e | ||
|
ece1601498 | ||
|
7d416fec1b | ||
|
463aab93dd | ||
|
9a5d4a2ff9 | ||
|
4957e325c0 | ||
|
d30ba09733 | ||
|
e6589d4e7d | ||
|
89fafcd38b | ||
|
90196d7e5e | ||
|
6c8be091ef | ||
|
676b09e798 | ||
|
fbd3568e4c | ||
|
af89d145f7 | ||
|
d715dcaf40 | ||
|
247e2aa5d2 | ||
|
1f700be359 | ||
|
797c2e6a45 | ||
|
07600fb107 | ||
|
03aea1a3da | ||
|
e42a880493 | ||
|
277a6f4701 | ||
|
ca53272b7f | ||
|
5c0d5d0b33 | ||
|
b7c337c50e | ||
|
10bde14d06 | ||
|
2460b407ce | ||
|
c23e27390d | ||
|
d8b026adb0 | ||
|
9a86f65818 | ||
|
ef86d40384 | ||
|
0905c73a88 | ||
|
93bb0e9248 | ||
|
a53bbeb181 | ||
|
121ea9b22c | ||
|
3a1b03a171 | ||
|
78ea5d7ed2 | ||
|
2726ffafe3 | ||
|
9708810205 | ||
|
77494a0a1c | ||
|
557e266ad9 | ||
|
582af23699 | ||
|
eb7abab27b | ||
|
244d41b94a | ||
|
543ce67477 | ||
|
5e93e9da16 | ||
|
6c6b46c48e | ||
|
072775daaa | ||
|
af1cd41b65 | ||
|
2738d1475c | ||
|
e701951941 | ||
|
965c392661 | ||
|
53c82927d4 | ||
|
ca70d4b487 | ||
|
0f4328628c | ||
|
a809ae2a81 | ||
|
ade8ec4c4e | ||
|
4083637a11 | ||
|
92b1967c12 | ||
|
9846428b25 | ||
|
fa0b788dde | ||
|
81b729cabe | ||
|
fa9cdd19b2 | ||
|
b2595c847c | ||
|
6224a37708 | ||
|
9a4ec3526d | ||
|
94eec04267 | ||
|
f4bbe8f0de | ||
|
c09cc89317 | ||
|
f55cffb074 | ||
|
476e138db0 | ||
|
0483aa6340 | ||
|
f9a1667088 | ||
|
05d3aa82d7 | ||
|
278873e4b7 | ||
|
4713960f08 | ||
|
e44e919113 | ||
|
fc8d9dc2bd | ||
|
37df0b0172 | ||
|
a4b3c35828 | ||
|
cc39b38159 | ||
|
0aa27306aa | ||
|
4a481c6d87 | ||
|
7ee4ea8719 | ||
|
62c23bec25 | ||
|
60d6b85399 | ||
|
adb16c5b89 | ||
|
6681ce0dd6 | ||
|
a8bbf97a30 | ||
|
5b59e80fcc | ||
|
4ff1133fef | ||
|
262b86a6bd | ||
|
1c5ff52040 | ||
|
9a9d081dad | ||
|
4dfca1aa6b | ||
|
5934fda153 | ||
|
b17a4ae336 | ||
|
60182d34db | ||
|
1299979c95 | ||
|
d895eef63a | ||
|
9eb5ea7dd3 | ||
|
e7f084dcf2 | ||
|
cc8a0be886 | ||
|
97ef14b224 | ||
|
acb9a09750 | ||
|
d5a3a61c01 | ||
|
26aaa97b22 | ||
|
3dcecc1ea5 | ||
|
219eb77f89 | ||
|
7d797c04a4 | ||
|
98c4b44399 | ||
|
643c36ba9f | ||
|
a8478021b9 | ||
|
d06203a905 | ||
|
9bbf41c731 | ||
|
608c8dd579 | ||
|
8ffba836d4 | ||
|
293e7fbe1d | ||
|
6663cc051d | ||
|
f906e82a93 | ||
|
67d685f2e8 | ||
|
b3a757762c | ||
|
a4df08a6c7 | ||
|
38b4439211 | ||
|
c75be4f1f5 | ||
|
848ce39f7a | ||
|
fe4954aee8 | ||
|
446ebe3a77 | ||
|
7f76b46139 | ||
|
ac8431612d | ||
|
715b0e870a | ||
|
43a1b6e44b | ||
|
7493cb7208 | ||
|
632a8d18cc | ||
|
1255e7fabd | ||
|
5e5aa14370 | ||
|
fe877ea81a | ||
|
3727c633a9 | ||
|
fb8fe489ab | ||
|
3a16e0e9b7 | ||
|
ee46e2bee7 | ||
|
ec0510a0ec | ||
|
3b40a9c2d9 | ||
|
2b1bea02f2 | ||
|
39169b6fd6 | ||
|
e6615bfc3b | ||
|
346c3501d9 | ||
|
9dbd953842 | ||
|
d0ef4dec81 | ||
|
5d92338153 | ||
|
6fac38e29b | ||
|
4fe43281ee | ||
|
f2cb87d3a9 | ||
|
97ec1cdf4f | ||
|
e337f0cf19 | ||
|
8da86542c5 | ||
|
f2fbb48a81 | ||
|
aefe310b15 | ||
|
b358753ae0 | ||
|
320c78ce86 | ||
|
4e6442f411 | ||
|
2e951f5763 | ||
|
4e5fe40c02 | ||
|
3dffa71bea | ||
|
313b8ffabf | ||
|
37ef7f0389 | ||
|
e20eb8b760 | ||
|
445b61e3e7 | ||
|
933b1f4546 | ||
|
859126d546 | ||
|
ba8fd4b9e2 | ||
|
d1ab2bf3d5 | ||
|
af7a0fa154 | ||
|
485b4f523f | ||
|
86685d2ad0 | ||
|
47500a0e6e | ||
|
cb80447f90 | ||
|
70be25eea2 | ||
|
62ea100bf7 | ||
|
6591528e95 | ||
|
013a0b0f11 | ||
|
cbd1435c88 | ||
|
f2f86e5dc9 | ||
|
6fbbdeefd3 | ||
|
24a55633ce | ||
|
c92959a448 | ||
|
e6a81811f9 | ||
|
4b5f259ba0 | ||
|
0bdd39e497 | ||
|
ce9570dd58 | ||
|
42dc0241f3 | ||
|
7ab6652629 | ||
|
329fc5da74 | ||
|
e54a45318d | ||
|
8975d5800d | ||
|
64e268edf4 | ||
|
cd6724b003 | ||
|
d704f0320e | ||
|
5c57d9e299 | ||
|
eb48fdc0b6 | ||
|
1f61c61410 | ||
|
e44a9c0c6e | ||
|
c24e5e2890 | ||
|
2e680b56f5 | ||
|
59121c52b3 | ||
|
44c86168ab | ||
|
b585906f94 | ||
|
e048781571 | ||
|
2b40fb4fd9 | ||
|
f5d97f0457 | ||
|
1f56c13d32 | ||
|
48729ed118 | ||
|
ac20864a1f | ||
|
4682009053 | ||
|
3502a2a259 | ||
|
b7bd68546c | ||
|
749227685f | ||
|
b1df326ab3 | ||
|
bfd04045e5 | ||
|
5c7cba1803 | ||
|
50c9f52f31 | ||
|
00cc060921 | ||
|
df33513a90 | ||
|
6f5687c1e3 | ||
|
fb382a2bd0 | ||
|
4494bd6ff8 | ||
|
1992b31396 | ||
|
d24e9eea16 | ||
|
e47f57e005 | ||
|
f13dc6d43c | ||
|
d40699c1b5 | ||
|
4b73b75936 | ||
|
c1eead8dad | ||
|
feb7a7ef31 | ||
|
b0b1c78af8 | ||
|
084b800ac9 | ||
|
87e4eb6b0a | ||
|
df3c8a79b9 | ||
|
5c7c739ec2 | ||
|
cea43f5a01 | ||
|
c1eb55bef1 | ||
|
0cb88f61f5 | ||
|
a7f6a56d56 | ||
|
d384318261 | ||
|
0332e716dd | ||
|
375d7e46b2 | ||
|
80578efe33 | ||
|
415d8792be | ||
|
bf1ce77998 | ||
|
cebfecab46 | ||
|
0d7dfb3ac0 | ||
|
83e654c4c6 | ||
|
20455969df | ||
|
306011d26a | ||
|
9cffa70148 | ||
|
888ef22258 | ||
|
b9abf2e40e | ||
|
6bd98ba0f9 | ||
|
5d7b721b27 | ||
|
fbf6c8175d | ||
|
810dd32d65 | ||
|
04135812bd | ||
|
888e68c28d | ||
|
2aec0359db | ||
|
73e7a35cd4 | ||
|
548d810654 | ||
|
21b2803555 | ||
|
2f1cf950ee | ||
|
4620b3c301 | ||
|
164bbb3d1a | ||
|
aadb880f7f | ||
|
39e86aef6c | ||
|
406038dd83 | ||
|
70aaf163ae | ||
|
8e40259feb | ||
|
b4f52020f0 | ||
|
375cb32bc1 | ||
|
bdc7c892ca | ||
|
8ac2c72f10 | ||
|
c06f82f251 | ||
|
6702150903 | ||
|
1a24be4e58 | ||
|
6e078ebd0b | ||
|
92724270d9 | ||
|
e4f0f0548e | ||
|
7fad9f9d73 | ||
|
3d14f381b7 | ||
|
48d7e1ca92 | ||
|
bf262e5f2e | ||
|
4ff7fc8cc4 | ||
|
68957c2a8d | ||
|
e6a25cbabc | ||
|
23d233d937 | ||
|
23cbc3a65b | ||
|
cd2ff9ab02 | ||
|
dbadd50ad7 | ||
|
e2d2d159ca | ||
|
624016fee6 | ||
|
08f09dc083 | ||
|
4b4c0fe86c | ||
|
98a1367afe | ||
|
4242628811 | ||
|
31329ec363 | ||
|
2e64df4035 | ||
|
c96fb60670 | ||
|
20319a0e15 | ||
|
ad476671c1 | ||
|
8f35b79ded | ||
|
c3354e76d7 | ||
|
113b4e2f2d | ||
|
3e7c9de080 | ||
|
518bbebc3a | ||
|
e0f77a1f76 | ||
|
258f25700d | ||
|
8fe10d1357 | ||
|
bd3687a16c | ||
|
d06a37f60a | ||
|
4ebb0fb475 | ||
|
03ad7a6304 | ||
|
99db5f22ca | ||
|
f1639f0a36 | ||
|
04a5be247c | ||
|
e288e65998 | ||
|
4cf83bfd24 | ||
|
22d4d65e01 | ||
|
e4ac49b48e | ||
|
fe1380e0c4 | ||
|
1db798a400 | ||
|
07dd252abe | ||
|
da260ce835 | ||
|
fee54dfc8f | ||
|
feee1ee9f6 | ||
|
ad0297980c | ||
|
15ef100149 | ||
|
804083681e | ||
|
9c002e4abc | ||
|
d06ef3be88 | ||
|
66bcd52099 | ||
|
49e9aef502 | ||
|
d11d5f88fb | ||
|
b96fad1bfe | ||
|
cd5028315a | ||
|
5bf952292b | ||
|
d6f62604ab | ||
|
8f3399d410 | ||
|
68bcd51047 | ||
|
0d3033d4c3 | ||
|
860ab51af9 | ||
|
6a7be726dd | ||
|
27940c430e | ||
|
2e96cb67ce | ||
|
46c99b962f | ||
|
aa49bb5089 | ||
|
c0775d1c70 | ||
|
a5bc998bfd | ||
|
9917173c41 | ||
|
708cf95507 | ||
|
a8122825b0 | ||
|
dd9d89aee7 | ||
|
9f3f20dc7b | ||
|
81ca5ae710 | ||
|
6f74e05c5a | ||
|
78d3db9fad | ||
|
c45de61fcb | ||
|
5ed2b79897 | ||
|
f6bc8ef13b | ||
|
1e76488bab | ||
|
b2d302ee13 | ||
|
80d2565d1c | ||
|
a8b97834de | ||
|
0d0c6e1c37 | ||
|
986cb171b4 | ||
|
f6738c190e | ||
|
4278b6de72 | ||
|
0f97060c5f | ||
|
1d401319ba | ||
|
e2d3316824 | ||
|
11799aba48 | ||
|
3f8d1710e3 | ||
|
d585120eeb | ||
|
4ddd69e7d1 | ||
|
152f2a725e | ||
|
0fce36bbc5 | ||
|
55fe917aad | ||
|
784d39e6ab | ||
|
0f18ef8887 | ||
|
cbdb5e60f5 | ||
|
dfda674070 | ||
|
adc0905af3 | ||
|
8ea4a9bb93 | ||
|
8e9e57b57c | ||
|
d747251b2e | ||
|
fb7d6ac4fd | ||
|
7158c558ae | ||
|
5e1f55db61 | ||
|
bc4c79ac30 | ||
|
66f2556415 | ||
|
f1dd819cfe | ||
|
2362fc2274 | ||
|
8f706bd246 | ||
|
a14fb4a63e | ||
|
a9f39e4d6d | ||
|
a6ecb70b14 | ||
|
4561b2b872 | ||
|
ae61f443f3 | ||
|
7a02c5b508 | ||
|
a1e39dc5f7 | ||
|
faf2d31864 | ||
|
c251818ca0 | ||
|
7db082d5da | ||
|
13596ab6bd | ||
|
216f923f70 | ||
|
22554a161f | ||
|
06e735a652 | ||
|
4dca5ecf93 | ||
|
b03e0f2ffb | ||
|
ed5fe67f0e | ||
|
9731e6446c | ||
|
07fb639b0f | ||
|
1fb3785dd2 | ||
|
12f1bcb764 | ||
|
41cfb270ed | ||
|
6c30cdbd8d | ||
|
251c0b4143 | ||
|
5eb87a0d3e | ||
|
33a19845e1 | ||
|
84a144edda | ||
|
d3f9744fdd | ||
|
44eb8d265a | ||
|
5f72921cc1 | ||
|
98f3942e64 | ||
|
1d77fa79a0 | ||
|
2c9125dace | ||
|
37ae912e62 | ||
|
eac5b1561f | ||
|
78c52d7141 | ||
|
38732dc573 | ||
|
e5f444e9a8 | ||
|
13a341e0e9 | ||
|
7912643e8f | ||
|
06e72275e8 | ||
|
19f36a36c2 | ||
|
0133801452 | ||
|
4b28e78a48 | ||
|
53db7cc902 | ||
|
2ebd7d1567 | ||
|
98f768521b | ||
|
7039dc6102 | ||
|
6a5ac16898 | ||
|
4ac57d17e7 | ||
|
807580fd7f | ||
|
fb021e988c | ||
|
c0dace5fd9 | ||
|
13d49dd3d1 | ||
|
2e4e3e52b8 | ||
|
7f5b9100ed | ||
|
92da84155f | ||
|
03b9bae824 | ||
|
b53a336e11 | ||
|
cacfdbc2ae | ||
|
2f4440ef50 | ||
|
7cf68d098e | ||
|
d2742356a4 | ||
|
b37d8bf8a6 | ||
|
7d56a52585 | ||
|
4cf8eb0e91 | ||
|
5a997f0f37 | ||
|
1df38871e1 | ||
|
8cc4fe41ff | ||
|
d8c1ea044a | ||
|
ef95e06704 | ||
|
362f98246a | ||
|
f7d40fafdc | ||
|
a018ff12f3 | ||
|
5cf5253586 | ||
|
489f99911a | ||
|
d7456e064f | ||
|
96939c795d | ||
|
d28d674a66 | ||
|
2b6ec82856 | ||
|
3ec048cff0 | ||
|
9a28f71885 | ||
|
db343ee03d | ||
|
8821161c38 | ||
|
45c7c2b0ca | ||
|
d12a6255db | ||
|
126fdc82d3 | ||
|
bf9bfd06ca | ||
|
7af9cc8f7c | ||
|
b03a99cfc3 | ||
|
8ee1ebf819 | ||
|
6eba56d742 | ||
|
23c3d91c9f | ||
|
26455f933b | ||
|
19e9165d64 | ||
|
1d1b9c7abe | ||
|
1d6b47e3fa | ||
|
d5fd8741e4 | ||
|
2bd25d8f45 | ||
|
e1e07ce4f1 | ||
|
7dc4d68410 | ||
|
1bf3ada15b | ||
|
25b93f0f93 | ||
|
5cc0696de6 | ||
|
8833e0d3c3 | ||
|
58824aa9bb | ||
|
9e4d008d25 | ||
|
6a2838717f | ||
|
87cafe5b4b | ||
|
546e045ccf | ||
|
15fd38a033 | ||
|
72a85f8da3 | ||
|
88e3584814 | ||
|
94f4c71eaa | ||
|
86e4f7d1f3 | ||
|
e93418a163 | ||
|
b2343762b1 | ||
|
f49eab1248 | ||
|
e9adf47ad9 | ||
|
c719b4bf3d | ||
|
ddd27f21a6 | ||
|
3b1269f500 | ||
|
8eb4666ffe | ||
|
d4c43a42ad | ||
|
1b8d849b36 | ||
|
92e3227043 | ||
|
98a17d1462 | ||
|
48b8ff47c1 | ||
|
7acd33759c | ||
|
2f330b7737 | ||
|
6cc79068cf | ||
|
5fb7f69dd8 | ||
|
d45263d5fa | ||
|
96cf099c47 | ||
|
89ea42aadc | ||
|
9b356ea0d8 | ||
|
effe3785cf | ||
|
458d71a96a | ||
|
dd19f542db | ||
|
47ab9b2dc9 | ||
|
ded7d9b234 | ||
|
baad14eee0 | ||
|
621f16a442 | ||
|
805619d137 | ||
|
31bc1dec02 | ||
|
a7c8b44628 | ||
|
350a050c77 | ||
|
3c4ffb12ab | ||
|
3be3d84b6a | ||
|
af1c6bb05e | ||
|
e9bab05794 | ||
|
7cfa07e154 | ||
|
9c3aa23e08 | ||
|
a3acf689ea | ||
|
b25cf0bef3 | ||
|
f1ff6e0e1c | ||
|
2ef6d354d1 | ||
|
50807a616b | ||
|
d6ef11469b | ||
|
b33e3c06c8 | ||
|
3845ca6eea | ||
|
15a5ee96af | ||
|
0f133f4f4b | ||
|
a4768daec1 | ||
|
1dbcd037c8 | ||
|
58a1af804c | ||
|
f824cb5a43 | ||
|
9233a5133d | ||
|
62ff187eeb | ||
|
6e30650fe4 | ||
|
ae80a9bec3 | ||
|
dc9f9f982f | ||
|
8e7a7b56e0 | ||
|
d7cfee4b16 | ||
|
1bdf71943f | ||
|
9d1a05c3b9 | ||
|
e02fe68aeb | ||
|
afc4b03c73 | ||
|
d4fdc6b7a9 | ||
|
a2ea759334 | ||
|
b6e4e4cb0c | ||
|
e109b31b0a | ||
|
be65ec92b7 | ||
|
64bfd86b5b | ||
|
58a30d5f5a | ||
|
6db99a9b8f | ||
|
8e3ea42aba | ||
|
2122756189 | ||
|
7645a361ba | ||
|
28e712df0a | ||
|
fb6ce33533 | ||
|
23fabedc9d | ||
|
015b3c5671 | ||
|
9c8f987df7 | ||
|
4e077183cc | ||
|
3d6ed0595f | ||
|
c06b5609d2 | ||
|
7535bc04f8 | ||
|
7f47f6b10a | ||
|
0771297449 | ||
|
beb73ece8f | ||
|
c96795ffb3 | ||
|
b060f6e12d | ||
|
51f11dd497 | ||
|
2cc2c1781c | ||
|
ab5d94b012 | ||
|
eff27977db | ||
|
1af6bdfed3 | ||
|
be53636ec1 | ||
|
2ee17f4875 | ||
|
17441e5e7c | ||
|
8f95bb18f6 | ||
|
c693180a1a | ||
|
15161e3a11 | ||
|
b0e1d51756 | ||
|
19b9451ce7 | ||
|
5870262ac3 | ||
|
df517cb1d5 | ||
|
3c96358fd1 | ||
|
cd87226986 | ||
|
abb3b2e708 | ||
|
0839bde18e | ||
|
88272dc7f3 | ||
|
f5bf23dafd | ||
|
eee3d97477 | ||
|
cd3c641ce4 | ||
|
de6ce87069 | ||
|
fb323cfb0c | ||
|
5641d252be | ||
|
933ae28567 | ||
|
daab95c294 | ||
|
920b5749b3 | ||
|
d1f2cb63d9 | ||
|
2fad80a6bd | ||
|
6b5b269844 | ||
|
e5dab4ac8f | ||
|
cde31863f7 | ||
|
5ed636a4c4 | ||
|
6b3346d084 | ||
|
2ba385cd59 | ||
|
df3553892d | ||
|
0c099a014d | ||
|
304142d003 | ||
|
678643f039 | ||
|
0b31c196ce | ||
|
4896d79de2 | ||
|
d757e0ca09 | ||
|
c880c2b371 | ||
|
78fce4d995 | ||
|
3896a3f545 | ||
|
94fe6e8a3b | ||
|
6599ff588c | ||
|
1ec60bab08 | ||
|
60113bedc9 | ||
|
9962a15cba | ||
|
7c885b9057 | ||
|
49160b1b37 | ||
|
ae1e9866d0 | ||
|
58b9aed17a | ||
|
2e3ff48627 | ||
|
4b14b2d4bd | ||
|
f66144459c | ||
|
8cdee385b9 | ||
|
5ee5b7c4b5 | ||
|
272d6d3b63 | ||
|
0194df88a3 | ||
|
04dba161e9 | ||
|
db04099523 | ||
|
605073b0b9 | ||
|
3febaff1e4 | ||
|
411241fb26 | ||
|
28bebc863a | ||
|
793591fcf0 | ||
|
7c631d5cb0 | ||
|
e3bf3653ac | ||
|
b9b369944b | ||
|
f53d23cfaf | ||
|
373ceb4adf | ||
|
33cd846e9a | ||
|
8cc74c3911 | ||
|
0dcce7e40c | ||
|
50830412b0 | ||
|
9d274e0e56 | ||
|
fb023e8c09 | ||
|
5a01db227e | ||
|
43f263a031 | ||
|
3003d2edc4 | ||
|
fa6f8b9401 | ||
|
e4384dcadb | ||
|
181da436d4 | ||
|
4e73c03f20 | ||
|
79d82223a2 | ||
|
ab44ea2b8c | ||
|
252e7dfa84 | ||
|
a4ed2092df | ||
|
c733db4515 | ||
|
0467de4de6 | ||
|
80bf176f06 | ||
|
1a15d98cd4 | ||
|
3ce3cafc93 | ||
|
fdf992a7e9 | ||
|
8292c4d374 | ||
|
0a8331150e | ||
|
abf069c08c | ||
|
4a6e34d3de | ||
|
e09c960885 | ||
|
8a86bcebc8 | ||
|
13a9dd210a | ||
|
92690fa3c2 | ||
|
226fb39fca | ||
|
54935477ea | ||
|
b839a7b0c6 | ||
|
70c0c38ff8 | ||
|
92cc6c4cbc | ||
|
d53bffc04d | ||
|
e413007784 | ||
|
9bdd5b9345 | ||
|
a8911fc344 | ||
|
9dde213508 | ||
|
5cb7f1ebaa | ||
|
471b638bd3 | ||
|
06606b5700 | ||
|
cf670606aa | ||
|
b60940539e | ||
|
d42fa02bc3 | ||
|
3dde363831 | ||
|
d751518bd7 | ||
|
66ba57b637 | ||
|
da926dc304 | ||
|
307072355f | ||
|
8ddeab4cfb | ||
|
17896bb74f | ||
|
825224b817 | ||
|
d8fb6432c0 | ||
|
5efff5b160 | ||
|
6bd2df1ad5 | ||
|
d1137a9597 | ||
|
cc913d6110 | ||
|
33d3e54e31 | ||
|
dc04c470a1 | ||
|
d625a99817 | ||
|
bc6c9745d8 | ||
|
bea236b9c1 | ||
|
e7c9e7d8de | ||
|
3d0adf9d4c | ||
|
d35931988e | ||
|
7b5cf0dbd6 | ||
|
734b31563b | ||
|
c02454f9cf | ||
|
084075c4a5 | ||
|
083e509487 | ||
|
844ab25ea4 | ||
|
7b8e0b8bc8 | ||
|
4834f5e03d | ||
|
e3f318b459 | ||
|
39c5b780e7 | ||
|
0bf6af4bbe | ||
|
036d90f14b | ||
|
027cbd46a0 | ||
|
60c544e649 | ||
|
3bc682d012 | ||
|
e7a0b015f6 | ||
|
633a08fa4e | ||
|
39d710eabe | ||
|
7f2ad4a885 | ||
|
92b97da841 | ||
|
1abd7f7999 | ||
|
69d6039b7f | ||
|
6f282c4970 | ||
|
68e5951840 | ||
|
bd2316dcb6 | ||
|
7df7efcc12 | ||
|
7be352f465 | ||
|
8aea07b726 | ||
|
d75330dd35 | ||
|
48e4ce60cc | ||
|
54c5de6d50 | ||
|
2b483b3ad7 | ||
|
5bf4b2f442 | ||
|
116c3e66af | ||
|
740f66023c | ||
|
43af1f21b9 | ||
|
e9e878d1bc | ||
|
763452a14f | ||
|
b1f056a802 | ||
|
2763b81fe3 | ||
|
ba7ee2270a | ||
|
f6906b8272 | ||
|
e7fc60f78f | ||
|
6a213cbdf7 | ||
|
ab81bf2b2c | ||
|
9fe4bffd4f | ||
|
67f557226f | ||
|
77f3189adc | ||
|
df1cc88424 | ||
|
50ba0e239f | ||
|
128ccea10b | ||
|
f1a4c08002 | ||
|
c87d85a5aa | ||
|
911a8a63c3 | ||
|
382fa5c382 | ||
|
8610171ecf | ||
|
51881768c4 | ||
|
ce16af5a93 | ||
|
7b0e05fcca | ||
|
37a4e33454 | ||
|
01d3c73210 | ||
|
9cde596b73 | ||
|
f1cbeaff1e | ||
|
558abc63ab | ||
|
7bd1880984 | ||
|
3c6d398c4a | ||
|
4849c70543 | ||
|
c2bd238e88 | ||
|
be9cf0418f | ||
|
2d58661d74 | ||
|
aada841db8 | ||
|
dda40ca71a | ||
|
846972ba14 | ||
|
6aaf568c31 | ||
|
0a28c9f678 | ||
|
485fd85179 | ||
|
e899aa852a | ||
|
379c61429c | ||
|
7f37c65a7f | ||
|
28b82792f5 | ||
|
ba20420e9f | ||
|
2d4d7f587c | ||
|
b91bf99b4c | ||
|
adf0a7ee89 | ||
|
65903c3ae7 | ||
|
7d25aee8a1 | ||
|
e60f060ea8 | ||
|
274e49f37e | ||
|
778b99a403 | ||
|
1d50b80aed | ||
|
0ffbe85cc4 | ||
|
3e77a18b4a | ||
|
f8e922f9ec | ||
|
d0b22eb542 | ||
|
04f0490872 | ||
|
4000f118fd | ||
|
dab4163728 | ||
|
fa11d08b07 | ||
|
dcedc5bcef | ||
|
d990d01640 | ||
|
7aee89d29d | ||
|
a622843f4d | ||
|
f92074c925 | ||
|
00dd821a5a | ||
|
2c5634dad1 | ||
|
fefbd24704 | ||
|
968f80dfab | ||
|
90f9ff75f6 | ||
|
c93ab959d3 | ||
|
2430a4018b | ||
|
093b389f6a | ||
|
788bbf520a | ||
|
b1cebb4c50 | ||
|
93a430fdf0 | ||
|
ba91bf6d18 | ||
|
a92e48434b | ||
|
c5eedc0420 | ||
|
fe59413cd8 | ||
|
30fc5201ed | ||
|
99a9d670fc | ||
|
22344179a4 | ||
|
490bbe0214 | ||
|
1fc3cc3e79 | ||
|
e82f8ece3a | ||
|
20f9c58edb | ||
|
acfa692931 | ||
|
707756e4be | ||
|
d9322adafd | ||
|
6f2f51efc0 | ||
|
6d0627cb0d | ||
|
2464763a22 | ||
|
eb92e0784a | ||
|
b75a8a1512 | ||
|
6824418b27 | ||
|
940f48f7cb | ||
|
e4ac9938d3 | ||
|
f1583ba627 | ||
|
748f0aed63 | ||
|
5ce761a2e6 | ||
|
3f9ade6436 | ||
|
7d2d8182b4 | ||
|
ee6e3ea040 | ||
|
b6745ac9e9 | ||
|
c0909ca78c | ||
|
3b16bb011e | ||
|
e0e7056fe2 | ||
|
abe9e8d1a2 | ||
|
31f2c72c66 | ||
|
474ddd204a | ||
|
e41ade967e | ||
|
5bbafe80f1 | ||
|
d22aa7c0f5 | ||
|
9725c8d752 | ||
|
9bd53c8683 | ||
|
72af6a552b | ||
|
ea716418ef | ||
|
556ff9bbb2 | ||
|
37f62538b8 | ||
|
47b096e223 | ||
|
e53cc66755 | ||
|
47be1b5541 | ||
|
8e6853cad9 | ||
|
41d3805477 | ||
|
324872e3b4 | ||
|
136ec5c222 | ||
|
d5a142d6d7 | ||
|
a75e27c0a4 | ||
|
62fee90c16 | ||
|
66649cc028 | ||
|
7cbd85cda2 | ||
|
7e832a73ce | ||
|
7d6f9b81ee | ||
|
4df90d3150 | ||
|
533e3544fc | ||
|
3d9f1d157a | ||
|
3962c1166f | ||
|
cdf0814612 | ||
|
624a9cdb1f | ||
|
cb49f6e2d0 | ||
|
af8b86b8a1 | ||
|
dd893da822 | ||
|
58019209ed | ||
|
7e69556fa7 | ||
|
43586196bc | ||
|
a9cdbf0fb5 | ||
|
29f9dbfc35 | ||
|
558ae6ac98 | ||
|
de2d6b97c9 | ||
|
5a4d4680ae | ||
|
ac0d780ce5 | ||
|
43cdce02c7 | ||
|
96c602cc0e | ||
|
25c468dfbb | ||
|
d1dd40d9ae | ||
|
88eb09d633 | ||
|
6bc5df518a | ||
|
8eae254920 | ||
|
4d74d5e0cd | ||
|
1e8326d418 | ||
|
c825c71a66 | ||
|
a6259bbd4d | ||
|
bcfe29ec12 | ||
|
e20434093a | ||
|
d1f5b0cf2a | ||
|
3fab628d29 | ||
|
2285608fd4 | ||
|
bdb14ae648 | ||
|
3372325195 | ||
|
7e0efdc102 | ||
|
64f6d8cd7f | ||
|
8b388cd365 | ||
|
f30b816cc6 | ||
|
77bc53053b | ||
|
6675c29a7d | ||
|
415750b253 | ||
|
006fcb4abe | ||
|
70d788c71e | ||
|
db787e72c6 | ||
|
f15a260ce0 | ||
|
3a51a0bc89 | ||
|
f2f1c755a8 | ||
|
53c1a78ee5 | ||
|
44404f2dc8 | ||
|
d4b808080f | ||
|
1adc8cb75d | ||
|
b64bc34caf | ||
|
c4e31ace4d | ||
|
36388a1fbf | ||
|
0b2ac32cf5 | ||
|
ba433af9fb | ||
|
0ba6aed77e | ||
|
4a6d631cc6 | ||
|
74335e8825 | ||
|
0908bbcd7f | ||
|
7dbafd4398 | ||
|
b82af5ce89 | ||
|
6160b3ba8f | ||
|
2e24a08061 | ||
|
5fc338544b | ||
|
9f553ec6d1 | ||
|
91cb92c018 | ||
|
420878b21e | ||
|
5b60b84e89 | ||
|
bedc2e79af | ||
|
44e35d178a | ||
|
db48c4a88c | ||
|
e1fc6b423d | ||
|
78c230c06c | ||
|
2aeadf5e68 | ||
|
15ea081b5f | ||
|
bf5561d2f6 | ||
|
dd58d23390 | ||
|
118003400a | ||
|
adef99d4c2 | ||
|
681afb7b6a | ||
|
3618011a5a | ||
|
b4a04f55d8 | ||
|
2d9b7d9587 | ||
|
2aa05e973e | ||
|
8e5713f3e0 | ||
|
0e832d57fc | ||
|
2b874b2438 | ||
|
c1eb6133d4 | ||
|
eb96e5c861 | ||
|
fcde8479cc | ||
|
4d48403bc6 | ||
|
793699d64f | ||
|
a4e6d69b90 | ||
|
b717bcda64 | ||
|
8c091c2348 | ||
|
4c28ce0877 | ||
|
6323876b41 | ||
|
340cf63e28 | ||
|
c43673f17f | ||
|
edc3b13575 | ||
|
dce8bffc7d | ||
|
81ffe54056 | ||
|
d9204a3329 | ||
|
269d89c79c | ||
|
8d752a5587 | ||
|
306cc2ed71 | ||
|
633dd9937b | ||
|
b6c29a5f1a | ||
|
0660947018 | ||
|
7e77ea9943 | ||
|
42bf543898 | ||
|
a2f426f36f | ||
|
b459ef889c | ||
|
31bfcc1a1d | ||
|
231cb64471 | ||
|
cca8dd6347 | ||
|
b39b0bfc04 | ||
|
b8663e868f | ||
|
e4515f4dba | ||
|
368f15ca59 | ||
|
d1bc66a20c | ||
|
e3737e59fe | ||
|
b3570de983 | ||
|
c4aa487d72 | ||
|
86009fba38 | ||
|
691bea134f | ||
|
6ffbc07492 | ||
|
7049dbf12f | ||
|
09d7eafb15 | ||
|
eebd4f1c4b | ||
|
f0ce2b12a2 | ||
|
9e7f4ff465 | ||
|
2a2d769d42 | ||
|
34bfd71279 | ||
|
df9768cf3a | ||
|
1b2584a8ac | ||
|
0e86016442 | ||
|
3fc42d7ab9 | ||
|
7c12edeb93 | ||
|
eef20f2c83 | ||
|
706ff83a7d | ||
|
b24c2d21b2 | ||
|
9adb145bb6 | ||
|
7ecf872b9a | ||
|
ad24594d10 | ||
|
a8a1f7b99a | ||
|
602d233229 | ||
|
f40bcdcfc5 | ||
|
77265413d9 | ||
|
60970ae68c | ||
|
60416c88e2 | ||
|
8d279c6d77 | ||
|
4c9bcf2843 | ||
|
2b0370f987 | ||
|
32492c4be4 | ||
|
f01ab587f5 | ||
|
52711c24e8 | ||
|
263bce4445 | ||
|
c8ce95ab52 | ||
|
b81da13000 | ||
|
b6804b7219 | ||
|
7b0d4522ed | ||
|
c8830f2504 | ||
|
3c8b5b490c | ||
|
f0175e1ff6 | ||
|
d1134c4908 | ||
|
40b2753db5 | ||
|
c86e6b335b | ||
|
d81e99b09b | ||
|
e86a51b83f | ||
|
74bfd391e9 | ||
|
bf5a63da8a | ||
|
bc170a5436 | ||
|
e6716d2336 | ||
|
f5869e6a87 | ||
|
a3cee3d83a | ||
|
1f6a65d375 | ||
|
d74feca09e | ||
|
aad5057b51 | ||
|
de1e169e44 | ||
|
5fed4b4afd | ||
|
af58a0dbd8 | ||
|
86db923391 | ||
|
6834bb9597 | ||
|
4fcaa4e1da | ||
|
6da29b43a6 | ||
|
d16ad30f40 | ||
|
6a6b50c241 | ||
|
6294736800 | ||
|
2c24a9f374 | ||
|
0a206df7e9 | ||
|
c78b24e7d3 | ||
|
d47d149aa6 | ||
|
af12141d2d | ||
|
81c1b1dade | ||
|
59d658187c | ||
|
72c3b58732 | ||
|
d9264f1365 | ||
|
20b67bc6ad | ||
|
9eb636fe12 | ||
|
09239601fd | ||
|
14fefb8617 | ||
|
534d584ba6 | ||
|
c06df5a44c | ||
|
f3339d7a05 | ||
|
20113848dd | ||
|
2fd6edba8d | ||
|
79f9f13355 | ||
|
9b3fb6c3bb | ||
|
bacee14097 | ||
|
5a7cb2374a | ||
|
a1670a154a | ||
|
6a19b7b894 | ||
|
a7e43ebfaf | ||
|
8de5530e55 | ||
|
fbbeab7c06 | ||
|
e23cdf7954 | ||
|
f109780159 | ||
|
1369a567cd | ||
|
a0c5253c26 | ||
|
71f5aa3f2a | ||
|
0531a161f7 | ||
|
5fcc15abbe | ||
|
11ea4f5123 | ||
|
e2be8a6add | ||
|
1cddb964f2 | ||
|
f9e0589658 | ||
|
f5739c8e0e | ||
|
9f338821f9 | ||
|
cae3a541c9 | ||
|
96fcd790f0 | ||
|
812e0cfdb7 | ||
|
1c10200c25 | ||
|
8b02fa1fca | ||
|
64dc228b6a | ||
|
0edd5d332b | ||
|
dc347650e9 | ||
|
9a4990ddf5 | ||
|
da920e08f8 | ||
|
4c1cab8dff | ||
|
c0454cf6db | ||
|
ae56d196eb | ||
|
55da5ba3ae | ||
|
cbf21238c3 | ||
|
8ccd6cba27 | ||
|
46a5bd82ae | ||
|
de90ed5856 | ||
|
2d6557175f | ||
|
5c271537cb | ||
|
93344f6dfe | ||
|
8a5d05e253 | ||
|
a03c10fa14 | ||
|
45c38b4422 | ||
|
64768cae2a | ||
|
1707e510a8 | ||
|
8c323acbae | ||
|
c922869cdf | ||
|
762daeb3cf | ||
|
b635954523 | ||
|
adf6e301fa | ||
|
92895a417a | ||
|
4200bed6be | ||
|
224c47a9b8 | ||
|
1d0c7ea1bb | ||
|
2fc5429c28 | ||
|
673f0a86b9 | ||
|
c4d19dfa21 | ||
|
7a2e34562c | ||
|
4594c980b0 | ||
|
136cbb50ac | ||
|
c7afdb18c2 | ||
|
07155e2782 | ||
|
9032abed7c | ||
|
a2fa59532c | ||
|
d5102464a3 | ||
|
9e22092166 | ||
|
ce2e7b8798 | ||
|
35819662f8 | ||
|
a54f709c98 | ||
|
3657b05ccc | ||
|
784bd75c67 | ||
|
06a19ba693 | ||
|
570ad468e0 | ||
|
ed30bc0c76 | ||
|
a57035d9d1 | ||
|
a8d792306c | ||
|
7d645248c4 | ||
|
a66dd6b37d | ||
|
a7f083932d | ||
|
dc0b488d70 | ||
|
eaec6d352c | ||
|
736f4c8758 | ||
|
26629f7a93 | ||
|
017f6ed282 | ||
|
f2b3c22d5c | ||
|
376292d718 | ||
|
357c4aa3bf | ||
|
9726395dd6 | ||
|
889e66decd | ||
|
886053fa2f | ||
|
5af65fb673 | ||
|
40e322c122 | ||
|
b37e0373ef | ||
|
85c6f6eb76 | ||
|
d2b62140cd | ||
|
895e943360 | ||
|
e9563e0f7f | ||
|
fbe8255db6 | ||
|
56e0ee04fc | ||
|
fad37a600e | ||
|
3273183d34 | ||
|
d73a8e0cad | ||
|
19c564ba25 | ||
|
b6828c4312 | ||
|
7647ecb4dd | ||
|
3f8461b769 | ||
|
37e2d4d892 | ||
|
fd7eda15f1 | ||
|
014a347f00 | ||
|
220946ed7d | ||
|
fc86d1323f | ||
|
2a97e9a66e | ||
|
a1f0b89d92 | ||
|
5a1da160a3 | ||
|
c223c876c2 | ||
|
65f799ab2d | ||
|
3661b4e908 | ||
|
a1d7eace9e | ||
|
2ce22483ed | ||
|
45682c32ea | ||
|
052e3d6803 | ||
|
afc970df72 | ||
|
61ededc855 | ||
|
84fcadeb52 | ||
|
9236322963 | ||
|
85673355a5 | ||
|
4c36efa609 | ||
|
130b7826b5 | ||
|
52a86bc677 | ||
|
4fa381d14c | ||
|
e34f0452b4 | ||
|
698418d602 | ||
|
fafbe560fa | ||
|
ea80dca739 | ||
|
6645548caa | ||
|
b87a9004cb | ||
|
158627a97a | ||
|
c4bbd49b46 | ||
|
8511033169 | ||
|
fe100e480d |
21
AUTHORS
21
AUTHORS
@@ -30,3 +30,24 @@ Owen Taylor <otaylor@gtk.org>
|
||||
|
||||
There are many others who have contributed patches; we thank them,
|
||||
GTK+ is much better because of them.
|
||||
|
||||
|
||||
Over time, TK+ has incorporated some pieces of software which
|
||||
started as independent projects. We list the original authors here:
|
||||
|
||||
|
||||
MS-Windows theme engine
|
||||
-----------------------
|
||||
Raymond Penners
|
||||
Dom Lachowicz
|
||||
|
||||
|
||||
Pixbuf theme engine
|
||||
-------------------
|
||||
Owen Taylor
|
||||
|
||||
|
||||
IME input method
|
||||
----------------
|
||||
Takuro Ashie
|
||||
Kazuki IWAMOTO
|
||||
|
4324
ChangeLog.pre-2-10
4324
ChangeLog.pre-2-10
File diff suppressed because it is too large
Load Diff
4085
ChangeLog.pre-2-8
4085
ChangeLog.pre-2-8
File diff suppressed because it is too large
Load Diff
4
INSTALL
4
INSTALL
@@ -18,8 +18,8 @@ GTK+ requires the following packages:
|
||||
Simple install procedure
|
||||
========================
|
||||
|
||||
% gzip -cd gtk+-2.6.7.tar.gz | tar xvf - # unpack the sources
|
||||
% cd gtk+-2.6.7 # change to the toplevel directory
|
||||
% gzip -cd gtk+-2.8.2.tar.gz | tar xvf - # unpack the sources
|
||||
% cd gtk+-2.8.2 # change to the toplevel directory
|
||||
% ./configure # run the `configure' script
|
||||
% make # build GTK
|
||||
[ Become root if necessary ]
|
||||
|
@@ -1,7 +1,7 @@
|
||||
## Makefile.am for GTK+
|
||||
|
||||
SRC_SUBDIRS = gdk-pixbuf gdk gtk modules demos tests contrib
|
||||
SUBDIRS = po po-properties $(SRC_SUBDIRS) docs build m4macros
|
||||
SRC_SUBDIRS = gdk-pixbuf gdk gtk modules demos tests perf contrib
|
||||
SUBDIRS = po po-properties $(SRC_SUBDIRS) docs m4macros
|
||||
|
||||
# require automake 1.4
|
||||
AUTOMAKE_OPTIONS = 1.7
|
||||
|
413
NEWS
413
NEWS
@@ -1,126 +1,315 @@
|
||||
Overview of Changes from GTK+ 2.6.6 to GTK+ 2.6.7
|
||||
Overview of Changes from GTK+ 2.8.1 to GTK+ 2.8.2
|
||||
=================================================
|
||||
* Revert two fixes from 2.6.5 which were causing
|
||||
problems [Crispin Flowerday]
|
||||
* New and updated translations (bg,ja,ko,ca)
|
||||
* Fix a crash with custom icon themes, which affected
|
||||
the gnome-theme-manager. [Kjartan Maraas]
|
||||
* Make sure font and cursor settings are propaged down
|
||||
to the screen initially. [Frederic Crozat]
|
||||
|
||||
Overview of Changes from GTK+ 2.6.5 to GTK+ 2.6.6
|
||||
Overview of Changes from GTK+ 2.8.0 to GTK+ 2.8.1
|
||||
=================================================
|
||||
* Add 16x16 versions for some stock icons [Vincent Noel]
|
||||
* Bug fixes [Tommi Komulainen, Roman Kagan, Ivan Wong,
|
||||
Matthias Clasen, Jakub Jelinek, Arjan van de Ven]
|
||||
* New and improved translations (pl)
|
||||
* gtk-update-icon-cache no longer stores copies of symlinked
|
||||
icons, and it has a --index-only option to omit image data
|
||||
from the cache [Matthias]
|
||||
* Make large GtkSizeGroups more efficient [Michael Natterer]
|
||||
* Improve positioning of menus in GtkToolbar [Christian Persch,
|
||||
Paolo Borelli]
|
||||
* Make scrolling work on unrealized icon views [Jonathan Blandford]
|
||||
* Avoid unnecessary redraws on range widgets [Benjamin Berg]
|
||||
* Make sure that all GTK+ applications reload icon themes
|
||||
promptly. [Chris Lahey]
|
||||
* Ensure that gdk_pango_get_context() and gtk_widget_get_pango_context()
|
||||
use the same font options and dpi value [Michael Reinsch, Owen]
|
||||
* Multiple memory leak fixes [Kjartan Maraas, Matthias]
|
||||
* Other bug fixes [Owen, Allin Cottrell, Tor Lillqvist, Jonathan
|
||||
Blandford, Christian Persch, Jonas Bonn, Brett Atoms, Guillaume
|
||||
Cottenceau, Sebastien Bacher, Robin Green, Benoit Carpentier,
|
||||
Hans Breuer, Kjartan Maraas, Manish Singh, Robert Jeff Mitchell,
|
||||
Markku Vire, Kristian Rietveld, Tommi Komulainen]
|
||||
* Documentation improvements [Olexiy Avramchenko, Matthias]
|
||||
* Updated translations (es,et,hu,ko,lt,ro,uk)
|
||||
|
||||
Overview of Changes from GTK+ 2.6.4 to GTK+ 2.6.5
|
||||
Overview of Changes from GTK+ 2.7.5 to GTK+ 2.8.0
|
||||
=================================================
|
||||
* Fix compilation with gcc 4.0 [Matthias Clasen]
|
||||
* GtkFileChooser
|
||||
- Ellipsize the preview label [Jeroen Zwartepoorte]
|
||||
- The mime code can now use a mmapped cache [Matthias]
|
||||
* GtkTreeView
|
||||
- Don't pop up the entry context menu if the
|
||||
the search entry is not visible [Billy Biggs]
|
||||
- Make enable_search control only typeahead, not
|
||||
C-f search [Sven Neumann]
|
||||
- Allow resetting search-column to -1 [Lorenzo Gil Sanchez]
|
||||
- Make gtk_tree_view_expand_all work [Tristan Van Berkom,
|
||||
Jonathan Blandford]
|
||||
- Make double-click to autosize work again [Matthias,
|
||||
Jonathan]
|
||||
* GtkComboBox, GtkComboBoxEntry
|
||||
- Make gtk_widget_grab_focus() work [Gustavo Carneiro]
|
||||
- gtk_combo_box_get_active_text() now always returns
|
||||
the current text. [Robert Staudinger]
|
||||
* gdk-pixbuf
|
||||
- Use correct update regions when incrementally loading
|
||||
BMP and TGA images [Owen Taylor, David Costanzo]
|
||||
- Support saving BMPs [Ivan Wong]
|
||||
- Bug fixes [Tommi Komulainen, Morten Welinder, David,
|
||||
John Ellis]
|
||||
* Require cairo 0.9.2 [Matthias]
|
||||
+ Extend ABI checks to cover exported variables [Matthias]
|
||||
* Bug fixes [Benjamin Berg, Christian Persch]
|
||||
* Documentation improvements [Matthias]
|
||||
* New and updated translation (cy,de,el,id,te,zh_TW)
|
||||
|
||||
Overview of Changes from GTK+ 2.7.4 to GTK+ 2.7.5
|
||||
=================================================
|
||||
* Rename the default theme to "Raleigh" [Thomas Wood]
|
||||
* Add a permformance testing framework [Federico Mena Quintero]
|
||||
* Catch format errors in translations. This may cause
|
||||
"make check" to fail when using older versions
|
||||
of gettext [Matthias]
|
||||
* Win32
|
||||
- Make big windows work on NT-based Windows [Ivan]
|
||||
- Implement delayed rendering for transferring images
|
||||
through the clipboard [Ivan, Tor]
|
||||
- Add ABI stability wrappers for gdk_pixbuf_save
|
||||
and gdk_pixbuf_savev [Tor]
|
||||
- Build fixes [Hans Breuer, Tor Lillqvist]
|
||||
- Bug fixes [Hans, Tor]
|
||||
* Other bug fixes [Christian Persch, Sven Neumann,
|
||||
Philip Langdale, Tomislav Jonjic, Thomas Leonard,
|
||||
Yury Puzis, Manish Singh, Doug Quale, Ryan Lortie,
|
||||
Kjartan Maraas, Morten, Felipe Heidrich, Paolo
|
||||
Borelli, Jorn Baayen, Hazael Maldonado Torres,
|
||||
Tommi, Stefan Kasal, Billy, Felipe Heidrich,
|
||||
Hans-Wolfgang Loidl, Jacob Kroon, Steven Walter]
|
||||
* Documentation improvements [Johan Dahlin, Matthias,
|
||||
Jianfei Wang, Olivier Sessink, Jon-Kare Hellan, Kristof
|
||||
Vasant, Billy, Worik Stanton, Ken Siersma, Morten]
|
||||
* New and improved translations (ca,cs,cy,da,de,en_CA,
|
||||
en_GB,es,fi,fr,gu,hu,it,lt,nl,pl,pt,pt_BR,ro,ru,rw,sq,
|
||||
sr,sr@Latn,sv,uk,zh_CN,zh_TW)
|
||||
|
||||
Overview of Changes from GTK+ 2.6.3 to GTK+ 2.6.4
|
||||
=================================================
|
||||
* Move a lot of const data to the .rodata section [Matthias Clasen]
|
||||
* Make caching of .icon files work again [Alexander Larsson]
|
||||
* Fix many translations of our single Q_() message
|
||||
to not include the prefix [Christian Persch]
|
||||
|
||||
Overview of Changes from GTK+ 2.6.2 to GTK+ 2.6.3
|
||||
=================================================
|
||||
* GtkAction
|
||||
- Improve the handling of buttons as action
|
||||
proxys [Milosz Derezynski]
|
||||
* gtk_window_present(): Use the timestamp of the last
|
||||
user interaction when focusing the window. [Elijah Newren]
|
||||
* Icon theme
|
||||
- Avoid scaling icons in the file chooser [Vincent Noel]
|
||||
- Make icon theme caching work on ppc64 [Manish Singh]
|
||||
* Win32
|
||||
- Bug fixes [Tor Lillqvist]
|
||||
- Implement the urgency hint [Tor Lillqvist]
|
||||
- Update ms-windows theme [Dom Lachowicz]
|
||||
- Improve tablet handling [Robert Ögren]
|
||||
* Other bug fixes [Rodney Dawes, Tommi Komulainen,
|
||||
Christian Persch, Manish Singh, Billy Biggs, Ben Maurer,
|
||||
Jorn Baayen, Jonathan Blandford, Murray Cumming,
|
||||
Olivier Sessink, Matthias, Gustavo Carneiro, Morten
|
||||
Welinder, Samuel Hym, Doug Morgan, Ivan Wong, Paul
|
||||
Cornett, Sven Neumann, Vincent Untz]
|
||||
* Documentation improvements [Matthias, Torsten Schoenfeld]
|
||||
* New and improved translations (ar,be,bg,ca,cy,el,en_GB,fa,gu,ja,hu,pt_BR,th,uk,xh)
|
||||
- Bug fixes [Kazuki Iwamoto, Tor Lillqvist, Tim Evans,
|
||||
J. Ali Harlow, Hans Breuer]
|
||||
* Other bug fixes [Callum McKenzie, Matthias, Kjartan Maraas,
|
||||
Elijah Newren, Morten Welinder, Owen Taylor, Johan Dahlin,
|
||||
Peter Zelezny, Dan Winship, Damien Carbery, Alex Graveley,
|
||||
Mike Morrison, David Odin]
|
||||
* Documentation improvements [Fabrice Bauzac, Claudio Saavedra,
|
||||
Federico Mena Quintero]
|
||||
* New and updated translation (ar,bg,cs,de,fi,gu,ja,nb,nl,no,
|
||||
pl,pt,sq,zh_CN,zh_TW)
|
||||
|
||||
Overview of Changes from GTK+ 2.6.1 to GTK+ 2.6.2
|
||||
Overview of Changes from GTK+ 2.7.3 to GTK+ 2.7.4
|
||||
=================================================
|
||||
* Speed up size allocation of labels, progress bars and
|
||||
text cell renderers [Anders Carlsson]
|
||||
* Add a --quiet option to gtk-update-icon-cache [Matthias]
|
||||
* Make svg icon themes work better [Matthias]
|
||||
* GtkPlug/GtkSocket: Make these cross-platform
|
||||
and implement them for Win32 [Tor]
|
||||
* Make font rendering xsettings work with pangocairo [Owen]
|
||||
* Fix sporadic segfaults in the GtkTreeModelSort [James
|
||||
Bramford, Markku Vire, Kristian Rietveld]
|
||||
* Improve gdk-pixbuf's ability to recognize
|
||||
svg images. [William Jon McCann]
|
||||
* Win32
|
||||
- Build fixes [Tor Lillqvist]
|
||||
- Fix clipping issues [Robert Ögren]
|
||||
- Bug fixes [Peter Zelezny]
|
||||
* Other bug fixes [Christian Persch, Arkady L. Shane,
|
||||
Matthias, Tommi Komulainen, Alexander Larsson, Owen,
|
||||
Thomas Vander Stichele, Robert Ögren]
|
||||
* Documentation improvements [Steve Chaplin, Matthias,
|
||||
Federico Mena Quintero]
|
||||
* New and updated translations (en_CA,fr,hy,lt,nl,sk,th,zh_CN)
|
||||
|
||||
Overview of Changes from GTK+ 2.7.2 to GTK+ 2.7.3
|
||||
=================================================
|
||||
* Make sure that gtk_window_present() moves the window to the
|
||||
current desktop [Elijah Newren]
|
||||
* GtkFileChooser
|
||||
- Bug fixes [Federico Mena Quintero]
|
||||
- Don't overwrite the contents of the name entry
|
||||
when changing folders in save mode. [Federico]
|
||||
- Don't return nonexisting folders in save mode [Jean Marie Favreau]
|
||||
- Fix a size allocation loop [Milosz Derezynski, Robert Ögren]
|
||||
* GtkAboutDialog
|
||||
- Better HIG compliance [Jorn Baayen]
|
||||
* GDK
|
||||
- Work with Xservers implementing old versions
|
||||
of the Render extension [Albert Chin]
|
||||
- Respect _NET_VIRTUAL_ROOTS [Carsten Haitzler]
|
||||
- Add overwrite confirmation for SAVE mode [Federico Mena Quintero]
|
||||
* GtkTreeView
|
||||
- Add gtk_tree_view_get_visible_range() [Mikael Hallendal]
|
||||
- Add gtk_tree_view_column_queue_resize() [Morten Welinder]
|
||||
- Add gtk_tree_row_reference_get_model() [Stefan Kost]
|
||||
- Make page up/down behave as in the text view [Owen Taylor]
|
||||
- In typeahead search, allow Ctrl-G to move to the
|
||||
next match. [Matt T. Proud]
|
||||
- Interpret Ctrl-Backspace as "Move focus to parent [Kathy
|
||||
Fernandes]
|
||||
- Speed up gtk_tree_selection_selected_foreach [Kristian Rietveld]
|
||||
* GtkTextView
|
||||
- Make double-clicking between words select whitespace [Mike
|
||||
Miller, Paolo Borelli]
|
||||
- Show dragged text in drag icon [Kevin Duffus, Carlos
|
||||
Garnacho Parro]
|
||||
- Make invisible text work well enough to remove the
|
||||
remove the warning about it being unsupported. [Matthias]
|
||||
* GtkEntry
|
||||
- Make double-clicking between words select whitespace [Matthias]
|
||||
- Show dragged text in drag icon [Kevin Duffus, Carlos Garnacho Parro]
|
||||
- Fix the sizing of the entry completion popup [Ross Burton, Kris]
|
||||
* Win32
|
||||
- Bug fixes [Tor Lillqvist, Ivan Wong, David Neary, Daniel Atallah,
|
||||
Takuro Ashie]
|
||||
- Make keyboard input work in Indic languages [Tor]
|
||||
- Initialize extended input devices lazily [Robert Ögren]
|
||||
* Other bug fixes [Owen Taylor, Richard Hult, Phil Blundell,
|
||||
Jens Finke, Michael Natterer, Manish Singh, Kjartan Maraas,
|
||||
Priit Laes, Dennis Cranston, Remus Draica, Matthias,
|
||||
Jeff Franks, Elijah Newren, Damon Chaplin, Vincent Ladeuil,
|
||||
Carlos Garnacho Parro, Thomas Zajic, Crispin Flowerday,
|
||||
Tommi Komulainen, Søren Sandmann, Chris Lee, Mark McLoughlin]
|
||||
* Documentation improvements [Murray Cumming, Matthias, Alex Graveley,
|
||||
Jeff Franks, Christian Rose, Masao Mutoh, Karel Kulhavy, Roger
|
||||
Light]
|
||||
* New and improved translations (bg,ca,cs,cy,da,de,el,en_CA,es,et,hu,it,
|
||||
ja,ko,lt,nb,nl,nn,no,pl,pt,pt_BR,sk,sq,sv,zh_CN)
|
||||
- Build fixes [Tor Lillqvist]
|
||||
- Fix handlink of Aiptek tablets [Robert Ögren]
|
||||
* Bug fixes [Kris, Jorn Baayen, Billy Biggs, Tomislav Jonjic,
|
||||
Owen Taylor, Vincent Noel, Carlos Garnacho Parro, Mark McLoughlin.
|
||||
Mikael Magnusson, Luis Villa, Brian Bober, Bernd Demian, Manish
|
||||
Singh, Akira Tagoh, Barbie LeVille, Hans Oesterholt]
|
||||
* Documentation improvements [Torsten Schoenfeld, Rodney Dawes,
|
||||
Park Ji-In]
|
||||
* New and updated translations (cs,es,et,he,hu,nb,nl,no,sk)
|
||||
|
||||
Overview of Changes from GTK+ 2.7.1 to GTK+ 2.7.2
|
||||
=================================================
|
||||
* GtkAboutDialog
|
||||
- Clean up the "trail" in the path bar when set_current_folder
|
||||
is called explicitly [Jonathan Blandford, Matthias Clasen]
|
||||
- Accept dropped files and directories on the file list [Sven
|
||||
Neumann, Matthias]
|
||||
* GtkTreeView
|
||||
- Make reusing cell renders work as well as it did in 2.6,
|
||||
but document it as being unsupported. [Kristian Rietveld]
|
||||
* GtkAboutDialog
|
||||
- Optionally wrap the license [Christian Rose, Christian Persch]
|
||||
* Menu
|
||||
- Make image menu items work in vertical menubars [Matthias]
|
||||
- Make orientation changes of menubars work [Matthias]
|
||||
* Win32
|
||||
- Implement named cursors and other new GDK apis [Hans Breuer]
|
||||
- Implement getting cursor images [Tor Lillqvist]
|
||||
* Bug fixes [J. Ali Harlow, Matthias, Diego Gonzalez,
|
||||
Kazuki IWAMOTO, Paul Cornett, Sebastien Bacher, Tor]
|
||||
* Documentation improvements [Benjamin Berg, Matthias,
|
||||
Steve Chaplin, Peter van den Bosch, Tim-Philipp Müller]
|
||||
* New and updated translations (en_CA,sr,sr@Latn)
|
||||
|
||||
Overview of Changes from GTK+ 2.7.0 to GTK+ 2.7.1
|
||||
=================================================
|
||||
* GtkTreeView
|
||||
- Change the keynav for header reordering and resizing
|
||||
to Alt-arrows and Shift-Alt-arrows [Calum Benson]
|
||||
* GtkTextView
|
||||
- Make movement by paragraphs up/down symmetric [Behnam
|
||||
Esfahbod]
|
||||
- Improve invisible text support [Matthias Clasen]
|
||||
* Some new stock items: GTK_STOCK_INFO, GTK_STOCK_FULLSCREEN,
|
||||
GTK_STOCK_LEAVE_FULLSCREEN [Kristof Vansant]
|
||||
* Handle broken grabs in many places [John Ehresman, Matthias]
|
||||
* GDK
|
||||
- Add a function to move a region [Søren Sandmann]
|
||||
- Fix endianness issues in the pixbuf drawing
|
||||
code [David Zeuthen, Owen Taylor]
|
||||
- Add a GrabBroken event that is emitted when grabs
|
||||
are broken [Simon Cooke, John Ehresman, Matthias]
|
||||
- Track implicit grabs [Matthias]
|
||||
* Win32
|
||||
- Improve and simplify line segment rendering [Tor Lillqvist]
|
||||
* Bug fixes [Georg Schwarz, Fabricio Barros Cabral,
|
||||
Benoit Carpentier, Markku Vire, Ryan Lortie, Matthias,
|
||||
Morten Welinder, Dan Winship, Manish Singh, Tom von
|
||||
Schwerdtner, Kjartan Maraas, Euan MacGregor, William Jon
|
||||
McCann, David Saxton, Padraig Brady]
|
||||
* Documentation improvements [Matthias, Ross Burton]
|
||||
* New and improved translations (es,et,nl,sk,th,zh_TW)
|
||||
|
||||
Overview of Changes from GTK+ 2.6.x to GTK+ 2.7.0
|
||||
=================================================
|
||||
* GtkTreeView
|
||||
- Kris is back !!!
|
||||
- Lots of scrolling/validation fixes [Kristian Rietveld]
|
||||
- Allow to "unsort" columns. [Richard Hult]
|
||||
- Support wrapping in GtkCellRendererText [Matthias Clasen]
|
||||
- Support tinting in GtkCellRendererPixbuf [Jorn Baayen]
|
||||
- Make enable-search control only typeahead search,
|
||||
not C-f search. [Sven Neumann]
|
||||
- Make double-click autosize treeview columns again [Matthias]
|
||||
- Fix insensitive appearance [Billy Biggs, Matthias]
|
||||
* GtkFileChooser
|
||||
- Don't select the first item in folder modes [Christian Neumair,
|
||||
Federico Mena Quintero]
|
||||
- Make save mode work again [Federico]
|
||||
- Allow bookmarks to be renamed [Sean Middleditch]
|
||||
- Ellipsize the preview label [Jeroen Zwartepoorte]
|
||||
- Use smaller icons [Vincent Noel]
|
||||
- Avoid a size allocation loop [Milosz Derzynski, Robert Ögren]
|
||||
- Don't stat children of /afs or /net network directories [Federico]
|
||||
- Improve sorting of filenames [Matthias]
|
||||
- Treat backup files like hidden files, and support
|
||||
.hidden files in the Unix backend [Sean Middleditch, Jan Arne Petersen]
|
||||
- Improve the re-rooting behaviour of the path bar [Benjamin Otte]
|
||||
* GtkIconView
|
||||
- Many fixes for scrolling and selection handling [Mathias Hasselmann]
|
||||
- Implement GtkCellLayout, use cell renderers [Matthias]
|
||||
- Support editing [Matthias]
|
||||
- Support DND [Matthias]
|
||||
- Add API to determine the visible part of the
|
||||
model [Jonathan Blandford]
|
||||
* GtkAboutDialog
|
||||
- Visual improvements, HIG compliance [Jorn Baayen]
|
||||
* GtkCalendar
|
||||
- Use nl_langinfo() to determine the first day of week,
|
||||
when it is available [Vincent Untz, Tommi Komulainen, Pierre Ossman]
|
||||
- Allow localization of the year format [Paisa Seeluangsawat]
|
||||
* GtkEntry
|
||||
- Allow completion popups to be wider than the entry [Ross Burton]
|
||||
- Add a property to suppress the popup for single matches [Matthias]
|
||||
- Don't blink the cursor if not editable [Nikos Kouremenos]
|
||||
* GtkTextView
|
||||
- Add a GtkTextBuffer::text property [Johan Dahlin]
|
||||
- Allow to set a paragraph background color [Gustavo Carneiro,
|
||||
Jeroen Zwartepoorte]
|
||||
- Don't blink the cursor if not editable [Nikos Kouremenos]
|
||||
- Make invisible text work a bit better [Jeroen]
|
||||
* GtkAlignment
|
||||
- Flip padding in RTL mode [Maciej Katafiasz]
|
||||
* GtkUIManager
|
||||
- Support invisible, expanding separators [Christian Persch]
|
||||
- Allow to construct menu tool buttons [Sven Neumann]
|
||||
* GtkIconCache
|
||||
- Cache image data and metadata as well [Anders Carlsson]
|
||||
* GtkMenu
|
||||
- Support vertical menubars [Matthias]
|
||||
- Make scrolling more efficient [Jorn Baayen, Søren Sandmann]
|
||||
- Allow to pop up menus without grabbing the keyboard [Michael
|
||||
Natterer]
|
||||
- Allow setting background images on menus [Benjamin Otte]
|
||||
* gtk-demo
|
||||
- Add demos for 2.6 features [Matthias, Mark McLoughlin]
|
||||
* Allow custom translation function for stock labels. [Funda Wang,
|
||||
Diego Gonzalez]
|
||||
* Add 16x16 versions for some some icons which were missing
|
||||
them [Jakub Steiner, Tuomas Kuosmanen, Vincent Noel]
|
||||
* Move a lot of constant data to the .rodata section [Matthias]
|
||||
* Don't copy property names, nicks and blurbs [Matthias]
|
||||
* Use Cairo for most drawing [Owen Taylor]
|
||||
* Allow themes to draw outside the widget's allocation [Owen]
|
||||
* Allow key names to be translated [Christian Rose]
|
||||
* Make all cursors used by GTK+ themeable [Matthias]
|
||||
* Support the ICCCM urgency hint [Havoc Pennington]
|
||||
* GDK
|
||||
- Work with XRender < 0.4 [Albert Chin, Billy Biggs]
|
||||
- Add API to warp the pointer [Matthias]
|
||||
- Support _NET_VIRTUAL_ROOTS [Carsten Haitzler]
|
||||
- Add API to obtain the last user interaction time [Elijah
|
||||
Newren]
|
||||
- Make some large arrays const [Ben Maurer, Tommi Komulainen]
|
||||
- Support Cairo drawing [Owen, Carl Worth]
|
||||
- Support Visuals with alpha channel [Owen, Keith Packard]
|
||||
- Support named cursors and cursor themes [Matthias]
|
||||
* gdk-pixbuf
|
||||
- Support saving BMP [Ivan Wong Yat Cheung]
|
||||
- Allow to specify compression level when saving
|
||||
in PNG format [Sven Neumann]
|
||||
- Add a way to construct animations from frames [Dom Lachowicz]
|
||||
- Accept BMP v4 [Matthias]
|
||||
* Win32 changes
|
||||
- Improve keyboard handling [Tor Lillqvist]
|
||||
- Improve clipboard handling [Ivan Wong]
|
||||
- Do delayed rendering for transfering images
|
||||
through the clipboard [Ivan Wong]
|
||||
- Improve tablet handling [Robert Ögren]
|
||||
- Initialize input devices lazily [Robert Ögren]
|
||||
- Make big windows work on NT [Ivan Wong]
|
||||
- Implement dashed lines correctly [Ivan Wong, Hans Breuer]
|
||||
- Handle 16 color display mode [Tor]
|
||||
- Support RGBA cursors [Tim Evans]
|
||||
- Fix DND on multi-monitor systems [Tor]
|
||||
- Use alternative button order [Tor]
|
||||
- Build fixes [Hans]
|
||||
- Bug fixes [Ivan Wong, Dave Neary, Daniel Atallah, Takuro Ashie,
|
||||
Robert Ögren, Kevin Stange, Tim Evans]
|
||||
* Other bug fixes [Alexander Hunziker, Alexander Larsson, Anders
|
||||
Carlsson, Andreas Volz, Arjan van de Ven, Billy Biggs, Chris Lee,
|
||||
Christian Neumair, Christian Persch, Crispin Flowerday, Damon Chaplin,
|
||||
David A. Knight, David Costanzo, Dennis Cranston, Diego Gonzalez,
|
||||
Dom Lachowicz, Doug Morgan, Doug Quale, Elijah Newren, Fabricio Barros
|
||||
Cabral, Federico, Felipe Heidrich, Felix Riemann, Frank Naumann,
|
||||
Frederic Crozat, Gary Kramlich, Gustavo Carneiro, Hans-Wolfgang Loidl,
|
||||
Havoc, Hazael Maldonado Torres, Ian Wienand, Ismael Juma, Jaap A. Haitsma,
|
||||
Jacob Kroon, Jakub Jellinek, Jean Marie Favreau, Jeff Franks, Jens Finke,
|
||||
Jim Evins, Joerg Sonnenberger, John Ellis, John Finlay, Jonathan,
|
||||
Jorn Baayen, Kazuki Iwamoto, Kirk Bridger, Kjartan Maraas, Leonard
|
||||
Michlmayr, Lorenzo Gil Sanchez, Manish Singh, Marc Meissner, Matthias,
|
||||
Michael Natterer, Mikael Hallendal, Milosz Derezynski, Morten Welinder,
|
||||
Murray Cumming, Nickolay V. Shmyrev, Niko Tyni, Nguyen Thai Ngoc Duy,
|
||||
Olaf Vitters, Olivier Sessink, Owen, Paolo Borelli, Patrick Fimml,
|
||||
Peter Bloomfield, Peter Wainwright, Phil Blundell, Philipp Langdale,
|
||||
Priit Laes, Reinout van Schouwen, Remus Draica, Richard Hult, Robert
|
||||
Staudinger, Rodney Dawes, Rodrigo Moya, Roman Kagan, Ryan Lortie,
|
||||
Samuel Hym, Seven Walter, Søren, Stefan Kost, Stepan Kasal,
|
||||
Stephen Kennedy, Sven Neumann, Theerud Lawtrakul, Thomas Leonard,
|
||||
Thomas Zajic, Tim-Philipp Müller, Tomislav Jonjic, Tommi Komulainen,
|
||||
Torsten Schoenfeld, Tristan Van Berkom, Victor Osadci, Vincent Ladeuil,
|
||||
Vincent Noel, Vincent Untz, Yury Puzis]
|
||||
* Documentation improvements [Alex Graveley, Ali Akcaagac, Bill
|
||||
Haneman, Billy Biggs, Christian Persch, Christian Rose, Dan Winship,
|
||||
George Kraft IV, Ghorban M. Tavakoly, Hubert Sokolowski, Jeff Franks,
|
||||
Jianfei Wang, Johan Dahlin, Jon-Kare Hellan, Karel Kulhavy, Ken
|
||||
Siersma, Maciej Katafiasz, Masao Mutoh, Mathias Hasselmann, Matthias,
|
||||
Michal Suchanek, Morten Welinder, Murray Cumming, Oliver Sessink, Owen,
|
||||
Richard Hult, Roger Light, Sebastian Bacher, Steve Chaplin, Sven Neumann,
|
||||
Torsten Schoenfeld, Vincent Untz, Worik Stanton]
|
||||
* New and improved translations (bg,ca,cs,cy,da,de,el,en_CA,en_GB,es,et,
|
||||
eu,fa,fi,hu,id,ja,nb,ne,nl,nn,no,pl,pt,pt_BR,ro,ru,rw,sk,sq,sr,sr@Latn,
|
||||
sv,th,uk,vi,xh,zh_CN,zh_TW)
|
||||
|
||||
Overview of Changes from GTK+ 2.6.0 to GTK+ 2.6.1
|
||||
=================================================
|
||||
|
2
README
2
README
@@ -1,7 +1,7 @@
|
||||
General Information
|
||||
===================
|
||||
|
||||
This is GTK+ version 2.6.7. GTK+ is a multi-platform toolkit for
|
||||
This is GTK+ version 2.8.2. GTK+ is a multi-platform toolkit for
|
||||
creating graphical user interfaces. Offering a complete set of widgets,
|
||||
GTK+ is suitable for projects ranging from small one-off projects to
|
||||
complete application suites.
|
||||
|
@@ -28,7 +28,7 @@ to ask people commiting to GTK+ to follow a few rules:
|
||||
2) There must be a ChangeLog for every commit. (If you discover that
|
||||
you only committed half the files you meant to and need to fix that
|
||||
up, or something, you don't need a new ChangeLog entry. But in general,
|
||||
ChangeLog entries are mandatory.) Changes with out ChangeLog entries
|
||||
ChangeLog entries are mandatory.) Changes without ChangeLog entries
|
||||
will be reverted.
|
||||
|
||||
3) There _must_ be a ChangeLog for every commit.
|
||||
@@ -38,7 +38,7 @@ Notes:
|
||||
* If you are going to be changing many files in an experimental fashion,
|
||||
it probably is a good idea to create a separate branch for your changes.
|
||||
|
||||
* The ChangeLog entries should preferrably match in date format
|
||||
* The ChangeLog entries should preferably match in date format
|
||||
with the existing entries. You can set how emacs does this
|
||||
by using customize mode:
|
||||
|
||||
|
22
README.in
22
README.in
@@ -25,6 +25,28 @@ Installation
|
||||
|
||||
See the file 'INSTALL'
|
||||
|
||||
Release notes for 2.10
|
||||
======================
|
||||
|
||||
* The hexadecimal Unicode input feature has been reworked. It no longer
|
||||
blocks the use of the sixteen Ctrl-Shift-<hex digit> key sequences. Now
|
||||
it only uses Ctrl-Shift-u.
|
||||
|
||||
* A memory leak in GtkStyle handling has been fixed. This may expose bugs
|
||||
in third-party widgets which forget to call gtk_style_attach() in their
|
||||
realize functions.
|
||||
|
||||
* Range widgets like GtkScrollbar now render their arrows insensitive
|
||||
when the slider is at the end. Applications which react to arrow
|
||||
clicks even if the slider is at the end may want to use the new
|
||||
gtk_range_set_[upper/lower]_stepper_sensitivity() functions to
|
||||
prevent the arrows from being rendered insensitive.
|
||||
|
||||
* GtkObject now uses the "floating reference" support in GObject.
|
||||
GTK_OBJECT_IS_FLOATING() will still work, but direct checking
|
||||
of the GTK_FLOATING flag will no longer detect the floating
|
||||
reference.
|
||||
|
||||
Release notes
|
||||
=============
|
||||
|
||||
|
@@ -31,13 +31,15 @@
|
||||
/* #undef HAVE_STPCPY */
|
||||
/* #undef HAVE_XSHM_H */
|
||||
/* #undef HAVE_SHAPE_EXT */
|
||||
/* #undef HAVE_SOLARIS_XINERAMA */
|
||||
/* #undef HAVE_SYS_SELECT_H */
|
||||
#ifndef _MSC_VER
|
||||
#define HAVE_SYS_TIME_H 1
|
||||
#else /* _MSC_VER */
|
||||
/* #undef HAVE_SYS_TIME_H */
|
||||
#endif /* _MSC_VER */
|
||||
#define HAVE_WINSOCK_H 1
|
||||
/* #undef HAVE_XFREE_XINERAMA */
|
||||
/* #undef HAVE_XINERAMA */
|
||||
#define HAVE_WINTAB 1
|
||||
/* #undef HAVE_XCONVERTCASE */
|
||||
/* #undef HAVE_XFT */
|
||||
@@ -53,9 +55,6 @@
|
||||
#define USE_MMX 1
|
||||
#endif
|
||||
|
||||
/* Define to use X11R6 additions to XIM */
|
||||
/* #undef USE_X11R6_XIM */
|
||||
|
||||
/* Define to use XKB extension */
|
||||
/* #undef HAVE_XKB */
|
||||
|
||||
@@ -86,204 +85,184 @@
|
||||
The entries are in sort -df order: alphabetical, case insensitive,
|
||||
ignoring punctuation (such as underscores). */
|
||||
|
||||
/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP
|
||||
systems. This function is required for `alloca.c' support on those systems.
|
||||
*/
|
||||
/* #undef CRAY_STACKSEG_END */
|
||||
|
||||
/* Define if using `alloca.c'. */
|
||||
/* #undef C_ALLOCA */
|
||||
|
||||
/* always defined to indicate that i18n is enabled */
|
||||
#define ENABLE_NLS 1
|
||||
|
||||
/* Define if you have `alloca', as a function or macro. */
|
||||
#define HAVE_ALLOCA 1
|
||||
/* Define the location where the catalogs will be installed */
|
||||
#define GTK_LOCALEDIR "UNUSED"
|
||||
|
||||
/* Define if you have <alloca.h> and it should be used (not on Ultrix). */
|
||||
/* #undef HAVE_ALLOCA_H */
|
||||
|
||||
/* Define if you have the <argz.h> header file. */
|
||||
/* #undef HAVE_ARGZ_H */
|
||||
|
||||
/* Define if you have the `bind_textdomain_codeset' function. */
|
||||
/* #undef HAVE_BIND_TEXTDOMAIN_CODESET */
|
||||
/* Define to 1 if you have the `bind_textdomain_codeset' function. */
|
||||
#define HAVE_BIND_TEXTDOMAIN_CODESET 1
|
||||
|
||||
/* Is the wctype implementation broken */
|
||||
/* #undef HAVE_BROKEN_WCTYPE */
|
||||
|
||||
/* Define if you have the `dcgettext' function. */
|
||||
/* Define to 1 if you have the `dcgettext' function. */
|
||||
#define HAVE_DCGETTEXT 1
|
||||
|
||||
/* Define if you have the <dlfcn.h> header file. */
|
||||
/* Define to 1 if you have the <dlfcn.h> header file. */
|
||||
/* #undef HAVE_DLFCN_H */
|
||||
|
||||
/* Define if you have the `getcwd' function. */
|
||||
#define HAVE_GETCWD 1
|
||||
/* Define to 1 if you have the `flockfile' function. */
|
||||
/* #undef HAVE_FLOCKFILE */
|
||||
|
||||
/* Define if you have the `getpagesize' function. */
|
||||
/* Define to 1 if you have the `getpagesize' function. */
|
||||
#ifndef _MSC_VER
|
||||
#define HAVE_GETPAGESIZE 1
|
||||
#else /* _MSC_VER */
|
||||
/* #undef HAVE_GETPAGESIZE */
|
||||
#endif /* _MSC_VER */
|
||||
|
||||
/* Define if you have the `getresuid' function. */
|
||||
/* Define to 1 if you have the `getresuid' function. */
|
||||
/* #undef HAVE_GETRESUID */
|
||||
|
||||
/* Define if the GNU gettext() function is already present or preinstalled. */
|
||||
#define HAVE_GETTEXT 1
|
||||
|
||||
/* Define if you have the <inttypes.h> header file. */
|
||||
/* Define to 1 if you have the <inttypes.h> header file. */
|
||||
#ifndef _MSC_VER
|
||||
#define HAVE_INTTYPES_H 1
|
||||
#else /* _MSC_VER */
|
||||
/* #undef HAVE_INTTYPES_H */
|
||||
#endif /* _MSC_VER */
|
||||
|
||||
/* Define if your <locale.h> file defines LC_MESSAGES. */
|
||||
/* #undef HAVE_LC_MESSAGES */
|
||||
|
||||
/* Define if you have the <limits.h> header file. */
|
||||
#define HAVE_LIMITS_H 1
|
||||
|
||||
/* Define if you have the <locale.h> header file. */
|
||||
/* Define to 1 if you have the <locale.h> header file. */
|
||||
#define HAVE_LOCALE_H 1
|
||||
|
||||
/* Define if you have the `lstat' function. */
|
||||
/* Define to 1 if you have the `lstat' function. */
|
||||
/* #undef HAVE_LSTAT */
|
||||
|
||||
/* Define if you have the <malloc.h> header file. */
|
||||
#define HAVE_MALLOC_H 1
|
||||
/* Define to 1 if you have the `mallinfo' function. */
|
||||
/* #undef HAVE_MALLINFO */
|
||||
|
||||
/* Define if you have the <memory.h> header file. */
|
||||
/* Define to 1 if you have the <memory.h> header file. */
|
||||
#define HAVE_MEMORY_H 1
|
||||
|
||||
/* Define if you have the `mkstemp' function. */
|
||||
/* Define to 1 if you have the `mkstemp' function. */
|
||||
/* #undef HAVE_MKSTEMP */
|
||||
|
||||
/* Define if you have a working `mmap' system call. */
|
||||
/* Define to 1 if you have a working `mmap' system call. */
|
||||
/* #undef HAVE_MMAP */
|
||||
|
||||
/* Define if you have the `munmap' function. */
|
||||
/* #undef HAVE_MUNMAP */
|
||||
|
||||
/* Define if you have the <nl_types.h> header file. */
|
||||
/* #undef HAVE_NL_TYPES_H */
|
||||
|
||||
/* Define if you have the `putenv' function. */
|
||||
#define HAVE_PUTENV 1
|
||||
|
||||
/* Define if you have the <pwd.h> header file. */
|
||||
/* Define to 1 if you have the <pwd.h> header file. */
|
||||
/* #undef HAVE_PWD_H */
|
||||
|
||||
/* Define if you have the `setenv' function. */
|
||||
/* #undef HAVE_SETENV */
|
||||
/* Have the Xrandr extension library */
|
||||
/* #undef HAVE_RANDR */
|
||||
|
||||
/* Define if you have the `setlocale' function. */
|
||||
#define HAVE_SETLOCALE 1
|
||||
|
||||
/* Define if you have the <stdint.h> header file. */
|
||||
/* Define to 1 if you have the <stdint.h> header file. */
|
||||
#ifndef _MSC_VER
|
||||
#define HAVE_STDINT_H 1
|
||||
#else /* _MSC_VER */
|
||||
/* #undef HAVE_STDINT_H */
|
||||
#endif /* _MSC_VER */
|
||||
|
||||
/* Define if you have the <stdlib.h> header file. */
|
||||
/* Define to 1 if you have the <stdlib.h> header file. */
|
||||
#define HAVE_STDLIB_H 1
|
||||
|
||||
/* Define if you have the `strcasecmp' function. */
|
||||
#ifndef _MSC_VER
|
||||
#define HAVE_STRCASECMP 1
|
||||
#else /* _MSC_VER */
|
||||
/* #undef HAVE_STRCASECMP */
|
||||
#endif /* _MSC_VER */
|
||||
|
||||
/* Define if you have the `strchr' function. */
|
||||
#define HAVE_STRCHR 1
|
||||
|
||||
/* Define if you have the `strdup' function. */
|
||||
#define HAVE_STRDUP 1
|
||||
|
||||
/* Define if you have the <strings.h> header file. */
|
||||
/* Define to 1 if you have the <strings.h> header file. */
|
||||
/* #undef HAVE_STRINGS_H */
|
||||
|
||||
/* Define if you have the <string.h> header file. */
|
||||
/* Define to 1 if you have the <string.h> header file. */
|
||||
#define HAVE_STRING_H 1
|
||||
|
||||
/* Define if you have the <sys/param.h> header file. */
|
||||
/* #undef HAVE_SYS_PARAM_H */
|
||||
|
||||
/* Define if you have the <sys/stat.h> header file. */
|
||||
/* Define to 1 if you have the <sys/stat.h> header file. */
|
||||
#define HAVE_SYS_STAT_H 1
|
||||
|
||||
/* Define if you have the <sys/time.h> header file. */
|
||||
/* Define to 1 if you have the <sys/time.h> header file. */
|
||||
#ifndef _MSC_VER
|
||||
#define HAVE_SYS_TIME_H 1
|
||||
#else /* _MSC_VER */
|
||||
/* #undef HAVE_SYS_TIME_H */
|
||||
#endif /* _MSC_VER */
|
||||
|
||||
/* Define if you have the <sys/types.h> header file. */
|
||||
/* Define to 1 if you have the <sys/types.h> header file. */
|
||||
#define HAVE_SYS_TYPES_H 1
|
||||
|
||||
/* Define if you have <sys/wait.h> that is POSIX.1 compatible. */
|
||||
/* Define to 1 if you have <sys/wait.h> that is POSIX.1 compatible. */
|
||||
/* #undef HAVE_SYS_WAIT_H */
|
||||
|
||||
/* Define if you have the <unistd.h> header file. */
|
||||
/* Define to 1 if you have the <unistd.h> header file. */
|
||||
#ifndef _MSC_VER
|
||||
#define HAVE_UNISTD_H 1
|
||||
#else /* _MSC_VER */
|
||||
/* #undef HAVE_UNISTD_H */
|
||||
#endif /* _MSC_VER */
|
||||
|
||||
/* Have uxtheme.h include file */
|
||||
#define HAVE_UXTHEME_H 1
|
||||
|
||||
/* Have wchar.h include file */
|
||||
#define HAVE_WCHAR_H 1
|
||||
|
||||
/* Have wctype.h include file */
|
||||
#define HAVE_WCTYPE_H 1
|
||||
|
||||
/* Define if you have the <winsock.h> header file. */
|
||||
#define HAVE_WINSOCK_H 1
|
||||
/* Define if we have X11R6 */
|
||||
/* #undef HAVE_X11R6 */
|
||||
|
||||
/* Define if you have the `__argz_count' function. */
|
||||
/* #undef HAVE___ARGZ_COUNT */
|
||||
/* Define to 1 if you have the `XConvertCase' function. */
|
||||
/* #undef HAVE_XCONVERTCASE */
|
||||
|
||||
/* Define if you have the `__argz_next' function. */
|
||||
/* #undef HAVE___ARGZ_NEXT */
|
||||
/* Have the Xcursor library */
|
||||
/* #undef HAVE_XCURSOR */
|
||||
|
||||
/* Define if you have the `__argz_stringify' function. */
|
||||
/* #undef HAVE___ARGZ_STRINGIFY */
|
||||
/* Have the XFIXES X extension */
|
||||
/* #undef HAVE_XFIXES */
|
||||
|
||||
/* Define to 1 if you have the `XInternAtoms' function. */
|
||||
/* #undef HAVE_XINTERNATOMS */
|
||||
|
||||
/* Have the SYNC extension library */
|
||||
/* #undef HAVE_XSYNC */
|
||||
|
||||
/* Define if _NL_TIME_FIRST_WEEKDAY is available */
|
||||
/* #undef HAVE__NL_TIME_FIRST_WEEKDAY */
|
||||
|
||||
/* Define if <X11/extensions/XIproto.h> needed for xReply */
|
||||
/* #undef NEED_XIPROTO_H_FOR_XREPLY */
|
||||
|
||||
/* Define to the address where bug reports for this package should be sent. */
|
||||
#define PACKAGE_BUGREPORT "http://bugzilla.gnome.org/enter_bug.cgi?product=gtk%2B"
|
||||
|
||||
/* Define to the full name of this package. */
|
||||
#define PACKAGE_NAME "gtk+"
|
||||
|
||||
/* Define to the full name and version of this package. */
|
||||
#define PACKAGE_STRING "gtk+ 2.9.0"
|
||||
|
||||
/* Define to the one symbol short name of this package. */
|
||||
#define PACKAGE_TARNAME "gtk+"
|
||||
|
||||
/* Define to the version of this package. */
|
||||
#define PACKAGE_VERSION "@GTK_MAJOR_VERSION@.@GTK_MINOR_VERSION@.@GTK_MICRO_VERSION@"
|
||||
|
||||
/* Define as the return type of signal handlers (`int' or `void'). */
|
||||
#define RETSIGTYPE void
|
||||
|
||||
/* If using the C implementation of alloca, define if you know the
|
||||
direction of stack growth for your system; otherwise it will be
|
||||
automatically deduced at run-time.
|
||||
STACK_DIRECTION > 0 => grows toward higher addresses
|
||||
STACK_DIRECTION < 0 => grows toward lower addresses
|
||||
STACK_DIRECTION = 0 => direction of growth unknown */
|
||||
/* #undef STACK_DIRECTION */
|
||||
|
||||
/* Define if you have the ANSI C header files. */
|
||||
/* Define to 1 if you have the ANSI C header files. */
|
||||
#define STDC_HEADERS 1
|
||||
|
||||
/* Define if the X Window System is missing or not being used. */
|
||||
/* Whether to load modules via .la files rather than directly */
|
||||
/* #undef USE_LA_MODULES */
|
||||
|
||||
/* Define to 1 if the X Window System is missing or not being used. */
|
||||
/* #undef X_DISPLAY_MISSING */
|
||||
|
||||
/* Number of bits in a file offset, on hosts where this is settable. */
|
||||
/* #undef _FILE_OFFSET_BITS */
|
||||
|
||||
/* Define for large files, on AIX-style hosts. */
|
||||
/* #undef _LARGE_FILES */
|
||||
|
||||
/* Define to empty if `const' does not conform to ANSI C. */
|
||||
/* #undef const */
|
||||
|
||||
/* Define to `int' if <sys/types.h> doesn't define. */
|
||||
#define gid_t int
|
||||
|
||||
/* Define as `__inline' if that's what the C compiler calls it, or to nothing
|
||||
if it is not supported. */
|
||||
/* #undef inline */
|
||||
|
||||
/* Define to `long' if <sys/types.h> does not define. */
|
||||
/* #undef off_t */
|
||||
|
||||
/* Define to `unsigned' if <sys/types.h> does not define. */
|
||||
/* #undef size_t */
|
||||
|
||||
/* Define to `int' if <sys/types.h> doesn't define. */
|
||||
#define uid_t int
|
||||
|
593
configure.in
593
configure.in
@@ -11,27 +11,30 @@ AC_PREREQ(2.54)
|
||||
# set GTK_BINARY_AGE and GTK_INTERFACE_AGE to 0.
|
||||
|
||||
m4_define([gtk_major_version], [2])
|
||||
m4_define([gtk_minor_version], [6])
|
||||
m4_define([gtk_micro_version], [7])
|
||||
m4_define([gtk_minor_version], [9])
|
||||
m4_define([gtk_micro_version], [0])
|
||||
m4_define([gtk_version],
|
||||
[gtk_major_version.gtk_minor_version.gtk_micro_version])
|
||||
m4_define([gtk_interface_age], [7])
|
||||
m4_define([gtk_interface_age], [0])
|
||||
m4_define([gtk_binary_age],
|
||||
[m4_eval(100 * gtk_minor_version + gtk_micro_version)])
|
||||
# This is the X.Y used in -lgtk-FOO-X.Y
|
||||
m4_define([gtk_api_version], [2.0])
|
||||
|
||||
# Define a string for the earliest version that this release has
|
||||
# forward/backwards binary compatibility with. This is used for module
|
||||
# locations. (Should this be backwards-compat instead?)
|
||||
# backwards binary compatibility with for all interfaces a module
|
||||
# might. Unless we add module-only API with lower stability
|
||||
# guarantees, this should be unchanged until we break binary compat
|
||||
# for GTK+.
|
||||
#
|
||||
#GTK_BINARY_VERSION=$GTK_MAJOR_VERSION.$GTK_MINOR_VERSION.$LT_CURRENT
|
||||
m4_define([gtk_binary_version], [2.4.0])
|
||||
|
||||
# required versions of other packages
|
||||
m4_define([glib_required_version], [2.6.0])
|
||||
m4_define([pango_required_version], [1.8.0])
|
||||
m4_define([glib_required_version], [2.9.1])
|
||||
m4_define([pango_required_version], [1.9.0])
|
||||
m4_define([atk_required_version], [1.0.1])
|
||||
m4_define([cairo_required_version], [0.9.2])
|
||||
|
||||
|
||||
AC_INIT([gtk+], [gtk_version],
|
||||
@@ -150,6 +153,7 @@ AM_PROG_LIBTOOL
|
||||
AC_SYS_LARGEFILE
|
||||
|
||||
AM_PROG_AS
|
||||
AC_PATH_PROG(NM, nm, nm)
|
||||
|
||||
dnl Initialize maintainer mode
|
||||
AM_MAINTAINER_MODE
|
||||
@@ -171,6 +175,10 @@ AM_CONDITIONAL(OS_UNIX, test "$os_win32" != "yes")
|
||||
AM_CONDITIONAL(OS_LINUX, test "$os_linux" = "yes")
|
||||
|
||||
if test "$os_win32" = "yes"; then
|
||||
AC_CHECK_TOOL(WINDRES, windres, no)
|
||||
if test "$WINDRES" = no; then
|
||||
AC_MSG_ERROR([*** Could not find an implementation of windres in your PATH.])
|
||||
fi
|
||||
AC_CHECK_PROG(ms_librarian, lib.exe, yes, no)
|
||||
fi
|
||||
AM_CONDITIONAL(MS_LIB_AVAILABLE, test x$ms_librarian = xyes)
|
||||
@@ -187,10 +195,6 @@ AC_ARG_ENABLE(shm,
|
||||
[AC_HELP_STRING([--enable-shm],
|
||||
[support shared memory if available [default=yes]])],,
|
||||
[enable_shm="yes"])
|
||||
AC_ARG_ENABLE(ansi,
|
||||
[AC_HELP_STRING([--enable-ansi],
|
||||
[turn on strict ansi [default=no]])],,
|
||||
[enable_ansi=no])
|
||||
AC_ARG_ENABLE(xkb,
|
||||
[AC_HELP_STRING([--enable-xkb],
|
||||
[support XKB [default=maybe]])],,
|
||||
@@ -214,21 +218,19 @@ AC_ARG_WITH(ie55,
|
||||
[AC_HELP_STRING([--with-ie55=DIRECTORY],
|
||||
[IE5.5 libs and headers (for Active IMM)])])
|
||||
|
||||
GLIB_AC_DIVERT_BEFORE_HELP([
|
||||
if test "$platform_win32" = yes; then
|
||||
gdktarget=win32
|
||||
else
|
||||
gdktarget=x11
|
||||
fi
|
||||
])
|
||||
|
||||
AC_ARG_WITH(gdktarget, [ --with-gdktarget=[[x11/linux-fb/win32]] select GDK target [default=$gdktarget]],
|
||||
AC_ARG_WITH(gdktarget, [ --with-gdktarget=[[x11/linux-fb/win32/quartz]] select non-default GDK target],
|
||||
gdktarget=$with_gdktarget)
|
||||
|
||||
AC_SUBST(gdktarget)
|
||||
case $gdktarget in
|
||||
x11|linux-fb|win32) ;;
|
||||
*) AC_MSG_ERROR([Invalid target for GDK: use x11, linux-fb or win32.]);;
|
||||
x11|linux-fb|win32|quartz) ;;
|
||||
*) AC_MSG_ERROR([Invalid target for GDK: use x11, linux-fb, quartz or win32.]);;
|
||||
esac
|
||||
|
||||
gdktargetlib=libgdk-$gdktarget-$GTK_API_VERSION.la
|
||||
@@ -343,7 +345,8 @@ ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS"
|
||||
PKG_CHECK_MODULES(BASE_DEPENDENCIES,
|
||||
[glib-2.0 >= glib_required_version dnl
|
||||
atk >= atk_required_version dnl
|
||||
pango >= pango_required_version])
|
||||
pango >= pango_required_version dnl
|
||||
cairo >= cairo_required_version])
|
||||
|
||||
if test "$os_win32" != yes; then
|
||||
# libtool option to control which symbols are exported
|
||||
@@ -367,8 +370,8 @@ AC_ARG_ENABLE(explicit-deps,
|
||||
AC_MSG_CHECKING([Whether to write dependencies into .pc files])
|
||||
case $enable_explicit_deps in
|
||||
auto)
|
||||
deplib_check_method=`(./libtool --config; echo eval echo \\$deplib_check_method) | sh`
|
||||
if test "X$deplib_check_method" = Xnone || test "x$enable_static" = xyes ; then
|
||||
deplibs_check_method=`(./libtool --config; echo eval echo \\$deplibs_check_method) | sh`
|
||||
if test "x$deplibs_check_method" '!=' xpass_all || test "x$enable_static" = xyes ; then
|
||||
enable_explicit_deps=yes
|
||||
else
|
||||
enable_explicit_deps=no
|
||||
@@ -401,6 +404,18 @@ AC_SUBST(REBUILD)
|
||||
|
||||
AC_CHECK_FUNCS(lstat mkstemp flockfile)
|
||||
|
||||
# _NL_TIME_FIRST_WEEKDAY is an enum and not a define
|
||||
AC_MSG_CHECKING([for _NL_TIME_FIRST_WEEKDAY])
|
||||
AC_TRY_LINK([#include <langinfo.h>], [
|
||||
char c;
|
||||
c = *((unsigned char *) nl_langinfo(_NL_TIME_FIRST_WEEKDAY));
|
||||
], gtk_ok=yes, gtk_ok=no)
|
||||
AC_MSG_RESULT($gtk_ok)
|
||||
if test "$gtk_ok" = "yes"; then
|
||||
AC_DEFINE([HAVE__NL_TIME_FIRST_WEEKDAY], [1],
|
||||
[Define if _NL_TIME_FIRST_WEEKDAY 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>], [
|
||||
@@ -418,7 +433,7 @@ fi
|
||||
# sure that both po/ and po-properties/ have .po files that correspond
|
||||
# to your language. If you only add one to po/, the build will break
|
||||
# in po-properties/.
|
||||
ALL_LINGUAS="af am ar az az_IR be bg bn br bs ca cs cy da de el en_CA en_GB es et eu fa fi fr ga gl gu he hi hr hu ia id is it ja ko li lt lv mi mk ml mn mr ms nb ne nl nn no nso pa pl pt pt_BR ro ru rw sk sl sq sr sr@ije sr@Latn sv ta th tk tr uk uz uz@Latn vi wa xh yi zh_CN zh_TW"
|
||||
ALL_LINGUAS="af am ar az az_IR be bg bn br bs ca cs cy da de el en_CA en_GB es et eu fa fi fr ga gl gu he hi hr hu hy ia id is it ja ko ku li lt lv mi mk ml mn mr ms nb ne nl nn no nso pa pl pt pt_BR ro ru rw sk sl sq sr sr@ije sr@Latn sv ta te th tk tr tt uk uz uz@Latn vi wa xh yi zh_CN zh_TW"
|
||||
AM_GLIB_GNU_GETTEXT
|
||||
LIBS="$LIBS $INTLLIBS"
|
||||
AC_OUTPUT_COMMANDS([case "$CONFIG_FILES" in *po-properties/Makefile.in*)
|
||||
@@ -462,6 +477,20 @@ case $host in
|
||||
;;
|
||||
esac
|
||||
|
||||
#
|
||||
# see bug 162979
|
||||
#
|
||||
AC_MSG_CHECKING(for HP-UX)
|
||||
case $host_os in
|
||||
hpux9* | hpux10* | hpux11*)
|
||||
AC_MSG_RESULT(yes)
|
||||
CFLAGS="$CFLAGS -DHPPEX -DSHMLINK"
|
||||
;;
|
||||
*)
|
||||
AC_MSG_RESULT(no)
|
||||
;;
|
||||
esac
|
||||
|
||||
dnl NeXTStep cc seems to need this
|
||||
AC_MSG_CHECKING([for extra flags for POSIX compliance])
|
||||
AC_TRY_COMPILE([#include <dirent.h>], [DIR *dir;],
|
||||
@@ -964,10 +993,10 @@ if test $cross_compiling = yes; then
|
||||
fi
|
||||
fi
|
||||
|
||||
if test ! -f $srcdir/gtk/stock-icons/gtkstockpixbufs.h &&
|
||||
if test ! -f $srcdir/gtk/gtkbuiltincache.h &&
|
||||
test "x$REBUILD_PNGS" = "x#" ; then
|
||||
AC_MSG_ERROR([
|
||||
*** gtkstockpixbufs.h is not in the tree, and cannot be built
|
||||
*** gtkbuiltincache.h is not in the tree, and cannot be built
|
||||
*** because you don't have libpng, or (when cross-compiling) you
|
||||
*** don't have a prebuilt gdk-pixbuf-csource on the host system.])
|
||||
fi
|
||||
@@ -991,177 +1020,83 @@ AC_SUBST(GDK_PIXBUF_DEP_CFLAGS)
|
||||
# Windowing system checks
|
||||
########################################
|
||||
|
||||
GDK_EXTRA_LIBS=$GDK_WLIBS
|
||||
GDK_EXTRA_CFLAGS=
|
||||
GDK_PIXBUF_XLIB_PACKAGES=
|
||||
GDK_PIXBUF_XLIB_EXTRA_CFLAGS=
|
||||
GDK_PIXBUF_XLIB_EXTRA_LIBS=
|
||||
|
||||
X_PACKAGES=fontconfig
|
||||
GDK_EXTRA_LIBS="$GDK_WLIBS"
|
||||
GDK_EXTRA_CFLAGS=
|
||||
|
||||
# GTK+ uses some X calls, so needs to link against X directly
|
||||
GTK_DEP_PACKAGES_FOR_X=
|
||||
GTK_DEP_LIBS_FOR_X=
|
||||
|
||||
FREETYPE_LIBS=
|
||||
FREETYPE_CFLAGS=
|
||||
if test "x$gdktarget" = "xlinux-fb" || test "x$gdktarget" = "xx11" ; then
|
||||
#
|
||||
# Checks for FreeType
|
||||
#
|
||||
have_freetype=false
|
||||
AC_PATH_PROG(FREETYPE_CONFIG, freetype-config, no)
|
||||
if test "x$FREETYPE_CONFIG" != "xno" ; then
|
||||
FREETYPE_CFLAGS=`$FREETYPE_CONFIG --cflags`
|
||||
FREETYPE_LIBS=`$FREETYPE_CONFIG --libs`
|
||||
|
||||
gtk_save_LIBS="$LIBS"
|
||||
LIBS="$FREETYPE_LIBS $LIBS"
|
||||
AC_TRY_LINK_FUNC(FT_New_Face, have_freetype=true,:)
|
||||
LIBS="$gtk_save_LIBS"
|
||||
|
||||
if $have_freetype ; then
|
||||
gtk_save_cppflags="$CPPFLAGS"
|
||||
CPPFLAGS="$CPPFLAGS $FREETYPE_CFLAGS"
|
||||
|
||||
AC_MSG_CHECKING([For sufficiently new FreeType (at least 2.0.1)])
|
||||
AC_TRY_COMPILE([
|
||||
#include <ft2build.h>
|
||||
#include FT_FREETYPE_H
|
||||
#include FT_ERRORS_H
|
||||
],
|
||||
[(void)1;],:,have_freetype=false)
|
||||
if $have_freetype ; then
|
||||
AC_MSG_RESULT(yes)
|
||||
else
|
||||
AC_MSG_RESULT(no)
|
||||
fi
|
||||
|
||||
CPPFLAGS="$gtk_save_cppflags"
|
||||
fi
|
||||
fi
|
||||
AC_SUBST(FREETYPE_LIBS)
|
||||
AC_SUBST(FREETYPE_CFLAGS)
|
||||
fi
|
||||
|
||||
if test "x$gdktarget" = "xx11"; then
|
||||
# We start off with the libraries from Pango
|
||||
#
|
||||
# We use fontconfig very peripherally when decoding the default
|
||||
# settings.
|
||||
#
|
||||
if $PKG_CONFIG --exists fontconfig; then : ; else
|
||||
AC_MSG_ERROR([
|
||||
*** fontconfig (http://www.fontconfig.org) is required by the X11 backend.])
|
||||
fi
|
||||
|
||||
## be sure we also have Pango built with Xft2 support
|
||||
if $PKG_CONFIG --exists 'pangoxft >= 1.2.0' ; then
|
||||
if $have_freetype ; then
|
||||
:
|
||||
else
|
||||
AC_MSG_ERROR([Xft Pango backend found but did not find freetype libraries])
|
||||
fi
|
||||
#
|
||||
# Check for basic X packages; we use pkg-config if available
|
||||
#
|
||||
if $PKG_CONFIG --exists x11 xext; then
|
||||
have_base_x_pc=true
|
||||
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)
|
||||
x_libs_for_checks=
|
||||
for I in $x_libs ; do
|
||||
case $I in
|
||||
*.la) ;;
|
||||
*) x_libs_for_checks="$x_libs_for_checks $I" ;;
|
||||
esac
|
||||
done
|
||||
|
||||
GDK_PIXBUF_XLIB_PACKAGES="x11"
|
||||
GTK_PACKAGES_FOR_X="x11"
|
||||
else
|
||||
AC_MSG_ERROR([Xft Pango backend is required for x11 target])
|
||||
fi
|
||||
have_base_x_pc=false
|
||||
AC_PATH_XTRA
|
||||
if test x$no_x = xyes ; then
|
||||
AC_MSG_ERROR([X development libraries not found])
|
||||
fi
|
||||
|
||||
x_cflags="$X_CFLAGS"
|
||||
x_libs_for_checks="$X_LIBS -lXext -lX11 $X_EXTRA_LIBS"
|
||||
|
||||
if $PKG_CONFIG --exists xft ; then : ; else
|
||||
AC_MSG_ERROR([Xft version 2 is required for x11 target])
|
||||
fi
|
||||
|
||||
#
|
||||
# If Pango included the shared library dependencies from X11 in
|
||||
# the pkg-config output, then we use that (to avoid duplicates).
|
||||
# but if they were omitted to avoid binary compatibility problems,
|
||||
# then we need to repeat the checks.
|
||||
#
|
||||
x_libs="`$PKG_CONFIG --libs pangoxft`"
|
||||
case "$x_libs" in
|
||||
*-lX11*) pango_omitted_x_deps=no ;;
|
||||
*) pango_omitted_x_deps=yes ;;
|
||||
esac
|
||||
|
||||
x_cflags="`$PKG_CONFIG --cflags pangoxft`"
|
||||
x_extra_libs=
|
||||
|
||||
AC_PATH_XTRA
|
||||
if test x$no_x = xyes ; then
|
||||
AC_MSG_ERROR([X development libraries not found])
|
||||
fi
|
||||
|
||||
if test $pango_omitted_x_deps = yes ; then
|
||||
# Old versions of Xft didn't necessarily include -lX11 in the output
|
||||
x_libs="`$PKG_CONFIG --libs xft` -lX11 $X_EXTRA_LIBS"
|
||||
fi
|
||||
|
||||
## Strip the .la files
|
||||
|
||||
x_libs_for_checks=""
|
||||
for I in $x_libs ; do
|
||||
case $I in
|
||||
*.la) ;;
|
||||
*) x_libs_for_checks="$x_libs_for_checks $I" ;;
|
||||
esac
|
||||
done
|
||||
|
||||
# Sanity check for the X11 library
|
||||
AC_CHECK_LIB(X11, XOpenDisplay, :,
|
||||
AC_MSG_ERROR([*** libX11 not found. Check 'config.log' for more details.]),
|
||||
$x_libs_for_checks)
|
||||
|
||||
if test "x$enable_shm" = "xyes"; then
|
||||
# Check for the Xext library (needed for XShm extention)
|
||||
AC_CHECK_LIB(Xext, XShmAttach,
|
||||
[GTK_ADD_LIB(x_extra_libs,Xext)],
|
||||
# On AIX, it is in XextSam instead, but we still need -lXext
|
||||
[AC_CHECK_LIB(XextSam, XShmAttach,
|
||||
[GTK_ADD_LIB(x_extra_libs,Xext)
|
||||
GTK_ADD_LIB(x_extra_libs,XextSam)
|
||||
], , -lXext $x_libs_for_checks)],
|
||||
$x_libs_for_checks)
|
||||
fi
|
||||
|
||||
GDK_PIXBUF_XLIB_EXTRA_CFLAGS="$x_cflags"
|
||||
# Don't ever pull in the pangoxft libraries for gdk-pixbuf-x11
|
||||
GDK_PIXBUF_XLIB_EXTRA_LIBS="$X_LIBS -lX11 $x_extra_libs $X_EXTRA_LIBS"
|
||||
|
||||
# GTK+ uses some X calls, so needs to link against X directly
|
||||
if test $enable_explicit_deps != yes ; then
|
||||
GDK_PIXBUF_XLIB_EXTRA_CFLAGS="$x_cflags"
|
||||
GDK_PIXBUF_XLIB_EXTRA_LIBS="$X_LIBS -lX11 $X_EXTRA_LIBS"
|
||||
GTK_DEP_LIBS_FOR_X="$X_LIBS -lX11 $X_EXTRA_LIBS"
|
||||
fi
|
||||
|
||||
# Check for Xinerama extension (Solaris impl or Xfree impl)
|
||||
|
||||
gtk_save_cppflags="$CPPFLAGS"
|
||||
CPPFLAGS="$CPPFLAGS $x_cflags"
|
||||
|
||||
case "$host" in
|
||||
*-*-solaris*)
|
||||
# Check for solaris
|
||||
use_solaris_xinerama=yes
|
||||
AC_CHECK_LIB(Xext, XineramaGetInfo,
|
||||
use_solaris_xinerama=yes,
|
||||
use_solaris_xinerama=no,
|
||||
-lXext $x_libs_for_checks)
|
||||
if test "x$use_solaris_xinerama" = "xyes"; then
|
||||
AC_CHECK_HEADER(X11/extensions/xinerama.h,
|
||||
[GTK_ADD_LIB(x_extra_libs,Xext)
|
||||
AC_DEFINE(HAVE_SOLARIS_XINERAMA)
|
||||
AC_DEFINE(HAVE_XINERAMA)],
|
||||
use_solaris_xinerama=no,[#include <X11/Xlib.h>])
|
||||
fi
|
||||
AC_MSG_CHECKING(for Xinerama support on Solaris)
|
||||
AC_MSG_RESULT($use_solaris_xinerama);
|
||||
;;
|
||||
*)
|
||||
# Check for XFree
|
||||
use_xfree_xinerama=yes
|
||||
AC_CHECK_LIB(Xinerama, XineramaQueryExtension,
|
||||
[AC_CHECK_HEADER(X11/extensions/Xinerama.h,
|
||||
[GTK_ADD_LIB(x_extra_libs,Xext)
|
||||
GTK_ADD_LIB(x_extra_libs,Xinerama)
|
||||
AC_DEFINE(HAVE_XFREE_XINERAMA)
|
||||
AC_DEFINE(HAVE_XINERAMA)],
|
||||
use_xfree_xinerama=no,
|
||||
[#include <X11/Xlib.h>])],
|
||||
use_xfree_xinerama=no, -lXext $x_libs_for_checks)
|
||||
AC_MSG_CHECKING(for Xinerama support on XFree86)
|
||||
AC_MSG_RESULT($use_xfree_xinerama);
|
||||
;;
|
||||
esac
|
||||
|
||||
CPPFLAGS="$gtk_save_cppflags"
|
||||
|
||||
# Check for xReply
|
||||
# Extra libraries found during checks (-lXinerama, etc), not from pkg-config.
|
||||
x_extra_libs=
|
||||
|
||||
gtk_save_cppflags="$CPPFLAGS"
|
||||
CPPFLAGS="$CPPFLAGS $X_CFLAGS"
|
||||
|
||||
gtk_save_LIBS=$LIBS
|
||||
LIBS="$x_libs_for_checks $LIBS"
|
||||
|
||||
# Sanity check for the X11 and Xext libraries. While everything we need from
|
||||
# Xext is optional, the chances a system has *none* of these things is so
|
||||
# small that we just unconditionally require it.
|
||||
AC_CHECK_FUNC(XOpenDisplay, :,
|
||||
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.]))
|
||||
|
||||
# Check for xReply
|
||||
|
||||
AC_MSG_CHECKING([if <X11/extensions/XIproto.h> is needed for xReply])
|
||||
AC_TRY_COMPILE([#include <X11/Xlibint.h>],
|
||||
[xReply *rep;],
|
||||
@@ -1175,40 +1110,18 @@ if test "x$gdktarget" = "xx11"; then
|
||||
[AC_MSG_RESULT([unknown])
|
||||
AC_MSG_ERROR([xReply type unavailable. X11 is too old])])])
|
||||
|
||||
CPPFLAGS="$gtk_save_cppflags"
|
||||
# Check for XConvertCase, XInternAtoms (X11R6 specific)
|
||||
|
||||
# Check for shaped window extension
|
||||
|
||||
AC_CHECK_LIB(Xext, XShapeCombineMask,
|
||||
[GTK_ADD_LIB(x_extra_libs,Xext)
|
||||
AC_DEFINE(HAVE_SHAPE_EXT)],
|
||||
,
|
||||
$x_libs_for_checks)
|
||||
|
||||
# Check for XConvertCase (X11R6 specific)
|
||||
|
||||
AC_CHECK_LIB(X11, XConvertCase,
|
||||
AC_DEFINE(HAVE_XCONVERTCASE),
|
||||
,
|
||||
$x_libs_for_checks)
|
||||
|
||||
# Check for XInternAtoms (X11R6 specific)
|
||||
|
||||
AC_CHECK_LIB(X11, XInternAtoms,
|
||||
AC_DEFINE([HAVE_XINTERNATOMS], 1,
|
||||
[Define to 1 if you have the `XInternAtoms' function.]),
|
||||
,
|
||||
$x_libs_for_checks)
|
||||
AC_CHECK_FUNCS(XConvertCase XInternAtoms)
|
||||
|
||||
# Generic X11R6 check needed for XIM support; we could
|
||||
# probably use this to replace the above, but we'll
|
||||
# leave the separate checks for XConvertCase and XInternAtoms
|
||||
# for clarity
|
||||
|
||||
have_x11r6=false
|
||||
AC_CHECK_LIB(X11, XAddConnectionWatch,
|
||||
have_x11r6=true,
|
||||
,
|
||||
$x_libs_for_checks)
|
||||
AC_CHECK_FUNC(XAddConnectionWatch,
|
||||
have_x11r6=true)
|
||||
|
||||
if $have_x11r6; then
|
||||
AC_DEFINE(HAVE_X11R6,1,[Define if we have X11R6])
|
||||
@@ -1221,71 +1134,35 @@ if test "x$gdktarget" = "xx11"; then
|
||||
AC_MSG_WARN(XKB support explicitly enabled)
|
||||
AC_DEFINE(HAVE_XKB)
|
||||
elif test "x$enable_xkb" = "xmaybe"; then
|
||||
AC_CHECK_LIB(X11, XkbQueryExtension,
|
||||
AC_DEFINE(HAVE_XKB),
|
||||
,
|
||||
$x_libs_for_checks)
|
||||
AC_CHECK_FUNC(XkbQueryExtension,
|
||||
AC_DEFINE(HAVE_XKB))
|
||||
else
|
||||
AC_MSG_WARN(XKB support explicitly disabled)
|
||||
fi
|
||||
|
||||
x_cflags="$X_CFLAGS"
|
||||
x_ldflags="$X_LDFLAGS"
|
||||
# Check for shaped window extension
|
||||
|
||||
# set up things for XInput
|
||||
|
||||
if test "x$with_xinput" = "xxfree" || test "x$with_xinput" = "xyes"; then
|
||||
AC_DEFINE(XINPUT_XFREE)
|
||||
GTK_ADD_LIB(x_extra_libs, Xi)
|
||||
else
|
||||
AC_DEFINE(XINPUT_NONE)
|
||||
fi
|
||||
|
||||
AM_CONDITIONAL(XINPUT_XFREE, test x$with_xinput = xxfree || test x$with_xinput = xyes)
|
||||
|
||||
# Check for the RANDR extension
|
||||
|
||||
AC_CHECK_LIB(Xrandr, XRRUpdateConfiguration,
|
||||
[AC_CHECK_HEADER(X11/extensions/Xrandr.h,
|
||||
# RANDR requires RENDER
|
||||
[GTK_ADD_LIB(x_extra_libs, Xrender)
|
||||
GTK_ADD_LIB(x_extra_libs, Xrandr)
|
||||
AC_DEFINE(HAVE_RANDR, 1, Have the Xrandr extension library)],
|
||||
:, [#include <X11/Xlib.h>])], : ,
|
||||
$X_LIBS -lXrandr -lXrender -lX11 $X_EXTRA_LIBS)
|
||||
|
||||
# Checks for Xcursor library
|
||||
|
||||
have_xcursor=false
|
||||
PKG_CHECK_MODULES(XCURSOR, xcursor, have_xcursor=true, :)
|
||||
|
||||
if $have_xcursor ; then
|
||||
AC_DEFINE(HAVE_XCURSOR, 1, Have the Xcursor library)
|
||||
GDK_EXTRA_CFLAGS="`$PKG_CONFIG --cflags xcursor` $GDK_EXTRA_CFLAGS"
|
||||
GDK_EXTRA_LIBS="`$PKG_CONFIG --libs xcursor` $GDK_EXTRA_LIBS"
|
||||
fi
|
||||
AC_CHECK_FUNC(XShapeCombineMask,
|
||||
AC_DEFINE(HAVE_SHAPE_EXT))
|
||||
|
||||
# X SYNC check
|
||||
AC_CHECK_LIB(Xext, XSyncQueryExtension,
|
||||
[AC_CHECK_HEADER(X11/extensions/sync.h,
|
||||
[GTK_ADD_LIB(x_extra_libs, Xext)
|
||||
AC_DEFINE(HAVE_XSYNC, 1, Have the SYNC extension library)],
|
||||
:, [#include <X11/Xlib.h>])], : ,
|
||||
$X_LIBS -lXext -lX11 $X_EXTRA_LIBS)
|
||||
|
||||
# Checks for XFixes extension
|
||||
|
||||
have_xfixes=false
|
||||
PKG_CHECK_MODULES(XFIXES, xfixes, have_xfixes=true, :)
|
||||
AC_CHECK_FUNC(XSyncQueryExtension,
|
||||
[AC_CHECK_HEADER(X11/extensions/sync.h,
|
||||
AC_DEFINE(HAVE_XSYNC, 1, Have the SYNC extension library),
|
||||
:, [#include <X11/Xlib.h>])])
|
||||
|
||||
if $have_xfixes ; then
|
||||
AC_DEFINE(HAVE_XFIXES, 1, Have the XFIXES X extension)
|
||||
GDK_EXTRA_CFLAGS="`$PKG_CONFIG --cflags xfixes` $GDK_EXTRA_CFLAGS"
|
||||
GDK_EXTRA_LIBS="`$PKG_CONFIG --libs xfixes` $GDK_EXTRA_LIBS"
|
||||
fi
|
||||
|
||||
# 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), no_sys_ipc=yes)
|
||||
@@ -1316,12 +1193,117 @@ if test "x$gdktarget" = "xx11"; then
|
||||
fi
|
||||
fi
|
||||
|
||||
if test $pango_omitted_x_deps = yes ; then
|
||||
GDK_EXTRA_LIBS="$X_LIBS $x_extra_libs $x_libs $GDK_EXTRA_LIBS"
|
||||
# Check for Xinerama extension (Solaris impl or Xfree impl)
|
||||
|
||||
gtk_save_cppflags="$CPPFLAGS"
|
||||
CPPFLAGS="$CPPFLAGS $x_cflags"
|
||||
|
||||
case "$host" in
|
||||
*-*-solaris*)
|
||||
# Check for solaris
|
||||
AC_MSG_CHECKING(for Xinerama support on Solaris)
|
||||
|
||||
have_solaris_xinerama=false
|
||||
AC_CHECK_FUNC(XineramaGetInfo,
|
||||
[AC_CHECK_HEADER(X11/extensions/xinerama.h,
|
||||
[have_solaris_xinerama=true], :,
|
||||
[#include <X11/Xlib.h>])])
|
||||
|
||||
if $have_solaris_xinerama ; then
|
||||
AC_DEFINE(HAVE_SOLARIS_XINERAMA)
|
||||
AC_DEFINE(HAVE_XINERAMA)
|
||||
AC_MSG_RESULT(yes)
|
||||
else
|
||||
AC_MSG_RESULT(no)
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
# Check for XFree
|
||||
AC_MSG_CHECKING(for Xinerama support on XFree86)
|
||||
|
||||
have_xfree_xinerama=false
|
||||
if $PKG_CONFIG --exists xinerama ; then
|
||||
have_xfree_xinerama=true
|
||||
X_PACKAGES="$X_PACKAGES xinerama"
|
||||
else
|
||||
AC_CHECK_LIB(Xinerama, XineramaQueryExtension,
|
||||
[AC_CHECK_HEADER(X11/extensions/Xinerama.h,
|
||||
[GTK_ADD_LIB(x_extra_libs,Xinerama)
|
||||
have_xfree_xinerama=true], :
|
||||
[#include <X11/Xlib.h>])])
|
||||
fi
|
||||
|
||||
if $have_xfree_xinerama ; then
|
||||
AC_DEFINE(HAVE_XFREE_XINERAMA)
|
||||
AC_DEFINE(HAVE_XINERAMA)
|
||||
AC_MSG_RESULT(yes)
|
||||
else
|
||||
AC_MSG_RESULT(no)
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
# set up things for XInput
|
||||
|
||||
if test "x$with_xinput" = "xxfree" || test "x$with_xinput" = "xyes"; then
|
||||
AC_DEFINE(XINPUT_XFREE)
|
||||
|
||||
if $PKG_CONFIG --exists xi ; then
|
||||
X_PACKAGES="$X_PACKAGES xi"
|
||||
else
|
||||
GTK_ADD_LIB(x_extra_libs, Xi)
|
||||
fi
|
||||
else
|
||||
GDK_EXTRA_LIBS="$X_LIBS $x_extra_libs $GDK_EXTRA_LIBS"
|
||||
AC_DEFINE(XINPUT_NONE)
|
||||
fi
|
||||
|
||||
AM_CONDITIONAL(XINPUT_XFREE, test x$with_xinput = xxfree || test x$with_xinput = xyes)
|
||||
|
||||
# Check for the RANDR extension
|
||||
|
||||
have_randr=false
|
||||
if $PKG_CONFIG --exists xrandr ; then
|
||||
have_randr=true
|
||||
X_PACKAGES="$X_PACKAGES xrandr"
|
||||
else
|
||||
AC_CHECK_LIB(Xrandr, XRRUpdateConfiguration,
|
||||
[AC_CHECK_HEADER(X11/extensions/Xrandr.h,
|
||||
# RANDR requires RENDER
|
||||
[have_randr=true
|
||||
GTK_ADD_LIB(x_extra_libs, Xrender)
|
||||
GTK_ADD_LIB(x_extra_libs, Xrandr)],
|
||||
:, [#include <X11/Xlib.h>])])
|
||||
fi
|
||||
|
||||
if $have_randr ; then
|
||||
AC_DEFINE(HAVE_RANDR, 1, Have the Xrandr extension library)
|
||||
fi
|
||||
|
||||
# Checks for Xcursor library
|
||||
|
||||
if $PKG_CONFIG --exists xcursor ; then
|
||||
AC_DEFINE(HAVE_XCURSOR, 1, Have the Xcursor library)
|
||||
|
||||
X_PACKAGES="$X_PACKAGES xcursor"
|
||||
fi
|
||||
|
||||
# Checks for XFixes extension
|
||||
|
||||
if $PKG_CONFIG --exists xfixes ; then
|
||||
AC_DEFINE(HAVE_XFIXES, 1, Have the XFIXES X extension)
|
||||
|
||||
X_PACKAGES="$X_PACKAGES xfixes"
|
||||
fi
|
||||
|
||||
if $have_base_x_pc ; then
|
||||
GDK_EXTRA_LIBS="$x_extra_libs"
|
||||
else
|
||||
GDK_EXTRA_LIBS="$X_LIBS $x_extra_libs -lXext -lX11 $GDK_EXTRA_LIBS"
|
||||
fi
|
||||
|
||||
CPPFLAGS="$gtk_save_cppflags"
|
||||
LIBS="$gtk_save_libs"
|
||||
|
||||
AM_CONDITIONAL(USE_X11, true)
|
||||
else
|
||||
AM_CONDITIONAL(XINPUT_XFREE, false)
|
||||
@@ -1337,13 +1319,19 @@ if test "x$gdktarget" = "xwin32"; then
|
||||
AC_SUBST(GDK_WIN32_EXTRA_CFLAGS)
|
||||
fi
|
||||
|
||||
GDK_EXTRA_LIBS="$GDK_EXTRA_LIBS -lgdi32 -user32 -limm32 -lshell32 -lole32 -luuid"
|
||||
GDK_EXTRA_LIBS="$GDK_EXTRA_LIBS -lgdi32 -user32 -limm32 -lshell32 -lole32 -Wl,-luuid"
|
||||
AM_CONDITIONAL(USE_WIN32, true)
|
||||
else
|
||||
AM_CONDITIONAL(USE_WIN32, false)
|
||||
fi
|
||||
|
||||
GDK_PIXBUF_XLIB_PACKAGES=
|
||||
if test "x$gdktarget" = "xquartz"; then
|
||||
GDK_EXTRA_LIBS="$GDK_EXTRA_LIBS -framework Cocoa"
|
||||
AM_CONDITIONAL(USE_QUARTZ, true)
|
||||
else
|
||||
AM_CONDITIONAL(USE_QUARTZ, false)
|
||||
fi
|
||||
|
||||
GDK_PIXBUF_XLIB_DEP_LIBS="`$PKG_CONFIG --libs $GDK_PIXBUF_PACKAGES $GDK_PIXBUF_XLIB_PACKAGES` $GDK_PIXBUF_XLIB_EXTRA_LIBS $GDK_PIXBUF_EXTRA_LIBS"
|
||||
GDK_PIXBUF_XLIB_DEP_CFLAGS="`$PKG_CONFIG --cflags gthread-2.0 $GDK_PIXBUF_PACKAGES $GDK_PIXBUF_XLIB_PACKAGES` $GDK_PIXBUF_EXTRA_CFLAGS $GDK_PIXBUF_XLIB_EXTRA_CFLAGS"
|
||||
|
||||
@@ -1354,20 +1342,6 @@ AC_SUBST(GDK_PIXBUF_XLIB_DEP_LIBS)
|
||||
AC_SUBST(GDK_PIXBUF_XLIB_DEP_CFLAGS)
|
||||
|
||||
if test "x$gdktarget" = "xlinux-fb"; then
|
||||
if $have_freetype ; then
|
||||
:
|
||||
else
|
||||
AC_MSG_ERROR([Using linux-fb backend but freetype was not found])
|
||||
fi
|
||||
|
||||
ft2_libs="`$PKG_CONFIG --libs pangoft2`"
|
||||
case "$ft2_libs" in
|
||||
*-lfreetype*) pango_omitted_ft2_deps=no ;;
|
||||
*) pango_omitted_ft2_deps=yes ;;
|
||||
esac
|
||||
|
||||
CFLAGS="$CFLAGS $FREETYPE_CFLAGS"
|
||||
|
||||
if test x$enable_shadowfb = xyes ; then
|
||||
AC_DEFINE(ENABLE_SHADOW_FB)
|
||||
fi
|
||||
@@ -1379,38 +1353,20 @@ if test "x$gdktarget" = "xlinux-fb"; then
|
||||
AM_CONDITIONAL(ENABLE_FB_MANAGER, false)
|
||||
fi
|
||||
|
||||
if test $pango_omitted_ft2_deps = yes ; then
|
||||
GDK_EXTRA_LIBS="$FREETYPE_LIBS $GDK_EXTRA_LIBS"
|
||||
fi
|
||||
|
||||
AM_CONDITIONAL(USE_LINUX_FB, true)
|
||||
else
|
||||
AM_CONDITIONAL(USE_LINUX_FB, false)
|
||||
AM_CONDITIONAL(ENABLE_FB_MANAGER, false)
|
||||
fi
|
||||
|
||||
#
|
||||
# Pick correct Pango packages to use
|
||||
#
|
||||
|
||||
if test "x$gdktarget" = "xx11"; then
|
||||
PANGO_PACKAGES=pangoxft
|
||||
|
||||
# We no longer use pangox, but if we find it, we link to it
|
||||
# for binary compatibility.
|
||||
if $PKG_CONFIG --exists pangox ; then
|
||||
PANGO_PACKAGES="$PANGO_PACKAGES pangox"
|
||||
fi
|
||||
elif test "x$gdktarget" = "xwin32"; then
|
||||
PANGO_PACKAGES=pangowin32
|
||||
elif test "x$gdktarget" = "xlinux-fb"; then
|
||||
PANGO_PACKAGES=pangoft2
|
||||
else
|
||||
PANGO_PACKAGES=pango
|
||||
fi
|
||||
|
||||
# Check for Pango flags
|
||||
|
||||
if test "x$gdktarget" = "xwin32"; then
|
||||
PANGO_PACKAGES="pangowin32 pangocairo"
|
||||
else
|
||||
PANGO_PACKAGES="pango pangocairo"
|
||||
fi
|
||||
|
||||
AC_MSG_CHECKING(Pango flags)
|
||||
if $PKG_CONFIG --exists $PANGO_PACKAGES ; then
|
||||
PANGO_CFLAGS=`$PKG_CONFIG --cflags $PANGO_PACKAGES`
|
||||
@@ -1419,10 +1375,8 @@ if $PKG_CONFIG --exists $PANGO_PACKAGES ; then
|
||||
AC_MSG_RESULT($PANGO_CFLAGS $PANGO_LIBS)
|
||||
else
|
||||
AC_MSG_ERROR([
|
||||
*** Pango not found. Pango is required to build GTK+.
|
||||
*** See http://www.pango.org for Pango information.
|
||||
*** For the framebuffer target, you will need to build
|
||||
*** Pango with freetype support.
|
||||
*** Pango not found. Pango built with Cairo support is required
|
||||
*** to build GTK+. See http://www.pango.org for Pango information.
|
||||
])
|
||||
fi
|
||||
|
||||
@@ -1443,6 +1397,9 @@ CFLAGS="$saved_cflags"
|
||||
LDFLAGS="$saved_ldflags"
|
||||
|
||||
GDK_PACKAGES="$PANGO_PACKAGES"
|
||||
if test "x$gdktarget" = "xx11"; then
|
||||
GDK_PACKAGES="$GDK_PACKAGES $X_PACKAGES"
|
||||
fi
|
||||
GDK_DEP_LIBS="$GDK_EXTRA_LIBS `$PKG_CONFIG --libs $GDK_PIXBUF_PACKAGES $GDK_PACKAGES` $GDK_PIXBUF_EXTRA_LIBS"
|
||||
GDK_DEP_CFLAGS="`$PKG_CONFIG --cflags gthread-2.0 $GDK_PIXBUF_PACKAGES $GDK_PACKAGES` $GDK_PIXBUF_EXTRA_CFLAGS $GDK_EXTRA_CFLAGS"
|
||||
|
||||
@@ -1451,6 +1408,7 @@ GDK_DEP_CFLAGS="`$PKG_CONFIG --cflags gthread-2.0 $GDK_PIXBUF_PACKAGES $GDK_PAC
|
||||
# into the pkg-config files
|
||||
#
|
||||
if test $enable_explicit_deps != yes ; then
|
||||
GDK_PACKAGES="$PANGO_PACKAGES"
|
||||
GDK_EXTRA_LIBS=
|
||||
fi
|
||||
|
||||
@@ -1490,12 +1448,16 @@ else
|
||||
LIBS="$gtk_save_LIBS"
|
||||
fi
|
||||
|
||||
GTK_PACKAGES=atk
|
||||
GTK_PACKAGES="atk cairo"
|
||||
GTK_EXTRA_LIBS=
|
||||
GTK_EXTRA_CFLAGS=
|
||||
GTK_DEP_LIBS="$GDK_EXTRA_LIBS $GTK_DEP_LIBS_FOR_X `$PKG_CONFIG --libs $GDK_PIXBUF_PACKAGES $GDK_PACKAGES $GTK_PACKAGES` $GTK_EXTRA_LIBS $GDK_PIXBUF_EXTRA_LIBS"
|
||||
GTK_DEP_LIBS="$GDK_EXTRA_LIBS $GTK_DEP_LIBS_FOR_X `$PKG_CONFIG --libs $GDK_PIXBUF_PACKAGES $PANGO_PACKAGES $GTK_PACKAGES_FOR_X $GTK_PACKAGES` $GTK_EXTRA_LIBS $GDK_PIXBUF_EXTRA_LIBS"
|
||||
GTK_DEP_CFLAGS="`$PKG_CONFIG --cflags gthread-2.0 $GDK_PIXBUF_PACKAGES $GDK_PACKAGES $GTK_PACKAGES` $GDK_PIXBUF_EXTRA_CFLAGS $GDK_EXTRA_CFLAGS $GTK_EXTRA_CFLAGS"
|
||||
|
||||
if test x"$os_win32" = xyes; then
|
||||
GTK_EXTRA_CFLAGS="$msnative_struct"
|
||||
fi
|
||||
|
||||
AC_SUBST(GTK_PACKAGES)
|
||||
AC_SUBST(GTK_EXTRA_LIBS)
|
||||
AC_SUBST(GTK_EXTRA_CFLAGS)
|
||||
@@ -1532,7 +1494,7 @@ fi
|
||||
# Checks for gtk-doc and docbook-tools
|
||||
##################################################
|
||||
|
||||
GTK_DOC_CHECK([1.0])
|
||||
GTK_DOC_CHECK([1.4])
|
||||
|
||||
AC_CHECK_PROG(DB2HTML, db2html, true, false)
|
||||
AM_CONDITIONAL(HAVE_DOCBOOK, $DB2HTML)
|
||||
@@ -1614,6 +1576,9 @@ elif test "x$gdktarget" = "xlinux-fb" ; then
|
||||
gdk_windowing='
|
||||
#define GDK_WINDOWING_FB
|
||||
#define GDK_NATIVE_WINDOW_POINTER'
|
||||
elif test "x$gdktarget" = "xquartz" ; then
|
||||
gdk_windowing='
|
||||
#define GDK_WINDOWING_QUARTZ'
|
||||
fi
|
||||
|
||||
if test x$gdk_wchar_h = xyes; then
|
||||
@@ -1645,9 +1610,6 @@ gtk+-2.0-uninstalled.pc
|
||||
m4macros/Makefile
|
||||
po/Makefile.in
|
||||
po-properties/Makefile.in
|
||||
build/Makefile
|
||||
build/win32/Makefile
|
||||
build/win32/dirent/Makefile
|
||||
demos/Makefile
|
||||
demos/gtk-demo/Makefile
|
||||
demos/gtk-demo/geninclude.pl
|
||||
@@ -1673,11 +1635,11 @@ gdk/win32/Makefile
|
||||
gdk/win32/rc/Makefile
|
||||
gdk/win32/rc/gdk.rc
|
||||
gdk/linux-fb/Makefile
|
||||
gdk/quartz/Makefile
|
||||
gtk/Makefile
|
||||
gtk/makefile.msc
|
||||
gtk/gtkversion.h
|
||||
gtk/gtk-win32.rc
|
||||
gtk/stock-icons/Makefile
|
||||
gtk/theme-bits/Makefile
|
||||
gtk/xdgmime/Makefile
|
||||
modules/Makefile
|
||||
@@ -1687,6 +1649,7 @@ modules/engines/pixbuf/Makefile
|
||||
modules/engines/ms-windows/Makefile
|
||||
modules/engines/ms-windows/Theme/Makefile
|
||||
modules/engines/ms-windows/Theme/gtk-2.0/Makefile
|
||||
perf/Makefile
|
||||
contrib/Makefile
|
||||
contrib/gdk-pixbuf-xlib/Makefile
|
||||
contrib/gdk-pixbuf-xlib/gdk-pixbuf-xlib-2.0.pc
|
||||
|
@@ -1,26 +1,47 @@
|
||||
2005-04-12 Matthias Clasen <mclasen@redhat.com>
|
||||
2005-11-17 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* === Releases 2.6.7 ====
|
||||
* gdk-pixbuf-xlib-drawable.c:
|
||||
* gdk-pixbuf-xlibrgb.c: const correctness fixes
|
||||
found by Arjan van de Ven and gcc.
|
||||
|
||||
2005-04-10 Matthias Clasen <mclasen@redhat.com>
|
||||
2005-10-05 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* === Released 2.6.6 ===
|
||||
* gdk-pixbuf-xlib-2.0.pc.in (Requires): Require
|
||||
gmodule-no-export-2.0 instead of gmodule-2.0
|
||||
|
||||
2005-04-09 Matthias Clasen <mclasen@redhat.com>
|
||||
2005-08-24 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* === Released 2.6.5 ===
|
||||
* === Released 2.8.2 ===
|
||||
|
||||
2005-03-01 Matthias Clasen <mclasen@redhat.com>
|
||||
* === Released 2.8.1 ===
|
||||
|
||||
* === Released 2.6.4 ===
|
||||
2005-08-13 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
2005-02-28 Matthias Clasen <mclasen@redhat.com>
|
||||
* === Released 2.8.0 ===
|
||||
|
||||
* === Released 2.6.3 ===
|
||||
2005-08-02 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
2005-02-04 Matthias Clasen <mclasen@redhat.com>
|
||||
* === Released 2.7.5 ===
|
||||
|
||||
* === Released 2.6.2 ===
|
||||
2005-07-22 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* === Released 2.7.4 ===
|
||||
|
||||
2005-07-15 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* === Released 2.7.3 ===
|
||||
|
||||
2005-07-08 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* === Released 2.7.2 ===
|
||||
|
||||
2005-07-01 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* === Released 2.7.1 ===
|
||||
|
||||
2005-06-20 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* === Released 2.7.0 ===
|
||||
|
||||
2005-01-08 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
|
@@ -6,6 +6,6 @@ includedir=@includedir@
|
||||
Name: GdkPixbuf Xlib
|
||||
Description: GdkPixbuf rendering for Xlib
|
||||
Version: @VERSION@
|
||||
Requires: gobject-2.0,gmodule-2.0,gdk-pixbuf-2.0
|
||||
Requires: gobject-2.0,gmodule-no-export-2.0,gdk-pixbuf-2.0
|
||||
Libs: -L${libdir} -lgdk_pixbuf_xlib-@GTK_API_VERSION@
|
||||
Cflags: -I${includedir}
|
||||
|
@@ -41,7 +41,7 @@
|
||||
|
||||
|
||||
|
||||
static guint32 mask_table[] = {
|
||||
static const guint32 mask_table[] = {
|
||||
0x00000000, 0x00000001, 0x00000003, 0x00000007,
|
||||
0x0000000f, 0x0000001f, 0x0000003f, 0x0000007f,
|
||||
0x000000ff, 0x000001ff, 0x000003ff, 0x000007ff,
|
||||
@@ -1058,7 +1058,7 @@ convert_real_slow (XImage *image, guchar *pixels, int rowstride, xlib_colormap *
|
||||
|
||||
typedef void (* cfunc) (XImage *image, guchar *pixels, int rowstride, xlib_colormap *cmap);
|
||||
|
||||
static cfunc convert_map[] = {
|
||||
static const cfunc convert_map[] = {
|
||||
rgb1,rgb1,rgb1a,rgb1a,
|
||||
rgb8,rgb8,rgb8a,rgb8a,
|
||||
rgb555lsb,rgb555msb,rgb555alsb,rgb555amsb,
|
||||
|
@@ -516,7 +516,7 @@ static guint32
|
||||
xlib_rgb_score_visual (XVisualInfo *visual)
|
||||
{
|
||||
guint32 quality, speed, pseudo, sys;
|
||||
static const char* visual_names[] =
|
||||
static const char * const visual_names[] =
|
||||
{
|
||||
"static gray",
|
||||
"grayscale",
|
||||
|
@@ -10,6 +10,7 @@ demos = \
|
||||
changedisplay.c \
|
||||
clipboard.c \
|
||||
colorsel.c \
|
||||
combobox.c \
|
||||
dialog.c \
|
||||
drawingarea.c \
|
||||
editable_cells.c \
|
||||
@@ -17,10 +18,12 @@ demos = \
|
||||
expander.c \
|
||||
hypertext.c \
|
||||
iconview.c \
|
||||
iconview_edit.c \
|
||||
images.c \
|
||||
list_store.c \
|
||||
menus.c \
|
||||
panes.c \
|
||||
pickers.c \
|
||||
pixbufs.c \
|
||||
rotated_text.c \
|
||||
sizegroup.c \
|
||||
|
@@ -1,9 +1,10 @@
|
||||
/* Application main window
|
||||
*
|
||||
* Demonstrates a typical application window, with menubar, toolbar, statusbar.
|
||||
* Demonstrates a typical application window with menubar, toolbar, statusbar.
|
||||
*/
|
||||
|
||||
#include <gtk/gtk.h>
|
||||
#include "config.h"
|
||||
#include "demo-common.h"
|
||||
|
||||
static GtkWidget *window = NULL;
|
||||
@@ -48,7 +49,8 @@ activate_radio_action (GtkAction *action, GtkRadioAction *current)
|
||||
GTK_DIALOG_DESTROY_WITH_PARENT,
|
||||
GTK_MESSAGE_INFO,
|
||||
GTK_BUTTONS_CLOSE,
|
||||
"You activated radio action: \"%s\" of type \"%s\".\nCurrent value: %d",
|
||||
"You activated radio action: \"%s\" of type \"%s\".\n"
|
||||
"Current value: %d",
|
||||
name, typename, value);
|
||||
|
||||
/* Close dialog on user response */
|
||||
@@ -131,8 +133,8 @@ about_cb (GtkAction *action,
|
||||
gtk_about_dialog_set_url_hook (activate_url, NULL, NULL);
|
||||
gtk_show_about_dialog (GTK_WINDOW (window),
|
||||
"name", "GTK+ Code Demos",
|
||||
"version", "2.4.3",
|
||||
"copyright", "(C) 1997-2004 The GTK+ Team",
|
||||
"version", PACKAGE_VERSION,
|
||||
"copyright", "(C) 1997-2005 The GTK+ Team",
|
||||
"license", license,
|
||||
"website", "http://www.gtk.org",
|
||||
"comments", "Program to demonstrate GTK+ functions.",
|
||||
@@ -144,9 +146,32 @@ about_cb (GtkAction *action,
|
||||
g_object_unref (transparent);
|
||||
}
|
||||
|
||||
typedef struct
|
||||
{
|
||||
GtkAction action;
|
||||
} ToolMenuAction;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
GtkActionClass parent_class;
|
||||
} ToolMenuActionClass;
|
||||
|
||||
G_DEFINE_TYPE(ToolMenuAction, tool_menu_action, GTK_TYPE_ACTION);
|
||||
|
||||
static void
|
||||
tool_menu_action_class_init (ToolMenuActionClass *class)
|
||||
{
|
||||
GTK_ACTION_CLASS (class)->toolbar_item_type = GTK_TYPE_MENU_TOOL_BUTTON;
|
||||
}
|
||||
|
||||
static void
|
||||
tool_menu_action_init (ToolMenuAction *action)
|
||||
{
|
||||
}
|
||||
|
||||
static GtkActionEntry entries[] = {
|
||||
{ "FileMenu", NULL, "_File" }, /* name, stock id, label */
|
||||
{ "OpenMenu", NULL, "_Open" }, /* name, stock id, label */
|
||||
{ "PreferencesMenu", NULL, "_Preferences" }, /* name, stock id, label */
|
||||
{ "ColorMenu", NULL, "_Color" }, /* name, stock id, label */
|
||||
{ "ShapeMenu", NULL, "_Shape" }, /* name, stock id, label */
|
||||
@@ -155,9 +180,9 @@ static GtkActionEntry entries[] = {
|
||||
"_New", "<control>N", /* label, accelerator */
|
||||
"Create a new file", /* tooltip */
|
||||
G_CALLBACK (activate_action) },
|
||||
{ "Open", GTK_STOCK_OPEN, /* name, stock id */
|
||||
"_Open","<control>O", /* label, accelerator */
|
||||
"Open a file", /* tooltip */
|
||||
{ "File1", NULL, /* name, stock id */
|
||||
"File1", NULL, /* label, accelerator */
|
||||
"Open first file", /* tooltip */
|
||||
G_CALLBACK (activate_action) },
|
||||
{ "Save", GTK_STOCK_SAVE, /* name, stock id */
|
||||
"_Save","<control>S", /* label, accelerator */
|
||||
@@ -258,8 +283,12 @@ static const gchar *ui_info =
|
||||
" <menuitem action='About'/>"
|
||||
" </menu>"
|
||||
" </menubar>"
|
||||
" <toolbar name='ToolBar'>"
|
||||
" <toolitem action='Open'/>"
|
||||
" <toolbar name='ToolBar'>"
|
||||
" <toolitem action='Open'>"
|
||||
" <menu action='OpenMenu'>"
|
||||
" <menuitem action='File1'/>"
|
||||
" </menu>"
|
||||
" </toolitem>"
|
||||
" <toolitem action='Quit'/>"
|
||||
" <separator action='Sep1'/>"
|
||||
" <toolitem action='Logo'/>"
|
||||
@@ -344,7 +373,9 @@ update_statusbar (GtkTextBuffer *buffer,
|
||||
gint count;
|
||||
GtkTextIter iter;
|
||||
|
||||
gtk_statusbar_pop (statusbar, 0); /* clear any previous message, underflow is allowed */
|
||||
gtk_statusbar_pop (statusbar, 0); /* clear any previous message,
|
||||
* underflow is allowed
|
||||
*/
|
||||
|
||||
count = gtk_text_buffer_get_char_count (buffer);
|
||||
|
||||
@@ -377,8 +408,15 @@ update_resize_grip (GtkWidget *widget,
|
||||
GdkEventWindowState *event,
|
||||
GtkStatusbar *statusbar)
|
||||
{
|
||||
if (event->changed_mask & (GDK_WINDOW_STATE_MAXIMIZED | GDK_WINDOW_STATE_FULLSCREEN))
|
||||
gtk_statusbar_set_has_resize_grip (statusbar, !(event->new_window_state & (GDK_WINDOW_STATE_MAXIMIZED | GDK_WINDOW_STATE_FULLSCREEN)));
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -394,6 +432,7 @@ do_appwindow (GtkWidget *do_widget)
|
||||
GtkWidget *bar;
|
||||
GtkTextBuffer *buffer;
|
||||
GtkActionGroup *action_group;
|
||||
GtkAction *open_action;
|
||||
GtkUIManager *merge;
|
||||
GError *error = NULL;
|
||||
|
||||
@@ -406,6 +445,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");
|
||||
|
||||
/* NULL window variable when window is closed */
|
||||
g_signal_connect (window, "destroy",
|
||||
@@ -420,6 +460,13 @@ do_appwindow (GtkWidget *do_widget)
|
||||
*/
|
||||
|
||||
action_group = gtk_action_group_new ("AppWindowActions");
|
||||
open_action = g_object_new (tool_menu_action_get_type (),
|
||||
"name", "Open",
|
||||
"label", "_Open",
|
||||
"tooltip", "Open a file",
|
||||
"stock-id", GTK_STOCK_OPEN,
|
||||
NULL);
|
||||
gtk_action_group_add_action (action_group, open_action);
|
||||
gtk_action_group_add_actions (action_group,
|
||||
entries, n_entries,
|
||||
window);
|
||||
@@ -438,7 +485,8 @@ do_appwindow (GtkWidget *do_widget)
|
||||
NULL);
|
||||
|
||||
merge = gtk_ui_manager_new ();
|
||||
g_object_set_data_full (G_OBJECT (window), "ui-manager", merge, g_object_unref);
|
||||
g_object_set_data_full (G_OBJECT (window), "ui-manager", merge,
|
||||
g_object_unref);
|
||||
gtk_ui_manager_insert_action_group (merge, action_group, 0);
|
||||
gtk_window_add_accel_group (GTK_WINDOW (window),
|
||||
gtk_ui_manager_get_accel_group (merge));
|
||||
|
@@ -1,7 +1,12 @@
|
||||
/* Clipboard
|
||||
*
|
||||
* GtkClipboard is used for clipboard handling. This demo shows how to
|
||||
* copy and paste text to and from the clipboard.
|
||||
* copy and paste text to and from the clipboard.
|
||||
*
|
||||
* It also shows how to transfer images via the clipboard or via
|
||||
* drag-and-drop, and how to make clipboard contents persist after
|
||||
* the application exits. Clipboard persistence requires a clipboard
|
||||
* manager to run.
|
||||
*/
|
||||
|
||||
#include <gtk/gtk.h>
|
||||
@@ -11,7 +16,7 @@ static GtkWidget *window = NULL;
|
||||
|
||||
void
|
||||
copy_button_clicked (GtkWidget *button,
|
||||
gpointer user_data)
|
||||
gpointer user_data)
|
||||
{
|
||||
GtkWidget *entry;
|
||||
GtkClipboard *clipboard;
|
||||
@@ -20,7 +25,7 @@ copy_button_clicked (GtkWidget *button,
|
||||
|
||||
/* Get the clipboard object */
|
||||
clipboard = gtk_widget_get_clipboard (entry,
|
||||
GDK_SELECTION_CLIPBOARD);
|
||||
GDK_SELECTION_CLIPBOARD);
|
||||
|
||||
/* Set clipboard text */
|
||||
gtk_clipboard_set_text (clipboard, gtk_entry_get_text (GTK_ENTRY (entry)), -1);
|
||||
@@ -28,20 +33,21 @@ copy_button_clicked (GtkWidget *button,
|
||||
|
||||
void
|
||||
paste_received (GtkClipboard *clipboard,
|
||||
const gchar *text,
|
||||
gpointer user_data)
|
||||
const gchar *text,
|
||||
gpointer user_data)
|
||||
{
|
||||
GtkWidget *entry;
|
||||
|
||||
entry = GTK_WIDGET (user_data);
|
||||
|
||||
/* Set the entry text */
|
||||
gtk_entry_set_text (GTK_ENTRY (entry), text);
|
||||
if(text)
|
||||
gtk_entry_set_text (GTK_ENTRY (entry), text);
|
||||
}
|
||||
|
||||
void
|
||||
paste_button_clicked (GtkWidget *button,
|
||||
gpointer user_data)
|
||||
gpointer user_data)
|
||||
{
|
||||
GtkWidget *entry;
|
||||
GtkClipboard *clipboard;
|
||||
@@ -50,13 +56,139 @@ paste_button_clicked (GtkWidget *button,
|
||||
|
||||
/* Get the clipboard object */
|
||||
clipboard = gtk_widget_get_clipboard (entry,
|
||||
GDK_SELECTION_CLIPBOARD);
|
||||
GDK_SELECTION_CLIPBOARD);
|
||||
|
||||
/* Request the contents of the clipboard, contents_received will be
|
||||
called when we do get the contents.
|
||||
*/
|
||||
gtk_clipboard_request_text (clipboard,
|
||||
paste_received, entry);
|
||||
paste_received, entry);
|
||||
}
|
||||
|
||||
static GdkPixbuf *
|
||||
get_image_pixbuf (GtkImage *image)
|
||||
{
|
||||
gchar *stock_id;
|
||||
GtkIconSize size;
|
||||
|
||||
switch (gtk_image_get_storage_type (image))
|
||||
{
|
||||
case GTK_IMAGE_PIXBUF:
|
||||
return g_object_ref (gtk_image_get_pixbuf (image));
|
||||
case GTK_IMAGE_STOCK:
|
||||
gtk_image_get_stock (image, &stock_id, &size);
|
||||
return gtk_widget_render_icon (GTK_WIDGET (image),
|
||||
stock_id, size, NULL);
|
||||
default:
|
||||
g_warning ("Image storage type %d not handled",
|
||||
gtk_image_get_storage_type (image));
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
drag_begin (GtkWidget *widget,
|
||||
GdkDragContext *context,
|
||||
gpointer data)
|
||||
{
|
||||
GdkPixbuf *pixbuf;
|
||||
|
||||
pixbuf = get_image_pixbuf (GTK_IMAGE (data));
|
||||
gtk_drag_set_icon_pixbuf (context, pixbuf, -2, -2);
|
||||
g_object_unref (pixbuf);
|
||||
}
|
||||
|
||||
void
|
||||
drag_data_get (GtkWidget *widget,
|
||||
GdkDragContext *context,
|
||||
GtkSelectionData *selection_data,
|
||||
guint info,
|
||||
guint time,
|
||||
gpointer data)
|
||||
{
|
||||
GdkPixbuf *pixbuf;
|
||||
|
||||
pixbuf = get_image_pixbuf (GTK_IMAGE (data));
|
||||
gtk_selection_data_set_pixbuf (selection_data, pixbuf);
|
||||
g_object_unref (pixbuf);
|
||||
}
|
||||
|
||||
static void
|
||||
drag_data_received (GtkWidget *widget,
|
||||
GdkDragContext *context,
|
||||
gint x,
|
||||
gint y,
|
||||
GtkSelectionData *selection_data,
|
||||
guint info,
|
||||
guint32 time,
|
||||
gpointer data)
|
||||
{
|
||||
GdkPixbuf *pixbuf;
|
||||
|
||||
if (selection_data->length > 0)
|
||||
{
|
||||
pixbuf = gtk_selection_data_get_pixbuf (selection_data);
|
||||
gtk_image_set_from_pixbuf (GTK_IMAGE (data), pixbuf);
|
||||
g_object_unref (pixbuf);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
copy_image (GtkMenuItem *item,
|
||||
gpointer data)
|
||||
{
|
||||
GtkClipboard *clipboard;
|
||||
GdkPixbuf *pixbuf;
|
||||
|
||||
clipboard = gtk_clipboard_get (GDK_SELECTION_CLIPBOARD);
|
||||
pixbuf = get_image_pixbuf (GTK_IMAGE (data));
|
||||
|
||||
gtk_clipboard_set_image (clipboard, pixbuf);
|
||||
g_object_unref (pixbuf);
|
||||
}
|
||||
|
||||
static void
|
||||
paste_image (GtkMenuItem *item,
|
||||
gpointer data)
|
||||
{
|
||||
GtkClipboard *clipboard;
|
||||
GdkPixbuf *pixbuf;
|
||||
|
||||
clipboard = gtk_clipboard_get (GDK_SELECTION_CLIPBOARD);
|
||||
pixbuf = gtk_clipboard_wait_for_image (clipboard);
|
||||
|
||||
if (pixbuf)
|
||||
{
|
||||
gtk_image_set_from_pixbuf (GTK_IMAGE (data), pixbuf);
|
||||
g_object_unref (pixbuf);
|
||||
}
|
||||
}
|
||||
|
||||
static gboolean
|
||||
button_press (GtkWidget *widget,
|
||||
GdkEventButton *button,
|
||||
gpointer data)
|
||||
{
|
||||
GtkWidget *menu;
|
||||
GtkWidget *item;
|
||||
|
||||
if (button->button != 3)
|
||||
return FALSE;
|
||||
|
||||
menu = gtk_menu_new ();
|
||||
|
||||
item = gtk_image_menu_item_new_from_stock (GTK_STOCK_COPY, NULL);
|
||||
g_signal_connect (item, "activate", G_CALLBACK (copy_image), data);
|
||||
gtk_widget_show (item);
|
||||
gtk_menu_shell_append (GTK_MENU_SHELL (menu), item);
|
||||
|
||||
item = gtk_image_menu_item_new_from_stock (GTK_STOCK_PASTE, NULL);
|
||||
g_signal_connect (item, "activate", G_CALLBACK (paste_image), data);
|
||||
gtk_widget_show (item);
|
||||
gtk_menu_shell_append (GTK_MENU_SHELL (menu), item);
|
||||
|
||||
gtk_menu_popup (GTK_MENU (menu), NULL, NULL, NULL, NULL, 3, button->time);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
GtkWidget *
|
||||
@@ -67,8 +199,13 @@ do_clipboard (GtkWidget *do_widget)
|
||||
GtkWidget *vbox, *hbox;
|
||||
GtkWidget *label;
|
||||
GtkWidget *entry, *button;
|
||||
GtkWidget *ebox, *image;
|
||||
GtkClipboard *clipboard;
|
||||
|
||||
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
|
||||
g_signal_connect (window, "destroy",
|
||||
G_CALLBACK (gtk_widget_destroyed), &window);
|
||||
|
||||
vbox = gtk_vbox_new (FALSE, 0);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (vbox), 8);
|
||||
|
||||
@@ -90,7 +227,7 @@ do_clipboard (GtkWidget *do_widget)
|
||||
button = gtk_button_new_from_stock (GTK_STOCK_COPY);
|
||||
gtk_box_pack_start (GTK_BOX (hbox), button, FALSE, FALSE, 0);
|
||||
g_signal_connect (button, "clicked",
|
||||
G_CALLBACK (copy_button_clicked), entry);
|
||||
G_CALLBACK (copy_button_clicked), entry);
|
||||
|
||||
label = gtk_label_new ("\"Paste\" will paste the text from the clipboard to the entry");
|
||||
gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0);
|
||||
@@ -107,8 +244,70 @@ do_clipboard (GtkWidget *do_widget)
|
||||
button = gtk_button_new_from_stock (GTK_STOCK_PASTE);
|
||||
gtk_box_pack_start (GTK_BOX (hbox), button, FALSE, FALSE, 0);
|
||||
g_signal_connect (button, "clicked",
|
||||
G_CALLBACK (paste_button_clicked), entry);
|
||||
G_CALLBACK (paste_button_clicked), entry);
|
||||
|
||||
label = gtk_label_new ("Images can be transferred via the clipboard, too");
|
||||
gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0);
|
||||
|
||||
hbox = gtk_hbox_new (FALSE, 4);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (hbox), 8);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0);
|
||||
|
||||
/* Create the first image */
|
||||
image = gtk_image_new_from_stock (GTK_STOCK_DIALOG_WARNING,
|
||||
GTK_ICON_SIZE_BUTTON);
|
||||
ebox = gtk_event_box_new ();
|
||||
gtk_container_add (GTK_CONTAINER (ebox), image);
|
||||
gtk_container_add (GTK_CONTAINER (hbox), ebox);
|
||||
|
||||
/* make ebox a drag source */
|
||||
gtk_drag_source_set (ebox, GDK_BUTTON1_MASK, NULL, 0, GDK_ACTION_COPY);
|
||||
gtk_drag_source_add_image_targets (ebox);
|
||||
g_signal_connect (ebox, "drag_begin",
|
||||
G_CALLBACK (drag_begin), image);
|
||||
g_signal_connect (ebox, "drag_data_get",
|
||||
G_CALLBACK (drag_data_get), image);
|
||||
|
||||
/* accept drops on ebox */
|
||||
gtk_drag_dest_set (ebox, GTK_DEST_DEFAULT_ALL,
|
||||
NULL, 0, GDK_ACTION_COPY);
|
||||
gtk_drag_dest_add_image_targets (ebox);
|
||||
g_signal_connect (ebox, "drag_data_received",
|
||||
G_CALLBACK (drag_data_received), image);
|
||||
|
||||
/* context menu on ebox */
|
||||
g_signal_connect (ebox, "button_press_event",
|
||||
G_CALLBACK (button_press), image);
|
||||
|
||||
/* Create the second image */
|
||||
image = gtk_image_new_from_stock (GTK_STOCK_STOP,
|
||||
GTK_ICON_SIZE_BUTTON);
|
||||
ebox = gtk_event_box_new ();
|
||||
gtk_container_add (GTK_CONTAINER (ebox), image);
|
||||
gtk_container_add (GTK_CONTAINER (hbox), ebox);
|
||||
|
||||
/* make ebox a drag source */
|
||||
gtk_drag_source_set (ebox, GDK_BUTTON1_MASK, NULL, 0, GDK_ACTION_COPY);
|
||||
gtk_drag_source_add_image_targets (ebox);
|
||||
g_signal_connect (ebox, "drag_begin",
|
||||
G_CALLBACK (drag_begin), image);
|
||||
g_signal_connect (ebox, "drag_data_get",
|
||||
G_CALLBACK (drag_data_get), image);
|
||||
|
||||
/* accept drops on ebox */
|
||||
gtk_drag_dest_set (ebox, GTK_DEST_DEFAULT_ALL,
|
||||
NULL, 0, GDK_ACTION_COPY);
|
||||
gtk_drag_dest_add_image_targets (ebox);
|
||||
g_signal_connect (ebox, "drag_data_received",
|
||||
G_CALLBACK (drag_data_received), image);
|
||||
|
||||
/* context menu on ebox */
|
||||
g_signal_connect (ebox, "button_press_event",
|
||||
G_CALLBACK (button_press), image);
|
||||
|
||||
/* tell the clipboard manager to make the data persistent */
|
||||
clipboard = gtk_clipboard_get (GDK_SELECTION_CLIPBOARD);
|
||||
gtk_clipboard_set_can_store (clipboard, NULL, 0);
|
||||
}
|
||||
|
||||
if (!GTK_WIDGET_VISIBLE (window))
|
||||
|
371
demos/gtk-demo/combobox.c
Normal file
371
demos/gtk-demo/combobox.c
Normal file
@@ -0,0 +1,371 @@
|
||||
/* Combo boxes
|
||||
*
|
||||
* The ComboBox widget allows to select one option out of a list.
|
||||
* The ComboBoxEntry additionally allows the user to enter a value
|
||||
* that is not in the list of options.
|
||||
*
|
||||
* How the options are displayed is controlled by cell renderers.
|
||||
*/
|
||||
|
||||
#include <gtk/gtk.h>
|
||||
|
||||
enum
|
||||
{
|
||||
PIXBUF_COL,
|
||||
TEXT_COL
|
||||
};
|
||||
|
||||
static gchar *
|
||||
strip_underscore (const gchar *text)
|
||||
{
|
||||
gchar *p, *q;
|
||||
gchar *result;
|
||||
|
||||
result = g_strdup (text);
|
||||
p = q = result;
|
||||
while (*p)
|
||||
{
|
||||
if (*p != '_')
|
||||
{
|
||||
*q = *p;
|
||||
q++;
|
||||
}
|
||||
p++;
|
||||
}
|
||||
*q = '\0';
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
static GtkTreeModel *
|
||||
create_stock_icon_store (void)
|
||||
{
|
||||
gchar *stock_id[6] = {
|
||||
GTK_STOCK_DIALOG_WARNING,
|
||||
GTK_STOCK_STOP,
|
||||
GTK_STOCK_NEW,
|
||||
GTK_STOCK_CLEAR,
|
||||
NULL,
|
||||
GTK_STOCK_OPEN
|
||||
};
|
||||
|
||||
GtkStockItem item;
|
||||
GdkPixbuf *pixbuf;
|
||||
GtkWidget *cellview;
|
||||
GtkTreeIter iter;
|
||||
GtkListStore *store;
|
||||
gchar *label;
|
||||
gint i;
|
||||
|
||||
cellview = gtk_cell_view_new ();
|
||||
|
||||
store = gtk_list_store_new (2, GDK_TYPE_PIXBUF, G_TYPE_STRING);
|
||||
|
||||
for (i = 0; i < G_N_ELEMENTS (stock_id); i++)
|
||||
{
|
||||
if (stock_id[i])
|
||||
{
|
||||
pixbuf = gtk_widget_render_icon (cellview, stock_id[i],
|
||||
GTK_ICON_SIZE_BUTTON, NULL);
|
||||
gtk_stock_lookup (stock_id[i], &item);
|
||||
label = strip_underscore (item.label);
|
||||
gtk_list_store_append (store, &iter);
|
||||
gtk_list_store_set (store, &iter,
|
||||
PIXBUF_COL, pixbuf,
|
||||
TEXT_COL, label,
|
||||
-1);
|
||||
g_free (label);
|
||||
}
|
||||
else
|
||||
{
|
||||
gtk_list_store_append (store, &iter);
|
||||
gtk_list_store_set (store, &iter,
|
||||
PIXBUF_COL, NULL,
|
||||
TEXT_COL, "separator",
|
||||
-1);
|
||||
}
|
||||
}
|
||||
|
||||
gtk_widget_destroy (cellview);
|
||||
|
||||
return GTK_TREE_MODEL (store);
|
||||
}
|
||||
|
||||
/* A GtkCellLayoutDataFunc that demonstrates how one can control
|
||||
* sensitivity of rows. This particular function does nothing
|
||||
* useful and just makes the second row insensitive.
|
||||
*/
|
||||
static void
|
||||
set_sensitive (GtkCellLayout *cell_layout,
|
||||
GtkCellRenderer *cell,
|
||||
GtkTreeModel *tree_model,
|
||||
GtkTreeIter *iter,
|
||||
gpointer data)
|
||||
{
|
||||
GtkTreePath *path;
|
||||
gint *indices;
|
||||
gboolean sensitive;
|
||||
|
||||
path = gtk_tree_model_get_path (tree_model, iter);
|
||||
indices = gtk_tree_path_get_indices (path);
|
||||
sensitive = indices[0] != 1;
|
||||
gtk_tree_path_free (path);
|
||||
|
||||
g_object_set (cell, "sensitive", sensitive, NULL);
|
||||
}
|
||||
|
||||
/* A GtkTreeViewRowSeparatorFunc that demonstrates how rows can be
|
||||
* rendered as separators. This particular function does nothing
|
||||
* useful and just turns the fourth row into a separator.
|
||||
*/
|
||||
static gboolean
|
||||
is_separator (GtkTreeModel *model,
|
||||
GtkTreeIter *iter,
|
||||
gpointer data)
|
||||
{
|
||||
GtkTreePath *path;
|
||||
gboolean result;
|
||||
|
||||
path = gtk_tree_model_get_path (model, iter);
|
||||
result = gtk_tree_path_get_indices (path)[0] == 4;
|
||||
gtk_tree_path_free (path);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
static GtkTreeModel *
|
||||
create_capital_store (void)
|
||||
{
|
||||
struct {
|
||||
gchar *group;
|
||||
gchar *capital;
|
||||
} capitals[] = {
|
||||
{ "A - B", NULL },
|
||||
{ NULL, "Albany" },
|
||||
{ NULL, "Annapolis" },
|
||||
{ NULL, "Atlanta" },
|
||||
{ NULL, "Augusta" },
|
||||
{ NULL, "Austin" },
|
||||
{ NULL, "Baton Rouge" },
|
||||
{ NULL, "Bismarck" },
|
||||
{ NULL, "Boise" },
|
||||
{ NULL, "Boston" },
|
||||
{ "C - D", NULL },
|
||||
{ NULL, "Carson City" },
|
||||
{ NULL, "Charleston" },
|
||||
{ NULL, "Cheyenne" },
|
||||
{ NULL, "Columbia" },
|
||||
{ NULL, "Columbus" },
|
||||
{ NULL, "Concord" },
|
||||
{ NULL, "Denver" },
|
||||
{ NULL, "Des Moines" },
|
||||
{ NULL, "Dover" },
|
||||
{ "E - J", NULL },
|
||||
{ NULL, "Frankfort" },
|
||||
{ NULL, "Harrisburg" },
|
||||
{ NULL, "Hartford" },
|
||||
{ NULL, "Helena" },
|
||||
{ NULL, "Honolulu" },
|
||||
{ NULL, "Indianapolis" },
|
||||
{ NULL, "Jackson" },
|
||||
{ NULL, "Jefferson City" },
|
||||
{ NULL, "Juneau" },
|
||||
{ "K - O" },
|
||||
{ NULL, "Lansing" },
|
||||
{ NULL, "Lincoln" },
|
||||
{ NULL, "Little Rock" },
|
||||
{ NULL, "Madison" },
|
||||
{ NULL, "Montgomery" },
|
||||
{ NULL, "Montpelier" },
|
||||
{ NULL, "Nashville" },
|
||||
{ NULL, "Oklahoma City" },
|
||||
{ NULL, "Olympia" },
|
||||
{ NULL, "P - S" },
|
||||
{ NULL, "Phoenix" },
|
||||
{ NULL, "Pierre" },
|
||||
{ NULL, "Providence" },
|
||||
{ NULL, "Raleigh" },
|
||||
{ NULL, "Richmond" },
|
||||
{ NULL, "Sacramento" },
|
||||
{ NULL, "Salem" },
|
||||
{ NULL, "Salt Lake City" },
|
||||
{ NULL, "Santa Fe" },
|
||||
{ NULL, "Springfield" },
|
||||
{ NULL, "St. Paul" },
|
||||
{ "T - Z", NULL },
|
||||
{ NULL, "Tallahassee" },
|
||||
{ NULL, "Topeka" },
|
||||
{ NULL, "Trenton" },
|
||||
{ NULL, NULL }
|
||||
};
|
||||
|
||||
GtkTreeIter iter, iter2;
|
||||
GtkTreeStore *store;
|
||||
gint i;
|
||||
|
||||
store = gtk_tree_store_new (1, G_TYPE_STRING);
|
||||
|
||||
for (i = 0; capitals[i].group || capitals[i].capital; i++)
|
||||
{
|
||||
if (capitals[i].group)
|
||||
{
|
||||
gtk_tree_store_append (store, &iter, NULL);
|
||||
gtk_tree_store_set (store, &iter, 0, capitals[i].group, -1);
|
||||
}
|
||||
else if (capitals[i].capital)
|
||||
{
|
||||
gtk_tree_store_append (store, &iter2, &iter);
|
||||
gtk_tree_store_set (store, &iter2, 0, capitals[i].capital, -1);
|
||||
}
|
||||
}
|
||||
|
||||
return GTK_TREE_MODEL (store);
|
||||
}
|
||||
|
||||
static void
|
||||
is_capital_sensitive (GtkCellLayout *cell_layout,
|
||||
GtkCellRenderer *cell,
|
||||
GtkTreeModel *tree_model,
|
||||
GtkTreeIter *iter,
|
||||
gpointer data)
|
||||
{
|
||||
gboolean sensitive;
|
||||
|
||||
sensitive = !gtk_tree_model_iter_has_child (tree_model, iter);
|
||||
|
||||
g_object_set (cell, "sensitive", sensitive, NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
fill_combo_entry (GtkWidget *entry)
|
||||
{
|
||||
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");
|
||||
}
|
||||
|
||||
GtkWidget *
|
||||
do_combobox (GtkWidget *do_widget)
|
||||
{
|
||||
static GtkWidget *window = NULL;
|
||||
GtkWidget *vbox, *frame, *box, *combo;
|
||||
GtkTreeModel *model;
|
||||
GtkCellRenderer *renderer;
|
||||
GtkTreePath *path;
|
||||
GtkTreeIter iter;
|
||||
|
||||
if (!window)
|
||||
{
|
||||
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
|
||||
gtk_window_set_screen (GTK_WINDOW (window),
|
||||
gtk_widget_get_screen (do_widget));
|
||||
gtk_window_set_title (GTK_WINDOW (window), "Combo boxes");
|
||||
|
||||
g_signal_connect (window, "destroy",
|
||||
G_CALLBACK (gtk_widget_destroyed),
|
||||
&window);
|
||||
|
||||
gtk_container_set_border_width (GTK_CONTAINER (window), 10);
|
||||
|
||||
vbox = gtk_vbox_new (FALSE, 2);
|
||||
gtk_container_add (GTK_CONTAINER (window), vbox);
|
||||
|
||||
/* A combobox demonstrating cell renderers, separators and
|
||||
* insensitive rows
|
||||
*/
|
||||
frame = gtk_frame_new ("Some stock icons");
|
||||
gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0);
|
||||
|
||||
box = gtk_vbox_new (FALSE, 0);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (box), 5);
|
||||
gtk_container_add (GTK_CONTAINER (frame), box);
|
||||
|
||||
model = create_stock_icon_store ();
|
||||
combo = gtk_combo_box_new_with_model (model);
|
||||
g_object_unref (model);
|
||||
gtk_container_add (GTK_CONTAINER (box), combo);
|
||||
|
||||
renderer = gtk_cell_renderer_pixbuf_new ();
|
||||
gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo), renderer, FALSE);
|
||||
gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combo), renderer,
|
||||
"pixbuf", PIXBUF_COL,
|
||||
NULL);
|
||||
|
||||
gtk_cell_layout_set_cell_data_func (GTK_CELL_LAYOUT (combo),
|
||||
renderer,
|
||||
set_sensitive,
|
||||
NULL, NULL);
|
||||
|
||||
renderer = gtk_cell_renderer_text_new ();
|
||||
gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo), renderer, TRUE);
|
||||
gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combo), renderer,
|
||||
"text", TEXT_COL,
|
||||
NULL);
|
||||
|
||||
gtk_cell_layout_set_cell_data_func (GTK_CELL_LAYOUT (combo),
|
||||
renderer,
|
||||
set_sensitive,
|
||||
NULL, NULL);
|
||||
|
||||
gtk_combo_box_set_row_separator_func (GTK_COMBO_BOX (combo),
|
||||
is_separator, NULL, NULL);
|
||||
|
||||
gtk_combo_box_set_active (GTK_COMBO_BOX (combo), 0);
|
||||
|
||||
/* A combobox demonstrating trees.
|
||||
*/
|
||||
frame = gtk_frame_new ("Where are we ?");
|
||||
gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0);
|
||||
|
||||
box = gtk_vbox_new (FALSE, 0);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (box), 5);
|
||||
gtk_container_add (GTK_CONTAINER (frame), box);
|
||||
|
||||
model = create_capital_store ();
|
||||
combo = gtk_combo_box_new_with_model (model);
|
||||
g_object_unref (model);
|
||||
gtk_container_add (GTK_CONTAINER (box), combo);
|
||||
|
||||
renderer = gtk_cell_renderer_text_new ();
|
||||
gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo), renderer, TRUE);
|
||||
gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combo), renderer,
|
||||
"text", 0,
|
||||
NULL);
|
||||
gtk_cell_layout_set_cell_data_func (GTK_CELL_LAYOUT (combo),
|
||||
renderer,
|
||||
is_capital_sensitive,
|
||||
NULL, NULL);
|
||||
|
||||
path = gtk_tree_path_new_from_indices (0, 8, -1);
|
||||
gtk_tree_model_get_iter (model, &iter, path);
|
||||
gtk_tree_path_free (path);
|
||||
gtk_combo_box_set_active_iter (GTK_COMBO_BOX (combo), &iter);
|
||||
|
||||
/* A GtkComboBoxEntry
|
||||
*/
|
||||
frame = gtk_frame_new ("Editable");
|
||||
gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0);
|
||||
|
||||
box = gtk_vbox_new (FALSE, 0);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (box), 5);
|
||||
gtk_container_add (GTK_CONTAINER (frame), box);
|
||||
|
||||
combo = gtk_combo_box_entry_new_text ();
|
||||
fill_combo_entry (combo);
|
||||
gtk_container_add (GTK_CONTAINER (box), combo);
|
||||
|
||||
}
|
||||
|
||||
if (!GTK_WIDGET_VISIBLE (window))
|
||||
{
|
||||
gtk_widget_show_all (window);
|
||||
}
|
||||
else
|
||||
{
|
||||
gtk_widget_destroy (window);
|
||||
window = NULL;
|
||||
}
|
||||
|
||||
return window;
|
||||
}
|
@@ -2,8 +2,12 @@
|
||||
*
|
||||
* This demo demonstrates the use of editable cells in a GtkTreeView. If
|
||||
* you're new to the GtkTreeView widgets and associates, look into
|
||||
* the GtkListStore example first.
|
||||
* the GtkListStore example first. It also shows how to use the
|
||||
* GtkCellRenderer::editing-started signal to do custom setup of the
|
||||
* editable widget.
|
||||
*
|
||||
* The cell renderers used in this demo are GtkCellRendererText,
|
||||
* GtkCellRendererCombo and GtkCellRendererProgress.
|
||||
*/
|
||||
|
||||
#include <gtk/gtk.h>
|
||||
@@ -14,18 +18,24 @@ static GtkWidget *window = NULL;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
gint number;
|
||||
gchar *product;
|
||||
gboolean editable;
|
||||
gint number;
|
||||
gchar *product;
|
||||
gint yummy;
|
||||
}
|
||||
Item;
|
||||
|
||||
enum
|
||||
{
|
||||
COLUMN_NUMBER,
|
||||
COLUMN_PRODUCT,
|
||||
COLUMN_EDITABLE,
|
||||
NUM_COLUMNS
|
||||
COLUMN_ITEM_NUMBER,
|
||||
COLUMN_ITEM_PRODUCT,
|
||||
COLUMN_ITEM_YUMMY,
|
||||
NUM_ITEM_COLUMNS
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
COLUMN_NUMBER_TEXT,
|
||||
NUM_NUMBER_COLUMNS
|
||||
};
|
||||
|
||||
static GArray *articles = NULL;
|
||||
@@ -39,32 +49,32 @@ add_items (void)
|
||||
|
||||
foo.number = 3;
|
||||
foo.product = g_strdup ("bottles of coke");
|
||||
foo.editable = TRUE;
|
||||
foo.yummy = 20;
|
||||
g_array_append_vals (articles, &foo, 1);
|
||||
|
||||
foo.number = 5;
|
||||
foo.product = g_strdup ("packages of noodles");
|
||||
foo.editable = TRUE;
|
||||
foo.yummy = 50;
|
||||
g_array_append_vals (articles, &foo, 1);
|
||||
|
||||
foo.number = 2;
|
||||
foo.product = g_strdup ("packages of chocolate chip cookies");
|
||||
foo.editable = TRUE;
|
||||
foo.yummy = 90;
|
||||
g_array_append_vals (articles, &foo, 1);
|
||||
|
||||
foo.number = 1;
|
||||
foo.product = g_strdup ("can vanilla ice cream");
|
||||
foo.editable = TRUE;
|
||||
foo.yummy = 60;
|
||||
g_array_append_vals (articles, &foo, 1);
|
||||
|
||||
foo.number = 6;
|
||||
foo.product = g_strdup ("eggs");
|
||||
foo.editable = TRUE;
|
||||
foo.yummy = 10;
|
||||
g_array_append_vals (articles, &foo, 1);
|
||||
}
|
||||
|
||||
static GtkTreeModel *
|
||||
create_model (void)
|
||||
create_items_model (void)
|
||||
{
|
||||
gint i = 0;
|
||||
GtkListStore *model;
|
||||
@@ -76,8 +86,8 @@ create_model (void)
|
||||
add_items ();
|
||||
|
||||
/* create list store */
|
||||
model = gtk_list_store_new (NUM_COLUMNS, G_TYPE_INT, G_TYPE_STRING,
|
||||
G_TYPE_BOOLEAN);
|
||||
model = gtk_list_store_new (NUM_ITEM_COLUMNS, G_TYPE_INT, G_TYPE_STRING,
|
||||
G_TYPE_INT, G_TYPE_BOOLEAN);
|
||||
|
||||
/* add items */
|
||||
for (i = 0; i < articles->len; i++)
|
||||
@@ -85,18 +95,46 @@ create_model (void)
|
||||
gtk_list_store_append (model, &iter);
|
||||
|
||||
gtk_list_store_set (model, &iter,
|
||||
COLUMN_NUMBER,
|
||||
g_array_index (articles, Item, i).number,
|
||||
COLUMN_PRODUCT,
|
||||
g_array_index (articles, Item, i).product,
|
||||
COLUMN_EDITABLE,
|
||||
g_array_index (articles, Item, i).editable,
|
||||
-1);
|
||||
COLUMN_ITEM_NUMBER,
|
||||
g_array_index (articles, Item, i).number,
|
||||
COLUMN_ITEM_PRODUCT,
|
||||
g_array_index (articles, Item, i).product,
|
||||
COLUMN_ITEM_YUMMY,
|
||||
g_array_index (articles, Item, i).yummy,
|
||||
-1);
|
||||
}
|
||||
|
||||
return GTK_TREE_MODEL (model);
|
||||
}
|
||||
|
||||
static GtkTreeModel *
|
||||
create_numbers_model (void)
|
||||
{
|
||||
#define N_NUMBERS 10
|
||||
gint i = 0;
|
||||
GtkListStore *model;
|
||||
GtkTreeIter iter;
|
||||
|
||||
/* create list store */
|
||||
model = gtk_list_store_new (NUM_NUMBER_COLUMNS, G_TYPE_STRING, G_TYPE_INT);
|
||||
|
||||
/* add numbers */
|
||||
for (i = 0; i < N_NUMBERS; i++)
|
||||
{
|
||||
char str[2] = { '0' + i, '\0' };
|
||||
|
||||
gtk_list_store_append (model, &iter);
|
||||
|
||||
gtk_list_store_set (model, &iter,
|
||||
COLUMN_NUMBER_TEXT, str,
|
||||
-1);
|
||||
}
|
||||
|
||||
return GTK_TREE_MODEL (model);
|
||||
|
||||
#undef N_NUMBERS
|
||||
}
|
||||
|
||||
static void
|
||||
add_item (GtkWidget *button, gpointer data)
|
||||
{
|
||||
@@ -108,15 +146,15 @@ add_item (GtkWidget *button, gpointer data)
|
||||
|
||||
foo.number = 0;
|
||||
foo.product = g_strdup ("Description here");
|
||||
foo.editable = TRUE;
|
||||
foo.yummy = 50;
|
||||
g_array_append_vals (articles, &foo, 1);
|
||||
|
||||
gtk_list_store_append (GTK_LIST_STORE (model), &iter);
|
||||
gtk_list_store_set (GTK_LIST_STORE (model), &iter,
|
||||
COLUMN_NUMBER, foo.number,
|
||||
COLUMN_PRODUCT, foo.product,
|
||||
COLUMN_EDITABLE, foo.editable,
|
||||
-1);
|
||||
COLUMN_ITEM_NUMBER, foo.number,
|
||||
COLUMN_ITEM_PRODUCT, foo.product,
|
||||
COLUMN_ITEM_YUMMY, foo.yummy,
|
||||
-1);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -142,11 +180,37 @@ remove_item (GtkWidget *widget, gpointer data)
|
||||
}
|
||||
}
|
||||
|
||||
static gboolean
|
||||
separator_row (GtkTreeModel *model,
|
||||
GtkTreeIter *iter,
|
||||
gpointer data)
|
||||
{
|
||||
GtkTreePath *path;
|
||||
gint idx;
|
||||
|
||||
path = gtk_tree_model_get_path (model, iter);
|
||||
idx = gtk_tree_path_get_indices (path)[0];
|
||||
|
||||
gtk_tree_path_free (path);
|
||||
|
||||
return idx == 5;
|
||||
}
|
||||
|
||||
static void
|
||||
editing_started (GtkCellRenderer *cell,
|
||||
GtkCellEditable *editable,
|
||||
const gchar *path,
|
||||
gpointer data)
|
||||
{
|
||||
gtk_combo_box_set_row_separator_func (GTK_COMBO_BOX (editable),
|
||||
separator_row, NULL, NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
cell_edited (GtkCellRendererText *cell,
|
||||
const gchar *path_string,
|
||||
const gchar *new_text,
|
||||
gpointer data)
|
||||
const gchar *path_string,
|
||||
const gchar *new_text,
|
||||
gpointer data)
|
||||
{
|
||||
GtkTreeModel *model = (GtkTreeModel *)data;
|
||||
GtkTreePath *path = gtk_tree_path_new_from_string (path_string);
|
||||
@@ -158,31 +222,31 @@ cell_edited (GtkCellRendererText *cell,
|
||||
|
||||
switch (column)
|
||||
{
|
||||
case COLUMN_NUMBER:
|
||||
case COLUMN_ITEM_NUMBER:
|
||||
{
|
||||
gint i;
|
||||
gint i;
|
||||
|
||||
i = gtk_tree_path_get_indices (path)[0];
|
||||
g_array_index (articles, Item, i).number = atoi (new_text);
|
||||
i = gtk_tree_path_get_indices (path)[0];
|
||||
g_array_index (articles, Item, i).number = atoi (new_text);
|
||||
|
||||
gtk_list_store_set (GTK_LIST_STORE (model), &iter, column,
|
||||
g_array_index (articles, Item, i).number, -1);
|
||||
gtk_list_store_set (GTK_LIST_STORE (model), &iter, column,
|
||||
g_array_index (articles, Item, i).number, -1);
|
||||
}
|
||||
break;
|
||||
|
||||
case COLUMN_PRODUCT:
|
||||
case COLUMN_ITEM_PRODUCT:
|
||||
{
|
||||
gint i;
|
||||
gchar *old_text;
|
||||
gint i;
|
||||
gchar *old_text;
|
||||
|
||||
gtk_tree_model_get (model, &iter, column, &old_text, -1);
|
||||
g_free (old_text);
|
||||
g_free (old_text);
|
||||
|
||||
i = gtk_tree_path_get_indices (path)[0];
|
||||
g_free (g_array_index (articles, Item, i).product);
|
||||
g_array_index (articles, Item, i).product = g_strdup (new_text);
|
||||
i = gtk_tree_path_get_indices (path)[0];
|
||||
g_free (g_array_index (articles, Item, i).product);
|
||||
g_array_index (articles, Item, i).product = g_strdup (new_text);
|
||||
|
||||
gtk_list_store_set (GTK_LIST_STORE (model), &iter, column,
|
||||
gtk_list_store_set (GTK_LIST_STORE (model), &iter, column,
|
||||
g_array_index (articles, Item, i).product, -1);
|
||||
}
|
||||
break;
|
||||
@@ -192,34 +256,55 @@ cell_edited (GtkCellRendererText *cell,
|
||||
}
|
||||
|
||||
static void
|
||||
add_columns (GtkTreeView *treeview)
|
||||
add_columns (GtkTreeView *treeview,
|
||||
GtkTreeModel *items_model,
|
||||
GtkTreeModel *numbers_model)
|
||||
{
|
||||
GtkCellRenderer *renderer;
|
||||
GtkTreeModel *model = gtk_tree_view_get_model (treeview);
|
||||
|
||||
/* number column */
|
||||
renderer = gtk_cell_renderer_text_new ();
|
||||
renderer = gtk_cell_renderer_combo_new ();
|
||||
g_object_set (renderer,
|
||||
"model", numbers_model,
|
||||
"text-column", COLUMN_NUMBER_TEXT,
|
||||
"has-entry", FALSE,
|
||||
"editable", TRUE,
|
||||
NULL);
|
||||
g_signal_connect (renderer, "edited",
|
||||
G_CALLBACK (cell_edited), model);
|
||||
g_object_set_data (G_OBJECT (renderer), "column", (gint *)COLUMN_NUMBER);
|
||||
G_CALLBACK (cell_edited), items_model);
|
||||
g_signal_connect (renderer, "editing-started",
|
||||
G_CALLBACK (editing_started), NULL);
|
||||
g_object_set_data (G_OBJECT (renderer), "column", GINT_TO_POINTER (COLUMN_ITEM_NUMBER));
|
||||
|
||||
gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (treeview),
|
||||
-1, "Number", renderer,
|
||||
"text", COLUMN_NUMBER,
|
||||
"editable", COLUMN_EDITABLE,
|
||||
NULL);
|
||||
-1, "Number", renderer,
|
||||
"text", COLUMN_ITEM_NUMBER,
|
||||
NULL);
|
||||
|
||||
/* product column */
|
||||
renderer = gtk_cell_renderer_text_new ();
|
||||
g_object_set (renderer,
|
||||
"editable", TRUE,
|
||||
NULL);
|
||||
g_signal_connect (renderer, "edited",
|
||||
G_CALLBACK (cell_edited), model);
|
||||
g_object_set_data (G_OBJECT (renderer), "column", (gint *)COLUMN_PRODUCT);
|
||||
G_CALLBACK (cell_edited), items_model);
|
||||
g_object_set_data (G_OBJECT (renderer), "column", GINT_TO_POINTER (COLUMN_ITEM_PRODUCT));
|
||||
|
||||
gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (treeview),
|
||||
-1, "Product", renderer,
|
||||
"text", COLUMN_PRODUCT,
|
||||
"editable", COLUMN_EDITABLE,
|
||||
NULL);
|
||||
-1, "Product", renderer,
|
||||
"text", COLUMN_ITEM_PRODUCT,
|
||||
NULL);
|
||||
|
||||
/* yummy column */
|
||||
renderer = gtk_cell_renderer_progress_new ();
|
||||
g_object_set_data (G_OBJECT (renderer), "column", GINT_TO_POINTER (COLUMN_ITEM_YUMMY));
|
||||
|
||||
gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (treeview),
|
||||
-1, "Yummy", renderer,
|
||||
"value", COLUMN_ITEM_YUMMY,
|
||||
NULL);
|
||||
|
||||
|
||||
}
|
||||
|
||||
GtkWidget *
|
||||
@@ -232,43 +317,47 @@ do_editable_cells (GtkWidget *do_widget)
|
||||
GtkWidget *sw;
|
||||
GtkWidget *treeview;
|
||||
GtkWidget *button;
|
||||
GtkTreeModel *model;
|
||||
GtkTreeModel *items_model;
|
||||
GtkTreeModel *numbers_model;
|
||||
|
||||
/* create window, etc */
|
||||
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
|
||||
gtk_window_set_screen (GTK_WINDOW (window),
|
||||
gtk_widget_get_screen (do_widget));
|
||||
gtk_widget_get_screen (do_widget));
|
||||
gtk_window_set_title (GTK_WINDOW (window), "Shopping list");
|
||||
gtk_container_set_border_width (GTK_CONTAINER (window), 5);
|
||||
g_signal_connect (window, "destroy",
|
||||
G_CALLBACK (gtk_widget_destroyed), &window);
|
||||
G_CALLBACK (gtk_widget_destroyed), &window);
|
||||
|
||||
vbox = gtk_vbox_new (FALSE, 5);
|
||||
gtk_container_add (GTK_CONTAINER (window), vbox);
|
||||
|
||||
gtk_box_pack_start (GTK_BOX (vbox),
|
||||
gtk_label_new ("Shopping list (you can edit the cells!)"),
|
||||
FALSE, FALSE, 0);
|
||||
gtk_label_new ("Shopping list (you can edit the cells!)"),
|
||||
FALSE, FALSE, 0);
|
||||
|
||||
sw = gtk_scrolled_window_new (NULL, NULL);
|
||||
gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (sw),
|
||||
GTK_SHADOW_ETCHED_IN);
|
||||
GTK_SHADOW_ETCHED_IN);
|
||||
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw),
|
||||
GTK_POLICY_AUTOMATIC,
|
||||
GTK_POLICY_AUTOMATIC);
|
||||
GTK_POLICY_AUTOMATIC,
|
||||
GTK_POLICY_AUTOMATIC);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), sw, TRUE, TRUE, 0);
|
||||
|
||||
/* create model */
|
||||
model = create_model ();
|
||||
/* create models */
|
||||
items_model = create_items_model ();
|
||||
numbers_model = create_numbers_model ();
|
||||
|
||||
/* create tree view */
|
||||
treeview = gtk_tree_view_new_with_model (model);
|
||||
g_object_unref (model);
|
||||
treeview = gtk_tree_view_new_with_model (items_model);
|
||||
gtk_tree_view_set_rules_hint (GTK_TREE_VIEW (treeview), TRUE);
|
||||
gtk_tree_selection_set_mode (gtk_tree_view_get_selection (GTK_TREE_VIEW (treeview)),
|
||||
GTK_SELECTION_SINGLE);
|
||||
GTK_SELECTION_SINGLE);
|
||||
|
||||
add_columns (GTK_TREE_VIEW (treeview));
|
||||
add_columns (GTK_TREE_VIEW (treeview), items_model, numbers_model);
|
||||
|
||||
g_object_unref (numbers_model);
|
||||
g_object_unref (items_model);
|
||||
|
||||
gtk_container_add (GTK_CONTAINER (sw), treeview);
|
||||
|
||||
@@ -278,12 +367,12 @@ do_editable_cells (GtkWidget *do_widget)
|
||||
|
||||
button = gtk_button_new_with_label ("Add item");
|
||||
g_signal_connect (button, "clicked",
|
||||
G_CALLBACK (add_item), model);
|
||||
G_CALLBACK (add_item), items_model);
|
||||
gtk_box_pack_start (GTK_BOX (hbox), button, TRUE, TRUE, 0);
|
||||
|
||||
button = gtk_button_new_with_label ("Remove item");
|
||||
g_signal_connect (button, "clicked",
|
||||
G_CALLBACK (remove_item), treeview);
|
||||
G_CALLBACK (remove_item), treeview);
|
||||
gtk_box_pack_start (GTK_BOX (hbox), button, TRUE, TRUE, 0);
|
||||
|
||||
gtk_window_set_default_size (GTK_WINDOW (window), 320, 200);
|
||||
|
@@ -35,7 +35,7 @@ for $file (@ARGV) {
|
||||
|
||||
# generate a list of 'parent names'
|
||||
foreach $href (@demos) {
|
||||
if ($href->{"title"} =~ m|^([\w\s]+)/[\w\s]+$|) {
|
||||
if ($href->{"title"} =~ m|^([-\w\s]+)/[-\w\s]+$|) {
|
||||
my $parent_name = $1;
|
||||
my $do_next = 0;
|
||||
|
||||
@@ -77,7 +77,7 @@ if (defined @parents) {
|
||||
next;
|
||||
}
|
||||
|
||||
if ($demos[$j]{"title"} =~ m|^$parents[$i]/([\w\s]+)$|) {
|
||||
if ($demos[$j]{"title"} =~ m|^$parents[$i]/([-\w\s]+)$|) {
|
||||
if ($first) {
|
||||
$first = 0;
|
||||
} else {
|
||||
|
@@ -1,8 +1,8 @@
|
||||
/* Icon View
|
||||
/* Icon View/Icon View Basics
|
||||
*
|
||||
* The GtkIconView widget is used to display and manipulate icons. It
|
||||
* uses a GtkTreeModel for data storage, so the list store example
|
||||
* might be helpful.
|
||||
* The GtkIconView widget is used to display and manipulate icons.
|
||||
* It uses a GtkTreeModel for data storage, so the list store
|
||||
* example might be helpful.
|
||||
*/
|
||||
|
||||
#include <gtk/gtk.h>
|
||||
@@ -147,7 +147,7 @@ sort_func (GtkTreeModel *model,
|
||||
return ret;
|
||||
}
|
||||
|
||||
GtkListStore *
|
||||
static GtkListStore *
|
||||
create_store (void)
|
||||
{
|
||||
GtkListStore *store;
|
||||
@@ -331,7 +331,7 @@ do_iconview (GtkWidget *do_widget)
|
||||
g_signal_connect (home_button, "clicked",
|
||||
G_CALLBACK (home_clicked), store);
|
||||
|
||||
/* We now set which model columns that correspont to the text
|
||||
/* We now set which model columns that correspond to the text
|
||||
* and pixbuf of each item
|
||||
*/
|
||||
gtk_icon_view_set_text_column (GTK_ICON_VIEW (icon_view), COL_DISPLAY_NAME);
|
||||
|
157
demos/gtk-demo/iconview_edit.c
Normal file
157
demos/gtk-demo/iconview_edit.c
Normal file
@@ -0,0 +1,157 @@
|
||||
/* Icon View/Editing and Drag-and-Drop
|
||||
*
|
||||
* The GtkIconView widget supports Editing and Drag-and-Drop.
|
||||
* This example also demonstrates using the generic GtkCellLayout
|
||||
* interface to set up cell renderers in an icon view.
|
||||
*/
|
||||
|
||||
#include <gtk/gtk.h>
|
||||
#include <string.h>
|
||||
#include "demo-common.h"
|
||||
|
||||
static GtkWidget *window = NULL;
|
||||
|
||||
enum
|
||||
{
|
||||
COL_TEXT,
|
||||
NUM_COLS
|
||||
};
|
||||
|
||||
|
||||
static void
|
||||
fill_store (GtkListStore *store)
|
||||
{
|
||||
GtkTreeIter iter;
|
||||
const gchar *text[] = { "Red", "Green", "Blue", "Yellow" };
|
||||
gint i;
|
||||
|
||||
/* First clear the store */
|
||||
gtk_list_store_clear (store);
|
||||
|
||||
for (i = 0; i < 4; i++)
|
||||
{
|
||||
gtk_list_store_append (store, &iter);
|
||||
gtk_list_store_set (store, &iter, COL_TEXT, text[i], -1);
|
||||
}
|
||||
}
|
||||
|
||||
static GtkListStore *
|
||||
create_store (void)
|
||||
{
|
||||
GtkListStore *store;
|
||||
|
||||
store = gtk_list_store_new (NUM_COLS, G_TYPE_STRING);
|
||||
|
||||
return store;
|
||||
}
|
||||
|
||||
static void
|
||||
set_cell_color (GtkCellLayout *cell_layout,
|
||||
GtkCellRenderer *cell,
|
||||
GtkTreeModel *tree_model,
|
||||
GtkTreeIter *iter,
|
||||
gpointer data)
|
||||
{
|
||||
gchar *text;
|
||||
GdkColor color;
|
||||
guint32 pixel = 0;
|
||||
GdkPixbuf *pixbuf;
|
||||
|
||||
gtk_tree_model_get (tree_model, iter, COL_TEXT, &text, -1);
|
||||
if (gdk_color_parse (text, &color))
|
||||
pixel =
|
||||
(color.red >> 8) << 24 |
|
||||
(color.green >> 8) << 16 |
|
||||
(color.blue >> 8) << 8;
|
||||
|
||||
pixbuf = gdk_pixbuf_new (GDK_COLORSPACE_RGB, FALSE, 8, 24, 24);
|
||||
gdk_pixbuf_fill (pixbuf, pixel);
|
||||
|
||||
g_object_set (cell, "pixbuf", pixbuf, NULL);
|
||||
|
||||
g_object_unref (pixbuf);
|
||||
}
|
||||
|
||||
static void
|
||||
edited (GtkCellRendererText *cell,
|
||||
gchar *path_string,
|
||||
gchar *text,
|
||||
gpointer data)
|
||||
{
|
||||
GtkTreeModel *model;
|
||||
GtkTreeIter iter;
|
||||
GtkTreePath *path;
|
||||
|
||||
model = gtk_icon_view_get_model (GTK_ICON_VIEW (data));
|
||||
path = gtk_tree_path_new_from_string (path_string);
|
||||
|
||||
gtk_tree_model_get_iter (model, &iter, path);
|
||||
gtk_list_store_set (GTK_LIST_STORE (model), &iter,
|
||||
COL_TEXT, text, -1);
|
||||
|
||||
gtk_tree_path_free (path);
|
||||
}
|
||||
|
||||
GtkWidget *
|
||||
do_iconview_edit (GtkWidget *do_widget)
|
||||
{
|
||||
if (!window)
|
||||
{
|
||||
GtkWidget *icon_view;
|
||||
GtkListStore *store;
|
||||
GtkCellRenderer *renderer;
|
||||
|
||||
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
|
||||
|
||||
gtk_window_set_screen (GTK_WINDOW (window),
|
||||
gtk_widget_get_screen (do_widget));
|
||||
gtk_window_set_title (GTK_WINDOW (window), "Editing and Drag-and-Drop");
|
||||
|
||||
g_signal_connect (window, "destroy",
|
||||
G_CALLBACK (gtk_widget_destroyed), &window);
|
||||
|
||||
store = create_store ();
|
||||
fill_store (store);
|
||||
|
||||
icon_view = gtk_icon_view_new_with_model (GTK_TREE_MODEL (store));
|
||||
g_object_unref (store);
|
||||
|
||||
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_columns (GTK_ICON_VIEW (icon_view), 2);
|
||||
gtk_icon_view_set_reorderable (GTK_ICON_VIEW (icon_view), TRUE);
|
||||
|
||||
renderer = gtk_cell_renderer_pixbuf_new ();
|
||||
gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (icon_view),
|
||||
renderer, TRUE);
|
||||
gtk_cell_layout_set_cell_data_func (GTK_CELL_LAYOUT (icon_view),
|
||||
renderer,
|
||||
set_cell_color,
|
||||
NULL, NULL);
|
||||
|
||||
renderer = gtk_cell_renderer_text_new ();
|
||||
gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (icon_view),
|
||||
renderer, TRUE);
|
||||
g_object_set (renderer, "editable", TRUE, NULL);
|
||||
g_signal_connect (renderer, "edited", G_CALLBACK (edited), icon_view);
|
||||
gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (icon_view),
|
||||
renderer,
|
||||
"text", COL_TEXT,
|
||||
NULL);
|
||||
|
||||
gtk_container_add (GTK_CONTAINER (window), icon_view);
|
||||
}
|
||||
|
||||
if (!GTK_WIDGET_VISIBLE (window))
|
||||
gtk_widget_show_all (window);
|
||||
else
|
||||
{
|
||||
gtk_widget_destroy (window);
|
||||
window = NULL;
|
||||
}
|
||||
|
||||
return window;
|
||||
}
|
||||
|
@@ -666,7 +666,7 @@ create_text (GtkTextBuffer **buffer,
|
||||
|
||||
if (is_source)
|
||||
{
|
||||
font_desc = pango_font_description_from_string ("Courier 12");
|
||||
font_desc = pango_font_description_from_string ("monospace");
|
||||
gtk_widget_modify_font (text_view, font_desc);
|
||||
pango_font_description_free (font_desc);
|
||||
|
||||
@@ -696,6 +696,7 @@ create_tree (void)
|
||||
GtkTreeViewColumn *column;
|
||||
GtkTreeStore *model;
|
||||
GtkTreeIter iter;
|
||||
GtkWidget *box, *label, *scrolled_window;
|
||||
|
||||
Demo *d = testgtk_demos;
|
||||
|
||||
@@ -763,11 +764,29 @@ create_tree (void)
|
||||
gtk_tree_view_append_column (GTK_TREE_VIEW (tree_view),
|
||||
GTK_TREE_VIEW_COLUMN (column));
|
||||
|
||||
gtk_tree_model_get_iter_first (GTK_TREE_MODEL (model), &iter);
|
||||
gtk_tree_selection_select_iter (GTK_TREE_SELECTION (selection), &iter);
|
||||
|
||||
g_signal_connect (selection, "changed", G_CALLBACK (selection_cb), model);
|
||||
g_signal_connect (tree_view, "row_activated", G_CALLBACK (row_activated_cb), model);
|
||||
|
||||
gtk_tree_view_expand_all (GTK_TREE_VIEW (tree_view));
|
||||
return tree_view;
|
||||
gtk_tree_view_collapse_all (GTK_TREE_VIEW (tree_view));
|
||||
gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (tree_view), FALSE);
|
||||
|
||||
scrolled_window = gtk_scrolled_window_new (NULL, NULL);
|
||||
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window),
|
||||
GTK_POLICY_NEVER,
|
||||
GTK_POLICY_AUTOMATIC);
|
||||
gtk_container_add (GTK_CONTAINER (scrolled_window), tree_view);
|
||||
|
||||
label = gtk_label_new ("Widget (double click for demo)");
|
||||
|
||||
box = gtk_notebook_new ();
|
||||
gtk_notebook_append_page (GTK_NOTEBOOK (box), scrolled_window, label);
|
||||
|
||||
gtk_widget_grab_focus (tree_view);
|
||||
|
||||
return box;
|
||||
}
|
||||
|
||||
static void
|
||||
|
@@ -1,12 +1,12 @@
|
||||
/* Menus
|
||||
*
|
||||
* There are several widgets involved in displaying menus. The
|
||||
* GtkMenuBar widget is a horizontal menu bar, which normally appears
|
||||
* at the top of an application. The GtkMenu widget is the actual menu
|
||||
* that pops up. Both GtkMenuBar and GtkMenu are subclasses of
|
||||
* GtkMenuShell; a GtkMenuShell contains menu items
|
||||
* (GtkMenuItem). Each menu item contains text and/or images and can
|
||||
* be selected by the user.
|
||||
* GtkMenuBar widget is a menu bar, which normally appears horizontally
|
||||
* at the top of an application, but can also be layed out vertically.
|
||||
* The GtkMenu widget is the actual menu that pops up. Both GtkMenuBar
|
||||
* and GtkMenu are subclasses of GtkMenuShell; a GtkMenuShell contains
|
||||
* menu items (GtkMenuItem). Each menu item contains text and/or images
|
||||
* and can be selected by the user.
|
||||
*
|
||||
* There are several kinds of menu item, including plain GtkMenuItem,
|
||||
* GtkCheckMenuItem which can be checked/unchecked, GtkRadioMenuItem
|
||||
@@ -70,10 +70,59 @@ create_menu (gint depth,
|
||||
return menu;
|
||||
}
|
||||
|
||||
static void
|
||||
change_orientation (GtkWidget *button,
|
||||
GtkWidget *menubar)
|
||||
{
|
||||
GtkWidget *parent;
|
||||
GtkWidget *box = NULL;
|
||||
|
||||
parent = gtk_widget_get_parent (menubar);
|
||||
|
||||
if (GTK_IS_VBOX (parent))
|
||||
{
|
||||
box = gtk_widget_get_parent (parent);
|
||||
|
||||
g_object_ref (menubar);
|
||||
gtk_container_remove (GTK_CONTAINER (parent), menubar);
|
||||
gtk_container_add (GTK_CONTAINER (box), menubar);
|
||||
gtk_box_reorder_child (GTK_BOX (box), menubar, 0);
|
||||
g_object_unref (menubar);
|
||||
g_object_set (menubar,
|
||||
"pack-direction", GTK_PACK_DIRECTION_TTB,
|
||||
NULL);
|
||||
}
|
||||
else
|
||||
{
|
||||
GList *children, *l;
|
||||
|
||||
children = gtk_container_get_children (GTK_CONTAINER (parent));
|
||||
for (l = children; l; l = l->next)
|
||||
{
|
||||
if (GTK_IS_VBOX (l->data))
|
||||
{
|
||||
box = l->data;
|
||||
break;
|
||||
}
|
||||
}
|
||||
g_list_free (children);
|
||||
|
||||
g_object_ref (menubar);
|
||||
gtk_container_remove (GTK_CONTAINER (parent), menubar);
|
||||
gtk_container_add (GTK_CONTAINER (box), menubar);
|
||||
gtk_box_reorder_child (GTK_BOX (box), menubar, 0);
|
||||
g_object_unref (menubar);
|
||||
g_object_set (menubar,
|
||||
"pack-direction", GTK_PACK_DIRECTION_LTR,
|
||||
NULL);
|
||||
}
|
||||
}
|
||||
|
||||
GtkWidget *
|
||||
do_menus (GtkWidget *do_widget)
|
||||
{
|
||||
static GtkWidget *window = NULL;
|
||||
GtkWidget *box;
|
||||
GtkWidget *box1;
|
||||
GtkWidget *box2;
|
||||
GtkWidget *button;
|
||||
@@ -99,9 +148,13 @@ do_menus (GtkWidget *do_widget)
|
||||
gtk_window_set_title (GTK_WINDOW (window), "menus");
|
||||
gtk_container_set_border_width (GTK_CONTAINER (window), 0);
|
||||
|
||||
|
||||
|
||||
box = gtk_hbox_new (FALSE, 0);
|
||||
gtk_container_add (GTK_CONTAINER (window), box);
|
||||
gtk_widget_show (box);
|
||||
|
||||
box1 = gtk_vbox_new (FALSE, 0);
|
||||
gtk_container_add (GTK_CONTAINER (window), box1);
|
||||
gtk_container_add (GTK_CONTAINER (box), box1);
|
||||
gtk_widget_show (box1);
|
||||
|
||||
menubar = gtk_menu_bar_new ();
|
||||
@@ -131,7 +184,13 @@ do_menus (GtkWidget *do_widget)
|
||||
gtk_box_pack_start (GTK_BOX (box1), box2, FALSE, TRUE, 0);
|
||||
gtk_widget_show (box2);
|
||||
|
||||
button = gtk_button_new_with_label ("close");
|
||||
button = gtk_button_new_with_label ("Flip");
|
||||
g_signal_connect (button, "clicked",
|
||||
G_CALLBACK (change_orientation), menubar);
|
||||
gtk_box_pack_start (GTK_BOX (box2), button, TRUE, TRUE, 0);
|
||||
gtk_widget_show (button);
|
||||
|
||||
button = gtk_button_new_with_label ("Close");
|
||||
g_signal_connect_swapped (button, "clicked",
|
||||
G_CALLBACK(gtk_widget_destroy), window);
|
||||
gtk_box_pack_start (GTK_BOX (box2), button, TRUE, TRUE, 0);
|
||||
|
73
demos/gtk-demo/pickers.c
Normal file
73
demos/gtk-demo/pickers.c
Normal file
@@ -0,0 +1,73 @@
|
||||
/* Pickers
|
||||
*
|
||||
* These widgets are mainly intended for use in preference dialogs.
|
||||
* They allow to select colors, fonts, files and directories.
|
||||
*/
|
||||
|
||||
#include <gtk/gtk.h>
|
||||
|
||||
GtkWidget *
|
||||
do_pickers (GtkWidget *do_widget)
|
||||
{
|
||||
static GtkWidget *window = NULL;
|
||||
GtkWidget *table, *label, *picker;
|
||||
|
||||
if (!window)
|
||||
{
|
||||
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
|
||||
gtk_window_set_screen (GTK_WINDOW (window),
|
||||
gtk_widget_get_screen (do_widget));
|
||||
gtk_window_set_title (GTK_WINDOW (window), "Pickers");
|
||||
|
||||
g_signal_connect (window, "destroy",
|
||||
G_CALLBACK (gtk_widget_destroyed),
|
||||
&window);
|
||||
|
||||
gtk_container_set_border_width (GTK_CONTAINER (window), 10);
|
||||
|
||||
table = gtk_table_new (4, 2, FALSE);
|
||||
gtk_table_set_col_spacing (GTK_TABLE (table), 0, 10);
|
||||
gtk_table_set_row_spacings (GTK_TABLE (table), 3);
|
||||
gtk_container_add (GTK_CONTAINER (window), table);
|
||||
|
||||
gtk_container_set_border_width (GTK_CONTAINER (table), 10);
|
||||
|
||||
label = gtk_label_new ("Color:");
|
||||
gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
|
||||
picker = gtk_color_button_new ();
|
||||
gtk_table_attach_defaults (GTK_TABLE (table), label, 0, 1, 0, 1);
|
||||
gtk_table_attach_defaults (GTK_TABLE (table), picker, 1, 2, 0, 1);
|
||||
|
||||
label = gtk_label_new ("Font:");
|
||||
gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
|
||||
picker = gtk_font_button_new ();
|
||||
gtk_table_attach_defaults (GTK_TABLE (table), label, 0, 1, 1, 2);
|
||||
gtk_table_attach_defaults (GTK_TABLE (table), picker, 1, 2, 1, 2);
|
||||
|
||||
label = gtk_label_new ("File:");
|
||||
gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
|
||||
picker = gtk_file_chooser_button_new ("Pick a File",
|
||||
GTK_FILE_CHOOSER_ACTION_OPEN);
|
||||
gtk_table_attach_defaults (GTK_TABLE (table), label, 0, 1, 2, 3);
|
||||
gtk_table_attach_defaults (GTK_TABLE (table), picker, 1, 2, 2, 3);
|
||||
|
||||
label = gtk_label_new ("Folder:");
|
||||
gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
|
||||
picker = gtk_file_chooser_button_new ("Pick a Folder",
|
||||
GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER);
|
||||
gtk_table_attach_defaults (GTK_TABLE (table), label, 0, 1, 3, 4);
|
||||
gtk_table_attach_defaults (GTK_TABLE (table), picker, 1, 2, 3, 4);
|
||||
}
|
||||
|
||||
if (!GTK_WIDGET_VISIBLE (window))
|
||||
{
|
||||
gtk_widget_show_all (window);
|
||||
}
|
||||
else
|
||||
{
|
||||
gtk_widget_destroy (window);
|
||||
window = NULL;
|
||||
}
|
||||
|
||||
return window;
|
||||
}
|
392
demos/testgtk/main.c
Normal file
392
demos/testgtk/main.c
Normal file
@@ -0,0 +1,392 @@
|
||||
#include <errno.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <ctype.h>
|
||||
|
||||
#include <gtk/gtk.h>
|
||||
|
||||
#include <demos.h>
|
||||
|
||||
static GtkTextBuffer *info_buffer;
|
||||
static GtkTextBuffer *source_buffer;
|
||||
|
||||
static gchar *current_file = NULL;
|
||||
|
||||
enum {
|
||||
TITLE_COLUMN,
|
||||
FILENAME_COLUMN,
|
||||
FUNC_COLUMN,
|
||||
ITALIC_COLUMN,
|
||||
NUM_COLUMNS
|
||||
};
|
||||
|
||||
gboolean
|
||||
read_line (FILE *stream, GString *str)
|
||||
{
|
||||
int n_read = 0;
|
||||
|
||||
flockfile (stream);
|
||||
|
||||
g_string_truncate (str, 0);
|
||||
|
||||
while (1)
|
||||
{
|
||||
int c;
|
||||
|
||||
c = getc_unlocked (stream);
|
||||
|
||||
if (c == EOF)
|
||||
goto done;
|
||||
else
|
||||
n_read++;
|
||||
|
||||
switch (c)
|
||||
{
|
||||
case '\r':
|
||||
case '\n':
|
||||
{
|
||||
int next_c = getc_unlocked (stream);
|
||||
|
||||
if (!(next_c == EOF ||
|
||||
(c == '\r' && next_c == '\n') ||
|
||||
(c == '\n' && next_c == '\r')))
|
||||
ungetc (next_c, stream);
|
||||
|
||||
goto done;
|
||||
}
|
||||
default:
|
||||
g_string_append_c (str, c);
|
||||
}
|
||||
}
|
||||
|
||||
done:
|
||||
|
||||
funlockfile (stream);
|
||||
|
||||
return n_read > 0;
|
||||
}
|
||||
|
||||
void
|
||||
load_file (const gchar *filename)
|
||||
{
|
||||
FILE *file;
|
||||
GtkTextIter start, end;
|
||||
GString *buffer = g_string_new (NULL);
|
||||
int state = 0;
|
||||
gboolean in_para = 0;
|
||||
|
||||
if (current_file && !strcmp (current_file, filename))
|
||||
return;
|
||||
|
||||
g_free (current_file);
|
||||
current_file = g_strdup (filename);
|
||||
|
||||
gtk_text_buffer_get_bounds (info_buffer, &start, &end);
|
||||
gtk_text_buffer_delete (info_buffer, &start, &end);
|
||||
|
||||
gtk_text_buffer_get_bounds (source_buffer, &start, &end);
|
||||
gtk_text_buffer_delete (source_buffer, &start, &end);
|
||||
|
||||
file = fopen (filename, "r");
|
||||
if (!file)
|
||||
{
|
||||
g_warning ("Cannot open %s: %s\n", filename, g_strerror (errno));
|
||||
return;
|
||||
}
|
||||
|
||||
gtk_text_buffer_get_iter_at_offset (info_buffer, &start, 0);
|
||||
while (read_line (file, buffer))
|
||||
{
|
||||
gchar *p = buffer->str;
|
||||
gchar *q;
|
||||
|
||||
switch (state)
|
||||
{
|
||||
case 0:
|
||||
/* Reading title */
|
||||
while (*p == '/' || *p == '*' || isspace (*p))
|
||||
p++;
|
||||
q = p + strlen (p);
|
||||
while (q > p && isspace (*(q - 1)))
|
||||
q--;
|
||||
|
||||
if (q > p)
|
||||
{
|
||||
int len_chars = g_utf8_pointer_to_offset (p, q);
|
||||
|
||||
end = start;
|
||||
|
||||
g_assert (strlen (p) >= q - p);
|
||||
gtk_text_buffer_insert (info_buffer, &end, p, q - p);
|
||||
start = end;
|
||||
|
||||
gtk_text_iter_backward_chars (&start, len_chars);
|
||||
gtk_text_buffer_apply_tag_by_name (info_buffer, "title", &start, &end);
|
||||
|
||||
start = end;
|
||||
|
||||
state++;
|
||||
}
|
||||
break;
|
||||
|
||||
case 1:
|
||||
/* Reading body of info section */
|
||||
while (isspace (*p))
|
||||
p++;
|
||||
if (*p == '*' && *(p + 1) == '/')
|
||||
{
|
||||
gtk_text_buffer_get_iter_at_offset (source_buffer, &start, 0);
|
||||
state++;
|
||||
}
|
||||
else
|
||||
{
|
||||
int len;
|
||||
|
||||
while (*p == '*' || isspace (*p))
|
||||
p++;
|
||||
|
||||
len = strlen (p);
|
||||
while (isspace (*(p + len - 1)))
|
||||
len--;
|
||||
|
||||
if (len > 0)
|
||||
{
|
||||
if (in_para)
|
||||
gtk_text_buffer_insert (info_buffer, &start, " ", 1);
|
||||
|
||||
g_assert (strlen (p) >= len);
|
||||
gtk_text_buffer_insert (info_buffer, &start, p, len);
|
||||
in_para = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
gtk_text_buffer_insert (info_buffer, &start, "\n", 1);
|
||||
in_para = 0;
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case 2:
|
||||
/* Skipping blank lines */
|
||||
while (isspace (*p))
|
||||
p++;
|
||||
if (*p)
|
||||
{
|
||||
p = buffer->str;
|
||||
state++;
|
||||
/* Fall through */
|
||||
}
|
||||
else
|
||||
break;
|
||||
|
||||
case 3:
|
||||
/* Reading program body */
|
||||
gtk_text_buffer_insert (source_buffer, &start, p, -1);
|
||||
gtk_text_buffer_insert (info_buffer, &start, "\n", 1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
gtk_text_buffer_get_bounds (source_buffer, &start, &end);
|
||||
gtk_text_buffer_apply_tag_by_name (info_buffer, "source", &start, &end);
|
||||
}
|
||||
|
||||
gboolean
|
||||
button_press_event_cb (GtkTreeView *tree_view,
|
||||
GdkEventButton *event,
|
||||
GtkTreeModel *model)
|
||||
{
|
||||
if (event->type == GDK_2BUTTON_PRESS)
|
||||
{
|
||||
GtkTreePath *path = NULL;
|
||||
|
||||
gtk_tree_view_get_path_at_pos (tree_view,
|
||||
event->window,
|
||||
event->x,
|
||||
event->y,
|
||||
&path,
|
||||
NULL);
|
||||
|
||||
if (path)
|
||||
{
|
||||
GtkTreeIter iter;
|
||||
gboolean italic;
|
||||
GVoidFunc func;
|
||||
|
||||
gtk_tree_model_get_iter (model, &iter, path);
|
||||
gtk_tree_store_get (GTK_TREE_STORE (model),
|
||||
&iter,
|
||||
FUNC_COLUMN, &func,
|
||||
ITALIC_COLUMN, &italic,
|
||||
-1);
|
||||
(func) ();
|
||||
gtk_tree_store_set (GTK_TREE_STORE (model),
|
||||
&iter,
|
||||
ITALIC_COLUMN, !italic,
|
||||
-1);
|
||||
gtk_tree_path_free (path);
|
||||
}
|
||||
|
||||
gtk_signal_emit_stop_by_name (GTK_OBJECT (tree_view),
|
||||
"button_press_event");
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static void
|
||||
selection_cb (GtkTreeSelection *selection,
|
||||
GtkTreeModel *model)
|
||||
{
|
||||
GtkTreeIter iter;
|
||||
GValue value = {0, };
|
||||
|
||||
if (! gtk_tree_selection_get_selected (selection, NULL, &iter))
|
||||
return;
|
||||
|
||||
gtk_tree_model_get_value (model, &iter,
|
||||
FILENAME_COLUMN,
|
||||
&value);
|
||||
load_file (g_value_get_string (&value));
|
||||
g_value_unset (&value);
|
||||
}
|
||||
|
||||
static GtkWidget *
|
||||
create_text (GtkTextBuffer **buffer,
|
||||
gboolean is_source)
|
||||
{
|
||||
GtkWidget *scrolled_window;
|
||||
GtkWidget *text_view;
|
||||
PangoFontDescription *font_desc;
|
||||
|
||||
scrolled_window = gtk_scrolled_window_new (NULL, NULL);
|
||||
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window),
|
||||
GTK_POLICY_AUTOMATIC,
|
||||
GTK_POLICY_AUTOMATIC);
|
||||
gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolled_window),
|
||||
GTK_SHADOW_IN);
|
||||
|
||||
text_view = gtk_text_view_new ();
|
||||
gtk_container_add (GTK_CONTAINER (scrolled_window), text_view);
|
||||
|
||||
*buffer = gtk_text_buffer_new (NULL);
|
||||
gtk_text_view_set_buffer (GTK_TEXT_VIEW (text_view), *buffer);
|
||||
gtk_text_view_set_editable (GTK_TEXT_VIEW (text_view), FALSE);
|
||||
gtk_text_view_set_cursor_visible (GTK_TEXT_VIEW (text_view), FALSE);
|
||||
|
||||
if (is_source)
|
||||
{
|
||||
font_desc = pango_font_description_from_string ("Courier 10");
|
||||
gtk_widget_modify_font (text_view, font_desc);
|
||||
pango_font_description_free (font_desc);
|
||||
}
|
||||
|
||||
gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (text_view), !is_source);
|
||||
|
||||
return scrolled_window;
|
||||
}
|
||||
|
||||
/* Technically a list, but if we do go to 80 demos, we may want to move to a tree */
|
||||
static GtkWidget *
|
||||
create_tree (void)
|
||||
{
|
||||
GtkTreeSelection *selection;
|
||||
GtkCellRenderer *cell;
|
||||
GtkWidget *tree_view;
|
||||
GtkTreeViewColumn *column;
|
||||
GtkTreeStore *model;
|
||||
GtkTreeIter iter;
|
||||
gint i;
|
||||
|
||||
model = gtk_tree_store_new_with_types (NUM_COLUMNS, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_POINTER, G_TYPE_BOOLEAN);
|
||||
tree_view = gtk_tree_view_new_with_model (GTK_TREE_MODEL (model));
|
||||
selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (tree_view));
|
||||
|
||||
gtk_tree_selection_set_type (GTK_TREE_SELECTION (selection),
|
||||
GTK_TREE_SELECTION_SINGLE);
|
||||
gtk_widget_set_usize (tree_view, 200, -1);
|
||||
|
||||
for (i=0; i < G_N_ELEMENTS (testgtk_demos); i++)
|
||||
{
|
||||
gtk_tree_store_append (GTK_TREE_STORE (model), &iter, NULL);
|
||||
|
||||
gtk_tree_store_set (GTK_TREE_STORE (model),
|
||||
&iter,
|
||||
TITLE_COLUMN, testgtk_demos[i].title,
|
||||
FILENAME_COLUMN, testgtk_demos[i].filename,
|
||||
FUNC_COLUMN, testgtk_demos[i].func,
|
||||
ITALIC_COLUMN, FALSE,
|
||||
-1);
|
||||
}
|
||||
|
||||
cell = gtk_cell_renderer_text_new ();
|
||||
column = gtk_tree_view_column_new_with_attributes ("Widget",
|
||||
cell,
|
||||
"text", TITLE_COLUMN,
|
||||
"italic", ITALIC_COLUMN,
|
||||
NULL);
|
||||
gtk_tree_view_append_column (GTK_TREE_VIEW (tree_view),
|
||||
GTK_TREE_VIEW_COLUMN (column));
|
||||
|
||||
gtk_signal_connect (GTK_OBJECT (selection), "selection_changed", selection_cb, model);
|
||||
gtk_signal_connect (GTK_OBJECT (tree_view), "button_press_event", GTK_SIGNAL_FUNC (button_press_event_cb), model);
|
||||
|
||||
return tree_view;
|
||||
}
|
||||
|
||||
int
|
||||
main (int argc, char **argv)
|
||||
{
|
||||
GtkWidget *window;
|
||||
GtkWidget *notebook;
|
||||
GtkWidget *hbox;
|
||||
GtkWidget *tree;
|
||||
GtkTextTag *tag;
|
||||
|
||||
gtk_init (&argc, &argv);
|
||||
|
||||
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
|
||||
gtk_signal_connect (GTK_OBJECT (window), "destroy",
|
||||
GTK_SIGNAL_FUNC (gtk_main_quit), NULL);
|
||||
|
||||
hbox = gtk_hbox_new (FALSE, 0);
|
||||
gtk_container_add (GTK_CONTAINER (window), hbox);
|
||||
|
||||
tree = create_tree ();
|
||||
gtk_box_pack_start (GTK_BOX (hbox), tree, FALSE, FALSE, 0);
|
||||
|
||||
notebook = gtk_notebook_new ();
|
||||
gtk_box_pack_start (GTK_BOX (hbox), notebook, TRUE, TRUE, 0);
|
||||
|
||||
gtk_notebook_append_page (GTK_NOTEBOOK (notebook),
|
||||
create_text (&info_buffer, FALSE),
|
||||
gtk_label_new ("Info"));
|
||||
|
||||
|
||||
gtk_notebook_append_page (GTK_NOTEBOOK (notebook),
|
||||
create_text (&source_buffer, TRUE),
|
||||
gtk_label_new ("Source"));
|
||||
|
||||
tag = gtk_text_buffer_create_tag (info_buffer, "title");
|
||||
gtk_object_set (GTK_OBJECT (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);
|
||||
|
||||
gtk_window_set_default_size (GTK_WINDOW (window), 600, 400);
|
||||
gtk_widget_show_all (window);
|
||||
|
||||
|
||||
load_file (testgtk_demos[0].filename);
|
||||
|
||||
gtk_main ();
|
||||
|
||||
return 0;
|
||||
}
|
@@ -525,7 +525,7 @@ main (int argc, char **argv)
|
||||
|
||||
gtk_init (&argc, &argv);
|
||||
|
||||
/* gdk_rgb_set_verbose (TRUE); */
|
||||
/* gdk_rgb_set_verbose (TRUE);*/
|
||||
|
||||
gtk_widget_set_default_colormap (gdk_rgb_get_colormap ());
|
||||
|
||||
|
161
docs/focus_tracking.txt
Normal file
161
docs/focus_tracking.txt
Normal file
@@ -0,0 +1,161 @@
|
||||
Notational conventions
|
||||
======================
|
||||
|
||||
We have a window W that we are tracking events on. Focus
|
||||
can be on the following classes of objects
|
||||
|
||||
None : defined by X protocol
|
||||
PointerRoot : defined by X protocol
|
||||
W : the window itself
|
||||
Ancestor : An ancestor of W, including W's root window
|
||||
Descendant : A descendant of W
|
||||
Other: : A window that is neither an ancestor or
|
||||
descendant of W
|
||||
|
||||
has_pointer(W): the pointer is in W or one of its descendants.
|
||||
|
||||
NotifyPointer events
|
||||
====================
|
||||
|
||||
X sends FocusIn or FocusOut events to W with a detail of NotifyPointer
|
||||
in the following transitions, when the pointer is inside W
|
||||
|
||||
Other => Ancestor: FocusIn
|
||||
Ancestor => {Other,None}: FocusOut
|
||||
Ancestor => PointerRoot: FocusOut, then FocusIn
|
||||
{None,W,Descendant,Other} => PointerRoot: FocusIn
|
||||
PointerRoot => Ancestor: FocusOut, then FocusIn
|
||||
PointerRoot => {None,W,Descendant,Other} => FocusOut
|
||||
|
||||
[ Ignoring keyboard grabs for the moment ]
|
||||
|
||||
Basic focus tracking algorithm
|
||||
==============================
|
||||
|
||||
Keystroke events are delivered within W if and only if one of two
|
||||
predicates hold:
|
||||
|
||||
has_focus_window(W): F==W || F==Descendant
|
||||
has_pointer_focus(W): (F==Ancestor || F==PointerRoot) && has_pointer(W)
|
||||
|
||||
These two conditions are mutually exclusive.
|
||||
|
||||
has_focus_window(W) is easy to track.
|
||||
|
||||
FocusIn: detail != NotifyInferior: Set has_focus_iwndow
|
||||
FocusOut: detail != NotifyInferior: Clear has_focus_iwndow
|
||||
|
||||
has_pointer_focus(W) is harder to track.
|
||||
|
||||
We can separate out the transitions from !has_pointer_focus(W) to
|
||||
has_pointer_focus(W) into four cases:
|
||||
|
||||
T1: [(F==W || F==Descendant) => F==Ancestor]; has_pointer(W)
|
||||
|
||||
T2: [(F==W || F==Descendant) => F==PointerRoot]; has_pointer(W)
|
||||
|
||||
T3: [(F==None || F==Other) => (F==PointerRoot || F==Ancestor)];
|
||||
has_pointer(W)
|
||||
|
||||
T4: [!has_pointer(W) => has_pointer(W)]; (F==Ancestor || F==PointerRoot)
|
||||
|
||||
All of these can be tracked by watching events on W.
|
||||
|
||||
T1:, we get a FocusOut with a mode of Ancestor or Virtual
|
||||
We need to separately track has_pointer(W) to distinguish
|
||||
this from the case where we get these events and !has_pointer(W)
|
||||
|
||||
T2, T3: together these are exactly the cases where we get
|
||||
FocusIn/NotifyPointer.
|
||||
|
||||
For T4, we get an EnterNotify with the focus flag set. An
|
||||
EnterNotify with a focus flag set will also be sent if
|
||||
F==W, so we have to to explicitly test for that case
|
||||
using has_focus_window(W)
|
||||
|
||||
|
||||
The transitions from has_pointer_focus(W) to !has_pointer_focus(W)
|
||||
are exactly the opposite
|
||||
|
||||
F1: [(F==W || F==Descendant) <= F==Ancestor]; has_pointer(W)
|
||||
|
||||
F2: [(F==W || F==Descendant) <= F==PointerRoot]; has_pointer(W)
|
||||
|
||||
F3: [(F==None || F==Other) <= (F==PointerRoot || F==Ancestor)];
|
||||
has_pointer(W)
|
||||
|
||||
F4: [!has_pointer(W) <= has_pointer(W)]; (F==Ancestor || F==PointerRoot)
|
||||
|
||||
And can be tracked in the same ways:
|
||||
|
||||
F1: we get a FocusIn with a mode of Ancestor or Virtual
|
||||
We need to separately track has_pointer(W) to distinguish
|
||||
this from the case we get these events and !has_pointer(W)
|
||||
|
||||
F2, F3: together these are exactly the cases where we get
|
||||
FocusOut/NotifyPointer.
|
||||
|
||||
F4: we get an LeaveNotify with the focus flag set. An
|
||||
LeaveNotify with a focus flag set will also be sent if
|
||||
F==W, so we have to to explicity test for that case
|
||||
using has_focus_window(W).
|
||||
|
||||
|
||||
Modifications for keyboard grabs
|
||||
================================
|
||||
|
||||
The above algorithm ignores keyboard grabs, which also
|
||||
generate focus events, and needs to be modified somewhat
|
||||
to take keyboard grabs into effect. The basic idea
|
||||
is that for has_pointer_focus(W)/has_window_focus(W) we track
|
||||
them ignoring grabs and ungrabs, and then supplement
|
||||
that with another predicate has_focus(W) which pays
|
||||
attention to grabs and ungrabs.
|
||||
|
||||
Modification 1:
|
||||
|
||||
When tracking has_pointer_focus(W), ignore all Focus
|
||||
events with a mode of NotifyGrab or NotifyUngrab.
|
||||
|
||||
Note that this means that with grabs, we don't perfectly.
|
||||
track the delivery of keyboard events ... since we think
|
||||
we are getting events in the case where
|
||||
|
||||
has_pointer_focus(W) && !(G == None || G==W || G==descendant)
|
||||
|
||||
But the X protocol doesn't provide sufficient information
|
||||
to do this right... example:
|
||||
|
||||
F=Ancestor, G=None => F=Ancestor, G=Ancestor
|
||||
|
||||
We stop getting events, but receive no notification.
|
||||
|
||||
The case of no window manager and keyboard grabs is pretty
|
||||
rare in any case.
|
||||
|
||||
Modification 2:
|
||||
|
||||
When tracking has_focus_window(W), ignore all Focus
|
||||
events with a mode of NotifyGrab or NotifyUngrab.
|
||||
|
||||
Modification 3: instead of calculating focus as
|
||||
|
||||
has_focus_window(W) || has_pointer_focus(W)
|
||||
|
||||
Calculate it as
|
||||
|
||||
has_focus(W) || has_pointer_focus(W)
|
||||
|
||||
where has_focus(W) is defined as:
|
||||
|
||||
has_focus(W): F==W || F==Descendant || G=W
|
||||
|
||||
Tracking has_focus(W) is done by
|
||||
|
||||
FocusIn: detail != NotifyInferior, mode != NotifyWhileGrabbed:
|
||||
set has_focus
|
||||
FocusOut: detail != NotifyInferior, mode != NotifyWhileGrabbed:
|
||||
clear has_focus
|
||||
|
||||
We still need to track has_focus_window(W) for the T4/F4
|
||||
transitions.
|
163
docs/iconcache.txt
Normal file
163
docs/iconcache.txt
Normal file
@@ -0,0 +1,163 @@
|
||||
Information about the icon theme cache format used by GTK+
|
||||
for more information, see the mailing list threads at
|
||||
|
||||
http://mail.gnome.org/archives/gtk-devel-list/2004-April/msg00065.html
|
||||
http://lists.freedesktop.org/archives/xdg/2004-October/005140.html
|
||||
|
||||
|
||||
Back in May, Owen Taylor proposed [1] caching scheme for icon theme
|
||||
information, to reduce the amount of stating and disk seeking at
|
||||
application startup, and to reduce the memory overhead if each app
|
||||
allocates all the icon theme data separately.
|
||||
|
||||
The proposal is to keep the information about the icons in the
|
||||
directory tree below each icon theme directory in an mmap()able
|
||||
cache file (There is basically one cache file per index.theme file).
|
||||
|
||||
The cache doesn't try to hold all information from the index.theme files
|
||||
that you would need to do lookups; it turns out that with the icon theme
|
||||
specification, this isn't even sensible - you can install a
|
||||
|
||||
$HOME/.local/share/icons/Bluecurve/index.theme
|
||||
|
||||
That overrides
|
||||
|
||||
/usr/share/icons/Bluecurve/index.theme
|
||||
|
||||
and chances how lookup happens for icons in /usr/share/icons/Bluecurve.
|
||||
|
||||
We would like to propose the cache file format as an appendix to the
|
||||
icon theme specification. One thing which still needs to be investigated
|
||||
is caching of the actual image data; the file format is has an
|
||||
IMAGE_DATA_OFFSET member to allow adding that compatibly. An
|
||||
implementation of the caching scheme for GTK+ can be found at [2]. The
|
||||
cache generator which is included in the patch depends only on glib, and
|
||||
it may be a good idea to move it to freedesktop.org as well.
|
||||
|
||||
|
||||
Regards, Matthias Clasen
|
||||
|
||||
|
||||
The cache file format:
|
||||
|
||||
Header:
|
||||
2 CARD16 MAJOR_VERSION 1
|
||||
2 CARD16 MINOR_VERSION 0
|
||||
4 CARD32 HASH_OFFSET
|
||||
4 CARD32 DIRECTORY_LIST_OFFSET
|
||||
|
||||
DirectoryList:
|
||||
4 CARD32 N_DIRECTORIES
|
||||
4*N_DIRECTORIES CARD32 DIRECTORY_OFFSET
|
||||
|
||||
Hash:
|
||||
4 CARD32 N_BUCKETS
|
||||
4*N_BUCKETS CARD32 ICON_OFFSET
|
||||
|
||||
Icon:
|
||||
4 CARD32 CHAIN_OFFSET
|
||||
4 CARD32 NAME_OFFSET
|
||||
4 CARD32 IMAGE_LIST_OFFSET
|
||||
|
||||
ImageList:
|
||||
4 CARD32 N_IMAGES
|
||||
8*N_IMAGES Image IMAGES
|
||||
|
||||
Image:
|
||||
2 CARD16 DIRECTORY_INDEX
|
||||
2 ICON_FLAGS FLAGS
|
||||
4 CARD32 IMAGE_DATA_OFFSET
|
||||
|
||||
ICON_FLAGS
|
||||
HAS_SUFFIX_PNG 1
|
||||
HAS_SUFFIX_XPM 2
|
||||
HAS_SUFFIX_SVG 4
|
||||
HAS_ICON_FILE 8
|
||||
|
||||
ImageData:
|
||||
4 CARD32 IMAGE_PIXEL_DATA_OFFSET
|
||||
4 CARD32 IMAGE_META_DATA_OFFSET
|
||||
|
||||
4 CARD32 IMAGE_PIXEL_DATA_TYPE
|
||||
4 CARD32 IMAGE_PIXEL_DATA_LENGTH
|
||||
N/A N/A PIXEL_DATA
|
||||
|
||||
IMAGE_PIXEL_DATA_TYPE
|
||||
0 GdkPixdata format
|
||||
|
||||
MetaData:
|
||||
4 CARD32 EMBEDDED_RECT_OFFSET
|
||||
4 CARD32 ATTACH_POINT_LIST_OFFSET
|
||||
4 CARD32 DISPLAY_NAME_LIST_OFFSET
|
||||
|
||||
EmbeddedRect:
|
||||
2 CARD16 X0
|
||||
2 CARD16 Y0
|
||||
2 CARD16 X1
|
||||
2 CARD16 Y1
|
||||
|
||||
AttachPointList:
|
||||
4 CARD32 N_ATTACH_POINTS
|
||||
4*N_ATTACH_POINTS AttachPoint
|
||||
|
||||
AttachPoint:
|
||||
2 CARD16 X
|
||||
2 CARD16 Y
|
||||
|
||||
DisplayNameList:
|
||||
4 CARD32 N_DISPLAY_NAMES
|
||||
4*N_DISPLAY_NAMES DisplayName
|
||||
|
||||
DisplayName:
|
||||
4 CARD32 DISPLAY_LANG_OFFSET
|
||||
4 CARD32 DISPLAY_NAME_OFFSET
|
||||
|
||||
|
||||
Notes:
|
||||
|
||||
* All offsets are from in bytes from the beginning of the file
|
||||
|
||||
* Strings are zero-terminated
|
||||
|
||||
* Directories are stored as relative paths.
|
||||
|
||||
* All numbers are in network (big-endian) order. This is
|
||||
necessary because the data will be stored in arch-independent
|
||||
directories like /usr/share/icons or even in user's
|
||||
home directories.
|
||||
|
||||
* The hash function is that used by g_str_hash()
|
||||
|
||||
unsigned int
|
||||
icon_str_hash (gconstpointer key)
|
||||
{
|
||||
const char *p = key;
|
||||
unsigned int h = *p;
|
||||
|
||||
if (h)
|
||||
for (p += 1; *p != '\0'; p++)
|
||||
h = (h << 5) - h + *p;
|
||||
|
||||
return h;
|
||||
}
|
||||
|
||||
This should not be implemented by calling g_str_hash(). For
|
||||
optimal results, N_BUCKETS should be typically be prime.
|
||||
|
||||
* The same file format is used for icon themes (e.g.,
|
||||
/usr/share/icons/Bluecurve) and for unthemed icon directories
|
||||
(e.g., /usr/share/pixmaps)
|
||||
|
||||
For an unthemed directory, N_DIRECTORIES==0 and each
|
||||
image has a DIRECTORY_INDEX field of 0xFFFF.
|
||||
|
||||
* Up-to-dateness of a cache file is determined simply:
|
||||
|
||||
If the mod-time on the directory where the cache file
|
||||
lives is newer than the mod-time of the cache file,
|
||||
the cache file is out of date.
|
||||
|
||||
* Cache files have to be written atomically - write to a
|
||||
temporary name, then move over the old file - so that
|
||||
clients that have the old cache file open and mmap'ed
|
||||
won't get corrupt data.
|
@@ -1,24 +1,505 @@
|
||||
2005-04-12 Matthias Clasen <mclasen@redhat.com>
|
||||
2005-11-28 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* gtk/tmpl/gtkobject.sgml: Update docs on floating references
|
||||
|
||||
* === Releases 2.6.7 ====
|
||||
2005-11-23 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
2005-04-10 Matthias Clasen <mclasen@redhat.com>
|
||||
* gtk/tmpl/gtkrc.sgml: Document symbolic colors and
|
||||
color expressions.
|
||||
|
||||
* === Released 2.6.6 ===
|
||||
2005-11-23 Michael Natterer <mitch@imendio.com>
|
||||
|
||||
2005-04-09 Matthias Clasen <mclasen@redhat.com>
|
||||
* gtk/gtk-sections.txt: add gtk_style_lookup_color
|
||||
|
||||
* === Released 2.6.5 ===
|
||||
2005-11-21 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* gtk/gtk-sections.txt: Add gtk_combo_box_[sg]et_title
|
||||
|
||||
* gtk/Makefile.am (HTML_IMAGES): Fix some _ vs - confusion.
|
||||
|
||||
2005-11-14 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* gtk/tmpl/gtkstock.sgml:
|
||||
* gtk/Makefile.am (HTML_IMAGES): Update stock documentation
|
||||
to refer to the new icon names.
|
||||
|
||||
2005-11-10 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* gtk/gtk-sections.txt: Add new api.
|
||||
|
||||
2005-11-07 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* gtk/gtk-update-icon-cache.xml:
|
||||
* gtk/gtk-update-icon-cache.1: Document the --source option.
|
||||
|
||||
2005-10-25 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* gtk/tmpl/gtkfilechooser.sgml: Don't use deprecated functions
|
||||
in examples. (#319524, Vincent Untz)
|
||||
|
||||
* gtk/gtk-update-icon-cache.xml: Fix a typo. (#319524, Vincent Untz)
|
||||
|
||||
2005-10-06 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* gtk/gtk-sections.txt: Add gtk_text_buffer_get_has_selection().
|
||||
|
||||
2005-10-05 Federico Mena Quintero <federico@ximian.com>
|
||||
|
||||
* gtk/tmpl/gtkfilechooser.sgml: Document the "quick-bookmark"
|
||||
binding signal.
|
||||
|
||||
2005-10-04 Federico Mena Quintero <federico@ximian.com>
|
||||
|
||||
* gtk/tmpl/gtkfilechooser.sgml: Document the "desktop-folder"
|
||||
binding signal.
|
||||
|
||||
2005-09-26 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* gdk/tmpl/gcs.sgml: Fix a comment.
|
||||
|
||||
2005-09-22 Michael Natterer <mitch@imendio.com>
|
||||
|
||||
* gtk/gtk-docs.sgml
|
||||
* gtk/gtk-sections.txt
|
||||
* gtk/gtk.types: GtkCellRendererKeys -> GtkCellRendererAccel
|
||||
|
||||
Tue Sep 20 17:16:50 2005 Tim Janik <timj@imendio.com>
|
||||
|
||||
* gtk/tmpl/gtkrc.sgml: added anchor. complexity doesn't get worse
|
||||
than O(n^2) with recent glib.
|
||||
|
||||
2005-09-15 Federico Mena Quintero <federico@ximian.com>
|
||||
|
||||
* gtk/tmpl/gtkfilechooser.sgml: List all the default key bindings.
|
||||
Fix the documentation for the "location-popup" binding signal; its
|
||||
"path" argument was not listed. Mention a tip to have a crude
|
||||
form of bookmarks accessible through key bindings.
|
||||
|
||||
2005-09-13 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* gtk/tmpl/gtkeditable.sgml: Clarify docs
|
||||
for ::insert-text signal. (#316094, Tommi
|
||||
Komulainen)
|
||||
|
||||
Tue Sep 13 14:16:27 2005 Tim Janik <timj@imendio.com>
|
||||
|
||||
* gtk/tmpl/gtkrc.sgml: fixed wording and typos in some places.
|
||||
added a new section "Optimizing RC Style Matches".
|
||||
|
||||
2005-09-11 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* gdk/gdk-sections.txt: Add gdk_intern_static_string.
|
||||
|
||||
2005-09-09 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* gtk/gtk-docs.sgml:
|
||||
* gtk/gtk-sections.txt: Add a section for GtkCellRendererKeys
|
||||
|
||||
* gdk/tmpl/event_structs.sgml: Document GdkEventKey.is_modifier.
|
||||
|
||||
2005-09-06 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* gdk/tmpl/windows.sgml: Document new modifier bits.
|
||||
|
||||
2005-09-05 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* gtk/tmpl/gtkpaned.sgml: Fix some typos.
|
||||
(#315208, Vincent Untz)
|
||||
|
||||
2005-08-30 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* gtk/gtk-sections.txt: Add gtk_window_[sg]et_deletable.
|
||||
Add gtk_selection_data_targets_include_uri.
|
||||
Add gtk_targets_include... functions.
|
||||
|
||||
2005-08-29 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* gtk/tmpl/gtkstatusicon.sgml: Add a long description.
|
||||
|
||||
* gtk/Makefile.am (HTML_IMAGES): Add stock_select_all_24.png
|
||||
|
||||
* gtk/gtk-sections.txt:
|
||||
* gtk/tmpl/gtkstock.sgml: Add GTK_STOCK_SELECT_ALL.
|
||||
|
||||
* gtk/gtk.types: Add gtk_status_icon_get_type
|
||||
|
||||
* gtk/gtk-docs.sgml: Add GtkStatusIcon
|
||||
|
||||
* gtk/gtk-sections.txt: Add GtkStatusIcon
|
||||
|
||||
2005-08-26 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* gtk/gtk-update-icon-cache.xml:
|
||||
* gtk/gtk-update-icon-cache.1: Updates.
|
||||
|
||||
2005-08-26 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* gdk-pixbuf/gdk-pixbuf.sgml:
|
||||
* gdk/gdk-docs.sgml:
|
||||
* gtk/gtk-docs.sgml: Add indices for new
|
||||
symbols in 2.10
|
||||
|
||||
* gdk/gdk-sections.txt: Add font options
|
||||
API.
|
||||
|
||||
2005-08-24 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* === Released 2.8.2 ===
|
||||
|
||||
* === Released 2.8.1 ===
|
||||
|
||||
2005-08-23 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* gtk/gtk-update-icon-cache.xml:
|
||||
* gtk/gtk-update-icon-cache.1: Updates.
|
||||
|
||||
2005-08-16 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* gtk/tmpl/gtktreemodel.sgml: Fix an
|
||||
example. (#313595, Olexiy Avramchenko)
|
||||
|
||||
2005-08-13 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* === Released 2.8.0 ===
|
||||
|
||||
2005-08-12 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* gdk-pixbuf/tmpl/scaling.sgml: Remove a
|
||||
confusing gdk_window_set_back_pixmap() call
|
||||
from the example, pointed out by Owen
|
||||
Taylor.
|
||||
|
||||
2005-08-11 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* gtk/building.sgml: Updates.
|
||||
|
||||
2005-08-06 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* gtk/Makefile.am: Add new stock images.
|
||||
|
||||
* gtk/gtk-sections.txt:
|
||||
* gtk/Makefile.am:
|
||||
* gdk-pixbuf/gdk-pixbuf-sections.txt:
|
||||
* gdk/tmpl/images.sgml: Small fixes
|
||||
|
||||
2005-08-02 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* === Released 2.7.5 ===
|
||||
|
||||
2005-08-03 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* gtk/gtk.types: Add gtk_clipboard_get_type. (#312443, Danny Milo)
|
||||
|
||||
2005-07-22 Federico Mena Quintero <federico@ximian.com>
|
||||
|
||||
* gtk/migrating-checklist.sgml: Call gtk_menu_attach_to_widget()
|
||||
in the example for the ::popup-menu signal.
|
||||
|
||||
2005-07-25 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* gtk/tmpl/gtktreemodelsort.sgml: Note that the sorting
|
||||
function is not guaranteed to be stable. (#311398,
|
||||
Fabrice Bauzac)
|
||||
|
||||
2005-07-22 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* === Released 2.7.4 ===
|
||||
|
||||
2005-07-22 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* gdk-pixbuf/tmpl/module_interface.sgml: Document unanchored
|
||||
patterns.
|
||||
|
||||
2005-07-21 Federico Mena Quintero <federico@ximian.com>
|
||||
|
||||
* gtk/tmpl/gtkfilechooserdialog.sgml (dialog): Expand the Save
|
||||
example to point out the correct usage of _set_current_folder()
|
||||
and _set_current_name(), versus _set_filename() alone.
|
||||
|
||||
2005-07-15 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* === Released 2.7.3 ===
|
||||
|
||||
2005-07-15 Federico Mena Quintero <federico@ximian.com>
|
||||
|
||||
* gtk/tmpl/gtkfilechooser.sgml: Add "Since 2.8" to the signal and enum.
|
||||
|
||||
2005-07-15 Federico Mena Quintero <federico@ximian.com>
|
||||
|
||||
* gtk/tmpl/gtkfilechooserdialog.sgml: Add a "save" example to the
|
||||
typical usage.
|
||||
|
||||
* gtk/gtk-sections.txt: Add GtkFileChooserConfirmation,
|
||||
gtk_file_chooser_set_do_overwrite_confirmation,
|
||||
gtk_file_chooser_get_do_overwrite_confirmation.
|
||||
|
||||
* gtk/tmpl/gtkfilechooser.sgml: Document the confirmation signal
|
||||
and enumeration; provide an example.
|
||||
|
||||
2005-07-14 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* gtk/gtk-sections.txt: Add new api.
|
||||
|
||||
2005-07-11 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* gdk/gdk-sections.txt: Add new api.
|
||||
|
||||
2005-07-10 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* gdk/tmpl/windows.sgml: Update links to the EWMH. (#309910,
|
||||
Park Ji-In)
|
||||
|
||||
2005-07-08 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* === Released 2.7.2 ===
|
||||
|
||||
* gdk-pixbuf/gdk-pixbuf-sections.txt: Remove duplicate entries.
|
||||
|
||||
2005-07-08 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* gdk/gdk-docs.sgml: Fix the "new in 2.8" index.
|
||||
|
||||
* gdk-pixbuf/gdk-pixbuf.sgml: Add the "new in 2.8" index.
|
||||
|
||||
2005-07-07 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* gtk/migrating-GtkIconView.sgml: Corrections.
|
||||
(#309718, Tim-Philipp M<>ller)
|
||||
|
||||
2005-07-06 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* gdk/tmpl/general.sgml: Point to GdkEventGrabBroken
|
||||
from the gdk_pointer_grab and gdk_keyboard_grab docs.
|
||||
|
||||
2005-07-05 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* gtk/building.sgml: Document Cairo as a
|
||||
dependency.
|
||||
|
||||
* gtk/images/file-button.png: Update (#309409,
|
||||
Peter van den Bosch)
|
||||
|
||||
2005-07-05 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* gtk/gtk-sections.txt: Add new api.
|
||||
|
||||
2005-07-04 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* gtk/framebuffer.sgml: Add a warning.
|
||||
|
||||
2005-07-01 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* === Released 2.7.1 ===
|
||||
|
||||
2005-06-29 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* gdk/tmpl/images.sgml:
|
||||
* gdk/tmpl/dnd.sgml:
|
||||
* gdk/tmpl/events.sgml:
|
||||
* gdk/tmpl/windows.sgml:
|
||||
* gdk/tmpl/visuals.sgml:
|
||||
* gdk/tmpl/cairo_interaction.sgml:
|
||||
* gdk/tmpl/event_structs.sgml:
|
||||
* gdk/tmpl/input_devices.sgml:
|
||||
* gtk/gtk-sections.txt:
|
||||
* gtk/Makefile.am (IGNORE_HFILES):
|
||||
* gtk/tmpl/gtkstock.sgml: Updates.
|
||||
|
||||
2005-06-28 Ross Burton <ross@burtonini.com>
|
||||
|
||||
* gtk/tmpl/gtkcomboboxentry.sgml: Clarify.
|
||||
|
||||
2005-06-27 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* gdk/tmpl/event_structs.sgml: Update docs.
|
||||
|
||||
2005-06-25 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* gdk/gdk-sections.txt: Add GdkEventGrabBroken.
|
||||
|
||||
2005-06-21 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* gdk/gdk-sections.txt: Add gdk_window_move_region
|
||||
|
||||
2005-06-20 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* === Released 2.7.0 ===
|
||||
|
||||
2005-06-20 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* gtk/gtk-sections.txt: Add gtk_window_present_with_time
|
||||
|
||||
2005-06-19 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* gtk/Makefile.am: Ignore some more headers.
|
||||
|
||||
* gtk/gtk-sections.txt: Updates.
|
||||
|
||||
2005-06-18 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* gtk/tmpl/gtkuimanager.sgml: Document that
|
||||
toolitem elements may have menu subelements.
|
||||
|
||||
* gtk/gtk-sections.txt: Updates
|
||||
|
||||
2005-06-17 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* gtk/gtk-sections.txt:
|
||||
* gdk/gdk-sections.txt: Add urgency hint API.
|
||||
|
||||
2005-06-14 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* gdk/gdk-sections.txt: Add new functions.
|
||||
|
||||
2005-06-13 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* gtk/gtk-sections.txt: Add new functions.
|
||||
|
||||
* gtk/tmpl/gtkfontsel.sgml: Some more details (#307384, Billy
|
||||
Biggs)
|
||||
|
||||
2005-06-11 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* gtk/gtk-sections.txt: Add gtk_icon_view_get_visible_range
|
||||
|
||||
2005-06-10 Michael Natterer <mitch@imendio.com>
|
||||
|
||||
* gtk/gtk-sections.txt: Add gtk_action_get_accel_closure
|
||||
|
||||
2005-06-10 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* gtk/tmpl/gtkclipboard.sgml:
|
||||
* gtk/gtk-sections.txt: Add GtkClipboardIamgeReceivedFunc
|
||||
|
||||
* gtk/tmpl/gtkpaned.sgml:
|
||||
* gtk/tmpl/gtkmenu.sgml:
|
||||
|
||||
* gtk/tmpl/gtkmenubar.sgml:
|
||||
* gtk/tmpl/gtkimage.sgml:
|
||||
* gtk/tmpl/gtkfontsel.sgml:
|
||||
* gtk/tmpl/gtkbbox.sgml:
|
||||
* gtk/tmpl/gtkadjustment.sgml:
|
||||
* gtk/tmpl/gtkaccelgroup.sgml:
|
||||
* gtk/tmpl/gtkaboutdialog.sgml: Additions.
|
||||
|
||||
2005-06-09 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* gdk-pixbuf/gdk-pixbuf-sections.txt: Add some symbols.
|
||||
|
||||
* gdk/gdk-sections.txt:
|
||||
* gdk/tmpl/cairo_interaction.sgml:
|
||||
* gdk/gdk-docs.sgml: Add a section for the Cairo functions.
|
||||
|
||||
* gtk/gtk-sections.txt: Add new icon view function.
|
||||
|
||||
2005-05-26 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* gtk/gtk-sections.txt: Add new entry completion functions.
|
||||
|
||||
2005-05-25 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* gdk-pixbuf/gdk-pixbuf-sections.txt: Add GdkPixbufSimplAnim
|
||||
functions.
|
||||
|
||||
2005-05-20 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* gtk/migrating-GtkAction.sgml: Fix an example. (#304808,
|
||||
Ghorban M. Tavakoly)
|
||||
|
||||
2005-05-18 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* gdk/tmpl/properties.sgml: Updates.
|
||||
|
||||
* gtk/migrating-checklist.sgml: Add a section about named
|
||||
icons.
|
||||
|
||||
* gtk/gtk-sections.txt: Add new functions.
|
||||
|
||||
2005-05-16 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* gtk/tree_widget.sgml: Use gtk-doc abbrevs instead of
|
||||
spelled out links.
|
||||
|
||||
* gtk/gtk-docs.sgml: Included the processed file xml/tree_widget.sgml.
|
||||
|
||||
* gtk/Makefile.am (expand_content_files): Add tree_widget.sgml.
|
||||
|
||||
2005-05-08 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* gdk/tmpl/visuals.sgml: Fix a typo (#303473, Masao Mutoh)
|
||||
|
||||
* gdk-pixbuf/tmpl/inline.sgml:
|
||||
* gdk-pixbuf/tmpl/file-saving.sgml: Add long descriptions.
|
||||
|
||||
* gdk-pixbuf/tmpl/module_interface.sgml: Small additions.
|
||||
|
||||
* gdk-pixbuf/gdk-pixbuf-sections.txt: Add a missing function.
|
||||
|
||||
* gdk-pixbuf/Makefile.am (IGNORE_HFILES): Add xpm-color-table.h
|
||||
|
||||
* gdk/Makefile.am (IGNORE_HFILES): Add keyname-table.h
|
||||
|
||||
* gdk/gdk-sections.txt: Add gdk_cairo_set_source_color,
|
||||
gdk_drawable_create_cairo_context and
|
||||
gdk_pixbuf_set_as_cairo_source, remove
|
||||
gdk_draw_rectangle_alpha_libgtk_only
|
||||
|
||||
* gdk/tmpl/pixbufs.sgml:
|
||||
* gdk/tmpl/cursors.sgml: Add long descriptions.
|
||||
|
||||
* gdk/tmpl/events.sgml:
|
||||
* gdk/tmpl/dnd.sgml:
|
||||
* gdk/tmpl/windows.sgml:
|
||||
* gdk/tmpl/pixmaps.sgml:
|
||||
* gdk/tmpl/x_interaction.sgml: Small additions.
|
||||
|
||||
2005-05-07 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* gdk/tmpl/pango_interaction.sgml: Fix a reference.
|
||||
(#303403, Masao Mutoh)
|
||||
|
||||
2005-05-06 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* gtk/gtk-sections.txt: Add new icon view API.
|
||||
|
||||
2005-05-05 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* gtk/tmpl/gtkmenutoolbutton.sgml: Trivial fix (#303168,
|
||||
Masao Mutoh)
|
||||
|
||||
2005-05-03 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* gtk/gtk-sections.txt: Add gtk_dialog_get_response_for_widget.
|
||||
Add new scrolled window getters.
|
||||
|
||||
2005-05-02 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* gtk/gtk-sections.txt: Add new icon view functions.
|
||||
|
||||
* gtk/tmpl/gtkselection.sgml: Remove inlined docs.
|
||||
|
||||
* gtk/gtk-sections.txt: Remove nonexisting functions.
|
||||
|
||||
2005-04-29 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* gtk/tmpl/gtkuimanager.sgml: Refer to the correct
|
||||
property. (#301115, Richard Hult)
|
||||
|
||||
2005-04-07 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* gtk/tmpl/gtkbbox.sgml: Document that GtkButtonBox ignores
|
||||
the homogeneous property. (#171412, Morten Welinder)
|
||||
|
||||
* gtk/tmpl/gtkfilechooser.sgml: Add a paragraph about
|
||||
shortcut terminology. (#166906, Sebastien Bacher)
|
||||
|
||||
* gtk/tmpl/gtkenums.sgml: Make the docs of GKT_SELECTION_MULTIPLE
|
||||
more accurate by making them more vague. (#167088,
|
||||
Ken Siersma)
|
||||
|
||||
* gtk/question_index.sgml: Add a question about hiding
|
||||
tree view expanders.
|
||||
|
||||
* gtk/tmpl/gtkradiobutton.sgml: Add a sentence about
|
||||
toggling. (#159382, Worik Stanton)
|
||||
|
||||
@@ -27,21 +508,28 @@
|
||||
* gtk/tmpl/gtktooltips.sgml: Mention enter and leave
|
||||
events. (#167546, Billy Biggs)
|
||||
|
||||
2005-04-04 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* gtk/gtk-sections.txt: Add new functions.
|
||||
|
||||
2005-04-01 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* gtk/tmpl/gtkselection.sgml: Move docs inline.
|
||||
|
||||
2005-03-31 Michael Natterer <mitch@gimp.org>
|
||||
|
||||
* gtk/gtk-sections.txt: added gtk_menu_set/get_take_focus().
|
||||
|
||||
* gtk/tmpl/gtkmenushell.sgml: regenerated.
|
||||
|
||||
2005-03-16 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* gtk/gtk-sections.txt: Add gtk_button_[sg]et_image.
|
||||
* gtk/gtk-sections.txt: Add gtk_button_[sg]et_image
|
||||
|
||||
2005-03-01 Matthias Clasen <mclasen@redhat.com>
|
||||
2005-03-09 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* === Released 2.6.4 ===
|
||||
|
||||
2005-02-28 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* === Released 2.6.3 ===
|
||||
* gtk/tmpl/gtkwidget.sgml: Typo fixes. (#169728,
|
||||
Morten Welinder, Owen Taylor)
|
||||
|
||||
2005-02-27 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
@@ -55,11 +543,22 @@
|
||||
|
||||
2005-02-15 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* gtk/tmpl/gtkcalendar.sgml: Some additions.
|
||||
* gtk/tmpl/gtkcalendar.sgml: Add some more
|
||||
info. (#167356, Hubert Sokolowski)
|
||||
|
||||
2005-02-04 Matthias Clasen <mclasen@redhat.com>
|
||||
2005-02-11 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* === Released 2.6.2 ===
|
||||
* gtk/gtk-sections.txt: Add GtkPackDirection and
|
||||
related functions.
|
||||
|
||||
2005-02-08 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* gtk/tmpl/gtkuimanager.sgml: Mention the expanding
|
||||
toolbar separators.
|
||||
|
||||
2005-02-03 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* gtk/gtk-sections.txt: Add gtk_stock_set_translate_func.
|
||||
|
||||
2005-02-02 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
@@ -74,10 +573,22 @@
|
||||
|
||||
2005-01-25 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* gtk/tmpl/gtksocket.sgml:
|
||||
* gtk/tmpl/gtksocket.sgml:
|
||||
* gtk/tmpl/gtkplug.sgml: Add note on limited
|
||||
availability. (#164347, Roger Light)
|
||||
|
||||
|
||||
2005-01-19 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* gdk/gdk-sections.txt: Add gdk_x11_display_get_user_time.
|
||||
|
||||
2005-01-18 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* gtk/gtk-docs.sgml: Add an index for 2.8 symbols.
|
||||
|
||||
* gdk/gdk-docs.sgml: Add an index for 2.8 symbols.
|
||||
|
||||
* gdk/gdk-sections.txt: Add gdk_display_warp_pointer.
|
||||
|
||||
2005-01-15 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* gtk/building.sgml: Some updates. (#164147, #164108,
|
||||
|
@@ -28,6 +28,7 @@ IGNORE_HFILES= \
|
||||
gdk-pixbuf-private.h \
|
||||
io-gif-animation.h \
|
||||
io-ani-animation.h \
|
||||
xpm-color-table.h \
|
||||
test-images.h
|
||||
|
||||
INCLUDES = \
|
||||
|
@@ -127,6 +127,11 @@ gdk_pixbuf_animation_iter_get_delay_time
|
||||
gdk_pixbuf_animation_iter_on_currently_loading_frame
|
||||
gdk_pixbuf_animation_iter_get_pixbuf
|
||||
|
||||
<SUBSECTION>
|
||||
GdkPixbufSimpleAnim
|
||||
gdk_pixbuf_simple_anim_new
|
||||
gdk_pixbuf_simple_anim_add_frame
|
||||
|
||||
<SUBSECTION Standard>
|
||||
GDK_PIXBUF_ANIMATION
|
||||
GDK_TYPE_PIXBUF_ANIMATION
|
||||
@@ -135,11 +140,22 @@ GDK_IS_PIXBUF_ANIMATION_ITER
|
||||
GDK_PIXBUF_ANIMATION_ITER
|
||||
GDK_TYPE_PIXBUF_ANIMATION_ITER
|
||||
|
||||
GDK_PIXBUF_SIMPLE_ANIM_GET_CLASS
|
||||
GDK_IS_PIXBUF_SIMPLE_ANIM
|
||||
GDK_PIXBUF_SIMPLE_ANIM_CLASS
|
||||
GDK_IS_PIXBUF_SIMPLE_ANIM_CLASS
|
||||
GDK_TYPE_PIXBUF_SIMPLE_ANIM
|
||||
GDK_PIXBUF_SIMPLE_ANIM
|
||||
GdkPixbufSimpleAnimClass
|
||||
|
||||
<SUBSECTION Private>
|
||||
gdk_pixbuf_non_anim_new
|
||||
|
||||
gdk_pixbuf_animation_get_type
|
||||
gdk_pixbuf_animation_iter_get_type
|
||||
|
||||
gdk_pixbuf_simple_anim_get_type
|
||||
gdk_pixbuf_simple_anim_iter_get_type
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
@@ -250,6 +266,7 @@ XlibRgbCmap
|
||||
XlibRgbDither
|
||||
xlib_rgb_init
|
||||
xlib_rgb_init_with_depth
|
||||
xlib_rgb_xpixel_from_rgb
|
||||
xlib_rgb_gc_set_foreground
|
||||
xlib_rgb_gc_set_background
|
||||
xlib_draw_rgb_image
|
||||
|
@@ -145,6 +145,12 @@
|
||||
<index role="2.6">
|
||||
<title>Index of new symbols in 2.6</title>
|
||||
</index>
|
||||
<index role="2.8">
|
||||
<title>Index of new symbols in 2.8</title>
|
||||
</index>
|
||||
<index role="2.10">
|
||||
<title>Index of new symbols in 2.10</title>
|
||||
</index>
|
||||
|
||||
&Porting-From-Imlib;
|
||||
|
||||
|
@@ -24,15 +24,14 @@ Animated images.
|
||||
|
||||
|
||||
<!-- ##### STRUCT GdkPixbufAnimation ##### -->
|
||||
<para>
|
||||
This object describes an animation.
|
||||
</para>
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
|
||||
<!-- ##### STRUCT GdkPixbufAnimationIter ##### -->
|
||||
<para>
|
||||
A #GdkPixbufAnimationIter provides the necessary functionality to
|
||||
display an animation. See gdk_pixbuf_animation_get_iter().
|
||||
|
||||
</para>
|
||||
|
||||
|
||||
@@ -146,3 +145,29 @@ display an animation. See gdk_pixbuf_animation_get_iter().
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### STRUCT GdkPixbufSimpleAnim ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_pixbuf_simple_anim_new ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@width:
|
||||
@height:
|
||||
@rate:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_pixbuf_simple_anim_add_frame ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@animation:
|
||||
@pixbuf:
|
||||
|
||||
|
||||
|
@@ -6,7 +6,11 @@ Saving a pixbuf to a file.
|
||||
|
||||
<!-- ##### SECTION Long_Description ##### -->
|
||||
<para>
|
||||
|
||||
These functions allow to save a #GdkPixbuf in a number of
|
||||
file formats. The formatted data can be written to a file
|
||||
or to a memory buffer. &gdk-pixbuf; can also call a user-defined
|
||||
callback on the data, which allows to e.g. write the image
|
||||
to a socket or store it in a database.
|
||||
</para>
|
||||
|
||||
<!-- ##### SECTION See_Also ##### -->
|
||||
|
@@ -22,10 +22,6 @@ Getting parts of a drawable's image data into a pixbuf.
|
||||
Drawables to Pixbufs
|
||||
|
||||
|
||||
<!-- ##### SECTION ./tmpl/gdk-pixbuf-unused.sgml:Stability_Level ##### -->
|
||||
|
||||
|
||||
|
||||
<!-- ##### SECTION ./tmpl/gnome-canvas-pixbuf.sgml:Long_Description ##### -->
|
||||
<para>
|
||||
This canvas item displays #GdkPixbuf images. It handles full
|
||||
|
@@ -65,6 +65,15 @@ displays.
|
||||
@prefDepth:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION xlib_rgb_xpixel_from_rgb ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@rgb:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION xlib_rgb_gc_set_foreground ##### -->
|
||||
<para>
|
||||
|
||||
|
@@ -5,9 +5,14 @@ Inline data
|
||||
Functions for inlined pixbuf handling.
|
||||
|
||||
<!-- ##### SECTION Long_Description ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
<para>
|
||||
Using #GdkPixdata, images can be compiled into an application,
|
||||
making it unnecessary to refer to external image files at runtime.
|
||||
&gdk-pixbuf; includes a utility named gdk-pixbuf-csource, which
|
||||
can be used to convert image files into #GdkPixdata structures suitable
|
||||
for inclusion in C sources. To convert the #GdkPixdata structures back
|
||||
into #GdkPixbuf<!-- -->s, use gdk_pixbuf_from_pixdata.
|
||||
</para>
|
||||
|
||||
<!-- ##### SECTION See_Also ##### -->
|
||||
<para>
|
||||
|
@@ -204,14 +204,19 @@ operations.
|
||||
<!-- ##### STRUCT GdkPixbufModulePattern ##### -->
|
||||
<para>
|
||||
The signature of a module is a set of prefixes. Prefixes are encoded as
|
||||
pairs of ordinary strings, where the second string, if not %NULL, must be
|
||||
of the same length as the first one and may contain ' ', '!', 'x', 'z',
|
||||
and 'n' to indicate bytes that must be matched, not matched,
|
||||
"don't-care"-bytes, zeros and non-zeros.
|
||||
pairs of ordinary strings, where the second string, called the mask, if
|
||||
not %NULL, must be of the same length as the first one and may contain
|
||||
' ', '!', 'x', 'z', and 'n' to indicate bytes that must be matched,
|
||||
not matched, "don't-care"-bytes, zeros and non-zeros.
|
||||
Each prefix has an associated integer that describes the relevance of
|
||||
the prefix, with 0 meaning a mismatch and 100 a "perfect match".
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Starting with &gdk-pixbuf; 2.8, the first byte of the mask may be '*',
|
||||
indicating an unanchored pattern that matches not only at the beginning,
|
||||
but also in the middle. Versions prior to 2.8 will interpret the '*'
|
||||
like an 'x'.
|
||||
</para>
|
||||
<para>
|
||||
The signature of a module is stored as an array of
|
||||
#GdkPixbufModulePattern<!-- -->s. The array is terminated by a pattern
|
||||
@@ -340,7 +345,7 @@ is loaded and must set the function pointers of the #GdkPixbufModule.
|
||||
@load_increment: continues an incremental load.
|
||||
@load_animation: loads an animation from a file.
|
||||
@save: saves a #GdkPixbuf to a file.
|
||||
@save_to_callback:
|
||||
@save_to_callback: saves a #GdkPixbuf by calling the given #GdkPixbufSaveFunc.
|
||||
|
||||
<!-- ##### STRUCT GdkPixbufAnimationClass ##### -->
|
||||
<para>
|
||||
|
@@ -42,8 +42,6 @@ expose_cb (GtkWidget *widget, GdkEventExpose *event, gpointer data)
|
||||
{
|
||||
GdkPixbuf *dest;
|
||||
|
||||
gdk_window_set_back_pixmap (widget->window, NULL, FALSE);
|
||||
|
||||
dest = gdk_pixbuf_new (GDK_COLORSPACE_RGB, FALSE, 8, event->area.width, event->area.height);
|
||||
|
||||
gdk_pixbuf_composite_color (pixbuf, dest,
|
||||
|
@@ -28,6 +28,7 @@ IGNORE_HFILES= \
|
||||
gdkprivate.h \
|
||||
gdkpoly-generic.h \
|
||||
gdkregion-generic.h \
|
||||
keyname-table.h \
|
||||
linux-fb \
|
||||
nanox \
|
||||
win32 \
|
||||
|
@@ -15,6 +15,7 @@
|
||||
<!ENTITY gdk-Selections SYSTEM "xml/selections.xml">
|
||||
<!ENTITY gdk-Properties-and-Atoms SYSTEM "xml/properties.xml">
|
||||
<!ENTITY gdk-Pango-Interaction SYSTEM "xml/pango_interaction.xml">
|
||||
<!ENTITY gdk-Cairo-Interaction SYSTEM "xml/cairo_interaction.xml">
|
||||
<!ENTITY gdk-Points-Rectangles-and-Regions SYSTEM "xml/regions.xml">
|
||||
<!ENTITY gdk-Threads SYSTEM "xml/threads.xml">
|
||||
<!ENTITY gdk-Keys SYSTEM "xml/keys.xml">
|
||||
@@ -81,7 +82,7 @@
|
||||
&gdk-Input-Devices;
|
||||
|
||||
&gdk-Pango-Interaction;
|
||||
|
||||
&gdk-Cairo-Interaction;
|
||||
&gdk-X-Window-System-Interaction;
|
||||
</reference>
|
||||
|
||||
@@ -100,5 +101,11 @@
|
||||
<index role="2.6">
|
||||
<title>Index of new symbols in 2.6</title>
|
||||
</index>
|
||||
<index role="2.8">
|
||||
<title>Index of new symbols in 2.8</title>
|
||||
</index>
|
||||
<index role="2.10">
|
||||
<title>Index of new symbols in 2.10</title>
|
||||
</index>
|
||||
|
||||
</book>
|
||||
|
@@ -142,6 +142,7 @@ gdk_display_get_pointer
|
||||
gdk_display_get_window_at_pointer
|
||||
GdkDisplayPointerHooks
|
||||
gdk_display_set_pointer_hooks
|
||||
gdk_display_warp_pointer
|
||||
gdk_display_supports_cursor_color
|
||||
gdk_display_supports_cursor_alpha
|
||||
gdk_display_get_default_cursor_size
|
||||
@@ -196,6 +197,8 @@ 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_get_root_window
|
||||
gdk_screen_get_display
|
||||
gdk_screen_get_number
|
||||
@@ -212,6 +215,10 @@ gdk_screen_get_monitor_at_point
|
||||
gdk_screen_get_monitor_at_window
|
||||
gdk_screen_broadcast_client_message
|
||||
gdk_screen_get_setting
|
||||
gdk_screen_get_font_options
|
||||
gdk_screen_set_font_options
|
||||
gdk_screen_get_resolution
|
||||
gdk_screen_set_resolution
|
||||
<SUBSECTION Spawning>
|
||||
gdk_spawn_on_screen
|
||||
gdk_spawn_on_screen_with_pipes
|
||||
@@ -495,7 +502,6 @@ GDK_IS_DRAWABLE_CLASS
|
||||
<SUBSECTION Private>
|
||||
GdkDrawableClass
|
||||
gdk_draw_bitmap
|
||||
gdk_draw_rectangle_alpha_libgtk_only
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
@@ -641,6 +647,7 @@ gdk_window_move
|
||||
gdk_window_resize
|
||||
gdk_window_move_resize
|
||||
gdk_window_scroll
|
||||
gdk_window_move_region
|
||||
gdk_window_reparent
|
||||
gdk_window_clear
|
||||
gdk_window_clear_area
|
||||
@@ -703,6 +710,7 @@ gdk_window_set_modal_hint
|
||||
gdk_window_set_type_hint
|
||||
gdk_window_set_skip_taskbar_hint
|
||||
gdk_window_set_skip_pager_hint
|
||||
gdk_window_set_urgency_hint
|
||||
gdk_window_get_position
|
||||
gdk_window_get_root_origin
|
||||
gdk_window_get_frame_extents
|
||||
@@ -817,6 +825,7 @@ gdk_utf8_to_string_target
|
||||
gdk_utf8_to_compound_text
|
||||
gdk_utf8_to_compound_text_for_display
|
||||
gdk_atom_intern
|
||||
gdk_atom_intern_static_string
|
||||
gdk_atom_name
|
||||
gdk_property_get
|
||||
gdk_property_change
|
||||
@@ -860,6 +869,16 @@ gdk_pango_renderer_get_type
|
||||
GdkPangoRendererPrivate
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<TITLE>Cairo Interaction</TITLE>
|
||||
<FILE>cairo_interaction</FILE>
|
||||
gdk_cairo_create
|
||||
gdk_cairo_set_source_color
|
||||
gdk_cairo_set_source_pixbuf
|
||||
gdk_cairo_rectangle
|
||||
gdk_cairo_region
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<TITLE>Points, Rectangles and Regions</TITLE>
|
||||
<FILE>regions</FILE>
|
||||
@@ -1087,6 +1106,7 @@ GdkEventNoExpose
|
||||
GdkEventWindowState
|
||||
GdkEventSetting
|
||||
GdkEventOwnerChange
|
||||
GdkEventGrabBroken
|
||||
|
||||
<SUBSECTION>
|
||||
GdkScrollDirection
|
||||
@@ -1122,8 +1142,10 @@ 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_ref
|
||||
gdk_cursor_unref
|
||||
gdk_cursor_destroy
|
||||
@@ -1239,6 +1261,8 @@ gdk_x11_screen_supports_net_wm_hint
|
||||
gdk_x11_screen_get_window_manager_name
|
||||
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
|
||||
@@ -1247,6 +1271,7 @@ gdk_x11_cursor_get_xdisplay
|
||||
gdk_x11_display_get_xdisplay
|
||||
gdk_x11_display_grab
|
||||
gdk_x11_display_ungrab
|
||||
gdk_x11_display_set_cursor_theme
|
||||
gdk_x11_register_standard_event_type
|
||||
gdk_x11_drawable_get_xdisplay
|
||||
gdk_x11_drawable_get_xid
|
||||
|
76
docs/reference/gdk/tmpl/cairo_interaction.sgml
Normal file
76
docs/reference/gdk/tmpl/cairo_interaction.sgml
Normal file
@@ -0,0 +1,76 @@
|
||||
<!-- ##### 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 ##### -->
|
||||
|
||||
|
||||
<!-- ##### 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_rectangle ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@cr:
|
||||
@rectangle:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_cairo_region ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@cr:
|
||||
@region:
|
||||
|
||||
|
@@ -65,7 +65,6 @@ allocated or unallocated color.
|
||||
The colormap structure contains the following public fields.
|
||||
</para>
|
||||
|
||||
@parent_instance:
|
||||
@size: For pseudo-color colormaps, the number of colors
|
||||
in the colormap.
|
||||
@colors: An array containing the current values in the
|
||||
|
@@ -6,7 +6,21 @@ Standard and pixmap cursors
|
||||
|
||||
<!-- ##### SECTION Long_Description ##### -->
|
||||
<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(),
|
||||
gdk_display_supports_cursor_color(),
|
||||
gdk_display_get_default_cursor_size() and
|
||||
gdk_display_get_maximal_cursor_size().
|
||||
</para>
|
||||
<para>
|
||||
Cursors by themselves are not very interesting, they must be be
|
||||
bound to a window for users to see them. This is done with
|
||||
gdk_window_set_cursor() or by setting the cursor member of the
|
||||
#GdkWindowAttr struct passed to gdk_window_new().
|
||||
</para>
|
||||
|
||||
<!-- ##### SECTION See_Also ##### -->
|
||||
@@ -22,8 +36,7 @@ Standard and pixmap cursors
|
||||
A <type>GdkCursor</type> structure represents a cursor.
|
||||
</para>
|
||||
|
||||
@type:
|
||||
@ref_count:
|
||||
@type: the #GdkCursorType of the cursor
|
||||
|
||||
<!-- ##### ENUM GdkCursorType ##### -->
|
||||
<para>
|
||||
@@ -107,9 +120,9 @@ The standard cursors available.
|
||||
@GDK_UR_ANGLE: <inlinegraphic format="PNG" fileref="ur_angle.png"></inlinegraphic>
|
||||
@GDK_WATCH: <inlinegraphic format="PNG" fileref="watch.png"></inlinegraphic>
|
||||
@GDK_XTERM: <inlinegraphic format="PNG" fileref="xterm.png"></inlinegraphic>
|
||||
@GDK_LAST_CURSOR:
|
||||
@GDK_LAST_CURSOR: last cursor type
|
||||
@GDK_CURSOR_IS_PIXMAP: type of cursors constructed with
|
||||
gdk_cursor_new_from_pixmap().
|
||||
gdk_cursor_new_from_pixmap() or gdk_cursor_new_from_pixbuf()
|
||||
|
||||
<!-- ##### FUNCTION gdk_cursor_new ##### -->
|
||||
<para>
|
||||
@@ -145,6 +158,16 @@ The standard cursors available.
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_cursor_new_from_name ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@display:
|
||||
@name:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_cursor_new_for_display ##### -->
|
||||
<para>
|
||||
|
||||
@@ -164,6 +187,15 @@ The standard cursors available.
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_cursor_get_image ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@cursor:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_cursor_ref ##### -->
|
||||
<para>
|
||||
|
||||
|
@@ -179,7 +179,7 @@ A <structname>GdkDragContext</structname> holds information about a
|
||||
drag in progress. It is used on both source and destination sides.
|
||||
</para>
|
||||
|
||||
@parent_instance:
|
||||
@parent_instance: the parent instance
|
||||
@protocol: the DND protocol which governs this drag.
|
||||
@is_source: %TRUE if the context is used on the source side.
|
||||
@source_window: the source of this drag.
|
||||
@@ -197,7 +197,7 @@ Used in #GdkDragContext to indicate what the destination
|
||||
should do with the dropped data.
|
||||
</para>
|
||||
|
||||
@GDK_ACTION_DEFAULT:
|
||||
@GDK_ACTION_DEFAULT: Means nothing, and should not be used.
|
||||
@GDK_ACTION_COPY: Copy the data.
|
||||
@GDK_ACTION_MOVE: Move the data, i.e. first copy it, then delete
|
||||
it from the source using the DELETE target of the X selection protocol.
|
||||
|
@@ -108,6 +108,8 @@ NUL byte, in which case looking at @length is necessary to distinguish
|
||||
it from the an empty translation.
|
||||
@hardware_keycode: the raw code of the key that was pressed or released.
|
||||
@group: the keyboard group.
|
||||
@is_modifier: a flag that indicates if @hardware_keycode is mapped to a
|
||||
modifier. Since 2.10
|
||||
|
||||
<!-- ##### STRUCT GdkEventButton ##### -->
|
||||
<para>
|
||||
@@ -424,6 +426,27 @@ only available if the X server supports the XFIXES extension.
|
||||
@selection_time: the time at which the selection ownership was taken over
|
||||
@Since: 2.6
|
||||
|
||||
<!-- ##### STRUCT GdkEventGrabBroken ##### -->
|
||||
<para>
|
||||
Generated when a pointer or keyboard grab is broken. On X11, this happens
|
||||
when the grab window becomes unviewable (i.e. it or one of its ancestors
|
||||
is unmapped), or if the same application grabs the pointer or keyboard
|
||||
again. Note that implicit grabs (which are initiated by button presses)
|
||||
can also cause #GdkEventGrabBroken events.
|
||||
</para>
|
||||
|
||||
@type: the type of the event (%GDK_GRAB_BROKEN)
|
||||
@window: the window which received the event, i.e. the window
|
||||
that previously owned the grab
|
||||
@send_event: %TRUE if the event was sent explicitly (e.g. using <function>XSendEvent</function>).
|
||||
@keyboard: %TRUE if a keyboard grab was broken, %FALSE if a pointer
|
||||
grab was broken
|
||||
@implicit: %TRUE if the broken grab was implicit
|
||||
@grab_window: If this event is caused by another grab in the same
|
||||
application, @grab_window contains the new grab window. Otherwise
|
||||
@grab_window id %NULL.
|
||||
@Since: 2.8
|
||||
|
||||
<!-- ##### ENUM GdkScrollDirection ##### -->
|
||||
<para>
|
||||
Specifies the direction for #GdkEventScroll.
|
||||
@@ -473,7 +496,7 @@ full details of crossing event generation.
|
||||
which are not ancestors of each other and the window is part of
|
||||
the ancestor chain between one of these windows and their least
|
||||
common ancestor.
|
||||
@GDK_NOTIFY_UNKNOWN:
|
||||
@GDK_NOTIFY_UNKNOWN: an unknown type of enter/leave event occurred.
|
||||
|
||||
<!-- ##### ENUM GdkPropertyState ##### -->
|
||||
<para>
|
||||
|
@@ -84,11 +84,14 @@ has changed.
|
||||
@GDK_VISIBILITY_NOTIFY: the window visibility status has changed.
|
||||
@GDK_NO_EXPOSE: indicates that the source region was completely available
|
||||
when parts of a drawable were copied. This is not very useful.
|
||||
@GDK_SCROLL:
|
||||
@GDK_WINDOW_STATE:
|
||||
@GDK_SETTING:
|
||||
@GDK_SCROLL: the scroll wheel was turned
|
||||
@GDK_WINDOW_STATE: the state of a window has changed. See #GdkWindowState
|
||||
for the possible window states
|
||||
@GDK_SETTING: a setting has been modified.
|
||||
@GDK_OWNER_CHANGE: the owner of a selection has changed. This event type
|
||||
was added in 2.6
|
||||
@GDK_GRAB_BROKEN: a pointer or keyboard grab was broken. This event type
|
||||
was added in 2.8.
|
||||
|
||||
<!-- ##### ENUM GdkEventMask ##### -->
|
||||
<para>
|
||||
@@ -102,32 +105,33 @@ number of %GDK_MOTION_NOTIFY events received. Normally a %GDK_MOTION_NOTIFY
|
||||
event is received each time the mouse moves. However, if the application
|
||||
spends a lot of time processing the event (updating the display, for example),
|
||||
it can easily lag behind the position of the mouse. When using the
|
||||
%GDK_POINTER_MOTION_HINT_MASK the server will only send a single %GDK_MOTION_NOTIFY
|
||||
event (which is marked as a hint) until the application asks for more, by calling
|
||||
gdk_window_get_pointer().
|
||||
%GDK_POINTER_MOTION_HINT_MASK the server will only send a single
|
||||
%GDK_MOTION_NOTIFY event (which is marked as a hint) until the application
|
||||
asks for more, by calling gdk_window_get_pointer().
|
||||
</para>
|
||||
|
||||
@GDK_EXPOSURE_MASK:
|
||||
@GDK_POINTER_MOTION_MASK:
|
||||
@GDK_POINTER_MOTION_HINT_MASK:
|
||||
@GDK_BUTTON_MOTION_MASK:
|
||||
@GDK_BUTTON1_MOTION_MASK:
|
||||
@GDK_BUTTON2_MOTION_MASK:
|
||||
@GDK_BUTTON3_MOTION_MASK:
|
||||
@GDK_BUTTON_PRESS_MASK:
|
||||
@GDK_BUTTON_RELEASE_MASK:
|
||||
@GDK_KEY_PRESS_MASK:
|
||||
@GDK_KEY_RELEASE_MASK:
|
||||
@GDK_ENTER_NOTIFY_MASK:
|
||||
@GDK_LEAVE_NOTIFY_MASK:
|
||||
@GDK_FOCUS_CHANGE_MASK:
|
||||
@GDK_STRUCTURE_MASK:
|
||||
@GDK_PROPERTY_CHANGE_MASK:
|
||||
@GDK_VISIBILITY_NOTIFY_MASK:
|
||||
@GDK_PROXIMITY_IN_MASK:
|
||||
@GDK_PROXIMITY_OUT_MASK:
|
||||
@GDK_SUBSTRUCTURE_MASK:
|
||||
@GDK_SCROLL_MASK:
|
||||
@GDK_EXPOSURE_MASK: receive expose events
|
||||
@GDK_POINTER_MOTION_MASK: receive all pointer motion events
|
||||
@GDK_POINTER_MOTION_HINT_MASK: see the explanation above
|
||||
@GDK_BUTTON_MOTION_MASK: receive pointer motion events while any button is pressed
|
||||
@GDK_BUTTON1_MOTION_MASK: receive pointer motion events while 1 button is pressed
|
||||
@GDK_BUTTON2_MOTION_MASK: receive pointer motion events while 2 button is pressed
|
||||
@GDK_BUTTON3_MOTION_MASK: receive pointer motion events while 3 button is pressed
|
||||
@GDK_BUTTON_PRESS_MASK: receive button press events
|
||||
@GDK_BUTTON_RELEASE_MASK: receive button release events
|
||||
@GDK_KEY_PRESS_MASK: receive key press events
|
||||
@GDK_KEY_RELEASE_MASK: receive key release events
|
||||
@GDK_ENTER_NOTIFY_MASK: receive window enter events
|
||||
@GDK_LEAVE_NOTIFY_MASK: receive window leave events
|
||||
@GDK_FOCUS_CHANGE_MASK: receive focus change events
|
||||
@GDK_STRUCTURE_MASK: receive events about window configuration change
|
||||
@GDK_PROPERTY_CHANGE_MASK: receive property change events
|
||||
@GDK_VISIBILITY_NOTIFY_MASK: receive visibility change events
|
||||
@GDK_PROXIMITY_IN_MASK: receive proximity in events
|
||||
@GDK_PROXIMITY_OUT_MASK: receive proximity out events
|
||||
@GDK_SUBSTRUCTURE_MASK: receive events about window configuration changes of
|
||||
child windows
|
||||
@GDK_SCROLL_MASK: receive scroll events
|
||||
@GDK_ALL_EVENTS_MASK: the combination of all the above event masks.
|
||||
|
||||
<!-- ##### MACRO GDK_CURRENT_TIME ##### -->
|
||||
|
@@ -170,7 +170,7 @@ useful. For bitmaps, %GDK_AND and %GDK_OR are also useful.
|
||||
This function is obsolete and should not be used.
|
||||
</para>
|
||||
|
||||
@Deprecated: Use gdk_object_unref() instead
|
||||
@Deprecated: Use g_object_unref() instead
|
||||
<!-- # Unused Parameters # -->
|
||||
@gc: a #GdkGC.
|
||||
|
||||
|
@@ -23,10 +23,6 @@ routines for allocating colors (deprecated).
|
||||
Color Contexts
|
||||
|
||||
|
||||
<!-- ##### SECTION ./tmpl/gdk-unused.sgml:Stability_Level ##### -->
|
||||
|
||||
|
||||
|
||||
<!-- ##### SECTION ./tmpl/input_contexts.sgml:Long_Description ##### -->
|
||||
<para>
|
||||
A #GdkIC input context is used for each user interface element which supports
|
||||
@@ -899,6 +895,16 @@ they will be ignored.
|
||||
@display_name:
|
||||
@Returns:
|
||||
|
||||
<!-- ##### FUNCTION gdk_pixbuf_set_as_cairo_source ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@pixbuf:
|
||||
@cr:
|
||||
@pixbuf_x:
|
||||
@pixbuf_y:
|
||||
|
||||
<!-- ##### VARIABLE gdk_progclass ##### -->
|
||||
<para>
|
||||
|
||||
|
@@ -281,6 +281,17 @@ Applications should never have any reason to use this facility
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_display_warp_pointer ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@display:
|
||||
@screen:
|
||||
@x:
|
||||
@y:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_display_supports_cursor_color ##### -->
|
||||
<para>
|
||||
|
||||
|
@@ -41,6 +41,16 @@ when GDK gets multihead support.
|
||||
|
||||
@gdkscreen: the object which received the signal.
|
||||
|
||||
<!-- ##### ARG GdkScreen:font-options ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### ARG GdkScreen:resolution ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### FUNCTION gdk_screen_get_default ##### -->
|
||||
<para>
|
||||
|
||||
@@ -103,6 +113,24 @@ when GDK gets multihead support.
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_screen_get_rgba_colormap ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@screen:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_screen_get_rgba_visual ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@screen:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_screen_get_root_window ##### -->
|
||||
<para>
|
||||
|
||||
@@ -257,6 +285,42 @@ when GDK gets multihead support.
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_screen_get_font_options ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@screen:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_screen_set_font_options ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@screen:
|
||||
@options:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_screen_get_resolution ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@screen:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_screen_set_resolution ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@screen:
|
||||
@dpi:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_spawn_on_screen ##### -->
|
||||
<para>
|
||||
|
||||
|
@@ -215,6 +215,11 @@ press and release events in pairs.
|
||||
It is equivalent to a pointer grab on the window with @owner_events set to
|
||||
%TRUE.
|
||||
</para>
|
||||
<para>
|
||||
If you set up anything at the time you take the grab that needs to be cleaned
|
||||
up when the grab ends, you should handle the #GdkEventGrabBroken events that
|
||||
are emitted when the grab ends unvoluntarily.
|
||||
</para>
|
||||
|
||||
@window: the #GdkWindow which will own the grab (the grab window).
|
||||
@owner_events: if %FALSE then all pointer events are reported with respect to
|
||||
@@ -283,6 +288,11 @@ Grabs the keyboard so that all events are passed to this
|
||||
application until the keyboard is ungrabbed with gdk_keyboard_ungrab().
|
||||
This overrides any previous keyboard grab by this client.
|
||||
</para>
|
||||
<para>
|
||||
If you set up anything at the time you take the grab that needs to be cleaned
|
||||
up when the grab ends, you should handle the #GdkEventGrabBroken events that
|
||||
are emitted when the grab ends unvoluntarily.
|
||||
</para>
|
||||
|
||||
@window: the #GdkWindow which will own the grab (the grab window).
|
||||
@owner_events: if %FALSE then all keyboard events are reported with respect to
|
||||
|
@@ -63,7 +63,7 @@ displays.
|
||||
The #GdkImage struct contains information on the image and the pixel data.
|
||||
</para>
|
||||
|
||||
@parent_instance:
|
||||
@parent_instance: the parent instance
|
||||
@type: the type of the image.
|
||||
@visual: the visual.
|
||||
@byte_order: the byte order.
|
||||
@@ -72,10 +72,9 @@ The #GdkImage struct contains information on the image and the pixel data.
|
||||
@depth: the depth of the image, i.e. the number of bits per pixel.
|
||||
@bpp: the number of bytes per pixel.
|
||||
@bpl: the number of bytes per line of the image.
|
||||
@bits_per_pixel:
|
||||
@bits_per_pixel: the number of bits per pixel.
|
||||
@mem: the pixel data.
|
||||
@colormap:
|
||||
@windowing_data:
|
||||
@colormap: the #GdkColormap associated with the image
|
||||
|
||||
<!-- ##### FUNCTION gdk_image_new ##### -->
|
||||
<para>
|
||||
@@ -89,7 +88,7 @@ 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.
|
||||
@Returns: a new #GdkImage, or %NULL if the image could not be created.
|
||||
|
||||
|
||||
<!-- ##### ENUM GdkImageType ##### -->
|
||||
|
@@ -101,7 +101,7 @@ gdk_device_set_mode(), gdk_device_set_key() and gdk_device_set_axis_use()
|
||||
to configure various aspects of the device.
|
||||
</para>
|
||||
|
||||
@parent_instance:
|
||||
@parent_instance: the parent instance
|
||||
@name: the name of this device.
|
||||
@source: the type of this device.
|
||||
@mode: the mode of this device
|
||||
|
@@ -14,7 +14,7 @@ stippling and embossing.
|
||||
<para>
|
||||
Creating a #PangoLayout object is the first step in rendering text,
|
||||
and requires getting a handle to a #PangoContext. For GTK+ programs,
|
||||
you'll usually want to use gtk_widget_get_context(), or
|
||||
you'll usually want to use gtk_widget_get_pango_context(), or
|
||||
gtk_widget_create_pango_layout(), rather than using the lowlevel
|
||||
gdk_pango_context_get_for_screen(). Once you have a #PangoLayout, you
|
||||
can set the text and attributes of it with Pango functions like
|
||||
|
@@ -6,7 +6,9 @@ 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 ##### -->
|
||||
|
@@ -235,6 +235,15 @@ Finds or creates an atom corresponding to a given string.
|
||||
@Returns: the atom corresponding to @atom_name.
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_atom_intern_static_string ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@atom_name:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_atom_name ##### -->
|
||||
<para>
|
||||
Determines the string corresponding to an atom.
|
||||
@@ -255,15 +264,14 @@ and %GDK_NONE will be stored in @actual_property_type.
|
||||
</para>
|
||||
<note>
|
||||
<para>
|
||||
The <function>XGetWindowProperty()</function>
|
||||
function that gdk_property_get()
|
||||
uses has a very confusing and complicated set of semantics.
|
||||
The XGetWindowProperty() function that gdk_property_get()
|
||||
uses has a very confusing and complicated set of semantics.
|
||||
Unfortunately, gdk_property_get() makes the situation
|
||||
worse instead of better (the semantics should be considered
|
||||
undefined), and also prints warnings to stderr in cases where it
|
||||
should return a useful error to the program. You are advised to use
|
||||
<function>XGetWindowProperty()</function>
|
||||
directly until a replacement function for gdk_property_get()
|
||||
XGetWindowProperty() directly until a replacement function for
|
||||
gdk_property_get()
|
||||
is provided.
|
||||
</para>
|
||||
</note>
|
||||
@@ -276,18 +284,24 @@ is provided.
|
||||
be filled in, a warning will be printed to stderr
|
||||
and no data will be returned.
|
||||
@offset: the offset into the property at which to begin
|
||||
retrieving data. (in 4 byte units!)
|
||||
@length: the length of the data to delete. (in bytes, but
|
||||
the actual retrieved length will be the next
|
||||
integer multiple multiple of four greater than
|
||||
this!)
|
||||
retrieving data, in 4 byte units.
|
||||
@length: the length of the data to retrieve in bytes. Data is
|
||||
considered to be retrieved in 4 byte chunks, so @length
|
||||
will be rounded up to the next highest 4 byte boundary
|
||||
(so be careful not to pass a value that might overflow
|
||||
when rounded up).
|
||||
@pdelete: if %TRUE, delete the property after retrieving the
|
||||
data.
|
||||
@actual_property_type: location to store the actual type of
|
||||
the property.
|
||||
@actual_format: location to store the actual format of the data.
|
||||
@actual_length: location to store the length of the retrieved
|
||||
data, in bytes.
|
||||
@actual_format: location to store the actual return format of the
|
||||
data; either 8, 16 or 32 bits.
|
||||
@actual_length: location to store the length of the retrieved data, in
|
||||
bytes. Data returned in the 32 bit format is stored
|
||||
in a long variable, so the actual number of 32 bit
|
||||
elements should be be calculated via
|
||||
@actual_length/sizeof(glong) to ensure portability to
|
||||
64 bit systems.
|
||||
@data: location to store a pointer to the data. The retrieved
|
||||
data should be freed with g_free() when you are finished
|
||||
using it.
|
||||
|
@@ -132,7 +132,7 @@ values for display.
|
||||
<structfield>blue_mask</structfield> fields of the #GdkVisual
|
||||
structure describe how the components are assembled into a pixel value.
|
||||
@GDK_VISUAL_DIRECT_COLOR: Each pixel value contains red, green, and blue
|
||||
components as for %GDK_TRUE_COLOR, but the components are mapped via a
|
||||
components as for %GDK_VISUAL_TRUE_COLOR, but the components are mapped via a
|
||||
color table into the final output table instead of being converted directly.
|
||||
|
||||
<!-- ##### ENUM GdkByteOrder ##### -->
|
||||
@@ -239,8 +239,8 @@ in memory as 0x00, 0xcc, 0xee, 0xff.
|
||||
Deprecated equivalent of g_object_ref().
|
||||
</para>
|
||||
|
||||
@v:
|
||||
@Returns:
|
||||
@v: a #GdkVisual
|
||||
@Returns: the same visual
|
||||
|
||||
|
||||
<!-- ##### MACRO gdk_visual_unref ##### -->
|
||||
@@ -248,7 +248,7 @@ Deprecated equivalent of g_object_ref().
|
||||
Deprecated equivalent of g_object_unref().
|
||||
</para>
|
||||
|
||||
@v:
|
||||
@v: a #GdkVisual
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_visual_get_screen ##### -->
|
||||
|
@@ -158,8 +158,8 @@ ratio.
|
||||
Defines the reference point of a window and the meaning of coordinates
|
||||
passed to gtk_window_move(). See gtk_window_move() and the "implementation
|
||||
notes" section of the
|
||||
<ulink url="http://www.freedesktop.org/standards/wm-spec">extended
|
||||
window manager hints</ulink> specification for more details.
|
||||
<ulink url="http://www.freedesktop.org/Standards/wm-spec">Extended
|
||||
Window Manager Hints</ulink> specification for more details.
|
||||
</para>
|
||||
|
||||
@GDK_GRAVITY_NORTH_WEST: the reference point is at the top left corner.
|
||||
@@ -196,8 +196,8 @@ and behaviour of the window. The hint must be set before mapping the window.
|
||||
</para>
|
||||
<para>
|
||||
See the
|
||||
<ulink url="http://www.freedesktop.org/standards/wm-spec">extended
|
||||
window manager hints</ulink> specification for more details about
|
||||
<ulink url="http://www.freedesktop.org/Standards/wm-spec">Extended
|
||||
Window Manager Hints</ulink> specification for more details about
|
||||
window types.
|
||||
</para>
|
||||
|
||||
@@ -276,7 +276,7 @@ corresponding flag in #GdkWindowAttributesType.
|
||||
Deprecated equivalent of g_object_ref()
|
||||
</para>
|
||||
|
||||
@Returns:
|
||||
@Returns: the window
|
||||
|
||||
|
||||
<!-- ##### MACRO gdk_window_unref ##### -->
|
||||
@@ -488,6 +488,17 @@ Deprecated equivalent of g_object_unref()
|
||||
@dy:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_window_move_region ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@window:
|
||||
@region:
|
||||
@dx:
|
||||
@dy:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_window_reparent ##### -->
|
||||
<para>
|
||||
|
||||
@@ -536,15 +547,19 @@ Deprecated equivalent of g_object_unref()
|
||||
Deprecated equivalent to gdk_draw_drawable(), see that function for docs
|
||||
</para>
|
||||
|
||||
@drawable:
|
||||
@gc:
|
||||
@x:
|
||||
@y:
|
||||
@source_drawable:
|
||||
@source_x:
|
||||
@source_y:
|
||||
@width:
|
||||
@height:
|
||||
@drawable: a #GdkDrawable
|
||||
@gc: a #GdkGC sharing the drawable's visual and colormap
|
||||
@x: X position in @drawable where the rectangle should be drawn
|
||||
@y: Y position in @drawable where the rectangle should be drawn
|
||||
@source_drawable: the source #GdkDrawable, which may be the same as @drawable
|
||||
@source_x: X position in @src of rectangle to draw
|
||||
@source_y: Y position in @src of rectangle to draw
|
||||
@width: width of rectangle to draw, or -1 for entire @src width
|
||||
@height: height of rectangle to draw, or -1 for entire @src height
|
||||
<!-- # Unused Parameters # -->
|
||||
@drawable: a #GdkDrawable
|
||||
@xdest: X position in @drawable where the rectangle should be drawn
|
||||
@ydest: Y position in @drawable where the rectangle should be drawn
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_window_raise ##### -->
|
||||
@@ -1037,6 +1052,15 @@ Deprecated equivalent to gdk_drawable_set_colormap()
|
||||
@skips_pager:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_window_set_urgency_hint ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@window:
|
||||
@urgent:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_window_get_position ##### -->
|
||||
<para>
|
||||
|
||||
@@ -1078,7 +1102,7 @@ Deprecated equivalent of gdk_drawable_get_size().
|
||||
Deprecated equivalent of gdk_drawable_get_visual().
|
||||
</para>
|
||||
|
||||
@Returns:
|
||||
@Returns: the #GdkVisual of the window
|
||||
|
||||
|
||||
<!-- ##### MACRO gdk_window_get_colormap ##### -->
|
||||
@@ -1140,6 +1164,11 @@ Hyper, Alt, Compose, Apple, CapsLock or ShiftLock.
|
||||
<para>
|
||||
Like the X Window System, GDK supports 8 modifier keys and 5 mouse buttons.
|
||||
</para>
|
||||
<para>
|
||||
Since 2.10, GDK recognizes which of the Meta, Super or Hyper keys are mapped
|
||||
to Mod2 - Mod5, and indicates this by setting %GDK_SUPER_MASK, %GDK_HYPER_MASK
|
||||
or %GDK_META_MASK in the state field of key events.
|
||||
</para>
|
||||
|
||||
@GDK_SHIFT_MASK: the Shift key.
|
||||
@GDK_LOCK_MASK: a Lock key (depending on the modifier mapping of the
|
||||
@@ -1161,9 +1190,12 @@ Like the X Window System, GDK supports 8 modifier keys and 5 mouse buttons.
|
||||
@GDK_BUTTON3_MASK: the third mouse button.
|
||||
@GDK_BUTTON4_MASK: the fourth mouse button.
|
||||
@GDK_BUTTON5_MASK: the fifth mouse button.
|
||||
@GDK_SUPER_MASK: the Super modifier. Since 2.10
|
||||
@GDK_HYPER_MASK: the Hyper modifier. Since 2.10
|
||||
@GDK_META_MASK: the Meta modifier. Since 2.10
|
||||
@GDK_RELEASE_MASK: not used in GDK itself. GTK+ uses it to differentiate
|
||||
between (keyval, modifiers) pairs from key press and release events.
|
||||
@GDK_MODIFIER_MASK:
|
||||
@GDK_MODIFIER_MASK: a mask covering all modifier types.
|
||||
|
||||
<!-- ##### FUNCTION gdk_window_get_parent ##### -->
|
||||
<para>
|
||||
|
@@ -62,10 +62,8 @@ Returns the X window belonging to a #GdkWindow.
|
||||
Returns the display of a #GdkPixmap.
|
||||
</para>
|
||||
|
||||
@pix:
|
||||
@pix: a #GdkPixmap.
|
||||
@Returns: an Xlib <type>Display*</type>.
|
||||
<!-- # Unused Parameters # -->
|
||||
@win: a #GdkPixmap.
|
||||
|
||||
|
||||
<!-- ##### MACRO GDK_PIXMAP_XID ##### -->
|
||||
@@ -73,10 +71,8 @@ Returns the display of a #GdkPixmap.
|
||||
Returns the X pixmap belonging to a #GdkPixmap.
|
||||
</para>
|
||||
|
||||
@pix:
|
||||
@pix: a #GdkPixmap.
|
||||
@Returns: the Xlib <type>XPixmap</type> of @win.
|
||||
<!-- # Unused Parameters # -->
|
||||
@win: a #GdkPixmap.
|
||||
|
||||
|
||||
<!-- ##### MACRO GDK_DISPLAY_XDISPLAY ##### -->
|
||||
@@ -443,6 +439,23 @@ Since: 2.2
|
||||
@timestamp:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_x11_window_move_to_current_desktop ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@window:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_x11_display_get_user_time ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@display:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_x11_colormap_foreign_new ##### -->
|
||||
<para>
|
||||
|
||||
@@ -514,6 +527,16 @@ Since: 2.2
|
||||
@display:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_x11_display_set_cursor_theme ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@display:
|
||||
@theme:
|
||||
@size:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gdk_x11_register_standard_event_type ##### -->
|
||||
<para>
|
||||
|
||||
|
@@ -27,6 +27,7 @@ IGNORE_HFILES= \
|
||||
fnmatch.h \
|
||||
gdk-pixbuf-loader.h \
|
||||
gtkdebug.h \
|
||||
gtkdndcursors.h \
|
||||
gtkentryprivate.h \
|
||||
gtkfilechooserdefault.h \
|
||||
gtkfilechooserembed.h \
|
||||
@@ -38,14 +39,19 @@ IGNORE_HFILES= \
|
||||
gtkfilesystemunix.h \
|
||||
gtkfilesystemwin32.h \
|
||||
gtkhsv.h \
|
||||
gtkiconcache.h \
|
||||
gtkiconthemeparser.h \
|
||||
gtkimmodule.h \
|
||||
gtkintl.h \
|
||||
gtkkeyhash.h \
|
||||
gtkmarshal.h \
|
||||
gtkmnemonichash.h \
|
||||
gtkpathbar.h \
|
||||
gtkplugprivate.h \
|
||||
gtkprivate.h \
|
||||
gtkrbtree.h \
|
||||
gtksequence.h \
|
||||
gtksocketprivate.h \
|
||||
gtktreedatalist.h \
|
||||
gtktreeprivate.h \
|
||||
gtktextbtree.h \
|
||||
@@ -57,11 +63,12 @@ IGNORE_HFILES= \
|
||||
gtktexttagprivate.h \
|
||||
gtktexttypes.h \
|
||||
gtktextutil.h \
|
||||
gtktoggleactionprivate.h \
|
||||
gtktypebuiltins.h \
|
||||
gtkxembed.h \
|
||||
gtkwin32embed.h \
|
||||
xdgmime \
|
||||
xembed.h \
|
||||
gtktoggleactionprivate.h
|
||||
xembed.h
|
||||
|
||||
# CFLAGS and LDFLAGS for compiling scan program. Only needed
|
||||
# if $(DOC_MODULE).types is non-empty.
|
||||
@@ -110,103 +117,129 @@ content_files = \
|
||||
gtk-update-icon-cache.xml \
|
||||
visual_index.xml
|
||||
|
||||
expand_content_files = \
|
||||
glossary.xml \
|
||||
migrating-checklist.sgml \
|
||||
migrating-GtkAction.sgml \
|
||||
migrating-GtkComboBox.sgml \
|
||||
migrating-GtkFileChooser.sgml \
|
||||
migrating-GtkIconView.sgml \
|
||||
migrating-GtkAboutDialog.sgml \
|
||||
migrating-GtkColorButton.sgml \
|
||||
tree_widget.sgml \
|
||||
text_widget.sgml \
|
||||
question_index.sgml
|
||||
|
||||
# Images to copy into HTML directory
|
||||
HTML_IMAGES = \
|
||||
$(top_srcdir)/gtk/stock-icons/stock_about_24.png \
|
||||
$(top_srcdir)/gtk/stock-icons/stock_add_24.png \
|
||||
$(top_srcdir)/gtk/stock-icons/stock_apply_20.png \
|
||||
$(top_srcdir)/gtk/stock-icons/stock_text_bold_24.png \
|
||||
$(top_srcdir)/gtk/stock-icons/stock_cancel_20.png \
|
||||
$(top_srcdir)/gtk/stock-icons/stock_cdrom_24.png \
|
||||
$(top_srcdir)/gtk/stock-icons/stock_clear_24.png \
|
||||
$(top_srcdir)/gtk/stock-icons/stock_close_24.png \
|
||||
$(top_srcdir)/gtk/stock-icons/stock_connect_24.png \
|
||||
$(top_srcdir)/gtk/stock-icons/stock_convert_24.png \
|
||||
$(top_srcdir)/gtk/stock-icons/stock_copy_24.png \
|
||||
$(top_srcdir)/gtk/stock-icons/stock_cut_24.png \
|
||||
$(top_srcdir)/gtk/stock-icons/stock_trash_24.png \
|
||||
$(top_srcdir)/gtk/stock-icons/stock_dialog_authentication_48.png \
|
||||
$(top_srcdir)/gtk/stock-icons/stock_dialog_error_48.png \
|
||||
$(top_srcdir)/gtk/stock-icons/stock_dialog_info_48.png \
|
||||
$(top_srcdir)/gtk/stock-icons/stock_dialog_question_48.png \
|
||||
$(top_srcdir)/gtk/stock-icons/stock_dialog_warning_48.png \
|
||||
$(top_srcdir)/gtk/stock-icons/stock_directory_24.png \
|
||||
$(top_srcdir)/gtk/stock-icons/stock_disconnect_24.png \
|
||||
$(top_srcdir)/gtk/stock-icons/stock_dnd_32.png \
|
||||
$(top_srcdir)/gtk/stock-icons/stock_dnd_multiple_32.png \
|
||||
$(top_srcdir)/gtk/stock-icons/stock_edit_24.png \
|
||||
$(top_srcdir)/gtk/stock-icons/stock_exec_24.png \
|
||||
$(top_srcdir)/gtk/stock-icons/stock_file_24.png \
|
||||
$(top_srcdir)/gtk/stock-icons/stock_search_24.png \
|
||||
$(top_srcdir)/gtk/stock-icons/stock_search_replace_24.png \
|
||||
$(top_srcdir)/gtk/stock-icons/stock_bottom_24.png \
|
||||
$(top_srcdir)/gtk/stock-icons/stock_first_24.png \
|
||||
$(top_srcdir)/gtk/stock-icons/stock_last_24.png \
|
||||
$(top_srcdir)/gtk/stock-icons/stock_top_24.png \
|
||||
$(top_srcdir)/gtk/stock-icons/stock_left_arrow_24.png \
|
||||
$(top_srcdir)/gtk/stock-icons/stock_down_arrow_24.png \
|
||||
$(top_srcdir)/gtk/stock-icons/stock_right_arrow_24.png \
|
||||
$(top_srcdir)/gtk/stock-icons/stock_up_arrow_24.png \
|
||||
$(top_srcdir)/gtk/stock-icons/stock_harddisk_24.png \
|
||||
$(top_srcdir)/gtk/stock-icons/stock_network_24.png \
|
||||
$(top_srcdir)/gtk/stock-icons/stock_help_24.png \
|
||||
$(top_srcdir)/gtk/stock-icons/stock_home_24.png \
|
||||
$(top_srcdir)/gtk/stock-icons/stock_index_24.png \
|
||||
$(top_srcdir)/gtk/stock-icons/stock_text_indent_24.png \
|
||||
$(top_srcdir)/gtk/stock-icons/stock_text_unindent_24.png \
|
||||
$(top_srcdir)/gtk/stock-icons/stock_text_italic_24.png \
|
||||
$(top_srcdir)/gtk/stock-icons/stock_jump_to_24.png \
|
||||
$(top_srcdir)/gtk/stock-icons/stock_jump_to_rtl_24.png \
|
||||
$(top_srcdir)/gtk/stock-icons/stock_align_center_24.png \
|
||||
$(top_srcdir)/gtk/stock-icons/stock_align_justify_24.png \
|
||||
$(top_srcdir)/gtk/stock-icons/stock_align_left_24.png \
|
||||
$(top_srcdir)/gtk/stock-icons/stock_align_right_24.png \
|
||||
$(top_srcdir)/gtk/stock-icons/stock_broken_image_24.png \
|
||||
$(top_srcdir)/gtk/stock-icons/stock_new_24.png \
|
||||
$(top_srcdir)/gtk/stock-icons/stock_no_20.png \
|
||||
$(top_srcdir)/gtk/stock-icons/stock_ok_20.png \
|
||||
$(top_srcdir)/gtk/stock-icons/stock_open_24.png \
|
||||
$(top_srcdir)/gtk/stock-icons/stock_paste_24.png \
|
||||
$(top_srcdir)/gtk/stock-icons/stock_preferences_24.png \
|
||||
$(top_srcdir)/gtk/stock-icons/stock_print_24.png \
|
||||
$(top_srcdir)/gtk/stock-icons/stock_print_preview_24.png \
|
||||
$(top_srcdir)/gtk/stock-icons/stock_properties_24.png \
|
||||
$(top_srcdir)/gtk/stock-icons/stock_exit_24.png \
|
||||
$(top_srcdir)/gtk/stock-icons/stock_redo_24.png \
|
||||
$(top_srcdir)/gtk/stock-icons/stock_redo_rtl_24.png \
|
||||
$(top_srcdir)/gtk/stock-icons/stock_refresh_24.png \
|
||||
$(top_srcdir)/gtk/stock-icons/stock_remove_24.png \
|
||||
$(top_srcdir)/gtk/stock-icons/stock_revert_24.png \
|
||||
$(top_srcdir)/gtk/stock-icons/stock_revert_rtl_24.png \
|
||||
$(top_srcdir)/gtk/stock-icons/stock_save_24.png \
|
||||
$(top_srcdir)/gtk/stock-icons/stock_save_as_24.png \
|
||||
$(top_srcdir)/gtk/stock-icons/stock_colorselector_24.png \
|
||||
$(top_srcdir)/gtk/stock-icons/stock_color_picker_25.png \
|
||||
$(top_srcdir)/gtk/stock-icons/stock_font_24.png \
|
||||
$(top_srcdir)/gtk/stock-icons/stock_sort_ascending_24.png \
|
||||
$(top_srcdir)/gtk/stock-icons/stock_sort_descending_24.png \
|
||||
$(top_srcdir)/gtk/stock-icons/stock_spellcheck_24.png \
|
||||
$(top_srcdir)/gtk/stock-icons/stock_stop_24.png \
|
||||
$(top_srcdir)/gtk/stock-icons/stock_text_strikethrough_24.png \
|
||||
$(top_srcdir)/gtk/stock-icons/stock_undelete_24.png \
|
||||
$(top_srcdir)/gtk/stock-icons/stock_undelete_rtl_24.png \
|
||||
$(top_srcdir)/gtk/stock-icons/stock_text_underline_24.png \
|
||||
$(top_srcdir)/gtk/stock-icons/stock_undo_24.png \
|
||||
$(top_srcdir)/gtk/stock-icons/stock_undo_rtl_24.png \
|
||||
$(top_srcdir)/gtk/stock-icons/stock_yes_20.png \
|
||||
$(top_srcdir)/gtk/stock-icons/stock_zoom_1_24.png \
|
||||
$(top_srcdir)/gtk/stock-icons/stock_zoom_fit_24.png \
|
||||
$(top_srcdir)/gtk/stock-icons/stock_zoom_in_24.png \
|
||||
$(top_srcdir)/gtk/stock-icons/stock_zoom_out_24.png \
|
||||
$(top_srcdir)/gtk/stock-icons/stock_media_forward_24.png \
|
||||
$(top_srcdir)/gtk/stock-icons/stock_media_next_24.png \
|
||||
$(top_srcdir)/gtk/stock-icons/stock_media_pause_24.png \
|
||||
$(top_srcdir)/gtk/stock-icons/stock_media_play_24.png \
|
||||
$(top_srcdir)/gtk/stock-icons/stock_media_play_rtl_24.png \
|
||||
$(top_srcdir)/gtk/stock-icons/stock_media_previous_24.png \
|
||||
$(top_srcdir)/gtk/stock-icons/stock_media_record_24.png \
|
||||
$(top_srcdir)/gtk/stock-icons/stock_media_rewind_24.png \
|
||||
$(top_srcdir)/gtk/stock-icons/stock_media_stop_24.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-about.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-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/20/gtk-cancel.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/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/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/gtk-index.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-indent.png \
|
||||
$(top_srcdir)/gtk/stock-icons/24/gtk-unindent.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/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/gtk-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-preview.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/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/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/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 \
|
||||
$(srcdir)/images/accel-label.png \
|
||||
$(srcdir)/images/button.png \
|
||||
$(srcdir)/images/check-button.png \
|
||||
|
@@ -178,7 +178,7 @@ How to compile GTK+ itself
|
||||
<ulink url="http://www.pango.org">Pango</ulink> is a library
|
||||
for internationalized text handling. It is available from
|
||||
the <ulink url="ftp://ftp.gtk.org/pub/gtk/v2.6/">GTK+ FTP
|
||||
site.</ulink>. GTK+ 2.6 requires Pango 1.8.
|
||||
site.</ulink>.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
@@ -239,18 +239,17 @@ How to compile GTK+ itself
|
||||
<para>
|
||||
The <ulink url="http://www.fontconfig.org">fontconfig</ulink>
|
||||
library provides Pango with a standard way of locating
|
||||
fonts and matching them against font names. The
|
||||
<ulink url="http://www.freedesktop.org/wiki/Software/Xft">Xft2</ulink>
|
||||
library, distributed with fontconfig, provides support for
|
||||
scalable and antialiased fonts on X. Pango includes two
|
||||
backends that work on top of fontconfig: an Xft2 backend
|
||||
and a backend that uses fontconfig and the underlying
|
||||
<ulink url="http://www.freetype.org">FreeType</ulink>
|
||||
library directly. Neither backend is mandatory, but the
|
||||
Xft2 backend is the preferred backend for X and the FreeType
|
||||
backend is needed by many applications.
|
||||
fonts and matching them against font names.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<ulink url="http://www.cairographics.org">Cairo</ulink>
|
||||
is a graphics library that supports vector graphics and image
|
||||
compositing. Both Pango and GTK+ use cairo for much of their
|
||||
drawing.
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</refsect1>
|
||||
<refsect1 id="building">
|
||||
|
@@ -22,7 +22,8 @@ find the GTK+ header files and libraries. This is done with the
|
||||
</para>
|
||||
<para>
|
||||
The following interactive shell session demonstrates how
|
||||
<literal>pkg-config</literal> is used:
|
||||
<literal>pkg-config</literal> is used (the actual output on
|
||||
your system may be different):
|
||||
<programlisting>
|
||||
$ pkg-config --cflags gtk+-2.0
|
||||
-I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/pango-1.0 -I/usr/X11R6/include -I/usr/include/freetype2 -I/usr/include/atk-1.0
|
||||
|
@@ -15,6 +15,13 @@ Linux framebuffer aspects of using GTK+
|
||||
<refsect1>
|
||||
<title>GTK+ for the Linux Framebuffer</title>
|
||||
|
||||
<note><para>
|
||||
The linux-fb GDK target is unmaintained and may not work or even
|
||||
compile. The information below may still be helpful; also there are
|
||||
several patches in bugzilla which may help with making the linux-fb
|
||||
code compilable.
|
||||
</para></note>
|
||||
|
||||
<para>
|
||||
The linux-fb port of GTK+, also known as GtkFB is an implementation of
|
||||
GDK (and therefore GTK+) that runs on the Linux framebuffer. It runs in
|
||||
|
@@ -24,7 +24,7 @@
|
||||
<para>
|
||||
A <glossterm linkend="container">container</glossterm> that
|
||||
can hold at most one child widget. The base class for bins is
|
||||
<link linkend="GtkBin">GtkBin</link>.
|
||||
#GtkBin.
|
||||
</para>
|
||||
<glossseealso>
|
||||
<glossterm linkend="container">container</glossterm>
|
||||
@@ -48,10 +48,9 @@
|
||||
<glossdef>
|
||||
<para>
|
||||
GTK+ contains several widgets which display data in columns,
|
||||
e.g. the <link linkend="GtkTreeView">GtkTreeView</link>.
|
||||
e.g. the #GtkTreeView.
|
||||
These <glossterm linkend="view-column">view columns</glossterm> in
|
||||
the tree view are represented by
|
||||
<link linkend="GtkTreeViewColumn">GtkTreeViewColumn</link>
|
||||
the tree view are represented by #GtkTreeViewColumn
|
||||
objects inside GTK+. They should not be confused with
|
||||
<glossterm linkend="model-column">model columns</glossterm> which
|
||||
are used to organize the data in tree models.
|
||||
@@ -69,14 +68,11 @@
|
||||
<emphasis>parent</emphasis> of the <emphasis>child</emphasis>
|
||||
widgets. Some containers don't draw anything on their own,
|
||||
but rather just organize their children's <glossterm
|
||||
linkend="geometry">geometry</glossterm>; for example, <link
|
||||
linkend="GtkVBox">GtkVBox</link> lays out its children
|
||||
vertically without painting anything on its own. Other
|
||||
containers include decorative elements; for example, <link
|
||||
linkend="GtkFrame">GtkFrame</link> contains the frame's child
|
||||
and a label in addition to the shaded frame it draws. The
|
||||
base class for containers is <link
|
||||
linkend="GtkContainer">GtkContainer</link>.
|
||||
linkend="geometry">geometry</glossterm>; for example, #GtkVBox lays out
|
||||
its children vertically without painting anything on its own. Other
|
||||
containers include decorative elements; for example, #GtkFrame contains
|
||||
the frame's child and a label in addition to the shaded frame it draws.
|
||||
The base class for containers is #GtkContainer.
|
||||
</para>
|
||||
<glossseealso>
|
||||
<glossterm linkend="container">widget</glossterm>
|
||||
@@ -94,8 +90,7 @@
|
||||
of a keyboard, a pointing device and one or more
|
||||
<glossterm linkend="screen">screens</glossterm>.
|
||||
Applications open a display to show windows and interact with the user.
|
||||
In GDK, a display is represented by a
|
||||
<link linkend="GdkDisplay">GdkDisplay</link>.
|
||||
In GDK, a display is represented by a #GdkDisplay.
|
||||
</para>
|
||||
</glossdef>
|
||||
</glossentry>
|
||||
@@ -130,15 +125,13 @@
|
||||
actually shows the GdkWindows it created when it was
|
||||
<glossterm linkend="realization">realized</glossterm>. When a
|
||||
widget is mapped, it must turn on its
|
||||
<constant>GTK_MAPPED</constant> <link
|
||||
linkend="GtkWidgetFlags">flag</link>.
|
||||
%GTK_MAPPED <link linkend="GtkWidgetFlags">flag</link>.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Note that due to the asynchronous nature of the X window
|
||||
system, a widget's window may not appear on the screen
|
||||
immediatly after one calls <link
|
||||
linkend="gdk-window-show"><function>gdk_window_show()</function></link>:
|
||||
immediatly after one calls gdk_window_show():
|
||||
you must wait for the corresponding map <glossterm
|
||||
linkend="event">event</glossterm> to be received. You can do
|
||||
this with the <link
|
||||
@@ -155,7 +148,7 @@
|
||||
A column in a tree model, holding data of a certain type.
|
||||
The types which can be stored in the columns of a model
|
||||
have to be specified when the model is constructed, see
|
||||
e.g. <link linkend="gtk-list-store-new">gtk_list_store_new()</link>.
|
||||
e.g. gtk_list_store_new().
|
||||
</para>
|
||||
<glossseealso>
|
||||
<glossterm linkend="view-column">view column</glossterm>
|
||||
@@ -170,17 +163,13 @@
|
||||
These widgets follow the well-known model-view pattern, which separates
|
||||
the data (the model) to be displayed from the component which does the
|
||||
actual visualization (the view). Examples of this pattern in GTK+ are
|
||||
the <link linkend="GtkTreeView">GtkTreeView</link>/<link linkend="GtkTreeModel">GtkTreeModel</link>
|
||||
and
|
||||
<link linkend="GtkTextView">GtkTextView</link>/<link linkend="GtkTextBuffer">GtkTextBuffer</link>
|
||||
the #GtkTreeView/#GtkTreeModel and #GtkTextView/#GtkTextBuffer
|
||||
</para>
|
||||
<para>
|
||||
One important advantage of this pattern is that it is possible to
|
||||
display the same model in multiple views; another one that the
|
||||
separation of the model allows a great deal of flexibility, as
|
||||
demonstrated by e.g.
|
||||
<link linkend="GtkTreeModelSort">GtkTreeModelSort</link> or
|
||||
<link linkend="GtkTreeModelFilter">GtkTreeModelFilter</link>.
|
||||
demonstrated by e.g. #GtkTreeModelSort or #GtkTreeModelFilter.
|
||||
</para>
|
||||
</glossdef>
|
||||
</glossentry>
|
||||
@@ -192,11 +181,8 @@
|
||||
A widget that does not have a GdkWindow of its own on which to
|
||||
draw its contents, but rather shares its <glossterm
|
||||
linkend="parent">parent's</glossterm>. Such a widget has the
|
||||
<constant>GTK_NO_WINDOW</constant> <link
|
||||
linkend="GtkWidgetFlags">flag</link> set, and can be tested
|
||||
with the <link
|
||||
linkend="gtk-widget-no-window:caps"><function>GTK_WIDGET_NO_WINDOW()</function></link>
|
||||
macro.
|
||||
%GTK_NO_WINDOW <link linkend="GtkWidgetFlags">flag</link> set, and
|
||||
can be tested with the GTK_WIDGET_NO_WINDOW() macro.
|
||||
</para>
|
||||
</glossdef>
|
||||
</glossentry>
|
||||
@@ -224,17 +210,14 @@
|
||||
also attach a <glossterm linkend="style">style</glossterm> to
|
||||
it. A widget becomes unrealized by destroying its associated
|
||||
GdkWindow. When a widget is realized, it must turn on its
|
||||
<constant>GTK_REALIZED</constant> <link
|
||||
linkend="GtkWidgetFlags">flag</link>.
|
||||
%GTK_REALIZED <link linkend="GtkWidgetFlags">flag</link>.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Widgets that don't own the GdkWindow on which they draw are
|
||||
called <glossterm linkend="no-window">no-window
|
||||
widgets</glossterm>. This can be tested with the <link
|
||||
linkend="gtk-widget-no-window:caps"><function>GTK_WIDGET_NO_WINDOW()</function></link>
|
||||
macro. Normally, these widgets draw on their parent's
|
||||
GdkWindow.
|
||||
called <glossterm linkend="no-window">no-window widgets</glossterm>.
|
||||
This can be tested with the GTK_WIDGET_NO_WINDOW() macro. Normally,
|
||||
these widgets draw on their parent's GdkWindow.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
@@ -276,8 +259,7 @@
|
||||
Each screen can stretch across multiple physical monitors.
|
||||
</para>
|
||||
<para>
|
||||
In GDK, screens are represented by
|
||||
<link linkend="GdkScreen">GdkScreen</link> objects.
|
||||
In GDK, screens are represented by #GdkScreen objects.
|
||||
</para>
|
||||
</glossdef>
|
||||
</glossentry>
|
||||
@@ -298,9 +280,8 @@
|
||||
<glossdef>
|
||||
<para>
|
||||
A <glossterm linkend="widget">widget</glossterm> that does not
|
||||
require a <glossterm linkend="parent">parent</glossterm>
|
||||
container. The only toplevel widgets in GTK+ are <link
|
||||
linkend="GtkWindow">GtkWindow</link> and widgets derived from it.
|
||||
require a <glossterm linkend="parent">parent</glossterm> container.
|
||||
The only toplevel widgets in GTK+ are #GtkWindow and widgets derived from it.
|
||||
</para>
|
||||
<glossseealso>
|
||||
<glossterm linkend="container">container</glossterm>
|
||||
@@ -323,7 +304,7 @@
|
||||
<glossdef>
|
||||
<para>
|
||||
A displayed column in a tree view, represented by a
|
||||
<link linkend="GtkTreeViewColumn">GtkTreeViewColumn</link> object.
|
||||
#GtkTreeViewColumn object.
|
||||
</para>
|
||||
<glossseealso>
|
||||
<glossterm linkend="model-column">model column</glossterm>
|
||||
@@ -362,8 +343,7 @@
|
||||
linkend="geometry">geometry</glossterm> of the widgets: every
|
||||
widget thus has a parent except those widgets which are
|
||||
<glossterm linkend="toplevel">toplevels</glossterm>. The base
|
||||
class for widgets is <link
|
||||
linkend="GtkWidget">GtkWidget</link>.
|
||||
class for widgets is #GtkWidget.
|
||||
</para>
|
||||
<glossseealso>
|
||||
<glossterm linkend="container">container</glossterm>
|
||||
|
@@ -100,6 +100,7 @@
|
||||
<!ENTITY GtkSocket SYSTEM "xml/gtksocket.xml">
|
||||
<!ENTITY GtkSpinButton SYSTEM "xml/gtkspinbutton.xml">
|
||||
<!ENTITY GtkStatusbar SYSTEM "xml/gtkstatusbar.xml">
|
||||
<!ENTITY GtkStatusIcon SYSTEM "xml/gtkstatusicon.xml">
|
||||
<!ENTITY GtkTable SYSTEM "xml/gtktable.xml">
|
||||
<!ENTITY GtkTearoffMenuItem SYSTEM "xml/gtktearoffmenuitem.xml">
|
||||
<!ENTITY GtkText SYSTEM "xml/gtktext.xml">
|
||||
@@ -131,6 +132,7 @@
|
||||
<!ENTITY GtkCellEditable SYSTEM "xml/gtkcelleditable.xml">
|
||||
<!ENTITY GtkCellLayout SYSTEM "xml/gtkcelllayout.xml">
|
||||
<!ENTITY GtkCellRenderer SYSTEM "xml/gtkcellrenderer.xml">
|
||||
<!ENTITY GtkCellRendererAccel SYSTEM "xml/gtkcellrendereraccel.xml">
|
||||
<!ENTITY GtkCellRendererCombo SYSTEM "xml/gtkcellrenderercombo.xml">
|
||||
<!ENTITY GtkCellRendererPixbuf SYSTEM "xml/gtkcellrendererpixbuf.xml">
|
||||
<!ENTITY GtkCellRendererProgress SYSTEM "xml/gtkcellrendererprogress.xml">
|
||||
@@ -175,8 +177,8 @@
|
||||
<!ENTITY visual-index SYSTEM "visual_index.xml">
|
||||
|
||||
<!ENTITY index-Objects-Grouped SYSTEM "objects_grouped.sgml">
|
||||
<!ENTITY gtk-TextWidget SYSTEM "text_widget.sgml">
|
||||
<!ENTITY gtk-TreeWidget SYSTEM "tree_widget.sgml">
|
||||
<!ENTITY gtk-TextWidget SYSTEM "xml/text_widget.sgml">
|
||||
<!ENTITY gtk-TreeWidget SYSTEM "xml/tree_widget.sgml">
|
||||
<!ENTITY gtk-Compiling SYSTEM "compiling.sgml">
|
||||
<!ENTITY gtk-Building SYSTEM "building.sgml">
|
||||
<!ENTITY gtk-Running SYSTEM "running.sgml">
|
||||
@@ -184,20 +186,20 @@
|
||||
<!ENTITY gtk-Windows SYSTEM "windows.sgml">
|
||||
<!ENTITY gtk-Framebuffer SYSTEM "framebuffer.sgml">
|
||||
<!ENTITY gtk-X11 SYSTEM "x11.sgml">
|
||||
<!ENTITY gtk-Questions SYSTEM "question_index.sgml">
|
||||
<!ENTITY gtk-Questions SYSTEM "xml/question_index.sgml">
|
||||
<!ENTITY gtk-Changes-1-2 SYSTEM "changes-1.2.sgml">
|
||||
<!ENTITY gtk-Changes-2-0 SYSTEM "changes-2.0.sgml">
|
||||
<!ENTITY gtk-migrating-checklist SYSTEM "migrating-checklist.sgml">
|
||||
<!ENTITY gtk-migrating-GtkFileChooser SYSTEM "migrating-GtkFileChooser.sgml">
|
||||
<!ENTITY gtk-migrating-GtkAction SYSTEM "migrating-GtkAction.sgml">
|
||||
<!ENTITY gtk-migrating-GtkComboBox SYSTEM "migrating-GtkComboBox.sgml">
|
||||
<!ENTITY gtk-migrating-GtkIconView SYSTEM "migrating-GtkIconView.sgml">
|
||||
<!ENTITY gtk-migrating-GtkAboutDialog SYSTEM "migrating-GtkAboutDialog.sgml">
|
||||
<!ENTITY gtk-migrating-GtkColorButton SYSTEM "migrating-GtkColorButton.sgml">
|
||||
<!ENTITY gtk-migrating-checklist SYSTEM "xml/migrating-checklist.sgml">
|
||||
<!ENTITY gtk-migrating-GtkFileChooser SYSTEM "xml/migrating-GtkFileChooser.sgml">
|
||||
<!ENTITY gtk-migrating-GtkAction SYSTEM "xml/migrating-GtkAction.sgml">
|
||||
<!ENTITY gtk-migrating-GtkComboBox SYSTEM "xml/migrating-GtkComboBox.sgml">
|
||||
<!ENTITY gtk-migrating-GtkIconView SYSTEM "xml/migrating-GtkIconView.sgml">
|
||||
<!ENTITY gtk-migrating-GtkAboutDialog SYSTEM "xml/migrating-GtkAboutDialog.sgml">
|
||||
<!ENTITY gtk-migrating-GtkColorButton SYSTEM "xml/migrating-GtkColorButton.sgml">
|
||||
<!ENTITY version SYSTEM "version.xml">
|
||||
<!ENTITY gtk-query-immodules SYSTEM "gtk-query-immodules-2.0.xml">
|
||||
<!ENTITY gtk-update-icon-cache SYSTEM "gtk-update-icon-cache.xml">
|
||||
<!ENTITY gtk-glossary SYSTEM "glossary.xml">
|
||||
<!ENTITY gtk-glossary SYSTEM "xml/glossary.xml">
|
||||
]>
|
||||
<book id="index">
|
||||
<bookinfo>
|
||||
@@ -354,6 +356,7 @@ that is, GUI components such as <link linkend="GtkButton">GtkButton</link> or
|
||||
&GtkLabel;
|
||||
&GtkProgressBar;
|
||||
&GtkStatusbar;
|
||||
&GtkStatusIcon;
|
||||
</chapter>
|
||||
|
||||
<chapter id="ButtonWidgets">
|
||||
@@ -401,6 +404,7 @@ that is, GUI components such as <link linkend="GtkButton">GtkButton</link> or
|
||||
&GtkCellLayout;
|
||||
&GtkCellRenderer;
|
||||
&GtkCellEditable;
|
||||
&GtkCellRendererAccel;
|
||||
&GtkCellRendererCombo;
|
||||
&GtkCellRendererPixbuf;
|
||||
&GtkCellRendererProgress;
|
||||
@@ -606,5 +610,11 @@ that is, GUI components such as <link linkend="GtkButton">GtkButton</link> or
|
||||
<index role="2.6">
|
||||
<title>Index of new symbols in 2.6</title>
|
||||
</index>
|
||||
<index role="2.8">
|
||||
<title>Index of new symbols in 2.8</title>
|
||||
</index>
|
||||
<index role="2.10">
|
||||
<title>Index of new symbols in 2.10</title>
|
||||
</index>
|
||||
|
||||
</book>
|
||||
|
@@ -16,6 +16,8 @@ gtk_about_dialog_get_comments
|
||||
gtk_about_dialog_set_comments
|
||||
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_website
|
||||
gtk_about_dialog_set_website
|
||||
gtk_about_dialog_get_website_label
|
||||
@@ -185,6 +187,7 @@ gtk_action_block_activate_from
|
||||
gtk_action_unblock_activate_from
|
||||
gtk_action_get_accel_path
|
||||
gtk_action_set_accel_path
|
||||
gtk_action_get_accel_closure
|
||||
gtk_action_set_accel_group
|
||||
<SUBSECTION Standard>
|
||||
GTK_TYPE_ACTION
|
||||
@@ -447,6 +450,7 @@ GTK_CALENDAR_CLASS
|
||||
GTK_IS_CALENDAR_CLASS
|
||||
GTK_CALENDAR_GET_CLASS
|
||||
<SUBSECTION Private>
|
||||
GtkCalendarPrivate
|
||||
gtk_calendar_get_type
|
||||
</SECTION>
|
||||
|
||||
@@ -749,6 +753,8 @@ gtk_combo_box_get_row_separator_func
|
||||
gtk_combo_box_set_row_separator_func
|
||||
gtk_combo_box_set_add_tearoffs
|
||||
gtk_combo_box_get_add_tearoffs
|
||||
gtk_combo_box_set_title
|
||||
gtk_combo_box_get_title
|
||||
gtk_combo_box_set_focus_on_click
|
||||
gtk_combo_box_get_focus_on_click
|
||||
<SUBSECTION Standard>
|
||||
@@ -973,6 +979,7 @@ 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
|
||||
<SUBSECTION>
|
||||
gtk_alternative_dialog_button_order
|
||||
gtk_dialog_set_alternative_button_order
|
||||
@@ -1119,6 +1126,10 @@ gtk_entry_completion_set_inline_completion
|
||||
gtk_entry_completion_get_inline_completion
|
||||
gtk_entry_completion_set_popup_completion
|
||||
gtk_entry_completion_get_popup_completion
|
||||
gtk_entry_completion_set_popup_set_width
|
||||
gtk_entry_completion_get_popup_set_width
|
||||
gtk_entry_completion_set_popup_single_match
|
||||
gtk_entry_completion_get_popup_single_match
|
||||
<SUBSECTION Standard>
|
||||
GTK_TYPE_ENTRY_COMPLETION
|
||||
GTK_ENTRY_COMPLETION
|
||||
@@ -1186,6 +1197,7 @@ GtkExpanderPrivate
|
||||
<TITLE>GtkFileChooser</TITLE>
|
||||
GtkFileChooser
|
||||
GtkFileChooserAction
|
||||
GtkFileChooserConfirmation
|
||||
GTK_FILE_CHOOSER_ERROR
|
||||
GtkFileChooserError
|
||||
gtk_file_chooser_error_quark
|
||||
@@ -1197,6 +1209,8 @@ gtk_file_chooser_set_select_multiple
|
||||
gtk_file_chooser_get_select_multiple
|
||||
gtk_file_chooser_set_show_hidden
|
||||
gtk_file_chooser_get_show_hidden
|
||||
gtk_file_chooser_set_do_overwrite_confirmation
|
||||
gtk_file_chooser_get_do_overwrite_confirmation
|
||||
gtk_file_chooser_set_current_name
|
||||
gtk_file_chooser_get_filename
|
||||
gtk_file_chooser_set_filename
|
||||
@@ -1290,6 +1304,9 @@ gtk_file_chooser_button_get_title
|
||||
gtk_file_chooser_button_set_title
|
||||
gtk_file_chooser_button_get_width_chars
|
||||
gtk_file_chooser_button_set_width_chars
|
||||
gtk_file_chooser_button_get_focus_on_click
|
||||
gtk_file_chooser_button_set_focus_on_click
|
||||
|
||||
<SUBSECTION Standard>
|
||||
GTK_FILE_CHOOSER_BUTTON
|
||||
GTK_IS_FILE_CHOOSER_BUTTON
|
||||
@@ -1627,7 +1644,6 @@ gtk_hseparator_get_type
|
||||
<FILE>gtkiconview</FILE>
|
||||
<TITLE>GtkIconView</TITLE>
|
||||
GtkIconView
|
||||
GtkIconViewPrivate
|
||||
GtkIconViewForeachFunc
|
||||
gtk_icon_view_new
|
||||
gtk_icon_view_new_with_model
|
||||
@@ -1640,6 +1656,9 @@ gtk_icon_view_get_markup_column
|
||||
gtk_icon_view_set_pixbuf_column
|
||||
gtk_icon_view_get_pixbuf_column
|
||||
gtk_icon_view_get_path_at_pos
|
||||
gtk_icon_view_get_item_at_pos
|
||||
gtk_icon_view_set_cursor
|
||||
gtk_icon_view_get_cursor
|
||||
gtk_icon_view_selected_foreach
|
||||
gtk_icon_view_set_selection_mode
|
||||
gtk_icon_view_get_selection_mode
|
||||
@@ -1664,6 +1683,21 @@ gtk_icon_view_get_selected_items
|
||||
gtk_icon_view_select_all
|
||||
gtk_icon_view_unselect_all
|
||||
gtk_icon_view_item_activated
|
||||
gtk_icon_view_scroll_to_path
|
||||
gtk_icon_view_get_visible_range
|
||||
<SUBSECTION Dnd>
|
||||
GtkIconViewDropPosition
|
||||
gtk_icon_view_enable_model_drag_source
|
||||
gtk_icon_view_enable_model_drag_dest
|
||||
gtk_icon_view_unset_model_drag_source
|
||||
gtk_icon_view_unset_model_drag_dest
|
||||
gtk_icon_view_set_reorderable
|
||||
gtk_icon_view_get_reorderable
|
||||
gtk_icon_view_set_drag_dest_item
|
||||
gtk_icon_view_get_drag_dest_item
|
||||
gtk_icon_view_get_dest_item_at_pos
|
||||
gtk_icon_view_create_drag_icon
|
||||
|
||||
<SUBSECTION Standard>
|
||||
GTK_ICON_VIEW_CLASS
|
||||
GTK_IS_ICON_VIEW
|
||||
@@ -1673,6 +1707,7 @@ GTK_TYPE_ICON_VIEW
|
||||
GTK_ICON_VIEW
|
||||
<SUBSECTION Private>
|
||||
gtk_icon_view_get_type
|
||||
GtkIconViewPrivate
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
@@ -1704,6 +1739,7 @@ gtk_image_set_from_pixmap
|
||||
gtk_image_set_from_stock
|
||||
gtk_image_set_from_animation
|
||||
gtk_image_set_from_icon_name
|
||||
gtk_image_clear
|
||||
gtk_image_new
|
||||
gtk_image_set
|
||||
gtk_image_get
|
||||
@@ -2102,6 +2138,11 @@ gtk_menu_bar_new
|
||||
gtk_menu_bar_append
|
||||
gtk_menu_bar_prepend
|
||||
gtk_menu_bar_insert
|
||||
GtkPackDirection
|
||||
gtk_menu_bar_set_pack_direction
|
||||
gtk_menu_bar_get_pack_direction
|
||||
gtk_menu_bar_set_child_pack_direction
|
||||
gtk_menu_bar_get_child_pack_direction
|
||||
<SUBSECTION Standard>
|
||||
GTK_MENU_BAR
|
||||
GTK_IS_MENU_BAR
|
||||
@@ -2191,6 +2232,8 @@ gtk_menu_shell_select_first
|
||||
gtk_menu_shell_deselect
|
||||
gtk_menu_shell_activate_item
|
||||
gtk_menu_shell_cancel
|
||||
gtk_menu_shell_set_take_focus
|
||||
gtk_menu_shell_get_take_focus
|
||||
GtkMenuDirectionType
|
||||
<SUBSECTION Standard>
|
||||
GTK_MENU_SHELL
|
||||
@@ -2697,6 +2740,8 @@ GtkScrolledWindow
|
||||
gtk_scrolled_window_new
|
||||
gtk_scrolled_window_get_hadjustment
|
||||
gtk_scrolled_window_get_vadjustment
|
||||
gtk_scrolled_window_get_hscrollbar
|
||||
gtk_scrolled_window_get_vscrollbar
|
||||
gtk_scrolled_window_set_policy
|
||||
gtk_scrolled_window_add_with_viewport
|
||||
gtk_scrolled_window_set_placement
|
||||
@@ -2788,6 +2833,8 @@ GtkSizeGroupMode
|
||||
gtk_size_group_new
|
||||
gtk_size_group_set_mode
|
||||
gtk_size_group_get_mode
|
||||
gtk_size_group_set_ignore_hidden
|
||||
gtk_size_group_get_ignore_hidden
|
||||
gtk_size_group_add_widget
|
||||
gtk_size_group_remove_widget
|
||||
<SUBSECTION Standard>
|
||||
@@ -2885,6 +2932,40 @@ GTK_STATUSBAR_GET_CLASS
|
||||
gtk_statusbar_get_type
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>gtkstatusicon</FILE>
|
||||
<TITLE>GtkStatusIcon</TITLE>
|
||||
gtk_status_icon_new
|
||||
gtk_status_icon_new_from_pixbuf
|
||||
gtk_status_icon_new_from_file
|
||||
gtk_status_icon_new_from_stock
|
||||
gtk_status_icon_new_from_icon_name
|
||||
gtk_status_icon_set_from_pixbuf
|
||||
gtk_status_icon_set_from_file
|
||||
gtk_status_icon_set_from_stock
|
||||
gtk_status_icon_set_from_icon_name
|
||||
gtk_status_icon_get_storage_type
|
||||
gtk_status_icon_get_pixbuf
|
||||
gtk_status_icon_get_stock
|
||||
gtk_status_icon_get_icon_name
|
||||
gtk_status_icon_get_size
|
||||
gtk_status_icon_set_tooltip
|
||||
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
|
||||
<SUBSECTION Standard>
|
||||
GTK_TYPE_STATUS_ICON
|
||||
GTK_STATUS_ICON
|
||||
GTK_STATUS_ICON_CLASS
|
||||
GTK_IS_STATUS_ICON
|
||||
GTK_IS_STATUS_ICON_CLASS
|
||||
GTK_STATUS_ICON_GET_CLASS
|
||||
<SUBSECTION Private>
|
||||
gtk_status_icon_get_type
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>gtktable</FILE>
|
||||
<TITLE>GtkTable</TITLE>
|
||||
@@ -3003,6 +3084,7 @@ gtk_text_buffer_delete_mark_by_name
|
||||
gtk_text_buffer_get_mark
|
||||
gtk_text_buffer_get_insert
|
||||
gtk_text_buffer_get_selection_bound
|
||||
gtk_text_buffer_get_has_selection
|
||||
gtk_text_buffer_place_cursor
|
||||
gtk_text_buffer_select_range
|
||||
gtk_text_buffer_apply_tag
|
||||
@@ -3115,6 +3197,10 @@ gtk_text_iter_forward_visible_cursor_position
|
||||
gtk_text_iter_backward_visible_cursor_position
|
||||
gtk_text_iter_forward_visible_cursor_positions
|
||||
gtk_text_iter_backward_visible_cursor_positions
|
||||
gtk_text_iter_forward_visible_line
|
||||
gtk_text_iter_backward_visible_line
|
||||
gtk_text_iter_forward_visible_lines
|
||||
gtk_text_iter_backward_visible_lines
|
||||
gtk_text_iter_set_offset
|
||||
gtk_text_iter_set_line
|
||||
gtk_text_iter_set_line_offset
|
||||
@@ -3503,6 +3589,8 @@ gtk_tool_button_set_use_underline
|
||||
gtk_tool_button_get_use_underline
|
||||
gtk_tool_button_set_stock_id
|
||||
gtk_tool_button_get_stock_id
|
||||
gtk_tool_button_set_icon_name
|
||||
gtk_tool_button_get_icon_name
|
||||
gtk_tool_button_set_icon_widget
|
||||
gtk_tool_button_get_icon_widget
|
||||
gtk_tool_button_set_label_widget
|
||||
@@ -3705,6 +3793,7 @@ gtk_tree_path_is_ancestor
|
||||
gtk_tree_path_is_descendant
|
||||
gtk_tree_row_reference_new
|
||||
gtk_tree_row_reference_new_proxy
|
||||
gtk_tree_row_reference_get_model
|
||||
gtk_tree_row_reference_get_path
|
||||
gtk_tree_row_reference_valid
|
||||
gtk_tree_row_reference_free
|
||||
@@ -3984,6 +4073,7 @@ gtk_tree_view_column_cell_get_size
|
||||
gtk_tree_view_column_cell_get_position
|
||||
gtk_tree_view_column_cell_is_visible
|
||||
gtk_tree_view_column_focus_cell
|
||||
gtk_tree_view_column_queue_resize
|
||||
<SUBSECTION Standard>
|
||||
GTK_TREE_VIEW_COLUMN
|
||||
GTK_IS_TREE_VIEW_COLUMN
|
||||
@@ -4016,6 +4106,7 @@ gtk_tree_view_set_vadjustment
|
||||
gtk_tree_view_get_headers_visible
|
||||
gtk_tree_view_set_headers_visible
|
||||
gtk_tree_view_columns_autosize
|
||||
gtk_tree_view_get_headers_clickable
|
||||
gtk_tree_view_set_headers_clickable
|
||||
gtk_tree_view_set_rules_hint
|
||||
gtk_tree_view_get_rules_hint
|
||||
@@ -4049,6 +4140,7 @@ gtk_tree_view_get_path_at_pos
|
||||
gtk_tree_view_get_cell_area
|
||||
gtk_tree_view_get_background_area
|
||||
gtk_tree_view_get_visible_rect
|
||||
gtk_tree_view_get_visible_range
|
||||
gtk_tree_view_get_bin_window
|
||||
gtk_tree_view_widget_to_tree_coords
|
||||
gtk_tree_view_tree_to_widget_coords
|
||||
@@ -4097,8 +4189,6 @@ gtk_cell_view_new
|
||||
gtk_cell_view_new_with_text
|
||||
gtk_cell_view_new_with_markup
|
||||
gtk_cell_view_new_with_pixbuf
|
||||
gtk_cell_view_set_value
|
||||
gtk_cell_view_set_values
|
||||
gtk_cell_view_set_model
|
||||
gtk_cell_view_set_displayed_row
|
||||
gtk_cell_view_get_displayed_row
|
||||
@@ -4271,6 +4361,23 @@ gtk_cell_renderer_progress_get_type
|
||||
GtkCellRendererProgressPrivate
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>gtkcellrendereraccel</FILE>
|
||||
<TITLE>GtkCellRendererAccel</TITLE>
|
||||
GtkCellRendererAccel
|
||||
gtk_cell_renderer_accel_new
|
||||
|
||||
<SUBSECTION Standard>
|
||||
GTK_TYPE_CELL_RENDERER_ACCEL
|
||||
GTK_CELL_RENDERER_ACCEL
|
||||
GTK_CELL_RENDERER_ACCEL_CLASS
|
||||
GTK_IS_CELL_RENDERER_ACCEL
|
||||
GTK_IS_CELL_RENDERER_ACCEL_CLASS
|
||||
GTK_CELL_RENDERER_ACCEL_GET_CLASS
|
||||
<SUBSECTION Private>
|
||||
gtk_cell_renderer_accel_get_type
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>gtkliststore</FILE>
|
||||
<TITLE>GtkListStore</TITLE>
|
||||
@@ -4674,6 +4781,7 @@ gtk_window_get_focus
|
||||
gtk_window_set_focus
|
||||
gtk_window_set_default
|
||||
gtk_window_present
|
||||
gtk_window_present_with_time
|
||||
gtk_window_iconify
|
||||
gtk_window_deiconify
|
||||
gtk_window_stick
|
||||
@@ -4687,6 +4795,7 @@ gtk_window_set_keep_below
|
||||
gtk_window_begin_resize_drag
|
||||
gtk_window_begin_move_drag
|
||||
gtk_window_set_decorated
|
||||
gtk_window_set_deletable
|
||||
gtk_window_set_frame_dimensions
|
||||
gtk_window_set_has_frame
|
||||
gtk_window_set_mnemonic_modifier
|
||||
@@ -4694,9 +4803,11 @@ gtk_window_set_role
|
||||
gtk_window_set_type_hint
|
||||
gtk_window_set_skip_taskbar_hint
|
||||
gtk_window_set_skip_pager_hint
|
||||
gtk_window_set_urgency_hint
|
||||
gtk_window_set_accept_focus
|
||||
gtk_window_set_focus_on_map
|
||||
gtk_window_get_decorated
|
||||
gtk_window_get_deletable
|
||||
gtk_window_get_default_icon_list
|
||||
gtk_window_get_default_size
|
||||
gtk_window_get_destroy_with_parent
|
||||
@@ -4715,6 +4826,7 @@ gtk_window_get_transient_for
|
||||
gtk_window_get_type_hint
|
||||
gtk_window_get_skip_taskbar_hint
|
||||
gtk_window_get_skip_pager_hint
|
||||
gtk_window_get_urgency_hint
|
||||
gtk_window_get_accept_focus
|
||||
gtk_window_get_focus_on_map
|
||||
gtk_window_move
|
||||
@@ -4895,6 +5007,7 @@ gtk_style_unref
|
||||
gtk_style_set_background
|
||||
gtk_style_apply_default_background
|
||||
gtk_style_apply_default_pixmap
|
||||
gtk_style_lookup_color
|
||||
gtk_style_lookup_icon_set
|
||||
gtk_style_render_icon
|
||||
gtk_style_get_font
|
||||
@@ -5058,6 +5171,10 @@ gtk_selection_data_get_uris
|
||||
gtk_selection_data_get_targets
|
||||
gtk_selection_data_targets_include_image
|
||||
gtk_selection_data_targets_include_text
|
||||
gtk_selection_data_targets_include_uri
|
||||
gtk_targets_include_image
|
||||
gtk_targets_include_text
|
||||
gtk_targets_include_uri
|
||||
gtk_selection_remove_all
|
||||
gtk_selection_clear
|
||||
gtk_selection_data_copy
|
||||
@@ -5075,6 +5192,7 @@ gtk_selection_data_get_type
|
||||
GtkClipboard
|
||||
GtkClipboardReceivedFunc
|
||||
GtkClipboardTextReceivedFunc
|
||||
GtkClipboardImageReceivedFunc
|
||||
GtkClipboardTargetsReceivedFunc
|
||||
GtkClipboardGetFunc
|
||||
GtkClipboardClearFunc
|
||||
@@ -5134,6 +5252,7 @@ gtk_drag_set_icon_widget
|
||||
gtk_drag_set_icon_pixmap
|
||||
gtk_drag_set_icon_pixbuf
|
||||
gtk_drag_set_icon_stock
|
||||
gtk_drag_set_icon_name
|
||||
gtk_drag_set_icon_default
|
||||
gtk_drag_set_default_icon
|
||||
gtk_drag_check_threshold
|
||||
@@ -5141,6 +5260,7 @@ 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
|
||||
gtk_drag_source_unset
|
||||
gtk_drag_source_set_target_list
|
||||
gtk_drag_source_get_target_list
|
||||
@@ -5365,6 +5485,7 @@ gtk_stock_item_copy
|
||||
gtk_stock_item_free
|
||||
gtk_stock_list_ids
|
||||
gtk_stock_lookup
|
||||
gtk_stock_set_translate_func
|
||||
<SUBSECTION Stock IDs>
|
||||
GTK_STOCK_ABOUT
|
||||
GTK_STOCK_ADD
|
||||
@@ -5395,6 +5516,7 @@ GTK_STOCK_FILE
|
||||
GTK_STOCK_FIND
|
||||
GTK_STOCK_FIND_AND_REPLACE
|
||||
GTK_STOCK_FLOPPY
|
||||
GTK_STOCK_FULLSCREEN
|
||||
GTK_STOCK_GOTO_BOTTOM
|
||||
GTK_STOCK_GOTO_FIRST
|
||||
GTK_STOCK_GOTO_LAST
|
||||
@@ -5408,12 +5530,14 @@ GTK_STOCK_HELP
|
||||
GTK_STOCK_HOME
|
||||
GTK_STOCK_INDENT
|
||||
GTK_STOCK_INDEX
|
||||
GTK_STOCK_INFO
|
||||
GTK_STOCK_ITALIC
|
||||
GTK_STOCK_JUMP_TO
|
||||
GTK_STOCK_JUSTIFY_CENTER
|
||||
GTK_STOCK_JUSTIFY_FILL
|
||||
GTK_STOCK_JUSTIFY_LEFT
|
||||
GTK_STOCK_JUSTIFY_RIGHT
|
||||
GTK_STOCK_LEAVE_FULLSCREEN
|
||||
GTK_STOCK_MEDIA_FORWARD
|
||||
GTK_STOCK_MEDIA_NEXT
|
||||
GTK_STOCK_MEDIA_PAUSE
|
||||
@@ -5440,6 +5564,7 @@ GTK_STOCK_REMOVE
|
||||
GTK_STOCK_REVERT_TO_SAVED
|
||||
GTK_STOCK_SAVE
|
||||
GTK_STOCK_SAVE_AS
|
||||
GTK_STOCK_SELECT_ALL
|
||||
GTK_STOCK_SELECT_COLOR
|
||||
GTK_STOCK_SELECT_FONT
|
||||
GTK_STOCK_SORT_ASCENDING
|
||||
|
@@ -1,56 +1,51 @@
|
||||
.\"Generated by db2man.xsl. Don't modify this, modify the source.
|
||||
.de Sh \" Subsection
|
||||
.br
|
||||
.if t .Sp
|
||||
.ne 5
|
||||
.PP
|
||||
\fB\\$1\fR
|
||||
.PP
|
||||
..
|
||||
.de Sp \" Vertical space (when we can't use .PP)
|
||||
.if t .sp .5v
|
||||
.if n .sp
|
||||
..
|
||||
.de Ip \" List item
|
||||
.br
|
||||
.ie \\n(.$>=3 .ne \\$3
|
||||
.el .ne 3
|
||||
.IP "\\$1" \\$2
|
||||
..
|
||||
.TH "GTK-UPDATE-ICON-CA" 1 "" "" ""
|
||||
.SH NAME
|
||||
gtk-update-icon-cache \- Icon theme caching utility
|
||||
.SH "SYNOPSIS"
|
||||
.\" ** You probably do not want to edit this file directly **
|
||||
.\" It was generated using the DocBook XSL Stylesheets (version 1.69.1).
|
||||
.\" Instead of manually editing it, you probably should edit the DocBook XML
|
||||
.\" source for it and then use the DocBook XSL Stylesheets to regenerate it.
|
||||
.TH "GTK\-UPDATE\-ICON\-CACH" "1" "11/07/2005" "" ""
|
||||
.\" disable hyphenation
|
||||
.nh
|
||||
.\" disable justification (adjust text to left margin only)
|
||||
.ad l
|
||||
.hy 0
|
||||
.SH "NAME"
|
||||
gtk\-update\-icon\-cache \- Icon theme caching utility
|
||||
.SH "SYNOPSIS"
|
||||
.HP 22
|
||||
\fBgtk\-update\-icon\-cache\fR [\-\-force] [\-\-quiet] {iconpath}
|
||||
.ad
|
||||
.hy
|
||||
|
||||
\fBgtk\-update\-icon\-cache\fR [\-\-force] [\-\-ignore\-theme\-index] [\-\-index\-only] [\-\-source\ [name]] [\-\-quiet] {iconpath}
|
||||
.SH "DESCRIPTION"
|
||||
|
||||
.PP
|
||||
\fBgtk\-update\-icon\-cache\fR creates mmap()able cache files for icon themes\&.
|
||||
|
||||
\fBgtk\-update\-icon\-cache\fR
|
||||
creates mmap()able cache files for icon themes.
|
||||
.PP
|
||||
If expects to be given the path to a icon theme directory, e\&.g\&. \fI/usr/share/icons/hicolor\fR, and writes a \fIicon\-theme\&.cache\fR containing cached information about the icons in the directory tree below the given directory\&.
|
||||
|
||||
It expects to be given the path to a icon theme directory containing an
|
||||
\fIindex.theme\fR, e.g.
|
||||
\fI/usr/share/icons/hicolor\fR, and writes a
|
||||
\fIicon\-theme.cache\fR
|
||||
containing cached information about the icons in the directory tree below the given directory.
|
||||
.PP
|
||||
GTK+ can use the cache files created by \fBgtk\-update\-icon\-cache\fR to avoid a lot of system call and disk seek overhead when the application starts\&. Since the format of the cache files allows them to be mmap()ed shared between multiple applications, the overall memory consumption is reduced as well\&.
|
||||
|
||||
GTK+ can use the cache files created by
|
||||
\fBgtk\-update\-icon\-cache\fR
|
||||
to avoid a lot of system call and disk seek overhead when the application starts. Since the format of the cache files allows them to be mmap()ed shared between multiple applications, the overall memory consumption is reduced as well.
|
||||
.SH "OPTIONS"
|
||||
|
||||
.TP
|
||||
\-\-force, \-f,
|
||||
Overwrite an existing cache file even if it appears to be uptodate\&.
|
||||
|
||||
\-\-force, \-f
|
||||
Overwrite an existing cache file even if it appears to be uptodate.
|
||||
.TP
|
||||
\-\-quiet, \-q,
|
||||
Turn off verbose output\&.
|
||||
|
||||
\-\-ignore\-theme\-index, \-t
|
||||
Don't check for the existence of 'index.theme' in the icon theme directory. Without this option,
|
||||
\fBgtk\-update\-icon\-cache\fR
|
||||
refuses to create an icon cache in a directory which does not appear to be the toplevel directory of an icon theme.
|
||||
.TP
|
||||
\-\-index\-only, \-i
|
||||
Don't include image data in the cache.
|
||||
.TP
|
||||
\-\-source, \-c
|
||||
Output a C header file declaring a constant
|
||||
\fIname\fR
|
||||
with the contents of the icon cache.
|
||||
.TP
|
||||
\-\-quiet, \-q
|
||||
Turn off verbose output.
|
||||
.SH "BUGS"
|
||||
|
||||
.PP
|
||||
None known yet\&.
|
||||
|
||||
None known yet.
|
||||
|
@@ -14,20 +14,22 @@
|
||||
<cmdsynopsis>
|
||||
<command>gtk-update-icon-cache</command>
|
||||
<arg choice="opt">--force</arg>
|
||||
<arg choice="opt">--ignore-theme-index</arg>
|
||||
<arg choice="opt">--index-only</arg>
|
||||
<arg choice="opt">--source<arg>name</arg></arg>
|
||||
<arg choice="opt">--quiet</arg>
|
||||
<arg choice="req">iconpath</arg>
|
||||
</cmdsynopsis>
|
||||
</refsynopsisdiv>
|
||||
|
||||
<refsect1><title>Description</title>
|
||||
<para>
|
||||
<command>gtk-update-icon-cache</command> creates mmap()able cache files for
|
||||
<para><command>gtk-update-icon-cache</command> creates mmap()able cache files for
|
||||
icon themes.
|
||||
</para>
|
||||
<para>
|
||||
If expects to be given the path to a icon theme directory, e.g.
|
||||
<filename>/usr/share/icons/hicolor</filename>, and writes a
|
||||
<filename>icon-theme.cache</filename> containing cached information
|
||||
It expects to be given the path to a icon theme directory containing an
|
||||
<filename>index.theme</filename>, e.g. <filename>/usr/share/icons/hicolor</filename>,
|
||||
and writes a <filename>icon-theme.cache</filename> containing cached information
|
||||
about the icons in the directory tree below the given directory.
|
||||
</para>
|
||||
<para>
|
||||
@@ -43,9 +45,35 @@ multiple applications, the overall memory consumption is reduced as well.
|
||||
<varlistentry>
|
||||
<term>--force</term>
|
||||
<term>-f</term>
|
||||
<listitem><para>Overwrite an existing cache file even if it appears to be uptodate.
|
||||
<listitem><para>Overwrite an existing cache file even if it appears to be
|
||||
uptodate.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>--ignore-theme-index</term>
|
||||
<term>-t</term>
|
||||
<listitem><para>Don't check for the existence of 'index.theme' in the icon theme
|
||||
directory. Without this option, <command>gtk-update-icon-cache</command> refuses
|
||||
to create an icon cache in a directory which does not appear to be the toplevel
|
||||
directory of an icon theme.
|
||||
</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>--index-only</term>
|
||||
<term>-i</term>
|
||||
<listitem><para>Don't include image data in the cache.
|
||||
</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>--source</term>
|
||||
<term>-c</term>
|
||||
<listitem><para>Output a C header file declaring a constant
|
||||
<replaceable>name</replaceable> with the contents of the icon
|
||||
cache.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>--quiet</term>
|
||||
<term>-q</term>
|
||||
|
@@ -18,6 +18,7 @@ gtk_button_get_type
|
||||
gtk_calendar_get_type
|
||||
gtk_cell_editable_get_type
|
||||
gtk_cell_layout_get_type
|
||||
gtk_cell_renderer_accel_get_type
|
||||
gtk_cell_renderer_combo_get_type
|
||||
gtk_cell_renderer_get_type
|
||||
gtk_cell_renderer_pixbuf_get_type
|
||||
@@ -27,6 +28,7 @@ gtk_cell_renderer_toggle_get_type
|
||||
gtk_cell_view_get_type
|
||||
gtk_check_button_get_type
|
||||
gtk_check_menu_item_get_type
|
||||
gtk_clipboard_get_type
|
||||
gtk_clist_get_type
|
||||
gtk_color_button_get_type
|
||||
gtk_color_selection_dialog_get_type
|
||||
@@ -116,6 +118,7 @@ gtk_size_group_get_type
|
||||
gtk_socket_get_type
|
||||
gtk_spin_button_get_type
|
||||
gtk_statusbar_get_type
|
||||
gtk_status_icon_get_type
|
||||
gtk_style_get_type
|
||||
gtk_table_get_type
|
||||
gtk_tearoff_menu_item_get_type
|
||||
|
Binary file not shown.
Before Width: | Height: | Size: 9.0 KiB After Width: | Height: | Size: 8.3 KiB |
@@ -3,15 +3,13 @@
|
||||
<title>Migrating from GnomeAbout to GtkAboutDialog</title>
|
||||
|
||||
<para>
|
||||
Since version 2.6, GTK+ provides the <link
|
||||
linkend="GtkIconView">GtkAboutDialog</link> widget as a replacement for
|
||||
Since version 2.6, GTK+ provides the #GtkAboutDialog widget as a replacement for
|
||||
the <structname>GnomeAbout</structname> dialog in the libgnomeui library.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
<link linkend="GtkIconView">GtkAboutDialog</link> supports all features
|
||||
found in <structname>GnomeAbout</structname>. The
|
||||
<structname>GtkAboutDialog</structname> API is bigger, since it follows
|
||||
#GtkAboutDialog supports all features found in <structname>GnomeAbout</structname>.
|
||||
The <structname>GtkAboutDialog</structname> API is bigger, since it follows
|
||||
the GTK+ policy to have getters and setters for all widget properties,
|
||||
but it isn't much more complex than <structname>GnomeAbout</structname>.
|
||||
</para>
|
||||
@@ -56,9 +54,9 @@
|
||||
NULL);
|
||||
g_object_unref (pixbuf);
|
||||
</programlisting></informalexample>
|
||||
If the <link linkend="g-object-new"><function>g_object_new()</function></link> construction scares you,
|
||||
you can also use <link linkend="g-object-new"><function>gtk_about_dialog_new()</function></link> to
|
||||
construct the dialog and then use the setters for the individual properties.
|
||||
If the g_object_new() construction scares you, you can also use
|
||||
gtk_about_dialog_new() to construct the dialog and then use the setters for
|
||||
the individual properties.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
@@ -82,9 +80,8 @@
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
If your credits contain email addresses or URLs, you can turn them
|
||||
into clickable links using
|
||||
<link linkend="gtk-about-dialog-set-email-hook"><function>gtk_about_dialog_set_email_hook()</function></link> and
|
||||
<link linkend="gtk-about-dialog-set-url-hook"><function>gtk_about_dialog_set_url_hook()</function></link>.
|
||||
into clickable links using gtk_about_dialog_set_email_hook() and
|
||||
gtk_about_dialog_set_url_hook().
|
||||
</para></listitem>
|
||||
</itemizedlist>
|
||||
</para>
|
||||
|
@@ -15,40 +15,35 @@
|
||||
|
||||
<para>
|
||||
Prior to GTK+ 2.4, there were several APIs in use to create menus
|
||||
and toolbars. GTK+ itself included <link
|
||||
linkend="GtkItemFactory">GtkItemFactory</link>, which was
|
||||
and toolbars. GTK+ itself included #GtkItemFactory, which was
|
||||
historically used in the GIMP; libgnomeui provided the gnome-ui
|
||||
set of macros; libbonoboui provided a complex mechanism to do menu
|
||||
merging across embedded components. GTK+ 2.4 includes a system
|
||||
for creating menus and toolbars, with merging of items, based
|
||||
around the <link linkend="GtkAction">GtkAction</link> mechanism.
|
||||
around the #GtkAction mechanism.
|
||||
</para>
|
||||
|
||||
<section id="actions-and-action-groups">
|
||||
<title>Actions and Action Groups</title>
|
||||
|
||||
<para>
|
||||
A <link linkend="GtkAction">GtkAction</link> represents an
|
||||
operation that the user can perform from the menus and toolbars
|
||||
of an application. It is similar to "verbs" in other menu
|
||||
systems. A <link linkend="GtkAction">GtkAction</link> has a
|
||||
name, which is its identifier, and it can have several widgets
|
||||
that represent it in the user interface. For example, an action
|
||||
for <symbol>EditCopy</symbol> can have a menu item as well as a
|
||||
toolbar button associated to it. If there is nothing selected
|
||||
A #GtkAction represents an operation that the user can perform from
|
||||
the menus and toolbars of an application. It is similar to "verbs"
|
||||
in other menu systems. A #GtkAction has a name, which is its identifier,
|
||||
and it can have several widgets that represent it in the user interface.
|
||||
For example, an action for <symbol>EditCopy</symbol> can have a menu item
|
||||
as well as a toolbar button associated to it. If there is nothing selected
|
||||
in the document, the application can simply de-sensitize the
|
||||
<symbol>EditCopy</symbol> action; this will cause both the menu
|
||||
item and the toolbar button to be de-sensitized automatically.
|
||||
Similarly, whenever the user selects the menu item or the
|
||||
toolbar button associated to the <symbol>EditCopy</symbol>
|
||||
action, the corresponding <link
|
||||
linkend="GtkAction">GtkAction</link> object will emit an
|
||||
action, the corresponding #GtkAction object will emit an
|
||||
"activate" signal.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
<link linkend="GtkActionGroup">GtkActionGroup</link> is simply a
|
||||
group of <link linkend="GtkAction">GtkAction</link> objects. An
|
||||
#GtkActionGroup is simply a group of #GtkAction objects. An
|
||||
application may want to have several groups: one for global
|
||||
actions such as "new document", "about", and "exit"; then one
|
||||
group for each open document with actions specific to the
|
||||
@@ -72,22 +67,20 @@
|
||||
<title>User Interface Manager Object</title>
|
||||
|
||||
<para>
|
||||
<link linkend="GtkUIManager">GtkUIManager</link> is an object
|
||||
that can construct menu and toolbar widgets from an XML
|
||||
description. These widgets are in turn associated to
|
||||
#GtkUIManager is an object that can construct menu and toolbar widgets
|
||||
from an XML description. These widgets are in turn associated to
|
||||
corresponding actions and action groups.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
<link linkend="GtkUIManager">GtkUIManager</link> supports
|
||||
merging of menus and toolbars for applications that have
|
||||
multiple components, each with separate sets of commands. For
|
||||
example, a word processor that can embed images may want to have
|
||||
#GtkUIManager supports merging of menus and toolbars for applications
|
||||
that have multiple components, each with separate sets of commands.
|
||||
For example, a word processor that can embed images may want to have
|
||||
toolbar buttons for Bold and Italic when the cursor is on a text
|
||||
block, but Crop and Brightness/Contrast buttons when the cursor
|
||||
is on an image. These actions, which change depending on the
|
||||
state of the application, can be merged and de-merged from a
|
||||
<link linkend="GtkUIManager">GtkUIManager</link> as appropriate.
|
||||
#GtkUIManager as appropriate.
|
||||
</para>
|
||||
</section>
|
||||
|
||||
@@ -102,8 +95,7 @@
|
||||
array of <structname>GnomeUIInfo</structname> structures, which
|
||||
contain information for menu or toolbar items such as their
|
||||
label, icon, and accelerator key. Then, one calls
|
||||
<function>gnome_app_fill_menu()</function> or
|
||||
<function>gnome_app_fill_toolbar()</function>, or one of the
|
||||
gnome_app_fill_menu() or gnome_app_fill_toolbar(), or one of the
|
||||
related functions, to create the appropriate widgets based on
|
||||
these structures.
|
||||
</para>
|
||||
@@ -113,8 +105,7 @@
|
||||
pass back pointers to the widgets that got created. This means
|
||||
that the structures cannot simply be kept around if the program
|
||||
requires multiple instances of the user interface (e.g. several
|
||||
windows); each new invocation of
|
||||
<function>gnome_app_fill_menu()</function> would overwrite the
|
||||
windows); each new invocation of gnome_app_fill_menu() would overwrite the
|
||||
widget fields of the structures.
|
||||
</para>
|
||||
|
||||
@@ -142,11 +133,9 @@
|
||||
<para>
|
||||
Separate your existing GnomeUIInfo entries into normal
|
||||
actions, toggle actions, and radio actions, and then create
|
||||
a separate array of <link
|
||||
linkend="GtkActionEntry">GtkActionEntry</link> structures
|
||||
a separate array of #GtkActionEntry structures
|
||||
for each group. This will allow you to create the necessary
|
||||
<link linkend="GtkActionGroup">GtkActionGroup</link>
|
||||
objects. Note that this does not describe the actual
|
||||
#GtkActionGroup objects. Note that this does not describe the actual
|
||||
"shape" that your menus and toolbars will have; it simply
|
||||
defines the set of commands that will appear in them.
|
||||
</para>
|
||||
@@ -154,27 +143,22 @@
|
||||
<listitem>
|
||||
<para>
|
||||
Create an XML description of your menus and toolbars for use
|
||||
with <link linkend="GtkUIManager">GtkUIManager</link>. This
|
||||
defines the actual shape of the menus and toolbars.
|
||||
with #GtkUIManager. This defines the actual shape of the menus and toolbars.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
Port the code that uses gnome-app and gnome-app-helper to
|
||||
<link linkend="GtkAction">GtkAction</link> and <link
|
||||
linkend="GtkUIManager">GtkUIManager</link>.
|
||||
#GtkAction and #GtkUIManager.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
If your GnomeUIInfo entries use GNOME_APP_PIXMAP_DATA or
|
||||
GNOME_APP_PIXMAP_FILENAME for pixmaps, you have to create a
|
||||
<link linkend="GtkIconFactory">GtkIconFactory</link>, add it
|
||||
to the list of default factories, then create a
|
||||
<link linkend="GtkIconSet">GtkIconSet</link> for each of your
|
||||
own icons. Add the sets to the factory, and use the id in the
|
||||
<link linkend="GtkActionEntry">GtkActionEntry</link> like a
|
||||
regular GTK+ stock id.
|
||||
#GtkIconFactory, add it to the list of default factories, then create a
|
||||
#GtkIconSet for each of your own icons. Add the sets to the factory, and
|
||||
use the id in the #GtkActionEntry like a regular GTK+ stock id.
|
||||
</para>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
@@ -184,8 +168,8 @@
|
||||
|
||||
<para>
|
||||
The following code shows a declaration of a simple menu bar to
|
||||
be used with <function>gnome_app_fill_menu()</function> or
|
||||
similar. The menu hierarchy looks like this:
|
||||
be used with gnome_app_fill_menu() or similar. The menu hierarchy looks
|
||||
like this:
|
||||
</para>
|
||||
|
||||
<itemizedlist>
|
||||
@@ -269,35 +253,32 @@ static GnomeUIInfo menubar[] = {
|
||||
The following code is the set of actions that are present in
|
||||
the <link linkend="gnomeuiinfo-example">previous
|
||||
example</link>. Note that the toggle and radio entries are
|
||||
separate from normal actions. Also, note that <link
|
||||
linkend="GtkActionEntry">GtkActionEntry</link> structures take
|
||||
key names in the format of gdk_accelerator_parse() rather than
|
||||
key values plus modifiers; you will have to convert these
|
||||
values by hand. For example, <constant>GDK_F11</constant>
|
||||
with no modifiers is equivalent to a key name of
|
||||
<literal>"F11"</literal>. Likewise, <literal>"o"</literal>
|
||||
with <constant>GDK_CONTROL_MASK</constant> is equivalent to
|
||||
<literal>"<ontrol>O"</literal>.
|
||||
separate from normal actions. Also, note that #GtkActionEntry
|
||||
structures take key names in the format of gdk_accelerator_parse()
|
||||
rather than key values plus modifiers; you will have to convert these
|
||||
values by hand. For example, %GDK_F11 with no modifiers is equivalent
|
||||
to a key name of <literal>"F11"</literal>. Likewise, <literal>"o"</literal>
|
||||
with %GDK_CONTROL_MASK is equivalent to <literal>"<ontrol>O"</literal>.
|
||||
</para>
|
||||
|
||||
<programlisting>
|
||||
/* Normal items */
|
||||
static GtkActionEntry entries[] = {
|
||||
static const GtkActionEntry entries[] = {
|
||||
{ "FileMenu", NULL, "_File" },
|
||||
{ "ViewMenu", NULL, "_View" },
|
||||
{ "Open", GTK_STOCK_OPEN, "_Open", "<control>O", "Open a file", open_action_callback },
|
||||
{ "Exit", GTK_STOCK_OPEN, "E_xit", "<control>Q", "Exit the program", exit_action_callback },
|
||||
{ "Exit", GTK_STOCK_QUIT, "E_xit", "<control>Q", "Exit the program", exit_action_callback },
|
||||
{ "ZoomIn", GTK_STOCK_ZOOM_IN, "Zoom _In", "plus", "Zoom into the image", zoom_in_action_callback },
|
||||
{ "ZoomOut", GTK_STOCK_ZOOM_OUT, "Zoom _Out", "minus", "Zoom away from the image", zoom_out_action_callback },
|
||||
};
|
||||
|
||||
/* Toggle items */
|
||||
static GtkToggleActionEntry toggle_entries[] = {
|
||||
static const GtkToggleActionEntry toggle_entries[] = {
|
||||
{ "FullScreen", NULL, "_Full Screen", "F11", "Switch between full screen and windowed mode", full_screen_action_callback, FALSE }
|
||||
};
|
||||
|
||||
/* Radio items */
|
||||
static GtkRadioActionEntry radio_entries[] = {
|
||||
static const GtkRadioActionEntry radio_entries[] = {
|
||||
{ "HighQuality", "my-stock-high-quality", "_High Quality", NULL, "Display images in high quality, slow mode", 0 },
|
||||
{ "NormalQuality", "my-stock-normal-quality", "_Normal Quality", NULL, "Display images in normal quality", 1 },
|
||||
{ "LowQuality", "my-stock-low-quality", "_Low Quality", NULL, "Display images in low quality, fast mode", 2 }
|
||||
@@ -311,9 +292,8 @@ static GtkRadioActionEntry radio_entries[] = {
|
||||
<para>
|
||||
After extracting the actions, you will need to create an XML
|
||||
description of the actual layout of your menus and toolbars
|
||||
for use with <link linkend="GtkUIManager">GtkUIManager</link>.
|
||||
The following code shows a simple menu bar that corresponds to
|
||||
the <link linkend="gnomeuiinfo-example">previous
|
||||
for use with #GtkUIManager. The following code shows a simple
|
||||
menu bar that corresponds to the <link linkend="gnomeuiinfo-example">previous
|
||||
example</link>. Note that the <guimenu>File</guimenu> and
|
||||
<guimenu>View</guimenu> menus have their names specified in
|
||||
the <link linkend="gnomeuiinfo-action-entries">action
|
||||
@@ -349,16 +329,12 @@ static const char *ui_description =
|
||||
<title>Creating the Menu Bar</title>
|
||||
|
||||
<para>
|
||||
In this last example, we will create a <link
|
||||
linkend="GtkActionGroup">GtkActionGroup</link> based on the
|
||||
<link linkend="gnomeuiinfo-action-entries">action
|
||||
entries</link> we created above. We will then create a <link
|
||||
linkend="GtkUIManager">GtkUIManager</link> with the <link
|
||||
In this last example, we will create a #GtkActionGroup based on the
|
||||
<link linkend="gnomeuiinfo-action-entries">action entries</link>
|
||||
we created above. We will then create a #GtkUIManager with the <link
|
||||
linkend="gnomeuiinfo-xml">XML description</link> of the menu
|
||||
layout. We will also extract the accelerator group and the
|
||||
widgets from the <link
|
||||
linkend="GtkUIManager">GtkUIManager</link> put them into a
|
||||
window.
|
||||
widgets from the #GtkUIManager put them into a window.
|
||||
</para>
|
||||
|
||||
<programlisting>
|
||||
@@ -370,7 +346,7 @@ GtkUIManager *ui_manager;
|
||||
GtkAccelGroup *accel_group;
|
||||
GError *error;
|
||||
|
||||
register_my_stock_icons ();
|
||||
register_my_stock_icons (<!-- -->);
|
||||
|
||||
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
|
||||
|
||||
@@ -382,7 +358,7 @@ gtk_action_group_add_actions (action_group, entries, G_N_ELEMENTS (entries), win
|
||||
gtk_action_group_add_toggle_actions (action_group, toggle_entries, G_N_ELEMENTS (toggle_entries), window);
|
||||
gtk_action_group_add_radio_actions (action_group, radio_entries, G_N_ELEMENTS (radio_entries), 0, radio_action_callback, window);
|
||||
|
||||
ui_manager = gtk_ui_manager_new ();
|
||||
ui_manager = gtk_ui_manager_new (<!-- -->);
|
||||
gtk_ui_manager_insert_action_group (ui_manager, action_group, 0);
|
||||
|
||||
accel_group = gtk_ui_manager_get_accel_group (ui_manager);
|
||||
@@ -431,12 +407,12 @@ register_my_stock_icons (void)
|
||||
GtkIconSource *icon_source;
|
||||
gint i;
|
||||
|
||||
icon_factory = gtk_icon_factory_new ();
|
||||
icon_factory = gtk_icon_factory_new (<!-- -->);
|
||||
|
||||
for (i = 0; i < n_stock_icons; i++)
|
||||
{
|
||||
icon_set = gtk_icon_set_new ();
|
||||
icon_source = gtk_icon_source_new ();
|
||||
icon_set = gtk_icon_set_new (<!-- -->);
|
||||
icon_source = gtk_icon_source_new (<!-- -->);
|
||||
gtk_icon_source_set_filename (icon_source, stock_icons[i].filename);
|
||||
gtk_icon_set_add_source (icon_set, icon_source);
|
||||
gtk_icon_source_free (icon_source);
|
||||
|
@@ -3,10 +3,9 @@
|
||||
<title>Migrating from GnomeColorPicker to GtkColorButton</title>
|
||||
|
||||
<para>
|
||||
Since version 2.6, GTK+ provides the <link linkend="GtkColorButton">GtkColorButton</link>
|
||||
Since version 2.6, GTK+ provides the #GtkColorButton
|
||||
widget as a replacement for the <structname>GnomeColorPicker</structname>
|
||||
widget in the libgnomeui
|
||||
library.
|
||||
widget in the libgnomeui library.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
|
@@ -1,21 +1,18 @@
|
||||
<chapter id="gtk-migrating-GtkComboBox">
|
||||
|
||||
<title>Migrating from GtkOptionMenu and GtkCombo to GtkComboBox and GtkComboBoxEntry</title>
|
||||
<title>Migrating from GtkOptionMenu and GtkCombo to GtkComboBox and
|
||||
GtkComboBoxEntry</title>
|
||||
|
||||
<para>
|
||||
Prior to 2.4, GTK+ offered two widgets for the task of selecting one
|
||||
item from a list of options.
|
||||
<link linkend="GtkOptionMenu">GtkOptionMenu</link> presents the list of
|
||||
options as a menu while <link linkend="GtkCombo">GtkCombo</link> presents
|
||||
them in a Windows-style list popup. The only difference between the two
|
||||
is that a <link linkend="GtkCombo">GtkCombo</link> allows to manually
|
||||
edit the selected value, while the
|
||||
<link linkend="GtkOptionMenu">GtkOptionMenu</link> does not.
|
||||
item from a list of options. #GtkOptionMenu presents the list of
|
||||
options as a menu while #GtkCombo presents them in a Windows-style list
|
||||
popup. The only difference between the two is that a #GtkCombo allows to
|
||||
manually edit the selected value, while the #GtkOptionMenu does not.
|
||||
</para>
|
||||
<para>
|
||||
In GTK+ 2.4, a unified API for list selection was introduced, with
|
||||
<link linkend="GtkComboBox">GtkComboBox</link> for the non-editable case
|
||||
and <link linkend="GtkComboBoxEntry">GtkComboBoxEntry</link> for the
|
||||
#GtkComboBox for the non-editable case and #GtkComboBoxEntry for the
|
||||
editable case.
|
||||
The selection of the display style — menu or list —
|
||||
is no longer done at the API level, but has been made themeable via
|
||||
@@ -28,12 +25,12 @@
|
||||
|
||||
<para>
|
||||
Here is an example of a simple, but typical use of
|
||||
<link linkend="GtkOptionMenu">GtkOptionMenu</link>:
|
||||
#GtkOptionMenu:
|
||||
<informalexample><programlisting>
|
||||
GtkWidget *option_menu, *menu, *menu_item;
|
||||
|
||||
option_menu = gtk_option_menu_new ();
|
||||
menu = gtk_menu_new ();
|
||||
option_menu = gtk_option_menu_new (<!-- -->);
|
||||
menu = gtk_menu_new (<!-- -->);
|
||||
|
||||
menu_item = gtk_menu_item_new_with_label ("First Item");
|
||||
gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item);
|
||||
@@ -48,23 +45,22 @@ gtk_widget_show (menu_item);
|
||||
gtk_option_menu_set_menu (GTK_OPTION_MENU (option_menu), menu);
|
||||
</programlisting></informalexample>
|
||||
In order to react to the user's selection, connect to the "changed"
|
||||
signal on the option menu and use <link linkend="gtk-option-menu-get-history"><function>gtk_option_menu_get_history()</function></link>
|
||||
signal on the option menu and use gtk_option_menu_get_history()
|
||||
to retrieve the index of the selected item.
|
||||
</para>
|
||||
<para>
|
||||
And here is how it would be done with a
|
||||
<link linkend="GtkComboBox">GtkComboBox</link>:
|
||||
And here is how it would be done with a #GtkComboBox:
|
||||
<informalexample><programlisting>
|
||||
GtkWidget *combo_box;
|
||||
|
||||
combo_box = gtk_combo_box_new_text ();
|
||||
combo_box = gtk_combo_box_new_text (<!-- -->);
|
||||
|
||||
gtk_combo_box_append_text (GTK_COMBO_BOX (combo_box), "First Item");
|
||||
gtk_combo_box_append_text (GTK_COMBO_BOX (combo_box), "Second Item");
|
||||
gtk_combo_box_append_text (GTK_COMBO_BOX (combo_box), "Third Item");
|
||||
</programlisting></informalexample>
|
||||
In order to react to the user's selection, connect to the "changed"
|
||||
signal on the combo box and use <link linkend="gtk-combo-box-get-active"><function>gtk_combo_box_get_active()</function></link>
|
||||
signal on the combo box and use gtk_combo_box_get_active()
|
||||
to retrieve the index of the selected item.
|
||||
</para>
|
||||
|
||||
@@ -73,8 +69,8 @@ gtk_combo_box_append_text (GTK_COMBO_BOX (combo_box), "Third Item");
|
||||
<informalexample><programlisting>
|
||||
GtkWidget *option_menu, *menu, *menu_item;
|
||||
|
||||
option_menu = gtk_option_menu_new ();
|
||||
menu = gtk_menu_new ();
|
||||
option_menu = gtk_option_menu_new (<!-- -->);
|
||||
menu = gtk_menu_new (<!-- -->);
|
||||
|
||||
menu_item = gtk_image_menu_item_new_with_label ("First Item");
|
||||
gtk_image_menu_item_set_image (gtk_image_new_from_pixbuf (pixbuf1));
|
||||
@@ -93,8 +89,7 @@ gtk_option_menu_set_menu (GTK_OPTION_MENU (option_menu), menu);
|
||||
</programlisting></informalexample>
|
||||
</para>
|
||||
<para>
|
||||
can be done using a <link linkend="GtkComboBox">GtkComboBox</link>
|
||||
as follows:
|
||||
can be done using a #GtkComboBox as follows:
|
||||
<informalexample><programlisting>
|
||||
GtkListStore *store;
|
||||
GtkTreeIter iter;
|
||||
@@ -112,13 +107,13 @@ gtk_list_store_set (store, &iter, 0, pixbuf3, 1, "Third Item", -1);
|
||||
|
||||
combo_box = gtk_combo_box_new_with_model (GTK_TREE_MODEL (store));
|
||||
|
||||
renderer = gtk_cell_renderer_pixbuf_new ();
|
||||
renderer = gtk_cell_renderer_pixbuf_new (<!-- -->);
|
||||
gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo_box), renderer, FALSE);
|
||||
gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combo_box), renderer,
|
||||
"pixbuf", 0,
|
||||
NULL);
|
||||
|
||||
renderer = gtk_cell_renderer_text_new ();
|
||||
renderer = gtk_cell_renderer_text_new (<!-- -->);
|
||||
gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo_box), renderer, TRUE);
|
||||
gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combo_box), renderer,
|
||||
"text", 1,
|
||||
@@ -131,8 +126,7 @@ gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combo_box), renderer,
|
||||
<title>Migrating from GtkCombo to GtkComboBoxEntry</title>
|
||||
|
||||
<para>
|
||||
Here is an example of a simple, but typical use of a
|
||||
<link linkend="GtkCombo">GtkCombo</link>:
|
||||
Here is an example of a simple, but typical use of a #GtkCombo:
|
||||
<informalexample><programlisting>
|
||||
GtkWidget *combo;
|
||||
GList *items = NULL;
|
||||
@@ -141,7 +135,7 @@ items = g_list_append (items, "First Item");
|
||||
items = g_list_append (items, "Second Item");
|
||||
items = g_list_append (items, "Third Item");
|
||||
|
||||
combo = gtk_combo_new ();
|
||||
combo = gtk_combo_new (<!-- -->);
|
||||
gtk_combo_set_popdown_strings (GTK_COMBO (combo), items);
|
||||
</programlisting></informalexample>
|
||||
In order to react to the user's selection, connect to the "changed"
|
||||
@@ -150,9 +144,9 @@ gtk_combo_set_popdown_strings (GTK_COMBO (combo), items);
|
||||
to retrieve the selected text.
|
||||
</para>
|
||||
<para>
|
||||
And here is how it would be done using <link linkend="GtkComboBoxEntry">GtkComboBoxEntry</link>:
|
||||
And here is how it would be done using #GtkComboBoxEntry:
|
||||
<informalexample><programlisting>
|
||||
combo_box = gtk_combo_box_entry_new_text ();
|
||||
combo_box = gtk_combo_box_entry_new_text (<!-- -->);
|
||||
|
||||
gtk_combo_box_append_text (GTK_COMBO_BOX (combo_box), "First Item");
|
||||
gtk_combo_box_append_text (GTK_COMBO_BOX (combo_box), "Second Item");
|
||||
@@ -170,8 +164,7 @@ gtk_combo_box_append_text (GTK_COMBO_BOX (combo_box), "Third Item");
|
||||
|
||||
<para>
|
||||
The new widgets have more to offer than a mere combination of the
|
||||
features of <link linkend="GtkOptionMenu">GtkOptionMenu</link> and
|
||||
<link linkend="GtkCombo">GtkCombo</link>. Notable new features
|
||||
features of #GtkOptionMenu and #GtkCombo. Notable new features
|
||||
include:
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
@@ -181,29 +174,26 @@ gtk_combo_box_append_text (GTK_COMBO_BOX (combo_box), "Third Item");
|
||||
would be a "color combo" where the individual items are small
|
||||
square color swatches. The new widgets support gridded display
|
||||
with the functions
|
||||
<link linkend="gtk-combo-box-set-wrap-width"><function>gtk_combo_box_set_wrap_width()</function></link>,
|
||||
<link linkend="gtk-combo-box-set-row-span-column"><function>gtk_combo_box_set_row_span_column()</function></link> and
|
||||
<link linkend ="gtk-combo-box-set-column-span-column"><function>gtk_combo_box_set_column_span_column()</function></link>.
|
||||
gtk_combo_box_set_wrap_width(),
|
||||
gtk_combo_box_set_row_span_column() and
|
||||
gtk_combo_box_set_column_span_column().
|
||||
</para></listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>Display of icons</term>
|
||||
<listitem><para>An often-heard complaint about
|
||||
<link linkend="GtkOptionMenu">GtkOptionMenu</link> is that the
|
||||
icons which appear in the image menu items in its menu are not
|
||||
<listitem><para>An often-heard complaint about #GtkOptionMenu is that
|
||||
the icons which appear in the image menu items in its menu are not
|
||||
displayed in the button showing the selected item. This limitation
|
||||
has been removed in <link linkend="GtkComboBox">GtkComboBox</link>;
|
||||
the selected item appears in the same way as the options in
|
||||
the popup.
|
||||
has been removed in #GtkComboBox; the selected item appears in the
|
||||
same way as the options in the popup.
|
||||
</para></listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>Full tree model power</term>
|
||||
<listitem><para>
|
||||
Since the new widgets are built around the same models that are
|
||||
used for <link linkend="GtkTreeView">GtkTreeView</link>, all of
|
||||
the powerful machinery of tree models and cell renderers can be
|
||||
used.
|
||||
used for #GtkTreeView, all of the powerful machinery of tree models
|
||||
and cell renderers can be used.
|
||||
</para></listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
@@ -14,30 +14,20 @@
|
||||
<title>Migrating from GtkFileSelection to GtkFileChooser</title>
|
||||
|
||||
<para>
|
||||
<link linkend="GtkFileChooser">GtkFileChooser</link>, starting
|
||||
with GTK+ 2.4, is the new set of APIs for file selection widgets
|
||||
and dialogs. Previous versions of GTK+ used <link
|
||||
linkend="GtkFileSelection">GtkFileSelection</link>, which has
|
||||
numerous problems.
|
||||
#GtkFileChooser, starting with GTK+ 2.4, is the new set of APIs for file
|
||||
selection widgets and dialogs. Previous versions of GTK+ used #GtkFileSelection,
|
||||
which has numerous problems.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
<link linkend="GtkFileChooser">GtkFileChooser</link> is an
|
||||
abstract interface that can be implemented by widgets that perform
|
||||
file selection tasks. Two widgets in GTK+ implement this
|
||||
interface: <link
|
||||
linkend="GtkFileChooserDialog">GtkFileChooserDialog</link> and
|
||||
<link linkend="GtkFileChooserWidget">GtkFileChooserWidget</link>.
|
||||
Most applications simply need to use <link
|
||||
linkend="GtkFileChooserDialog">GtkFileChooserDialog</link>, which
|
||||
is a dialog box that allows the user to select existing files for
|
||||
opening them, or to pick new filenames for saving documents.
|
||||
<link linkend="GtkFileChooserWidget">GtkFileChooserWidget</link>
|
||||
is for special applications that need to embed a file selection
|
||||
widget inside a larger window. In the context of GTK+, <link
|
||||
linkend="GtkFileChooserDialog">GtkFileChooserDialog</link> is
|
||||
simply a <link linkend="GtkDialog">GtkDialog</link> box with a
|
||||
<link linkend="GtkFileChooserWidget">GtkFileChooserWidget</link>
|
||||
#GtkFileChooser is an abstract interface that can be implemented by widgets
|
||||
that perform file selection tasks. Two widgets in GTK+ implement this
|
||||
interface: #GtkFileChooserDialog and #GtkFileChooserWidget. Most applications
|
||||
simply need to use #GtkFileChooserDialog, which is a dialog box that allows the
|
||||
user to select existing files for opening them, or to pick new filenames for
|
||||
saving documents. #GtkFileChooserWidget is for special applications that need to
|
||||
embed a file selection widget inside a larger window. In the context of GTK+,
|
||||
#GtkFileChooserDialog is simply a #GtkDialog box with a #GtkFileChooserWidget.
|
||||
inside.
|
||||
</para>
|
||||
|
||||
@@ -45,10 +35,8 @@
|
||||
<title>Creating a GtkFileChooserDialog</title>
|
||||
|
||||
<para>
|
||||
To create a <link
|
||||
linkend="GtkFileChooserDialog">GtkFileChooserDialog</link>, you
|
||||
simply call gtk_file_chooser_dialog_new(). This function is
|
||||
similar to gtk_dialog_new() in that it takes parameters for the
|
||||
To create a #GtkFileChooserDialog, you simply call gtk_file_chooser_dialog_new().
|
||||
This function is similar to gtk_dialog_new() in that it takes parameters for the
|
||||
title of the dialog box and its transient parent, as well as its
|
||||
buttons. In addition, it takes in an argument that determines
|
||||
whether the file chooser dialog will be used for opening
|
||||
@@ -66,25 +54,21 @@
|
||||
<title>Selection Modes</title>
|
||||
|
||||
<para>
|
||||
<link linkend="GtkFileChooser">GtkFileChooser</link> can be used
|
||||
in two modes, to select a single file at a time or to select a
|
||||
set of more than one file. To set this, use
|
||||
#GtkFileChooser can be used in two modes, to select a single file at a
|
||||
time or to select a set of more than one file. To set this, use
|
||||
gtk_file_chooser_set_select_multiple(). In single-selection
|
||||
mode, you can use gtk_file_chooser_get_filename() to get a file
|
||||
name from the local file system or gtk_file_chooser_get_uri() to
|
||||
get a full-formed URI. In multiple-selection mode, you can use
|
||||
gtk_file_chooser_get_filenames() to get a <link
|
||||
linkend="GSList">GSList</link> of filename strings, or
|
||||
gtk_file_chooser_get_filenames() to get a #GSList of filename strings, or
|
||||
gtk_file_chooser_get_uris() to get a list of URI strings.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Also, you can configure <link
|
||||
linkend="GtkFileChooser">GtkFileChooser</link> to select files
|
||||
Also, you can configure #GtkFileChooser to select files
|
||||
or folders. Consider a backup program that needs to let the
|
||||
user select a folder that will be backed up along with its
|
||||
subfolders. To configure whether <link
|
||||
linkend="GtkFileChooser">GtkFileChooser</link> is used to select
|
||||
subfolders. To configure whether #GtkFileChooser is used to select
|
||||
files or folders, use gtk_file_chooser_set_action(). In
|
||||
addition, this lets you configure whether the file chooser will
|
||||
be used to select existing files or folders (e.g. for
|
||||
@@ -99,10 +83,8 @@
|
||||
<para>
|
||||
Many applications need to have a preview facility within their
|
||||
file chooser dialogs. Previous to GTK+ 2.4, one needed to
|
||||
access the <link
|
||||
linkend="GtkFileSelection">GtkFileSelection</link> widget
|
||||
hierarchy directly to hook in a preview widget. With <link
|
||||
linkend="GtkFileChooser">GtkFileChooser</link>, there is a
|
||||
access the #GtkFileSelection widget hierarchy directly to hook in
|
||||
a preview widget. With #GtkFileChooser, there is a
|
||||
dedicated API to do this.
|
||||
</para>
|
||||
|
||||
@@ -132,18 +114,15 @@
|
||||
<title>New features</title>
|
||||
|
||||
<para>
|
||||
New features in <link
|
||||
linkend="GtkFileChooser">GtkFileChooser</link> include the
|
||||
following:
|
||||
New features in #GtkFileChooser include the following:
|
||||
</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>
|
||||
Ability to select URIs rather than just local files. You
|
||||
must use a <link
|
||||
linkend="GtkFileSystem">GtkFileSystem</link> implementation
|
||||
that supports this, for example the gnome-vfs backend.
|
||||
must use a #GtkFileSystem implementation that supports this,
|
||||
for example the gnome-vfs backend.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
@@ -166,9 +145,8 @@
|
||||
</itemizedlist>
|
||||
|
||||
<para>
|
||||
To see how to use these features, please consult the <link
|
||||
linkend="GtkFileChooser">GtkFileChooser</link> reference
|
||||
documentation.
|
||||
To see how to use these features, please consult the #GtkFileChooser
|
||||
reference documentation.
|
||||
</para>
|
||||
</section>
|
||||
</chapter>
|
||||
|
@@ -3,10 +3,8 @@
|
||||
<title>Migrating from GnomeIconList to GtkIconView</title>
|
||||
|
||||
<para>
|
||||
Since version 2.6, GTK+ provides the <link
|
||||
linkend="GtkIconView">GtkIconView</link>
|
||||
widget. It is similar in functionality to the
|
||||
<structname>GnomeIconList</structname> widget in the
|
||||
Since version 2.6, GTK+ provides the #GtkIconView widget. It is similar in
|
||||
functionality to the <structname>GnomeIconList</structname> widget in the
|
||||
libgnomeui library, both widgets provide a way to lay out named icons in
|
||||
a grid. The distinctive feature of the GTK+ widget is that it follows the
|
||||
model-view pattern, allowing it to share the actual data (i.e. the names
|
||||
@@ -14,19 +12,17 @@
|
||||
</para>
|
||||
|
||||
<para>
|
||||
<link linkend="GtkIconView">GtkIconView</link> currently doesn't support
|
||||
some features found in <structname>GnomeIconList</structname>. Icons can
|
||||
not be positioned freely, the spacing is not customizable, and it is not
|
||||
possible to edit the names of icons.
|
||||
#GtkIconView currently doesn't support some features found in
|
||||
<structname>GnomeIconList</structname>. Icons can not be positioned freely,
|
||||
the spacing is not customizable, and it is not possible to edit the names of
|
||||
icons.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
To convert an application that uses <structname>GnomeIconList</structname>
|
||||
to <link linkend="GtkIconView">GtkIconView</link>, the first step is to
|
||||
organize your data in a <link linkend="GtkTreeModel">GtkTreeModel</link>.
|
||||
to #GtkIconView, the first step is to organize your data in a #GtkTreeModel.
|
||||
<structname>GnomeIconList</structname> lets you directly insert data with
|
||||
<function>gnome_icon_list_insert()</function> and
|
||||
<function>gnome_icon_list_insert_pixbuf()</function> and their
|
||||
gnome_icon_list_insert() and gnome_icon_list_insert_pixbuf() and their
|
||||
append variants. So, if you previously had a function to fill your icon
|
||||
list similar to this one:
|
||||
<informalexample><programlisting>
|
||||
@@ -52,19 +48,19 @@
|
||||
};
|
||||
|
||||
void
|
||||
fill_model (GtkListStore *model)
|
||||
fill_model (GtkListStore *store)
|
||||
{
|
||||
GtkTreeIter iter;
|
||||
GdkPixbuf *pixbuf;
|
||||
|
||||
gtk_list_store_append (model, &iter);
|
||||
gtk_list_store_append (store, &iter);
|
||||
pixbuf = gdk_pixbuf_new_from_file ("file1.png", NULL);
|
||||
gtk_list_store_set (model, &iter, PIXBUF_COLUMN, pixbuf, TEXT_COLUMN, "Icon 1", -1);
|
||||
gtk_list_store_set (store, &iter, PIXBUF_COLUMN, pixbuf, TEXT_COLUMN, "Icon 1", -1);
|
||||
g_object_unref (pixbuf);
|
||||
|
||||
gtk_list_store_append (model, &iter);
|
||||
gtk_list_store_append (store, &iter);
|
||||
pixbuf = gdk_pixbuf_new_from_file ("file2.png", NULL);
|
||||
gnome_icon_list_append (icon_list, PIXBUF_COLUMN, pixbuf, TEXT_COLUMN, "Icon 2", -1);
|
||||
gtk_list_store_set (store, &iter, PIXBUF_COLUMN, pixbuf, TEXT_COLUMN, "Icon 2", -1);
|
||||
g_object_unref (pixbuf);
|
||||
|
||||
/* more icons ... */
|
||||
@@ -74,37 +70,34 @@
|
||||
main (int argc, char *argv[])
|
||||
{
|
||||
GtkWidget *icon_view;
|
||||
GtkTreeModel *model;
|
||||
GtkListStore *store;
|
||||
|
||||
gtk_init (&argc, &argv);
|
||||
|
||||
/* do other initialization... */
|
||||
|
||||
/* construct the GtkIconView */
|
||||
icon_view = gtk_icon_view_new ();
|
||||
model = gtk_list_store_new (3, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_POINTER);
|
||||
icon_view = gtk_icon_view_new (<!-- -->);
|
||||
store = gtk_list_store_new (3, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_POINTER);
|
||||
|
||||
gtk_icon_view_set_pixbuf_column (GTK_ICON_VIEW (icon_view), PIXBUF_COLUMN);
|
||||
gtk_icon_view_set_text_column (GTK_ICON_VIEW (icon_view), TEXT_COLUMN);
|
||||
gtk_icon_view_set_model GTK_ICON_VIEW (icon_view), model);
|
||||
gtk_icon_view_set_model (GTK_ICON_VIEW (icon_view), GTK_TREE_MODEL (store));
|
||||
|
||||
fill_model (model);
|
||||
fill_model (store);
|
||||
|
||||
/* ... */
|
||||
}
|
||||
</programlisting></informalexample>
|
||||
This example uses a <link linkend="GtkListStore">GtkListStore</link> as
|
||||
model, but part of the elegance of the model-view pattern is that you can
|
||||
easily use another tree model implementation, or even write your own
|
||||
custom tree model.
|
||||
This example uses a #GtkListStore as model, but part of the elegance of the
|
||||
model-view pattern is that you can easily use another tree model implementation,
|
||||
or even write your own custom tree model.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Your application may make use of extra data attached to the icons in the
|
||||
<structname>GnomeIconList</structname> via
|
||||
<function>gnome_icon_list_set_icon_data()</function> and
|
||||
<function>gnome_icon_list_get_icon_data()</function>. With
|
||||
<link linkend="GtkIconView">GtkIconView</link> such data is most
|
||||
<structname>GnomeIconList</structname> via gnome_icon_list_set_icon_data() and
|
||||
gnome_icon_list_get_icon_data(). With #GtkIconView such data is most
|
||||
conveniently stored in an extra column in the tree model, so you would
|
||||
call a function like
|
||||
<informalexample><programlisting>
|
||||
@@ -124,7 +117,7 @@
|
||||
}
|
||||
</programlisting></informalexample>
|
||||
assuming that your tree model has a <literal>DATA_COLUMN</literal> of type
|
||||
<literal>G_TYPE_POINTER</literal>.
|
||||
%G_TYPE_POINTER.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
@@ -140,8 +133,7 @@
|
||||
<listitem><para>
|
||||
<structname>GtkIconView</structname> can not be frozen in the same
|
||||
way as <structname>GnomeIconList</structname> can with
|
||||
<function>gnome_icon_list_freeze()</function> and
|
||||
<function>gnome_icon_list_thaw()</function>. Instead you can
|
||||
gnome_icon_list_freeze() and gnome_icon_list_thaw(). Instead you can
|
||||
replace the whole model of a <structname>GtkIconView</structname>,
|
||||
instead of doing many small changes to the existing model.
|
||||
</para></listitem>
|
||||
|
@@ -51,7 +51,7 @@ do_popup_menu (GtkWidget *my_widget, GdkEventButton *event)
|
||||
GtkWidget *menu;
|
||||
int button, event_time;
|
||||
|
||||
menu = gtk_menu_new ();
|
||||
menu = gtk_menu_new (<!-- -->);
|
||||
g_signal_connect (menu, "deactivate",
|
||||
G_CALLBACK (gtk_widget_destroy), NULL);
|
||||
|
||||
@@ -65,9 +65,10 @@ do_popup_menu (GtkWidget *my_widget, GdkEventButton *event)
|
||||
else
|
||||
{
|
||||
button = 0;
|
||||
event_time = gtk_get_current_event_time ();
|
||||
event_time = gtk_get_current_event_time (<!-- -->);
|
||||
}
|
||||
|
||||
gtk_menu_attach_to_widget (GTK_MENU (popup), my_widget, NULL);
|
||||
gtk_menu_popup (GTK_MENU (popup), NULL, NULL, NULL, NULL,
|
||||
button, event_time);
|
||||
}
|
||||
@@ -127,7 +128,7 @@ my_widget_popup_menu_handler (GtkWidget *widget)
|
||||
in the case where the <parameter>event</parameter> is
|
||||
<constant>NULL</constant>. This function should compute the
|
||||
desired position for a menu when it is invoked through the
|
||||
keyboard. For example, <xref linkend="GtkEntry"/> aligns the
|
||||
keyboard. For example, #GtkEntry aligns the
|
||||
top edge of its popup menu with the bottom edge of the entry.
|
||||
</para>
|
||||
</note>
|
||||
@@ -138,9 +139,8 @@ my_widget_popup_menu_handler (GtkWidget *widget)
|
||||
able to take the keyboard focus. In general, widgets should
|
||||
be fully usable through the keyboard and not just the mouse.
|
||||
The very first step of this is to ensure that your widget
|
||||
turns on the <link
|
||||
linkend="gtkwidgetflags"><constant>GTK_CAN_FOCUS</constant></link>
|
||||
FLAG.
|
||||
turns on the %GTK_CAN_FOCUS <link
|
||||
linkend="gtkwidgetflags">flag</link>.
|
||||
</para>
|
||||
</note>
|
||||
</section>
|
||||
@@ -218,7 +218,7 @@ my_widget_expose_event_handler (GtkWidget *widget, GdkEventExpose *event)
|
||||
<title>Why</title>
|
||||
<para>
|
||||
With
|
||||
<function>gtk_accelerator_get_default_mod_mask()</function>
|
||||
gtk_accelerator_get_default_mod_mask()
|
||||
you can test for modifier keys reliably; this way your key
|
||||
event handlers will work correctly even if
|
||||
<keycap>NumLock</keycap> or <keycap>CapsLock</keycap> are
|
||||
@@ -233,8 +233,7 @@ my_widget_expose_event_handler (GtkWidget *widget, GdkEventExpose *event)
|
||||
Modifiers are keys like <keycap>Control</keycap> and
|
||||
<keycap>NumLock</keycap>. When implementing a <link
|
||||
linkend="GtkWidget-key-press-event">GtkWidget::key_press_event</link>
|
||||
handler, you should use
|
||||
<function>gtk_accelerator_get_default_mod_mask()</function> to
|
||||
handler, you should use gtk_accelerator_get_default_mod_mask() to
|
||||
test against modifier keys. This function returns a bit mask
|
||||
which encompasses all the modifiers which the user may be
|
||||
actively pressing, such as <keycap>Control</keycap>,
|
||||
@@ -254,7 +253,7 @@ my_widget_expose_event_handler (GtkWidget *widget, GdkEventExpose *event)
|
||||
<literal>GDK_CONTROL_MASK | GDK_LOCK_MASK</literal>, and the
|
||||
simple test will fail. By taking the logical-and of
|
||||
<structfield>event->state</structfield> and
|
||||
<function>gtk_accelerator_get_default_mod_mask()</function>, you
|
||||
gtk_accelerator_get_default_mod_mask(), you
|
||||
can ignore the modifiers which are not actively pressed by the
|
||||
user at the same time as the base key.
|
||||
</para>
|
||||
@@ -271,7 +270,7 @@ my_widget_key_press_event_handler (GtkWidget *widget, GdkEventKey *event)
|
||||
{
|
||||
guint modifiers;
|
||||
|
||||
modifiers = gtk_accelerator_get_default_mod_mask ();
|
||||
modifiers = gtk_accelerator_get_default_mod_mask (<!-- -->);
|
||||
|
||||
if (event->keysym == GDK_F10
|
||||
&& (event->state & modifiers) == GDK_CONTROL_MASK)
|
||||
@@ -284,6 +283,27 @@ my_widget_key_press_event_handler (GtkWidget *widget, GdkEventKey *event)
|
||||
}
|
||||
</programlisting>
|
||||
</section>
|
||||
|
||||
<section id="checklist-named-icons">
|
||||
<title>Use named icons</title>
|
||||
|
||||
<formalpara>
|
||||
<title>Why</title>
|
||||
<para>
|
||||
Named icons automatically adapt to theme changes, giving your
|
||||
application a much more integrated appearance.
|
||||
</para>
|
||||
</formalpara>
|
||||
|
||||
<para>
|
||||
Since GTK+ 2.6, named icons can be used for window icons (see
|
||||
gtk_window_set_icon_name()) and images (see gtk_image_set_icon_name()).
|
||||
In GTK+ 2.8, you can also use named icons for drag-and-drop (see
|
||||
gtk_drag_source_set_icon_name()) and in treeview cells (see the
|
||||
<link linkend="GtkCellRendererPixbuf--icon-name">icon_name</link>
|
||||
property of #GtkCellRendererPixbuf).
|
||||
</para>
|
||||
</section>
|
||||
</chapter>
|
||||
|
||||
<!--
|
||||
|
@@ -96,22 +96,17 @@ from functions?
|
||||
<answer>
|
||||
|
||||
<para>
|
||||
See the documentation for <link linkend="GObject">GObject</link> and
|
||||
<link linkend="GtkObject">GtkObject</link>. For <link
|
||||
linkend="GObject">GObject</link> note specifically <link
|
||||
linkend="g-object-ref">g_object_ref()</link> and <link
|
||||
linkend="g-object-unref">g_object_unref()</link>. <link
|
||||
linkend="GtkObject">GtkObject</link> is a subclass of <link
|
||||
linkend="GObject">GObject</link> so the same points apply, except that
|
||||
it has a "floating" state (explained in its documentation).
|
||||
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).
|
||||
</para>
|
||||
|
||||
<para>
|
||||
For strings returned from functions, they will be declared "const"
|
||||
(using <link linkend="G-CONST-RETURN-CAPS">G_CONST_RETURN</link>) if they
|
||||
should not be freed. Non-const strings should be freed with <link
|
||||
linkend="g-free">g_free()</link>. Arrays follow the same rule. (If
|
||||
you find an exception to the rules, please report a bug to <ulink
|
||||
For strings returned from functions, they will be declared "const" (using
|
||||
#G_CONST_RETURN) if they should not be freed. Non-const strings should be freed
|
||||
with g_free(). Arrays follow the same rule. (If you find an exception to the rules,
|
||||
please report a bug to <ulink
|
||||
url="http://bugzilla.gnome.org">http://bugzilla.gnome.org</ulink>.)
|
||||
</para>
|
||||
|
||||
@@ -193,12 +188,10 @@ or Linux system with gettext installed, type <literal>info
|
||||
gettext</literal> to read the documentation.
|
||||
</para>
|
||||
<para>
|
||||
The short checklist on how to use gettext is: call
|
||||
<function>bindtextdomain()</function> so gettext can find the files
|
||||
containing your translations, call <function>textdomain()</function>
|
||||
to set the default translation domain, then call
|
||||
<function>gettext()</function> to look up each string to be translated
|
||||
in the default domain. Conventionally, people define macros as
|
||||
The short checklist on how to use gettext is: call bindtextdomain() so gettext
|
||||
can find the files containing your translations, call textdomain() to set the
|
||||
default translation domain, then call gettext() to look up each string to be
|
||||
translated in the default domain. Conventionally, people define macros as
|
||||
follows for convenience:
|
||||
<informalexample>
|
||||
<programlisting>
|
||||
@@ -206,13 +199,10 @@ follows for convenience:
|
||||
#define N_(x) x
|
||||
</programlisting>
|
||||
</informalexample>
|
||||
You use <function>N_()</function> (N stands for no-op) to mark
|
||||
a string for translation in a context where a function call
|
||||
to <function>gettext()</function> is not allowed, such as in
|
||||
an array initializer. You eventually have to call
|
||||
<function>gettext()</function> on the string to actually fetch the
|
||||
translation. <function>_()</function> both marks the string for
|
||||
translation and actually translates it.
|
||||
You use N_() (N stands for no-op) to mark a string for translation in a context
|
||||
where a function call to gettext() is not allowed, such as in an array initializer.
|
||||
You eventually have to call gettext() on the string to actually fetch the
|
||||
translation. _() both marks the string for translation and actually translates it.
|
||||
</para>
|
||||
<para>
|
||||
Code using these macros ends up looking like this:
|
||||
@@ -238,14 +228,10 @@ Code using these macros ends up looking like this:
|
||||
</informalexample>
|
||||
</para>
|
||||
<para>
|
||||
Libraries using gettext should use <function>dgettext()</function>
|
||||
instead of <function>gettext()</function>, which allows
|
||||
them to specify the translation domain each time they
|
||||
ask for a translation. Libraries should also avoid calling
|
||||
<function>textdomain()</function>, since they'll be specifying
|
||||
the domain instead of using the default.
|
||||
For <function>dgettext()</function> the <function>_()</function> macro
|
||||
can be defined as:
|
||||
Libraries using gettext should use dgettext() instead of gettext(), which allows
|
||||
them to specify the translation domain each time they ask for a translation. Libraries
|
||||
should also avoid calling textdomain(), since they'll be specifying the domain instead
|
||||
of using the default.For dgettext() the _() macro can be defined as:
|
||||
<informalexample>
|
||||
<programlisting>
|
||||
#define _(x) dgettext ("MyDomain", x)
|
||||
@@ -285,9 +271,7 @@ The zero byte doesn't occur as part of a character, so that UTF-8 strings can
|
||||
More information about Unicode and UTF-8 can be found in the
|
||||
<ulink url="http://www.cl.cam.ac.uk/~mgk25/unicode.html">UTF-8 and Unicode FAQ for Unix/Linux</ulink>.
|
||||
GLib provides functions for converting strings between UTF-8 and other
|
||||
encodings, see
|
||||
<link linkend="g-locale-to-utf8">g_locale_to_utf8()</link> and <link
|
||||
linkend="g-convert">g_convert()</link>.
|
||||
encodings, see g_locale_to_utf8() and g_convert().
|
||||
</para>
|
||||
<para>
|
||||
Text coming from external sources (e.g. files or user input), has to be
|
||||
@@ -343,9 +327,8 @@ very convenient. Be careful when mixing hexadecimal escapes with ordinary text;
|
||||
<listitem><para>
|
||||
If the string literals can be represented in an encoding which your toolchain
|
||||
can handle (e.g. IS0-8859-1), you can write your source files in that encoding
|
||||
and use <link linkend="g-convert">g_convert()</link> to convert the strings to
|
||||
UTF-8 at runtime. Note that this has some runtime overhead, so you may want to
|
||||
move the conversion out of inner loops.
|
||||
and use g_convert() to convert the strings to UTF-8 at runtime. Note that this has
|
||||
some runtime overhead, so you may want to move the conversion out of inner loops.
|
||||
</para></listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
@@ -429,28 +412,19 @@ How do I load an image or animation from a file?
|
||||
<answer>
|
||||
|
||||
<para>
|
||||
To load an image file straight into a display widget, use <link
|
||||
linkend="gtk-image-new-from-file">gtk_image_new_from_file()</link>
|
||||
<footnote><para> If the file load fails, <link
|
||||
linkend="gtk-image-new-from-file">gtk_image_new_from_file()</link>
|
||||
will display a "broken image" graphic — to detect a failed load
|
||||
yourself, use <link
|
||||
linkend="gdk-pixbuf-new-from-file">gdk_pixbuf_new_from_file()</link>
|
||||
directly then <link
|
||||
linkend="gtk-image-new-from-pixbuf">gtk_image_new_from_pixbuf()</link>.
|
||||
</para></footnote>. To load an image for another purpose, use <link
|
||||
linkend="gdk-pixbuf-new-from-file">gdk_pixbuf_new_from_file()</link>.
|
||||
To load an animation, use <link
|
||||
linkend="gdk-pixbuf-animation-new-from-file">gdk_pixbuf_animation_new_from_file()</link>.
|
||||
<link
|
||||
linkend="gdk-pixbuf-animation-new-from-file">gdk_pixbuf_animation_new_from_file()</link>
|
||||
can also load non-animated images, so use it in combination with
|
||||
<link
|
||||
linkend="gdk-pixbuf-animation-is-static-image">gdk_pixbuf_animation_is_static_image()</link> to load a file of unknown type.
|
||||
To load an image file straight into a display widget, use gtk_image_new_from_file()
|
||||
<footnote><para> If the file load fails, gtk_image_new_from_file() will display no
|
||||
image graphic — to detect a failed load yourself, use gdk_pixbuf_new_from_file()
|
||||
directly, then gtk_image_new_from_pixbuf().</para></footnote>.
|
||||
To load an image for another purpose, use gdk_pixbuf_new_from_file(). To load an
|
||||
animation, use gdk_pixbuf_animation_new_from_file().
|
||||
gdk_pixbuf_animation_new_from_file() can also load non-animated images, so use it
|
||||
in combination with gdk_pixbuf_animation_is_static_image() to load a file of unknown
|
||||
type.
|
||||
</para>
|
||||
<para>
|
||||
To load an image or animation file asynchronously (without blocking), use
|
||||
<link linkend="GdkPixbufLoader">GdkPixbufLoader</link>.
|
||||
#GdkPixbufLoader.
|
||||
</para>
|
||||
</answer>
|
||||
|
||||
@@ -463,8 +437,7 @@ How do I draw text ?
|
||||
|
||||
<answer>
|
||||
<para>
|
||||
To draw a piece of text, use a Pango layout and
|
||||
<link linkend="gdk-draw-layout">gdk_draw_layout()</link>,
|
||||
To draw a piece of text, use a Pango layout and gdk_draw_layout(),
|
||||
using code like the following:
|
||||
<informalexample>
|
||||
<programlisting>
|
||||
@@ -476,7 +449,7 @@ using code like the following:
|
||||
g_object_unref (layout);
|
||||
</programlisting>
|
||||
</informalexample>
|
||||
Do not use the deprecated <link linkend="GdkFont">GdkFont</link> and <link linkend="gdk-draw-text">gdk_draw_text()</link>.
|
||||
Do not use the deprecated #GdkFont and gdk_draw_text().
|
||||
</para>
|
||||
|
||||
<para>
|
||||
@@ -498,9 +471,7 @@ How do I measure the size of a piece of text ?
|
||||
<answer>
|
||||
<para>
|
||||
To obtain the size of a piece of text, use a Pango layout and
|
||||
<link
|
||||
linkend="pango-layout-get-pixel-size">pango_layout_get_pixel_size()</link>,
|
||||
using code like the following:
|
||||
pango_layout_get_pixel_size(), using code like the following:
|
||||
<informalexample>
|
||||
<programlisting>
|
||||
layout = gtk_widget_create_pango_layout (widget, text);
|
||||
@@ -511,7 +482,7 @@ using code like the following:
|
||||
g_object_unref (layout);
|
||||
</programlisting>
|
||||
</informalexample>
|
||||
Do not use the deprecated function <link linkend="gdk-text-width">gdk_text_width()</link>.
|
||||
Do not use the deprecated function gdk_text_width().
|
||||
</para>
|
||||
|
||||
<para>
|
||||
@@ -558,12 +529,9 @@ volatile GType dummy = GTK_TYPE_BLAH;
|
||||
<answer>
|
||||
<para>
|
||||
See <link linkend="TreeWidget">tree widget overview</link> — you
|
||||
should use the <link linkend="GtkTreeView">GtkTreeView</link> widget.
|
||||
(A list is just a tree with no branches, so the tree widget is used
|
||||
for lists as well.) Do not use the deprecated widgets <link
|
||||
linkend="GtkTree">GtkTree</link> or <link
|
||||
linkend="GtkCList">GtkCList</link>/<link
|
||||
linkend="GtkCTree">GtkCTree</link> in newly-written code, they are
|
||||
should use the #GtkTreeView widget. (A list is just a tree with no branches,
|
||||
so the tree widget is used for lists as well.) Do not use the deprecated
|
||||
widgets #GtkTree or #GtkCList/#GtkCTree in newly-written code, they are
|
||||
less flexible and result in an inferior user interface.
|
||||
</para>
|
||||
</answer>
|
||||
@@ -577,17 +545,13 @@ less flexible and result in an inferior user interface.
|
||||
<answer>
|
||||
<para>
|
||||
See <link linkend="TextWidget">text widget overview</link> — you
|
||||
should use the <link linkend="GtkTextView">GtkTextView</link> widget.
|
||||
Do not use the deprecated widget <link
|
||||
linkend="GtkText">GtkText</link> in newly-written code, it has a
|
||||
number of problems that are best avoided.
|
||||
should use the #GtkTextView widget. Do not use the deprecated widget #GtkText
|
||||
in newly-written code, it has a number of problems that are best avoided.
|
||||
</para>
|
||||
<para>
|
||||
If you only have a small amount of text, <link
|
||||
linkend="GtkLabel">GtkLabel</link> may also be appropriate of course.
|
||||
It can be made selectable with <link linkend="gtk-label-set-selectable">
|
||||
gtk_label_set_selectable()</link>. For a single-line text entry,
|
||||
see <link linkend="GtkEntry">GtkEntry</link>.
|
||||
If you only have a small amount of text, #GtkLabel may also be appropriate of course.
|
||||
It can be made selectable with gtk_label_set_selectable(). For a single-line text
|
||||
entry, see #GtkEntry.
|
||||
</para>
|
||||
</answer>
|
||||
</qandaentry>
|
||||
@@ -600,11 +564,9 @@ see <link linkend="GtkEntry">GtkEntry</link>.
|
||||
|
||||
<answer>
|
||||
<para>
|
||||
<link linkend="GtkImage">GtkImage</link> can display images
|
||||
in just about any format GTK+ understands. You can also
|
||||
use <link linkend="GtkDrawingArea">GtkDrawingArea</link> if you need
|
||||
to do something more complex, such as draw text or graphics over the
|
||||
top of the image.
|
||||
#GtkImage can display images in just about any format GTK+ understands. You can also
|
||||
use #GtkDrawingArea if you need to do something more complex, such as draw text or
|
||||
graphics over the top of the image.
|
||||
</para>
|
||||
</answer>
|
||||
</qandaentry>
|
||||
@@ -617,31 +579,16 @@ would use a combo box?
|
||||
|
||||
<answer>
|
||||
<para>
|
||||
With GTK+, a <link linkend="GtkOptionMenu">GtkOptionMenu</link> is
|
||||
recommended instead of a combo box, if the user is selecting from a
|
||||
fixed set of options. That is, non-editable combo boxes are not
|
||||
encouraged. <link linkend="GtkOptionMenu">GtkOptionMenu</link> is
|
||||
much easier to use than <link linkend="GtkCombo">GtkCombo</link>
|
||||
as well. Use <link linkend="GtkCombo">GtkCombo</link> only when you
|
||||
need the editable text entry.
|
||||
</para>
|
||||
<para>
|
||||
(As a future enhancement to GTK+, a new widget to replace <link
|
||||
linkend="GtkOptionMenu">GtkOptionMenu</link> and <link
|
||||
linkend="GtkCombo">GtkCombo</link> is planned. This widget will be
|
||||
themeable to look like either a combo box or the current option menu,
|
||||
and will address some shortcomings in the <link
|
||||
linkend="GtkCombo">GtkCombo</link> API. <ulink
|
||||
url="http://bugzilla.gnome.org/show_bug.cgi?id=50554">Bug
|
||||
50554</ulink> tracks this issue, if you want to check status or post
|
||||
comments.)
|
||||
With GTK+, a #GtkComboBox is the recommended widget to use for this use case.
|
||||
This widget looks like either a combo box or the current option menu, depending
|
||||
on the current theme. If you need an editable text entry, use #GtkComboBoxEntry.
|
||||
</para>
|
||||
</answer>
|
||||
</qandaentry>
|
||||
|
||||
</qandadiv>
|
||||
|
||||
<qandadiv><title><link linkend="GtkWidget">GtkWidget</link></title>
|
||||
<qandadiv><title>#GtkWidget</title>
|
||||
|
||||
<qandaentry>
|
||||
<question><para>
|
||||
@@ -649,23 +596,16 @@ How do I change the color of a widget?
|
||||
</para></question>
|
||||
|
||||
<answer><para>
|
||||
See <link linkend="gtk-widget-modify-fg">gtk_widget_modify_fg()</link>,
|
||||
<link linkend="gtk-widget-modify-bg">gtk_widget_modify_bg()</link>,
|
||||
<link linkend="gtk-widget-modify-base">gtk_widget_modify_base()</link>,
|
||||
and <link
|
||||
linkend="gtk-widget-modify-text">gtk_widget_modify_text()</link>. See
|
||||
<link linkend="gtk-Resource-Files">GTK+ resource files</link> for more
|
||||
discussion. You can also change widget color by installing a resource
|
||||
file and parsing it with <link
|
||||
linkend="gtk-rc-add-default-file">gtk_rc_add_default_file()</link>.
|
||||
See gtk_widget_modify_fg(), gtk_widget_modify_bg(), gtk_widget_modify_base(),
|
||||
and gtk_widget_modify_text(). See <link linkend="gtk-Resource-Files">GTK+
|
||||
resource files</link> for more discussion. You can also change widget color by
|
||||
installing a resource file and parsing it with gtk_rc_add_default_file().
|
||||
The advantage of a resource file is that users can then override the
|
||||
color you've chosen.
|
||||
</para>
|
||||
|
||||
<para>To change the background color for widgets such as <link
|
||||
linkend="GtkLabel">GtkLabel</link> that have no background, place them
|
||||
in a <link linkend="GtkEventBox">GtkEventBox</link> and set the
|
||||
background of the event box.
|
||||
<para>To change the background color for widgets such as #GtkLabel that have no
|
||||
background, place them in a #GtkEventBox and set the background of the event box.
|
||||
</para></answer>
|
||||
</qandaentry>
|
||||
|
||||
@@ -675,36 +615,32 @@ How do I change the font of a widget?
|
||||
</para></question>
|
||||
|
||||
<answer><para>
|
||||
This has several possible answers, depending on what exactly you want to
|
||||
achieve. One option is <link
|
||||
linkend="gtk-widget-modify-font">gtk_widget_modify_font()</link>. Note that this function can be used to change only the font size, as in the following example:
|
||||
This has several possible answers, depending on what exactly you want to achieve.
|
||||
One option is gtk_widget_modify_font(). Note that this function can be used to
|
||||
change only the font size, as in the following example:
|
||||
<programlisting>
|
||||
PangoFontDesc *font_desc = pango_font_description_new ();
|
||||
PangoFontDesc *font_desc = pango_font_description_new (<!-- -->);
|
||||
pango_font_description_set_size (font_desc, 40);
|
||||
gtk_widget_modify_font (widget, font);
|
||||
pango_font_description_free (font_desc);
|
||||
</programlisting>
|
||||
</para>
|
||||
<para>
|
||||
If you want to make the text of a label larger, you can use <link
|
||||
linkend="gtk-label-set-markup">gtk_label_set_markup()</link>:
|
||||
If you want to make the text of a label larger, you can use gtk_label_set_markup():
|
||||
<programlisting>
|
||||
gtk_label_set_markup (label, "<big>big text</big>");
|
||||
</programlisting>
|
||||
This is preferred for many apps because it's a relative size to the
|
||||
user's chosen font size. See <link
|
||||
linkend="g-markup-escape-text">g_markup_escape_text()</link>
|
||||
if you are constructing such strings on the fly.
|
||||
user's chosen font size. See g_markup_escape_text() if you are constructing such
|
||||
strings on the fly.
|
||||
</para>
|
||||
<para>
|
||||
You can also change the font of a widget by putting
|
||||
<programlisting>
|
||||
gtk-font-name = "Sans 30"
|
||||
</programlisting>
|
||||
in a resource file and parsing it with <link
|
||||
linkend="gtk-rc-add-default-file">gtk_rc_add_default_file()</link>.
|
||||
The advantage of a resource file is that users can then override the
|
||||
font you've chosen. See
|
||||
in a resource file and parsing it with gtk_rc_add_default_file(). The advantage of
|
||||
a resource file is that users can then override the font you've chosen. See
|
||||
<link linkend="gtk-Resource-Files">GTK+ resource files</link> for more
|
||||
discussion.
|
||||
</para>
|
||||
@@ -717,15 +653,14 @@ How do I disable/ghost/desensitize a widget?
|
||||
</para></question>
|
||||
|
||||
<answer><para> In GTK+ a disabled widget is termed "insensitive." See
|
||||
<link
|
||||
linkend="gtk-widget-set-sensitive">gtk_widget_set_sensitive()</link>.
|
||||
gtk_widget_set_sensitive().
|
||||
</para></answer>
|
||||
</qandaentry>
|
||||
|
||||
</qandadiv>
|
||||
|
||||
|
||||
<qandadiv><title><link linkend="GtkTextView">GtkTextView</link></title>
|
||||
<qandadiv><title>#GtkTextView</title>
|
||||
|
||||
<qandaentry>
|
||||
<question><para>
|
||||
@@ -733,13 +668,8 @@ How do I get the contents of the entire text widget as a string?
|
||||
</para></question>
|
||||
|
||||
<answer><para>
|
||||
|
||||
See <link
|
||||
linkend="gtk-text-buffer-get-bounds">gtk_text_buffer_get_bounds()</link>
|
||||
and <link
|
||||
linkend="gtk-text-buffer-get-text">gtk_text_buffer_get_text()</link>
|
||||
or <link
|
||||
linkend="gtk-text-iter-get-text">gtk_text_iter_get_text()</link>.
|
||||
See gtk_text_buffer_get_bounds() and gtk_text_buffer_get_text()
|
||||
or gtk_text_iter_get_text().
|
||||
</para>
|
||||
<para>
|
||||
<informalexample><programlisting>
|
||||
@@ -762,12 +692,13 @@ How do I make a text widget display its complete contents in a specific font?
|
||||
</para></question>
|
||||
|
||||
<answer><para>
|
||||
If you use <link
|
||||
linkend="gtk-text-buffer-insert-with-tags">gtk_text_buffer_insert_with_tags()</link> with appropriate tags to select the font, the inserted text will have the desired appearance, but text typed in by the user before or after the tagged block will appear in the default style.
|
||||
If you use gtk_text_buffer_insert_with_tags() with appropriate tags to select the
|
||||
font, the inserted text will have the desired appearance, but text typed in by the
|
||||
user before or after the tagged block will appear in the default style.
|
||||
</para>
|
||||
<para>
|
||||
To ensure that all text has the desired appearance, use <link
|
||||
linkend="gtk-widget-modify-font">gtk_widget_modify_font()</link> to change the default font for the widget.
|
||||
To ensure that all text has the desired appearance, use gtk_widget_modify_font()
|
||||
to change the default font for the widget.
|
||||
</para></answer>
|
||||
</qandaentry>
|
||||
|
||||
@@ -781,21 +712,17 @@ How do I make a text view scroll to the end of the buffer automatically ?
|
||||
<answer>
|
||||
<para>
|
||||
The "insert" <link linkend="GtkTextMark">mark</link> marks the insertion point
|
||||
where <link linkend="gtk-text-buffer-insert">gtk_text_buffer_insert()</link>
|
||||
inserts new text into the buffer. The text is inserted
|
||||
where gtk_text_buffer_insert() inserts new text into the buffer. The text is inserted
|
||||
<emphasis>before</emphasis> the "insert" mark, so that it generally stays
|
||||
at the end of the buffer. If it gets explicitly moved to some other position,
|
||||
e.g. when the user selects some text,
|
||||
use <link linkend="gtk-text-buffer-move-mark">gtk_text_buffer_move_mark()</link>
|
||||
to set it to the desired location before inserting more text.
|
||||
The "insert" mark of a buffer can be obtained with <link
|
||||
linkend="gtk-text-buffer-get-insert">gtk_text_buffer_get_insert()</link>.
|
||||
e.g. when the user selects some text, use gtk_text_buffer_move_mark() to set it to
|
||||
the desired location before inserting more text. The "insert" mark of a buffer can be
|
||||
obtained with gtk_text_buffer_get_insert().
|
||||
</para>
|
||||
|
||||
<para>
|
||||
To ensure that the end of the buffer remains visible, use
|
||||
<link
|
||||
linkend="gtk-text-view-scroll-to-mark">gtk_text_view_scroll_to_mark()</link> to scroll to the "insert" mark after inserting new text.
|
||||
gtk_text_view_scroll_to_mark() to scroll to the "insert" mark after inserting new text.
|
||||
</para>
|
||||
</answer>
|
||||
</qandaentry>
|
||||
@@ -803,7 +730,7 @@ To ensure that the end of the buffer remains visible, use
|
||||
|
||||
|
||||
|
||||
<qandadiv><title><link linkend="GtkTreeView">GtkTreeView</link></title>
|
||||
<qandadiv><title>#GtkTreeView</title>
|
||||
|
||||
<qandaentry>
|
||||
<question><para>
|
||||
@@ -812,28 +739,25 @@ How do I associate some data with a row in the tree?
|
||||
|
||||
<answer>
|
||||
<para>
|
||||
Remember that the <link linkend="GtkTreeModel">GtkTreeModel</link>
|
||||
columns don't necessarily have to be displayed. So you can put
|
||||
non-user-visible data in your model just like any other data, and
|
||||
retrieve it with <link
|
||||
linkend="gtk-tree-model-get">gtk_tree_model_get()</link>.
|
||||
See the <link linkend="TreeWidget">tree widget overview</link>.
|
||||
Remember that the #GtkTreeModel columns don't necessarily have to be displayed.
|
||||
So you can put non-user-visible data in your model just like any other data, and
|
||||
retrieve it with gtk_tree_model_get(). See the
|
||||
<link linkend="TreeWidget">tree widget overview</link>.
|
||||
</para>
|
||||
</answer>
|
||||
</qandaentry>
|
||||
|
||||
<qandaentry>
|
||||
<question><para>
|
||||
What's the <link linkend="GtkTreeView">GtkTreeView</link> equivalent of
|
||||
<link linkend="gtk-clist-find-row-from-data">gtk_clist_find_row_from_data()</link>?
|
||||
What's the #GtkTreeView equivalent of gtk_clist_find_row_from_data()?
|
||||
</para></question>
|
||||
|
||||
<answer>
|
||||
<para>
|
||||
As there is no separate data column in the <link linkend="GtkTreeModel">GtkTreeModel</link>, there's no
|
||||
As there is no separate data column in the #GtkTreeModel, there's no
|
||||
built in function to find the iter from data. You can write a custom
|
||||
searching function to walk the tree and find the data, or use
|
||||
<link linkend="gtk-tree-model-foreach">gtk_tree_model_foreach()</link>.
|
||||
gtk_tree_model_foreach().
|
||||
</para>
|
||||
</answer>
|
||||
</qandaentry>
|
||||
@@ -845,53 +769,36 @@ How do I put an image and some text in the same column?
|
||||
|
||||
<answer>
|
||||
<para>
|
||||
You can pack more than one <link
|
||||
linkend="GtkCellRenderer">GtkCellRenderer</link> into a single
|
||||
<link linkend="GtkTreeViewColumn">GtkTreeViewColumn</link> using
|
||||
<link
|
||||
linkend="gtk-tree-view-column-pack-start">gtk_tree_view_column_pack_start()</link> or <link linkend="gtk-tree-view-column-pack-end">gtk_tree_view_column_pack_end()</link>. So pack both a <link
|
||||
linkend="GtkCellRendererPixbuf">GtkCellRendererPixbuf</link>
|
||||
and a <link
|
||||
linkend="GtkCellRendererText">GtkCellRendererText</link> into the
|
||||
column.
|
||||
You can pack more than one #GtkCellRenderer into a single #GtkTreeViewColumn using
|
||||
gtk_tree_view_column_pack_start() or gtk_tree_view_column_pack_end(). So pack both
|
||||
a #GtkCellRendererPixbuf and a #GtkCellRendererText into the column.
|
||||
</para>
|
||||
</answer>
|
||||
</qandaentry>
|
||||
|
||||
<qandaentry>
|
||||
<question><para>
|
||||
I can set data easily on my <link
|
||||
linkend="GtkTreeStore">GtkTreeStore</link>/<link
|
||||
linkend="GtkListStore">GtkListStore</link> models using <link
|
||||
linkend="gtk-tree-model-get">gtk_list_store_set()</link> and <link
|
||||
linkend="gtk-tree-model-get">gtk_tree_store_set()</link>, but can't read
|
||||
it back?
|
||||
I can set data easily on my #GtkTreeStore/#GtkListStore models using
|
||||
gtk_list_store_set() and gtk_tree_store_set(), but can't read it back?
|
||||
</para></question>
|
||||
|
||||
<answer>
|
||||
<para>
|
||||
Both the <link
|
||||
linkend="GtkTreeStore">GtkTreeStore</link> and the <link
|
||||
linkend="GtkListStore">GtkListStore</link> implement the
|
||||
<link linkend="GtkTreeModel">GtkTreeModel</link>
|
||||
interface. Consequentially, the can use any function
|
||||
this interface implements. The easiest way to read a
|
||||
set of data back is to use
|
||||
<link
|
||||
linkend="gtk-tree-model-get">gtk_tree_model_get()</link>.
|
||||
Both the #GtkTreeStore and the #GtkListStore implement the #GtkTreeModel
|
||||
interface. Consequentially, the can use any function this interface implements.
|
||||
The easiest way to read a set of data back is to use gtk_tree_model_get().
|
||||
</para>
|
||||
</answer>
|
||||
</qandaentry>
|
||||
|
||||
<qandaentry>
|
||||
<question><para>
|
||||
How do I change the way that numbers are formatted by <link linkend="GtkTreeView">GtkTreeView</link>?
|
||||
How do I change the way that numbers are formatted by #GtkTreeView?
|
||||
</para></question>
|
||||
<answer><para>
|
||||
Use <link linkend="gtk-tree-view-insert-column-with-data-func">gtk_tree_view_insert_column_with_data_func()</link>
|
||||
or <link linkend="gtk-tree-view-column-set-cell-data-func">gtk_tree_view_column_set_cell_data_func()</link>
|
||||
and do the conversion from number to string yourself (with, say,
|
||||
<link linkend="g-strdup-printf">g_strdup_printf()</link>).
|
||||
Use gtk_tree_view_insert_column_with_data_func()
|
||||
or gtk_tree_view_column_set_cell_data_func() and do the conversion from number to
|
||||
string yourself (with, say, g_strdup_printf()).
|
||||
</para>
|
||||
|
||||
<para>
|
||||
@@ -937,15 +844,15 @@ set_up_new_columns (GtkTreeView *myview)
|
||||
gtk_tree_view_set_model (myview, GTK_TREE_MODEL (mycolumns));
|
||||
|
||||
/* Create a GtkCellRendererText */
|
||||
renderer = gtk_cell_renderer_text_new ();
|
||||
renderer = gtk_cell_renderer_text_new (<!-- -->);
|
||||
|
||||
/* Create a new column that has a title ("Example column"),
|
||||
* uses the above created renderer that will render the double
|
||||
* value into text from the associated model's rows.
|
||||
*/
|
||||
column = gtk_tree_view_column_new ();
|
||||
column = gtk_tree_view_column_new (<!-- -->);
|
||||
gtk_tree_view_column_set_title (column, "Example column");
|
||||
renderer = gtk_cell_renderer_text_new ();
|
||||
renderer = gtk_cell_renderer_text_new (<!-- -->);
|
||||
gtk_tree_view_column_pack_start (column, renderer, TRUE);
|
||||
|
||||
/* Append the new column after the GtkTreeView's previous columns. */
|
||||
@@ -965,10 +872,19 @@ set_up_new_columns (GtkTreeView *myview)
|
||||
</para></answer>
|
||||
</qandaentry>
|
||||
|
||||
<qandaentry>
|
||||
<question><para>
|
||||
How do I hide the expander arrows in my tree view ?
|
||||
</para></question>
|
||||
|
||||
<answer><para>
|
||||
Set the expander-column property of the tree view to a hidden column.
|
||||
See gtk_tree_view_set_expander_column() and gtk_tree_view_column_set_visible().
|
||||
</para></answer>
|
||||
</qandaentry>
|
||||
|
||||
</qandadiv>
|
||||
|
||||
|
||||
|
||||
</qandaset>
|
||||
|
||||
</refsect1>
|
||||
|
@@ -6,7 +6,8 @@
|
||||
</refmeta>
|
||||
|
||||
<refnamediv>
|
||||
<refname>Text Widget Overview</refname><refpurpose>Overview of <link linkend="GtkTextBuffer">GtkTextBuffer</link>, <link linkend="GtkTextView">GtkTextView</link>, and friends</refpurpose>
|
||||
<refname>Text Widget Overview</refname>
|
||||
<refpurpose>Overview of #GtkTextBuffer, #GtkTextView, and friends</refpurpose>
|
||||
</refnamediv>
|
||||
|
||||
<refsect1>
|
||||
@@ -14,11 +15,9 @@
|
||||
|
||||
<para>
|
||||
GTK+ has an extremely powerful framework for multiline text editing. The
|
||||
primary objects involved in the process are <link
|
||||
linkend="GtkTextBuffer">GtkTextBuffer</link>, which represents the text being
|
||||
edited, and <link linkend="GtkTextView">GtkTextView</link>, a widget which can
|
||||
display a <link linkend="GtkTextBuffer">GtkTextBuffer</link>. Each buffer can
|
||||
be displayed by any number of views.
|
||||
primary objects involved in the process are #GtkTextBuffer, which represents the
|
||||
text being edited, and #GtkTextView, a widget which can display a #GtkTextBuffer.
|
||||
Each buffer can be displayed by any number of views.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
@@ -38,15 +37,12 @@ be called "bold" and make the text inside the tag bold. However, the tag
|
||||
concept is more general than that; tags don't have to affect appearance. They
|
||||
can instead affect the behavior of mouse and key presses, "lock" a range of
|
||||
text so the user can't edit it, or countless other things. A tag is
|
||||
represented by a
|
||||
<link linkend="GtkTextTag">GtkTextTag</link> object. One <link
|
||||
linkend="GtkTextTag">GtkTextTag</link> can be applied to any number of text
|
||||
ranges in any number of buffers.
|
||||
represented by a #GtkTextTag object. One #GtkTextTag can be applied to any number
|
||||
of text ranges in any number of buffers.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Each tag is stored in a <link
|
||||
linkend="GtkTextTagTable">GtkTextTagTable</link>. A tag table defines a set of
|
||||
Each tag is stored in a #GtkTextTagTable. A tag table defines a set of
|
||||
tags that can be used together. Each buffer has one tag table associated with
|
||||
it; only tags from that tag table can be used with the buffer. A single tag
|
||||
table can be shared between multiple buffers, however.
|
||||
@@ -60,9 +56,8 @@ is convenient if you're creating tags on-the-fly).
|
||||
|
||||
<para>
|
||||
Most text manipulation is accomplished with <firstterm>iterators</firstterm>,
|
||||
represented by a <link linkend="GtkTextIter">GtkTextIter</link>. An iterator
|
||||
represents a position between two characters in the text buffer. <link
|
||||
linkend="GtkTextIter">GtkTextIter</link> is a struct designed to be allocated
|
||||
represented by a #GtkTextIter. An iterator represents a position between two
|
||||
characters in the text buffer. #GtkTextIter is a struct designed to be allocated
|
||||
on the stack; it's guaranteed to be copiable by value and never contain any
|
||||
heap-allocated data. Iterators are not valid indefinitely; whenever the buffer
|
||||
is modified in a way that affects the number of characters in the buffer, all
|
||||
@@ -73,11 +68,10 @@ number of characters you pass through a state with a different number).
|
||||
|
||||
<para>
|
||||
Because of this, iterators can't be used to preserve positions across buffer
|
||||
modifications. To preserve a position, the <link
|
||||
linkend="GtkTextMark">GtkTextMark</link> object is ideal. You can think of a
|
||||
mark as an invisible cursor or insertion point; it floats in the buffer, saving
|
||||
a position. If the text surrounding the mark is deleted, the mark remains in
|
||||
the position the text once occupied; if text is inserted at the mark, the
|
||||
modifications. To preserve a position, the #GtkTextMark object is ideal. You can
|
||||
think of a mark as an invisible cursor or insertion point; it floats in the buffer,
|
||||
saving a position. If the text surrounding the mark is deleted, the mark remains
|
||||
in the position the text once occupied; if text is inserted at the mark, the
|
||||
mark ends up either to the left or to the right of the new text, depending on
|
||||
its <firstterm>gravity</firstterm>. The standard text cursor in left-to-right
|
||||
languages is a mark with right gravity, because it stays to the right of
|
||||
@@ -86,21 +80,18 @@ inserted text.
|
||||
|
||||
<para>
|
||||
Like tags, marks can be either named or anonymous. There are two marks built-in
|
||||
to <link linkend="GtkTextBuffer">GtkTextBuffer</link>; these are named
|
||||
<literal>"insert"</literal> and <literal>"selection_bound"</literal> and refer
|
||||
to the insertion point and the boundary of the selection which is not the
|
||||
insertion point, respectively. If no text is selected, these two marks will be
|
||||
in the same position. You can manipulate what is selected and where the cursor
|
||||
appears by moving these marks around.
|
||||
to #GtkTextBuffer; these are named <literal>"insert"</literal> and
|
||||
<literal>"selection_bound"</literal> and refer to the insertion point and the
|
||||
boundary of the selection which is not the insertion point, respectively. If no
|
||||
text is selected, these two marks will be in the same position. You can manipulate
|
||||
what is selected and where the cursor appears by moving these marks around.
|
||||
|
||||
<footnote>
|
||||
<para>
|
||||
If you want to place the cursor in response to a user action, be sure to use
|
||||
<link
|
||||
linkend="gtk-text-buffer-place-cursor">gtk_text_buffer_place_cursor()</link>,
|
||||
which moves both at once
|
||||
without causing a temporary selection (moving one then the other temporarily
|
||||
selects the range in between the old and new positions).
|
||||
gtk_text_buffer_place_cursor(), which moves both at once without causing a
|
||||
temporary selection (moving one then the other temporarily selects the range in
|
||||
between the old and new positions).
|
||||
</para>
|
||||
</footnote>
|
||||
</para>
|
||||
@@ -123,13 +114,12 @@ considered a line separator.
|
||||
<title>Simple Example</title>
|
||||
|
||||
<para>
|
||||
The simplest usage of <link linkend="GtkTextView">GtkTextView</link>
|
||||
might look like this:
|
||||
The simplest usage of #GtkTextView might look like this:
|
||||
<informalexample><programlisting>
|
||||
GtkWidget *view;
|
||||
GtkTextBuffer *buffer;
|
||||
|
||||
view = gtk_text_view_new ();
|
||||
view = gtk_text_view_new (<!-- -->);
|
||||
|
||||
buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (view));
|
||||
|
||||
@@ -140,11 +130,10 @@ might look like this:
|
||||
* will be emitted, such as "changed", "insert_text", and so on.
|
||||
*/
|
||||
</programlisting></informalexample>
|
||||
In many cases it's also convenient to first create the buffer with <link
|
||||
linkend="gtk-text-buffer-new">gtk_text_buffer_new()</link>, then create a
|
||||
widget for that buffer with <link linkend="gtk-text-view-new-with-buffer">gtk_text_view_new_with_buffer()</link>.
|
||||
Or you can change the buffer the widget displays after the widget is created
|
||||
with <link linkend="gtk-text-view-set-buffer">gtk_text_view_set_buffer()</link>.
|
||||
In many cases it's also convenient to first create the buffer with
|
||||
gtk_text_buffer_new(), then create a widget for that buffer with
|
||||
gtk_text_view_new_with_buffer(). Or you can change the buffer the widget
|
||||
displays after the widget is created with gtk_text_view_set_buffer().
|
||||
</para>
|
||||
|
||||
</refsect1>
|
||||
@@ -154,21 +143,13 @@ with <link linkend="gtk-text-view-set-buffer">gtk_text_view_set_buffer()</link>.
|
||||
|
||||
<para>
|
||||
|
||||
There are two ways to affect text attributes in
|
||||
<link linkend="GtkTextView">GtkTextView</link>.
|
||||
You can change the default attributes for a given
|
||||
<link linkend="GtkTextView">GtkTextView</link>, and you can
|
||||
apply tags that change the attributes for a region of text.
|
||||
For text features that come from the theme — such as
|
||||
font and foreground color — use standard
|
||||
<link linkend="GtkWidget">GtkWidget</link>
|
||||
functions such as
|
||||
<link linkend="gtk-widget-modify-font">gtk_widget_modify_font()</link>
|
||||
or
|
||||
<link linkend="gtk-widget-modify-text">gtk_widget_modify_text()</link>.
|
||||
For other attributes there are dedicated methods on
|
||||
<link linkend="GtkTextView">GtkTextView</link> such as
|
||||
<link linkend="gtk-text-view-set-tabs">gtk_text_view_set_tabs()</link>.
|
||||
There are two ways to affect text attributes in #GtkTextView.
|
||||
You can change the default attributes for a given #GtkTextView, and you can
|
||||
apply tags that change the attributes for a region of text. For text features
|
||||
that come from the theme — such as font and foreground color — use
|
||||
standard #GtkWidget functions such as gtk_widget_modify_font() or
|
||||
gtk_widget_modify_text(). For other attributes there are dedicated methods on
|
||||
#GtkTextView such as gtk_text_view_set_tabs().
|
||||
|
||||
<informalexample><programlisting>
|
||||
GtkWidget *view;
|
||||
@@ -178,7 +159,7 @@ For other attributes there are dedicated methods on
|
||||
GdkColor color;
|
||||
GtkTextTag *tag;
|
||||
|
||||
view = gtk_text_view_new ();
|
||||
view = gtk_text_view_new (<!-- -->);
|
||||
|
||||
buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (view));
|
||||
|
||||
@@ -208,8 +189,7 @@ For other attributes there are dedicated methods on
|
||||
|
||||
<para>
|
||||
The <application>gtk-demo</application> application that comes with
|
||||
GTK+ contains more example code for <link
|
||||
linkend="GtkTextView">GtkTextView</link>.
|
||||
GTK+ contains more example code for #GtkTextView.
|
||||
</para>
|
||||
|
||||
</refsect1>
|
||||
|
@@ -1,7 +1,3 @@
|
||||
<!-- ##### SECTION ./tmpl/gtk-unused.sgml:Stability_Level ##### -->
|
||||
|
||||
|
||||
|
||||
<!-- ##### SECTION ./tmpl/gtkarg.sgml:Long_Description ##### -->
|
||||
<para>
|
||||
All the functions in here are marked a Non-public.
|
||||
@@ -890,6 +886,12 @@ the #GtkAdjustment which sets the range of the scale.
|
||||
</para>
|
||||
|
||||
|
||||
<!-- ##### STRUCT GtkIconViewPrivate ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
|
||||
<!-- ##### USER_FUNCTION GtkImageLoader ##### -->
|
||||
<para>
|
||||
A GtkImageLoader is used to load a filename found in
|
||||
|
@@ -109,6 +109,11 @@ only private fields and should not be directly accessed.
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### ARG GtkAboutDialog:wrap-license ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### ARG GtkAboutDialog:link-color ##### -->
|
||||
<para>
|
||||
|
||||
@@ -212,6 +217,24 @@ only private fields and should not be directly accessed.
|
||||
@license:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_about_dialog_get_wrap_license ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@about:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_about_dialog_set_wrap_license ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@about:
|
||||
@wrap_license:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_about_dialog_get_website ##### -->
|
||||
<para>
|
||||
|
||||
@@ -364,7 +387,9 @@ link is activated.
|
||||
|
||||
@about: the #GtkAboutDialog in which the link was activated
|
||||
@link: the URL or email address to whiche the activated link points
|
||||
@data:
|
||||
@data: user data that was passed when the function was registered
|
||||
with gtk_about_dialog_set_email_hook() or
|
||||
gtk_about_dialog_set_url_hook()
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_about_dialog_set_email_hook ##### -->
|
||||
|
@@ -74,7 +74,7 @@ An object representing and maintaining a group of accelerators.
|
||||
Deprecated equivalent of g_object_ref().
|
||||
</para>
|
||||
|
||||
@Returns:
|
||||
@Returns: the accel group that was passed in
|
||||
|
||||
|
||||
<!-- ##### MACRO gtk_accel_group_unref ##### -->
|
||||
|
@@ -320,6 +320,15 @@ and should not be accessed directly.
|
||||
@accel_path:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_action_get_accel_closure ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@action:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_action_set_accel_group ##### -->
|
||||
<para>
|
||||
|
||||
|
@@ -188,7 +188,7 @@ This is typically called by the owner of the #GtkAdjustment after it has
|
||||
changed any of the #GtkAdjustment fields other than the value.
|
||||
</para>
|
||||
|
||||
@adjustment:
|
||||
@adjustment: a #GtkAdjustment
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_adjustment_value_changed ##### -->
|
||||
@@ -198,6 +198,6 @@ This is typically called by the owner of the #GtkAdjustment after it has
|
||||
changed the #GtkAdjustment value field.
|
||||
</para>
|
||||
|
||||
@adjustment:
|
||||
@adjustment: a #GtkAdjustment
|
||||
|
||||
|
||||
|
@@ -99,10 +99,8 @@ Used internally only.
|
||||
Retrieves how much space a button box is placing between each child button.
|
||||
</para>
|
||||
|
||||
@b:
|
||||
@b: a #GtkButtonBox
|
||||
@Returns: the current spacing applied to the buttons in @widget.
|
||||
<!-- # Unused Parameters # -->
|
||||
@widget: a #GtkButtonBox.
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_button_box_get_layout ##### -->
|
||||
@@ -154,11 +152,8 @@ Gets the default number of pixels that pad the buttons in a given button box.
|
||||
Sets the amount of spacing between buttons in a given button box.
|
||||
</para>
|
||||
|
||||
@b:
|
||||
@s:
|
||||
<!-- # Unused Parameters # -->
|
||||
@widget: a #GtkButtonBox.
|
||||
@spacing: the number of pixels of spacing.
|
||||
@b: a #GtkButtonBox.
|
||||
@s: the number of pixels of spacing.
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_button_box_set_layout ##### -->
|
||||
|
@@ -27,11 +27,6 @@ gtk_calendar_set_display_options().
|
||||
The selected date can be retrieved from a #GtkCalendar using
|
||||
gtk_calendar_get_date().
|
||||
</para>
|
||||
<para>
|
||||
If performing many 'mark' operations, the calendar can be frozen to prevent
|
||||
flicker, using gtk_calendar_freeze(), and 'thawed' again using
|
||||
gtk_calendar_thaw().
|
||||
</para>
|
||||
|
||||
<!-- ##### SECTION See_Also ##### -->
|
||||
<para>
|
||||
@@ -168,59 +163,52 @@ These options can be used to influence the display and behaviour of a #GtkCalend
|
||||
|
||||
<!-- ##### FUNCTION gtk_calendar_new ##### -->
|
||||
<para>
|
||||
Creates a new calendar, with the current date being selected.
|
||||
</para>
|
||||
|
||||
@Returns: a #GtkCalendar.
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_calendar_select_month ##### -->
|
||||
<para>
|
||||
Shifts the calendar to a different month.
|
||||
</para>
|
||||
|
||||
@calendar: a #GtkCalendar.
|
||||
@month: a month number between 0 and 11.
|
||||
@year: the year the month is in.
|
||||
@Returns: %TRUE.
|
||||
@calendar:
|
||||
@month:
|
||||
@year:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_calendar_select_day ##### -->
|
||||
<para>
|
||||
Selects a day from the current month.
|
||||
</para>
|
||||
|
||||
@calendar: a #GtkCalendar.
|
||||
@day: the day number between 1 and 31, or 0 to unselect
|
||||
the currently selected day.
|
||||
@calendar:
|
||||
@day:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_calendar_mark_day ##### -->
|
||||
<para>
|
||||
Places a visual marker on a particular day.
|
||||
</para>
|
||||
|
||||
@calendar: a #GtkCalendar.
|
||||
@day: the day number to mark between 1 and 31.
|
||||
@Returns: %TRUE.
|
||||
@calendar:
|
||||
@day:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_calendar_unmark_day ##### -->
|
||||
<para>
|
||||
Removes the visual marker from a particular day.
|
||||
</para>
|
||||
|
||||
@calendar: a #GtkCalendar.
|
||||
@day: the day number to unmark between 1 and 31.
|
||||
@Returns: %TRUE.
|
||||
@calendar:
|
||||
@day:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_calendar_clear_marks ##### -->
|
||||
<para>
|
||||
Remove all visual markers.
|
||||
</para>
|
||||
|
||||
@calendar: a #GtkCalendar.
|
||||
@calendar:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_calendar_get_display_options ##### -->
|
||||
@@ -243,39 +231,34 @@ Remove all visual markers.
|
||||
|
||||
<!-- ##### FUNCTION gtk_calendar_display_options ##### -->
|
||||
<para>
|
||||
Sets display options (whether to display the heading and the month headings).
|
||||
</para>
|
||||
|
||||
@calendar: a #GtkCalendar.
|
||||
@flags: the display options to set.
|
||||
@Deprecated: Use gtk_calendar_set_display_options() instead
|
||||
@calendar:
|
||||
@flags:
|
||||
@Deprecated:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_calendar_get_date ##### -->
|
||||
<para>
|
||||
Obtains the selected date from a #GtkCalendar.
|
||||
</para>
|
||||
|
||||
@calendar: a #GtkCalendar.
|
||||
@year: location to store the year number.
|
||||
@month: location to store the month number (between 0 and 11).
|
||||
@day: location to store the day number (between 1 and 31).
|
||||
@calendar:
|
||||
@year:
|
||||
@month:
|
||||
@day:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_calendar_freeze ##### -->
|
||||
<para>
|
||||
Locks the display of the calendar until it is thawed with gtk_calendar_thaw().
|
||||
</para>
|
||||
|
||||
@calendar: a #GtkCalendar.
|
||||
@calendar:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_calendar_thaw ##### -->
|
||||
<para>
|
||||
Defrosts a calendar; all the changes made since the last
|
||||
gtk_calendar_freeze() are displayed.
|
||||
</para>
|
||||
|
||||
@calendar: a #GtkCalendar.
|
||||
@calendar:
|
||||
|
||||
|
||||
|
@@ -39,6 +39,16 @@ property is set to a pixbuf, it renders that one.
|
||||
</para>
|
||||
|
||||
|
||||
<!-- ##### ARG GtkCellRendererPixbuf:follow-state ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### ARG GtkCellRendererPixbuf:icon-name ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### ARG GtkCellRendererPixbuf:pixbuf ##### -->
|
||||
<para>
|
||||
|
||||
|
@@ -240,6 +240,16 @@ the #GtkCellRendererText allows to edit its text using an entry.
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### ARG GtkCellRendererText:wrap-mode ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### ARG GtkCellRendererText:wrap-width ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### FUNCTION gtk_cell_renderer_text_new ##### -->
|
||||
<para>
|
||||
|
||||
|
@@ -93,6 +93,14 @@ Storing data on clipboards
|
||||
</para>
|
||||
|
||||
|
||||
<!-- ##### SIGNAL GtkClipboard::owner-change ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@clipboard: the object which received the signal.
|
||||
@event:
|
||||
|
||||
<!-- ##### USER_FUNCTION GtkClipboardReceivedFunc ##### -->
|
||||
<para>
|
||||
A function to be called when the results of gtk_clipboard_request_contents()
|
||||
@@ -118,6 +126,18 @@ Storing data on clipboards
|
||||
@data: the @user_data supplied to gtk_clipboard_request_text().
|
||||
|
||||
|
||||
<!-- ##### USER_FUNCTION GtkClipboardImageReceivedFunc ##### -->
|
||||
<para>
|
||||
A function to be called when the results of gtk_clipboard_request_image()
|
||||
are received, or when the request fails.
|
||||
</para>
|
||||
|
||||
@clipboard: the #GtkClipboard
|
||||
@pixbuf: the received image
|
||||
@data: the @user_data supplied to gtk_clipboard_request_image().
|
||||
@Since: 2.6
|
||||
|
||||
|
||||
<!-- ##### USER_FUNCTION GtkClipboardTargetsReceivedFunc ##### -->
|
||||
<para>
|
||||
A function to be called when the results of gtk_clipboard_request_targets()
|
||||
|
@@ -15,7 +15,8 @@ allow modifying it.
|
||||
<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.
|
||||
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>
|
||||
|
@@ -322,6 +322,16 @@ directly, but into the @vbox and @action_area, as described above.
|
||||
@setting:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_dialog_get_response_for_widget ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@dialog:
|
||||
@widget:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_alternative_dialog_button_order ##### -->
|
||||
<para>
|
||||
|
||||
|
@@ -285,6 +285,17 @@ a widget.
|
||||
@hot_y:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_drag_set_icon_name ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@context:
|
||||
@icon_name:
|
||||
@hot_x:
|
||||
@hot_y:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_drag_set_icon_default ##### -->
|
||||
<para>
|
||||
</para>
|
||||
@@ -360,6 +371,15 @@ widget. The widget must have a window.
|
||||
@stock_id:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_drag_source_set_icon_name ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@widget:
|
||||
@icon_name:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_drag_source_unset ##### -->
|
||||
<para>
|
||||
Undoes the effects of gtk_drag_source_set().
|
||||
|
@@ -125,11 +125,12 @@ it from being inserted entirely.
|
||||
|
||||
@editable: the object which received the signal.
|
||||
@new_text: the new text to insert.
|
||||
@new_text_length: the length of the new text.
|
||||
@position: the position at which to insert the new text.
|
||||
this is an in-out paramter. After the signal
|
||||
emission is finished, it should point after
|
||||
the newly inserted text.
|
||||
@new_text_length: the length of the new text, in bytes,
|
||||
or -1 if new_text is nul-terminated
|
||||
@position: the position, in characters, at which to insert
|
||||
the new text. this is an in-out parameter.
|
||||
After the signal emission is finished, it should
|
||||
point after the newly inserted text.
|
||||
|
||||
<!-- ##### FUNCTION gtk_editable_select_region ##### -->
|
||||
<para>
|
||||
|
@@ -18,7 +18,7 @@ position is visible.
|
||||
<variablelist>
|
||||
|
||||
<varlistentry>
|
||||
<term>#GtkText</term>
|
||||
<term>#GtkTextView</term>
|
||||
<listitem><para>a widget for handling multi-line text entry.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
|
@@ -99,6 +99,16 @@ The GtkEntryCompletion struct contains only private data.
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### ARG GtkEntryCompletion:popup-set-width ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### ARG GtkEntryCompletion:popup-single-match ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### ARG GtkEntryCompletion:text-column ##### -->
|
||||
<para>
|
||||
|
||||
@@ -291,3 +301,39 @@ to the unmodified key via <literal>gtk_entry_get_text (GTK_ENTRY (gtk_entry_comp
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_entry_completion_set_popup_set_width ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@completion:
|
||||
@popup_set_width:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_entry_completion_get_popup_set_width ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@completion:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_entry_completion_set_popup_single_match ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@completion:
|
||||
@popup_single_match:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_entry_completion_get_popup_single_match ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@completion:
|
||||
@Returns:
|
||||
|
||||
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user