Compare commits
898 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| a35c581710 | |||
| ba6b7633aa | |||
| a2fe2ab4e6 | |||
| f4ed7e23da | |||
| d46ed462ca | |||
| ff88366dd2 | |||
| 3a86218983 | |||
| 361812066a | |||
| 83bb9d10a3 | |||
| f563a64460 | |||
| 68dd8e817b | |||
| fb34e6ad36 | |||
| c0d74d3ea7 | |||
| 750f6b9913 | |||
| 8230299748 | |||
| 83f9649c9c | |||
| edb4c65c5b | |||
| df0f14fe2a | |||
| 8a6aca31a8 | |||
| 44d76fbcdc | |||
| e916391e6c | |||
| 72c79deb3b | |||
| 0d402601b2 | |||
| 0430ae0ca5 | |||
| 1cbace5f68 | |||
| 750178e1ed | |||
| 4bbca44512 | |||
| b03d54b75f | |||
| a9bcea5118 | |||
| f5b1e75d93 | |||
| 0cd63faee2 | |||
| 434f91feff | |||
| 4f89eb05cf | |||
| 1d897a9bf2 | |||
| a13d12a445 | |||
| 3f140d5391 | |||
| 0b586e52c2 | |||
| 86d4c26420 | |||
| eab39253ec | |||
| 7eaea2a849 | |||
| 9037f7b64e | |||
| f52dd9fc04 | |||
| aabc356b80 | |||
| 1008e15414 | |||
| 687eae4b51 | |||
| 4d002d5e6a | |||
| 54d5b426fc | |||
| b320c198b6 | |||
| 0011c9dae4 | |||
| 51a09af076 | |||
| ef38d6e397 | |||
| 00d02491d8 | |||
| 45e1128472 | |||
| 716ecff28d | |||
| 38cbd87cac | |||
| 1af417a82d | |||
| e74bb3db2a | |||
| 04703689b8 | |||
| 4928d5e401 | |||
| 4a4b23bfad | |||
| d4771d4a95 | |||
| cd1cd40e9a | |||
| 83c1869250 | |||
| bd35df05a5 | |||
| 60e15deb83 | |||
| a4a122c8e8 | |||
| d59c909663 | |||
| 01d74f86a0 | |||
| ca1510177c | |||
| c9f54aef69 | |||
| f54277204f | |||
| 485da90a2e | |||
| 7e61216105 | |||
| 03a3b2ccab | |||
| 0d4e75f078 | |||
| 5fdf07547f | |||
| 0442431943 | |||
| 9f3f634c16 | |||
| 70bccb38c3 | |||
| c83d3f054b | |||
| ae5f930d1b | |||
| aead8a360b | |||
| 729a3a98d9 | |||
| 9917b15bd3 | |||
| 01cd5cf382 | |||
| 6cc9744558 | |||
| 681164564e | |||
| 8f20780fb9 | |||
| a47d0406a7 | |||
| 1c5f14a9e4 | |||
| a727c41e4a | |||
| 2ba89256f4 | |||
| f322e55e19 | |||
| f81f00ed6b | |||
| d351c52114 | |||
| 57eca4f445 | |||
| bd68db4b25 | |||
| e70e3963dd | |||
| cf7bb9a3bf | |||
| 15f7170358 | |||
| 10c47fa6d6 | |||
| bd5fb3a09f | |||
| b2d56c588a | |||
| e580c29f07 | |||
| d559cade42 | |||
| 70ea24b9e8 | |||
| a6526eb820 | |||
| ced7e7c08d | |||
| 0b3f4d5555 | |||
| fd9925141b | |||
| e638ff7974 | |||
| d2db31ee5e | |||
| 04c8b4c705 | |||
| 24f20864b4 | |||
| dd164502f7 | |||
| 1c48cc253d | |||
| 3d34f26a6a | |||
| 6a290bdecb | |||
| 6896c979a9 | |||
| bad1dd4ac7 | |||
| d97e4bf6b7 | |||
| f47138b653 | |||
| a4da4f8dfa | |||
| fe9685bca1 | |||
| 6e9b054543 | |||
| 2a0bf33bc9 | |||
| 44a960199b | |||
| 83d5795154 | |||
| 8ab35016a6 | |||
| 0288fd0a88 | |||
| 994c94c25b | |||
| 5369c77029 | |||
| f0940c962f | |||
| db55f8a4e5 | |||
| 5c9f4bd078 | |||
| 134acf3fda | |||
| 4589f0e0c8 | |||
| c34280d97b | |||
| e080eafef8 | |||
| d9e6395ee9 | |||
| cbe47c02a1 | |||
| 42df9eda2d | |||
| 93b7883372 | |||
| c6c41262b6 | |||
| 17088e4add | |||
| c63c1caac0 | |||
| 3a752658ab | |||
| 487ac50e93 | |||
| 616aac8d82 | |||
| 0106099f5b | |||
| f73f4d82e0 | |||
| bf6181a382 | |||
| 35bed1ac14 | |||
| 63dd7a568e | |||
| 556eb398e5 | |||
| ad2346f762 | |||
| 1f8cf3c322 | |||
| 135a653ee2 | |||
| 24dc172b46 | |||
| fa168e202e | |||
| 3cbd2b97b8 | |||
| ec50d776ce | |||
| dbc7f011b3 | |||
| 958efad71d | |||
| a0e9de671b | |||
| c10998edb5 | |||
| dc1e8454a7 | |||
| 2df48ba886 | |||
| 28237f80f5 | |||
| 90b2f386e7 | |||
| 4602f34111 | |||
| 862f9d876e | |||
| ac8dcccb32 | |||
| c60c0fe4c5 | |||
| 48367b1432 | |||
| d768c2cb84 | |||
| 4401be22ad | |||
| 6296aa84b2 | |||
| c7da5b54f5 | |||
| 75b6f4aa52 | |||
| 2166be96d2 | |||
| bd722499dc | |||
| d5cb4841c8 | |||
| 8c139c1fca | |||
| e3d25b3c3c | |||
| c3075f1d56 | |||
| c506dfe600 | |||
| 3cc9543e64 | |||
| cdb5ba9426 | |||
| 490c356954 | |||
| ff627511b7 | |||
| 6350f58c1c | |||
| c4a39f5abf | |||
| 3221d53010 | |||
| 040c82f0e8 | |||
| 51b5fa3bf0 | |||
| 7a71c16317 | |||
| b0a23dbfbd | |||
| 6433a5452e | |||
| 72f8c673da | |||
| ae241714c4 | |||
| 8ebcca2ef6 | |||
| f3257e1a54 | |||
| 4570837e48 | |||
| 759705d3e6 | |||
| 2ed086748f | |||
| 2ef4f1bc61 | |||
| bae68b5511 | |||
| 46b4e5d388 | |||
| db14e22f06 | |||
| f766109b5b | |||
| cdcc536ddc | |||
| 1403ebb097 | |||
| 61e88c251e | |||
| 185da29b68 | |||
| b0eef458d1 | |||
| 6c78716531 | |||
| 564789777a | |||
| 38e40a55f4 | |||
| 8e1d5f98de | |||
| c49ac32393 | |||
| 55683c075c | |||
| 6cd0e733f5 | |||
| cece9cac07 | |||
| 84885c6e26 | |||
| a56a9e4a62 | |||
| 997f05d99b | |||
| 026b5014e8 | |||
| ed5d73b49a | |||
| 03381beacc | |||
| 4c34d4566c | |||
| dca169d9f1 | |||
| 315aedf5c8 | |||
| 000f38ed97 | |||
| 3db87cb0b7 | |||
| 5f24d1a519 | |||
| b5c319b56f | |||
| 2285157c7d | |||
| d89e810bd9 | |||
| b7435a0290 | |||
| d2c9b9c2aa | |||
| 25ece22013 | |||
| 7f787e1d3b | |||
| c4944b0376 | |||
| d4d0f13c3a | |||
| 49e9ba122a | |||
| a1aeaa6b07 | |||
| 8d2f81cca4 | |||
| 36106c19d4 | |||
| 83dd050ab2 | |||
| a9fa0151f1 | |||
| 4ec1fafe2f | |||
| 83ef067ae1 | |||
| 76213ab209 | |||
| f1bb0283dd | |||
| d0da82fed6 | |||
| 71e382cf42 | |||
| 73c2964e85 | |||
| 450c754c7c | |||
| 8026bc3651 | |||
| 9db3c2d893 | |||
| 2495b518c1 | |||
| 8733e2a918 | |||
| 88d554d3ba | |||
| 8f113e07fd | |||
| e2b8ef8c66 | |||
| 6c49ffe916 | |||
| fa22218973 | |||
| 486c82ae8f | |||
| 7caecf3979 | |||
| 28c04f4be3 | |||
| 74b6f5fba8 | |||
| d769f338f2 | |||
| 2df80d7a4d | |||
| 372e551a66 | |||
| e012dfab2c | |||
| 0eb62c1629 | |||
| 024c11dd66 | |||
| b26da6ed4f | |||
| e491da532a | |||
| 3d981069ab | |||
| 65022c4078 | |||
| 0d3f162d6b | |||
| 084576f214 | |||
| 76e18de811 | |||
| 7e562897e8 | |||
| 845f29ccf5 | |||
| b1a7aa49b3 | |||
| 6c3712599c | |||
| 695ee3fc19 | |||
| 27d0d5c0d0 | |||
| 3b1196fc68 | |||
| 49cf5142ba | |||
| c3a9a20839 | |||
| 69cef3c9b4 | |||
| cbb5e27b3e | |||
| 39ccbe6549 | |||
| bd5414addb | |||
| 2036c150ea | |||
| a3d0b8d7f4 | |||
| 8f7dceda3c | |||
| d01a291dbc | |||
| a61a11a4ea | |||
| 898f0fa0b9 | |||
| b90802f7e4 | |||
| 9ae12b15e9 | |||
| e6c050c06f | |||
| 8591f452f0 | |||
| 33207f4597 | |||
| 3d2dcc2bfe | |||
| 0ea1a526f9 | |||
| 02d92ff831 | |||
| f750f70c7d | |||
| c543a14c5b | |||
| 6b26410d38 | |||
| 11abc517f5 | |||
| d39ee6c81c | |||
| 3d8b0514bb | |||
| 0a0c95f39b | |||
| 9cbaf71e14 | |||
| af8fdac001 | |||
| 538b987bc5 | |||
| 65c9e2a651 | |||
| 83d43d0cfe | |||
| c6a9c1231b | |||
| 3263b963e6 | |||
| 70cb91a827 | |||
| edd6c4d487 | |||
| d606021c34 | |||
| 575d0eabfb | |||
| 1c271365ab | |||
| d5251141ce | |||
| 59e4be9752 | |||
| 73d0bcb874 | |||
| 04192d04a2 | |||
| e5a1734ce9 | |||
| a846e7f818 | |||
| 2430762f9b | |||
| cf1c8c8c69 | |||
| ee244473d6 | |||
| edde7aca60 | |||
| b72f932b9a | |||
| 54b0acde40 | |||
| 0c4dc3c157 | |||
| 9af2710d84 | |||
| fd65b68927 | |||
| 35af983b96 | |||
| 701adf81b6 | |||
| ca79019586 | |||
| 6b2ee7c23a | |||
| cacccf7a3a | |||
| e2cd59b731 | |||
| c665564374 | |||
| 7bf3d9d0ab | |||
| 8c0b1697e6 | |||
| 9a23fd3313 | |||
| d260694a37 | |||
| 34a87ee2f3 | |||
| 386f1d14f0 | |||
| f191c13a27 | |||
| 0c55b841fc | |||
| 3cb5e58b1a | |||
| 2a99584c68 | |||
| 2b03234466 | |||
| 70bec41f6c | |||
| 3d0b149e3b | |||
| 4f830fb117 | |||
| df61db6dbc | |||
| b4a57a0f0c | |||
| 2bf654b352 | |||
| 8c15389d76 | |||
| ffebedae40 | |||
| 72e9937e00 | |||
| 12f5cfac19 | |||
| 7ea0e2756a | |||
| 146adf077e | |||
| 298f76e6a3 | |||
| 8d7c93ba47 | |||
| 63e7fe3d60 | |||
| 58b48fa209 | |||
| ee06b932d3 | |||
| fa80bb2324 | |||
| 906e4adb5a | |||
| 271ef198bf | |||
| 96c476b6a0 | |||
| 20f2c84e9c | |||
| 7f3788e2f0 | |||
| e84a523750 | |||
| d52a01631e | |||
| e170f31e2a | |||
| 75ecdf50a3 | |||
| f6b3f0bfc7 | |||
| 7052795a80 | |||
| eb3f2c0068 | |||
| 23bfcd8e84 | |||
| ac68d1f0a1 | |||
| 78a6906d4a | |||
| d252282e75 | |||
| 2e07865f67 | |||
| 93204d3ba8 | |||
| e80df0aed0 | |||
| e0d5d76639 | |||
| e24e621fff | |||
| 42dc501133 | |||
| 75d49675f3 | |||
| b36c8250a9 | |||
| 2d2f9861a6 | |||
| 3f224a7165 | |||
| 4396bbdb3c | |||
| 384393e9de | |||
| 59c9d24bbf | |||
| 53b37b8f71 | |||
| 6ecc431c23 | |||
| 99f36ffbb4 | |||
| 6525130740 | |||
| 583b46c9c8 | |||
| 6c737b8bf0 | |||
| 8b0b024385 | |||
| a600718846 | |||
| 219f96b8a3 | |||
| c242437535 | |||
| 7269168e89 | |||
| 57feff4e14 | |||
| 26e1b7c7d7 | |||
| 69314ce9e5 | |||
| 9a127d364f | |||
| 0f788ab1be | |||
| 0f5814aa33 | |||
| b0b205040c | |||
| 89d6598d5b | |||
| 26c2975007 | |||
| 77a9539e07 | |||
| 5f794773aa | |||
| 5ba4a085e2 | |||
| 5e07b80854 | |||
| 783e5f7b3e | |||
| cb0b4b5410 | |||
| ce0835e539 | |||
| 59b6dee480 | |||
| b9f11cb636 | |||
| b0ea9e4dea | |||
| bb7a5691a9 | |||
| 5d1b5c13fb | |||
| f0a5cebe23 | |||
| f8cccbad0e | |||
| 9619b8cff4 | |||
| 109fcb987b | |||
| 55f473f4e6 | |||
| f56ba8378b | |||
| 965cd4a9c0 | |||
| a56637b330 | |||
| 226e1cd2b2 | |||
| 633ec8184d | |||
| f6af96723c | |||
| 38445e6326 | |||
| 758734a8c5 | |||
| 0ee35aa27b | |||
| 069a2603ef | |||
| b8531087bd | |||
| 514efb51b0 | |||
| 128748c5cd | |||
| 88c9692b2f | |||
| 123715d878 | |||
| b8309cdf2f | |||
| ce0325207e | |||
| 0d2d1904b1 | |||
| 75c22332d0 | |||
| 0d8c1c9c09 | |||
| 63288829b0 | |||
| f9a0a96eb4 | |||
| ec0a60a248 | |||
| 7840bad5d7 | |||
| 49188aeeda | |||
| 8a8ce85ea0 | |||
| 22eaffba59 | |||
| 42f8b4b48b | |||
| d292245659 | |||
| 9b4668c82c | |||
| c1efc4ad7b | |||
| 807f0aa747 | |||
| d67751d0cc | |||
| 1d099fbfae | |||
| 8f9e50de80 | |||
| 1e3af04dd9 | |||
| 68ad33cb89 | |||
| a06fc473ec | |||
| ea33d7a1e1 | |||
| 7b17060654 | |||
| 49733154a6 | |||
| 5cd5db1f57 | |||
| 38d2458f53 | |||
| 9187b6bae7 | |||
| 73b04b5434 | |||
| 53a67d20a2 | |||
| f3227688b4 | |||
| 8475540103 | |||
| a145dd7097 | |||
| 7a56404e7b | |||
| 975677872f | |||
| a0cae6957e | |||
| cb85a1fa3a | |||
| be532bc196 | |||
| a089ccf5f0 | |||
| 9655337407 | |||
| 6303e62440 | |||
| e7d3323ba7 | |||
| 46b6a32ef0 | |||
| bf46950a09 | |||
| c744699201 | |||
| d4522f54e7 | |||
| 6824527cc4 | |||
| d64a9615bc | |||
| 2af94dff1c | |||
| 9467c56b94 | |||
| 700657ad19 | |||
| 0dbfef5696 | |||
| e9cc859051 | |||
| 1a6dd9fcd2 | |||
| 8a6421ac30 | |||
| 83503cbf20 | |||
| 768a437c02 | |||
| cda706b522 | |||
| e249c6d6ee | |||
| 86adead803 | |||
| e87addd9ae | |||
| bf9d22f10f | |||
| 4a68eb6250 | |||
| 9b65955961 | |||
| 08f2456d5f | |||
| c9dba4b8e0 | |||
| 5fa71c69d8 | |||
| a3713b51ff | |||
| e586af3cf4 | |||
| 643b6f147b | |||
| ccff3e952d | |||
| 19bf88acfa | |||
| 7f9a0dbe16 | |||
| 87e3484aa7 | |||
| 38bbde200e | |||
| d7c5b55846 | |||
| 36494dc8f4 | |||
| 5b249be1f9 | |||
| 33ccb00221 | |||
| 33d2044406 | |||
| ee7cc6d189 | |||
| ead05d0954 | |||
| 6f1a786413 | |||
| 0eb330613b | |||
| 3c22fc4ef6 | |||
| 3f5d21abec | |||
| e43aeb9a1f | |||
| 5fcd6ba21b | |||
| 828acee981 | |||
| 9bc7cfa6ba | |||
| 9fbb704418 | |||
| 8f96238194 | |||
| 01cb166819 | |||
| f78d91e5fc | |||
| 413faa55a0 | |||
| 2166a9b163 | |||
| 81af602dda | |||
| 2dc100fa76 | |||
| 0e462f0d2d | |||
| 3a72e2fb24 | |||
| f2258cb05c | |||
| fa8ca5fd13 | |||
| 61ed31a473 | |||
| c0200b9a68 | |||
| 207f2984d2 | |||
| f5e64936da | |||
| b0ace67712 | |||
| 57f4d3d78a | |||
| 9eb1e1b15e | |||
| 13649a3fbc | |||
| caa73b2128 | |||
| e2f2571dee | |||
| 69f2fecb1c | |||
| 853dcc615d | |||
| 1627c903d8 | |||
| 9f7bab0aca | |||
| 92d23be47d | |||
| 8fff30090b | |||
| a32260660b | |||
| a2a1c6da95 | |||
| 2cbf3c66ef | |||
| 0ff3f16da1 | |||
| 694b209094 | |||
| bbadfbcd2a | |||
| e8c906966e | |||
| a2decd1f2f | |||
| 5cb43c70f7 | |||
| 1e66a7ccdb | |||
| 83b4e67307 | |||
| c62d6fea70 | |||
| 365ab7f73b | |||
| d0b8ef3a6f | |||
| 24a422631d | |||
| d2f77984dc | |||
| 9a811e2c94 | |||
| 80981f5c95 | |||
| 053b21cc1f | |||
| 241b4c0c75 | |||
| ceab6ee15d | |||
| 52e40a1725 | |||
| c20e8b0b49 | |||
| 99f0776f19 | |||
| 8b068e996f | |||
| b03c22e0c9 | |||
| ce8846521e | |||
| 521475da4d | |||
| a3cbcc6451 | |||
| 5a16ec366d | |||
| 0c6cc487d6 | |||
| b77a8bcb95 | |||
| 21e32f1989 | |||
| 779707fabb | |||
| 4c06925ec2 | |||
| f656fc5997 | |||
| f4d02bd9c1 | |||
| c813765430 | |||
| 00275dfc9f | |||
| 74405cc964 | |||
| 644f08a771 | |||
| 1c30470558 | |||
| ac5993a7e7 | |||
| cdfcd5fc85 | |||
| 352e28a138 | |||
| c39b6be22b | |||
| 7850fb62ea | |||
| 22ab2ca2a5 | |||
| b9f91bcd8c | |||
| 748b2bf5ae | |||
| a89c598617 | |||
| 18a594c392 | |||
| 3aa357bcab | |||
| 65c4c1555d | |||
| b356d81410 | |||
| d495ab1ca0 | |||
| 7e8703918b | |||
| 3e80ce39e1 | |||
| 349ed52b7b | |||
| abf10a74b7 | |||
| d1d2763d00 | |||
| a41e2b901d | |||
| 70a5e66d2f | |||
| 1bf6ad314d | |||
| 4fc256de8a | |||
| 47094a2a8a | |||
| 9d7f7ddadf | |||
| fc7e7495a6 | |||
| 516cd70780 | |||
| 1d50657740 | |||
| 98affc6829 | |||
| 987cce9e65 | |||
| 456dffcbfd | |||
| f66e239fe4 | |||
| 4cdc32974a | |||
| 67b10e649e | |||
| 69234cfecc | |||
| c4ec89cf9d | |||
| 3db60baf2d | |||
| 3957ce4898 | |||
| 5b5813fcdc | |||
| a27b0bad86 | |||
| c05525127b | |||
| a303547489 | |||
| b059098c71 | |||
| 35df3bc182 | |||
| a05b55872b | |||
| 018c394c52 | |||
| 49fa04212b | |||
| c4afca906c | |||
| 0dd810ee22 | |||
| b83880b981 | |||
| 24fd96d837 | |||
| 7f60cab47d | |||
| 489970bcdc | |||
| e8cbbedbb2 | |||
| a60ba815d9 | |||
| b4282e5ef1 | |||
| c0f556ab71 | |||
| 17e0f9fb0a | |||
| b4ee8a9daf | |||
| 34cfd5cd78 | |||
| fd527691a8 | |||
| 6be0603215 | |||
| d7a3e67025 | |||
| 562147c267 | |||
| 209781ae3c | |||
| 68ceab6872 | |||
| f72b496a45 | |||
| 9ee00c3522 | |||
| ddbd71e22a | |||
| c3dd043765 | |||
| a158a2aa48 | |||
| 9652b8cf82 | |||
| 29a4f0131e | |||
| b261fc64e2 | |||
| 2e2e3a5e24 | |||
| db791ba3f5 | |||
| 43e470dad1 | |||
| 7455ab72f8 | |||
| 3914bc9ce6 | |||
| 71fe1a5fe3 | |||
| e6b15c88ca | |||
| a1bba344f2 | |||
| 67981b1831 | |||
| 4101adb7ac | |||
| ff87672780 | |||
| 4d36fab72a | |||
| bc057d849a | |||
| f0ebb15dab | |||
| 8b15cd33ee | |||
| 73aa7bd2f5 | |||
| 6061f234a9 | |||
| f3ba001a1d | |||
| 4f293c427c | |||
| 9753f9f55f | |||
| effc7514e7 | |||
| f248b21b1b | |||
| c0a87a85f4 | |||
| 6fb69a3e09 | |||
| a2fb74c375 | |||
| a6fb006ab5 | |||
| 723dc0667e | |||
| c8e15e43e9 | |||
| 8e5982ca9d | |||
| 5b72e0f8cf | |||
| d1467c191d | |||
| 2dcf6c6b71 | |||
| 0af4b71cd1 | |||
| 26d6eadab7 | |||
| ca4a917562 | |||
| 1c04d7db8f | |||
| 6c3936fb9a | |||
| 7fa1133912 | |||
| 28a567f5a9 | |||
| 8fff8acbac | |||
| 6429b33f44 | |||
| 038de02574 | |||
| 5137e491dc | |||
| d930716daf | |||
| f6ee00769a | |||
| 48db841822 | |||
| 06ab1d9203 | |||
| 5432c37d5a | |||
| baaf201f2a | |||
| f1b423e60f | |||
| 6cd3c73f21 | |||
| 37c9a9aafe | |||
| 987b56973c | |||
| a5d2778737 | |||
| b395929a16 | |||
| b6e724e76f | |||
| f2d488dea1 | |||
| 063bd57873 | |||
| 45735c5b3c | |||
| 516f1e1808 | |||
| 66b6078ae2 | |||
| 90559a3fc5 | |||
| 8935d2f123 | |||
| fab2173b31 | |||
| 4480bf382a | |||
| 2230fea0b6 | |||
| 37aa840e89 | |||
| 1bcd7c40bd | |||
| 5309149f75 | |||
| f4b61e92f6 | |||
| 93177f7bf0 | |||
| ea61bdf1a0 | |||
| 60f49c097a | |||
| 6e5191f6b6 | |||
| 1a2a5a44bd | |||
| af8d6e6549 | |||
| aab1610d40 | |||
| d871105fa8 | |||
| 7e479aa9ee | |||
| 384b227e7b | |||
| 20dfe1dd7f | |||
| d8ca588e17 | |||
| d46ed4ec00 | |||
| a644b34154 | |||
| cf9b29705f | |||
| b5e13cd68f | |||
| b05b91c692 | |||
| 22e3552a9d | |||
| 5c42068bb3 | |||
| 1e925a85ca | |||
| e2b2339b89 | |||
| c253bc3165 | |||
| df9522d8a8 | |||
| 458cd04c13 | |||
| 256a3a51da | |||
| 5a73757cdb | |||
| f02663532d | |||
| 6193b9b640 | |||
| 75f90ee424 | |||
| ee3d00c391 | |||
| 4e72674bf3 | |||
| 938725fff0 | |||
| bd60c7b95d | |||
| cfd7788c0b | |||
| 2d9722e92b | |||
| 2b85d6c225 | |||
| 0940cbbeb9 | |||
| c8fa10cace | |||
| 6668d8697a | |||
| 887fc60cce | |||
| be9d1e0b3b | |||
| 2e1d0df1ed | |||
| c923ea9bc4 | |||
| 763250e04d | |||
| 35f4243315 | |||
| fcba75c2ba | |||
| b718b95aab | |||
| 25ce82d5b3 | |||
| c502ff73fe | |||
| f521dddaed | |||
| e4e75a94f5 | |||
| 42ee237691 | |||
| 0ebc4decbb | |||
| 80993ea47a | |||
| b0a0b7ebe7 | |||
| 19510cdec7 | |||
| 3d956db500 | |||
| 983a03d5f8 | |||
| d69d57afa7 | |||
| 22ce03fd94 | |||
| 704a178abb | |||
| 14ce8025ca | |||
| 0d55346fbb | |||
| dbf3a0681a | |||
| ac5fbb5ef3 | |||
| 71fdf845a7 | |||
| e8da5ec916 | |||
| e087f434a3 | |||
| b86f54b54a | |||
| 4e64708b3d | |||
| 2fab389930 | |||
| 8ccdd5b7cf | |||
| 9268ef36ab | |||
| 5ac2346862 | |||
| eb5cc3da9b | |||
| e91e447db7 | |||
| 8201e2bfab | |||
| 2d7b9273cf | |||
| a5bd1474d5 | |||
| 1409d7c4bd | |||
| 85855da946 | |||
| 256d52152c | |||
| 19e1a8feb4 | |||
| 28327ee9aa | |||
| b1012256f2 | |||
| dd8612227f | |||
| fee41fb616 | |||
| 5c6e967b1f | |||
| 7ae5a56948 | |||
| 6e3e0dcd73 | |||
| f89d38bc2d | |||
| 3f23f20ca8 | |||
| 6d62f84dae | |||
| 949aa98a8f | |||
| 5600499c2f | |||
| 27ada645ca | |||
| 78ae3690fa | |||
| 6d56ef2d52 | |||
| 2a0d046df3 | |||
| 4f7a972aac | |||
| 38149c472e | |||
| 27770485f8 | |||
| 11e17262b7 | |||
| 9cbd681174 | |||
| e109894f37 | |||
| 9b29a7a700 | |||
| 6e1fc27528 | |||
| e758b0a144 | |||
| 461f1900f2 | |||
| 2587d4b8e6 | |||
| 2a9d2a966a | |||
| 3036a53667 | |||
| aeb8b921e0 | |||
| 69ef54bcd9 | |||
| 2a9d22c895 | |||
| 900adae5d9 | |||
| 7d5bb09b88 | |||
| 4c03903045 | |||
| ac22ff3bda | |||
| 7b11f761b3 | |||
| 4ebd2d3f7e | |||
| 125c9f207f | |||
| ccc4fb8512 | |||
| 3fe243d346 | |||
| 92eab67a49 | |||
| efcaaa524e | |||
| f652120347 | |||
| 463c89e540 | |||
| d6cc9bd7cb | |||
| 3b00a79eac |
@@ -1,50 +1,164 @@
|
||||
Overview of Changes in GTK+ 3.12.1 to 3.12.2
|
||||
Overview of Changes in GTK+ 3.13.1 to 3.13.2
|
||||
============================================
|
||||
|
||||
* Bug fixes:
|
||||
495105 Open recent file keyboard shortcuts do not work correctly
|
||||
686170 gdk/win32: VK_SNAPSHOT maps to GDK_Print
|
||||
726592 W32: problems with CSDed windows
|
||||
727487 Color picker check marks not cleared properly
|
||||
728093 Add missing transfer annotation to gtk_box_get_center_widget
|
||||
728140 Illegal parameter passed to g_variant_new in gtk_application...
|
||||
728183 Drag and drop (GdkFrameClock) does not work for hidden widgets
|
||||
728272 make broadway backend build on OpenBSD
|
||||
728284 Graphics artifact when scrolling with hover-selection
|
||||
728526 weird black border appear when dragging file
|
||||
728745 win32: add more clipboard data checks to avoid crash
|
||||
728806 W32: Check- and radio-buttons have a selection rectangle on ac...
|
||||
728807 W32: Checkbutton focus rectangle becomes almost white on prelight
|
||||
728808 W32: Checkboxes on modelbuttons are drawn like buttons themselves
|
||||
728810 W32: Modelbuttons look like buttons
|
||||
728992 GtkLockButton crash if clicked and permission is NULL
|
||||
* Interactive debugging support. The GtkInspector
|
||||
window can be triggered with the Ctrl-Shift-I
|
||||
or Ctrl-Shift-D keyboard shortcuts, or via the
|
||||
GTK_DEBUG environment variable.
|
||||
|
||||
* Gesture support has landed. New classes include
|
||||
GtkGestureLongPress, GtkGestureMultiPress, GtkGestureSwipe,
|
||||
GtkGesturePan, GtkGestureRotate, GtkGestureZoom. Many GTK+
|
||||
widgets already use gestures internally. Gestures also
|
||||
show up in GtkInspector.
|
||||
The gesture-related APIs are still subject to change.
|
||||
|
||||
* GTK+ widgets can now draw outside their allocation,
|
||||
by setting a clip with gtk_widget_set_clip().
|
||||
The clip-related APIs are still subject to change.
|
||||
|
||||
* GtkStack has added a few more transition types
|
||||
|
||||
* GtkProgressBar is now narrower
|
||||
|
||||
* CSS
|
||||
- Support outline-radius in CSS
|
||||
- Implement 'unset' and 'all'
|
||||
- Support -gtk-icontheme
|
||||
- Support -gtk-icon-source
|
||||
- Add -gtk-icon-transform, supporting the 2D
|
||||
parts of CSS transforms
|
||||
- Support -gtk-icon-style
|
||||
|
||||
* Theme
|
||||
- Use outlines to render focus rings
|
||||
- Use icons to render spinners, expanders and arrows
|
||||
- GtkIconTheme can force symbolic or regular
|
||||
icon variants
|
||||
- GtkIconTheme will automatically load rtl
|
||||
icon variants
|
||||
|
||||
* Win32:
|
||||
- Theme improvements
|
||||
|
||||
* Wayland:
|
||||
- Update to the latest xdg-shell protocol
|
||||
|
||||
* Deprecations:
|
||||
GdkColor
|
||||
GtkMisc
|
||||
GtkArrow
|
||||
focus-line-width style property
|
||||
GtkNumerableIcon
|
||||
GtkButton::x/yalign
|
||||
gtk_widget_reparent
|
||||
gtk_widget_region_intersect
|
||||
gtk_container_set_reallocate_redraws
|
||||
|
||||
* Bugs fixed:
|
||||
525206 Remove superfluous non-NULL tests for the GtkScrolledWindow scrollbars
|
||||
614717 gtk_text_buffer_create_tag fails to return error on duplicate tag
|
||||
636695 GdkColor should be deprecated
|
||||
645966 gtk-demo leaks a GtkSizeGroup
|
||||
698396 GtkTreeStore crashes when reordering 0 elements
|
||||
708037 Allow live updates on widgets implementing GtkColorChooser
|
||||
720330 Gtk-CRITICAL **: gtk_entry_completion_set_model: assertion 'GTK_IS_E...
|
||||
721069 gtk_win32_embed_widget_show infinite recursion
|
||||
726676 More GtkStack transition counterparts of OVER_UP_DOWN
|
||||
727147 Search bar is too narrow
|
||||
727994 Gtk Popover closes on click
|
||||
728135 gtk_widget_set_visible's nothing-changed-check
|
||||
728284 [treeview] Graphics artifact when scrolling with hover-selection
|
||||
729346 W32: App-notification has no theme, shows up transparent
|
||||
729353 W32: horizontal-buttons get "selected" background when focused
|
||||
729451 Removing accels with application_set_accels_for_action
|
||||
729670 cairo surface leaked for each cursor created from pixmap
|
||||
729461 Introspection issue with GtkApplication
|
||||
729473 FileChooser: typos in gtk_file_chooser_set_local_only ()
|
||||
729475 FileChooser: typo in gtk_set_create_folders()
|
||||
729496 Crash with latest gtk+ from master in gtk_combo_box_get_preferred_width
|
||||
729564 Deprecate GtkArrow
|
||||
729594 Don't stretch switches in Widget Factory
|
||||
729598 Populate page 2 of the Widget Factory
|
||||
729607 GtkAboutDialog: gtk aborts when trying to show an about dialog
|
||||
729670 cairo surface leaked for each cursor created from pixmap
|
||||
729817 GtkCellLayout: allow finding attributes at runtime
|
||||
729834 gdk: missing (nullable) annotations on return values
|
||||
729915 Popopver does not follow relative widget to find action groups
|
||||
729983 gdk: assorted introspection and documentation syntax fixes
|
||||
730007 GtkInspector: add a setting to disable C-S-i
|
||||
730008 make gtk_set_interactive_debugging available for apps
|
||||
730035 GtkFileFilter contains refs to GtkRecentFilter which are probably typos
|
||||
730043 Add an alternative to Ctrl-Shift-I
|
||||
730095 Add a private call API to export internals to modules
|
||||
730142 placessidebar: use proper canonicalization when checking if home
|
||||
730183 RFC: silence harmless critical
|
||||
730306 Gtk+ >= 3.0 fails to load modules from settings.ini files
|
||||
730526 Fix the edit-clear icons in RTL
|
||||
730353 Horizontal and vertical scrolling
|
||||
700030 GdkEventSequence not accessible from introspected bindings
|
||||
641836 Capture/bubble event handling
|
||||
119906 Add event when Double Click timeout expires
|
||||
|
||||
* Translation updates:
|
||||
Belarusian
|
||||
German
|
||||
Indonesian
|
||||
Japanese
|
||||
Hebrew
|
||||
Russian
|
||||
Slovenian
|
||||
Spanish
|
||||
Spanish
|
||||
|
||||
|
||||
|
||||
Overview of Changes in GTK+ 3.12.0 to 3.12.1
|
||||
Overview of Changes in GTK+ 3.12.0 to 3.13.1
|
||||
============================================
|
||||
|
||||
* Bug fixes:
|
||||
* GtkListBox can now do multi-selection
|
||||
|
||||
* GtkSwitch has a way to delay state changes
|
||||
|
||||
* GtkMenuButton is using a popover for menu models by default
|
||||
|
||||
* GtkPopover can have horizontal sections
|
||||
|
||||
* GtkFileChooser received some design improvements
|
||||
|
||||
* GtkBuilder
|
||||
- Supports property binding
|
||||
- Supports dialog actions
|
||||
|
||||
* Client-side decorations
|
||||
- The requirement for _GTK_FRAME_EXTENTS has been dropped
|
||||
to avoid 'double headers' with most window managers
|
||||
- Drawing of DND highlights around the entire window works
|
||||
|
||||
* Windows backend:
|
||||
- *Many* theme improvements
|
||||
- Add popover theming
|
||||
- Enable introspection
|
||||
|
||||
* Wayland backend
|
||||
- Updates for xdg_shell protocol changes
|
||||
- Touch support
|
||||
|
||||
* Broadway backend
|
||||
- Now builds on OpenBSD
|
||||
|
||||
* Bugs fixed:
|
||||
495105 Open recent file keyboard shortcuts do not work correctly
|
||||
654417 Add <binding> element to GtkBuilder syntax
|
||||
686170 gdk/win32: VK_SNAPSHOT maps to GDK_Print
|
||||
712752 GtkClipboard: add _get_default and _get_primary
|
||||
722058 GtkTreeModelFilter bug
|
||||
722211 improve the file chooser design
|
||||
722817 Add gobject-introspection for GdkWin32
|
||||
723963 Use popover for the fallback app menu in the headerbar
|
||||
725648 Switches should always indicate the current state
|
||||
726179 Trivial Fix: size-allocate signal has missing documentation
|
||||
726271 Items not highlighted while mouse-hovered
|
||||
726298 gtk-font-name isn't correctly handled on Windows
|
||||
726475 After looking at Asielriot solitare, I get rendering glitches...
|
||||
726475 After looking at Aisleriot solitare, I get rendering glitches...
|
||||
726592 W32: problems with CSDed windows
|
||||
726859 Assertion/crash if gtk_radio_menu_item_set_group() is called twice
|
||||
726870 all: Name more idles and timeouts
|
||||
726871 treeview: Lower the duration of validation iterations
|
||||
726996 Label-for/Labelled-by AtkRelations missing for containers in ...
|
||||
726996 Label-for/Labelled-by AtkRelations missing for containers in t...
|
||||
727009 redefinition of GtkPrinterCloudprint: cloudprint fails to build
|
||||
727022 W32: Both inc- and dec-buttons on GtkSpinbutton are "inc"
|
||||
727035 W32: Combobox button is drawn with two arrows
|
||||
@@ -56,24 +170,47 @@ Overview of Changes in GTK+ 3.12.0 to 3.12.1
|
||||
727210 W32: Prelight doesn't apply to check/radio marks
|
||||
727211 W32: Selection background color applies to check/radio marks
|
||||
727213 W32: Notebook widget is not styled correctly
|
||||
727244 W32: Items selected in listbox have correct background color,...
|
||||
727244 W32: Items selected in listbox have correct background color, ...
|
||||
727245 W32: No .dim-label style
|
||||
727313 a11y: do not use deprecated a11y functions.
|
||||
727322 docs: Remove '\' escape character from literals
|
||||
727391 W32: scrollbar sliders have no "active" and "insensitive" styles
|
||||
727410 W32: tooltips are not themed
|
||||
727414 Redundant text in titlebar
|
||||
727487 Color picker check marks not cleared properly
|
||||
727643 Segfault in gtk-3.12.0
|
||||
727662 [PATCH] GtkVolumeButton displays "missing image" icons
|
||||
727973 W32: focused button is visibly smaller
|
||||
728023 Warning when passing NULL window to inhibit
|
||||
727644 SEGV in gtk_window_propagate_key_event()
|
||||
727662 GtkVolumeButton displays "missing image" icons
|
||||
727908 Various GtkTextView improvements (doc, unit tests)
|
||||
727973 W32: focused button is visibly smaller
|
||||
728023 Warning when passing NULL window to inhibit
|
||||
728054 entry: consider ascent and descent when requesting height
|
||||
728073 Allow defining an invisible resize area for GtkPaned's handle
|
||||
728140 Illegal parameter passed to g_variant_new in gtk_application_im...
|
||||
728165 gtk_target_list_new argument should be (allow-none)
|
||||
728183 Drag and drop (GdkFrameClock) does not work for hidden widgets
|
||||
728272 make broadway backend build on OpenBSD
|
||||
728426 Implement the wl_touch interface
|
||||
728745 win32: add more clipboard data checks to avoid crash
|
||||
728806 W32: Check- and radio-buttons have a selection rectangle on act...
|
||||
728807 W32: Checkbutton focus rectangle becomes almost white on prelight
|
||||
728808 W32: Checkboxes on modelbuttons are drawn like buttons themselves
|
||||
728810 W32: Modelbuttons look like buttons
|
||||
728846 GtkDialog: Support adding action widgets in ui files
|
||||
728992 GtkLockButton crash if clicked and permission is NULL
|
||||
729013 Use OUTPUT_SCALE instead of xft-dpi on wayland
|
||||
729095 redraw problems when resizing popovers
|
||||
729097 size allocation problem in popovers
|
||||
|
||||
* Translation updates:
|
||||
Basque
|
||||
Catalan
|
||||
German
|
||||
Greek
|
||||
Hebrew
|
||||
Russian
|
||||
Slovenian
|
||||
|
||||
|
||||
Overview of Changes in GTK+ 3.11.9 to 3.12.0
|
||||
============================================
|
||||
|
||||
@@ -18,10 +18,8 @@ EXTRA_DIST += \
|
||||
gtk3-demo.vcxproj.filters \
|
||||
gtk3-demo-application.vcxproj \
|
||||
gtk3-demo-application.vcxproj.filters \
|
||||
gtka11y.vcxproj \
|
||||
gtka11y.vcxproj.filters \
|
||||
gtka11y.vcxprojin \
|
||||
gtka11y.vcxproj.filtersin \
|
||||
gtk-inspector.vcxproj \
|
||||
gtk-inspector.vcxproj.filters \
|
||||
gailutil.vcxproj \
|
||||
gailutil.vcxproj.filters \
|
||||
install.vcxproj \
|
||||
|
||||
@@ -12,6 +12,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gdk", "gdk.vcxproj", "{FC5A
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gtka11y", "gtka11y.vcxproj", "{F756B0DB-40A1-4E9F-BE1F-8F02CB86EA46}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gtk-inspector", "gtk-inspector.vcxproj", "{FC5AADB5-95CD-4BF0-BA8B-0C16FE7073FD}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gtk", "gtk.vcxproj", "{FC5AADB5-95CD-4BF0-BA8B-0C16FE7073F5}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gtk3-demo", "gtk3-demo.vcxproj", "{FC5AADB5-95CD-4BF0-BA8B-0C16FE7073FC}"
|
||||
@@ -122,6 +124,22 @@ Global
|
||||
{F756B0DB-40A1-4E9F-BE1F-8F02CB86EA46}.Release_Broadway|Win32.Build.0 = Release|Win32
|
||||
{F756B0DB-40A1-4E9F-BE1F-8F02CB86EA46}.Release_Broadway|x64.ActiveCfg = Release|x64
|
||||
{F756B0DB-40A1-4E9F-BE1F-8F02CB86EA46}.Release_Broadway|x64.Build.0 = Release|x64
|
||||
{FC5AADB5-95CD-4BF0-BA8B-0C16FE7073FD}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{FC5AADB5-95CD-4BF0-BA8B-0C16FE7073FD}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{FC5AADB5-95CD-4BF0-BA8B-0C16FE7073FD}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{FC5AADB5-95CD-4BF0-BA8B-0C16FE7073FD}.Debug|x64.Build.0 = Debug|x64
|
||||
{FC5AADB5-95CD-4BF0-BA8B-0C16FE7073FD}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{FC5AADB5-95CD-4BF0-BA8B-0C16FE7073FD}.Release|Win32.Build.0 = Release|Win32
|
||||
{FC5AADB5-95CD-4BF0-BA8B-0C16FE7073FD}.Release|x64.ActiveCfg = Release|x64
|
||||
{FC5AADB5-95CD-4BF0-BA8B-0C16FE7073FD}.Release|x64.Build.0 = Release|x64
|
||||
{FC5AADB5-95CD-4BF0-BA8B-0C16FE7073FD}.Debug_Broadway|Win32.ActiveCfg = Debug|Win32
|
||||
{FC5AADB5-95CD-4BF0-BA8B-0C16FE7073FD}.Debug_Broadway|Win32.Build.0 = Debug|Win32
|
||||
{FC5AADB5-95CD-4BF0-BA8B-0C16FE7073FD}.Debug_Broadway|x64.ActiveCfg = Debug|x64
|
||||
{FC5AADB5-95CD-4BF0-BA8B-0C16FE7073FD}.Debug_Broadway|x64.Build.0 = Debug|x64
|
||||
{FC5AADB5-95CD-4BF0-BA8B-0C16FE7073FD}.Release_Broadway|Win32.ActiveCfg = Release|Win32
|
||||
{FC5AADB5-95CD-4BF0-BA8B-0C16FE7073FD}.Release_Broadway|Win32.Build.0 = Release|Win32
|
||||
{FC5AADB5-95CD-4BF0-BA8B-0C16FE7073FD}.Release_Broadway|x64.ActiveCfg = Release|x64
|
||||
{FC5AADB5-95CD-4BF0-BA8B-0C16FE7073FD}.Release_Broadway|x64.Build.0 = Release|x64
|
||||
{FC5AADB5-95CD-4BF0-BA8B-0C16FE7073F5}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{FC5AADB5-95CD-4BF0-BA8B-0C16FE7073F5}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{FC5AADB5-95CD-4BF0-BA8B-0C16FE7073F5}.Debug|x64.ActiveCfg = Debug|x64
|
||||
|
||||
@@ -19,8 +19,8 @@
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{F756B0DB-40A1-4E9F-BE1F-8F02CB86EA46}</ProjectGuid>
|
||||
<RootNamespace>gtka11y</RootNamespace>
|
||||
<ProjectGuid>{FC5AADB5-95CD-4BF0-BA8B-0C16FE7073FD}</ProjectGuid>
|
||||
<RootNamespace>gtkinspector</RootNamespace>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
@@ -69,8 +69,8 @@
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<AdditionalIncludeDirectories>..\..\..\gtk;..\..\..\gdk;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>_DEBUG;G_ENABLE_DEBUG;$(GtkDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>..\..\..\gtk;..\..\..\gdk;..\..\..\gdk\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<MinimalRebuild>true</MinimalRebuild>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||
@@ -80,11 +80,22 @@
|
||||
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
|
||||
</ClCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<ClCompile>
|
||||
<AdditionalIncludeDirectories>..\..\..\gtk;..\..\..\gdk;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>$(GtkDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||
<PrecompiledHeader>
|
||||
</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
</ClCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<AdditionalIncludeDirectories>..\..\..\gtk;..\..\..\gdk;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>_DEBUG;G_ENABLE_DEBUG;$(GtkDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>..\..\..\gtk;..\..\..\gdk;..\..\..\gdk\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<MinimalRebuild>true</MinimalRebuild>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||
@@ -94,24 +105,10 @@
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
</ClCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<ClCompile>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<PreprocessorDefinitions>$(GtkDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>..\..\..\gtk;..\..\..\gdk;..\..\..\gdk\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<PrecompiledHeader>
|
||||
</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
</ClCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<ClCompile>
|
||||
<AdditionalIncludeDirectories>..\..\..\gtk;..\..\..\gdk;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>$(GtkDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>..\..\..\gtk;..\..\..\gdk;..\..\..\gdk\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||
<PrecompiledHeader>
|
||||
</PrecompiledHeader>
|
||||
@@ -120,7 +117,25 @@
|
||||
</ClCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
#include "gtka11y.vs10.sourcefiles"
|
||||
<ClCompile Include="..\..\..\gtk\inspector\actions.c" />
|
||||
<ClCompile Include="..\..\..\gtk\inspector\button-path.c" />
|
||||
<ClCompile Include="..\..\..\gtk\inspector\classes-list.c" />
|
||||
<ClCompile Include="..\..\..\gtk\inspector\css-editor.c" />
|
||||
<ClCompile Include="..\..\..\gtk\inspector\data-list.c" />
|
||||
<ClCompile Include="..\..\..\gtk\inspector\general.c" />
|
||||
<ClCompile Include="..\..\..\gtk\inspector\init.c" />
|
||||
<ClCompile Include="..\..\..\gtk\inspector\inspect-button.c" />
|
||||
<ClCompile Include="..\..\..\gtk\inspector\object-hierarchy.c" />
|
||||
<ClCompile Include="..\..\..\gtk\inspector\prop-list.c" />
|
||||
<ClCompile Include="..\..\..\gtk\inspector\property-cell-renderer.c" />
|
||||
<ClCompile Include="..\..\..\gtk\inspector\python-hooks.c" />
|
||||
<ClCompile Include="..\..\..\gtk\inspector\python-shell.c" />
|
||||
<ClCompile Include="..\..\..\gtk\inspector\resource-list.c" />
|
||||
<ClCompile Include="..\..\..\gtk\inspector\resources.c" />
|
||||
<ClCompile Include="..\..\..\gtk\inspector\signals-list.c" />
|
||||
<ClCompile Include="..\..\..\gtk\inspector\visual.c" />
|
||||
<ClCompile Include="..\..\..\gtk\inspector\widget-tree.c" />
|
||||
<ClCompile Include="..\..\..\gtk\inspector\window.c" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="gtk-prebuild.vcxproj">
|
||||
@@ -0,0 +1,38 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<Filter Include="Header Files">
|
||||
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
||||
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Resource Files">
|
||||
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
|
||||
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Source Files">
|
||||
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
||||
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\..\..\gtk\inspector\actions.c"><Filter>Source Files</Filter></ClCompile>
|
||||
<ClCompile Include="..\..\..\gtk\inspector\button-path.c"><Filter>Source Files</Filter></ClCompile>
|
||||
<ClCompile Include="..\..\..\gtk\inspector\classes-list.c"><Filter>Source Files</Filter></ClCompile>
|
||||
<ClCompile Include="..\..\..\gtk\inspector\css-editor.c"><Filter>Source Files</Filter></ClCompile>
|
||||
<ClCompile Include="..\..\..\gtk\inspector\data-list.c"><Filter>Source Files</Filter></ClCompile>
|
||||
<ClCompile Include="..\..\..\gtk\inspector\general.c"><Filter>Source Files</Filter></ClCompile>
|
||||
<ClCompile Include="..\..\..\gtk\inspector\init.c"><Filter>Source Files</Filter></ClCompile>
|
||||
<ClCompile Include="..\..\..\gtk\inspector\inspect-button.c"><Filter>Source Files</Filter></ClCompile>
|
||||
<ClCompile Include="..\..\..\gtk\inspector\object-hierarchy.c"><Filter>Source Files</Filter></ClCompile>
|
||||
<ClCompile Include="..\..\..\gtk\inspector\prop-list.c"><Filter>Source Files</Filter></ClCompile>
|
||||
<ClCompile Include="..\..\..\gtk\inspector\property-cell-renderer.c"><Filter>Source Files</Filter></ClCompile>
|
||||
<ClCompile Include="..\..\..\gtk\inspector\python-hooks.c"><Filter>Source Files</Filter></ClCompile>
|
||||
<ClCompile Include="..\..\..\gtk\inspector\python-shell.c"><Filter>Source Files</Filter></ClCompile>
|
||||
<ClCompile Include="..\..\..\gtk\inspector\resource-list.c"><Filter>Source Files</Filter></ClCompile>
|
||||
<ClCompile Include="..\..\..\gtk\inspector\resources.c"><Filter>Source Files</Filter></ClCompile>
|
||||
<ClCompile Include="..\..\..\gtk\inspector\signals-list.c"><Filter>Source Files</Filter></ClCompile>
|
||||
<ClCompile Include="..\..\..\gtk\inspector\visual.c"><Filter>Source Files</Filter></ClCompile>
|
||||
<ClCompile Include="..\..\..\gtk\inspector\widget-tree.c"><Filter>Source Files</Filter></ClCompile>
|
||||
<ClCompile Include="..\..\..\gtk\inspector\window.c"><Filter>Source Files</Filter></ClCompile>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
@@ -772,6 +772,8 @@ copy ..\..\..\gtk\org.gtk.Settings.FileChooser.gschema.xml $(CopyDir)\share\glib
|
||||
|
||||
copy ..\..\..\gtk\org.gtk.Settings.ColorChooser.gschema.xml $(CopyDir)\share\glib-2.0\schemas
|
||||
|
||||
copy ..\..\..\gtk\org.gtk.Settings.Debug.gschema.xml $(CopyDir)\share\glib-2.0\schemas
|
||||
|
||||
copy ..\..\..\demos\gtk-demo\org.gtk.Demo.gschema.xml $(CopyDir)\share\glib-2.0\schemas
|
||||
|
||||
|
||||
|
||||
@@ -204,6 +204,10 @@
|
||||
<Project>{f756b0db-40a1-4e9f-be1f-8f02cb86ea46}</Project>
|
||||
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="gtk-inspector.vcxproj">
|
||||
<Project>{fc5aadb5-95cd-4bf0-ba8b-0c16fe7073fd}</Project>
|
||||
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
|
||||
@@ -1,20 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<Filter Include="Sources">
|
||||
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
||||
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Headers">
|
||||
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
||||
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Resource Files">
|
||||
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
|
||||
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
#include "gtka11y.vs10.sourcefiles.filters"
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
@@ -11,8 +11,7 @@ EXTRA_DIST += \
|
||||
gtk.vcprojin \
|
||||
gtk3-demo.vcproj \
|
||||
gtk3-demo-application.vcproj \
|
||||
gtka11y.vcproj \
|
||||
gtka11y.vcprojin \
|
||||
gtk-inspector.vcproj \
|
||||
gailutil.vcproj \
|
||||
install.vcproj \
|
||||
broadwayd.vcproj \
|
||||
|
||||
@@ -28,10 +28,16 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gtka11y", "gtka11y.vcproj",
|
||||
{FC5AADB5-95CD-4BF0-BA8B-0C16FE7073FF} = {FC5AADB5-95CD-4BF0-BA8B-0C16FE7073FF}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gtk-inspector", "gtk-inspector.vcproj", "{FC5AADB5-95CD-4BF0-BA8B-0C16FE7073FD}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{FC5AADB5-95CD-4BF0-BA8B-0C16FE7073FF} = {FC5AADB5-95CD-4BF0-BA8B-0C16FE7073FF}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gtk", "gtk.vcproj", "{FC5AADB5-95CD-4BF0-BA8B-0C16FE7073F5}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{FC5AADB5-95CD-4BF0-BA8B-0C16FE7073F7} = {FC5AADB5-95CD-4BF0-BA8B-0C16FE7073F7}
|
||||
{F756B0DB-40A1-4E9F-BE1F-8F02CB86EA46} = {F756B0DB-40A1-4E9F-BE1F-8F02CB86EA46}
|
||||
{FC5AADB5-95CD-4BF0-BA8B-0C16FE7073FD} = {FC5AADB5-95CD-4BF0-BA8B-0C16FE7073FD}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gtk3-demo", "gtk3-demo.vcproj", "{FC5AADB5-95CD-4BF0-BA8B-0C16FE7073FC}"
|
||||
@@ -138,6 +144,22 @@ Global
|
||||
{FC5AADB5-95CD-4BF0-BA8B-0C16FE7073F7}.Release_Broadway|Win32.Build.0 = Release_Broadway|Win32
|
||||
{FC5AADB5-95CD-4BF0-BA8B-0C16FE7073F7}.Release_Broadway|x64.ActiveCfg = Release_Broadway|x64
|
||||
{FC5AADB5-95CD-4BF0-BA8B-0C16FE7073F7}.Release_Broadway|x64.Build.0 = Release_Broadway|x64
|
||||
{FC5AADB5-95CD-4BF0-BA8B-0C16FE7073FD}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{FC5AADB5-95CD-4BF0-BA8B-0C16FE7073FD}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{FC5AADB5-95CD-4BF0-BA8B-0C16FE7073FD}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{FC5AADB5-95CD-4BF0-BA8B-0C16FE7073FD}.Debug|x64.Build.0 = Debug|x64
|
||||
{FC5AADB5-95CD-4BF0-BA8B-0C16FE7073FD}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{FC5AADB5-95CD-4BF0-BA8B-0C16FE7073FD}.Release|Win32.Build.0 = Release|Win32
|
||||
{FC5AADB5-95CD-4BF0-BA8B-0C16FE7073FD}.Release|x64.ActiveCfg = Release|x64
|
||||
{FC5AADB5-95CD-4BF0-BA8B-0C16FE7073FD}.Release|x64.Build.0 = Release|x64
|
||||
{FC5AADB5-95CD-4BF0-BA8B-0C16FE7073FD}.Debug_Broadway|Win32.ActiveCfg = Debug|Win32
|
||||
{FC5AADB5-95CD-4BF0-BA8B-0C16FE7073FD}.Debug_Broadway|Win32.Build.0 = Debug|Win32
|
||||
{FC5AADB5-95CD-4BF0-BA8B-0C16FE7073FD}.Debug_Broadway|x64.ActiveCfg = Debug|x64
|
||||
{FC5AADB5-95CD-4BF0-BA8B-0C16FE7073FD}.Debug_Broadway|x64.Build.0 = Debug|x64
|
||||
{FC5AADB5-95CD-4BF0-BA8B-0C16FE7073FD}.Release_Broadway|Win32.ActiveCfg = Release|Win32
|
||||
{FC5AADB5-95CD-4BF0-BA8B-0C16FE7073FD}.Release_Broadway|Win32.Build.0 = Release|Win32
|
||||
{FC5AADB5-95CD-4BF0-BA8B-0C16FE7073FD}.Release_Broadway|x64.ActiveCfg = Release|x64
|
||||
{FC5AADB5-95CD-4BF0-BA8B-0C16FE7073FD}.Release_Broadway|x64.Build.0 = Release|x64
|
||||
{FC5AADB5-95CD-4BF0-BA8B-0C16FE7073F5}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{FC5AADB5-95CD-4BF0-BA8B-0C16FE7073F5}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{FC5AADB5-95CD-4BF0-BA8B-0C16FE7073F5}.Debug|x64.ActiveCfg = Debug|x64
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
<?xml version="1.0" encoding="big5"?>
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="9.00"
|
||||
Name="gtka11y"
|
||||
ProjectGUID="{F756B0DB-40A1-4E9F-BE1F-8F02CB86EA46}"
|
||||
RootNamespace="gtka11y"
|
||||
Name="gtk-inspector"
|
||||
ProjectGUID="{FC5AADB5-95CD-4BF0-BA8B-0C16FE7073FD}"
|
||||
RootNamespace="gtkinspector"
|
||||
Keyword="Win32Proj"
|
||||
TargetFrameworkVersion="196613"
|
||||
TargetFrameworkVersion="0"
|
||||
>
|
||||
<Platforms>
|
||||
<Platform
|
||||
@@ -31,8 +31,8 @@
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="..\..\..\gdk;..\..\..\gtk"
|
||||
PreprocessorDefinitions="_DEBUG;G_ENABLE_DEBUG;$(GtkDefines)"
|
||||
AdditionalIncludeDirectories="..\..\..\gtk;..\..\..\gdk;..\..\..\gdk\win32"
|
||||
MinimalRebuild="true"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="3"
|
||||
@@ -41,28 +41,6 @@
|
||||
DebugInformationFormat="4"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Debug|x64"
|
||||
InheritedPropertySheets=".\gtk-build-defines.vsprops"
|
||||
ConfigurationType="4"
|
||||
CharacterSet="2"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
PreprocessorDefinitions="_DEBUG;G_ENABLE_DEBUG;$(GtkDefines)"
|
||||
AdditionalIncludeDirectories="..\..\..\gtk;..\..\..\gdk;..\..\..\gdk\win32"
|
||||
MinimalRebuild="true"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="3"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
DebugInformationFormat="3"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release|Win32"
|
||||
InheritedPropertySheets=".\gtk-build-defines.vsprops"
|
||||
@@ -75,12 +53,31 @@
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="2"
|
||||
EnableIntrinsicFunctions="true"
|
||||
AdditionalIncludeDirectories="..\..\..\gdk;..\..\..\gtk"
|
||||
PreprocessorDefinitions="$(GtkDefines)"
|
||||
AdditionalIncludeDirectories="..\..\..\gtk;..\..\..\gdk;..\..\..\gdk\win32"
|
||||
RuntimeLibrary="2"
|
||||
EnableFunctionLevelLinking="true"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
DebugInformationFormat="3"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Debug|x64"
|
||||
InheritedPropertySheets=".\gtk-build-defines.vsprops"
|
||||
ConfigurationType="4"
|
||||
CharacterSet="2"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="..\..\..\gdk;..\..\..\gtk"
|
||||
PreprocessorDefinitions="_DEBUG;G_ENABLE_DEBUG;$(GtkDefines)"
|
||||
MinimalRebuild="true"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="3"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
DebugInformationFormat="3"
|
||||
@@ -98,8 +95,8 @@
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories="..\..\..\gdk;..\..\..\gtk"
|
||||
PreprocessorDefinitions="$(GtkDefines)"
|
||||
AdditionalIncludeDirectories="..\..\..\gtk;..\..\..\gdk;..\..\..\gdk\win32"
|
||||
RuntimeLibrary="2"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
@@ -111,25 +108,41 @@
|
||||
</References>
|
||||
<Files>
|
||||
<Filter
|
||||
Name="Sources"
|
||||
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
|
||||
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
|
||||
>
|
||||
#include "gtka11y.sourcefiles"
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Headers"
|
||||
Name="Header Files"
|
||||
Filter="h;hpp;hxx;hm;inl;inc;xsd"
|
||||
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
|
||||
>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Resource Files"
|
||||
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
|
||||
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
|
||||
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
|
||||
>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Source Files"
|
||||
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
|
||||
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
|
||||
>
|
||||
<File RelativePath="..\..\..\gtk\inspector\actions.c" />
|
||||
<File RelativePath="..\..\..\gtk\inspector\button-path.c" />
|
||||
<File RelativePath="..\..\..\gtk\inspector\classes-list.c" />
|
||||
<File RelativePath="..\..\..\gtk\inspector\css-editor.c" />
|
||||
<File RelativePath="..\..\..\gtk\inspector\data-list.c" />
|
||||
<File RelativePath="..\..\..\gtk\inspector\general.c" />
|
||||
<File RelativePath="..\..\..\gtk\inspector\init.c" />
|
||||
<File RelativePath="..\..\..\gtk\inspector\inspect-button.c" />
|
||||
<File RelativePath="..\..\..\gtk\inspector\object-hierarchy.c" />
|
||||
<File RelativePath="..\..\..\gtk\inspector\prop-list.c" />
|
||||
<File RelativePath="..\..\..\gtk\inspector\property-cell-renderer.c" />
|
||||
<File RelativePath="..\..\..\gtk\inspector\python-hooks.c" />
|
||||
<File RelativePath="..\..\..\gtk\inspector\python-shell.c" />
|
||||
<File RelativePath="..\..\..\gtk\inspector\resource-list.c" />
|
||||
<File RelativePath="..\..\..\gtk\inspector\resources.c" />
|
||||
<File RelativePath="..\..\..\gtk\inspector\signals-list.c" />
|
||||
<File RelativePath="..\..\..\gtk\inspector\visual.c" />
|
||||
<File RelativePath="..\..\..\gtk\inspector\widget-tree.c" />
|
||||
<File RelativePath="..\..\..\gtk\inspector\window.c" />
|
||||
</Filter>
|
||||
</Files>
|
||||
<Globals>
|
||||
</Globals>
|
||||
</VisualStudioProject>
|
||||
@@ -404,6 +404,7 @@ copy ..\..\..\demos\gtk-demo\data\256x256\gtk3-demo.png $(CopyDir)\share\icons\h
|
||||
mkdir $(CopyDir)\share\glib-2.0\schemas

|
||||
copy ..\..\..\gtk\org.gtk.Settings.FileChooser.gschema.xml $(CopyDir)\share\glib-2.0\schemas

|
||||
copy ..\..\..\gtk\org.gtk.Settings.ColorChooser.gschema.xml $(CopyDir)\share\glib-2.0\schemas

|
||||
copy ..\..\..\gtk\org.gtk.Settings.Debug.gschema.xml $(CopyDir)\share\glib-2.0\schemas

|
||||
copy ..\..\..\demos\gtk-demo\org.gtk.Demo.gschema.xml $(CopyDir)\share\glib-2.0\schemas

|
||||
|
||||
echo "Compiling gsettings XML Files..."

|
||||
|
||||
+5
-7
@@ -9,9 +9,9 @@
|
||||
# set GTK_BINARY_AGE and GTK_INTERFACE_AGE to 0.
|
||||
|
||||
m4_define([gtk_major_version], [3])
|
||||
m4_define([gtk_minor_version], [12])
|
||||
m4_define([gtk_micro_version], [2])
|
||||
m4_define([gtk_interface_age], [2])
|
||||
m4_define([gtk_minor_version], [13])
|
||||
m4_define([gtk_micro_version], [1])
|
||||
m4_define([gtk_interface_age], [0])
|
||||
m4_define([gtk_binary_age],
|
||||
[m4_eval(100 * gtk_minor_version + gtk_micro_version)])
|
||||
m4_define([gtk_version],
|
||||
@@ -43,7 +43,7 @@ m4_define([gtk_binary_version], [3.0.0])
|
||||
# required versions of other packages
|
||||
m4_define([glib_required_version], [2.39.5])
|
||||
m4_define([pango_required_version], [1.32.4])
|
||||
m4_define([atk_required_version], [2.7.5])
|
||||
m4_define([atk_required_version], [2.12.0])
|
||||
m4_define([cairo_required_version], [1.12.0])
|
||||
m4_define([gdk_pixbuf_required_version], [2.27.1])
|
||||
m4_define([introspection_required_version], [1.39.0])
|
||||
@@ -1886,12 +1886,10 @@ gtk/Makefile
|
||||
gtk/makefile.msc
|
||||
gtk/gtkversion.h
|
||||
gtk/gtk-win32.rc
|
||||
gtk/a11y/Makefile
|
||||
gtk/inspector/Makefile
|
||||
gtk/native/Makefile
|
||||
libgail-util/Makefile
|
||||
modules/Makefile
|
||||
modules/engines/Makefile
|
||||
modules/engines/pixbuf/Makefile
|
||||
modules/input/Makefile
|
||||
modules/printbackends/Makefile
|
||||
modules/printbackends/cups/Makefile
|
||||
|
||||
@@ -24,6 +24,7 @@ demos = \
|
||||
entry_completion.c \
|
||||
event_axes.c \
|
||||
expander.c \
|
||||
gestures.c \
|
||||
headerbar.c \
|
||||
hypertext.c \
|
||||
iconview.c \
|
||||
|
||||
@@ -42,7 +42,7 @@ response_cb (GtkDialog *dialog,
|
||||
gtk_widget_override_background_color (da, 0, &color);
|
||||
}
|
||||
|
||||
gtk_widget_hide (GTK_WIDGET (dialog));
|
||||
gtk_widget_destroy (GTK_WIDGET (dialog));
|
||||
}
|
||||
|
||||
static void
|
||||
|
||||
@@ -94,6 +94,7 @@
|
||||
<file>event_axes.c</file>
|
||||
<file>expander.c</file>
|
||||
<file>flowbox.c</file>
|
||||
<file>gestures.c</file>
|
||||
<file>headerbar.c</file>
|
||||
<file>hypertext.c</file>
|
||||
<file>iconview.c</file>
|
||||
|
||||
@@ -0,0 +1,199 @@
|
||||
/* Gestures
|
||||
*
|
||||
* Perform gestures on touchscreens and other input devices. This
|
||||
* demo reacts to long presses and swipes from all devices, plus
|
||||
* multi-touch rotate and zoom gestures.
|
||||
*/
|
||||
|
||||
#include <gtk/gtk.h>
|
||||
|
||||
static GtkWidget *window = NULL;
|
||||
static GtkGesture *rotate = NULL;
|
||||
static GtkGesture *zoom = NULL;
|
||||
static gdouble swipe_x = 0;
|
||||
static gdouble swipe_y = 0;
|
||||
static gboolean long_pressed = FALSE;
|
||||
|
||||
static void
|
||||
swipe_gesture_swept (GtkGestureSwipe *gesture,
|
||||
gdouble velocity_x,
|
||||
gdouble velocity_y,
|
||||
GtkWidget *widget)
|
||||
{
|
||||
swipe_x = velocity_x / 10;
|
||||
swipe_y = velocity_y / 10;
|
||||
gtk_widget_queue_draw (widget);
|
||||
}
|
||||
|
||||
static void
|
||||
long_press_gesture_pressed (GtkGestureLongPress *gesture,
|
||||
gdouble x,
|
||||
gdouble y,
|
||||
GtkWidget *widget)
|
||||
{
|
||||
long_pressed = TRUE;
|
||||
gtk_widget_queue_draw (widget);
|
||||
}
|
||||
|
||||
static void
|
||||
long_press_gesture_end (GtkGesture *gesture,
|
||||
GdkEventSequence *sequence,
|
||||
GtkWidget *widget)
|
||||
{
|
||||
long_pressed = FALSE;
|
||||
gtk_widget_queue_draw (widget);
|
||||
}
|
||||
|
||||
static void
|
||||
rotation_angle_changed (GtkGestureRotate *gesture,
|
||||
gdouble angle,
|
||||
gdouble delta,
|
||||
GtkWidget *widget)
|
||||
{
|
||||
gtk_widget_queue_draw (widget);
|
||||
}
|
||||
|
||||
static void
|
||||
zoom_scale_changed (GtkGestureZoom *gesture,
|
||||
gdouble scale,
|
||||
GtkWidget *widget)
|
||||
{
|
||||
gtk_widget_queue_draw (widget);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
drawing_area_draw (GtkWidget *widget,
|
||||
cairo_t *cr)
|
||||
{
|
||||
GtkAllocation allocation;
|
||||
|
||||
gtk_widget_get_allocation (widget, &allocation);
|
||||
|
||||
if (swipe_x != 0 || swipe_y != 0)
|
||||
{
|
||||
cairo_save (cr);
|
||||
cairo_set_line_width (cr, 6);
|
||||
cairo_move_to (cr, allocation.width / 2,
|
||||
allocation.height / 2);
|
||||
cairo_rel_line_to (cr, swipe_x, swipe_y);
|
||||
cairo_set_source_rgba (cr, 1, 0, 0, 0.5);
|
||||
cairo_stroke (cr);
|
||||
cairo_restore (cr);
|
||||
}
|
||||
|
||||
if (gtk_gesture_is_recognized (rotate) || gtk_gesture_is_recognized (zoom))
|
||||
{
|
||||
cairo_pattern_t *pat;
|
||||
cairo_matrix_t matrix;
|
||||
gdouble angle, scale;
|
||||
|
||||
cairo_matrix_init_translate (&matrix,
|
||||
allocation.width / 2,
|
||||
allocation.height / 2);
|
||||
|
||||
cairo_save (cr);
|
||||
|
||||
angle = gtk_gesture_rotate_get_angle_delta (GTK_GESTURE_ROTATE (rotate));
|
||||
cairo_matrix_rotate (&matrix, angle);
|
||||
|
||||
scale = gtk_gesture_zoom_get_scale_delta (GTK_GESTURE_ZOOM (zoom));
|
||||
cairo_matrix_scale (&matrix, scale, scale);
|
||||
|
||||
cairo_set_matrix (cr, &matrix);
|
||||
cairo_rectangle (cr, -100, -100, 200, 200);
|
||||
|
||||
pat = cairo_pattern_create_linear (-100, 0, 200, 0);
|
||||
cairo_pattern_add_color_stop_rgb (pat, 0, 0, 0, 1);
|
||||
cairo_pattern_add_color_stop_rgb (pat, 1, 1, 0, 0);
|
||||
cairo_set_source (cr, pat);
|
||||
cairo_fill (cr);
|
||||
|
||||
cairo_restore (cr);
|
||||
|
||||
cairo_pattern_destroy (pat);
|
||||
}
|
||||
|
||||
if (long_pressed)
|
||||
{
|
||||
cairo_save (cr);
|
||||
cairo_arc (cr, allocation.width / 2,
|
||||
allocation.height / 2,
|
||||
50, 0, 2 * G_PI);
|
||||
|
||||
cairo_set_source_rgba (cr, 0, 1, 0, 0.5);
|
||||
cairo_stroke (cr);
|
||||
|
||||
cairo_restore (cr);
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
GtkWidget *
|
||||
do_gestures (GtkWidget *do_widget)
|
||||
{
|
||||
GtkWidget *drawing_area;
|
||||
GtkGesture *gesture;
|
||||
|
||||
if (!window)
|
||||
{
|
||||
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
|
||||
gtk_window_set_default_size (GTK_WINDOW (window), 400, 400);
|
||||
gtk_window_set_title (GTK_WINDOW (window), "Gestures demo");
|
||||
g_signal_connect (window, "destroy",
|
||||
G_CALLBACK (gtk_widget_destroyed), &window);
|
||||
|
||||
drawing_area = gtk_drawing_area_new ();
|
||||
gtk_container_add (GTK_CONTAINER (window), drawing_area);
|
||||
gtk_widget_add_events (drawing_area,
|
||||
GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK |
|
||||
GDK_POINTER_MOTION_MASK | GDK_TOUCH_MASK);
|
||||
|
||||
g_signal_connect (drawing_area, "draw",
|
||||
G_CALLBACK (drawing_area_draw), NULL);
|
||||
|
||||
/* Swipe */
|
||||
gesture = gtk_gesture_swipe_new (drawing_area);
|
||||
g_signal_connect (gesture, "swipe",
|
||||
G_CALLBACK (swipe_gesture_swept), drawing_area);
|
||||
gtk_event_controller_set_propagation_phase (GTK_EVENT_CONTROLLER (gesture),
|
||||
GTK_PHASE_BUBBLE);
|
||||
g_object_weak_ref (G_OBJECT (drawing_area), (GWeakNotify) g_object_unref, gesture);
|
||||
|
||||
/* Long press */
|
||||
gesture = gtk_gesture_long_press_new (drawing_area);
|
||||
g_signal_connect (gesture, "pressed",
|
||||
G_CALLBACK (long_press_gesture_pressed), drawing_area);
|
||||
g_signal_connect (gesture, "end",
|
||||
G_CALLBACK (long_press_gesture_end), drawing_area);
|
||||
gtk_event_controller_set_propagation_phase (GTK_EVENT_CONTROLLER (gesture),
|
||||
GTK_PHASE_BUBBLE);
|
||||
g_object_weak_ref (G_OBJECT (drawing_area), (GWeakNotify) g_object_unref, gesture);
|
||||
|
||||
/* Rotate */
|
||||
rotate = gesture = gtk_gesture_rotate_new (drawing_area);
|
||||
g_signal_connect (gesture, "angle-changed",
|
||||
G_CALLBACK (rotation_angle_changed), drawing_area);
|
||||
gtk_event_controller_set_propagation_phase (GTK_EVENT_CONTROLLER (gesture),
|
||||
GTK_PHASE_BUBBLE);
|
||||
g_object_weak_ref (G_OBJECT (drawing_area), (GWeakNotify) g_object_unref, gesture);
|
||||
|
||||
/* Zoom */
|
||||
zoom = gesture = gtk_gesture_zoom_new (drawing_area);
|
||||
g_signal_connect (gesture, "scale-changed",
|
||||
G_CALLBACK (zoom_scale_changed), drawing_area);
|
||||
gtk_event_controller_set_propagation_phase (GTK_EVENT_CONTROLLER (gesture),
|
||||
GTK_PHASE_BUBBLE);
|
||||
g_object_weak_ref (G_OBJECT (drawing_area), (GWeakNotify) g_object_unref, gesture);
|
||||
}
|
||||
|
||||
if (!gtk_widget_get_visible (window))
|
||||
gtk_widget_show_all (window);
|
||||
else
|
||||
{
|
||||
gtk_widget_destroy (window);
|
||||
window = NULL;
|
||||
}
|
||||
|
||||
return window;
|
||||
}
|
||||
@@ -44,10 +44,10 @@ do_headerbar (GtkWidget *do_widget)
|
||||
box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
|
||||
gtk_style_context_add_class (gtk_widget_get_style_context (box), "linked");
|
||||
button = gtk_button_new ();
|
||||
gtk_container_add (GTK_CONTAINER (button), gtk_arrow_new (GTK_ARROW_LEFT, GTK_SHADOW_NONE));
|
||||
gtk_container_add (GTK_CONTAINER (button), gtk_image_new_from_icon_name ("pan-start-symbolic", GTK_ICON_SIZE_BUTTON));
|
||||
gtk_container_add (GTK_CONTAINER (box), button);
|
||||
button = gtk_button_new ();
|
||||
gtk_container_add (GTK_CONTAINER (button), gtk_arrow_new (GTK_ARROW_RIGHT, GTK_SHADOW_NONE));
|
||||
gtk_container_add (GTK_CONTAINER (button), gtk_image_new_from_icon_name ("pan-end-symbolic", GTK_ICON_SIZE_BUTTON));
|
||||
gtk_container_add (GTK_CONTAINER (box), button);
|
||||
|
||||
gtk_header_bar_pack_start (GTK_HEADER_BAR (header), box);
|
||||
|
||||
@@ -52,20 +52,24 @@ set_cell_color (GtkCellLayout *cell_layout,
|
||||
gpointer data)
|
||||
{
|
||||
gchar *text;
|
||||
GdkColor color;
|
||||
GdkRGBA color;
|
||||
guint32 pixel = 0;
|
||||
GdkPixbuf *pixbuf;
|
||||
|
||||
gtk_tree_model_get (tree_model, iter, COL_TEXT, &text, -1);
|
||||
if (gdk_color_parse (text, &color))
|
||||
if (!text)
|
||||
return;
|
||||
|
||||
if (gdk_rgba_parse (&color, text))
|
||||
pixel =
|
||||
(color.red >> 8) << 24 |
|
||||
(color.green >> 8) << 16 |
|
||||
(color.blue >> 8) << 8;
|
||||
((gint)(color.red * 255)) << 24 |
|
||||
((gint)(color.green * 255)) << 16 |
|
||||
((gint)(color.blue * 255)) << 8 |
|
||||
((gint)(color.alpha * 255));
|
||||
|
||||
g_free (text);
|
||||
|
||||
pixbuf = gdk_pixbuf_new (GDK_COLORSPACE_RGB, FALSE, 8, 24, 24);
|
||||
pixbuf = gdk_pixbuf_new (GDK_COLORSPACE_RGB, TRUE, 8, 24, 24);
|
||||
gdk_pixbuf_fill (pixbuf, pixel);
|
||||
|
||||
g_object_set (cell, "pixbuf", pixbuf, NULL);
|
||||
|
||||
@@ -1015,8 +1015,6 @@ main (int argc, char **argv)
|
||||
}
|
||||
/* -- End of hack -- */
|
||||
|
||||
gtk_init (&argc, &argv);
|
||||
|
||||
app = gtk_application_new ("org.gtk.Demo", 0);
|
||||
|
||||
g_action_map_add_action_entries (G_ACTION_MAP (app),
|
||||
|
||||
@@ -128,8 +128,8 @@
|
||||
<object class="GtkTextView" id="info-textview">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="margin_left">20</property>
|
||||
<property name="margin_right">20</property>
|
||||
<property name="margin_start">20</property>
|
||||
<property name="margin_end">20</property>
|
||||
<property name="margin_top">20</property>
|
||||
<property name="margin_bottom">20</property>
|
||||
<property name="pixels_above_lines">2</property>
|
||||
@@ -165,9 +165,8 @@
|
||||
<object class="GtkTextView" id="source-textview">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="margin_left">20</property>
|
||||
<property name="margin_start">20</property>
|
||||
<property name="margin_end">20</property>
|
||||
<property name="margin_right">20</property>
|
||||
<property name="margin_top">20</property>
|
||||
<property name="margin_bottom">20</property>
|
||||
<property name="editable">False</property>
|
||||
|
||||
@@ -120,6 +120,7 @@ do_sizegroup (GtkWidget *do_widget)
|
||||
gtk_container_set_border_width (GTK_CONTAINER (vbox), 5);
|
||||
|
||||
size_group = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL);
|
||||
g_object_set_data_full (G_OBJECT (window), "size-group", size_group, g_object_unref);
|
||||
|
||||
/* Create one frame holding color options */
|
||||
frame = gtk_frame_new ("Color Options");
|
||||
|
||||
@@ -656,6 +656,9 @@ load_icon_items (GtkToolPalette *palette)
|
||||
GtkWidget *group = gtk_tool_item_group_new (context);
|
||||
gtk_container_add (GTK_CONTAINER (palette), group);
|
||||
|
||||
if (g_strcmp0 (context, "Animations") == 0)
|
||||
continue;
|
||||
|
||||
g_message ("Got context '%s'", context);
|
||||
icon_names = gtk_icon_theme_list_icons (icon_theme, context);
|
||||
icon_names = g_list_sort (icon_names, (GCompareFunc) strcmp);
|
||||
@@ -665,6 +668,9 @@ load_icon_items (GtkToolPalette *palette)
|
||||
GtkToolItem *item;
|
||||
gchar *id = ll->data;
|
||||
|
||||
if (g_strcmp0 (id, "emblem-desktop") == 0)
|
||||
continue;
|
||||
|
||||
g_message ("Got id '%s'", id);
|
||||
|
||||
item = gtk_tool_button_new (NULL, NULL);
|
||||
|
||||
@@ -189,9 +189,10 @@ do_transparent (GtkWidget *do_widget)
|
||||
GtkWidget *view;
|
||||
GtkWidget *sw;
|
||||
GtkWidget *overlay;
|
||||
GtkWidget *align;
|
||||
GtkWidget *entry;
|
||||
GdkRGBA transparent = {0, 0, 0, 0};
|
||||
GtkCssProvider *provider;
|
||||
gchar *css;
|
||||
|
||||
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
|
||||
gtk_window_set_screen (GTK_WINDOW (window),
|
||||
@@ -219,17 +220,20 @@ do_transparent (GtkWidget *do_widget)
|
||||
|
||||
gtk_widget_override_background_color (overlay, 0, &transparent);
|
||||
|
||||
align = gtk_alignment_new (0.0, 0.0, 0.0, 0.0);
|
||||
gtk_alignment_set_padding (GTK_ALIGNMENT (align),
|
||||
0, SHADOW_OFFSET_Y, 0, SHADOW_OFFSET_X);
|
||||
g_signal_connect (align, "draw", G_CALLBACK (draw_callback), NULL);
|
||||
|
||||
entry = gtk_entry_new ();
|
||||
gtk_container_add (GTK_CONTAINER (align), entry);
|
||||
provider = gtk_css_provider_new ();
|
||||
css = g_strdup_printf ("* { border-width: 0px %dpx %dpx 0px; }",
|
||||
SHADOW_OFFSET_X, SHADOW_OFFSET_Y);
|
||||
gtk_css_provider_load_from_data (provider, css, -1, NULL);
|
||||
g_free (css);
|
||||
gtk_style_context_add_provider (gtk_widget_get_style_context (entry),
|
||||
GTK_STYLE_PROVIDER (provider),
|
||||
GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
|
||||
g_signal_connect (entry, "draw", G_CALLBACK (draw_callback), NULL);
|
||||
gtk_overlay_add_overlay (GTK_OVERLAY (overlay), entry);
|
||||
gtk_widget_set_halign (entry, GTK_ALIGN_CENTER);
|
||||
gtk_widget_set_valign (entry, GTK_ALIGN_START);
|
||||
|
||||
gtk_overlay_add_overlay (GTK_OVERLAY (overlay), align);
|
||||
gtk_widget_set_halign (align, GTK_ALIGN_CENTER);
|
||||
gtk_widget_set_valign (align, GTK_ALIGN_START);
|
||||
|
||||
gtk_widget_show_all (overlay);
|
||||
}
|
||||
|
||||
@@ -23,18 +23,6 @@
|
||||
#include "config.h"
|
||||
#include <gtk/gtk.h>
|
||||
|
||||
static void
|
||||
activate_toggle (GSimpleAction *action,
|
||||
GVariant *parameter,
|
||||
gpointer user_data)
|
||||
{
|
||||
GVariant *state;
|
||||
|
||||
state = g_action_get_state (G_ACTION (action));
|
||||
g_action_change_state (G_ACTION (action), g_variant_new_boolean (!g_variant_get_boolean (state)));
|
||||
g_variant_unref (state);
|
||||
}
|
||||
|
||||
static void
|
||||
change_theme_state (GSimpleAction *action,
|
||||
GVariant *state,
|
||||
@@ -50,6 +38,44 @@ change_theme_state (GSimpleAction *action,
|
||||
g_simple_action_set_state (action, state);
|
||||
}
|
||||
|
||||
static void
|
||||
change_toolbar_state (GSimpleAction *action,
|
||||
GVariant *state,
|
||||
gpointer user_data)
|
||||
{
|
||||
GtkWidget *window = user_data;
|
||||
GtkWidget *toolbar;
|
||||
|
||||
toolbar = GTK_WIDGET (g_object_get_data (G_OBJECT (window), "toolbar"));
|
||||
gtk_widget_set_visible (toolbar, g_variant_get_boolean (state));
|
||||
|
||||
g_simple_action_set_state (action, state);
|
||||
}
|
||||
|
||||
static void
|
||||
activate_search (GSimpleAction *action,
|
||||
GVariant *parameter,
|
||||
gpointer user_data)
|
||||
{
|
||||
GtkWidget *window = user_data;
|
||||
GtkWidget *searchbar;
|
||||
|
||||
searchbar = GTK_WIDGET (g_object_get_data (G_OBJECT (window), "searchbar"));
|
||||
gtk_search_bar_set_search_mode (GTK_SEARCH_BAR (searchbar), TRUE);
|
||||
}
|
||||
|
||||
static void
|
||||
activate_delete (GSimpleAction *action,
|
||||
GVariant *parameter,
|
||||
gpointer user_data)
|
||||
{
|
||||
GtkWidget *window = user_data;
|
||||
GtkWidget *infobar;
|
||||
|
||||
infobar = GTK_WIDGET (g_object_get_data (G_OBJECT (window), "infobar"));
|
||||
gtk_widget_show (infobar);
|
||||
}
|
||||
|
||||
static void
|
||||
activate_about (GSimpleAction *action,
|
||||
GVariant *parameter,
|
||||
@@ -220,6 +246,29 @@ startup (GApplication *app)
|
||||
g_object_unref (builder);
|
||||
}
|
||||
|
||||
static void
|
||||
update_header (GtkListBoxRow *row,
|
||||
GtkListBoxRow *before,
|
||||
gpointer data)
|
||||
{
|
||||
if (before != NULL &&
|
||||
gtk_list_box_row_get_header (row) == NULL)
|
||||
{
|
||||
GtkWidget *separator;
|
||||
|
||||
separator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL);
|
||||
gtk_widget_show (separator);
|
||||
gtk_list_box_row_set_header (row, separator);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
info_bar_response (GtkWidget *infobar, gint response_id)
|
||||
{
|
||||
if (response_id == GTK_RESPONSE_CLOSE)
|
||||
gtk_widget_hide (infobar);
|
||||
}
|
||||
|
||||
static void
|
||||
activate (GApplication *app)
|
||||
{
|
||||
@@ -228,7 +277,10 @@ activate (GApplication *app)
|
||||
GtkWidget *widget;
|
||||
GtkAdjustment *adj;
|
||||
static GActionEntry win_entries[] = {
|
||||
{ "dark", activate_toggle, NULL, "false", change_theme_state }
|
||||
{ "dark", NULL, NULL, "false", change_theme_state },
|
||||
{ "toolbar", NULL, NULL, "true", change_toolbar_state },
|
||||
{ "search", activate_search, NULL, NULL, NULL },
|
||||
{ "delete", activate_delete, NULL, NULL, NULL }
|
||||
};
|
||||
|
||||
builder = gtk_builder_new ();
|
||||
@@ -255,6 +307,19 @@ activate (GApplication *app)
|
||||
adj = (GtkAdjustment *) gtk_builder_get_object (builder, "adjustment2");
|
||||
g_signal_connect (adj, "value-changed", G_CALLBACK (spin_value_changed), widget);
|
||||
|
||||
widget = (GtkWidget *)gtk_builder_get_object (builder, "listbox");
|
||||
gtk_list_box_set_header_func (GTK_LIST_BOX (widget), update_header, NULL, NULL);
|
||||
|
||||
widget = (GtkWidget *)gtk_builder_get_object (builder, "toolbar");
|
||||
g_object_set_data (G_OBJECT (window), "toolbar", widget);
|
||||
|
||||
widget = (GtkWidget *)gtk_builder_get_object (builder, "searchbar");
|
||||
g_object_set_data (G_OBJECT (window), "searchbar", widget);
|
||||
|
||||
widget = (GtkWidget *)gtk_builder_get_object (builder, "infobar");
|
||||
g_signal_connect (widget, "response", G_CALLBACK (info_bar_response), NULL);
|
||||
g_object_set_data (G_OBJECT (window), "infobar", widget);
|
||||
|
||||
gtk_widget_show_all (GTK_WIDGET (window));
|
||||
|
||||
g_object_unref (builder);
|
||||
@@ -267,9 +332,16 @@ main (int argc, char *argv[])
|
||||
static GActionEntry app_entries[] = {
|
||||
{ "about", activate_about, NULL, NULL, NULL },
|
||||
{ "quit", activate_quit, NULL, NULL, NULL },
|
||||
};
|
||||
|
||||
gtk_init (&argc, &argv);
|
||||
{ "main", NULL, "s", "'steak'", NULL },
|
||||
{ "wine", NULL, NULL, "false", NULL },
|
||||
{ "beer", NULL, NULL, "false", NULL },
|
||||
{ "water", NULL, NULL, "true", NULL },
|
||||
{ "dessert", NULL, "s", "'bars'", NULL },
|
||||
{ "pay", NULL, "s", NULL, NULL }
|
||||
|
||||
};
|
||||
gint status;
|
||||
|
||||
app = gtk_application_new ("org.gtk.WidgetFactory", 0);
|
||||
|
||||
@@ -280,7 +352,8 @@ main (int argc, char *argv[])
|
||||
g_signal_connect (app, "startup", G_CALLBACK (startup), NULL);
|
||||
g_signal_connect (app, "activate", G_CALLBACK (activate), NULL);
|
||||
|
||||
g_application_run (G_APPLICATION (app), argc, argv);
|
||||
status = g_application_run (G_APPLICATION (app), argc, argv);
|
||||
g_object_unref (app);
|
||||
|
||||
return 0;
|
||||
return status;
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -26,7 +26,6 @@
|
||||
<xi:include href="xml/gdkdevice.xml" />
|
||||
<xi:include href="xml/regions.xml" />
|
||||
<xi:include href="xml/pixbufs.xml" />
|
||||
<xi:include href="xml/colors.xml" />
|
||||
<xi:include href="xml/rgba_colors.xml" />
|
||||
<xi:include href="xml/visuals.xml" />
|
||||
<xi:include href="xml/cursors.xml" />
|
||||
@@ -48,6 +47,11 @@
|
||||
<xi:include href="xml/gdktestutils.xml" />
|
||||
</reference>
|
||||
|
||||
<reference>
|
||||
<title>Deprecated</title>
|
||||
<xi:include href="xml/colors.xml" />
|
||||
</reference>
|
||||
|
||||
<index id="api-index-full">
|
||||
<title>Index of all symbols</title>
|
||||
<xi:include href="xml/api-index-full.xml"><xi:fallback /></xi:include>
|
||||
@@ -84,6 +88,10 @@
|
||||
<title>Index of new symbols in 3.12</title>
|
||||
<xi:include href="xml/api-index-3.12.xml"><xi:fallback /></xi:include>
|
||||
</index>
|
||||
<index id="api-index-3-14" role="3.14">
|
||||
<title>Index of new symbols in 3.14</title>
|
||||
<xi:include href="xml/api-index-3.14.xml"><xi:fallback /></xi:include>
|
||||
</index>
|
||||
|
||||
<xi:include href="xml/annotation-glossary.xml"><xi:fallback /></xi:include>
|
||||
|
||||
|
||||
@@ -58,6 +58,11 @@ GDK_WINDOWING_WAYLAND
|
||||
GDK_VERSION_3_0
|
||||
GDK_VERSION_3_2
|
||||
GDK_VERSION_3_4
|
||||
GDK_VERSION_3_6
|
||||
GDK_VERSION_3_8
|
||||
GDK_VERSION_3_10
|
||||
GDK_VERSION_3_12
|
||||
GDK_VERSION_3_14
|
||||
GDK_VERSION_MIN_REQUIRED
|
||||
GDK_VERSION_MAX_ALLOWED
|
||||
GDK_DISABLE_DEPRECATION_WARNINGS
|
||||
|
||||
@@ -151,10 +151,13 @@ content_files = \
|
||||
tree_widget.sgml \
|
||||
windows.sgml \
|
||||
x11.sgml \
|
||||
gtk3-demo.xml \
|
||||
gtk3-widget-factory.xml \
|
||||
gtk-query-immodules-3.0.xml \
|
||||
gtk-update-icon-cache.xml \
|
||||
gtk-launch.xml \
|
||||
broadwayd.xml \
|
||||
input-handling.xml \
|
||||
visual_index.xml \
|
||||
getting_started.xml \
|
||||
overview.xml
|
||||
@@ -424,7 +427,8 @@ HTML_IMAGES = \
|
||||
$(srcdir)/images/getting-started-app9.png \
|
||||
$(srcdir)/images/getting-started-app10.png \
|
||||
$(srcdir)/images/exampleapp.png \
|
||||
$(srcdir)/images/flow-box.png
|
||||
$(srcdir)/images/flow-box.png \
|
||||
$(srcdir)/images/inspector.png
|
||||
|
||||
# Extra options to supply to gtkdoc-fixref
|
||||
FIXXREF_OPTIONS=--extra-dir=../gdk/html \
|
||||
@@ -446,6 +450,8 @@ man_MANS = \
|
||||
gtk-query-immodules-3.0.1 \
|
||||
gtk-update-icon-cache.1 \
|
||||
gtk-launch.1 \
|
||||
gtk3-demo.1 \
|
||||
gtk3-widget-factory.1 \
|
||||
broadwayd.1
|
||||
|
||||
if ENABLE_MAN
|
||||
|
||||
@@ -25,6 +25,7 @@
|
||||
<xi:include href="resources.sgml" />
|
||||
<xi:include href="xml/question_index.sgml" />
|
||||
<xi:include href="drawing-model.xml" />
|
||||
<xi:include href="input-handling.xml" />
|
||||
</part>
|
||||
|
||||
|
||||
@@ -240,7 +241,6 @@
|
||||
<chapter id="MiscObjects">
|
||||
<title>Miscellaneous</title>
|
||||
<xi:include href="xml/gtkadjustment.xml" />
|
||||
<xi:include href="xml/gtkarrow.xml" />
|
||||
<xi:include href="xml/gtkcalendar.xml" />
|
||||
<xi:include href="xml/gtkdrawingarea.xml" />
|
||||
<xi:include href="xml/gtkeventbox.xml" />
|
||||
@@ -259,7 +259,6 @@
|
||||
<xi:include href="xml/gtkcontainer.xml" />
|
||||
<xi:include href="xml/gtkbin.xml" />
|
||||
<xi:include href="xml/gtkmenushell.xml" />
|
||||
<xi:include href="xml/gtkmisc.xml" />
|
||||
<xi:include href="xml/gtkrange.xml" />
|
||||
<xi:include href="xml/gtkimcontext.xml" />
|
||||
</chapter>
|
||||
@@ -288,6 +287,20 @@
|
||||
<xi:include href="xml/gtkappchooserwidget.xml" />
|
||||
</chapter>
|
||||
|
||||
<chapter id="Gestures">
|
||||
<title>Gestures</title>
|
||||
<xi:include href="xml/gtkeventcontroller.xml" />
|
||||
<xi:include href="xml/gtkgesture.xml" />
|
||||
<xi:include href="xml/gtkgesturesingle.xml" />
|
||||
<xi:include href="xml/gtkgesturedrag.xml" />
|
||||
<xi:include href="xml/gtkgesturelongpress.xml" />
|
||||
<xi:include href="xml/gtkgesturemultipress.xml" />
|
||||
<xi:include href="xml/gtkgesturepan.xml" />
|
||||
<xi:include href="xml/gtkgestureswipe.xml" />
|
||||
<xi:include href="xml/gtkgesturerotate.xml" />
|
||||
<xi:include href="xml/gtkgesturezoom.xml" />
|
||||
</chapter>
|
||||
|
||||
<chapter id="DeprecatedObjects">
|
||||
<title>Deprecated</title>
|
||||
<xi:include href="xml/gtksymboliccolor.xml" />
|
||||
@@ -321,7 +334,11 @@
|
||||
<xi:include href="xml/gtkrecentaction.xml" />
|
||||
<xi:include href="xml/gtkactivatable.xml" />
|
||||
<xi:include href="xml/gtkimagemenuitem.xml" />
|
||||
<xi:include href="xml/gtkmisc.xml" />
|
||||
<xi:include href="xml/gtkstock.xml" />
|
||||
<xi:include href="xml/gtkiconfactory.xml" />
|
||||
<xi:include href="xml/gtknumerableicon.xml" />
|
||||
<xi:include href="xml/gtkarrow.xml" />
|
||||
</chapter>
|
||||
|
||||
</part>
|
||||
@@ -351,8 +368,6 @@
|
||||
<xi:include href="xml/gtkthemingengine.xml" />
|
||||
<xi:include href="xml/gtkwidgetpath.xml" />
|
||||
<xi:include href="xml/gtkicontheme.xml" />
|
||||
<xi:include href="xml/gtkiconfactory.xml" />
|
||||
<xi:include href="xml/gtknumerableicon.xml" />
|
||||
</part>
|
||||
|
||||
<part id="migrating">
|
||||
@@ -378,6 +393,8 @@
|
||||
|
||||
<part>
|
||||
<title>GTK+ Tools</title>
|
||||
<xi:include href="gtk3-demo.xml" />
|
||||
<xi:include href="gtk3-widget-factory.xml" />
|
||||
<xi:include href="gtk-query-immodules-3.0.xml" />
|
||||
<xi:include href="gtk-update-icon-cache.xml" />
|
||||
<xi:include href="gtk-launch.xml" />
|
||||
@@ -434,6 +451,10 @@
|
||||
<title>Index of new symbols in 3.12</title>
|
||||
<xi:include href="xml/api-index-3.12.xml"><xi:fallback /></xi:include>
|
||||
</index>
|
||||
<index id="api-index-3-14" role="3.14">
|
||||
<title>Index of new symbols in 3.14</title>
|
||||
<xi:include href="xml/api-index-3.14.xml"><xi:fallback /></xi:include>
|
||||
</index>
|
||||
|
||||
<xi:include href="xml/annotation-glossary.xml"><xi:fallback /></xi:include>
|
||||
|
||||
|
||||
@@ -0,0 +1,59 @@
|
||||
<?xml version="1.0"?>
|
||||
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
|
||||
]>
|
||||
<refentry id="gtk3-demo">
|
||||
|
||||
<refentryinfo>
|
||||
<title>gtk3-demo</title>
|
||||
<productname>GTK+</productname>
|
||||
<authorgroup>
|
||||
<author>
|
||||
<contrib>Developer</contrib>
|
||||
<firstname>Matthias</firstname>
|
||||
<surname>Clasen</surname>
|
||||
</author>
|
||||
</authorgroup>
|
||||
</refentryinfo>
|
||||
|
||||
<refmeta>
|
||||
<refentrytitle>gtk3-demo</refentrytitle>
|
||||
<manvolnum>1</manvolnum>
|
||||
<refmiscinfo class="manual">User Commands</refmiscinfo>
|
||||
</refmeta>
|
||||
|
||||
<refnamediv>
|
||||
<refname>gtk3-demo</refname>
|
||||
<refpurpose>Demonstrate GTK+ widgets</refpurpose>
|
||||
</refnamediv>
|
||||
|
||||
<refsynopsisdiv>
|
||||
<cmdsynopsis>
|
||||
<command>gtk3-demo</command>
|
||||
<arg choice="opt">--help</arg>
|
||||
</cmdsynopsis>
|
||||
</refsynopsisdiv>
|
||||
|
||||
<refsect1><title>Description</title>
|
||||
<para>
|
||||
<command>gtk3-demo</command> is a collection of examples.
|
||||
Its purpose is to demonstrate many GTK+ widgets in a form
|
||||
that is useful to application developers.
|
||||
</para>
|
||||
<para>
|
||||
The application shows the source code for each example, as well as
|
||||
other used resources, such as ui files and icons.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1><title>Options</title>
|
||||
<para>The following options are understood:</para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><option>-h</option>, <option>--help</option></term>
|
||||
<listitem><para>Show help options</para></listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</refsect1>
|
||||
|
||||
</refentry>
|
||||
@@ -57,6 +57,7 @@ gtk_about_dialog_get_type
|
||||
GtkAccelGroup
|
||||
GtkAccelGroupClass
|
||||
gtk_accel_group_new
|
||||
GtkAccelFlags
|
||||
gtk_accel_group_connect
|
||||
gtk_accel_group_connect_by_path
|
||||
GtkAccelGroupActivate
|
||||
@@ -444,6 +445,7 @@ gtk_button_box_new
|
||||
gtk_button_box_get_layout
|
||||
gtk_button_box_get_child_secondary
|
||||
gtk_button_box_get_child_non_homogeneous
|
||||
GtkButtonBoxStyle
|
||||
gtk_button_box_set_layout
|
||||
gtk_button_box_set_child_secondary
|
||||
gtk_button_box_set_child_non_homogeneous
|
||||
@@ -523,7 +525,13 @@ gtk_list_box_new
|
||||
gtk_list_box_prepend
|
||||
gtk_list_box_insert
|
||||
gtk_list_box_select_row
|
||||
gtk_list_box_unselect_row
|
||||
gtk_list_box_select_all
|
||||
gtk_list_box_unselect_all
|
||||
gtk_list_box_get_selected_row
|
||||
GtkListBoxForeachFunc
|
||||
gtk_list_box_selected_foreach
|
||||
gtk_list_box_get_selected_rows
|
||||
|
||||
gtk_list_box_set_selection_mode
|
||||
gtk_list_box_get_selection_mode
|
||||
@@ -545,6 +553,7 @@ gtk_list_box_drag_unhighlight_row
|
||||
|
||||
gtk_list_box_row_new
|
||||
gtk_list_box_row_changed
|
||||
gtk_list_box_row_is_selected
|
||||
gtk_list_box_row_get_header
|
||||
gtk_list_box_row_get_type
|
||||
gtk_list_box_row_set_header
|
||||
@@ -974,6 +983,7 @@ GTK_CONTAINER_WARN_INVALID_CHILD_PROPERTY_ID
|
||||
gtk_container_add
|
||||
gtk_container_remove
|
||||
gtk_container_add_with_properties
|
||||
GtkResizeMode
|
||||
gtk_container_get_resize_mode
|
||||
gtk_container_set_resize_mode
|
||||
gtk_container_check_resize
|
||||
@@ -2175,6 +2185,7 @@ gtk_link_button_get_type
|
||||
<FILE>gtkmenu</FILE>
|
||||
<TITLE>GtkMenu</TITLE>
|
||||
GtkMenu
|
||||
GtkArrowPlacement
|
||||
gtk_menu_new
|
||||
gtk_menu_new_from_model
|
||||
gtk_menu_set_screen
|
||||
@@ -2252,6 +2263,7 @@ gtk_menu_button_set_menu_model
|
||||
gtk_menu_button_get_menu_model
|
||||
gtk_menu_button_set_use_popover
|
||||
gtk_menu_button_get_use_popover
|
||||
GtkArrowType
|
||||
gtk_menu_button_set_direction
|
||||
gtk_menu_button_get_direction
|
||||
gtk_menu_button_set_align_widget
|
||||
@@ -3108,8 +3120,10 @@ gtk_scrolled_window_get_hadjustment
|
||||
gtk_scrolled_window_get_vadjustment
|
||||
gtk_scrolled_window_get_hscrollbar
|
||||
gtk_scrolled_window_get_vscrollbar
|
||||
GtkPolicyType
|
||||
gtk_scrolled_window_set_policy
|
||||
gtk_scrolled_window_add_with_viewport
|
||||
GtkCornerType
|
||||
gtk_scrolled_window_set_placement
|
||||
gtk_scrolled_window_unset_placement
|
||||
gtk_scrolled_window_set_shadow_type
|
||||
@@ -3466,6 +3480,7 @@ GtkTable
|
||||
gtk_table_new
|
||||
gtk_table_resize
|
||||
gtk_table_get_size
|
||||
GtkAttachOptions
|
||||
gtk_table_attach
|
||||
gtk_table_attach_defaults
|
||||
gtk_table_set_row_spacing
|
||||
@@ -5460,6 +5475,8 @@ gtk_widget_get_allocated_height
|
||||
gtk_widget_get_allocation
|
||||
gtk_widget_set_allocation
|
||||
gtk_widget_get_allocated_baseline
|
||||
gtk_widget_get_clip
|
||||
gtk_widget_set_clip
|
||||
gtk_widget_get_app_paintable
|
||||
gtk_widget_get_can_default
|
||||
gtk_widget_set_can_default
|
||||
@@ -5587,6 +5604,7 @@ gtk_requisition_get_type
|
||||
<TITLE>GtkWindow</TITLE>
|
||||
GtkWindow
|
||||
GtkWindowClass
|
||||
GtkWindowType
|
||||
gtk_window_new
|
||||
gtk_window_set_title
|
||||
gtk_window_set_wmclass
|
||||
@@ -5602,6 +5620,7 @@ gtk_window_set_default_geometry
|
||||
gtk_window_set_geometry_hints
|
||||
gtk_window_set_gravity
|
||||
gtk_window_get_gravity
|
||||
GtkWindowPosition
|
||||
gtk_window_set_position
|
||||
gtk_window_set_transient_for
|
||||
gtk_window_set_attached_to
|
||||
@@ -5703,6 +5722,7 @@ gtk_window_get_application
|
||||
gtk_window_set_application
|
||||
gtk_window_set_has_user_ref_count
|
||||
gtk_window_set_titlebar
|
||||
gtk_window_set_interactive_debugging
|
||||
|
||||
<SUBSECTION Standard>
|
||||
GTK_WINDOW
|
||||
@@ -5930,6 +5950,7 @@ GTK_STYLE_PROPERTY_BORDER_RADIUS
|
||||
GTK_STYLE_PROPERTY_BORDER_STYLE
|
||||
GTK_STYLE_PROPERTY_BORDER_COLOR
|
||||
GTK_STYLE_PROPERTY_BACKGROUND_IMAGE
|
||||
GtkBorderStyle
|
||||
<SUBSECTION>
|
||||
GTK_STYLE_CLASS_BACKGROUND
|
||||
GTK_STYLE_CLASS_BUTTON
|
||||
@@ -6001,6 +6022,7 @@ gtk_style_context_add_provider
|
||||
gtk_style_context_add_provider_for_screen
|
||||
gtk_style_context_get
|
||||
gtk_style_context_get_direction
|
||||
GtkJunctionSides
|
||||
gtk_style_context_get_junction_sides
|
||||
gtk_style_context_get_parent
|
||||
gtk_style_context_get_path
|
||||
@@ -6043,6 +6065,7 @@ gtk_style_context_add_class
|
||||
gtk_style_context_remove_class
|
||||
gtk_style_context_has_class
|
||||
gtk_style_context_list_classes
|
||||
GtkRegionFlags
|
||||
gtk_style_context_add_region
|
||||
gtk_style_context_remove_region
|
||||
gtk_style_context_has_region
|
||||
@@ -6219,6 +6242,7 @@ gtk_gradient_get_type
|
||||
GTK_STYLE_ATTACHED
|
||||
GtkStyle
|
||||
GtkStyleClass
|
||||
GtkExpanderStyle
|
||||
gtk_style_new
|
||||
gtk_style_copy
|
||||
gtk_style_attach
|
||||
@@ -6277,6 +6301,8 @@ GtkRcStyle
|
||||
GtkRcStyleClass
|
||||
GtkRcFlags
|
||||
GtkRcTokenType
|
||||
GtkPathPriorityType
|
||||
GtkPathType
|
||||
gtk_rc_scanner_new
|
||||
gtk_rc_get_style
|
||||
gtk_rc_get_style_by_paths
|
||||
@@ -6311,6 +6337,7 @@ GTK_RC_STYLE_GET_CLASS
|
||||
<SUBSECTION Private>
|
||||
gtk_rc_style_get_type
|
||||
GtkRcContext
|
||||
GTK_PATH_PRIO_MASK
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
@@ -6431,6 +6458,7 @@ gtk_clipboard_get_type
|
||||
<TITLE>Drag and Drop</TITLE>
|
||||
GtkDestDefaults
|
||||
GtkTargetFlags
|
||||
GtkDragResult
|
||||
<SUBSECTION Destination Side>
|
||||
gtk_drag_dest_set
|
||||
gtk_drag_dest_set_proxy
|
||||
@@ -6496,28 +6524,17 @@ gtk_binding_set_add_path
|
||||
<SECTION>
|
||||
<FILE>gtkenums</FILE>
|
||||
<TITLE>Standard Enumerations</TITLE>
|
||||
GtkAccelFlags
|
||||
GtkArrowPlacement
|
||||
GtkArrowType
|
||||
GtkAttachOptions
|
||||
GtkBaselinePosition
|
||||
GtkButtonBoxStyle
|
||||
GtkCornerType
|
||||
GtkDeleteType
|
||||
GtkDirectionType
|
||||
GtkExpanderStyle
|
||||
GtkIMPreeditStyle
|
||||
GtkIMStatusStyle
|
||||
GtkJustification
|
||||
GtkMovementStep
|
||||
GtkOrientation
|
||||
GtkPackType
|
||||
GtkPathPriorityType
|
||||
GtkPathType
|
||||
GtkPolicyType
|
||||
GtkPositionType
|
||||
GtkReliefStyle
|
||||
GtkResizeMode
|
||||
GtkScrollStep
|
||||
GtkScrollType
|
||||
GtkSelectionMode
|
||||
@@ -6525,16 +6542,8 @@ GtkShadowType
|
||||
GtkStateType
|
||||
GtkStateFlags
|
||||
GtkToolbarStyle
|
||||
GtkWindowPosition
|
||||
GtkWindowType
|
||||
GtkSortType
|
||||
GtkDragResult
|
||||
GtkJunctionSides
|
||||
GtkBorderStyle
|
||||
GtkRegionFlags
|
||||
|
||||
<SUBSECTION Private>
|
||||
GTK_PATH_PRIO_MASK
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
@@ -7487,6 +7496,8 @@ GtkSwitchClass
|
||||
gtk_switch_new
|
||||
gtk_switch_set_active
|
||||
gtk_switch_get_active
|
||||
gtk_switch_set_state
|
||||
gtk_switch_get_state
|
||||
|
||||
<SUBSECTION Standard>
|
||||
GTK_TYPE_SWITCH
|
||||
@@ -7882,3 +7893,229 @@ gtk_popover_get_position
|
||||
gtk_popover_set_modal
|
||||
gtk_popover_get_modal
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>gtkeventcontroller</FILE>
|
||||
<TITLE>GtkEventController</TITLE>
|
||||
GtkEventController
|
||||
GtkPropagationPhase
|
||||
gtk_event_controller_get_propagation_phase
|
||||
gtk_event_controller_set_propagation_phase
|
||||
gtk_event_controller_handle_event
|
||||
gtk_event_controller_get_widget
|
||||
gtk_event_controller_reset
|
||||
|
||||
<SUBSECTION Standard>
|
||||
GTK_TYPE_EVENT_CONTROLLER
|
||||
GTK_EVENT_CONTROLLER
|
||||
GTK_EVENT_CONTROLLER_CLASS
|
||||
GTK_IS_EVENT_CONTROLLER
|
||||
GTK_EVENT_CONTROLLER_GET_CLASS
|
||||
|
||||
<SUBSECTION Private>
|
||||
GtkEventControllerPriv
|
||||
gtk_event_controller_get_type
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>gtkgesture</FILE>
|
||||
<TITLE>GtkGesture</TITLE>
|
||||
GtkGesture
|
||||
gtk_gesture_get_device
|
||||
gtk_gesture_get_window
|
||||
gtk_gesture_set_window
|
||||
gtk_gesture_is_active
|
||||
gtk_gesture_is_recognized
|
||||
GtkEventSequenceState
|
||||
gtk_gesture_get_sequence_state
|
||||
gtk_gesture_set_sequence_state
|
||||
gtk_gesture_set_state
|
||||
gtk_gesture_get_sequences
|
||||
gtk_gesture_handles_sequence
|
||||
|
||||
<SUBSECTION>
|
||||
gtk_gesture_get_last_updated_sequence
|
||||
gtk_gesture_get_last_event
|
||||
gtk_gesture_get_point
|
||||
gtk_gesture_get_bounding_box
|
||||
gtk_gesture_get_bounding_box_center
|
||||
|
||||
<SUBSECTION>
|
||||
gtk_gesture_group
|
||||
gtk_gesture_ungroup
|
||||
gtk_gesture_get_group
|
||||
gtk_gesture_is_grouped_with
|
||||
|
||||
<SUBSECTION Standard>
|
||||
GTK_TYPE_GESTURE
|
||||
GTK_GESTURE
|
||||
GTK_GESTURE_CLASS
|
||||
GTK_IS_GESTURE
|
||||
GTK_IS_GESTURE_CLASS
|
||||
GTK_GESTURE_GET_CLASS
|
||||
|
||||
<SUBSECTION Private>
|
||||
gtk_gesture_get_type
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>gtkgesturesingle</FILE>
|
||||
<TITLE>GtkGestureSingle</TITLE>
|
||||
GtkGestureSingle
|
||||
gtk_gesture_single_get_exclusive
|
||||
gtk_gesture_single_set_exclusive
|
||||
gtk_gesture_single_get_touch_only
|
||||
gtk_gesture_single_set_touch_only
|
||||
gtk_gesture_single_get_button
|
||||
gtk_gesture_single_set_button
|
||||
gtk_gesture_single_get_current_button
|
||||
gtk_gesture_single_get_current_sequence
|
||||
|
||||
<SUBSECTION Standard>
|
||||
GTK_TYPE_GESTURE_SINGLE
|
||||
GTK_GESTURE_SINGLE
|
||||
GTK_GESTURE_SINGLE_CLASS
|
||||
GTK_IS_GESTURE_SINGLE
|
||||
GTK_IS_GESTURE_SINGLE_CLASS
|
||||
GTK_GESTURE_SINGLE_GET_CLASS
|
||||
|
||||
<SUBSECTION Private>
|
||||
gtk_gesture_single_get_type
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>gtkgesturedrag</FILE>
|
||||
<TITLE>GtkGestureDrag</TITLE>
|
||||
GtkGestureDrag
|
||||
gtk_gesture_drag_new
|
||||
gtk_gesture_drag_get_start_point
|
||||
gtk_gesture_drag_get_offset
|
||||
|
||||
<SUBSECTION Standard>
|
||||
GTK_TYPE_GESTURE_DRAG
|
||||
GTK_GESTURE_DRAG
|
||||
GTK_GESTURE_DRAG_CLASS
|
||||
GTK_IS_GESTURE_DRAG
|
||||
GTK_IS_GESTURE_DRAG_CLASS
|
||||
GTK_GESTURE_DRAG_GET_CLASS
|
||||
|
||||
<SUBSECTION Private>
|
||||
gtk_gesture_drag_get_type
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>gtkgesturelongpress</FILE>
|
||||
<TITLE>GtkGestureLongPress</TITLE>
|
||||
GtkGestureLongPress
|
||||
gtk_gesture_long_press_new
|
||||
|
||||
<SUBSECTION Standard>
|
||||
GTK_TYPE_GESTURE_LONG_PRESS
|
||||
GTK_GESTURE_LONG_PRESS
|
||||
GTK_GESTURE_LONG_PRESS_CLASS
|
||||
GTK_IS_GESTURE_LONG_PRESS
|
||||
GTK_IS_GESTURE_LONG_PRESS_CLASS
|
||||
GTK_GESTURE_LONG_PRESS_GET_CLASS
|
||||
|
||||
<SUBSECTION Private>
|
||||
gtk_gesture_long_press_get_type
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>gtkgesturemultipress</FILE>
|
||||
<TITLE>GtkGestureMultiPress</TITLE>
|
||||
GtkGestureMultiPress
|
||||
gtk_gesture_multi_press_new
|
||||
gtk_gesture_multi_press_set_area
|
||||
gtk_gesture_multi_press_get_area
|
||||
|
||||
<SUBSECTION Standard>
|
||||
GTK_TYPE_GESTURE_MULTI_PRESS
|
||||
GTK_GESTURE_MULTI_PRESS
|
||||
GTK_GESTURE_MULTI_PRESS_CLASS
|
||||
GTK_IS_GESTURE_MULTI_PRESS
|
||||
GTK_IS_GESTURE_MULTI_PRESS_CLASS
|
||||
GTK_GESTURE_MULTI_PRESS_GET_CLASS
|
||||
|
||||
<SUBSECTION Private>
|
||||
gtk_gesture_multi_press_get_type
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>gtkgesturepan</FILE>
|
||||
<TITLE>GtkGesturePan</TITLE>
|
||||
GtkGesturePan
|
||||
GtkPanDirection
|
||||
GtkPanOrientation
|
||||
gtk_gesture_pan_new
|
||||
gtk_gesture_pan_get_orientation
|
||||
gtk_gesture_pan_set_orientation
|
||||
|
||||
<SUBSECTION Standard>
|
||||
GTK_TYPE_GESTURE_PAN
|
||||
GTK_GESTURE_PAN
|
||||
GTK_GESTURE_PAN_CLASS
|
||||
GTK_IS_GESTURE_PAN
|
||||
GTK_IS_GESTURE_PAN_CLASS
|
||||
GTK_GESTURE_PAN_GET_CLASS
|
||||
|
||||
<SUBSECTION Private>
|
||||
gtk_gesture_pan_get_type
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>gtkgestureswipe</FILE>
|
||||
<TITLE>GtkGestureSwipe</TITLE>
|
||||
GtkGestureSwipe
|
||||
gtk_gesture_swipe_new
|
||||
gtk_gesture_swipe_get_velocity
|
||||
|
||||
<SUBSECTION Standard>
|
||||
GTK_TYPE_GESTURE_SWIPE
|
||||
GTK_GESTURE_SWIPE
|
||||
GTK_GESTURE_SWIPE_CLASS
|
||||
GTK_IS_GESTURE_SWIPE
|
||||
GTK_IS_GESTURE_SWIPE_CLASS
|
||||
GTK_GESTURE_SWIPE_GET_CLASS
|
||||
|
||||
<SUBSECTION Private>
|
||||
gtk_gesture_swipe_get_type
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>gtkgesturerotate</FILE>
|
||||
<TITLE>GtkGestureRotate</TITLE>
|
||||
GtkGestureRotate
|
||||
gtk_gesture_rotate_new
|
||||
gtk_gesture_rotate_get_angle_delta
|
||||
|
||||
<SUBSECTION Standard>
|
||||
GTK_TYPE_GESTURE_ROTATE
|
||||
GTK_GESTURE_ROTATE
|
||||
GTK_GESTURE_ROTATE_CLASS
|
||||
GTK_IS_GESTURE_ROTATE
|
||||
GTK_IS_GESTURE_ROTATE_CLASS
|
||||
GTK_GESTURE_ROTATE_GET_CLASS
|
||||
|
||||
<SUBSECTION Private>
|
||||
gtk_gesture_rotate_get_type
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>gtkgesturezoom</FILE>
|
||||
<TITLE>GtkGestureZoom</TITLE>
|
||||
GtkGestureZoom
|
||||
gtk_gesture_zoom_new
|
||||
gtk_gesture_zoom_get_scale_delta
|
||||
|
||||
<SUBSECTION Standard>
|
||||
GTK_TYPE_GESTURE_ZOOM
|
||||
GTK_GESTURE_ZOOM
|
||||
GTK_GESTURE_ZOOM_CLASS
|
||||
GTK_IS_GESTURE_ZOOM
|
||||
GTK_IS_GESTURE_ZOOM_CLASS
|
||||
GTK_GESTURE_ZOOM_GET_CLASS
|
||||
|
||||
<SUBSECTION Private>
|
||||
gtk_gesture_zoom_get_type
|
||||
</SECTION>
|
||||
|
||||
@@ -0,0 +1,59 @@
|
||||
<?xml version="1.0"?>
|
||||
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
|
||||
]>
|
||||
<refentry id="gtk3-widget-factory">
|
||||
|
||||
<refentryinfo>
|
||||
<title>gtk3-widget-factory</title>
|
||||
<productname>GTK+</productname>
|
||||
<authorgroup>
|
||||
<author>
|
||||
<contrib>Developer</contrib>
|
||||
<firstname>Matthias</firstname>
|
||||
<surname>Clasen</surname>
|
||||
</author>
|
||||
</authorgroup>
|
||||
</refentryinfo>
|
||||
|
||||
<refmeta>
|
||||
<refentrytitle>gtk3-widget-factory</refentrytitle>
|
||||
<manvolnum>1</manvolnum>
|
||||
<refmiscinfo class="manual">User Commands</refmiscinfo>
|
||||
</refmeta>
|
||||
|
||||
<refnamediv>
|
||||
<refname>gtk3-widget-factory</refname>
|
||||
<refpurpose>Demonstrate GTK+ widgets</refpurpose>
|
||||
</refnamediv>
|
||||
|
||||
<refsynopsisdiv>
|
||||
<cmdsynopsis>
|
||||
<command>gtk3-widget-factory</command>
|
||||
<arg choice="opt">--help</arg>
|
||||
</cmdsynopsis>
|
||||
</refsynopsisdiv>
|
||||
|
||||
<refsect1><title>Description</title>
|
||||
<para>
|
||||
<command>gtk3-widget-factory</command> is a collection of examples.
|
||||
Its purpose is to demonstrate many GTK+ widgets in a form
|
||||
that is useful to GTK+ theme developers.
|
||||
</para>
|
||||
<para>
|
||||
The application shows widgets in different, typical combinations
|
||||
and states.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1><title>Options</title>
|
||||
<para>The following options are understood:</para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><option>-h</option>, <option>--help</option></term>
|
||||
<listitem><para>Show help options</para></listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</refsect1>
|
||||
|
||||
</refentry>
|
||||
@@ -63,6 +63,7 @@ gtk_entry_buffer_get_type
|
||||
gtk_entry_completion_get_type
|
||||
gtk_entry_get_type
|
||||
gtk_event_box_get_type
|
||||
gtk_event_controller_get_type
|
||||
gtk_expander_get_type
|
||||
gtk_file_chooser_button_get_type
|
||||
gtk_file_chooser_dialog_get_type
|
||||
@@ -79,6 +80,15 @@ gtk_font_chooser_widget_get_type
|
||||
gtk_font_selection_dialog_get_type
|
||||
gtk_font_selection_get_type
|
||||
gtk_frame_get_type
|
||||
gtk_gesture_get_type
|
||||
gtk_gesture_drag_get_type
|
||||
gtk_gesture_long_press_get_type
|
||||
gtk_gesture_multi_press_get_type
|
||||
gtk_gesture_pan_get_type
|
||||
gtk_gesture_rotate_get_type
|
||||
gtk_gesture_single_get_type
|
||||
gtk_gesture_swipe_get_type
|
||||
gtk_gesture_zoom_get_type
|
||||
gtk_grid_get_type
|
||||
gtk_handle_box_get_type
|
||||
gtk_hbox_get_type
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 85 KiB |
@@ -0,0 +1,138 @@
|
||||
<?xml version="1.0"?>
|
||||
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
|
||||
]>
|
||||
<refentry id="chap-input-handling">
|
||||
<refmeta>
|
||||
<refentrytitle>The GTK+ Input Handling Model</refentrytitle>
|
||||
<manvolnum>3</manvolnum>
|
||||
<refmiscinfo>GTK Library</refmiscinfo>
|
||||
</refmeta>
|
||||
|
||||
<refnamediv>
|
||||
<refname>The GTK+ Input Handling Model</refname>
|
||||
<refpurpose>
|
||||
GTK+ input handling in detail
|
||||
</refpurpose>
|
||||
</refnamediv>
|
||||
|
||||
|
||||
<refsect1 id="input-overview">
|
||||
<title>Overview of GTK+ input handling</title>
|
||||
|
||||
<para>
|
||||
This chapter describes in detail how GTK+ handles input. If you are interested
|
||||
in what happens to translate a key press or mouse motion of the users into a
|
||||
change of a GTK+ widget, you should read this chapter. This knowledge will also
|
||||
be useful if you decide to implement your own widgets.
|
||||
</para>
|
||||
|
||||
<refsect2>
|
||||
<title>Devices and events</title>
|
||||
|
||||
<!-- input devices: master/slave, keyboard/pointer/touch -->
|
||||
<para>
|
||||
The most basic input devices that every computer user has interacted with are
|
||||
keyboards and mice; beyond these, GTK+ supports touchpads, touchscreens and
|
||||
more exotic input devices such as graphics tablets. Inside GTK+, every such
|
||||
input device is represented by a #GdkDevice object.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
To simplify dealing with the variability between these input devices, GTK+
|
||||
has a concept of master and slave devices. The concrete physical devices that
|
||||
have many different characteristics (mice may have 2 or 3 or 8 buttons,
|
||||
keyboards have different layouts and may or may not have a separate number
|
||||
block, etc) are represented as slave devices. Each slave device is
|
||||
associated with a virtual master device. Master devices always come in
|
||||
pointer/keyboard pairs - you can think of such a pair as a 'seat'.
|
||||
</para>
|
||||
<para>
|
||||
GTK+ widgets generally deal with the master devices, and thus can be used
|
||||
with any pointing device or keyboard.
|
||||
</para>
|
||||
|
||||
<!-- input events: button, touch, key, motion, etc -->
|
||||
<para>
|
||||
When a user interacts with an input device (e.g. moves a mouse or presses
|
||||
a key on the keyboard), GTK+ receives events from the windowing system.
|
||||
These are typically directed at a specific window - for pointer events,
|
||||
the window under the pointer (grabs complicate this), for keyboard events,
|
||||
the window with the keyboard focus.
|
||||
</para>
|
||||
<para>
|
||||
GDK translates these raw windowing system events into #GdkEvents.
|
||||
Typical input events are:
|
||||
<simplelist>
|
||||
<member>GdkEventButton</member>
|
||||
<member>GdkEventMotion</member>
|
||||
<member>GdkEventCrossing</member>
|
||||
<member>GdkEventKey</member>
|
||||
<member>GdkEventFocus</member>
|
||||
<member>GdkEventTouch</member>
|
||||
</simplelist>
|
||||
</para>
|
||||
<para>
|
||||
When GTK+ is initialized, it sets up an event handler function with
|
||||
gdk_event_handler_set(), which receives all of these input events
|
||||
(as well as others, for instance window management related events).
|
||||
</para>
|
||||
</refsect2>
|
||||
|
||||
<refsect2>
|
||||
<title>Event propagation</title>
|
||||
|
||||
<para>
|
||||
When GTK+ receives an event, it determines the target widget that
|
||||
it is directed to. Unless grabs are involved, this is done by finding
|
||||
the widget to which the window of the event belongs.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The event is then propagated from the toplevel window down to the
|
||||
target widget. In this phase, which is known as the “capture” phase,
|
||||
gestures that are attached with %GTK_PHASE_CAPTURE get a chance
|
||||
to react to the event.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Next, the appropriate event signal is emitted for the event in question,
|
||||
e.g. “motion-notify-event”. Handling these signals was the primary
|
||||
way to handle input in GTK+ widgets before gestures were introduced.
|
||||
The signals are emitted from the target widget up to the toplevel,
|
||||
until a signal handler indicates that it has handled the event, by
|
||||
returning %GDK_EVENT_STOP.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The default handlers for the event signals send the event
|
||||
to gestures that are attached with %GTK_PHASE_TARGET. Therefore,
|
||||
gestures in the ”target” phase are only used if the widget does
|
||||
not have its own event handlers, or takes care to chain up to the
|
||||
default handlers.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
After calling the event handlers, in the so-called ”bubble” phase,
|
||||
gestures that are attached with %GTK_PHASE_BUBBLE get a chance
|
||||
to react to the event.
|
||||
</para>
|
||||
|
||||
<!-- grabs -->
|
||||
</refsect2>
|
||||
|
||||
<refsect2>
|
||||
<title>Keyboard input</title>
|
||||
|
||||
<!-- focus, tab, directional navigation -->
|
||||
<!-- mnemonics, accelerators, bindings -->
|
||||
</refsect2>
|
||||
|
||||
<refsect2>
|
||||
<title>Gestures</title>
|
||||
|
||||
<!-- touch sequences, states, anything else -->
|
||||
</refsect2>
|
||||
|
||||
</refsect1>
|
||||
</refentry>
|
||||
@@ -194,10 +194,27 @@ additional environment variables.
|
||||
<term>no-css-cache</term>
|
||||
<listitem><para>Bypass caching for CSS style properties.</para></listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>baselines</term>
|
||||
<listitem><para>Baselines.</para></listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>pixel-cache</term>
|
||||
<listitem><para>Pixel cache.</para></listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>no-pixel-cache</term>
|
||||
<listitem><para>Disable the pixel cache.</para></listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>interactive</term>
|
||||
<listitem><para>Open the <link linkend="interactive-debugging">interactive debugger</link>.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
The special value <literal>all</literal> can be used to turn on all
|
||||
debug options.
|
||||
debug options. The special value <literal>help</literal> can be used
|
||||
to obtain a list of all supported debug options.
|
||||
</para>
|
||||
</formalpara>
|
||||
|
||||
@@ -509,6 +526,38 @@ nevertheless.
|
||||
|
||||
</refsect2>
|
||||
|
||||
<refsect2 id="interactive-debugging">
|
||||
<title>Interactive debugging</title>
|
||||
|
||||
<inlinegraphic fileref="inspector.png" format="PNG"></inlinegraphic>
|
||||
|
||||
<para>
|
||||
GTK+ includes an interactive debugger, called the GTK+ Inspector, which
|
||||
lets you explore the widget tree of any GTK+ application at runtime, as
|
||||
well as tweak the theme and trigger visual debugging aids. You can
|
||||
easily try out changes at runtime before putting them into the code.
|
||||
</para>
|
||||
<para>
|
||||
Note that the GTK+ inspector can only show GTK+ internals. It can not
|
||||
understand the application-specific logic of a GTK+ application. Also,
|
||||
the fact that the GTK+ inspector is running in the application process
|
||||
limits what it can do. It is meant as a complement to full-blown debuggers
|
||||
and system tracing facilities such as DTrace, not as a replacement.
|
||||
</para>
|
||||
<para>
|
||||
To enable the GTK+ inspector, you can use the Control-Shift-I or
|
||||
Control-Shift-D keyboard shortcuts, or set the
|
||||
<envar>GTK_DEBUG=interactive</envar> environment variable.
|
||||
</para>
|
||||
<para>
|
||||
In some situations, it may be inappropriate to give users access to the
|
||||
GTK+ inspector. The keyboard shortcuts can be disabled with the
|
||||
`enable-inspector-keybinding` key in the `org.gtk.Settings.Debug`
|
||||
GSettings schema.
|
||||
</para>
|
||||
|
||||
</refsect2>
|
||||
|
||||
</refsect1>
|
||||
|
||||
</refentry>
|
||||
|
||||
+3
-2
@@ -476,10 +476,11 @@ main (int argc, char **argv)
|
||||
{
|
||||
PlugMan *plug_man;
|
||||
int status;
|
||||
const gchar *accels[] = { "F11", NULL };
|
||||
|
||||
plug_man = plug_man_new ();
|
||||
gtk_application_add_accelerator (GTK_APPLICATION (plug_man),
|
||||
"F11", "win.fullscreen", NULL);
|
||||
gtk_application_set_accels_for_action (GTK_APPLICATION (plug_man),
|
||||
"win.fullscreen", accels);
|
||||
status = g_application_run (G_APPLICATION (plug_man), argc, argv);
|
||||
g_object_unref (plug_man);
|
||||
|
||||
|
||||
+20
-7
@@ -62,11 +62,11 @@ LDADD = \
|
||||
#
|
||||
# GDK header files for public installation (non-generated)
|
||||
#
|
||||
#
|
||||
gdk_public_h_sources = \
|
||||
gdk.h \
|
||||
gdkapplaunchcontext.h \
|
||||
gdkcairo.h \
|
||||
gdkcolor.h \
|
||||
gdkcursor.h \
|
||||
gdkdevice.h \
|
||||
gdkdevicemanager.h \
|
||||
@@ -94,6 +94,13 @@ gdk_public_h_sources = \
|
||||
gdkvisual.h \
|
||||
gdkwindow.h
|
||||
|
||||
deprecated_h_sources = \
|
||||
deprecated/gdkcolor.h
|
||||
|
||||
gdk_h_sources = \
|
||||
$(gdk_public_h_sources) \
|
||||
$(deprecated_h_sources)
|
||||
|
||||
gdk_private_headers = \
|
||||
gdkapplaunchcontextprivate.h \
|
||||
gdkcursorprivate.h \
|
||||
@@ -111,11 +118,14 @@ gdk_private_headers = \
|
||||
gdkvisualprivate.h \
|
||||
gdkx.h
|
||||
|
||||
deprecated_c_sources = \
|
||||
deprecated/gdkcolor.c
|
||||
|
||||
gdk_c_sources = \
|
||||
$(deprecated_c_sources) \
|
||||
gdk.c \
|
||||
gdkapplaunchcontext.c \
|
||||
gdkcairo.c \
|
||||
gdkcolor.c \
|
||||
gdkcursor.c \
|
||||
gdkdeprecated.c \
|
||||
gdkdevice.c \
|
||||
@@ -157,6 +167,9 @@ gdkincludedir = $(includedir)/gtk-3.0/gdk
|
||||
gdkinclude_HEADERS = $(gdk_public_h_sources) gdkenumtypes.h gdkversionmacros.h
|
||||
nodist_gdkinclude_HEADERS = gdkconfig.h
|
||||
|
||||
deprecatedincludedir = $(includedir)/gtk-3.0/gdk/deprecated
|
||||
deprecatedinclude_HEADERS = $(deprecated_h_sources)
|
||||
|
||||
common_sources = \
|
||||
$(gdk_private_headers) \
|
||||
$(gdk_c_sources) \
|
||||
@@ -196,7 +209,7 @@ endif
|
||||
if HAVE_INTROSPECTION
|
||||
|
||||
introspection_files = \
|
||||
$(filter-out gdkkeysyms-compat.h, $(gdk_public_h_sources)) \
|
||||
$(filter-out gdkkeysyms-compat.h, $(gdk_h_sources)) \
|
||||
$(gdk_c_sources) \
|
||||
gdkenumtypes.c \
|
||||
gdkenumtypes.h
|
||||
@@ -378,15 +391,15 @@ BUILT_SOURCES = \
|
||||
|
||||
gdkenumtypes.h: stamp-gdkenumtypes.h
|
||||
@true
|
||||
stamp-gdkenumtypes.h: $(gdk_public_h_sources) gdkenumtypes.h.template
|
||||
stamp-gdkenumtypes.h: $(gdk_h_sources) gdkenumtypes.h.template
|
||||
$(AM_V_GEN) ( cd $(srcdir) && $(GLIB_MKENUMS) --template gdkenumtypes.h.template \
|
||||
$(gdk_public_h_sources) ) >> xgen-geth \
|
||||
$(gdk_h_sources) ) >> xgen-geth \
|
||||
&& (cmp -s xgen-geth gdkenumtypes.h || cp xgen-geth gdkenumtypes.h ) \
|
||||
&& rm -f xgen-geth \
|
||||
&& echo timestamp > $(@F)
|
||||
gdkenumtypes.c: $(gdk_public_h_sources) gdkenumtypes.c.template
|
||||
gdkenumtypes.c: $(gdk_h_sources) gdkenumtypes.c.template
|
||||
$(AM_V_GEN) ( cd $(srcdir) && $(GLIB_MKENUMS) --template gdkenumtypes.c.template \
|
||||
$(gdk_public_h_sources) ) > xgen-getc \
|
||||
$(gdk_h_sources) ) > xgen-getc \
|
||||
&& cp xgen-getc gdkenumtypes.c \
|
||||
&& rm -f xgen-getc
|
||||
|
||||
|
||||
@@ -31,6 +31,8 @@
|
||||
|
||||
#include <time.h>
|
||||
|
||||
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
|
||||
|
||||
/**
|
||||
* SECTION:colors
|
||||
* @Short_description: Manipulation of colors
|
||||
@@ -39,7 +41,8 @@
|
||||
* A #GdkColor represents a color.
|
||||
*
|
||||
* When working with cairo, it is often more convenient
|
||||
* to use a #GdkRGBA instead.
|
||||
* to use a #GdkRGBA instead, and #GdkColor has been
|
||||
* deprecated in favor of #GdkRGBA.
|
||||
*/
|
||||
|
||||
|
||||
@@ -52,6 +55,8 @@
|
||||
* The result must be freed using gdk_color_free().
|
||||
*
|
||||
* Returns: a copy of @color
|
||||
*
|
||||
* Deprecated: 3.14: Use #GdkRGBA
|
||||
*/
|
||||
GdkColor*
|
||||
gdk_color_copy (const GdkColor *color)
|
||||
@@ -70,6 +75,8 @@ gdk_color_copy (const GdkColor *color)
|
||||
* @color: a #GdkColor
|
||||
*
|
||||
* Frees a #GdkColor created with gdk_color_copy().
|
||||
*
|
||||
* Deprecated: 3.14: Use #GdkRGBA
|
||||
*/
|
||||
void
|
||||
gdk_color_free (GdkColor *color)
|
||||
@@ -87,6 +94,8 @@ gdk_color_free (GdkColor *color)
|
||||
* table that stores #GdkColors.
|
||||
*
|
||||
* Returns: The hash function applied to @color
|
||||
*
|
||||
* Deprecated: 3.14: Use #GdkRGBA
|
||||
*/
|
||||
guint
|
||||
gdk_color_hash (const GdkColor *color)
|
||||
@@ -105,6 +114,8 @@ gdk_color_hash (const GdkColor *color)
|
||||
* Compares two colors.
|
||||
*
|
||||
* Returns: %TRUE if the two colors compare equal
|
||||
*
|
||||
* Deprecated: 3.14: Use #GdkRGBA
|
||||
*/
|
||||
gboolean
|
||||
gdk_color_equal (const GdkColor *colora,
|
||||
@@ -139,6 +150,8 @@ G_DEFINE_BOXED_TYPE (GdkColor, gdk_color,
|
||||
* and “\#ffffffffffff”).
|
||||
*
|
||||
* Returns: %TRUE if the parsing succeeded
|
||||
*
|
||||
* Deprecated: 3.14: Use #GdkRGBA
|
||||
*/
|
||||
gboolean
|
||||
gdk_color_parse (const gchar *spec,
|
||||
@@ -171,6 +184,8 @@ gdk_color_parse (const gchar *spec,
|
||||
* Returns: a newly-allocated text string
|
||||
*
|
||||
* Since: 2.12
|
||||
*
|
||||
* Deprecated: 3.14: Use #GdkRGBA
|
||||
*/
|
||||
gchar *
|
||||
gdk_color_to_string (const GdkColor *color)
|
||||
@@ -59,24 +59,24 @@ struct _GdkColor
|
||||
|
||||
#define GDK_TYPE_COLOR (gdk_color_get_type ())
|
||||
|
||||
GDK_AVAILABLE_IN_ALL
|
||||
GDK_DEPRECATED_IN_3_14
|
||||
GType gdk_color_get_type (void) G_GNUC_CONST;
|
||||
|
||||
GDK_AVAILABLE_IN_ALL
|
||||
GDK_DEPRECATED_IN_3_14
|
||||
GdkColor *gdk_color_copy (const GdkColor *color);
|
||||
GDK_AVAILABLE_IN_ALL
|
||||
GDK_DEPRECATED_IN_3_14
|
||||
void gdk_color_free (GdkColor *color);
|
||||
|
||||
GDK_AVAILABLE_IN_ALL
|
||||
GDK_DEPRECATED_IN_3_14
|
||||
guint gdk_color_hash (const GdkColor *color);
|
||||
GDK_AVAILABLE_IN_ALL
|
||||
GDK_DEPRECATED_IN_3_14
|
||||
gboolean gdk_color_equal (const GdkColor *colora,
|
||||
const GdkColor *colorb);
|
||||
|
||||
GDK_AVAILABLE_IN_ALL
|
||||
GDK_DEPRECATED_IN_3_14
|
||||
gboolean gdk_color_parse (const gchar *spec,
|
||||
GdkColor *color);
|
||||
GDK_AVAILABLE_IN_ALL
|
||||
GDK_DEPRECATED_IN_3_14
|
||||
gchar * gdk_color_to_string (const GdkColor *color);
|
||||
|
||||
|
||||
@@ -24,8 +24,6 @@
|
||||
|
||||
#include "config.h"
|
||||
|
||||
#define GDK_DISABLE_DEPRECATION_WARNINGS 1
|
||||
|
||||
#include "gdkversionmacros.h"
|
||||
#include "gdkmain.h"
|
||||
|
||||
@@ -359,8 +357,9 @@ gdk_get_display (void)
|
||||
* Gets the display name specified in the command line arguments passed
|
||||
* to gdk_init() or gdk_parse_args(), if any.
|
||||
*
|
||||
* Returns: the display name, if specified explicitly, otherwise %NULL
|
||||
* this string is owned by GTK+ and must not be modified or freed.
|
||||
* Returns: (nullable): the display name, if specified explicitly,
|
||||
* otherwise %NULL this string is owned by GTK+ and must not be
|
||||
* modified or freed.
|
||||
*
|
||||
* Since: 2.2
|
||||
*/
|
||||
@@ -382,8 +381,8 @@ gdk_get_display_arg_name (void)
|
||||
* display has previously been set, simply returns that. An internal
|
||||
* function that should not be used by applications.
|
||||
*
|
||||
* Returns: (transfer none): the default display, if it could be
|
||||
* opened, otherwise %NULL.
|
||||
* Returns: (nullable) (transfer none): the default display, if it
|
||||
* could be opened, otherwise %NULL.
|
||||
**/
|
||||
GdkDisplay *
|
||||
gdk_display_open_default_libgtk_only (void)
|
||||
|
||||
@@ -31,7 +31,6 @@
|
||||
#include <gdk/gdkversionmacros.h>
|
||||
#include <gdk/gdkapplaunchcontext.h>
|
||||
#include <gdk/gdkcairo.h>
|
||||
#include <gdk/gdkcolor.h>
|
||||
#include <gdk/gdkcursor.h>
|
||||
#include <gdk/gdkdevice.h>
|
||||
#include <gdk/gdkdevicemanager.h>
|
||||
@@ -58,6 +57,10 @@
|
||||
#include <gdk/gdkvisual.h>
|
||||
#include <gdk/gdkwindow.h>
|
||||
|
||||
#ifndef GDK_DISABLE_DEPRECATED
|
||||
#include <gdk/deprecated/gdkcolor.h>
|
||||
#endif
|
||||
|
||||
#undef __GDK_H_INSIDE__
|
||||
|
||||
#endif /* __GDK_H__ */
|
||||
|
||||
+1
-1
@@ -23,7 +23,7 @@
|
||||
#endif
|
||||
|
||||
#include <gdk/gdkversionmacros.h>
|
||||
#include <gdk/gdkcolor.h>
|
||||
#include <gdk/deprecated/gdkcolor.h>
|
||||
#include <gdk/gdkrgba.h>
|
||||
#include <gdk/gdkpixbuf.h>
|
||||
#include <pango/pangocairo.h>
|
||||
|
||||
+10
-6
@@ -264,8 +264,8 @@ gdk_cursor_new_for_display (GdkDisplay *display,
|
||||
* Creates a new cursor by looking up @name in the current cursor
|
||||
* theme.
|
||||
*
|
||||
* Returns: a new #GdkCursor, or %NULL if there is no cursor with
|
||||
* the given name
|
||||
* Returns: (nullable): a new #GdkCursor, or %NULL if there is no
|
||||
* cursor with the given name
|
||||
*
|
||||
* Since: 2.8
|
||||
*/
|
||||
@@ -423,7 +423,8 @@ gdk_cursor_get_display (GdkCursor *cursor)
|
||||
* on the cursor, GDK may not be able to obtain the image data. In this
|
||||
* case, %NULL is returned.
|
||||
*
|
||||
* Returns: (transfer full): a #GdkPixbuf representing @cursor, or %NULL
|
||||
* Returns: (nullable) (transfer full): a #GdkPixbuf representing
|
||||
* @cursor, or %NULL
|
||||
*
|
||||
* Since: 2.8
|
||||
*/
|
||||
@@ -478,8 +479,10 @@ gdk_cursor_get_image (GdkCursor *cursor)
|
||||
/**
|
||||
* gdk_cursor_get_surface:
|
||||
* @cursor: a #GdkCursor
|
||||
* @x_hot: Location to store the hotspot x position, or %NULL
|
||||
* @y_hot: Location to store the hotspot y position, or %NULL
|
||||
* @x_hot: (optional) (out): Location to store the hotspot x position,
|
||||
* or %NULL
|
||||
* @y_hot: (optional) (out): Location to store the hotspot y position,
|
||||
* or %NULL
|
||||
*
|
||||
* Returns a cairo image surface with the image used to display the cursor.
|
||||
*
|
||||
@@ -487,7 +490,8 @@ gdk_cursor_get_image (GdkCursor *cursor)
|
||||
* on the cursor, GDK may not be able to obtain the image data. In this
|
||||
* case, %NULL is returned.
|
||||
*
|
||||
* Returns: (transfer full): a #cairo_surface_t representing @cursor, or %NULL
|
||||
* Returns: (nullable) (transfer full): a #cairo_surface_t
|
||||
* representing @cursor, or %NULL
|
||||
*
|
||||
* Since: 3.10
|
||||
*/
|
||||
|
||||
+20
-14
@@ -383,9 +383,9 @@ gdk_device_get_property (GObject *object,
|
||||
* gdk_device_get_state: (skip)
|
||||
* @device: a #GdkDevice.
|
||||
* @window: a #GdkWindow.
|
||||
* @axes: an array of doubles to store the values of the axes of @device in,
|
||||
* or %NULL.
|
||||
* @mask: location to store the modifiers, or %NULL.
|
||||
* @axes: (nullable) (array): an array of doubles to store the values of
|
||||
* the axes of @device in, or %NULL.
|
||||
* @mask: (optional) (out): location to store the modifiers, or %NULL.
|
||||
*
|
||||
* Gets the current state of a pointer device relative to @window. As a slave
|
||||
* device’s coordinates are those of its master pointer, this
|
||||
@@ -505,7 +505,8 @@ gdk_device_get_position (GdkDevice *device,
|
||||
* function may not be called on devices of type %GDK_DEVICE_TYPE_SLAVE,
|
||||
* unless there is an ongoing grab on them, see gdk_device_grab().
|
||||
*
|
||||
* Returns: (transfer none): the #GdkWindow under the device position, or %NULL.
|
||||
* Returns: (nullable) (transfer none): the #GdkWindow under the
|
||||
* device position, or %NULL.
|
||||
*
|
||||
* Since: 3.0
|
||||
**/
|
||||
@@ -554,7 +555,8 @@ gdk_device_get_window_at_position_double (GdkDevice *device,
|
||||
* function may not be called on devices of type %GDK_DEVICE_TYPE_SLAVE,
|
||||
* unless there is an ongoing grab on them, see gdk_device_grab().
|
||||
*
|
||||
* Returns: (transfer none): the #GdkWindow under the device position, or %NULL.
|
||||
* Returns: (nullable) (transfer none): the #GdkWindow under the
|
||||
* device position, or %NULL.
|
||||
*
|
||||
* Since: 3.0
|
||||
**/
|
||||
@@ -583,8 +585,11 @@ gdk_device_get_window_at_position (GdkDevice *device,
|
||||
* @window: the window with respect to which which the event coordinates will be reported
|
||||
* @start: starting timestamp for range of events to return
|
||||
* @stop: ending timestamp for the range of events to return
|
||||
* @events: (array length=n_events) (out) (transfer full): location to store a newly-allocated array of #GdkTimeCoord, or %NULL
|
||||
* @n_events: location to store the length of @events, or %NULL
|
||||
* @events: (array length=n_events) (out) (transfer full) (optional):
|
||||
* location to store a newly-allocated array of #GdkTimeCoord, or
|
||||
* %NULL
|
||||
* @n_events: (out) (optional): location to store the length of
|
||||
* @events, or %NULL
|
||||
*
|
||||
* Obtains the motion history for a pointer device; given a starting and
|
||||
* ending timestamp, return all events in the motion history for
|
||||
@@ -644,7 +649,7 @@ _gdk_device_allocate_history (GdkDevice *device,
|
||||
|
||||
/**
|
||||
* gdk_device_free_history: (skip)
|
||||
* @events: an array of #GdkTimeCoord.
|
||||
* @events: (array length=n_events): an array of #GdkTimeCoord.
|
||||
* @n_events: the length of the array.
|
||||
*
|
||||
* Frees an array of #GdkTimeCoord that was returned by gdk_device_get_history().
|
||||
@@ -941,7 +946,8 @@ gdk_device_get_display (GdkDevice *device)
|
||||
* If @device is of type %GDK_DEVICE_TYPE_FLOATING, %NULL will be
|
||||
* returned, as there is no associated device.
|
||||
*
|
||||
* Returns: (transfer none): The associated device, or %NULL
|
||||
* Returns: (nullable) (transfer none): The associated device, or
|
||||
* %NULL
|
||||
*
|
||||
* Since: 3.0
|
||||
**/
|
||||
@@ -1001,10 +1007,10 @@ _gdk_device_set_associated_device (GdkDevice *device,
|
||||
* the list of slave devices attached to it, otherwise it will return
|
||||
* %NULL
|
||||
*
|
||||
* Returns: (transfer container) (element-type GdkDevice): the list of
|
||||
* slave devices, or %NULL. The list must be freed with
|
||||
* g_list_free(), the contents of the list are owned by GTK+
|
||||
* and should not be freed.
|
||||
* Returns: (nullable) (transfer container) (element-type GdkDevice):
|
||||
* the list of slave devices, or %NULL. The list must be
|
||||
* freed with g_list_free(), the contents of the list are
|
||||
* owned by GTK+ and should not be freed.
|
||||
**/
|
||||
GList *
|
||||
gdk_device_list_slave_devices (GdkDevice *device)
|
||||
@@ -1117,7 +1123,7 @@ gdk_device_list_axes (GdkDevice *device)
|
||||
* @device: a pointer #GdkDevice.
|
||||
* @axes: (array): pointer to an array of axes
|
||||
* @axis_label: #GdkAtom with the axis label.
|
||||
* @value: location to store the found value.
|
||||
* @value: (out): location to store the found value.
|
||||
*
|
||||
* Interprets an array of double as axis values for a given device,
|
||||
* and locates the value in the array for a given axis label, as returned
|
||||
|
||||
@@ -284,9 +284,9 @@ gdk_device_manager_get_property (GObject *object,
|
||||
*
|
||||
* Gets the #GdkDisplay associated to @device_manager.
|
||||
*
|
||||
* Returns: (transfer none): the #GdkDisplay to which @device_manager is
|
||||
* associated to, or #NULL. This memory is owned by GDK and
|
||||
* must not be freed or unreferenced.
|
||||
* Returns: (nullable) (transfer none): the #GdkDisplay to which
|
||||
* @device_manager is associated to, or #NULL. This memory is
|
||||
* owned by GDK and must not be freed or unreferenced.
|
||||
*
|
||||
* Since: 3.0
|
||||
**/
|
||||
|
||||
+13
-10
@@ -306,8 +306,9 @@ gdk_display_is_closed (GdkDisplay *display)
|
||||
* Gets the next #GdkEvent to be processed for @display, fetching events from the
|
||||
* windowing system if necessary.
|
||||
*
|
||||
* Returns: the next #GdkEvent to be processed, or %NULL if no events
|
||||
* are pending. The returned #GdkEvent should be freed with gdk_event_free().
|
||||
* Returns: (nullable): the next #GdkEvent to be processed, or %NULL
|
||||
* if no events are pending. The returned #GdkEvent should be freed
|
||||
* with gdk_event_free().
|
||||
*
|
||||
* Since: 2.2
|
||||
**/
|
||||
@@ -331,9 +332,9 @@ gdk_display_get_event (GdkDisplay *display)
|
||||
* not get more events from the windowing system. It only checks the events
|
||||
* that have already been moved to the GDK event queue.)
|
||||
*
|
||||
* Returns: a copy of the first #GdkEvent on the event queue, or %NULL
|
||||
* if no events are in the queue. The returned #GdkEvent should be freed with
|
||||
* gdk_event_free().
|
||||
* Returns: (nullable): a copy of the first #GdkEvent on the event
|
||||
* queue, or %NULL if no events are in the queue. The returned
|
||||
* #GdkEvent should be freed with gdk_event_free().
|
||||
*
|
||||
* Since: 2.2
|
||||
**/
|
||||
@@ -585,7 +586,8 @@ gdk_display_get_pointer (GdkDisplay *display,
|
||||
* if the window under the mouse pointer is not known to GDK (for example,
|
||||
* belongs to another application).
|
||||
*
|
||||
* Returns: (transfer none): the window under the mouse pointer, or %NULL
|
||||
* Returns: (nullable) (transfer none): the window under the mouse
|
||||
* pointer, or %NULL
|
||||
*
|
||||
* Since: 2.2
|
||||
*
|
||||
@@ -1390,8 +1392,9 @@ gdk_display_device_is_grabbed (GdkDisplay *display,
|
||||
*
|
||||
* Returns the #GdkDeviceManager associated to @display.
|
||||
*
|
||||
* Returns: (transfer none): A #GdkDeviceManager, or %NULL. This memory is
|
||||
* owned by GDK and must not be freed or unreferenced.
|
||||
* Returns: (nullable) (transfer none): A #GdkDeviceManager, or
|
||||
* %NULL. This memory is owned by GDK and must not be freed
|
||||
* or unreferenced.
|
||||
*
|
||||
* Since: 3.0
|
||||
**/
|
||||
@@ -1780,8 +1783,8 @@ gdk_display_get_app_launch_context (GdkDisplay *display)
|
||||
*
|
||||
* Opens a display.
|
||||
*
|
||||
* Returns: (transfer none): a #GdkDisplay, or %NULL
|
||||
* if the display could not be opened
|
||||
* Returns: (nullable) (transfer none): a #GdkDisplay, or %NULL if the
|
||||
* display could not be opened
|
||||
*
|
||||
* Since: 2.2
|
||||
*/
|
||||
|
||||
+11
-10
@@ -69,13 +69,13 @@
|
||||
* notification when displays appear or disappear or the default display
|
||||
* changes.
|
||||
*
|
||||
* You can use gdk_display_manager_get() to obtain the GdkDisplayManager
|
||||
* You can use gdk_display_manager_get() to obtain the #GdkDisplayManager
|
||||
* singleton, but that should be rarely necessary. Typically, initializing
|
||||
* GTK+ opens a display that you can work with without ever accessing the
|
||||
* GdkDisplayManager.
|
||||
* #GdkDisplayManager.
|
||||
*
|
||||
* The GDK library can be built with support for multiple backends.
|
||||
* The GdkDisplayManager object determines which backend is used
|
||||
* The #GdkDisplayManager object determines which backend is used
|
||||
* at runtime.
|
||||
*
|
||||
* When writing backend-specific code that is supposed to work with
|
||||
@@ -313,8 +313,8 @@ gdk_display_manager_get (void)
|
||||
*
|
||||
* Gets the default #GdkDisplay.
|
||||
*
|
||||
* Returns: (transfer none): a #GdkDisplay, or %NULL
|
||||
* if there is no default display.
|
||||
* Returns: (nullable) (transfer none): a #GdkDisplay, or %NULL if
|
||||
* there is no default display.
|
||||
*
|
||||
* Since: 2.2
|
||||
*/
|
||||
@@ -331,8 +331,8 @@ gdk_display_manager_get_default_display (GdkDisplayManager *manager)
|
||||
* function for:
|
||||
* `gdk_display_manager_get_default_display (gdk_display_manager_get ())`.
|
||||
*
|
||||
* Returns: (transfer none): a #GdkDisplay, or %NULL if there is no default
|
||||
* display.
|
||||
* Returns: (nullable) (transfer none): a #GdkDisplay, or %NULL if
|
||||
* there is no default display.
|
||||
*
|
||||
* Since: 2.2
|
||||
*/
|
||||
@@ -348,7 +348,8 @@ gdk_display_get_default (void)
|
||||
* Gets the default screen for the default display. (See
|
||||
* gdk_display_get_default ()).
|
||||
*
|
||||
* Returns: (transfer none): a #GdkScreen, or %NULL if there is no default display.
|
||||
* Returns: (nullable) (transfer none): a #GdkScreen, or %NULL if
|
||||
* there is no default display.
|
||||
*
|
||||
* Since: 2.2
|
||||
*/
|
||||
@@ -411,8 +412,8 @@ gdk_display_manager_list_displays (GdkDisplayManager *manager)
|
||||
*
|
||||
* Opens a display.
|
||||
*
|
||||
* Returns: (transfer none): a #GdkDisplay, or %NULL
|
||||
* if the display could not be opened
|
||||
* Returns: (nullable) (transfer none): a #GdkDisplay, or %NULL if the
|
||||
* display could not be opened
|
||||
*
|
||||
* Since: 3.0
|
||||
*/
|
||||
|
||||
+1
-1
@@ -68,7 +68,7 @@ gdk_drag_context_list_targets (GdkDragContext *context)
|
||||
* @context: a #GdkDragContext
|
||||
*
|
||||
* Determines the bitmask of actions proposed by the source if
|
||||
* gdk_drag_context_get_suggested_action() returns GDK_ACTION_ASK.
|
||||
* gdk_drag_context_get_suggested_action() returns %GDK_ACTION_ASK.
|
||||
*
|
||||
* Returns: the #GdkDragAction flags
|
||||
*
|
||||
|
||||
+50
-26
@@ -80,7 +80,8 @@ _gdk_event_emit (GdkEvent *event)
|
||||
* Find the first event on the queue that is not still
|
||||
* being filled in.
|
||||
*
|
||||
* Returns: Pointer to the list node for that event, or NULL.
|
||||
* Returns: (nullable): Pointer to the list node for that event, or
|
||||
* %NULL.
|
||||
**/
|
||||
GList*
|
||||
_gdk_event_queue_find_first (GdkDisplay *display)
|
||||
@@ -241,7 +242,7 @@ _gdk_event_queue_remove_link (GdkDisplay *display,
|
||||
* Removes and returns the first event from the event
|
||||
* queue that is not still being filled in.
|
||||
*
|
||||
* Returns: the event, or %NULL. Ownership is transferred
|
||||
* Returns: (nullable): the event, or %NULL. Ownership is transferred
|
||||
* to the caller.
|
||||
**/
|
||||
GdkEvent*
|
||||
@@ -406,8 +407,9 @@ gdk_events_pending (void)
|
||||
* on, fetching events from the windowing system if necessary.
|
||||
* See gdk_display_get_event().
|
||||
*
|
||||
* Returns: the next #GdkEvent to be processed, or %NULL if no events
|
||||
* are pending. The returned #GdkEvent should be freed with gdk_event_free().
|
||||
* Returns: (nullable): the next #GdkEvent to be processed, or %NULL
|
||||
* if no events are pending. The returned #GdkEvent should be freed
|
||||
* with gdk_event_free().
|
||||
**/
|
||||
GdkEvent*
|
||||
gdk_event_get (void)
|
||||
@@ -435,9 +437,9 @@ gdk_event_get (void)
|
||||
* If there is an event waiting in the event queue of some open
|
||||
* display, returns a copy of it. See gdk_display_peek_event().
|
||||
*
|
||||
* Returns: a copy of the first #GdkEvent on some event queue, or %NULL if no
|
||||
* events are in any queues. The returned #GdkEvent should be freed with
|
||||
* gdk_event_free().
|
||||
* Returns: (nullable): a copy of the first #GdkEvent on some event
|
||||
* queue, or %NULL if no events are in any queues. The returned
|
||||
* #GdkEvent should be freed with gdk_event_free().
|
||||
**/
|
||||
GdkEvent*
|
||||
gdk_event_peek (void)
|
||||
@@ -908,7 +910,7 @@ gdk_event_get_time (const GdkEvent *event)
|
||||
|
||||
/**
|
||||
* gdk_event_get_state:
|
||||
* @event: a #GdkEvent or NULL
|
||||
* @event: (allow-none): a #GdkEvent or %NULL
|
||||
* @state: (out): return location for state
|
||||
*
|
||||
* If the event contains a “state” field, puts that field in @state. Otherwise
|
||||
@@ -1509,7 +1511,7 @@ gdk_event_set_device (GdkEvent *event,
|
||||
* If the event contains a “device” field, this function will return
|
||||
* it, else it will return %NULL.
|
||||
*
|
||||
* Returns: (transfer none): a #GdkDevice, or %NULL.
|
||||
* Returns: (nullable) (transfer none): a #GdkDevice, or %NULL.
|
||||
*
|
||||
* Since: 3.0
|
||||
**/
|
||||
@@ -1641,7 +1643,7 @@ gdk_event_set_source_device (GdkEvent *event,
|
||||
* If the event does not contain a device field, this function will
|
||||
* return %NULL.
|
||||
*
|
||||
* Returns: (transfer none): a #GdkDevice, or %NULL.
|
||||
* Returns: (nullable) (transfer none): a #GdkDevice, or %NULL.
|
||||
*
|
||||
* Since: 3.0
|
||||
**/
|
||||
@@ -1950,7 +1952,7 @@ gdk_event_get_screen (const GdkEvent *event)
|
||||
* %GDK_TOUCH_END or %GDK_TOUCH_CANCEL, returns the #GdkEventSequence
|
||||
* to which the event belongs. Otherwise, return %NULL.
|
||||
*
|
||||
* Returns: the event sequence that the event belongs to
|
||||
* Returns: (transfer none): the event sequence that the event belongs to
|
||||
*
|
||||
* Since: 3.4
|
||||
*/
|
||||
@@ -2090,35 +2092,32 @@ _gdk_event_button_generate (GdkDisplay *display,
|
||||
}
|
||||
|
||||
void
|
||||
gdk_synthesize_window_state (GdkWindow *window,
|
||||
GdkWindowState unset_flags,
|
||||
GdkWindowState set_flags)
|
||||
_gdk_set_window_state (GdkWindow *window,
|
||||
GdkWindowState new_state)
|
||||
{
|
||||
GdkEvent temp_event;
|
||||
GdkWindowState old;
|
||||
|
||||
|
||||
g_return_if_fail (window != NULL);
|
||||
|
||||
|
||||
temp_event.window_state.window = window;
|
||||
temp_event.window_state.type = GDK_WINDOW_STATE;
|
||||
temp_event.window_state.send_event = FALSE;
|
||||
|
||||
old = temp_event.window_state.window->state;
|
||||
|
||||
temp_event.window_state.new_window_state = old;
|
||||
temp_event.window_state.new_window_state |= set_flags;
|
||||
temp_event.window_state.new_window_state &= ~unset_flags;
|
||||
temp_event.window_state.changed_mask = temp_event.window_state.new_window_state ^ old;
|
||||
temp_event.window_state.new_window_state = new_state;
|
||||
|
||||
old = window->state;
|
||||
|
||||
if (temp_event.window_state.new_window_state == old)
|
||||
return; /* No actual work to do, nothing changed. */
|
||||
|
||||
temp_event.window_state.changed_mask = new_state ^ old;
|
||||
|
||||
/* Actually update the field in GdkWindow, this is sort of an odd
|
||||
* place to do it, but seems like the safest since it ensures we expose no
|
||||
* inconsistent state to the user.
|
||||
*/
|
||||
|
||||
window->state = temp_event.window_state.new_window_state;
|
||||
|
||||
window->state = new_state;
|
||||
|
||||
if (temp_event.window_state.changed_mask & GDK_WINDOW_STATE_WITHDRAWN)
|
||||
_gdk_window_update_viewable (window);
|
||||
@@ -2134,7 +2133,6 @@ gdk_synthesize_window_state (GdkWindow *window,
|
||||
case GDK_WINDOW_TEMP: /* ? */
|
||||
gdk_display_put_event (gdk_window_get_display (window), &temp_event);
|
||||
break;
|
||||
|
||||
case GDK_WINDOW_FOREIGN:
|
||||
case GDK_WINDOW_ROOT:
|
||||
case GDK_WINDOW_CHILD:
|
||||
@@ -2142,6 +2140,16 @@ gdk_synthesize_window_state (GdkWindow *window,
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
gdk_synthesize_window_state (GdkWindow *window,
|
||||
GdkWindowState unset_flags,
|
||||
GdkWindowState set_flags)
|
||||
{
|
||||
g_return_if_fail (window != NULL);
|
||||
|
||||
_gdk_set_window_state (window, (window->state | set_flags) & ~unset_flags);
|
||||
}
|
||||
|
||||
/**
|
||||
* gdk_display_set_double_click_time:
|
||||
* @display: a #GdkDisplay
|
||||
@@ -2201,6 +2209,22 @@ G_DEFINE_BOXED_TYPE (GdkEvent, gdk_event,
|
||||
gdk_event_copy,
|
||||
gdk_event_free)
|
||||
|
||||
static GdkEventSequence *
|
||||
gdk_event_sequence_copy (GdkEventSequence *sequence)
|
||||
{
|
||||
return sequence;
|
||||
}
|
||||
|
||||
static void
|
||||
gdk_event_sequence_free (GdkEventSequence *sequence)
|
||||
{
|
||||
/* Nothing to free here */
|
||||
}
|
||||
|
||||
G_DEFINE_BOXED_TYPE (GdkEventSequence, gdk_event_sequence,
|
||||
gdk_event_sequence_copy,
|
||||
gdk_event_sequence_free)
|
||||
|
||||
/**
|
||||
* gdk_setting_get:
|
||||
* @name: the name of the setting.
|
||||
|
||||
+5
-2
@@ -30,7 +30,6 @@
|
||||
#endif
|
||||
|
||||
#include <gdk/gdkversionmacros.h>
|
||||
#include <gdk/gdkcolor.h>
|
||||
#include <gdk/gdktypes.h>
|
||||
#include <gdk/gdkdnd.h>
|
||||
#include <gdk/gdkdevice.h>
|
||||
@@ -51,6 +50,7 @@ G_BEGIN_DECLS
|
||||
|
||||
|
||||
#define GDK_TYPE_EVENT (gdk_event_get_type ())
|
||||
#define GDK_TYPE_EVENT_SEQUENCE (gdk_event_sequence_get_type ())
|
||||
|
||||
/**
|
||||
* GDK_PRIORITY_EVENTS:
|
||||
@@ -189,7 +189,7 @@ typedef enum {
|
||||
* GdkFilterFunc:
|
||||
* @xevent: the native event to filter.
|
||||
* @event: the GDK event to which the X event will be translated.
|
||||
* @data: user data set when the filter was installed.
|
||||
* @data: (closure): user data set when the filter was installed.
|
||||
*
|
||||
* Specifies the type of function used to filter native events before they are
|
||||
* converted to GDK events.
|
||||
@@ -1194,6 +1194,9 @@ union _GdkEvent
|
||||
GDK_AVAILABLE_IN_ALL
|
||||
GType gdk_event_get_type (void) G_GNUC_CONST;
|
||||
|
||||
GDK_AVAILABLE_IN_3_14
|
||||
GType gdk_event_sequence_get_type (void) G_GNUC_CONST;
|
||||
|
||||
GDK_AVAILABLE_IN_ALL
|
||||
gboolean gdk_events_pending (void);
|
||||
GDK_AVAILABLE_IN_ALL
|
||||
|
||||
+5
-5
@@ -436,7 +436,7 @@ _gdk_frame_clock_begin_frame (GdkFrameClock *frame_clock)
|
||||
* for the current frame or a recent frame. The #GdkFrameTimings
|
||||
* object may not yet be complete: see gdk_frame_timings_get_complete().
|
||||
*
|
||||
* Returns: the #GdkFrameTimings object for the specified
|
||||
* Returns: (nullable): the #GdkFrameTimings object for the specified
|
||||
* frame, or %NULL if it is not available. See
|
||||
* gdk_frame_clock_get_history_start().
|
||||
* Since: 3.8
|
||||
@@ -469,10 +469,10 @@ gdk_frame_clock_get_timings (GdkFrameClock *frame_clock,
|
||||
*
|
||||
* Gets the frame timings for the current frame.
|
||||
*
|
||||
* Returns: the #GdkFrameTimings for the frame currently being
|
||||
* processed, or even no frame is being processed, for the
|
||||
* previous frame. Before any frames have been procesed,
|
||||
* returns %NULL.
|
||||
* Returns: (nullable): the #GdkFrameTimings for the frame currently
|
||||
* being processed, or even no frame is being processed, for the
|
||||
* previous frame. Before any frames have been procesed, returns
|
||||
* %NULL.
|
||||
* Since: 3.8
|
||||
*/
|
||||
GdkFrameTimings *
|
||||
|
||||
+2
-3
@@ -321,9 +321,8 @@ void _gdk_windowing_event_data_copy (const GdkEvent *src,
|
||||
GdkEvent *dst);
|
||||
void _gdk_windowing_event_data_free (GdkEvent *event);
|
||||
|
||||
void gdk_synthesize_window_state (GdkWindow *window,
|
||||
GdkWindowState unset_flags,
|
||||
GdkWindowState set_flags);
|
||||
void _gdk_set_window_state (GdkWindow *window,
|
||||
GdkWindowState new_state);
|
||||
|
||||
gboolean _gdk_cairo_surface_extents (cairo_surface_t *surface,
|
||||
GdkRectangle *extents);
|
||||
|
||||
+3
-3
@@ -680,9 +680,9 @@ gdk_keymap_get_modifier_mask (GdkKeymap *keymap,
|
||||
* `gdk/gdkkeysyms.h` header file
|
||||
* but without the leading “GDK_KEY_”.
|
||||
*
|
||||
* Returns: (transfer none): a string containing the name of the key,
|
||||
* or %NULL if @keyval is not a valid key. The string should not be
|
||||
* modified.
|
||||
* Returns: (nullable) (transfer none): a string containing the name
|
||||
* of the key, or %NULL if @keyval is not a valid key. The string
|
||||
* should not be modified.
|
||||
*/
|
||||
gchar *
|
||||
gdk_keyval_name (guint keyval)
|
||||
|
||||
@@ -321,7 +321,8 @@ gdk_offscreen_window_get_device_state (GdkWindow *window,
|
||||
* If you need to keep this around over window resizes, you need to
|
||||
* add a reference to it.
|
||||
*
|
||||
* Returns: (transfer none): The offscreen surface, or %NULL if not offscreen
|
||||
* Returns: (nullable) (transfer none): The offscreen surface, or
|
||||
* %NULL if not offscreen
|
||||
*/
|
||||
cairo_surface_t *
|
||||
gdk_offscreen_window_get_surface (GdkWindow *window)
|
||||
@@ -608,8 +609,8 @@ gdk_offscreen_window_set_embedder (GdkWindow *window,
|
||||
*
|
||||
* Gets the window that @window is embedded in.
|
||||
*
|
||||
* Returns: (transfer none): the embedding #GdkWindow, or %NULL
|
||||
* if @window is not an mbedded offscreen window
|
||||
* Returns: (nullable) (transfer none): the embedding #GdkWindow, or
|
||||
* %NULL if @window is not an mbedded offscreen window
|
||||
*
|
||||
* Since: 2.18
|
||||
*/
|
||||
|
||||
@@ -24,7 +24,6 @@
|
||||
|
||||
#include "gdkpixbuf.h"
|
||||
|
||||
#include "gdkcolor.h"
|
||||
#include "gdkwindow.h"
|
||||
#include "gdkinternals.h"
|
||||
|
||||
@@ -77,8 +76,8 @@
|
||||
* (In short, there are several ways this function can fail, and if it fails
|
||||
* it returns %NULL; so check the return value.)
|
||||
*
|
||||
* Returns: (transfer full): A newly-created pixbuf with a reference
|
||||
* count of 1, or %NULL on error
|
||||
* Returns: (nullable) (transfer full): A newly-created pixbuf with a
|
||||
* reference count of 1, or %NULL on error
|
||||
*/
|
||||
GdkPixbuf *
|
||||
gdk_pixbuf_get_from_window (GdkWindow *src,
|
||||
@@ -225,8 +224,8 @@ convert_no_alpha (guchar *dest_data,
|
||||
* This function will create an RGB pixbuf with 8 bits per channel.
|
||||
* The pixbuf will contain an alpha channel if the @surface contains one.
|
||||
*
|
||||
* Returns: (transfer full): A newly-created pixbuf with a reference
|
||||
* count of 1, or %NULL on error
|
||||
* Returns: (nullable) (transfer full): A newly-created pixbuf with a
|
||||
* reference count of 1, or %NULL on error
|
||||
*/
|
||||
GdkPixbuf *
|
||||
gdk_pixbuf_get_from_surface (cairo_surface_t *surface,
|
||||
|
||||
+11
-10
@@ -427,8 +427,8 @@ gdk_screen_set_font_options (GdkScreen *screen,
|
||||
*
|
||||
* Gets any options previously set with gdk_screen_set_font_options().
|
||||
*
|
||||
* Returns: the current font options, or %NULL if no default
|
||||
* font options have been set.
|
||||
* Returns: (nullable): the current font options, or %NULL if no
|
||||
* default font options have been set.
|
||||
*
|
||||
* Since: 2.10
|
||||
**/
|
||||
@@ -760,8 +760,8 @@ gdk_screen_get_monitor_height_mm (GdkScreen *screen,
|
||||
* Usually something like VGA, DVI, or TV, not the actual
|
||||
* product name of the display device.
|
||||
*
|
||||
* Returns: a newly-allocated string containing the name of the monitor,
|
||||
* or %NULL if the name cannot be determined
|
||||
* Returns: (nullable): a newly-allocated string containing the name
|
||||
* of the monitor, or %NULL if the name cannot be determined
|
||||
*
|
||||
* Since: 2.14
|
||||
*/
|
||||
@@ -899,8 +899,9 @@ gdk_screen_get_system_visual (GdkScreen * screen)
|
||||
* For setting an overall opacity for a top-level window, see
|
||||
* gdk_window_set_opacity().
|
||||
*
|
||||
* Returns: (transfer none): a visual to use for windows with an
|
||||
* alpha channel or %NULL if the capability is not available.
|
||||
* Returns: (nullable) (transfer none): a visual to use for windows
|
||||
* with an alpha channel or %NULL if the capability is not
|
||||
* available.
|
||||
*
|
||||
* Since: 2.8
|
||||
**/
|
||||
@@ -974,7 +975,8 @@ gdk_screen_make_display_name (GdkScreen *screen)
|
||||
* The returned window should be unrefed using g_object_unref() when
|
||||
* no longer needed.
|
||||
*
|
||||
* Returns: (transfer full): the currently active window, or %NULL.
|
||||
* Returns: (nullable) (transfer full): the currently active window,
|
||||
* or %NULL.
|
||||
*
|
||||
* Since: 2.10
|
||||
**/
|
||||
@@ -1006,9 +1008,8 @@ gdk_screen_get_active_window (GdkScreen *screen)
|
||||
* windows it contains, so it should be freed using g_list_free() and
|
||||
* its windows unrefed using g_object_unref() when no longer needed.
|
||||
*
|
||||
* Returns: (transfer full) (element-type GdkWindow):
|
||||
* a list of #GdkWindows for the current window stack,
|
||||
* or %NULL.
|
||||
* Returns: (nullable) (transfer full) (element-type GdkWindow): a
|
||||
* list of #GdkWindows for the current window stack, or %NULL.
|
||||
*
|
||||
* Since: 2.10
|
||||
**/
|
||||
|
||||
+16
-17
@@ -62,7 +62,7 @@
|
||||
|
||||
/**
|
||||
* gdk_selection_owner_set:
|
||||
* @owner: a #GdkWindow or %NULL to indicate that the
|
||||
* @owner: (allow-none): a #GdkWindow or %NULL to indicate that the
|
||||
* the owner for the given should be unset.
|
||||
* @selection: an atom identifying a selection.
|
||||
* @time_: timestamp to use when setting the selection.
|
||||
@@ -95,14 +95,12 @@ gdk_selection_owner_set (GdkWindow *owner,
|
||||
*
|
||||
* Determines the owner of the given selection.
|
||||
*
|
||||
* Returns: (transfer none): if there is a selection owner for
|
||||
* this window, and it is a window known to the current
|
||||
* process, the #GdkWindow that owns the selection, otherwise
|
||||
* %NULL. Note that the return value may be owned
|
||||
* by a different process if a foreign window
|
||||
* was previously created for that window, but
|
||||
* a new foreign window will never be created by
|
||||
* this call.
|
||||
* Returns: (nullable) (transfer none): if there is a selection owner
|
||||
* for this window, and it is a window known to the current process,
|
||||
* the #GdkWindow that owns the selection, otherwise %NULL. Note
|
||||
* that the return value may be owned by a different process if a
|
||||
* foreign window was previously created for that window, but a new
|
||||
* foreign window will never be created by this call.
|
||||
*/
|
||||
GdkWindow*
|
||||
gdk_selection_owner_get (GdkAtom selection)
|
||||
@@ -138,7 +136,7 @@ gdk_selection_send_notify (GdkWindow *requestor,
|
||||
/**
|
||||
* gdk_selection_owner_set_for_display:
|
||||
* @display: the #GdkDisplay
|
||||
* @owner: a #GdkWindow or %NULL to indicate that the owner for
|
||||
* @owner: (nullable): a #GdkWindow or %NULL to indicate that the owner for
|
||||
* the given should be unset
|
||||
* @selection: an atom identifying a selection
|
||||
* @time_: timestamp to use when setting the selection
|
||||
@@ -179,9 +177,10 @@ gdk_selection_owner_set_for_display (GdkDisplay *display,
|
||||
* process if a foreign window was previously created for that
|
||||
* window, but a new foreign window will never be created by this call.
|
||||
*
|
||||
* Returns: (transfer none): if there is a selection owner for this window,
|
||||
* and it is a window known to the current process, the #GdkWindow that
|
||||
* owns the selection, otherwise %NULL.
|
||||
* Returns: (nullable) (transfer none): if there is a selection owner
|
||||
* for this window, and it is a window known to the current
|
||||
* process, the #GdkWindow that owns the selection, otherwise
|
||||
* %NULL.
|
||||
*
|
||||
* Since: 2.2
|
||||
*/
|
||||
@@ -318,10 +317,10 @@ gdk_text_property_to_utf8_list_for_display (GdkDisplay *display,
|
||||
* is not specified; it may be as pseudo-escape sequences
|
||||
* \x{ABCD}, or it may be in some other form of approximation.
|
||||
*
|
||||
* Returns: the newly-allocated string, or %NULL if the
|
||||
* conversion failed. (It should not fail for
|
||||
* any properly formed UTF-8 string unless system
|
||||
* limits like memory or file descriptors are exceeded.)
|
||||
* Returns: (nullable): the newly-allocated string, or %NULL if the
|
||||
* conversion failed. (It should not fail for any properly
|
||||
* formed UTF-8 string unless system limits like memory or
|
||||
* file descriptors are exceeded.)
|
||||
**/
|
||||
gchar *
|
||||
gdk_utf8_to_string_target (const gchar *str)
|
||||
|
||||
@@ -122,6 +122,15 @@
|
||||
*/
|
||||
#define GDK_VERSION_3_12 (G_ENCODE_VERSION (3, 12))
|
||||
|
||||
/**
|
||||
* GDK_VERSION_3_14:
|
||||
*
|
||||
* A macro that evaluates to the 3.14 version of GDK, in a format
|
||||
* that can be used by the C pre-processor.
|
||||
*
|
||||
* Since: 3.14
|
||||
*/
|
||||
#define GDK_VERSION_3_14 (G_ENCODE_VERSION (3, 14))
|
||||
|
||||
/* evaluates to the current stable version; for development cycles,
|
||||
* this means the next stable target
|
||||
@@ -293,4 +302,19 @@
|
||||
# define GDK_AVAILABLE_IN_3_12 _GDK_EXTERN
|
||||
#endif
|
||||
|
||||
#if GDK_VERSION_MIN_REQUIRED >= GDK_VERSION_3_14
|
||||
# define GDK_DEPRECATED_IN_3_14 GDK_DEPRECATED
|
||||
# define GDK_DEPRECATED_IN_3_14_FOR(f) GDK_DEPRECATED_FOR(f)
|
||||
#else
|
||||
# define GDK_DEPRECATED_IN_3_14 _GDK_EXTERN
|
||||
# define GDK_DEPRECATED_IN_3_14_FOR(f) _GDK_EXTERN
|
||||
#endif
|
||||
|
||||
#if GDK_VERSION_MAX_ALLOWED < GDK_VERSION_3_14
|
||||
# define GDK_AVAILABLE_IN_3_14 GDK_UNAVAILABLE(3, 14)
|
||||
#else
|
||||
# define GDK_AVAILABLE_IN_3_14 _GDK_EXTERN
|
||||
#endif
|
||||
|
||||
#endif /* __GDK_VERSION_MACROS_H__ */
|
||||
|
||||
|
||||
+2
-2
@@ -203,8 +203,8 @@ gdk_visual_get_best_with_type (GdkVisualType visual_type)
|
||||
* Combines gdk_visual_get_best_with_depth() and
|
||||
* gdk_visual_get_best_with_type().
|
||||
*
|
||||
* Returns: (transfer none): best visual with both @depth and
|
||||
* @visual_type, or %NULL if none
|
||||
* Returns: (nullable) (transfer none): best visual with both @depth
|
||||
* and @visual_type, or %NULL if none
|
||||
*/
|
||||
GdkVisual*
|
||||
gdk_visual_get_best_with_both (gint depth,
|
||||
|
||||
+63
-27
@@ -329,8 +329,8 @@ gdk_window_class_init (GdkWindowClass *klass)
|
||||
* The ::pick-embedded-child signal is emitted to find an embedded
|
||||
* child at the given position.
|
||||
*
|
||||
* Returns: (transfer none): the #GdkWindow of the embedded child at
|
||||
* @x, @y, or %NULL
|
||||
* Returns: (nullable) (transfer none): the #GdkWindow of the
|
||||
* embedded child at @x, @y, or %NULL
|
||||
*
|
||||
* Since: 2.18
|
||||
*/
|
||||
@@ -935,7 +935,7 @@ recompute_visible_regions_internal (GdkWindow *private,
|
||||
/* Convert from parent coords to window coords */
|
||||
cairo_region_translate (new_clip, -private->x, -private->y);
|
||||
|
||||
if (private->shape)
|
||||
if (should_apply_clip_as_shape (private) && private->shape)
|
||||
cairo_region_intersect (new_clip, private->shape);
|
||||
}
|
||||
else
|
||||
@@ -1853,14 +1853,14 @@ window_remove_from_pointer_info (GdkWindow *window,
|
||||
/**
|
||||
* _gdk_window_destroy_hierarchy:
|
||||
* @window: a #GdkWindow
|
||||
* @recursing: If TRUE, then this is being called because a parent
|
||||
* @recursing: If %TRUE, then this is being called because a parent
|
||||
* was destroyed.
|
||||
* @recursing_native: If TRUE, then this is being called because a native parent
|
||||
* @recursing_native: If %TRUE, then this is being called because a native parent
|
||||
* was destroyed. This generally means that the call to the
|
||||
* windowing system to destroy the window can be omitted, since
|
||||
* it will be destroyed as a result of the parent being destroyed.
|
||||
* Unless @foreign_destroy.
|
||||
* @foreign_destroy: If TRUE, the window or a parent was destroyed by some
|
||||
* @foreign_destroy: If %TRUE, the window or a parent was destroyed by some
|
||||
* external agency. The window has already been destroyed and no
|
||||
* windowing system calls should be made. (This may never happen
|
||||
* for some windowing systems.)
|
||||
@@ -2024,7 +2024,7 @@ _gdk_window_destroy_hierarchy (GdkWindow *window,
|
||||
/**
|
||||
* _gdk_window_destroy:
|
||||
* @window: a #GdkWindow
|
||||
* @foreign_destroy: If TRUE, the window or a parent was destroyed by some
|
||||
* @foreign_destroy: If %TRUE, the window or a parent was destroyed by some
|
||||
* external agency. The window has already been destroyed and no
|
||||
* windowing system calls should be made. (This may never happen
|
||||
* for some windowing systems.)
|
||||
@@ -3779,7 +3779,7 @@ gdk_window_invalidate_rect (GdkWindow *window,
|
||||
}
|
||||
|
||||
/**
|
||||
* gdk_window_set_invalidate_handler:
|
||||
* gdk_window_set_invalidate_handler: (skip)
|
||||
* @window: a #GdkWindow
|
||||
* @handler: a #GdkWindowInvalidateHandlerFunc callback function
|
||||
*
|
||||
@@ -3961,7 +3961,7 @@ gdk_window_invalidate_maybe_recurse_full (GdkWindow *window,
|
||||
*
|
||||
* The @child_func parameter controls whether the region of
|
||||
* each child window that intersects @region will also be invalidated.
|
||||
* Only children for which @child_func returns TRUE will have the area
|
||||
* Only children for which @child_func returns #TRUE will have the area
|
||||
* invalidated.
|
||||
**/
|
||||
void
|
||||
@@ -4412,9 +4412,9 @@ gdk_window_constrain_size (GdkGeometry *geometry,
|
||||
* The position is given in coordinates relative to the upper left
|
||||
* corner of @window.
|
||||
*
|
||||
* Returns: (transfer none): the window containing the pointer (as with
|
||||
* gdk_window_at_pointer()), or %NULL if the window containing the
|
||||
* pointer isn’t known to GDK
|
||||
* Returns: (nullable) (transfer none): the window containing the
|
||||
* pointer (as with gdk_window_at_pointer()), or %NULL if the window
|
||||
* containing the pointer isn’t known to GDK
|
||||
*
|
||||
* Deprecated: 3.0: Use gdk_window_get_device_position() instead.
|
||||
**/
|
||||
@@ -4445,8 +4445,9 @@ gdk_window_get_pointer (GdkWindow *window,
|
||||
* The position is given in coordinates relative to the upper left
|
||||
* corner of @window.
|
||||
*
|
||||
* Returns: (transfer none): The window underneath @device (as with
|
||||
* gdk_device_get_window_at_position()), or %NULL if the window is not known to GDK.
|
||||
* Returns: (nullable) (transfer none): The window underneath @device
|
||||
* (as with gdk_device_get_window_at_position()), or %NULL if the
|
||||
* window is not known to GDK.
|
||||
*
|
||||
* Since: 3.10
|
||||
**/
|
||||
@@ -4501,8 +4502,9 @@ gdk_window_get_device_position_double (GdkWindow *window,
|
||||
*
|
||||
* Use gdk_window_get_device_position_double() if you need subpixel precision.
|
||||
*
|
||||
* Returns: (transfer none): The window underneath @device (as with
|
||||
* gdk_device_get_window_at_position()), or %NULL if the window is not known to GDK.
|
||||
* Returns: (nullable) (transfer none): The window underneath @device
|
||||
* (as with gdk_device_get_window_at_position()), or %NULL if the
|
||||
* window is not known to GDK.
|
||||
*
|
||||
* Since: 3.0
|
||||
**/
|
||||
@@ -5814,8 +5816,8 @@ gdk_window_set_background_pattern (GdkWindow *window,
|
||||
* does not have its own background and reuses the parent's, %NULL is
|
||||
* returned and you’ll have to query it yourself.
|
||||
*
|
||||
* Returns: (transfer none): The pattern to use for the background or
|
||||
* %NULL to use the parent’s background.
|
||||
* Returns: (nullable) (transfer none): The pattern to use for the
|
||||
* background or %NULL to use the parent’s background.
|
||||
*
|
||||
* Since: 2.22
|
||||
**/
|
||||
@@ -5860,10 +5862,10 @@ gdk_window_set_cursor_internal (GdkWindow *window,
|
||||
* there is no custom cursor set on the specified window, and it is
|
||||
* using the cursor for its parent window.
|
||||
*
|
||||
* Returns: (transfer none): a #GdkCursor, or %NULL. The returned
|
||||
* object is owned by the #GdkWindow and should not be unreferenced
|
||||
* directly. Use gdk_window_set_cursor() to unset the cursor of the
|
||||
* window
|
||||
* Returns: (nullable) (transfer none): a #GdkCursor, or %NULL. The
|
||||
* returned object is owned by the #GdkWindow and should not be
|
||||
* unreferenced directly. Use gdk_window_set_cursor() to unset the
|
||||
* cursor of the window
|
||||
*
|
||||
* Since: 2.18
|
||||
*/
|
||||
@@ -5940,10 +5942,10 @@ gdk_window_set_cursor (GdkWindow *window,
|
||||
* there is no custom cursor set on the specified window, and it is
|
||||
* using the cursor for its parent window.
|
||||
*
|
||||
* Returns: (transfer none): a #GdkCursor, or %NULL. The returned
|
||||
* object is owned by the #GdkWindow and should not be unreferenced
|
||||
* directly. Use gdk_window_set_cursor() to unset the cursor of the
|
||||
* window
|
||||
* Returns: (nullable) (transfer none): a #GdkCursor, or %NULL. The
|
||||
* returned object is owned by the #GdkWindow and should not be
|
||||
* unreferenced directly. Use gdk_window_set_cursor() to unset the
|
||||
* cursor of the window
|
||||
*
|
||||
* Since: 3.0
|
||||
**/
|
||||
@@ -6889,6 +6891,7 @@ update_cursor (GdkDisplay *display,
|
||||
/* Find the first window with the cursor actually set, as
|
||||
the cursor is inherited from the parent */
|
||||
while (cursor_window->cursor == NULL &&
|
||||
!g_hash_table_contains (cursor_window->device_cursor, device) &&
|
||||
(parent = get_event_parent (cursor_window)) != NULL &&
|
||||
parent->window_type != GDK_WINDOW_ROOT)
|
||||
cursor_window = parent;
|
||||
@@ -9298,7 +9301,8 @@ gdk_window_create_similar_surface (GdkWindow * window,
|
||||
|
||||
/**
|
||||
* gdk_window_create_similar_image_surface:
|
||||
* @window: window to make new surface similar to, or %NULL if none
|
||||
* @window: (nullable): window to make new surface similar to, or
|
||||
* %NULL if none
|
||||
* @format: (type int): the format for the new surface
|
||||
* @width: width of the new surface
|
||||
* @height: height of the new surface
|
||||
@@ -10918,3 +10922,35 @@ gdk_window_set_shadow_width (GdkWindow *window,
|
||||
if (impl_class->set_shadow_width)
|
||||
impl_class->set_shadow_width (window, left, right, top, bottom);
|
||||
}
|
||||
|
||||
/**
|
||||
* gdk_window_show_window_menu:
|
||||
* @window: a #GdkWindow
|
||||
* @event: a #GdkEvent to show the menu for
|
||||
*
|
||||
* Asks the windowing system to show the window menu. The window menu
|
||||
* is the menu shown when right-clicking the titlebar on traditional
|
||||
* windows managed by the window manager. This is useful for windows
|
||||
* using client-side decorations, activating it with a right-click
|
||||
* on the window decorations.
|
||||
*
|
||||
* Returns: %TRUE if the window menu was shown and %FALSE otherwise.
|
||||
*
|
||||
* Since: 3.14
|
||||
*/
|
||||
gboolean
|
||||
gdk_window_show_window_menu (GdkWindow *window,
|
||||
GdkEvent *event)
|
||||
{
|
||||
GdkWindowImplClass *impl_class;
|
||||
|
||||
g_return_val_if_fail (GDK_IS_WINDOW (window), FALSE);
|
||||
g_return_val_if_fail (!GDK_WINDOW_DESTROYED (window), FALSE);
|
||||
|
||||
impl_class = GDK_WINDOW_IMPL_GET_CLASS (window->impl);
|
||||
|
||||
if (impl_class->show_window_menu)
|
||||
return impl_class->show_window_menu (window, event);
|
||||
else
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
@@ -1100,6 +1100,9 @@ void gdk_window_set_shadow_width (GdkWindow *window,
|
||||
gint right,
|
||||
gint top,
|
||||
gint bottom);
|
||||
GDK_AVAILABLE_IN_3_14
|
||||
gboolean gdk_window_show_window_menu (GdkWindow *window,
|
||||
GdkEvent *event);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
|
||||
@@ -301,6 +301,8 @@ struct _GdkWindowImplClass
|
||||
gint right,
|
||||
gint top,
|
||||
gint bottom);
|
||||
gboolean (* show_window_menu) (GdkWindow *window,
|
||||
GdkEvent *event);
|
||||
};
|
||||
|
||||
/* Interface Functions */
|
||||
|
||||
@@ -50,13 +50,12 @@ struct _GdkWaylandCursor
|
||||
{
|
||||
GdkCursor cursor;
|
||||
gchar *name;
|
||||
guint serial;
|
||||
|
||||
struct
|
||||
{
|
||||
int hotspot_x, hotspot_y;
|
||||
int width, height, scale;
|
||||
struct wl_buffer *buffer;
|
||||
cairo_surface_t *cairo_surface;
|
||||
} surface;
|
||||
|
||||
struct wl_cursor *wl_cursor;
|
||||
@@ -69,8 +68,6 @@ struct _GdkWaylandCursorClass
|
||||
|
||||
G_DEFINE_TYPE (GdkWaylandCursor, _gdk_wayland_cursor, GDK_TYPE_CURSOR)
|
||||
|
||||
static guint theme_serial = 0;
|
||||
|
||||
struct cursor_cache_key
|
||||
{
|
||||
GdkCursorType type;
|
||||
@@ -168,8 +165,8 @@ gdk_wayland_cursor_finalize (GObject *object)
|
||||
GdkWaylandCursor *cursor = GDK_WAYLAND_CURSOR (object);
|
||||
|
||||
g_free (cursor->name);
|
||||
if (cursor->surface.buffer)
|
||||
wl_buffer_destroy (cursor->surface.buffer);
|
||||
if (cursor->surface.cairo_surface)
|
||||
cairo_surface_destroy (cursor->surface.cairo_surface);
|
||||
|
||||
G_OBJECT_CLASS (_gdk_wayland_cursor_parent_class)->finalize (object);
|
||||
}
|
||||
@@ -225,7 +222,10 @@ _gdk_wayland_cursor_get_buffer (GdkCursor *cursor,
|
||||
*h = wayland_cursor->surface.height / wayland_cursor->surface.scale;
|
||||
*scale = wayland_cursor->surface.scale;
|
||||
|
||||
return wayland_cursor->surface.buffer;
|
||||
if (wayland_cursor->surface.cairo_surface)
|
||||
return _gdk_wayland_shm_surface_get_wl_buffer (wayland_cursor->surface.cairo_surface);
|
||||
else
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -316,7 +316,6 @@ _gdk_wayland_display_get_cursor_for_name (GdkDisplay *display,
|
||||
"display", display,
|
||||
NULL);
|
||||
private->name = g_strdup (name);
|
||||
private->serial = theme_serial;
|
||||
private->surface.scale = 1;
|
||||
|
||||
/* Blank cursor case */
|
||||
@@ -339,11 +338,6 @@ _gdk_wayland_display_get_cursor_for_surface (GdkDisplay *display,
|
||||
{
|
||||
GdkWaylandCursor *cursor;
|
||||
GdkWaylandDisplay *wayland_display = GDK_WAYLAND_DISPLAY (display);
|
||||
int stride;
|
||||
size_t size;
|
||||
gpointer data;
|
||||
struct wl_shm_pool *pool;
|
||||
cairo_surface_t *buffer_surface;
|
||||
cairo_t *cr;
|
||||
|
||||
cursor = g_object_new (GDK_TYPE_WAYLAND_CURSOR,
|
||||
@@ -351,7 +345,6 @@ _gdk_wayland_display_get_cursor_for_surface (GdkDisplay *display,
|
||||
"display", wayland_display,
|
||||
NULL);
|
||||
cursor->name = NULL;
|
||||
cursor->serial = theme_serial;
|
||||
cursor->surface.hotspot_x = x;
|
||||
cursor->surface.hotspot_y = y;
|
||||
|
||||
@@ -375,36 +368,17 @@ _gdk_wayland_display_get_cursor_for_surface (GdkDisplay *display,
|
||||
cursor->surface.height = 1;
|
||||
}
|
||||
|
||||
pool = _create_shm_pool (wayland_display->shm,
|
||||
cursor->surface.width,
|
||||
cursor->surface.height,
|
||||
&size,
|
||||
&data);
|
||||
|
||||
cursor->surface.cairo_surface = _gdk_wayland_display_create_shm_surface (wayland_display,
|
||||
cursor->surface.width,
|
||||
cursor->surface.height,
|
||||
cursor->surface.scale);
|
||||
if (surface)
|
||||
{
|
||||
buffer_surface = cairo_image_surface_create_for_data (data,
|
||||
CAIRO_FORMAT_ARGB32,
|
||||
cursor->surface.width,
|
||||
cursor->surface.height,
|
||||
cursor->surface.width * 4);
|
||||
cr = cairo_create (buffer_surface);
|
||||
cr = cairo_create (cursor->surface.cairo_surface);
|
||||
cairo_set_source_surface (cr, surface, 0, 0);
|
||||
cairo_paint (cr);
|
||||
cairo_destroy (cr);
|
||||
cairo_surface_destroy (buffer_surface);
|
||||
}
|
||||
else
|
||||
memset (data, 0, 4);
|
||||
|
||||
stride = cursor->surface.width * 4;
|
||||
cursor->surface.buffer = wl_shm_pool_create_buffer (pool, 0,
|
||||
cursor->surface.width,
|
||||
cursor->surface.height,
|
||||
stride,
|
||||
WL_SHM_FORMAT_ARGB8888);
|
||||
|
||||
wl_shm_pool_destroy (pool);
|
||||
|
||||
return GDK_CURSOR (cursor);
|
||||
}
|
||||
|
||||
+304
-20
@@ -40,21 +40,38 @@ typedef struct _DataOffer DataOffer;
|
||||
|
||||
typedef struct _GdkWaylandSelectionOffer GdkWaylandSelectionOffer;
|
||||
|
||||
typedef struct _GdkWaylandTouchData GdkWaylandTouchData;
|
||||
|
||||
struct _GdkWaylandTouchData
|
||||
{
|
||||
uint32_t id;
|
||||
gdouble x;
|
||||
gdouble y;
|
||||
GdkWindow *window;
|
||||
guint initial_touch : 1;
|
||||
};
|
||||
|
||||
struct _GdkWaylandDeviceData
|
||||
{
|
||||
guint32 id;
|
||||
struct wl_seat *wl_seat;
|
||||
struct wl_pointer *wl_pointer;
|
||||
struct wl_keyboard *wl_keyboard;
|
||||
struct wl_touch *wl_touch;
|
||||
|
||||
GdkDisplay *display;
|
||||
GdkDeviceManager *device_manager;
|
||||
|
||||
GdkDevice *master_pointer;
|
||||
GdkDevice *master_keyboard;
|
||||
GdkDevice *pointer;
|
||||
GdkDevice *keyboard;
|
||||
GdkDevice *touch;
|
||||
GdkCursor *cursor;
|
||||
GdkKeymap *keymap;
|
||||
|
||||
GHashTable *touches;
|
||||
|
||||
GdkModifierType modifiers;
|
||||
GdkWindow *pointer_focus;
|
||||
GdkWindow *keyboard_focus;
|
||||
@@ -667,7 +684,8 @@ pointer_handle_enter (void *data,
|
||||
|
||||
event = gdk_event_new (GDK_ENTER_NOTIFY);
|
||||
event->crossing.window = g_object_ref (device->pointer_focus);
|
||||
gdk_event_set_device (event, device->pointer);
|
||||
gdk_event_set_device (event, device->master_pointer);
|
||||
gdk_event_set_source_device (event, device->pointer);
|
||||
event->crossing.subwindow = NULL;
|
||||
event->crossing.time = (guint32)(g_get_monotonic_time () / 1000);
|
||||
event->crossing.mode = GDK_CROSSING_NORMAL;
|
||||
@@ -710,7 +728,8 @@ pointer_handle_leave (void *data,
|
||||
|
||||
event = gdk_event_new (GDK_LEAVE_NOTIFY);
|
||||
event->crossing.window = g_object_ref (device->pointer_focus);
|
||||
gdk_event_set_device (event, device->pointer);
|
||||
gdk_event_set_device (event, device->master_pointer);
|
||||
gdk_event_set_source_device (event, device->pointer);
|
||||
event->crossing.subwindow = NULL;
|
||||
event->crossing.time = (guint32)(g_get_monotonic_time () / 1000);
|
||||
event->crossing.mode = GDK_CROSSING_NORMAL;
|
||||
@@ -763,7 +782,8 @@ pointer_handle_motion (void *data,
|
||||
|
||||
event->motion.type = GDK_MOTION_NOTIFY;
|
||||
event->motion.window = g_object_ref (device->pointer_focus);
|
||||
gdk_event_set_device (event, device->pointer);
|
||||
gdk_event_set_device (event, device->master_pointer);
|
||||
gdk_event_set_source_device (event, device->pointer);
|
||||
event->motion.time = time;
|
||||
event->motion.axes = NULL;
|
||||
event->motion.state = device->modifiers;
|
||||
@@ -822,7 +842,8 @@ pointer_handle_button (void *data,
|
||||
|
||||
event = gdk_event_new (state ? GDK_BUTTON_PRESS : GDK_BUTTON_RELEASE);
|
||||
event->button.window = g_object_ref (device->pointer_focus);
|
||||
gdk_event_set_device (event, device->pointer);
|
||||
gdk_event_set_device (event, device->master_pointer);
|
||||
gdk_event_set_source_device (event, device->pointer);
|
||||
event->button.time = time;
|
||||
event->button.axes = NULL;
|
||||
event->button.state = device->modifiers;
|
||||
@@ -881,7 +902,8 @@ pointer_handle_axis (void *data,
|
||||
device->time = time;
|
||||
event = gdk_event_new (GDK_SCROLL);
|
||||
event->scroll.window = g_object_ref (device->pointer_focus);
|
||||
gdk_event_set_device (event, device->pointer);
|
||||
gdk_event_set_device (event, device->master_pointer);
|
||||
gdk_event_set_source_device (event, device->pointer);
|
||||
event->scroll.time = time;
|
||||
event->scroll.direction = GDK_SCROLL_SMOOTH;
|
||||
event->scroll.delta_x = delta_x;
|
||||
@@ -944,7 +966,8 @@ keyboard_handle_enter (void *data,
|
||||
event->focus_change.window = g_object_ref (device->keyboard_focus);
|
||||
event->focus_change.send_event = FALSE;
|
||||
event->focus_change.in = TRUE;
|
||||
gdk_event_set_device (event, device->keyboard);
|
||||
gdk_event_set_device (event, device->master_keyboard);
|
||||
gdk_event_set_source_device (event, device->keyboard);
|
||||
|
||||
GDK_NOTE (EVENTS,
|
||||
g_message ("focus int, device %p surface %p",
|
||||
@@ -977,7 +1000,8 @@ keyboard_handle_leave (void *data,
|
||||
event->focus_change.window = g_object_ref (device->keyboard_focus);
|
||||
event->focus_change.send_event = FALSE;
|
||||
event->focus_change.in = FALSE;
|
||||
gdk_event_set_device (event, device->keyboard);
|
||||
gdk_event_set_device (event, device->master_keyboard);
|
||||
gdk_event_set_source_device (event, device->keyboard);
|
||||
|
||||
g_object_unref(device->keyboard_focus);
|
||||
device->keyboard_focus = NULL;
|
||||
@@ -1103,7 +1127,8 @@ deliver_key_event (GdkWaylandDeviceData *device,
|
||||
|
||||
event = gdk_event_new (state ? GDK_KEY_PRESS : GDK_KEY_RELEASE);
|
||||
event->key.window = device->keyboard_focus ? g_object_ref (device->keyboard_focus) : NULL;
|
||||
gdk_event_set_device (event, device->keyboard);
|
||||
gdk_event_set_device (event, device->master_keyboard);
|
||||
gdk_event_set_source_device (event, device->keyboard);
|
||||
event->button.time = time_;
|
||||
event->key.state = device->modifiers;
|
||||
event->key.group = 0;
|
||||
@@ -1216,6 +1241,174 @@ keyboard_handle_modifiers (void *data,
|
||||
g_signal_emit_by_name (keymap, "direction-changed");
|
||||
}
|
||||
|
||||
static GdkWaylandTouchData *
|
||||
_device_manager_add_touch (GdkWaylandDeviceData *device,
|
||||
uint32_t id,
|
||||
struct wl_surface *surface)
|
||||
{
|
||||
GdkWaylandTouchData *touch;
|
||||
|
||||
touch = g_new0 (GdkWaylandTouchData, 1);
|
||||
touch->id = id;
|
||||
touch->window = wl_surface_get_user_data (surface);
|
||||
touch->initial_touch = (g_hash_table_size (device->touches) == 0);
|
||||
|
||||
g_hash_table_insert (device->touches, GUINT_TO_POINTER (id), touch);
|
||||
|
||||
return touch;
|
||||
}
|
||||
|
||||
static GdkWaylandTouchData *
|
||||
_device_manager_get_touch (GdkWaylandDeviceData *device,
|
||||
uint32_t id)
|
||||
{
|
||||
return g_hash_table_lookup (device->touches, GUINT_TO_POINTER (id));
|
||||
}
|
||||
|
||||
static void
|
||||
_device_manager_remove_touch (GdkWaylandDeviceData *device,
|
||||
uint32_t id)
|
||||
{
|
||||
g_hash_table_remove (device->touches, GUINT_TO_POINTER (id));
|
||||
}
|
||||
|
||||
static GdkEvent *
|
||||
_create_touch_event (GdkWaylandDeviceData *device,
|
||||
GdkWaylandTouchData *touch,
|
||||
GdkEventType evtype,
|
||||
uint32_t time)
|
||||
{
|
||||
GdkWaylandDisplay *display = GDK_WAYLAND_DISPLAY (device->display);
|
||||
gint x_root, y_root;
|
||||
GdkEvent *event;
|
||||
|
||||
event = gdk_event_new (evtype);
|
||||
event->touch.window = g_object_ref (touch->window);
|
||||
gdk_event_set_device (event, device->master_pointer);
|
||||
gdk_event_set_source_device (event, device->touch);
|
||||
event->touch.time = time;
|
||||
event->touch.state = device->modifiers;
|
||||
gdk_event_set_screen (event, display->screen);
|
||||
event->touch.sequence = GUINT_TO_POINTER (touch->id);
|
||||
|
||||
if (touch->initial_touch)
|
||||
{
|
||||
_gdk_event_set_pointer_emulated (event, TRUE);
|
||||
event->touch.emulating_pointer = TRUE;
|
||||
}
|
||||
|
||||
gdk_window_get_root_coords (touch->window,
|
||||
touch->x, touch->y,
|
||||
&x_root, &y_root);
|
||||
|
||||
event->touch.x = touch->x;
|
||||
event->touch.y = touch->y;
|
||||
event->touch.x_root = x_root;
|
||||
event->touch.y_root = y_root;
|
||||
|
||||
return event;
|
||||
}
|
||||
|
||||
static void
|
||||
touch_handle_down (void *data,
|
||||
struct wl_touch *wl_touch,
|
||||
uint32_t serial,
|
||||
uint32_t time,
|
||||
struct wl_surface *wl_surface,
|
||||
int32_t id,
|
||||
wl_fixed_t x,
|
||||
wl_fixed_t y)
|
||||
{
|
||||
GdkWaylandDeviceData *device = data;
|
||||
GdkWaylandTouchData *touch;
|
||||
GdkEvent *event;
|
||||
|
||||
touch = _device_manager_add_touch (device, id, wl_surface);
|
||||
touch->x = wl_fixed_to_double (x);
|
||||
touch->y = wl_fixed_to_double (y);
|
||||
|
||||
event = _create_touch_event (device, touch, GDK_TOUCH_BEGIN, time);
|
||||
|
||||
GDK_NOTE (EVENTS,
|
||||
g_message ("touch begin %f %f", event->touch.x, event->touch.y));
|
||||
|
||||
_gdk_wayland_display_deliver_event (device->display, event);
|
||||
}
|
||||
|
||||
static void
|
||||
touch_handle_up (void *data,
|
||||
struct wl_touch *wl_touch,
|
||||
uint32_t serial,
|
||||
uint32_t time,
|
||||
int32_t id)
|
||||
{
|
||||
GdkWaylandDeviceData *device = data;
|
||||
GdkWaylandTouchData *touch;
|
||||
GdkEvent *event;
|
||||
|
||||
touch = _device_manager_get_touch (device, id);
|
||||
event = _create_touch_event (device, touch, GDK_TOUCH_END, time);
|
||||
|
||||
GDK_NOTE (EVENTS,
|
||||
g_message ("touch end %f %f", event->touch.x, event->touch.y));
|
||||
|
||||
_gdk_wayland_display_deliver_event (device->display, event);
|
||||
_device_manager_remove_touch (device, id);
|
||||
}
|
||||
|
||||
static void
|
||||
touch_handle_motion (void *data,
|
||||
struct wl_touch *wl_touch,
|
||||
uint32_t time,
|
||||
int32_t id,
|
||||
wl_fixed_t x,
|
||||
wl_fixed_t y)
|
||||
{
|
||||
GdkWaylandDeviceData *device = data;
|
||||
GdkWaylandTouchData *touch;
|
||||
GdkEvent *event;
|
||||
|
||||
touch = _device_manager_get_touch (device, id);
|
||||
touch->x = wl_fixed_to_double (x);
|
||||
touch->y = wl_fixed_to_double (y);
|
||||
|
||||
event = _create_touch_event (device, touch, GDK_TOUCH_UPDATE, time);
|
||||
|
||||
GDK_NOTE (EVENTS,
|
||||
g_message ("touch update %f %f", event->touch.x, event->touch.y));
|
||||
|
||||
_gdk_wayland_display_deliver_event (device->display, event);
|
||||
}
|
||||
|
||||
static void
|
||||
touch_handle_frame (void *data,
|
||||
struct wl_touch *wl_touch)
|
||||
{
|
||||
}
|
||||
|
||||
static void
|
||||
touch_handle_cancel (void *data,
|
||||
struct wl_touch *wl_touch)
|
||||
{
|
||||
GdkWaylandDeviceData *device = data;
|
||||
GdkWaylandTouchData *touch;
|
||||
GHashTableIter iter;
|
||||
GdkEvent *event;
|
||||
|
||||
g_hash_table_iter_init (&iter, device->touches);
|
||||
|
||||
while (g_hash_table_iter_next (&iter, NULL, (gpointer *) &touch))
|
||||
{
|
||||
event = _create_touch_event (device, touch, GDK_TOUCH_CANCEL,
|
||||
GDK_CURRENT_TIME);
|
||||
_gdk_wayland_display_deliver_event (device->display, event);
|
||||
|
||||
g_hash_table_iter_remove (&iter);
|
||||
}
|
||||
|
||||
GDK_NOTE (EVENTS, g_message ("touch cancel"));
|
||||
}
|
||||
|
||||
static const struct wl_pointer_listener pointer_listener = {
|
||||
pointer_handle_enter,
|
||||
pointer_handle_leave,
|
||||
@@ -1232,6 +1425,14 @@ static const struct wl_keyboard_listener keyboard_listener = {
|
||||
keyboard_handle_modifiers,
|
||||
};
|
||||
|
||||
static const struct wl_touch_listener touch_listener = {
|
||||
touch_handle_down,
|
||||
touch_handle_up,
|
||||
touch_handle_motion,
|
||||
touch_handle_frame,
|
||||
touch_handle_cancel
|
||||
};
|
||||
|
||||
static void
|
||||
seat_handle_capabilities (void *data,
|
||||
struct wl_seat *seat,
|
||||
@@ -1248,14 +1449,15 @@ seat_handle_capabilities (void *data,
|
||||
wl_pointer_add_listener (device->wl_pointer, &pointer_listener, device);
|
||||
|
||||
device->pointer = g_object_new (GDK_TYPE_WAYLAND_DEVICE,
|
||||
"name", "Core Pointer",
|
||||
"type", GDK_DEVICE_TYPE_MASTER,
|
||||
"name", "Wayland Pointer",
|
||||
"type", GDK_DEVICE_TYPE_SLAVE,
|
||||
"input-source", GDK_SOURCE_MOUSE,
|
||||
"input-mode", GDK_MODE_SCREEN,
|
||||
"has-cursor", TRUE,
|
||||
"display", device->display,
|
||||
"device-manager", device->device_manager,
|
||||
NULL);
|
||||
_gdk_device_set_associated_device (device->pointer, device->master_pointer);
|
||||
GDK_WAYLAND_DEVICE (device->pointer)->device = device;
|
||||
|
||||
device_manager->devices =
|
||||
@@ -1267,6 +1469,7 @@ seat_handle_capabilities (void *data,
|
||||
{
|
||||
wl_pointer_destroy (device->wl_pointer);
|
||||
device->wl_pointer = NULL;
|
||||
_gdk_device_set_associated_device (device->pointer, NULL);
|
||||
|
||||
device_manager->devices =
|
||||
g_list_remove (device_manager->devices, device->pointer);
|
||||
@@ -1283,14 +1486,15 @@ seat_handle_capabilities (void *data,
|
||||
wl_keyboard_add_listener (device->wl_keyboard, &keyboard_listener, device);
|
||||
|
||||
device->keyboard = g_object_new (GDK_TYPE_WAYLAND_DEVICE,
|
||||
"name", "Core Keyboard",
|
||||
"type", GDK_DEVICE_TYPE_MASTER,
|
||||
"name", "Wayland Keyboard",
|
||||
"type", GDK_DEVICE_TYPE_SLAVE,
|
||||
"input-source", GDK_SOURCE_KEYBOARD,
|
||||
"input-mode", GDK_MODE_SCREEN,
|
||||
"has-cursor", FALSE,
|
||||
"display", device->display,
|
||||
"device-manager", device->device_manager,
|
||||
NULL);
|
||||
_gdk_device_set_associated_device (device->keyboard, device->master_keyboard);
|
||||
GDK_WAYLAND_DEVICE (device->keyboard)->device = device;
|
||||
|
||||
device_manager->devices =
|
||||
@@ -1302,6 +1506,7 @@ seat_handle_capabilities (void *data,
|
||||
{
|
||||
wl_keyboard_destroy (device->wl_keyboard);
|
||||
device->wl_keyboard = NULL;
|
||||
_gdk_device_set_associated_device (device->keyboard, NULL);
|
||||
|
||||
device_manager->devices =
|
||||
g_list_remove (device_manager->devices, device->keyboard);
|
||||
@@ -1311,10 +1516,41 @@ seat_handle_capabilities (void *data,
|
||||
device->keyboard = NULL;
|
||||
}
|
||||
|
||||
if (device->keyboard && device->pointer)
|
||||
if ((caps & WL_SEAT_CAPABILITY_TOUCH) && !device->wl_touch)
|
||||
{
|
||||
_gdk_device_set_associated_device (device->pointer, device->keyboard);
|
||||
_gdk_device_set_associated_device (device->keyboard, device->pointer);
|
||||
device->wl_touch = wl_seat_get_touch (seat);
|
||||
wl_touch_set_user_data (device->wl_touch, device);
|
||||
wl_touch_add_listener (device->wl_touch, &touch_listener, device);
|
||||
|
||||
device->touch = g_object_new (GDK_TYPE_WAYLAND_DEVICE,
|
||||
"name", "Wayland Touch",
|
||||
"type", GDK_DEVICE_TYPE_SLAVE,
|
||||
"input-source", GDK_SOURCE_TOUCHSCREEN,
|
||||
"input-mode", GDK_MODE_SCREEN,
|
||||
"has-cursor", FALSE,
|
||||
"display", device->display,
|
||||
"device-manager", device->device_manager,
|
||||
NULL);
|
||||
_gdk_device_set_associated_device (device->touch, device->master_pointer);
|
||||
GDK_WAYLAND_DEVICE (device->touch)->device = device;
|
||||
|
||||
device_manager->devices =
|
||||
g_list_prepend (device_manager->devices, device->touch);
|
||||
|
||||
g_signal_emit_by_name (device_manager, "device-added", device->touch);
|
||||
}
|
||||
else if (!(caps & WL_SEAT_CAPABILITY_TOUCH) && device->wl_touch)
|
||||
{
|
||||
wl_touch_destroy (device->wl_touch);
|
||||
device->wl_touch = NULL;
|
||||
_gdk_device_set_associated_device (device->touch, NULL);
|
||||
|
||||
device_manager->devices =
|
||||
g_list_remove (device_manager->devices, device->touch);
|
||||
|
||||
g_signal_emit_by_name (device_manager, "device-removed", device->touch);
|
||||
g_object_unref (device->touch);
|
||||
device->touch = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1337,6 +1573,49 @@ init_settings (GdkWaylandDeviceData *device)
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
init_devices (GdkWaylandDeviceData *device)
|
||||
{
|
||||
GdkWaylandDeviceManager *device_manager =
|
||||
GDK_WAYLAND_DEVICE_MANAGER (device->device_manager);
|
||||
|
||||
/* pointer */
|
||||
device->master_pointer = g_object_new (GDK_TYPE_WAYLAND_DEVICE,
|
||||
"name", "Core Pointer",
|
||||
"type", GDK_DEVICE_TYPE_MASTER,
|
||||
"input-source", GDK_SOURCE_MOUSE,
|
||||
"input-mode", GDK_MODE_SCREEN,
|
||||
"has-cursor", TRUE,
|
||||
"display", device->display,
|
||||
"device-manager", device_manager,
|
||||
NULL);
|
||||
GDK_WAYLAND_DEVICE (device->master_pointer)->device = device;
|
||||
|
||||
device_manager->devices =
|
||||
g_list_prepend (device_manager->devices, device->master_pointer);
|
||||
g_signal_emit_by_name (device_manager, "device-added", device->master_pointer);
|
||||
|
||||
/* keyboard */
|
||||
device->master_keyboard = g_object_new (GDK_TYPE_WAYLAND_DEVICE,
|
||||
"name", "Core Keyboard",
|
||||
"type", GDK_DEVICE_TYPE_MASTER,
|
||||
"input-source", GDK_SOURCE_KEYBOARD,
|
||||
"input-mode", GDK_MODE_SCREEN,
|
||||
"has-cursor", FALSE,
|
||||
"display", device->display,
|
||||
"device-manager", device_manager,
|
||||
NULL);
|
||||
GDK_WAYLAND_DEVICE (device->master_keyboard)->device = device;
|
||||
|
||||
device_manager->devices =
|
||||
g_list_prepend (device_manager->devices, device->master_keyboard);
|
||||
g_signal_emit_by_name (device_manager, "device-added", device->master_keyboard);
|
||||
|
||||
/* link both */
|
||||
_gdk_device_set_associated_device (device->master_pointer, device->master_keyboard);
|
||||
_gdk_device_set_associated_device (device->master_keyboard, device->master_pointer);
|
||||
}
|
||||
|
||||
void
|
||||
_gdk_wayland_device_manager_add_seat (GdkDeviceManager *device_manager,
|
||||
guint32 id,
|
||||
@@ -1354,7 +1633,8 @@ _gdk_wayland_device_manager_add_seat (GdkDeviceManager *device_manager,
|
||||
device->keymap = _gdk_wayland_keymap_new ();
|
||||
device->display = display;
|
||||
device->device_manager = device_manager;
|
||||
|
||||
device->touches = g_hash_table_new_full (NULL, NULL, NULL,
|
||||
(GDestroyNotify) g_free);
|
||||
device->wl_seat = wl_seat;
|
||||
|
||||
wl_seat_add_listener (device->wl_seat, &seat_listener, device);
|
||||
@@ -1369,6 +1649,7 @@ _gdk_wayland_device_manager_add_seat (GdkDeviceManager *device_manager,
|
||||
device->pointer_surface =
|
||||
wl_compositor_create_surface (display_wayland->compositor);
|
||||
|
||||
init_devices (device);
|
||||
init_settings (device);
|
||||
}
|
||||
|
||||
@@ -1391,6 +1672,7 @@ _gdk_wayland_device_manager_remove_seat (GdkDeviceManager *manager,
|
||||
wl_surface_destroy (device->pointer_surface);
|
||||
/* FIXME: destroy data_device */
|
||||
g_clear_object (&device->keyboard_settings);
|
||||
g_hash_table_destroy (device->touches);
|
||||
g_free (device);
|
||||
|
||||
break;
|
||||
@@ -1421,12 +1703,14 @@ gdk_wayland_device_manager_list_devices (GdkDeviceManager *device_manager,
|
||||
GdkDeviceType type)
|
||||
{
|
||||
GdkWaylandDeviceManager *wayland_device_manager;
|
||||
GList *devices = NULL;
|
||||
GList *devices = NULL, *l;
|
||||
|
||||
if (type == GDK_DEVICE_TYPE_MASTER)
|
||||
wayland_device_manager = (GdkWaylandDeviceManager *) device_manager;
|
||||
|
||||
for (l = wayland_device_manager->devices; l; l = l->next)
|
||||
{
|
||||
wayland_device_manager = (GdkWaylandDeviceManager *) device_manager;
|
||||
devices = g_list_copy (wayland_device_manager->devices);
|
||||
if (gdk_device_get_device_type (l->data) == type)
|
||||
devices = g_list_prepend (devices, l->data);
|
||||
}
|
||||
|
||||
return devices;
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
#include <errno.h>
|
||||
#include <unistd.h>
|
||||
#include <fcntl.h>
|
||||
#include <sys/mman.h>
|
||||
|
||||
#include <glib.h>
|
||||
#include "gdkwayland.h"
|
||||
@@ -121,29 +122,6 @@ gdk_input_init (GdkDisplay *display)
|
||||
g_list_free (list);
|
||||
}
|
||||
|
||||
static void
|
||||
init_sync_callback(void *data, struct wl_callback *callback, uint32_t serial)
|
||||
{
|
||||
GdkWaylandDisplay *display = data;
|
||||
|
||||
display->init_ref_count--;
|
||||
wl_callback_destroy(callback);
|
||||
}
|
||||
|
||||
static const struct wl_callback_listener init_sync_listener = {
|
||||
init_sync_callback
|
||||
};
|
||||
|
||||
static void
|
||||
wait_for_roundtrip(GdkWaylandDisplay *display)
|
||||
{
|
||||
struct wl_callback *callback;
|
||||
|
||||
display->init_ref_count++;
|
||||
callback = wl_display_sync(display->wl_display);
|
||||
wl_callback_add_listener(callback, &init_sync_listener, display);
|
||||
}
|
||||
|
||||
static void
|
||||
xdg_shell_ping (void *data,
|
||||
struct xdg_shell *xdg_shell,
|
||||
@@ -188,23 +166,13 @@ gdk_registry_handle_global(void *data, struct wl_registry *registry, uint32_t id
|
||||
display_wayland->gtk_shell =
|
||||
wl_registry_bind(display_wayland->wl_registry, id, >k_shell_interface, 1);
|
||||
_gdk_wayland_screen_set_has_gtk_shell (display_wayland->screen);
|
||||
/* We need another roundtrip to receive the shell capabilities */
|
||||
wait_for_roundtrip(display_wayland);
|
||||
} else if (strcmp(interface, "wl_output") == 0) {
|
||||
output =
|
||||
wl_registry_bind(display_wayland->wl_registry, id, &wl_output_interface, MIN (version, 2));
|
||||
_gdk_wayland_screen_add_output(display_wayland->screen, id, output, MIN (version, 2));
|
||||
/* We need another roundtrip to receive the modes and geometry
|
||||
* events for the output, which gives us the physical properties
|
||||
* and available modes on the output. */
|
||||
wait_for_roundtrip(display_wayland);
|
||||
} else if (strcmp(interface, "wl_seat") == 0) {
|
||||
seat = wl_registry_bind(display_wayland->wl_registry, id, &wl_seat_interface, 1);
|
||||
_gdk_wayland_device_manager_add_seat (gdk_display->device_manager, id, seat);
|
||||
/* We need another roundtrip to receive the wl_seat capabilities
|
||||
* event which informs us of available input devices on this
|
||||
* seat. */
|
||||
wait_for_roundtrip(display_wayland);
|
||||
} else if (strcmp(interface, "wl_data_device_manager") == 0) {
|
||||
display_wayland->data_device_manager =
|
||||
wl_registry_bind(display_wayland->wl_registry, id,
|
||||
@@ -251,26 +219,18 @@ _gdk_wayland_display_open (const gchar *display_name)
|
||||
return NULL;
|
||||
|
||||
display = g_object_new (GDK_TYPE_WAYLAND_DISPLAY, NULL);
|
||||
display_wayland = GDK_WAYLAND_DISPLAY (display);
|
||||
|
||||
display_wayland->wl_display = wl_display;
|
||||
|
||||
display_wayland->screen = _gdk_wayland_screen_new (display);
|
||||
|
||||
display->device_manager = _gdk_wayland_device_manager_new (display);
|
||||
|
||||
/* Set up listener so we'll catch all events. */
|
||||
display_wayland = GDK_WAYLAND_DISPLAY (display);
|
||||
display_wayland->wl_display = wl_display;
|
||||
display_wayland->screen = _gdk_wayland_screen_new (display);
|
||||
display_wayland->event_source = _gdk_wayland_display_event_source_new (display);
|
||||
|
||||
display_wayland->wl_registry = wl_display_get_registry(display_wayland->wl_display);
|
||||
wl_registry_add_listener(display_wayland->wl_registry, ®istry_listener, display_wayland);
|
||||
|
||||
/* We use init_ref_count to track whether some part of our
|
||||
* initialization still needs a roundtrip to complete. */
|
||||
wait_for_roundtrip(display_wayland);
|
||||
while (display_wayland->init_ref_count > 0)
|
||||
wl_display_roundtrip(display_wayland->wl_display);
|
||||
|
||||
display_wayland->event_source =
|
||||
_gdk_wayland_display_event_source_new (display);
|
||||
/* Wait until the dust has settled during init... */
|
||||
wl_display_roundtrip (display_wayland->wl_display);
|
||||
|
||||
gdk_input_init (display);
|
||||
|
||||
@@ -762,3 +722,170 @@ gdk_wayland_display_get_xdg_shell (GdkDisplay *display)
|
||||
|
||||
return wayland_display->xdg_shell;
|
||||
}
|
||||
|
||||
static const cairo_user_data_key_t gdk_wayland_cairo_key;
|
||||
|
||||
typedef struct _GdkWaylandCairoSurfaceData {
|
||||
gpointer buf;
|
||||
size_t buf_length;
|
||||
struct wl_shm_pool *pool;
|
||||
struct wl_buffer *buffer;
|
||||
GdkWaylandDisplay *display;
|
||||
uint32_t scale;
|
||||
gboolean busy;
|
||||
} GdkWaylandCairoSurfaceData;
|
||||
|
||||
static void
|
||||
buffer_release_callback (void *_data,
|
||||
struct wl_buffer *wl_buffer)
|
||||
{
|
||||
cairo_surface_t *surface = _data;
|
||||
GdkWaylandCairoSurfaceData *data = cairo_surface_get_user_data (surface, &gdk_wayland_cairo_key);
|
||||
|
||||
data->busy = FALSE;
|
||||
cairo_surface_destroy (surface);
|
||||
}
|
||||
|
||||
static const struct wl_buffer_listener buffer_listener = {
|
||||
buffer_release_callback
|
||||
};
|
||||
|
||||
struct wl_shm_pool *
|
||||
create_shm_pool (struct wl_shm *shm,
|
||||
int width,
|
||||
int height,
|
||||
size_t *buf_length,
|
||||
void **data_out)
|
||||
{
|
||||
char filename[] = "/tmp/wayland-shm-XXXXXX";
|
||||
struct wl_shm_pool *pool;
|
||||
int fd, size, stride;
|
||||
void *data;
|
||||
|
||||
fd = mkstemp (filename);
|
||||
if (fd < 0)
|
||||
{
|
||||
g_critical (G_STRLOC ": Unable to create temporary file (%s): %s",
|
||||
filename, g_strerror (errno));
|
||||
return NULL;
|
||||
}
|
||||
|
||||
stride = width * 4;
|
||||
size = stride * height;
|
||||
if (ftruncate (fd, size) < 0)
|
||||
{
|
||||
g_critical (G_STRLOC ": Truncating temporary file failed: %s",
|
||||
g_strerror (errno));
|
||||
close (fd);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
data = mmap (NULL, size, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
|
||||
unlink (filename);
|
||||
|
||||
if (data == MAP_FAILED)
|
||||
{
|
||||
g_critical (G_STRLOC ": mmap'ping temporary file failed: %s",
|
||||
g_strerror (errno));
|
||||
close (fd);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
pool = wl_shm_create_pool(shm, fd, size);
|
||||
|
||||
close (fd);
|
||||
|
||||
*data_out = data;
|
||||
*buf_length = size;
|
||||
|
||||
return pool;
|
||||
}
|
||||
|
||||
static void
|
||||
gdk_wayland_cairo_surface_destroy (void *p)
|
||||
{
|
||||
GdkWaylandCairoSurfaceData *data = p;
|
||||
|
||||
if (data->buffer)
|
||||
wl_buffer_destroy (data->buffer);
|
||||
|
||||
if (data->pool)
|
||||
wl_shm_pool_destroy (data->pool);
|
||||
|
||||
munmap (data->buf, data->buf_length);
|
||||
g_free (data);
|
||||
}
|
||||
|
||||
cairo_surface_t *
|
||||
_gdk_wayland_display_create_shm_surface (GdkWaylandDisplay *display,
|
||||
int width,
|
||||
int height,
|
||||
guint scale)
|
||||
{
|
||||
GdkWaylandCairoSurfaceData *data;
|
||||
cairo_surface_t *surface = NULL;
|
||||
cairo_status_t status;
|
||||
int stride;
|
||||
|
||||
data = g_new (GdkWaylandCairoSurfaceData, 1);
|
||||
data->display = display;
|
||||
data->buffer = NULL;
|
||||
data->scale = scale;
|
||||
data->busy = FALSE;
|
||||
|
||||
stride = width * 4;
|
||||
|
||||
data->pool = create_shm_pool (display->shm,
|
||||
width*scale, height*scale,
|
||||
&data->buf_length,
|
||||
&data->buf);
|
||||
|
||||
surface = cairo_image_surface_create_for_data (data->buf,
|
||||
CAIRO_FORMAT_ARGB32,
|
||||
width*scale,
|
||||
height*scale,
|
||||
stride*scale);
|
||||
|
||||
data->buffer = wl_shm_pool_create_buffer (data->pool, 0,
|
||||
width*scale, height*scale,
|
||||
stride*scale, WL_SHM_FORMAT_ARGB8888);
|
||||
wl_buffer_add_listener (data->buffer, &buffer_listener, surface);
|
||||
|
||||
cairo_surface_set_user_data (surface, &gdk_wayland_cairo_key,
|
||||
data, gdk_wayland_cairo_surface_destroy);
|
||||
|
||||
#ifdef HAVE_CAIRO_SURFACE_SET_DEVICE_SCALE
|
||||
cairo_surface_set_device_scale (surface, scale, scale);
|
||||
#endif
|
||||
|
||||
status = cairo_surface_status (surface);
|
||||
if (status != CAIRO_STATUS_SUCCESS)
|
||||
{
|
||||
g_critical (G_STRLOC ": Unable to create Cairo image surface: %s",
|
||||
cairo_status_to_string (status));
|
||||
}
|
||||
|
||||
return surface;
|
||||
}
|
||||
|
||||
struct wl_buffer *
|
||||
_gdk_wayland_shm_surface_get_wl_buffer (cairo_surface_t *surface)
|
||||
{
|
||||
GdkWaylandCairoSurfaceData *data = cairo_surface_get_user_data (surface, &gdk_wayland_cairo_key);
|
||||
return data->buffer;
|
||||
}
|
||||
|
||||
void
|
||||
_gdk_wayland_shm_surface_set_busy (cairo_surface_t *surface)
|
||||
{
|
||||
GdkWaylandCairoSurfaceData *data = cairo_surface_get_user_data (surface, &gdk_wayland_cairo_key);
|
||||
data->busy = TRUE;
|
||||
cairo_surface_reference (surface);
|
||||
}
|
||||
|
||||
gboolean
|
||||
_gdk_wayland_shm_surface_get_busy (cairo_surface_t *surface)
|
||||
{
|
||||
GdkWaylandCairoSurfaceData *data = cairo_surface_get_user_data (surface, &gdk_wayland_cairo_key);
|
||||
return data->busy;
|
||||
}
|
||||
|
||||
@@ -50,8 +50,7 @@ struct _GdkWaylandDisplay
|
||||
/* Startup notification */
|
||||
gchar *startup_notification_id;
|
||||
|
||||
/* Time of most recent user interaction and most recent serial */
|
||||
gulong user_time;
|
||||
/* Most recent serial */
|
||||
guint32 serial;
|
||||
|
||||
/* Wayland fields below */
|
||||
@@ -69,7 +68,6 @@ struct _GdkWaylandDisplay
|
||||
|
||||
GSource *event_source;
|
||||
|
||||
int init_ref_count;
|
||||
int compositor_version;
|
||||
|
||||
struct xkb_context *xkb_context;
|
||||
|
||||
@@ -178,10 +178,12 @@ void _gdk_wayland_window_set_device_grabbed (GdkWindow *window,
|
||||
guint32 _gdk_wayland_display_get_serial (GdkWaylandDisplay *wayland_display);
|
||||
void _gdk_wayland_display_update_serial (GdkWaylandDisplay *wayland_display, guint32 serial);
|
||||
|
||||
struct wl_shm_pool * _create_shm_pool (struct wl_shm *shm,
|
||||
int width,
|
||||
int height,
|
||||
size_t *buf_length,
|
||||
void **data_out);
|
||||
cairo_surface_t * _gdk_wayland_display_create_shm_surface (GdkWaylandDisplay *display,
|
||||
int width,
|
||||
int height,
|
||||
guint scale);
|
||||
struct wl_buffer *_gdk_wayland_shm_surface_get_wl_buffer (cairo_surface_t *surface);
|
||||
void _gdk_wayland_shm_surface_set_busy (cairo_surface_t *surface);
|
||||
gboolean _gdk_wayland_shm_surface_get_busy (cairo_surface_t *surface);
|
||||
|
||||
#endif /* __GDK_PRIVATE_WAYLAND_H__ */
|
||||
|
||||
@@ -986,6 +986,7 @@ output_handle_scale(void *data,
|
||||
GdkWaylandMonitor *monitor = (GdkWaylandMonitor *)data;
|
||||
|
||||
monitor->scale = factor;
|
||||
g_signal_emit_by_name (monitor->screen, "monitors-changed");
|
||||
}
|
||||
|
||||
static void
|
||||
|
||||
+142
-373
@@ -34,7 +34,6 @@
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <sys/mman.h>
|
||||
#include <errno.h>
|
||||
|
||||
#define WL_SURFACE_HAS_BUFFER_SCALE 3
|
||||
@@ -95,8 +94,6 @@ struct _GdkWindowImplWayland
|
||||
|
||||
GdkWindow *wrapper;
|
||||
|
||||
GdkCursor *cursor;
|
||||
|
||||
/* The wl_outputs that this window currently touches */
|
||||
GSList *outputs;
|
||||
|
||||
@@ -112,24 +109,10 @@ struct _GdkWindowImplWayland
|
||||
GdkWindowTypeHint hint;
|
||||
GdkWindow *transient_for;
|
||||
|
||||
/* The surface which is being "drawn to" to */
|
||||
cairo_surface_t *cairo_surface;
|
||||
|
||||
/* The surface that was the last surface the Wayland buffer from which was attached
|
||||
* to the Wayland surface. It will be the same as cairo_surface after a call
|
||||
* to gdk_wayland_window_attach_image. But after a call to
|
||||
* gdk_wayland_window_update_size and then
|
||||
* gdk_wayland_window_ref_cairo_surface the above pointer will be different.
|
||||
*/
|
||||
cairo_surface_t *server_surface;
|
||||
|
||||
gchar *title;
|
||||
|
||||
uint32_t resize_edges;
|
||||
|
||||
/* Time of most recent user interaction. */
|
||||
gulong user_time;
|
||||
|
||||
GdkGeometry geometry_hints;
|
||||
GdkWindowHints geometry_mask;
|
||||
|
||||
@@ -386,25 +369,11 @@ on_frame_clock_before_paint (GdkFrameClock *clock,
|
||||
}
|
||||
}
|
||||
|
||||
static const cairo_user_data_key_t gdk_wayland_cairo_key;
|
||||
|
||||
typedef struct _GdkWaylandCairoSurfaceData {
|
||||
gpointer buf;
|
||||
size_t buf_length;
|
||||
struct wl_shm_pool *pool;
|
||||
struct wl_buffer *buffer;
|
||||
GdkWaylandDisplay *display;
|
||||
int32_t width, height;
|
||||
uint32_t scale;
|
||||
gboolean busy;
|
||||
} GdkWaylandCairoSurfaceData;
|
||||
|
||||
static void
|
||||
on_frame_clock_after_paint (GdkFrameClock *clock,
|
||||
GdkWindow *window)
|
||||
{
|
||||
GdkWindowImplWayland *impl = GDK_WINDOW_IMPL_WAYLAND (window->impl);
|
||||
GdkWaylandCairoSurfaceData *data;
|
||||
struct wl_callback *callback;
|
||||
|
||||
if (!impl->pending_commit)
|
||||
@@ -418,14 +387,7 @@ on_frame_clock_after_paint (GdkFrameClock *clock,
|
||||
_gdk_frame_clock_freeze (clock);
|
||||
|
||||
wl_surface_commit (impl->surface);
|
||||
|
||||
data = cairo_surface_get_user_data (impl->cairo_surface,
|
||||
&gdk_wayland_cairo_key);
|
||||
if (!data->busy)
|
||||
{
|
||||
data->busy = TRUE;
|
||||
cairo_surface_reference (impl->cairo_surface);
|
||||
}
|
||||
_gdk_wayland_shm_surface_set_busy (impl->cairo_surface);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -549,210 +511,35 @@ gdk_wayland_window_attach_image (GdkWindow *window)
|
||||
{
|
||||
GdkWaylandDisplay *display;
|
||||
GdkWindowImplWayland *impl = GDK_WINDOW_IMPL_WAYLAND (window->impl);
|
||||
GdkWaylandCairoSurfaceData *data;
|
||||
int32_t server_width, server_height, dx, dy;
|
||||
|
||||
if (GDK_WINDOW_DESTROYED (window))
|
||||
return;
|
||||
|
||||
/* The wayland surface is attached to a buffer that is from the old "drawn
|
||||
* to" surface. Unref the surface and restore the state.
|
||||
*/
|
||||
if (impl->server_surface)
|
||||
{
|
||||
data = cairo_surface_get_user_data (impl->server_surface,
|
||||
&gdk_wayland_cairo_key);
|
||||
|
||||
/* Save the old dimensions used for the surface */
|
||||
server_width = data->width;
|
||||
server_height = data->height;
|
||||
|
||||
cairo_surface_destroy (impl->server_surface);
|
||||
}
|
||||
else
|
||||
{
|
||||
server_width = 0;
|
||||
server_height = 0;
|
||||
}
|
||||
|
||||
/* Save the current "drawn to" surface for future calls into here */
|
||||
impl->server_surface = cairo_surface_reference (impl->cairo_surface);
|
||||
|
||||
/* Get a Wayland buffer from this new surface */
|
||||
data = cairo_surface_get_user_data (impl->cairo_surface,
|
||||
&gdk_wayland_cairo_key);
|
||||
|
||||
if (impl->resize_edges & XDG_SURFACE_RESIZE_EDGE_LEFT)
|
||||
dx = server_width - data->width;
|
||||
else
|
||||
dx = 0;
|
||||
|
||||
if (impl->resize_edges & XDG_SURFACE_RESIZE_EDGE_TOP)
|
||||
dy = server_height - data->height;
|
||||
else
|
||||
dy = 0;
|
||||
|
||||
/* Attach this new buffer to the surface */
|
||||
wl_surface_attach (impl->surface, data->buffer, dx, dy);
|
||||
wl_surface_attach (impl->surface,
|
||||
_gdk_wayland_shm_surface_get_wl_buffer (impl->cairo_surface),
|
||||
0, 0);
|
||||
|
||||
/* Only set the buffer scale if supported by the compositor */
|
||||
display = GDK_WAYLAND_DISPLAY (gdk_window_get_display (window));
|
||||
if (display->compositor_version >= WL_SURFACE_HAS_BUFFER_SCALE)
|
||||
wl_surface_set_buffer_scale (impl->surface, data->scale);
|
||||
wl_surface_set_buffer_scale (impl->surface, impl->scale);
|
||||
|
||||
impl->pending_commit = TRUE;
|
||||
}
|
||||
|
||||
static void
|
||||
gdk_wayland_cairo_surface_destroy (void *p)
|
||||
{
|
||||
GdkWaylandCairoSurfaceData *data = p;
|
||||
|
||||
if (data->buffer)
|
||||
wl_buffer_destroy (data->buffer);
|
||||
|
||||
if (data->pool)
|
||||
wl_shm_pool_destroy (data->pool);
|
||||
|
||||
munmap (data->buf, data->buf_length);
|
||||
g_free (data);
|
||||
}
|
||||
|
||||
struct wl_shm_pool *
|
||||
_create_shm_pool (struct wl_shm *shm,
|
||||
int width,
|
||||
int height,
|
||||
size_t *buf_length,
|
||||
void **data_out)
|
||||
{
|
||||
char filename[] = "/tmp/wayland-shm-XXXXXX";
|
||||
struct wl_shm_pool *pool;
|
||||
int fd, size, stride;
|
||||
void *data;
|
||||
|
||||
fd = mkstemp (filename);
|
||||
if (fd < 0)
|
||||
{
|
||||
g_critical (G_STRLOC ": Unable to create temporary file (%s): %s",
|
||||
filename, g_strerror (errno));
|
||||
return NULL;
|
||||
}
|
||||
|
||||
stride = width * 4;
|
||||
size = stride * height;
|
||||
if (ftruncate (fd, size) < 0)
|
||||
{
|
||||
g_critical (G_STRLOC ": Truncating temporary file failed: %s",
|
||||
g_strerror (errno));
|
||||
close (fd);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
data = mmap (NULL, size, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
|
||||
unlink (filename);
|
||||
|
||||
if (data == MAP_FAILED)
|
||||
{
|
||||
g_critical (G_STRLOC ": mmap'ping temporary file failed: %s",
|
||||
g_strerror (errno));
|
||||
close (fd);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
pool = wl_shm_create_pool(shm, fd, size);
|
||||
|
||||
close (fd);
|
||||
|
||||
*data_out = data;
|
||||
*buf_length = size;
|
||||
|
||||
return pool;
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
buffer_release_callback (void *_data,
|
||||
struct wl_buffer *wl_buffer)
|
||||
{
|
||||
cairo_surface_t *surface = _data;
|
||||
GdkWaylandCairoSurfaceData *data = cairo_surface_get_user_data (surface, &gdk_wayland_cairo_key);
|
||||
|
||||
data->busy = FALSE;
|
||||
cairo_surface_destroy (surface);
|
||||
}
|
||||
|
||||
static const struct wl_buffer_listener buffer_listener = {
|
||||
buffer_release_callback
|
||||
};
|
||||
|
||||
static cairo_surface_t *
|
||||
gdk_wayland_create_cairo_surface (GdkWaylandDisplay *display,
|
||||
int width,
|
||||
int height,
|
||||
guint scale)
|
||||
{
|
||||
GdkWaylandCairoSurfaceData *data;
|
||||
cairo_surface_t *surface = NULL;
|
||||
cairo_status_t status;
|
||||
int stride;
|
||||
|
||||
data = g_new (GdkWaylandCairoSurfaceData, 1);
|
||||
data->display = display;
|
||||
data->buffer = NULL;
|
||||
data->width = width;
|
||||
data->height = height;
|
||||
data->scale = scale;
|
||||
data->busy = FALSE;
|
||||
|
||||
stride = width * 4;
|
||||
|
||||
data->pool = _create_shm_pool (display->shm,
|
||||
width*scale, height*scale,
|
||||
&data->buf_length,
|
||||
&data->buf);
|
||||
|
||||
surface = cairo_image_surface_create_for_data (data->buf,
|
||||
CAIRO_FORMAT_ARGB32,
|
||||
width*scale,
|
||||
height*scale,
|
||||
stride*scale);
|
||||
|
||||
data->buffer = wl_shm_pool_create_buffer (data->pool, 0,
|
||||
width*scale, height*scale,
|
||||
stride*scale, WL_SHM_FORMAT_ARGB8888);
|
||||
wl_buffer_add_listener (data->buffer, &buffer_listener, surface);
|
||||
|
||||
cairo_surface_set_user_data (surface, &gdk_wayland_cairo_key,
|
||||
data, gdk_wayland_cairo_surface_destroy);
|
||||
|
||||
#ifdef HAVE_CAIRO_SURFACE_SET_DEVICE_SCALE
|
||||
cairo_surface_set_device_scale (surface, scale, scale);
|
||||
#endif
|
||||
|
||||
status = cairo_surface_status (surface);
|
||||
if (status != CAIRO_STATUS_SUCCESS)
|
||||
{
|
||||
g_critical (G_STRLOC ": Unable to create Cairo image surface: %s",
|
||||
cairo_status_to_string (status));
|
||||
}
|
||||
|
||||
return surface;
|
||||
}
|
||||
|
||||
static void
|
||||
gdk_wayland_window_ensure_cairo_surface (GdkWindow *window)
|
||||
{
|
||||
GdkWindowImplWayland *impl = GDK_WINDOW_IMPL_WAYLAND (window->impl);
|
||||
if (!impl->cairo_surface)
|
||||
{
|
||||
GdkWaylandDisplay *display_wayland =
|
||||
GDK_WAYLAND_DISPLAY (gdk_window_get_display (impl->wrapper));
|
||||
GdkWaylandDisplay *display_wayland = GDK_WAYLAND_DISPLAY (gdk_window_get_display (impl->wrapper));
|
||||
|
||||
impl->cairo_surface =
|
||||
gdk_wayland_create_cairo_surface (display_wayland,
|
||||
impl->wrapper->width,
|
||||
impl->wrapper->height,
|
||||
impl->scale);
|
||||
impl->cairo_surface = _gdk_wayland_display_create_shm_surface (display_wayland,
|
||||
impl->wrapper->width,
|
||||
impl->wrapper->height,
|
||||
impl->scale);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -788,13 +575,8 @@ gdk_window_impl_wayland_begin_paint_region (GdkWindow *window,
|
||||
const cairo_region_t *region)
|
||||
{
|
||||
GdkWindowImplWayland *impl = GDK_WINDOW_IMPL_WAYLAND (window->impl);
|
||||
GdkWaylandCairoSurfaceData *data;
|
||||
|
||||
gdk_wayland_window_ensure_cairo_surface (window);
|
||||
data = cairo_surface_get_user_data (impl->cairo_surface,
|
||||
&gdk_wayland_cairo_key);
|
||||
|
||||
return data->busy;
|
||||
return _gdk_wayland_shm_surface_get_busy (impl->cairo_surface);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -806,9 +588,6 @@ gdk_window_impl_wayland_finalize (GObject *object)
|
||||
|
||||
impl = GDK_WINDOW_IMPL_WAYLAND (object);
|
||||
|
||||
if (impl->cursor)
|
||||
g_object_unref (impl->cursor);
|
||||
|
||||
g_free (impl->title);
|
||||
|
||||
g_clear_pointer (&impl->opaque_region, cairo_region_destroy);
|
||||
@@ -845,16 +624,10 @@ gdk_wayland_window_configure (GdkWindow *window,
|
||||
}
|
||||
|
||||
static void
|
||||
gdk_wayland_window_set_user_time (GdkWindow *window,
|
||||
guint32 user_time)
|
||||
{
|
||||
}
|
||||
|
||||
static void
|
||||
gdk_wayland_window_sync_transient_for (GdkWindow *window)
|
||||
gdk_wayland_window_sync_parent (GdkWindow *window)
|
||||
{
|
||||
GdkWindowImplWayland *impl = GDK_WINDOW_IMPL_WAYLAND (window->impl);
|
||||
struct wl_surface *transient_for_surface;
|
||||
struct wl_surface *parent_surface;
|
||||
|
||||
if (!impl->xdg_surface)
|
||||
return;
|
||||
@@ -867,12 +640,12 @@ gdk_wayland_window_sync_transient_for (GdkWindow *window)
|
||||
if (!impl_parent->surface)
|
||||
return;
|
||||
|
||||
transient_for_surface = impl_parent->surface;
|
||||
parent_surface = impl_parent->surface;
|
||||
}
|
||||
else
|
||||
transient_for_surface = NULL;
|
||||
parent_surface = NULL;
|
||||
|
||||
xdg_surface_set_transient_for (impl->xdg_surface, transient_for_surface);
|
||||
xdg_surface_set_parent (impl->xdg_surface, parent_surface);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -1013,68 +786,56 @@ static void
|
||||
xdg_surface_configure (void *data,
|
||||
struct xdg_surface *xdg_surface,
|
||||
int32_t width,
|
||||
int32_t height)
|
||||
int32_t height,
|
||||
struct wl_array *states,
|
||||
uint32_t serial)
|
||||
{
|
||||
GdkWindow *window = GDK_WINDOW (data);
|
||||
GdkWindowImplWayland *impl = GDK_WINDOW_IMPL_WAYLAND (window->impl);
|
||||
GdkWindowState new_state = 0;
|
||||
uint32_t *p;
|
||||
|
||||
gdk_window_constrain_size (&impl->geometry_hints,
|
||||
impl->geometry_mask,
|
||||
width,
|
||||
height,
|
||||
&width,
|
||||
&height);
|
||||
|
||||
gdk_wayland_window_configure (window, width, height);
|
||||
}
|
||||
|
||||
static void
|
||||
xdg_surface_change_state (void *data,
|
||||
struct xdg_surface *xdg_surface,
|
||||
uint32_t state_type,
|
||||
uint32_t value,
|
||||
uint32_t serial)
|
||||
{
|
||||
GdkWindow *window = GDK_WINDOW (data);
|
||||
|
||||
switch (state_type)
|
||||
if (width > 0 && height > 0)
|
||||
{
|
||||
case XDG_SURFACE_STATE_MAXIMIZED:
|
||||
if (value)
|
||||
gdk_synthesize_window_state (window, 0, GDK_WINDOW_STATE_MAXIMIZED);
|
||||
else
|
||||
gdk_synthesize_window_state (window, GDK_WINDOW_STATE_MAXIMIZED, 0);
|
||||
break;
|
||||
case XDG_SURFACE_STATE_FULLSCREEN:
|
||||
if (value)
|
||||
gdk_synthesize_window_state (window, 0, GDK_WINDOW_STATE_FULLSCREEN);
|
||||
else
|
||||
gdk_synthesize_window_state (window, GDK_WINDOW_STATE_FULLSCREEN, 0);
|
||||
break;
|
||||
gdk_window_constrain_size (&impl->geometry_hints,
|
||||
impl->geometry_mask,
|
||||
width,
|
||||
height,
|
||||
&width,
|
||||
&height);
|
||||
|
||||
gdk_wayland_window_configure (window, width, height);
|
||||
}
|
||||
|
||||
xdg_surface_ack_change_state (xdg_surface, state_type, value, serial);
|
||||
wl_array_for_each(p, states)
|
||||
{
|
||||
uint32_t state = *p;
|
||||
switch (state)
|
||||
{
|
||||
case XDG_SURFACE_STATE_FULLSCREEN:
|
||||
new_state |= GDK_WINDOW_STATE_FULLSCREEN;
|
||||
break;
|
||||
case XDG_SURFACE_STATE_MAXIMIZED:
|
||||
new_state |= GDK_WINDOW_STATE_MAXIMIZED;
|
||||
break;
|
||||
case XDG_SURFACE_STATE_ACTIVATED:
|
||||
new_state |= GDK_WINDOW_STATE_FOCUSED;
|
||||
break;
|
||||
case XDG_SURFACE_STATE_RESIZING:
|
||||
break;
|
||||
default:
|
||||
/* Unknown state */
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
_gdk_set_window_state (window, new_state);
|
||||
xdg_surface_ack_configure (xdg_surface, serial);
|
||||
}
|
||||
|
||||
static void
|
||||
xdg_surface_activated (void *data,
|
||||
struct xdg_surface *xdg_surface)
|
||||
{
|
||||
GdkWindow *window = GDK_WINDOW (data);
|
||||
gdk_synthesize_window_state (window, 0, GDK_WINDOW_STATE_FOCUSED);
|
||||
}
|
||||
|
||||
static void
|
||||
xdg_surface_deactivated (void *data,
|
||||
struct xdg_surface *xdg_surface)
|
||||
{
|
||||
GdkWindow *window = GDK_WINDOW (data);
|
||||
gdk_synthesize_window_state (window, GDK_WINDOW_STATE_FOCUSED, 0);
|
||||
}
|
||||
|
||||
static void
|
||||
xdg_surface_delete (void *data,
|
||||
struct xdg_surface *xdg_surface)
|
||||
xdg_surface_close (void *data,
|
||||
struct xdg_surface *xdg_surface)
|
||||
{
|
||||
GdkWindow *window = GDK_WINDOW (data);
|
||||
GdkDisplay *display;
|
||||
@@ -1092,10 +853,7 @@ xdg_surface_delete (void *data,
|
||||
|
||||
static const struct xdg_surface_listener xdg_surface_listener = {
|
||||
xdg_surface_configure,
|
||||
xdg_surface_change_state,
|
||||
xdg_surface_activated,
|
||||
xdg_surface_deactivated,
|
||||
xdg_surface_delete,
|
||||
xdg_surface_close,
|
||||
};
|
||||
|
||||
static void
|
||||
@@ -1107,7 +865,7 @@ gdk_wayland_window_create_xdg_surface (GdkWindow *window)
|
||||
impl->xdg_surface = xdg_shell_get_xdg_surface (display_wayland->xdg_shell, impl->surface);
|
||||
xdg_surface_add_listener (impl->xdg_surface, &xdg_surface_listener, window);
|
||||
|
||||
gdk_wayland_window_sync_transient_for (window);
|
||||
gdk_wayland_window_sync_parent (window);
|
||||
gdk_wayland_window_sync_title (window);
|
||||
gdk_wayland_window_sync_margin (window);
|
||||
xdg_surface_set_app_id (impl->xdg_surface, gdk_get_program_class ());
|
||||
@@ -1218,6 +976,47 @@ gdk_wayland_window_create_xdg_popup (GdkWindow *window,
|
||||
xdg_popup_add_listener (impl->xdg_popup, &xdg_popup_listener, window);
|
||||
}
|
||||
|
||||
static struct wl_seat *
|
||||
find_grab_input_seat (GdkWindow *window, GdkWindow *transient_for)
|
||||
{
|
||||
GdkWindow *attached_grab_window;
|
||||
GdkWindowImplWayland *impl = GDK_WINDOW_IMPL_WAYLAND (window->impl);
|
||||
GdkWindowImplWayland *tmp_impl;
|
||||
|
||||
/* Use the device that was used for the grab as the device for
|
||||
* the popup window setup - so this relies on GTK+ taking the
|
||||
* grab before showing the popup window.
|
||||
*/
|
||||
if (impl->grab_input_seat)
|
||||
return impl->grab_input_seat;
|
||||
|
||||
/* HACK: GtkMenu grabs a special window known as the "grab transfer window"
|
||||
* and then transfers the grab over to the correct window later. Look for
|
||||
* this window when taking the grab to know it's correct.
|
||||
*
|
||||
* See: associate_menu_grab_transfer_window in gtkmenu.c
|
||||
*/
|
||||
attached_grab_window = g_object_get_data (G_OBJECT (window), "gdk-attached-grab-window");
|
||||
if (attached_grab_window)
|
||||
{
|
||||
tmp_impl = GDK_WINDOW_IMPL_WAYLAND (attached_grab_window->impl);
|
||||
if (tmp_impl->grab_input_seat)
|
||||
return tmp_impl->grab_input_seat;
|
||||
}
|
||||
|
||||
while (transient_for)
|
||||
{
|
||||
tmp_impl = GDK_WINDOW_IMPL_WAYLAND (transient_for->impl);
|
||||
|
||||
if (tmp_impl->grab_input_seat)
|
||||
return tmp_impl->grab_input_seat;
|
||||
|
||||
transient_for = tmp_impl->transient_for;
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static void
|
||||
gdk_wayland_window_map (GdkWindow *window)
|
||||
{
|
||||
@@ -1246,26 +1045,7 @@ gdk_wayland_window_map (GdkWindow *window)
|
||||
|
||||
if (transient_for)
|
||||
{
|
||||
struct wl_seat *grab_input_seat = NULL;
|
||||
GdkWindowImplWayland *tmp_impl;
|
||||
|
||||
/* Use the device that was used for the grab as the device for
|
||||
* the popup window setup - so this relies on GTK+ taking the
|
||||
* grab before showing the popup window.
|
||||
*/
|
||||
grab_input_seat = impl->grab_input_seat;
|
||||
|
||||
tmp_impl = GDK_WINDOW_IMPL_WAYLAND (transient_for->impl);
|
||||
while (!grab_input_seat)
|
||||
{
|
||||
grab_input_seat = tmp_impl->grab_input_seat;
|
||||
|
||||
if (tmp_impl->transient_for)
|
||||
tmp_impl = GDK_WINDOW_IMPL_WAYLAND (tmp_impl->transient_for->impl);
|
||||
else
|
||||
break;
|
||||
}
|
||||
|
||||
struct wl_seat *grab_input_seat = find_grab_input_seat (window, transient_for);
|
||||
if (grab_input_seat &&
|
||||
(impl->hint == GDK_WINDOW_TYPE_HINT_POPUP_MENU ||
|
||||
impl->hint == GDK_WINDOW_TYPE_HINT_DROPDOWN_MENU ||
|
||||
@@ -1287,27 +1067,14 @@ static void
|
||||
gdk_wayland_window_show (GdkWindow *window,
|
||||
gboolean already_mapped)
|
||||
{
|
||||
GdkDisplay *display;
|
||||
GdkWaylandDisplay *display_wayland;
|
||||
GdkWindowImplWayland *impl = GDK_WINDOW_IMPL_WAYLAND (window->impl);
|
||||
GdkEvent *event;
|
||||
|
||||
display = gdk_window_get_display (window);
|
||||
display_wayland = GDK_WAYLAND_DISPLAY (display);
|
||||
|
||||
if (impl->user_time != 0 &&
|
||||
display_wayland->user_time != 0 &&
|
||||
XSERVER_TIME_IS_LATER (display_wayland->user_time, impl->user_time))
|
||||
gdk_wayland_window_set_user_time (window, impl->user_time);
|
||||
|
||||
if (!impl->surface)
|
||||
gdk_wayland_window_create_surface (window);
|
||||
|
||||
gdk_window_set_type_hint (window, impl->hint);
|
||||
gdk_wayland_window_map (window);
|
||||
|
||||
_gdk_make_event (window, GDK_MAP, NULL, FALSE);
|
||||
event = _gdk_make_event (window, GDK_VISIBILITY_NOTIFY, NULL, FALSE);
|
||||
event->visibility.state = GDK_VISIBILITY_UNOBSCURED;
|
||||
|
||||
if (impl->cairo_surface)
|
||||
gdk_wayland_window_attach_image (window);
|
||||
@@ -1345,9 +1112,6 @@ gdk_wayland_window_hide_surface (GdkWindow *window,
|
||||
xdg_popup_destroy (impl->xdg_popup);
|
||||
impl->xdg_popup = NULL;
|
||||
}
|
||||
|
||||
cairo_surface_destroy (impl->server_surface);
|
||||
impl->server_surface = NULL;
|
||||
}
|
||||
|
||||
impl->mapped = FALSE;
|
||||
@@ -1584,11 +1348,7 @@ gdk_wayland_window_destroy (GdkWindow *window,
|
||||
gdk_wayland_window_hide_surface (window, TRUE);
|
||||
|
||||
if (impl->cairo_surface)
|
||||
{
|
||||
cairo_surface_finish (impl->cairo_surface);
|
||||
cairo_surface_set_user_data (impl->cairo_surface, &gdk_wayland_cairo_key,
|
||||
NULL, NULL);
|
||||
}
|
||||
cairo_surface_finish (impl->cairo_surface);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -1736,7 +1496,7 @@ gdk_wayland_window_set_transient_for (GdkWindow *window,
|
||||
impl = GDK_WINDOW_IMPL_WAYLAND (window->impl);
|
||||
impl->transient_for = parent;
|
||||
|
||||
gdk_wayland_window_sync_transient_for (window);
|
||||
gdk_wayland_window_sync_parent (window);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -1764,17 +1524,6 @@ static void
|
||||
gdk_wayland_window_set_focus_on_map (GdkWindow *window,
|
||||
gboolean focus_on_map)
|
||||
{
|
||||
focus_on_map = focus_on_map != FALSE;
|
||||
|
||||
if (window->focus_on_map != focus_on_map)
|
||||
{
|
||||
window->focus_on_map = focus_on_map;
|
||||
|
||||
if ((!GDK_WINDOW_DESTROYED (window)) &&
|
||||
(!window->focus_on_map) &&
|
||||
WINDOW_IS_TOPLEVEL_OR_FOREIGN (window))
|
||||
gdk_wayland_window_set_user_time (window, 0);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -1835,10 +1584,7 @@ gdk_wayland_window_maximize (GdkWindow *window)
|
||||
if (!impl->xdg_surface)
|
||||
return;
|
||||
|
||||
xdg_surface_request_change_state (impl->xdg_surface,
|
||||
XDG_SURFACE_STATE_MAXIMIZED,
|
||||
TRUE,
|
||||
0 /* serial, unused */);
|
||||
xdg_surface_set_maximized (impl->xdg_surface);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -1852,10 +1598,7 @@ gdk_wayland_window_unmaximize (GdkWindow *window)
|
||||
if (!impl->xdg_surface)
|
||||
return;
|
||||
|
||||
xdg_surface_request_change_state (impl->xdg_surface,
|
||||
XDG_SURFACE_STATE_MAXIMIZED,
|
||||
FALSE,
|
||||
0 /* serial, unused */);
|
||||
xdg_surface_unset_maximized (impl->xdg_surface);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -1869,10 +1612,7 @@ gdk_wayland_window_fullscreen (GdkWindow *window)
|
||||
if (!impl->xdg_surface)
|
||||
return;
|
||||
|
||||
xdg_surface_request_change_state (impl->xdg_surface,
|
||||
XDG_SURFACE_STATE_FULLSCREEN,
|
||||
TRUE,
|
||||
0 /* serial, unused */);
|
||||
xdg_surface_set_fullscreen (impl->xdg_surface, NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -1886,10 +1626,7 @@ gdk_wayland_window_unfullscreen (GdkWindow *window)
|
||||
if (!impl->xdg_surface)
|
||||
return;
|
||||
|
||||
xdg_surface_request_change_state (impl->xdg_surface,
|
||||
XDG_SURFACE_STATE_FULLSCREEN,
|
||||
FALSE,
|
||||
0 /* serial, unused */);
|
||||
xdg_surface_unset_fullscreen (impl->xdg_surface);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -2003,7 +1740,6 @@ gdk_wayland_window_begin_resize_drag (GdkWindow *window,
|
||||
if (!impl->xdg_surface)
|
||||
return;
|
||||
|
||||
impl->resize_edges = resize_edges;
|
||||
xdg_surface_resize (impl->xdg_surface,
|
||||
gdk_wayland_device_get_wl_seat (device),
|
||||
_gdk_wayland_display_get_serial (wayland_display),
|
||||
@@ -2080,8 +1816,6 @@ gdk_wayland_window_process_updates_recurse (GdkWindow *window,
|
||||
cairo_rectangle_int_t rect;
|
||||
int i, n;
|
||||
|
||||
gdk_wayland_window_map (window);
|
||||
|
||||
gdk_wayland_window_ensure_cairo_surface (window);
|
||||
gdk_wayland_window_attach_image (window);
|
||||
|
||||
@@ -2200,6 +1934,40 @@ gdk_wayland_window_set_shadow_width (GdkWindow *window,
|
||||
gdk_wayland_window_sync_margin (window);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
gdk_wayland_window_show_window_menu (GdkWindow *window,
|
||||
GdkEvent *event)
|
||||
{
|
||||
GdkWindowImplWayland *impl = GDK_WINDOW_IMPL_WAYLAND (window->impl);
|
||||
GdkEventButton *event_button = (GdkEventButton *) event;
|
||||
struct wl_seat *seat;
|
||||
double x, y;
|
||||
GdkWaylandDeviceData *device;
|
||||
|
||||
switch (event->type)
|
||||
{
|
||||
case GDK_BUTTON_PRESS:
|
||||
case GDK_BUTTON_RELEASE:
|
||||
break;
|
||||
default:
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (!impl->xdg_surface)
|
||||
return FALSE;
|
||||
|
||||
seat = gdk_wayland_device_get_wl_seat (event_button->device);
|
||||
device = wl_seat_get_user_data (seat);
|
||||
|
||||
gdk_event_get_coords (event, &x, &y);
|
||||
|
||||
xdg_surface_show_window_menu (impl->xdg_surface,
|
||||
seat,
|
||||
_gdk_wayland_device_get_button_press_serial (device),
|
||||
x, y);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static void
|
||||
_gdk_window_impl_wayland_class_init (GdkWindowImplWaylandClass *klass)
|
||||
{
|
||||
@@ -2289,6 +2057,7 @@ _gdk_window_impl_wayland_class_init (GdkWindowImplWaylandClass *klass)
|
||||
impl_class->get_scale_factor = gdk_wayland_window_get_scale_factor;
|
||||
impl_class->set_opaque_region = gdk_wayland_window_set_opaque_region;
|
||||
impl_class->set_shadow_width = gdk_wayland_window_set_shadow_width;
|
||||
impl_class->show_window_menu = gdk_wayland_window_show_window_menu;
|
||||
}
|
||||
|
||||
void
|
||||
|
||||
@@ -137,11 +137,8 @@
|
||||
</description>
|
||||
</request>
|
||||
|
||||
<request name="set_transient_for">
|
||||
<request name="set_parent">
|
||||
<description summary="surface is a child of another surface">
|
||||
Setting a surface as transient of another means that it is child
|
||||
of another surface.
|
||||
|
||||
Child surfaces are stacked above their parents, and will be
|
||||
unmapped if the parent is unmapped too. They should not appear
|
||||
on task bars and alt+tab.
|
||||
@@ -201,6 +198,26 @@
|
||||
<arg name="app_id" type="string"/>
|
||||
</request>
|
||||
|
||||
<request name="show_window_menu">
|
||||
<description summary="show the window menu">
|
||||
Clients implementing client-side decorations might want to show
|
||||
a context menu when right-clicking on the decorations, giving the
|
||||
user a menu that they can use to maximize or minimize the window.
|
||||
|
||||
This request asks the compositor to pop up such a window menu at
|
||||
the given position, relative to the parent surface. There are
|
||||
no guarantees as to what the window menu contains.
|
||||
|
||||
Your surface must have focus on the seat passed in to pop up the
|
||||
window menu.
|
||||
</description>
|
||||
|
||||
<arg name="seat" type="object" interface="wl_seat" summary="the seat to pop the window up on"/>
|
||||
<arg name="serial" type="uint" summary="serial of the event to pop up the window for"/>
|
||||
<arg name="x" type="int" summary="the x position to pop up the window menu at"/>
|
||||
<arg name="y" type="int" summary="the y position to pop up the window menu at"/>
|
||||
</request>
|
||||
|
||||
<request name="move">
|
||||
<description summary="start an interactive move">
|
||||
Start a pointer-driven move of the surface.
|
||||
@@ -244,40 +261,6 @@
|
||||
<arg name="edges" type="uint" summary="which edge or corner is being dragged"/>
|
||||
</request>
|
||||
|
||||
<event name="configure">
|
||||
<description summary="suggest resize">
|
||||
The configure event asks the client to resize its surface.
|
||||
|
||||
The size is a hint, in the sense that the client is free to
|
||||
ignore it if it doesn't resize, pick a smaller size (to
|
||||
satisfy aspect ratio or resize in steps of NxM pixels).
|
||||
|
||||
The client is free to dismiss all but the last configure
|
||||
event it received.
|
||||
|
||||
The width and height arguments specify the size of the window
|
||||
in surface local coordinates.
|
||||
</description>
|
||||
|
||||
<arg name="width" type="int"/>
|
||||
<arg name="height" type="int"/>
|
||||
</event>
|
||||
|
||||
<request name="set_output">
|
||||
<description summary="set the default output used by this surface">
|
||||
Set the default output used by this surface when it is first mapped.
|
||||
|
||||
If this value is NULL (default), it's up to the compositor to choose
|
||||
which display will be used to map this surface.
|
||||
|
||||
When fullscreen or maximized state are set on this surface, and it
|
||||
wasn't mapped yet, the output set with this method will be used.
|
||||
Otherwise, the output where the surface is currently mapped will be
|
||||
used.
|
||||
</description>
|
||||
<arg name="output" type="object" interface="wl_output" allow-null="true"/>
|
||||
</request>
|
||||
|
||||
<enum name="state">
|
||||
<description summary="types of state on the surface">
|
||||
The different state values used on the surface. This is designed for
|
||||
@@ -300,93 +283,82 @@
|
||||
0x1000 - 0x1FFF: GNOME
|
||||
</description>
|
||||
<entry name="maximized" value="1" summary="the surface is maximized">
|
||||
A non-zero value indicates the surface is maximized. Otherwise,
|
||||
the surface is unmaximized.
|
||||
The surface is maximized. The window geometry specified in the configure
|
||||
event must be obeyed by the client.
|
||||
</entry>
|
||||
<entry name="fullscreen" value="2" summary="the surface is fullscreen">
|
||||
A non-zero value indicates the surface is fullscreen. Otherwise,
|
||||
the surface is not fullscreen.
|
||||
The surface is fullscreen. The window geometry specified in the configure
|
||||
event must be obeyed by the client.
|
||||
</entry>
|
||||
<entry name="resizing" value="3">
|
||||
The surface is being resized. The window geometry specified in the
|
||||
configure event is a maximum; the client cannot resize beyond it.
|
||||
Clients that have aspect ratio or cell sizing configuration can use
|
||||
a smaller size, however.
|
||||
</entry>
|
||||
<entry name="activated" value="4">
|
||||
Client window decorations should be painted as if the window is
|
||||
active. Do not assume this means that the window actually has
|
||||
keyboard or pointer focus.
|
||||
</entry>
|
||||
</enum>
|
||||
|
||||
<request name="request_change_state">
|
||||
<description summary="client requests to change a surface's state">
|
||||
This asks the compositor to change the state. If the compositor wants
|
||||
to change the state, it will send a change_state event with the same
|
||||
state_type, value, and serial, and the event flow continues as if it
|
||||
it was initiated by the compositor.
|
||||
<event name="configure">
|
||||
<description summary="suggest a surface chnage">
|
||||
The configure event asks the client to resize its surface.
|
||||
|
||||
If the compositor does not want to change the state, it will send a
|
||||
change_state to the client with the old value of the state.
|
||||
</description>
|
||||
<arg name="state_type" type="uint" summary="the state to set"/>
|
||||
<arg name="value" type="uint" summary="the value to change the state to"/>
|
||||
<arg name="serial" type="uint" summary="an event serial">
|
||||
This serial is so the client can know which change_state event corresponds
|
||||
to which request_change_state request it sent out.
|
||||
</arg>
|
||||
</request>
|
||||
The width and height arguments specify a hint to the window
|
||||
about how its surface should be resized in surface local
|
||||
coordinates. The states listed in the event specify how the
|
||||
width/height arguments should be interpreted.
|
||||
|
||||
<event name="change_state">
|
||||
<description summary="compositor wants to change a surface's state">
|
||||
This event tells the client to change a surface's state. The client
|
||||
should respond with an ack_change_state request to the compositor to
|
||||
guarantee that the compositor knows that the client has seen it.
|
||||
A client should arrange a new surface, and then send a
|
||||
ack_configure request with the serial sent in this configure
|
||||
event before attaching a new surface.
|
||||
|
||||
If the client receives multiple configure events before it
|
||||
can respond to one, it is free to discard all but the last
|
||||
event it received.
|
||||
</description>
|
||||
|
||||
<arg name="state_type" type="uint" summary="the state to set"/>
|
||||
<arg name="value" type="uint" summary="the value to change the state to"/>
|
||||
<arg name="serial" type="uint" summary="a serial for the compositor's own tracking"/>
|
||||
<arg name="width" type="int"/>
|
||||
<arg name="height" type="int"/>
|
||||
<arg name="states" type="array"/>
|
||||
<arg name="serial" type="uint"/>
|
||||
</event>
|
||||
|
||||
<request name="ack_change_state">
|
||||
<description summary="ack a change_state event">
|
||||
When a change_state event is received, a client should then ack it
|
||||
using the ack_change_state request to ensure that the compositor
|
||||
<request name="ack_configure">
|
||||
<description summary="ack a configure event">
|
||||
When a configure event is received, a client should then ack it
|
||||
using the ack_configure request to ensure that the compositor
|
||||
knows the client has seen the event.
|
||||
|
||||
By this point, the state is confirmed, and the next attach should
|
||||
contain the buffer drawn for the new state value.
|
||||
|
||||
The values here need to be the same as the values in the cooresponding
|
||||
change_state event.
|
||||
contain the buffer drawn for the configure event you are acking.
|
||||
</description>
|
||||
<arg name="state_type" type="uint" summary="the state to set"/>
|
||||
<arg name="value" type="uint" summary="the value to change the state to"/>
|
||||
<arg name="serial" type="uint" summary="a serial to pass to change_state"/>
|
||||
<arg name="serial" type="uint" summary="a serial to configure for"/>
|
||||
</request>
|
||||
|
||||
<request name="set_minimized">
|
||||
<description summary="minimize the surface">
|
||||
Minimize the surface.
|
||||
<request name="set_maximized" />
|
||||
<request name="unset_maximized" />
|
||||
|
||||
<request name="set_fullscreen">
|
||||
<description summary="set the window as fullscreen on a monitor">
|
||||
Make the surface fullscreen.
|
||||
|
||||
You can specify an output that you would prefer to be fullscreen.
|
||||
If this value is NULL, it's up to the compositor to choose which
|
||||
display will be used to map this surface.
|
||||
</description>
|
||||
<arg name="output" type="object" interface="wl_output" allow-null="true"/>
|
||||
</request>
|
||||
<request name="unset_fullscreen" />
|
||||
|
||||
<event name="activated">
|
||||
<description summary="surface was activated">
|
||||
The activated_set event is sent when this surface has been
|
||||
activated, which means that the surface has user attention.
|
||||
Window decorations should be updated accordingly. You should
|
||||
not use this event for anything but the style of decorations
|
||||
you display, use wl_keyboard.enter and wl_keyboard.leave for
|
||||
determining keyboard focus.
|
||||
</description>
|
||||
</event>
|
||||
<request name="set_minimized" />
|
||||
|
||||
<event name="deactivated">
|
||||
<description summary="surface was deactivated">
|
||||
The deactivate event is sent when this surface has been
|
||||
deactivated, which means that the surface lost user attention.
|
||||
Window decorations should be updated accordingly. You should
|
||||
not use this event for anything but the style of decorations
|
||||
you display, use wl_keyboard.enter and wl_keyboard.leave for
|
||||
determining keyboard focus.
|
||||
</description>
|
||||
</event>
|
||||
|
||||
<event name="delete">
|
||||
<event name="close">
|
||||
<description summary="surface wants to be closed">
|
||||
The delete event is sent by the compositor when the user
|
||||
The close event is sent by the compositor when the user
|
||||
wants the surface to be closed. This should be equivalent to
|
||||
the user clicking the close button in client-side decorations,
|
||||
if your application has any...
|
||||
|
||||
@@ -1285,12 +1285,15 @@ _gdk_win32_selection_convert_to_dib (HGLOBAL hdata,
|
||||
|
||||
if (target == _image_bmp)
|
||||
{
|
||||
HGLOBAL hdatanew;
|
||||
SIZE_T size;
|
||||
guchar *ptr;
|
||||
|
||||
g_return_val_if_fail (GlobalSize (hdata) >= sizeof (BITMAPFILEHEADER), NULL);
|
||||
|
||||
/* No conversion is needed, just strip the BITMAPFILEHEADER */
|
||||
HGLOBAL hdatanew;
|
||||
SIZE_T size = GlobalSize (hdata) - sizeof (BITMAPFILEHEADER);
|
||||
guchar *ptr = GlobalLock (hdata);
|
||||
size = GlobalSize (hdata) - sizeof (BITMAPFILEHEADER);
|
||||
ptr = GlobalLock (hdata);
|
||||
|
||||
memmove (ptr, ptr + sizeof (BITMAPFILEHEADER), size);
|
||||
GlobalUnlock (hdata);
|
||||
|
||||
@@ -5702,6 +5702,53 @@ gdk_x11_window_set_opaque_region (GdkWindow *window,
|
||||
g_free (data);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
gdk_x11_window_show_window_menu (GdkWindow *window,
|
||||
GdkEvent *event)
|
||||
{
|
||||
GdkDisplay *display = GDK_WINDOW_DISPLAY (window);
|
||||
GdkDevice *device;
|
||||
int device_id;
|
||||
double x_root, y_root;
|
||||
XClientMessageEvent xclient = { 0 };
|
||||
|
||||
switch (event->type)
|
||||
{
|
||||
case GDK_BUTTON_PRESS:
|
||||
case GDK_BUTTON_RELEASE:
|
||||
break;
|
||||
default:
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (!gdk_x11_screen_supports_net_wm_hint (GDK_WINDOW_SCREEN (window),
|
||||
gdk_atom_intern_static_string ("_GTK_SHOW_WINDOW_MENU")))
|
||||
return FALSE;
|
||||
|
||||
gdk_event_get_root_coords (event, &x_root, &y_root);
|
||||
device = gdk_event_get_device (event);
|
||||
g_object_get (G_OBJECT (device),
|
||||
"device-id", &device_id,
|
||||
NULL);
|
||||
|
||||
/* Ungrab the implicit grab */
|
||||
gdk_device_ungrab (device, gdk_event_get_time (event));
|
||||
|
||||
xclient.type = ClientMessage;
|
||||
xclient.window = GDK_WINDOW_XID (window);
|
||||
xclient.message_type = gdk_x11_get_xatom_by_name_for_display (display, "_GTK_SHOW_WINDOW_MENU");
|
||||
xclient.data.l[0] = device_id;
|
||||
xclient.data.l[1] = x_root;
|
||||
xclient.data.l[2] = y_root;
|
||||
xclient.format = 32;
|
||||
|
||||
XSendEvent (GDK_DISPLAY_XDISPLAY (display), GDK_WINDOW_XROOTWIN (window), False,
|
||||
SubstructureRedirectMask | SubstructureNotifyMask,
|
||||
(XEvent *)&xclient);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static void
|
||||
gdk_window_impl_x11_class_init (GdkWindowImplX11Class *klass)
|
||||
{
|
||||
@@ -5791,4 +5838,5 @@ gdk_window_impl_x11_class_init (GdkWindowImplX11Class *klass)
|
||||
impl_class->get_scale_factor = gdk_x11_window_get_scale_factor;
|
||||
impl_class->set_opaque_region = gdk_x11_window_set_opaque_region;
|
||||
impl_class->set_shadow_width = gdk_x11_window_set_shadow_width;
|
||||
impl_class->show_window_menu = gdk_x11_window_show_window_menu;
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@ GTK+ is free software and part of the GNU Project. However, the
|
||||
licensing terms for GTK+, the GNU LGPL, allow it to be used by all
|
||||
developers, including those developing proprietary software, without
|
||||
any license fees or royalties.</description>
|
||||
<homepage rdf:resource="http://www.gtk+.org/" />
|
||||
<homepage rdf:resource="http://www.gtk.org/" />
|
||||
<license rdf:resource="http://usefulinc.com/doap/licenses/lgpl" />
|
||||
<bug-database rdf:resource="http://bugzilla.gnome.org/enter_bug.cgi?product=gtk%2B" />
|
||||
<download-page rdf:resource="http://download.gnome.org/sources/gtk+/" />
|
||||
|
||||
-134
@@ -1,134 +0,0 @@
|
||||
%define binary_version @GTK_BINARY_VERSION@
|
||||
|
||||
Name: gtk2
|
||||
Summary: The Gimp Toolkit
|
||||
Version: @VERSION@
|
||||
Release: 1
|
||||
License: LGPL
|
||||
Group: X11/Libraries
|
||||
Source: ftp://ftp.gimp.org/pub/gtk/v2.3/gtk+-%{version}.tar.gz
|
||||
BuildRoot: /var/tmp/%{name}-%{version}-root
|
||||
URL: http://www.gtk.org
|
||||
Requires: glib2 >= %{version}
|
||||
Requires: pango
|
||||
Requires: atk
|
||||
BuildRequires: glib2-devel
|
||||
BuildRequires: pango-devel
|
||||
BuildRequires: atk-devel
|
||||
|
||||
%description
|
||||
The X libraries originally written for the GIMP, which are now used by
|
||||
several other programs as well.
|
||||
|
||||
%package devel
|
||||
Summary: GIMP Toolkit and GIMP Drawing Kit
|
||||
Group: X11/Libraries
|
||||
Requires: %{name} = %{version}
|
||||
|
||||
%description devel
|
||||
Static libraries and header files for the GIMP's X libraries, which are
|
||||
available as public libraries. GLIB includes generally useful data
|
||||
structures, GDK is a drawing toolkit which provides a thin layer over
|
||||
Xlib to help automate things like dealing with different color depths,
|
||||
and GTK is a widget set for creating user interfaces.
|
||||
|
||||
|
||||
%prep
|
||||
%setup -q -n gtk+-%{version}
|
||||
|
||||
%build
|
||||
%ifarch alpha
|
||||
MYARCH_FLAGS="--host=alpha-redhat-linux"
|
||||
%endif
|
||||
|
||||
# Needed for snapshot releases.
|
||||
MYCFLAGS="$RPM_OPT_FLAGS"
|
||||
if [ ! -f configure ]; then
|
||||
CFLAGS="$MYCFLAGS" ./autogen.sh $MYARCH_FLAGS \
|
||||
--prefix=%{_prefix} \
|
||||
--localstatedir=%{_localstatedir} --sysconfdir=%{_sysconfdir} \
|
||||
--mandir=%{_mandir} --libdir=%{_libdir} \
|
||||
--includedir=%{_includedir}
|
||||
else
|
||||
CFLAGS="$MYCFLAGS" ./configure $MYARCH_FLAGS \
|
||||
--prefix=%{_prefix} --localstatedir=%{_localstatedir} \
|
||||
--sysconfdir=%{_sysconfdir} --mandir=%{_mandir} \
|
||||
--libdir=%{_libdir} --includedir=%{_includedir} --disable-gtk-doc
|
||||
fi
|
||||
|
||||
if [ "$SMP" != "" ]; then
|
||||
(make "MAKE=make -k -j $SMP"; exit 0)
|
||||
make
|
||||
else
|
||||
make
|
||||
fi
|
||||
|
||||
%install
|
||||
rm -rf $RPM_BUILD_ROOT
|
||||
|
||||
make -k sysconfdir=$RPM_BUILD_ROOT%{_sysconfdir} \
|
||||
prefix=$RPM_BUILD_ROOT%{_prefix} mandir=$RPM_BUILD_ROOT%{_mandir} \
|
||||
localstatedir=$RPM_BUILD_ROOT%{_localstatedir} \
|
||||
libdir=$RPM_BUILD_ROOT%{_libdir} \
|
||||
includedir=$RPM_BUILD_ROOT%{_includedir} install
|
||||
|
||||
%clean
|
||||
rm -rf $RPM_BUILD_ROOT
|
||||
|
||||
%post -p /sbin/ldconfig
|
||||
|
||||
%postun -p /sbin/ldconfig
|
||||
|
||||
%files
|
||||
%defattr(-, root, root)
|
||||
|
||||
%doc AUTHORS COPYING ChangeLog NEWS README
|
||||
%{_bindir}/*
|
||||
%{_libdir}/libgtk*.so.*
|
||||
%{_libdir}/libgdk*.so.*
|
||||
%{_libdir}/gtk-2.0/%{binary_version}/*/*.so
|
||||
#%{_datadir}/locale/*/*/*
|
||||
%{_sysconfdir}/gtk-2.0/gtk.immodules
|
||||
|
||||
%files devel
|
||||
%defattr(-, root, root)
|
||||
|
||||
%{_libdir}/lib*.so
|
||||
%{_libdir}/*a
|
||||
%{_libdir}/gtk-2.0/%{binary_version}/*/*a
|
||||
%{_libdir}/gtk-2.0/include
|
||||
%{_libdir}/pkgconfig/*.pc
|
||||
%{_includedir}/gtk-2.0
|
||||
%{_datadir}/gtk-2.0
|
||||
%{_datadir}/aclocal/*
|
||||
%{_datadir}/gtk-doc/html/*
|
||||
|
||||
|
||||
%changelog
|
||||
* Wed Sep 11 2002 Dennis Dementiev <denm@asplinux.ru>
|
||||
- modules and loaders should be installed in under binary version
|
||||
dir instead version
|
||||
|
||||
* Mon Aug 27 2001 Jens Finke <jens@gnome.org>
|
||||
- Renamed package to gtk2.
|
||||
- Updated source url.
|
||||
- glib2 package required.
|
||||
|
||||
* Mon Aug 27 2001 Jens Finke <jens@gnome.org>
|
||||
- Updated spec file to match gpp standard and
|
||||
1.3.x files.
|
||||
- Removed all hardcoded paths, use rpm macros instead.
|
||||
- Added pango and atk Requires: and BuildRequires: statements.
|
||||
- Removed Docdir: statement.
|
||||
- Moved ChangeLog to the end of the file.
|
||||
- Truncated ChangeLog (Mar 12 1998 - Jun 1 1999)
|
||||
Previous Authors:
|
||||
Jose Mercado <jmercado@mit.edu>
|
||||
Michael Fulbright <drmike@redhat.com>
|
||||
Shawn T. Amundson <amundson@gtk.org>
|
||||
Dick Porter <dick@cymru.net>
|
||||
Marc Ewing <marc@redhat.com>
|
||||
Owen Taylor <otaylor@gtk.org>
|
||||
Trond Eivind Glomsrod <teg@pvv.ntnu.no>
|
||||
Michael K. Johnson <johnsonm@redhat.com>
|
||||
Otto Hammersmith <otto@redhat.com>
|
||||
+194
-29
@@ -18,7 +18,7 @@ else
|
||||
GTK_PRINT_PREVIEW_COMMAND="evince --unlink-tempfile --preview --print-settings %s %f"
|
||||
endif
|
||||
|
||||
SUBDIRS = a11y native .
|
||||
SUBDIRS = inspector native .
|
||||
|
||||
if HAVE_CLOUDPRINT
|
||||
if HAVE_PAPI_CUPS
|
||||
@@ -116,12 +116,12 @@ endif
|
||||
libgtkincludedir = $(includedir)/gtk-3.0/gtk
|
||||
libadd = \
|
||||
$(top_builddir)/gdk/libgdk-3.la \
|
||||
$(top_builddir)/gtk/a11y/libgtka11y.la \
|
||||
$(top_builddir)/gtk/inspector/libgtkinspector.la \
|
||||
$(GMODULE_LIBS) \
|
||||
$(GTK_DEP_LIBS)
|
||||
deps = \
|
||||
$(top_builddir)/gdk/libgdk-3.la \
|
||||
$(top_builddir)/gtk/a11y/libgtka11y.la
|
||||
$(top_builddir)/gtk/inspector/libgtkinspector.la
|
||||
|
||||
# libtool stuff: set version and export symbols for resolving
|
||||
# since automake doesn't support conditionalized libsomething_la_LDFLAGS
|
||||
@@ -153,10 +153,64 @@ endif
|
||||
# GTK+ header files for public installation (non-generated, or generated
|
||||
# by configure)
|
||||
|
||||
a11y_h_sources = \
|
||||
a11y/gtkarrowaccessible.h \
|
||||
a11y/gtkbooleancellaccessible.h \
|
||||
a11y/gtkbuttonaccessible.h \
|
||||
a11y/gtkcellaccessible.h \
|
||||
a11y/gtkcellaccessibleparent.h \
|
||||
a11y/gtkcheckmenuitemaccessible.h \
|
||||
a11y/gtkcomboboxaccessible.h \
|
||||
a11y/gtkcontaineraccessible.h \
|
||||
a11y/gtkcontainercellaccessible.h \
|
||||
a11y/gtkentryaccessible.h \
|
||||
a11y/gtkexpanderaccessible.h \
|
||||
a11y/gtkflowboxaccessible.h \
|
||||
a11y/gtkflowboxchildaccessible.h \
|
||||
a11y/gtkframeaccessible.h \
|
||||
a11y/gtkiconviewaccessible.h \
|
||||
a11y/gtkimageaccessible.h \
|
||||
a11y/gtkimagecellaccessible.h \
|
||||
a11y/gtklabelaccessible.h \
|
||||
a11y/gtklevelbaraccessible.h \
|
||||
a11y/gtklinkbuttonaccessible.h \
|
||||
a11y/gtklistboxaccessible.h \
|
||||
a11y/gtklistboxrowaccessible.h \
|
||||
a11y/gtklockbuttonaccessible.h \
|
||||
a11y/gtkmenuaccessible.h \
|
||||
a11y/gtkmenubuttonaccessible.h \
|
||||
a11y/gtkmenuitemaccessible.h \
|
||||
a11y/gtkmenushellaccessible.h \
|
||||
a11y/gtknotebookaccessible.h \
|
||||
a11y/gtknotebookpageaccessible.h \
|
||||
a11y/gtkpanedaccessible.h \
|
||||
a11y/gtkpopoveraccessible.h \
|
||||
a11y/gtkprogressbaraccessible.h \
|
||||
a11y/gtkradiobuttonaccessible.h \
|
||||
a11y/gtkradiomenuitemaccessible.h \
|
||||
a11y/gtkrangeaccessible.h \
|
||||
a11y/gtkrenderercellaccessible.h \
|
||||
a11y/gtkscaleaccessible.h \
|
||||
a11y/gtkscalebuttonaccessible.h \
|
||||
a11y/gtkscrolledwindowaccessible.h \
|
||||
a11y/gtkspinbuttonaccessible.h \
|
||||
a11y/gtkspinneraccessible.h \
|
||||
a11y/gtkstatusbaraccessible.h \
|
||||
a11y/gtkswitchaccessible.h \
|
||||
a11y/gtktextcellaccessible.h \
|
||||
a11y/gtktextviewaccessible.h \
|
||||
a11y/gtktogglebuttonaccessible.h \
|
||||
a11y/gtktoplevelaccessible.h \
|
||||
a11y/gtktreeviewaccessible.h \
|
||||
a11y/gtkwidgetaccessible.h \
|
||||
a11y/gtkwindowaccessible.h
|
||||
|
||||
deprecated_h_sources = \
|
||||
deprecated/gtkactivatable.h \
|
||||
deprecated/gtkaction.h \
|
||||
deprecated/gtkactiongroup.h \
|
||||
deprecated/gtkalignment.h \
|
||||
deprecated/gtkarrow.h \
|
||||
deprecated/gtkcolorsel.h \
|
||||
deprecated/gtkcolorseldialog.h \
|
||||
deprecated/gtkfontsel.h \
|
||||
@@ -171,6 +225,8 @@ deprecated_h_sources = \
|
||||
deprecated/gtkhsv.h \
|
||||
deprecated/gtkiconfactory.h \
|
||||
deprecated/gtkimagemenuitem.h \
|
||||
deprecated/gtkmisc.h \
|
||||
deprecated/gtknumerableicon.h \
|
||||
deprecated/gtkradioaction.h \
|
||||
deprecated/gtkrc.h \
|
||||
deprecated/gtkrecentaction.h \
|
||||
@@ -188,8 +244,25 @@ deprecated_h_sources = \
|
||||
deprecated/gtkvseparator.h \
|
||||
deprecated/gtkvpaned.h
|
||||
|
||||
a11y_private_h_sources = \
|
||||
a11y/gtkaccessibility.h \
|
||||
a11y/gtkaccessibilitymisc.h \
|
||||
a11y/gtkaccessibilityutil.h \
|
||||
a11y/gtkcellaccessibleprivate.h \
|
||||
a11y/gtkcolorswatchaccessibleprivate.h \
|
||||
a11y/gtkcontaineraccessibleprivate.h \
|
||||
a11y/gtkiconviewaccessibleprivate.h \
|
||||
a11y/gtklabelaccessibleprivate.h \
|
||||
a11y/gtkflowboxaccessibleprivate.h \
|
||||
a11y/gtklistboxaccessibleprivate.h \
|
||||
a11y/gtklockbuttonaccessibleprivate.h \
|
||||
a11y/gtktextviewaccessibleprivate.h \
|
||||
a11y/gtktreeviewaccessibleprivate.h \
|
||||
a11y/gtkwidgetaccessibleprivate.h
|
||||
|
||||
deprecated_private_h_sources = \
|
||||
deprecated/gtkgradientprivate.h \
|
||||
deprecated/gtknumerableiconprivate.h \
|
||||
deprecated/gtksymboliccolorprivate.h
|
||||
|
||||
gtk_public_h_sources = \
|
||||
@@ -204,14 +277,12 @@ gtk_public_h_sources = \
|
||||
gtkactionable.h \
|
||||
gtkactionbar.h \
|
||||
gtkadjustment.h \
|
||||
gtkalignment.h \
|
||||
gtkappchooser.h \
|
||||
gtkappchooserbutton.h \
|
||||
gtkappchooserdialog.h \
|
||||
gtkappchooserwidget.h \
|
||||
gtkapplication.h \
|
||||
gtkapplicationwindow.h \
|
||||
gtkarrow.h \
|
||||
gtkaspectframe.h \
|
||||
gtkassistant.h \
|
||||
gtkbbox.h \
|
||||
@@ -261,6 +332,7 @@ gtk_public_h_sources = \
|
||||
gtkentrycompletion.h \
|
||||
gtkenums.h \
|
||||
gtkeventbox.h \
|
||||
gtkeventcontroller.h \
|
||||
gtkexpander.h \
|
||||
gtkfilechooser.h \
|
||||
gtkfilechooserbutton.h \
|
||||
@@ -274,6 +346,15 @@ gtk_public_h_sources = \
|
||||
gtkfontchooserdialog.h \
|
||||
gtkfontchooserwidget.h \
|
||||
gtkframe.h \
|
||||
gtkgesture.h \
|
||||
gtkgesturedrag.h \
|
||||
gtkgesturelongpress.h \
|
||||
gtkgesturemultipress.h \
|
||||
gtkgesturepan.h \
|
||||
gtkgesturerotate.h \
|
||||
gtkgesturesingle.h \
|
||||
gtkgestureswipe.h \
|
||||
gtkgesturezoom.h \
|
||||
gtkgrid.h \
|
||||
gtkheaderbar.h \
|
||||
gtkicontheme.h \
|
||||
@@ -301,11 +382,9 @@ gtk_public_h_sources = \
|
||||
gtkmenushell.h \
|
||||
gtkmenutoolbutton.h \
|
||||
gtkmessagedialog.h \
|
||||
gtkmisc.h \
|
||||
gtkmodules.h \
|
||||
gtkmountoperation.h \
|
||||
gtknotebook.h \
|
||||
gtknumerableicon.h \
|
||||
gtkoffscreenwindow.h \
|
||||
gtkorientable.h \
|
||||
gtkoverlay.h \
|
||||
@@ -455,6 +534,7 @@ gtk_private_h_sources = \
|
||||
gtkcssenumvalueprivate.h \
|
||||
gtkcssimagecrossfadeprivate.h \
|
||||
gtkcssimagegradientprivate.h \
|
||||
gtkcssimageiconthemeprivate.h \
|
||||
gtkcssimagelinearprivate.h \
|
||||
gtkcssimageprivate.h \
|
||||
gtkcssimagesurfaceprivate.h \
|
||||
@@ -481,12 +561,15 @@ gtk_private_h_sources = \
|
||||
gtkcssstringvalueprivate.h \
|
||||
gtkcssstylefuncsprivate.h \
|
||||
gtkcssstylepropertyprivate.h \
|
||||
gtkcsstransformvalueprivate.h \
|
||||
gtkcsstransitionprivate.h \
|
||||
gtkcsstypedvalueprivate.h \
|
||||
gtkcssunsetvalueprivate.h \
|
||||
gtkcssvalueprivate.h \
|
||||
gtkcustompaperunixdialog.h \
|
||||
gtkdialogprivate.h \
|
||||
gtkentryprivate.h \
|
||||
gtkeventcontrollerprivate.h \
|
||||
gtkfilechooserembed.h \
|
||||
gtkfilechooserentry.h \
|
||||
gtkfilechooserprivate.h \
|
||||
@@ -495,6 +578,15 @@ gtk_private_h_sources = \
|
||||
gtkfilesystemmodel.h \
|
||||
gtkfontchooserprivate.h \
|
||||
gtkfontchooserutils.h \
|
||||
gtkgestureprivate.h \
|
||||
gtkgesturedragprivate.h \
|
||||
gtkgesturelongpressprivate.h \
|
||||
gtkgesturemultipressprivate.h \
|
||||
gtkgesturepanprivate.h \
|
||||
gtkgesturerotateprivate.h \
|
||||
gtkgesturesingleprivate.h \
|
||||
gtkgestureswipeprivate.h \
|
||||
gtkgesturezoomprivate.h \
|
||||
gtkheaderbarprivate.h \
|
||||
gtkhslaprivate.h \
|
||||
gtkiconcache.h \
|
||||
@@ -511,6 +603,7 @@ gtk_private_h_sources = \
|
||||
gtkmenubuttonprivate.h \
|
||||
gtkmenuprivate.h \
|
||||
gtkmenuitemprivate.h \
|
||||
gtkmenusectionbox.h \
|
||||
gtkmenushellprivate.h \
|
||||
gtkmenutracker.h \
|
||||
gtkmenutrackeritem.h \
|
||||
@@ -520,11 +613,9 @@ gtk_private_h_sources = \
|
||||
gtkmodifierstyle.h \
|
||||
gtkmodulesprivate.h \
|
||||
gtkmountoperationprivate.h \
|
||||
gtknumerableiconprivate.h \
|
||||
gtkorientableprivate.h \
|
||||
gtkpango.h \
|
||||
gtkpathbar.h \
|
||||
gtkpressandholdprivate.h \
|
||||
gtkprintoperation-private.h \
|
||||
gtkprintutils.h \
|
||||
gtkprivate.h \
|
||||
@@ -575,11 +666,69 @@ gtk_private_h_sources = \
|
||||
$(gtk_private_type_h_sources) \
|
||||
$(gtk_clipboard_dnd_h_sources)
|
||||
|
||||
a11y_c_sources = \
|
||||
a11y/gtkaccessibility.c \
|
||||
a11y/gtkaccessibilitymisc.c \
|
||||
a11y/gtkaccessibilityutil.c \
|
||||
a11y/gtkarrowaccessible.c \
|
||||
a11y/gtkbooleancellaccessible.c \
|
||||
a11y/gtkbuttonaccessible.c \
|
||||
a11y/gtkcellaccessible.c \
|
||||
a11y/gtkcellaccessibleparent.c \
|
||||
a11y/gtkcheckmenuitemaccessible.c \
|
||||
a11y/gtkcolorswatchaccessible.c \
|
||||
a11y/gtkcomboboxaccessible.c \
|
||||
a11y/gtkcontaineraccessible.c \
|
||||
a11y/gtkcontainercellaccessible.c \
|
||||
a11y/gtkentryaccessible.c \
|
||||
a11y/gtkexpanderaccessible.c \
|
||||
a11y/gtkflowboxaccessible.c \
|
||||
a11y/gtkflowboxchildaccessible.c \
|
||||
a11y/gtkframeaccessible.c \
|
||||
a11y/gtkiconviewaccessible.c \
|
||||
a11y/gtkimageaccessible.c \
|
||||
a11y/gtkimagecellaccessible.c \
|
||||
a11y/gtklabelaccessible.c \
|
||||
a11y/gtklevelbaraccessible.c \
|
||||
a11y/gtklinkbuttonaccessible.c \
|
||||
a11y/gtklistboxaccessible.c \
|
||||
a11y/gtklistboxrowaccessible.c \
|
||||
a11y/gtklockbuttonaccessible.c \
|
||||
a11y/gtkmenuaccessible.c \
|
||||
a11y/gtkmenubuttonaccessible.c \
|
||||
a11y/gtkmenushellaccessible.c \
|
||||
a11y/gtkmenuitemaccessible.c \
|
||||
a11y/gtknotebookaccessible.c \
|
||||
a11y/gtknotebookpageaccessible.c \
|
||||
a11y/gtkpanedaccessible.c \
|
||||
a11y/gtkpopoveraccessible.c \
|
||||
a11y/gtkprogressbaraccessible.c \
|
||||
a11y/gtkradiobuttonaccessible.c \
|
||||
a11y/gtkradiomenuitemaccessible.c \
|
||||
a11y/gtkrangeaccessible.c \
|
||||
a11y/gtkrenderercellaccessible.c \
|
||||
a11y/gtkscaleaccessible.c \
|
||||
a11y/gtkscalebuttonaccessible.c \
|
||||
a11y/gtkscrolledwindowaccessible.c \
|
||||
a11y/gtkspinbuttonaccessible.c \
|
||||
a11y/gtkspinneraccessible.c \
|
||||
a11y/gtkstatusbaraccessible.c \
|
||||
a11y/gtkswitchaccessible.c \
|
||||
a11y/gtktextcellaccessible.c \
|
||||
a11y/gtktextviewaccessible.c \
|
||||
a11y/gtktogglebuttonaccessible.c \
|
||||
a11y/gtktoplevelaccessible.c \
|
||||
a11y/gtktreeviewaccessible.c \
|
||||
a11y/gtkwidgetaccessible.c \
|
||||
a11y/gtkwindowaccessible.c
|
||||
|
||||
# GTK+ C sources to build the library from
|
||||
deprecated_c_sources = \
|
||||
deprecated/gtkactivatable.c \
|
||||
deprecated/gtkaction.c \
|
||||
deprecated/gtkactiongroup.c \
|
||||
deprecated/gtkalignment.c \
|
||||
deprecated/gtkarrow.c \
|
||||
deprecated/gtkcolorsel.c \
|
||||
deprecated/gtkcolorseldialog.c \
|
||||
deprecated/gtkfontsel.c \
|
||||
@@ -594,6 +743,8 @@ deprecated_c_sources = \
|
||||
deprecated/gtkhsv.c \
|
||||
deprecated/gtkiconfactory.c \
|
||||
deprecated/gtkimagemenuitem.c \
|
||||
deprecated/gtkmisc.c \
|
||||
deprecated/gtknumerableicon.c \
|
||||
deprecated/gtkradioaction.c \
|
||||
deprecated/gtkrc.c \
|
||||
deprecated/gtkrecentaction.c \
|
||||
@@ -612,6 +763,7 @@ deprecated_c_sources = \
|
||||
deprecated/gtkvpaned.c
|
||||
|
||||
gtk_base_c_sources = \
|
||||
$(a11y_c_sources) \
|
||||
$(deprecated_c_sources) \
|
||||
gtkactionmuxer.c \
|
||||
gtkactionobserver.c \
|
||||
@@ -631,7 +783,6 @@ gtk_base_c_sources = \
|
||||
gtkactionbar.c \
|
||||
gtkactionhelper.c \
|
||||
gtkadjustment.c \
|
||||
gtkalignment.c \
|
||||
gtkallocatedbitmask.c \
|
||||
gtkappchooser.c \
|
||||
gtkappchooserwidget.c \
|
||||
@@ -640,7 +791,6 @@ gtk_base_c_sources = \
|
||||
gtkapplication.c \
|
||||
gtkapplicationimpl.c \
|
||||
gtkapplicationwindow.c \
|
||||
gtkarrow.c \
|
||||
gtkaspectframe.c \
|
||||
gtkassistant.c \
|
||||
gtkbbox.c \
|
||||
@@ -701,6 +851,7 @@ gtk_base_c_sources = \
|
||||
gtkcssimage.c \
|
||||
gtkcssimagecrossfade.c \
|
||||
gtkcssimagegradient.c \
|
||||
gtkcssimageicontheme.c \
|
||||
gtkcssimagelinear.c \
|
||||
gtkcssimagesurface.c \
|
||||
gtkcssimageurl.c \
|
||||
@@ -728,8 +879,10 @@ gtk_base_c_sources = \
|
||||
gtkcssstylefuncs.c \
|
||||
gtkcssstyleproperty.c \
|
||||
gtkcssstylepropertyimpl.c \
|
||||
gtkcsstransformvalue.c \
|
||||
gtkcsstransition.c \
|
||||
gtkcsstypedvalue.c \
|
||||
gtkcssunsetvalue.c \
|
||||
gtkcssvalue.c \
|
||||
gtkcsstypes.c \
|
||||
gtkdialog.c \
|
||||
@@ -739,6 +892,7 @@ gtk_base_c_sources = \
|
||||
gtkentrybuffer.c \
|
||||
gtkentrycompletion.c \
|
||||
gtkeventbox.c \
|
||||
gtkeventcontroller.c \
|
||||
gtkexpander.c \
|
||||
gtkfilechooser.c \
|
||||
gtkfilechooserbutton.c \
|
||||
@@ -759,6 +913,15 @@ gtk_base_c_sources = \
|
||||
gtkfontchooserwidget.c \
|
||||
gtkframe.c \
|
||||
gtkgladecatalog.c \
|
||||
gtkgesture.c \
|
||||
gtkgesturedrag.c \
|
||||
gtkgesturelongpress.c \
|
||||
gtkgesturemultipress.c \
|
||||
gtkgesturepan.c \
|
||||
gtkgesturerotate.c \
|
||||
gtkgesturesingle.c \
|
||||
gtkgestureswipe.c \
|
||||
gtkgesturezoom.c \
|
||||
gtkgrid.c \
|
||||
gtkheaderbar.c \
|
||||
gtkhsla.c \
|
||||
@@ -789,12 +952,12 @@ gtk_base_c_sources = \
|
||||
gtkmenubar.c \
|
||||
gtkmenubutton.c \
|
||||
gtkmenuitem.c \
|
||||
gtkmenusectionbox.c \
|
||||
gtkmenushell.c \
|
||||
gtkmenutracker.c \
|
||||
gtkmenutrackeritem.c \
|
||||
gtkmenutoolbutton.c \
|
||||
gtkmessagedialog.c \
|
||||
gtkmisc.c \
|
||||
gtkmnemonichash.c \
|
||||
gtkmodelmenuitem.c \
|
||||
gtkmodelbutton.c \
|
||||
@@ -802,7 +965,6 @@ gtk_base_c_sources = \
|
||||
gtkmodules.c \
|
||||
gtkmountoperation.c \
|
||||
gtknotebook.c \
|
||||
gtknumerableicon.c \
|
||||
gtkoffscreenwindow.c \
|
||||
gtkorientable.c \
|
||||
gtkoverlay.c \
|
||||
@@ -812,7 +974,6 @@ gtk_base_c_sources = \
|
||||
gtkpapersize.c \
|
||||
gtkpathbar.c \
|
||||
gtkplacessidebar.c \
|
||||
gtkpressandhold.c \
|
||||
gtkprintcontext.c \
|
||||
gtkprintoperation.c \
|
||||
gtkprintoperationpreview.c \
|
||||
@@ -1036,6 +1197,7 @@ gtk_private_h_sources += $(gtk_use_quartz_private_h_sources)
|
||||
endif
|
||||
|
||||
gtk_all_private_h_sources = \
|
||||
$(a11y_private_h_sources) \
|
||||
$(deprecated_private_h_sources) \
|
||||
$(gtk_private_h_sources) \
|
||||
$(gtk_use_x11_private_h_sources) \
|
||||
@@ -1195,15 +1357,15 @@ gtkmarshalers.c: gtkmarshalers.list
|
||||
|
||||
gtktypebuiltins.h: stamp-gtktypebuiltins.h
|
||||
@true
|
||||
stamp-gtktypebuiltins.h: $(gtk_public_h_sources) $(deprecated_h_sources) gtktypebuiltins.h.template
|
||||
stamp-gtktypebuiltins.h: $(gtk_public_h_sources) $(a11y_h_sources) $(deprecated_h_sources) gtktypebuiltins.h.template
|
||||
$(AM_V_GEN) ( cd $(srcdir) && $(GLIB_MKENUMS) --template gtktypebuiltins.h.template \
|
||||
$(gtk_public_h_sources) $(deprecated_h_sources) ) > xgen-gtbh \
|
||||
$(gtk_public_h_sources) $(a11y_h_sources) $(deprecated_h_sources) ) > xgen-gtbh \
|
||||
&& (cmp -s xgen-gtbh gtktypebuiltins.h || cp xgen-gtbh gtktypebuiltins.h ) \
|
||||
&& rm -f xgen-gtbh \
|
||||
&& echo timestamp > $(@F)
|
||||
gtktypebuiltins.c: $(gtk_public_h_sources) $(deprecated_h_sources) gtktypebuiltins.c.template
|
||||
gtktypebuiltins.c: $(gtk_public_h_sources) $(a11y_h_sources) $(deprecated_h_sources) gtktypebuiltins.c.template
|
||||
$(AM_V_GEN) ( cd $(srcdir) && $(GLIB_MKENUMS) --template gtktypebuiltins.c.template \
|
||||
$(gtk_public_h_sources) $(deprecated_h_sources) ) > xgen-gtbc \
|
||||
$(gtk_public_h_sources) $(a11y_h_sources) $(deprecated_h_sources) ) > xgen-gtbc \
|
||||
&& cp xgen-gtbc gtktypebuiltins.c \
|
||||
&& rm -f xgen-gtbc
|
||||
|
||||
@@ -1230,7 +1392,7 @@ gtkprivatetypebuiltins.c: $(gtk_private_type_h_sources) gtkprivatetypebuiltins.
|
||||
&& rm -f xgen-gptbc
|
||||
|
||||
|
||||
gtktypefuncs.c: stamp-gtktypebuiltins.h stamp-gtkprivatetypebuiltins.h $(top_srcdir)/gtk/*.h $(top_srcdir)/gtk/deprecated/*.h $(top_srcdir)/gdk/*.h Makefile
|
||||
gtktypefuncs.c: stamp-gtktypebuiltins.h stamp-gtkprivatetypebuiltins.h $(top_srcdir)/gtk/*.h $(top_srcdir)/gtk/a11y/*.h $(top_srcdir)/gtk/deprecated/*.h $(top_srcdir)/gdk/*.h Makefile
|
||||
$(AM_V_GEN) echo '#include <gtk/gtkx.h>' > xgen-gtfsrc.c && \
|
||||
echo 'G_GNUC_BEGIN_IGNORE_DEPRECATIONS' > xgen-gtf && \
|
||||
${CPP} $(DEFS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) xgen-gtfsrc.c | \
|
||||
@@ -1246,6 +1408,9 @@ lib_LTLIBRARIES = libgtk-3.la
|
||||
gtkincludedir = $(includedir)/gtk-3.0/gtk
|
||||
gtkinclude_HEADERS = $(gtk_public_h_sources) $(gtk_semi_private_h_sources) $(gtk_built_public_sources) gtkversion.h
|
||||
|
||||
a11yincludedir = $(includedir)/gtk-3.0/gtk/a11y
|
||||
a11yinclude_HEADERS= $(a11y_h_sources)
|
||||
|
||||
deprecatedincludedir = $(includedir)/gtk-3.0/gtk/deprecated
|
||||
deprecatedinclude_HEADERS= $(deprecated_h_sources)
|
||||
|
||||
@@ -1349,7 +1514,7 @@ if HAVE_INTROSPECTION
|
||||
# introspection. Rather than copy the annotations over from the
|
||||
# regular files, exclude the quartz ones:
|
||||
introspection_files = \
|
||||
$(filter-out %private.h gtktextdisplay.h gtktextlayout.h, $(gtkinclude_HEADERS) $(deprecatedinclude_HEADERS)) \
|
||||
$(filter-out %private.h gtktextdisplay.h gtktextlayout.h, $(gtkinclude_HEADERS) $(a11yinclude_HEADERS) $(deprecatedinclude_HEADERS)) \
|
||||
$(filter-out gtkclipboard-quartz.c gtkdnd-quartz.c, \
|
||||
$(gtk_base_c_sources)) \
|
||||
gtkprintoperation-unix.c \
|
||||
@@ -1783,10 +1948,18 @@ endif
|
||||
--source builtin_icons stock-icons > gtkbuiltincache.h.tmp && \
|
||||
mv gtkbuiltincache.h.tmp gtkbuiltincache.h
|
||||
|
||||
gsettings_SCHEMAS = \
|
||||
org.gtk.Settings.FileChooser.gschema.xml \
|
||||
org.gtk.Settings.ColorChooser.gschema.xml \
|
||||
org.gtk.Settings.Debug.gschema.xml
|
||||
|
||||
@GSETTINGS_RULES@
|
||||
|
||||
EXTRA_DIST += \
|
||||
$(resource_files) \
|
||||
$(STOCK_ICONS) \
|
||||
$(GENERATED_ICONS) \
|
||||
$(gsettings_SCHEMAS) \
|
||||
gtk-win32.rc \
|
||||
gtk-win32.rc.in \
|
||||
gtkwin32embed.h \
|
||||
@@ -1805,15 +1978,7 @@ EXTRA_DIST += \
|
||||
gtktypebuiltins.c.template \
|
||||
gtktypebuiltins.h.template \
|
||||
gtkprivatetypebuiltins.c.template \
|
||||
gtkprivatetypebuiltins.h.template \
|
||||
org.gtk.Settings.FileChooser.gschema.xml \
|
||||
org.gtk.Settings.ColorChooser.gschema.xml
|
||||
|
||||
gsettings_SCHEMAS = \
|
||||
org.gtk.Settings.FileChooser.gschema.xml \
|
||||
org.gtk.Settings.ColorChooser.gschema.xml
|
||||
|
||||
@GSETTINGS_RULES@
|
||||
gtkprivatetypebuiltins.h.template
|
||||
|
||||
install-data-local:
|
||||
|
||||
|
||||
@@ -1,190 +0,0 @@
|
||||
include $(top_srcdir)/Makefile.decl
|
||||
|
||||
noinst_LTLIBRARIES = libgtka11y.la
|
||||
|
||||
gtka11y_c_sources = \
|
||||
gtkaccessibility.c \
|
||||
gtkaccessibilitymisc.c \
|
||||
gtkaccessibilityutil.c \
|
||||
gtkarrowaccessible.c \
|
||||
gtkbooleancellaccessible.c \
|
||||
gtkbuttonaccessible.c \
|
||||
gtkcellaccessible.c \
|
||||
gtkcellaccessibleparent.c \
|
||||
gtkcheckmenuitemaccessible.c \
|
||||
gtkcolorswatchaccessible.c \
|
||||
gtkcomboboxaccessible.c \
|
||||
gtkcontaineraccessible.c \
|
||||
gtkcontainercellaccessible.c \
|
||||
gtkentryaccessible.c \
|
||||
gtkexpanderaccessible.c \
|
||||
gtkflowboxaccessible.c \
|
||||
gtkflowboxchildaccessible.c \
|
||||
gtkframeaccessible.c \
|
||||
gtkiconviewaccessible.c \
|
||||
gtkimageaccessible.c \
|
||||
gtkimagecellaccessible.c \
|
||||
gtklabelaccessible.c \
|
||||
gtklevelbaraccessible.c \
|
||||
gtklinkbuttonaccessible.c \
|
||||
gtklistboxaccessible.c \
|
||||
gtklistboxrowaccessible.c \
|
||||
gtklockbuttonaccessible.c \
|
||||
gtkmenuaccessible.c \
|
||||
gtkmenubuttonaccessible.c \
|
||||
gtkmenushellaccessible.c \
|
||||
gtkmenuitemaccessible.c \
|
||||
gtknotebookaccessible.c \
|
||||
gtknotebookpageaccessible.c \
|
||||
gtkpanedaccessible.c \
|
||||
gtkpopoveraccessible.c \
|
||||
gtkprogressbaraccessible.c \
|
||||
gtkradiobuttonaccessible.c \
|
||||
gtkradiomenuitemaccessible.c \
|
||||
gtkrangeaccessible.c \
|
||||
gtkrenderercellaccessible.c \
|
||||
gtkscaleaccessible.c \
|
||||
gtkscalebuttonaccessible.c \
|
||||
gtkscrolledwindowaccessible.c \
|
||||
gtkspinbuttonaccessible.c \
|
||||
gtkspinneraccessible.c \
|
||||
gtkstatusbaraccessible.c \
|
||||
gtkswitchaccessible.c \
|
||||
gtktextcellaccessible.c \
|
||||
gtktextviewaccessible.c \
|
||||
gtktogglebuttonaccessible.c \
|
||||
gtktoplevelaccessible.c \
|
||||
gtktreeviewaccessible.c \
|
||||
gtkwidgetaccessible.c \
|
||||
gtkwindowaccessible.c
|
||||
|
||||
gtka11yincludedir = $(includedir)/gtk-3.0/gtk/a11y
|
||||
gtka11yinclude_HEADERS = \
|
||||
gtkarrowaccessible.h \
|
||||
gtkbooleancellaccessible.h \
|
||||
gtkbuttonaccessible.h \
|
||||
gtkcellaccessible.h \
|
||||
gtkcellaccessibleparent.h \
|
||||
gtkcheckmenuitemaccessible.h \
|
||||
gtkcomboboxaccessible.h \
|
||||
gtkcontaineraccessible.h \
|
||||
gtkcontainercellaccessible.h \
|
||||
gtkentryaccessible.h \
|
||||
gtkexpanderaccessible.h \
|
||||
gtkflowboxaccessible.h \
|
||||
gtkflowboxchildaccessible.h \
|
||||
gtkframeaccessible.h \
|
||||
gtkiconviewaccessible.h \
|
||||
gtkimageaccessible.h \
|
||||
gtkimagecellaccessible.h \
|
||||
gtklabelaccessible.h \
|
||||
gtklevelbaraccessible.h \
|
||||
gtklinkbuttonaccessible.h \
|
||||
gtklistboxaccessible.h \
|
||||
gtklistboxrowaccessible.h \
|
||||
gtklockbuttonaccessible.h \
|
||||
gtkmenuaccessible.h \
|
||||
gtkmenubuttonaccessible.h \
|
||||
gtkmenuitemaccessible.h \
|
||||
gtkmenushellaccessible.h \
|
||||
gtknotebookaccessible.h \
|
||||
gtknotebookpageaccessible.h \
|
||||
gtkpanedaccessible.h \
|
||||
gtkpopoveraccessible.h \
|
||||
gtkprogressbaraccessible.h \
|
||||
gtkradiobuttonaccessible.h \
|
||||
gtkradiomenuitemaccessible.h \
|
||||
gtkrangeaccessible.h \
|
||||
gtkrenderercellaccessible.h \
|
||||
gtkscaleaccessible.h \
|
||||
gtkscalebuttonaccessible.h \
|
||||
gtkscrolledwindowaccessible.h \
|
||||
gtkspinbuttonaccessible.h \
|
||||
gtkspinneraccessible.h \
|
||||
gtkstatusbaraccessible.h \
|
||||
gtkswitchaccessible.h \
|
||||
gtktextcellaccessible.h \
|
||||
gtktextviewaccessible.h \
|
||||
gtktogglebuttonaccessible.h \
|
||||
gtktoplevelaccessible.h \
|
||||
gtktreeviewaccessible.h \
|
||||
gtkwidgetaccessible.h \
|
||||
gtkwindowaccessible.h
|
||||
|
||||
gtka11y_private_h_sources = \
|
||||
gtkaccessibility.h \
|
||||
gtkaccessibilitymisc.h \
|
||||
gtkaccessibilityutil.h \
|
||||
gtkcellaccessibleprivate.h \
|
||||
gtkcolorswatchaccessibleprivate.h \
|
||||
gtkcontaineraccessibleprivate.h \
|
||||
gtkiconviewaccessibleprivate.h \
|
||||
gtklabelaccessibleprivate.h \
|
||||
gtkflowboxaccessibleprivate.h \
|
||||
gtklistboxaccessibleprivate.h \
|
||||
gtklockbuttonaccessibleprivate.h \
|
||||
gtktextviewaccessibleprivate.h \
|
||||
gtktreeviewaccessibleprivate.h \
|
||||
gtkwidgetaccessibleprivate.h
|
||||
|
||||
libgtka11y_la_SOURCES = \
|
||||
$(gtka11y_c_sources) \
|
||||
$(gtka11y_private_h_sources)
|
||||
|
||||
libgtka11y_la_CPPFLAGS = \
|
||||
-I$(top_srcdir) \
|
||||
-I$(top_srcdir)/gdk \
|
||||
-I$(top_builddir)/gdk \
|
||||
-I$(top_srcdir)/gtk \
|
||||
-I$(top_builddir)/gtk \
|
||||
-DGTK_VERSION=\"$(GTK_VERSION)\"\
|
||||
-DGTK_COMPILATION \
|
||||
$(AM_CPPFLAGS)
|
||||
|
||||
libgtka11y_la_CFLAGS = \
|
||||
$(GDK_HIDDEN_VISIBILITY_CFLAGS) \
|
||||
$(GTK_DEP_CFLAGS) \
|
||||
$(GTK_DEBUG_FLAGS) \
|
||||
$(AM_CFLAGS)
|
||||
|
||||
libgtka11y_la_LIBADD = \
|
||||
$(GTK_DEP_LIBS) \
|
||||
$(INTLLIBS)
|
||||
|
||||
libgtka11y_la_LDFLAGS = \
|
||||
$(LDFLAGS)
|
||||
|
||||
dist-hook: $(top_builddir)/build/win32/vs9/gtka11y.vcproj $(top_builddir)/build/win32/vs10/gtka11y.vcxproj $(top_builddir)/build/win32/vs10/gtka11y.vcxproj.filters
|
||||
|
||||
$(top_builddir)/build/win32/vs9/gtka11y.vcproj: $(top_srcdir)/build/win32/vs9/gtka11y.vcprojin
|
||||
for F in $(gtka11y_c_sources); do \
|
||||
case $$F in \
|
||||
*.c) echo ' <File RelativePath="..\..\..\gtk\a11y\'$$F'" />' \
|
||||
;; \
|
||||
esac; \
|
||||
done >gtka11y.sourcefiles
|
||||
$(CPP) -P - <$(top_srcdir)/build/win32/vs9/gtka11y.vcprojin >$@
|
||||
rm gtka11y.sourcefiles
|
||||
|
||||
$(top_builddir)/build/win32/vs10/gtka11y.vcxproj: $(top_srcdir)/build/win32/vs10/gtka11y.vcxprojin
|
||||
for F in $(gtka11y_c_sources); do \
|
||||
case $$F in \
|
||||
*.c) echo ' <ClCompile Include="..\..\..\gtk\a11y\'$$F'" />' \
|
||||
;; \
|
||||
esac; \
|
||||
done >gtka11y.vs10.sourcefiles
|
||||
$(CPP) -P - <$(top_srcdir)/build/win32/vs10/gtka11y.vcxprojin >$@
|
||||
rm gtka11y.vs10.sourcefiles
|
||||
|
||||
$(top_builddir)/build/win32/vs10/gtka11y.vcxproj.filters: $(top_srcdir)/build/win32/vs10/gtka11y.vcxproj.filtersin
|
||||
for F in $(gtka11y_c_sources); do \
|
||||
case $$F in \
|
||||
*.c) echo ' <ClCompile Include="..\..\..\gtk\a11y\'$$F'"><Filter>Source Files</Filter></ClCompile>' \
|
||||
;; \
|
||||
esac; \
|
||||
done >gtka11y.vs10.sourcefiles.filters
|
||||
$(CPP) -P - <$(top_srcdir)/build/win32/vs10/gtka11y.vcxproj.filtersin >$@
|
||||
rm gtka11y.vs10.sourcefiles.filters
|
||||
|
||||
|
||||
-include $(top_srcdir)/git.mk
|
||||
@@ -20,6 +20,7 @@
|
||||
#include <gtk/gtk.h>
|
||||
#include "gtkaccessibilitymisc.h"
|
||||
|
||||
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
|
||||
|
||||
G_DEFINE_TYPE (GtkMiscImpl, _gtk_misc_impl, ATK_TYPE_MISC)
|
||||
|
||||
@@ -48,3 +49,5 @@ static void
|
||||
_gtk_misc_impl_init (GtkMiscImpl *misc)
|
||||
{
|
||||
}
|
||||
|
||||
G_GNUC_END_IGNORE_DEPRECATIONS
|
||||
|
||||
@@ -122,8 +122,10 @@ get_label_from_button (GtkWidget *button)
|
||||
GtkWidget *child;
|
||||
|
||||
child = gtk_bin_get_child (GTK_BIN (button));
|
||||
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
|
||||
if (GTK_IS_ALIGNMENT (child))
|
||||
child = gtk_bin_get_child (GTK_BIN (child));
|
||||
G_GNUC_END_IGNORE_DEPRECATIONS
|
||||
|
||||
if (GTK_IS_CONTAINER (child))
|
||||
child = find_label_child (GTK_CONTAINER (child));
|
||||
|
||||
@@ -72,7 +72,7 @@ gtk_level_bar_accessible_init (GtkLevelBarAccessible *button)
|
||||
|
||||
static void
|
||||
gtk_level_bar_accessible_get_current_value (AtkValue *obj,
|
||||
GValue *value)
|
||||
GValue *value)
|
||||
{
|
||||
GtkWidget *widget;
|
||||
GtkLevelBar *level_bar;
|
||||
@@ -87,7 +87,7 @@ gtk_level_bar_accessible_get_current_value (AtkValue *obj,
|
||||
|
||||
static void
|
||||
gtk_level_bar_accessible_get_maximum_value (AtkValue *obj,
|
||||
GValue *value)
|
||||
GValue *value)
|
||||
{
|
||||
GtkWidget *widget;
|
||||
GtkLevelBar *level_bar;
|
||||
@@ -102,7 +102,7 @@ gtk_level_bar_accessible_get_maximum_value (AtkValue *obj,
|
||||
|
||||
static void
|
||||
gtk_level_bar_accessible_get_minimum_value (AtkValue *obj,
|
||||
GValue *value)
|
||||
GValue *value)
|
||||
{
|
||||
GtkWidget *widget;
|
||||
GtkLevelBar *level_bar;
|
||||
@@ -117,7 +117,7 @@ gtk_level_bar_accessible_get_minimum_value (AtkValue *obj,
|
||||
|
||||
static gboolean
|
||||
gtk_level_bar_accessible_set_current_value (AtkValue *obj,
|
||||
const GValue *value)
|
||||
const GValue *value)
|
||||
{
|
||||
GtkWidget *widget;
|
||||
GtkLevelBar *level_bar;
|
||||
@@ -130,6 +130,48 @@ gtk_level_bar_accessible_set_current_value (AtkValue *obj,
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static void
|
||||
gtk_level_bar_accessible_get_value_and_text (AtkValue *obj,
|
||||
gdouble *value,
|
||||
gchar **text)
|
||||
{
|
||||
GtkWidget *widget;
|
||||
GtkLevelBar *level_bar;
|
||||
|
||||
widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
|
||||
level_bar = GTK_LEVEL_BAR (widget);
|
||||
|
||||
*value = gtk_level_bar_get_value (level_bar);
|
||||
*text = NULL;
|
||||
}
|
||||
|
||||
static AtkRange *
|
||||
gtk_level_bar_accessible_get_range (AtkValue *obj)
|
||||
{
|
||||
GtkWidget *widget;
|
||||
GtkLevelBar *level_bar;
|
||||
|
||||
widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
|
||||
level_bar = GTK_LEVEL_BAR (widget);
|
||||
|
||||
return atk_range_new (gtk_level_bar_get_min_value (level_bar),
|
||||
gtk_level_bar_get_max_value (level_bar),
|
||||
NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
gtk_level_bar_accessible_set_value (AtkValue *obj,
|
||||
const gdouble value)
|
||||
{
|
||||
GtkWidget *widget;
|
||||
GtkLevelBar *level_bar;
|
||||
|
||||
widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
|
||||
level_bar = GTK_LEVEL_BAR (widget);
|
||||
|
||||
gtk_level_bar_set_value (level_bar, value);
|
||||
}
|
||||
|
||||
static void
|
||||
atk_value_interface_init (AtkValueIface *iface)
|
||||
{
|
||||
@@ -137,4 +179,8 @@ atk_value_interface_init (AtkValueIface *iface)
|
||||
iface->get_maximum_value = gtk_level_bar_accessible_get_maximum_value;
|
||||
iface->get_minimum_value = gtk_level_bar_accessible_get_minimum_value;
|
||||
iface->set_current_value = gtk_level_bar_accessible_set_current_value;
|
||||
|
||||
iface->get_value_and_text = gtk_level_bar_accessible_get_value_and_text;
|
||||
iface->get_range = gtk_level_bar_accessible_get_range;
|
||||
iface->set_value = gtk_level_bar_accessible_set_value;
|
||||
}
|
||||
|
||||
@@ -84,6 +84,26 @@ gtk_list_box_accessible_add_selection (AtkSelection *selection,
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
gtk_list_box_accessible_remove_selection (AtkSelection *selection,
|
||||
gint idx)
|
||||
{
|
||||
GtkWidget *box;
|
||||
GtkListBoxRow *row;
|
||||
|
||||
box = gtk_accessible_get_widget (GTK_ACCESSIBLE (selection));
|
||||
if (box == NULL)
|
||||
return FALSE;
|
||||
|
||||
row = gtk_list_box_get_row_at_index (GTK_LIST_BOX (box), idx);
|
||||
if (row)
|
||||
{
|
||||
gtk_list_box_unselect_row (GTK_LIST_BOX (box), row);
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
gtk_list_box_accessible_clear_selection (AtkSelection *selection)
|
||||
{
|
||||
@@ -93,49 +113,92 @@ gtk_list_box_accessible_clear_selection (AtkSelection *selection)
|
||||
if (box == NULL)
|
||||
return FALSE;
|
||||
|
||||
gtk_list_box_select_row (GTK_LIST_BOX (box), NULL);
|
||||
gtk_list_box_unselect_all (GTK_LIST_BOX (box));
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
gtk_list_box_accessible_select_all (AtkSelection *selection)
|
||||
{
|
||||
GtkWidget *box;
|
||||
|
||||
box = gtk_accessible_get_widget (GTK_ACCESSIBLE (selection));
|
||||
if (box == NULL)
|
||||
return FALSE;
|
||||
|
||||
gtk_list_box_select_all (GTK_LIST_BOX (box));
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
typedef struct
|
||||
{
|
||||
gint idx;
|
||||
GtkWidget *row;
|
||||
} FindSelectedData;
|
||||
|
||||
static void
|
||||
find_selected_row (GtkListBox *box,
|
||||
GtkListBoxRow *row,
|
||||
gpointer data)
|
||||
{
|
||||
FindSelectedData *d = data;
|
||||
|
||||
if (d->idx == 0)
|
||||
{
|
||||
if (d->row == NULL)
|
||||
d->row = GTK_WIDGET (row);
|
||||
}
|
||||
else
|
||||
d->idx -= 1;
|
||||
}
|
||||
|
||||
static AtkObject *
|
||||
gtk_list_box_accessible_ref_selection (AtkSelection *selection,
|
||||
gint idx)
|
||||
{
|
||||
GtkWidget *box;
|
||||
GtkListBoxRow *row;
|
||||
AtkObject *accessible;
|
||||
|
||||
if (idx != 0)
|
||||
return NULL;
|
||||
FindSelectedData data;
|
||||
|
||||
box = gtk_accessible_get_widget (GTK_ACCESSIBLE (selection));
|
||||
if (box == NULL)
|
||||
return NULL;
|
||||
|
||||
row = gtk_list_box_get_selected_row (GTK_LIST_BOX (box));
|
||||
if (row == NULL)
|
||||
data.idx = idx;
|
||||
data.row = NULL;
|
||||
gtk_list_box_selected_foreach (GTK_LIST_BOX (box), find_selected_row, &data);
|
||||
|
||||
if (data.row == NULL)
|
||||
return NULL;
|
||||
|
||||
accessible = gtk_widget_get_accessible (GTK_WIDGET (row));
|
||||
accessible = gtk_widget_get_accessible (data.row);
|
||||
g_object_ref (accessible);
|
||||
return accessible;
|
||||
}
|
||||
|
||||
static void
|
||||
count_selected (GtkListBox *box,
|
||||
GtkListBoxRow *row,
|
||||
gpointer data)
|
||||
{
|
||||
gint *count = data;
|
||||
*count += 1;
|
||||
}
|
||||
|
||||
static gint
|
||||
gtk_list_box_accessible_get_selection_count (AtkSelection *selection)
|
||||
{
|
||||
GtkWidget *box;
|
||||
GtkListBoxRow *row;
|
||||
gint count;
|
||||
|
||||
box = gtk_accessible_get_widget (GTK_ACCESSIBLE (selection));
|
||||
if (box == NULL)
|
||||
return 0;
|
||||
|
||||
row = gtk_list_box_get_selected_row (GTK_LIST_BOX (box));
|
||||
if (row == NULL)
|
||||
return 0;
|
||||
count = 0;
|
||||
gtk_list_box_selected_foreach (GTK_LIST_BOX (box), count_selected, &count);
|
||||
|
||||
return 1;
|
||||
return count;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
@@ -149,20 +212,20 @@ gtk_list_box_accessible_is_child_selected (AtkSelection *selection,
|
||||
if (box == NULL)
|
||||
return FALSE;
|
||||
|
||||
row = gtk_list_box_get_selected_row (GTK_LIST_BOX (box));
|
||||
if (row == NULL)
|
||||
return FALSE;
|
||||
row = gtk_list_box_get_row_at_index (GTK_LIST_BOX (box), idx);
|
||||
|
||||
return row == gtk_list_box_get_row_at_index (GTK_LIST_BOX (box), idx);
|
||||
return gtk_list_box_row_is_selected (row);
|
||||
}
|
||||
|
||||
static void atk_selection_interface_init (AtkSelectionIface *iface)
|
||||
{
|
||||
iface->add_selection = gtk_list_box_accessible_add_selection;
|
||||
iface->remove_selection = gtk_list_box_accessible_remove_selection;
|
||||
iface->clear_selection = gtk_list_box_accessible_clear_selection;
|
||||
iface->ref_selection = gtk_list_box_accessible_ref_selection;
|
||||
iface->get_selection_count = gtk_list_box_accessible_get_selection_count;
|
||||
iface->is_child_selected = gtk_list_box_accessible_is_child_selected;
|
||||
iface->select_all_selection = gtk_list_box_accessible_select_all;
|
||||
}
|
||||
|
||||
void
|
||||
|
||||
@@ -22,8 +22,9 @@
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
void _gtk_list_box_accessible_update_cursor (GtkListBox *box, GtkListBoxRow *child);
|
||||
void _gtk_list_box_accessible_selection_changed (GtkListBox *box);
|
||||
void _gtk_list_box_accessible_update_cursor (GtkListBox *box,
|
||||
GtkListBoxRow *row);
|
||||
void _gtk_list_box_accessible_selection_changed (GtkListBox *box);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
|
||||
@@ -54,7 +54,7 @@ gtk_list_box_row_accessible_ref_state_set (AtkObject *obj)
|
||||
gtk_list_box_get_selection_mode (GTK_LIST_BOX (parent)) != GTK_SELECTION_NONE)
|
||||
atk_state_set_add_state (state_set, ATK_STATE_SELECTABLE);
|
||||
|
||||
if (widget == (GtkWidget*)gtk_list_box_get_selected_row (GTK_LIST_BOX (parent)))
|
||||
if (gtk_list_box_row_is_selected (GTK_LIST_BOX_ROW (widget)))
|
||||
atk_state_set_add_state (state_set, ATK_STATE_SELECTED);
|
||||
}
|
||||
|
||||
|
||||
@@ -142,6 +142,51 @@ gtk_paned_accessible_set_current_value (AtkValue *obj,
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static void
|
||||
gtk_paned_accessible_get_value_and_text (AtkValue *obj,
|
||||
gdouble *value,
|
||||
gchar **text)
|
||||
{
|
||||
GtkWidget *widget;
|
||||
GtkPaned *paned;
|
||||
|
||||
widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
|
||||
paned = GTK_PANED (widget);
|
||||
|
||||
*value = gtk_paned_get_position (paned);
|
||||
*text = NULL;
|
||||
}
|
||||
|
||||
static AtkRange *
|
||||
gtk_paned_accessible_get_range (AtkValue *obj)
|
||||
{
|
||||
GtkWidget *widget;
|
||||
gint minimum_value;
|
||||
gint maximum_value;
|
||||
|
||||
widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
|
||||
|
||||
g_object_get (widget,
|
||||
"min-position", &minimum_value,
|
||||
"max-position", &maximum_value,
|
||||
NULL);
|
||||
|
||||
return atk_range_new (minimum_value, maximum_value, NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
gtk_paned_accessible_set_value (AtkValue *obj,
|
||||
const gdouble value)
|
||||
{
|
||||
GtkWidget *widget;
|
||||
GtkPaned *paned;
|
||||
|
||||
widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
|
||||
paned = GTK_PANED (widget);
|
||||
|
||||
gtk_paned_set_position (paned, (gint)(value + 0.5));
|
||||
}
|
||||
|
||||
static void
|
||||
atk_value_interface_init (AtkValueIface *iface)
|
||||
{
|
||||
@@ -149,4 +194,8 @@ atk_value_interface_init (AtkValueIface *iface)
|
||||
iface->get_maximum_value = gtk_paned_accessible_get_maximum_value;
|
||||
iface->get_minimum_value = gtk_paned_accessible_get_minimum_value;
|
||||
iface->set_current_value = gtk_paned_accessible_set_current_value;
|
||||
|
||||
iface->get_value_and_text = gtk_paned_accessible_get_value_and_text;
|
||||
iface->get_range = gtk_paned_accessible_get_range;
|
||||
iface->set_value = gtk_paned_accessible_set_value;
|
||||
}
|
||||
|
||||
@@ -100,10 +100,32 @@ gtk_progress_bar_accessible_get_minimum_value (AtkValue *obj,
|
||||
g_value_set_double (value, 0.0);
|
||||
}
|
||||
|
||||
static void
|
||||
gtk_progress_bar_accessible_get_value_and_text (AtkValue *obj,
|
||||
gdouble *value,
|
||||
gchar **text)
|
||||
{
|
||||
GtkWidget *widget;
|
||||
|
||||
widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
|
||||
|
||||
*value = gtk_progress_bar_get_fraction (GTK_PROGRESS_BAR (widget));
|
||||
*text = NULL;
|
||||
}
|
||||
|
||||
static AtkRange *
|
||||
gtk_progress_bar_accessible_get_range (AtkValue *obj)
|
||||
{
|
||||
return atk_range_new (0.0, 1.0, NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
atk_value_interface_init (AtkValueIface *iface)
|
||||
{
|
||||
iface->get_current_value = gtk_progress_bar_accessible_get_current_value;
|
||||
iface->get_maximum_value = gtk_progress_bar_accessible_get_maximum_value;
|
||||
iface->get_minimum_value = gtk_progress_bar_accessible_get_minimum_value;
|
||||
|
||||
iface->get_value_and_text = gtk_progress_bar_accessible_get_value_and_text;
|
||||
iface->get_range = gtk_progress_bar_accessible_get_range;
|
||||
}
|
||||
|
||||
@@ -212,6 +212,74 @@ gtk_range_accessible_set_current_value (AtkValue *obj,
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static void
|
||||
gtk_range_accessible_get_value_and_text (AtkValue *obj,
|
||||
gdouble *value,
|
||||
gchar **text)
|
||||
{
|
||||
GtkWidget *widget;
|
||||
GtkAdjustment *adjustment;
|
||||
|
||||
widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
|
||||
adjustment = gtk_range_get_adjustment (GTK_RANGE (widget));
|
||||
if (adjustment == NULL)
|
||||
return;
|
||||
|
||||
*value = gtk_adjustment_get_value (adjustment);
|
||||
*text = NULL;
|
||||
}
|
||||
|
||||
static AtkRange *
|
||||
gtk_range_accessible_get_range (AtkValue *obj)
|
||||
{
|
||||
GtkWidget *widget;
|
||||
GtkAdjustment *adjustment;
|
||||
gdouble min, max;
|
||||
|
||||
widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
|
||||
adjustment = gtk_range_get_adjustment (GTK_RANGE (widget));
|
||||
if (adjustment == NULL)
|
||||
return NULL;
|
||||
|
||||
min = gtk_adjustment_get_lower (adjustment);
|
||||
max = gtk_adjustment_get_upper (adjustment)
|
||||
- gtk_adjustment_get_page_size (adjustment);
|
||||
|
||||
if (gtk_range_get_restrict_to_fill_level (GTK_RANGE (widget)))
|
||||
max = MIN (max, gtk_range_get_fill_level (GTK_RANGE (widget)));
|
||||
|
||||
return atk_range_new (min, max, NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
gtk_range_accessible_set_value (AtkValue *obj,
|
||||
const gdouble value)
|
||||
{
|
||||
GtkWidget *widget;
|
||||
GtkAdjustment *adjustment;
|
||||
|
||||
widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
|
||||
adjustment = gtk_range_get_adjustment (GTK_RANGE (widget));
|
||||
if (adjustment == NULL)
|
||||
return;
|
||||
|
||||
gtk_adjustment_set_value (adjustment, value);
|
||||
}
|
||||
|
||||
static gdouble
|
||||
gtk_range_accessible_get_increment (AtkValue *obj)
|
||||
{
|
||||
GtkWidget *widget;
|
||||
GtkAdjustment *adjustment;
|
||||
|
||||
widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
|
||||
adjustment = gtk_range_get_adjustment (GTK_RANGE (widget));
|
||||
if (adjustment == NULL)
|
||||
return 0;
|
||||
|
||||
return gtk_adjustment_get_minimum_increment (adjustment);
|
||||
}
|
||||
|
||||
static void
|
||||
atk_value_interface_init (AtkValueIface *iface)
|
||||
{
|
||||
@@ -220,4 +288,9 @@ atk_value_interface_init (AtkValueIface *iface)
|
||||
iface->get_minimum_value = gtk_range_accessible_get_minimum_value;
|
||||
iface->get_minimum_increment = gtk_range_accessible_get_minimum_increment;
|
||||
iface->set_current_value = gtk_range_accessible_set_current_value;
|
||||
|
||||
iface->get_value_and_text = gtk_range_accessible_get_value_and_text;
|
||||
iface->get_range = gtk_range_accessible_get_range;
|
||||
iface->set_value = gtk_range_accessible_set_value;
|
||||
iface->get_increment = gtk_range_accessible_get_increment;
|
||||
}
|
||||
|
||||
@@ -270,6 +270,68 @@ gtk_scale_button_accessible_set_current_value (AtkValue *obj,
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static void
|
||||
gtk_scale_button_accessible_get_value_and_text (AtkValue *obj,
|
||||
gdouble *value,
|
||||
gchar **text)
|
||||
{
|
||||
GtkWidget *widget;
|
||||
GtkAdjustment *adjustment;
|
||||
|
||||
widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
|
||||
adjustment = gtk_scale_button_get_adjustment (GTK_SCALE_BUTTON (widget));
|
||||
if (adjustment == NULL)
|
||||
return;
|
||||
|
||||
*value = gtk_adjustment_get_value (adjustment);
|
||||
*text = NULL;
|
||||
}
|
||||
|
||||
static AtkRange *
|
||||
gtk_scale_button_accessible_get_range (AtkValue *obj)
|
||||
{
|
||||
GtkWidget *widget;
|
||||
GtkAdjustment *adjustment;
|
||||
|
||||
widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
|
||||
adjustment = gtk_scale_button_get_adjustment (GTK_SCALE_BUTTON (widget));
|
||||
if (adjustment == NULL)
|
||||
return NULL;
|
||||
|
||||
return atk_range_new (gtk_adjustment_get_lower (adjustment),
|
||||
gtk_adjustment_get_upper (adjustment),
|
||||
NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
gtk_scale_button_accessible_set_value (AtkValue *obj,
|
||||
const gdouble value)
|
||||
{
|
||||
GtkWidget *widget;
|
||||
GtkAdjustment *adjustment;
|
||||
|
||||
widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
|
||||
adjustment = gtk_scale_button_get_adjustment (GTK_SCALE_BUTTON (widget));
|
||||
if (adjustment == NULL)
|
||||
return;
|
||||
|
||||
gtk_adjustment_set_value (adjustment, value);
|
||||
}
|
||||
|
||||
static gdouble
|
||||
gtk_scale_button_accessible_get_increment (AtkValue *obj)
|
||||
{
|
||||
GtkWidget *widget;
|
||||
GtkAdjustment *adjustment;
|
||||
|
||||
widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
|
||||
adjustment = gtk_scale_button_get_adjustment (GTK_SCALE_BUTTON (widget));
|
||||
if (adjustment == NULL)
|
||||
return 0;
|
||||
|
||||
return gtk_adjustment_get_minimum_increment (adjustment);
|
||||
}
|
||||
|
||||
static void
|
||||
atk_value_interface_init (AtkValueIface *iface)
|
||||
{
|
||||
@@ -278,4 +340,9 @@ atk_value_interface_init (AtkValueIface *iface)
|
||||
iface->get_minimum_value = gtk_scale_button_accessible_get_minimum_value;
|
||||
iface->get_minimum_increment = gtk_scale_button_accessible_get_minimum_increment;
|
||||
iface->set_current_value = gtk_scale_button_accessible_set_current_value;
|
||||
|
||||
iface->get_value_and_text = gtk_scale_button_accessible_get_value_and_text;
|
||||
iface->get_range = gtk_scale_button_accessible_get_range;
|
||||
iface->set_value = gtk_scale_button_accessible_set_value;
|
||||
iface->get_increment = gtk_scale_button_accessible_get_increment;
|
||||
}
|
||||
|
||||
@@ -205,6 +205,68 @@ gtk_spin_button_accessible_set_current_value (AtkValue *obj,
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static void
|
||||
gtk_spin_button_accessible_get_value_and_text (AtkValue *obj,
|
||||
gdouble *value,
|
||||
gchar **text)
|
||||
{
|
||||
GtkWidget *widget;
|
||||
GtkAdjustment *adjustment;
|
||||
|
||||
widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
|
||||
adjustment = gtk_spin_button_get_adjustment (GTK_SPIN_BUTTON (widget));
|
||||
if (adjustment == NULL)
|
||||
return;
|
||||
|
||||
*value = gtk_adjustment_get_value (adjustment);
|
||||
*text = NULL;
|
||||
}
|
||||
|
||||
static AtkRange *
|
||||
gtk_spin_button_accessible_get_range (AtkValue *obj)
|
||||
{
|
||||
GtkWidget *widget;
|
||||
GtkAdjustment *adjustment;
|
||||
|
||||
widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
|
||||
adjustment = gtk_spin_button_get_adjustment (GTK_SPIN_BUTTON (widget));
|
||||
if (adjustment == NULL)
|
||||
return NULL;
|
||||
|
||||
return atk_range_new (gtk_adjustment_get_lower (adjustment),
|
||||
gtk_adjustment_get_upper (adjustment),
|
||||
NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
gtk_spin_button_accessible_set_value (AtkValue *obj,
|
||||
const gdouble value)
|
||||
{
|
||||
GtkWidget *widget;
|
||||
GtkAdjustment *adjustment;
|
||||
|
||||
widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
|
||||
adjustment = gtk_spin_button_get_adjustment (GTK_SPIN_BUTTON (widget));
|
||||
if (adjustment == NULL)
|
||||
return;
|
||||
|
||||
gtk_adjustment_set_value (adjustment, value);
|
||||
}
|
||||
|
||||
static gdouble
|
||||
gtk_spin_button_accessible_get_increment (AtkValue *obj)
|
||||
{
|
||||
GtkWidget *widget;
|
||||
GtkAdjustment *adjustment;
|
||||
|
||||
widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
|
||||
adjustment = gtk_spin_button_get_adjustment (GTK_SPIN_BUTTON (widget));
|
||||
if (adjustment == NULL)
|
||||
return 0;
|
||||
|
||||
return gtk_adjustment_get_minimum_increment (adjustment);
|
||||
}
|
||||
|
||||
static void
|
||||
atk_value_interface_init (AtkValueIface *iface)
|
||||
{
|
||||
@@ -213,4 +275,9 @@ atk_value_interface_init (AtkValueIface *iface)
|
||||
iface->get_minimum_value = gtk_spin_button_accessible_get_minimum_value;
|
||||
iface->get_minimum_increment = gtk_spin_button_accessible_get_minimum_increment;
|
||||
iface->set_current_value = gtk_spin_button_accessible_set_current_value;
|
||||
|
||||
iface->get_value_and_text = gtk_spin_button_accessible_get_value_and_text;
|
||||
iface->get_range = gtk_spin_button_accessible_get_range;
|
||||
iface->set_value = gtk_spin_button_accessible_set_value;
|
||||
iface->get_increment = gtk_spin_button_accessible_get_increment;
|
||||
}
|
||||
|
||||
@@ -1027,7 +1027,6 @@ gtk_tree_view_accessible_get_cell_area (GtkCellAccessibleParent *parent,
|
||||
if (path)
|
||||
{
|
||||
GtkTreeViewColumn *expander_column;
|
||||
gint focus_line_width;
|
||||
|
||||
gtk_tree_view_get_cell_area (tree_view, path, tv_col, cell_rect);
|
||||
expander_column = gtk_tree_view_get_expander_column (tree_view);
|
||||
@@ -1040,12 +1039,6 @@ gtk_tree_view_accessible_get_cell_area (GtkCellAccessibleParent *parent,
|
||||
cell_rect->x += expander_size + EXTRA_EXPANDER_PADDING;
|
||||
cell_rect->width -= expander_size + EXTRA_EXPANDER_PADDING;
|
||||
}
|
||||
gtk_widget_style_get (widget,
|
||||
"focus-line-width", &focus_line_width,
|
||||
NULL);
|
||||
|
||||
cell_rect->x += focus_line_width;
|
||||
cell_rect->width -= 2 * focus_line_width;
|
||||
|
||||
gtk_tree_path_free (path);
|
||||
|
||||
|
||||
@@ -281,7 +281,7 @@ gtk_widget_accessible_ref_relation_set (AtkObject *obj)
|
||||
GtkWidget *temp_widget;
|
||||
|
||||
temp_widget = gtk_widget_get_parent (widget);
|
||||
|
||||
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
|
||||
if (GTK_IS_ALIGNMENT (temp_widget))
|
||||
{
|
||||
temp_widget = gtk_widget_get_parent (temp_widget);
|
||||
@@ -292,6 +292,7 @@ gtk_widget_accessible_ref_relation_set (AtkObject *obj)
|
||||
label = find_label (gtk_widget_get_parent (temp_widget));
|
||||
}
|
||||
}
|
||||
G_GNUC_END_IGNORE_DEPRECATIONS
|
||||
}
|
||||
else if (GTK_IS_COMBO_BOX (widget))
|
||||
/*
|
||||
|
||||
@@ -52,6 +52,9 @@
|
||||
#include "gtkintl.h"
|
||||
|
||||
|
||||
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
|
||||
|
||||
|
||||
struct _GtkAlignmentPrivate
|
||||
{
|
||||
gfloat xalign;
|
||||
@@ -150,7 +153,7 @@ gtk_alignment_class_init (GtkAlignmentClass *class)
|
||||
0.0,
|
||||
1.0,
|
||||
0.5,
|
||||
GTK_PARAM_READWRITE));
|
||||
GTK_PARAM_READWRITE|G_PARAM_DEPRECATED));
|
||||
g_object_class_install_property (gobject_class,
|
||||
PROP_XSCALE,
|
||||
g_param_spec_float("xscale",
|
||||
@@ -159,7 +162,7 @@ gtk_alignment_class_init (GtkAlignmentClass *class)
|
||||
0.0,
|
||||
1.0,
|
||||
1.0,
|
||||
GTK_PARAM_READWRITE));
|
||||
GTK_PARAM_READWRITE|G_PARAM_DEPRECATED));
|
||||
g_object_class_install_property (gobject_class,
|
||||
PROP_YSCALE,
|
||||
g_param_spec_float("yscale",
|
||||
@@ -168,7 +171,7 @@ gtk_alignment_class_init (GtkAlignmentClass *class)
|
||||
0.0,
|
||||
1.0,
|
||||
1.0,
|
||||
GTK_PARAM_READWRITE));
|
||||
GTK_PARAM_READWRITE|G_PARAM_DEPRECATED));
|
||||
|
||||
|
||||
/**
|
||||
@@ -186,7 +189,7 @@ gtk_alignment_class_init (GtkAlignmentClass *class)
|
||||
0,
|
||||
G_MAXINT,
|
||||
0,
|
||||
GTK_PARAM_READWRITE));
|
||||
GTK_PARAM_READWRITE|G_PARAM_DEPRECATED));
|
||||
|
||||
/**
|
||||
* GtkAlignment:bottom-padding:
|
||||
@@ -203,7 +206,7 @@ gtk_alignment_class_init (GtkAlignmentClass *class)
|
||||
0,
|
||||
G_MAXINT,
|
||||
0,
|
||||
GTK_PARAM_READWRITE));
|
||||
GTK_PARAM_READWRITE|G_PARAM_DEPRECATED));
|
||||
|
||||
/**
|
||||
* GtkAlignment:left-padding:
|
||||
@@ -220,7 +223,7 @@ gtk_alignment_class_init (GtkAlignmentClass *class)
|
||||
0,
|
||||
G_MAXINT,
|
||||
0,
|
||||
GTK_PARAM_READWRITE));
|
||||
GTK_PARAM_READWRITE|G_PARAM_DEPRECATED));
|
||||
|
||||
/**
|
||||
* GtkAlignment:right-padding:
|
||||
@@ -237,7 +240,7 @@ gtk_alignment_class_init (GtkAlignmentClass *class)
|
||||
0,
|
||||
G_MAXINT,
|
||||
0,
|
||||
GTK_PARAM_READWRITE));
|
||||
GTK_PARAM_READWRITE|G_PARAM_DEPRECATED));
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -279,7 +282,9 @@ gtk_alignment_init (GtkAlignment *alignment)
|
||||
*
|
||||
* Creates a new #GtkAlignment.
|
||||
*
|
||||
* Returns: the new #GtkAlignment.
|
||||
* Returns: the new #GtkAlignment
|
||||
*
|
||||
* Deprecated: 3.14: Use #GtkWidget alignment and margin properties
|
||||
*/
|
||||
GtkWidget*
|
||||
gtk_alignment_new (gfloat xalign,
|
||||
@@ -438,6 +443,8 @@ gtk_alignment_get_property (GObject *object,
|
||||
* unused space, from 0 to 1. The values are similar to @xscale.
|
||||
*
|
||||
* Sets the #GtkAlignment values.
|
||||
*
|
||||
* Deprecated: 3.14: Use #GtkWidget alignment and margin properties
|
||||
*/
|
||||
void
|
||||
gtk_alignment_set (GtkAlignment *alignment,
|
||||
@@ -679,11 +686,8 @@ gtk_alignment_get_preferred_size (GtkWidget *widget,
|
||||
natural += child_nat;
|
||||
}
|
||||
|
||||
if (minimum_size)
|
||||
*minimum_size = minimum;
|
||||
|
||||
if (natural_size)
|
||||
*natural_size = natural;
|
||||
*minimum_size = minimum;
|
||||
*natural_size = natural;
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -747,6 +751,8 @@ gtk_alignment_get_preferred_height_and_baseline_for_width (GtkWidget *
|
||||
* padding on the left.
|
||||
*
|
||||
* Since: 2.4
|
||||
*
|
||||
* Deprecated: 3.14: Use #GtkWidget alignment and margin properties
|
||||
*/
|
||||
void
|
||||
gtk_alignment_set_padding (GtkAlignment *alignment,
|
||||
@@ -811,6 +817,8 @@ gtk_alignment_set_padding (GtkAlignment *alignment,
|
||||
* See gtk_alignment_set_padding ().
|
||||
*
|
||||
* Since: 2.4
|
||||
*
|
||||
* Deprecated: 3.14: Use #GtkWidget alignment and margin properties
|
||||
*/
|
||||
void
|
||||
gtk_alignment_get_padding (GtkAlignment *alignment,
|
||||
@@ -73,28 +73,28 @@ struct _GtkAlignmentClass
|
||||
};
|
||||
|
||||
|
||||
GDK_AVAILABLE_IN_ALL
|
||||
GDK_DEPRECATED_IN_3_14
|
||||
GType gtk_alignment_get_type (void) G_GNUC_CONST;
|
||||
GDK_AVAILABLE_IN_ALL
|
||||
GDK_DEPRECATED_IN_3_14
|
||||
GtkWidget* gtk_alignment_new (gfloat xalign,
|
||||
gfloat yalign,
|
||||
gfloat xscale,
|
||||
gfloat yscale);
|
||||
GDK_AVAILABLE_IN_ALL
|
||||
GDK_DEPRECATED_IN_3_14
|
||||
void gtk_alignment_set (GtkAlignment *alignment,
|
||||
gfloat xalign,
|
||||
gfloat yalign,
|
||||
gfloat xscale,
|
||||
gfloat yscale);
|
||||
|
||||
GDK_AVAILABLE_IN_ALL
|
||||
GDK_DEPRECATED_IN_3_14
|
||||
void gtk_alignment_set_padding (GtkAlignment *alignment,
|
||||
guint padding_top,
|
||||
guint padding_bottom,
|
||||
guint padding_left,
|
||||
guint padding_right);
|
||||
|
||||
GDK_AVAILABLE_IN_ALL
|
||||
GDK_DEPRECATED_IN_3_14
|
||||
void gtk_alignment_get_padding (GtkAlignment *alignment,
|
||||
guint *padding_top,
|
||||
guint *padding_bottom,
|
||||
@@ -40,6 +40,15 @@
|
||||
*
|
||||
* Arrows are created with a call to gtk_arrow_new(). The direction or
|
||||
* style of an arrow can be changed after creation by using gtk_arrow_set().
|
||||
*
|
||||
* GtkArrow has been deprecated; you can simply use a #GtkImage with a
|
||||
* suitable icon name, such as “pan-down-symbolic“. When replacing
|
||||
* GtkArrow by an image, pay attention to the fact that GtkArrow is
|
||||
* doing automatic flipping between #GTK_ARROW_LEFT and #GTK_ARROW_RIGHT,
|
||||
* depending on the text direction. To get the same effect with an image,
|
||||
* use the icon names “pan-start-symbolic“ and “pan-end-symbolic“, which
|
||||
* react to the text direction instead of “pan-left-symbolic“ and
|
||||
* “pan-right-symbolic“ which don't.
|
||||
*/
|
||||
|
||||
#include "config.h"
|
||||
@@ -52,6 +61,8 @@
|
||||
|
||||
#include "a11y/gtkarrowaccessible.h"
|
||||
|
||||
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
|
||||
|
||||
#define MIN_ARROW_SIZE 15
|
||||
|
||||
struct _GtkArrowPrivate
|
||||
@@ -85,7 +96,9 @@ static void gtk_arrow_get_preferred_height (GtkWidget *widg
|
||||
gint *minimum_size,
|
||||
gint *natural_size);
|
||||
|
||||
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
|
||||
G_DEFINE_TYPE_WITH_PRIVATE (GtkArrow, gtk_arrow, GTK_TYPE_MISC)
|
||||
G_GNUC_END_IGNORE_DEPRECATIONS
|
||||
|
||||
static void
|
||||
gtk_arrow_class_init (GtkArrowClass *class)
|
||||
@@ -199,13 +212,12 @@ gtk_arrow_get_preferred_width (GtkWidget *widget,
|
||||
{
|
||||
GtkBorder border;
|
||||
|
||||
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
|
||||
_gtk_misc_get_padding_and_border (GTK_MISC (widget), &border);
|
||||
G_GNUC_END_IGNORE_DEPRECATIONS
|
||||
|
||||
if (minimum_size)
|
||||
*minimum_size = MIN_ARROW_SIZE + border.left + border.right;
|
||||
|
||||
if (natural_size)
|
||||
*natural_size = MIN_ARROW_SIZE + border.left + border.right;
|
||||
*minimum_size = MIN_ARROW_SIZE + border.left + border.right;
|
||||
*natural_size = MIN_ARROW_SIZE + border.left + border.right;
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -215,13 +227,12 @@ gtk_arrow_get_preferred_height (GtkWidget *widget,
|
||||
{
|
||||
GtkBorder border;
|
||||
|
||||
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
|
||||
_gtk_misc_get_padding_and_border (GTK_MISC (widget), &border);
|
||||
G_GNUC_END_IGNORE_DEPRECATIONS
|
||||
|
||||
if (minimum_size)
|
||||
*minimum_size = MIN_ARROW_SIZE + border.top + border.bottom;
|
||||
|
||||
if (natural_size)
|
||||
*natural_size = MIN_ARROW_SIZE + border.top + border.bottom;
|
||||
*minimum_size = MIN_ARROW_SIZE + border.top + border.bottom;
|
||||
*natural_size = MIN_ARROW_SIZE + border.top + border.bottom;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -232,6 +243,8 @@ gtk_arrow_get_preferred_height (GtkWidget *widget,
|
||||
* Creates a new #GtkArrow widget.
|
||||
*
|
||||
* Returns: the new #GtkArrow widget.
|
||||
*
|
||||
* Deprecated: 3.14: Use a #GtkImage with a suitable icon.
|
||||
*/
|
||||
GtkWidget*
|
||||
gtk_arrow_new (GtkArrowType arrow_type,
|
||||
@@ -257,6 +270,8 @@ gtk_arrow_new (GtkArrowType arrow_type,
|
||||
* @shadow_type: a valid #GtkShadowType.
|
||||
*
|
||||
* Sets the direction and style of the #GtkArrow, @arrow.
|
||||
*
|
||||
* Deprecated: 3.14: Use a #GtkImage with a suitable icon.
|
||||
*/
|
||||
void
|
||||
gtk_arrow_set (GtkArrow *arrow,
|
||||
@@ -317,8 +332,10 @@ gtk_arrow_draw (GtkWidget *widget,
|
||||
context = gtk_widget_get_style_context (widget);
|
||||
gtk_widget_style_get (widget, "arrow-scaling", &arrow_scaling, NULL);
|
||||
|
||||
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
|
||||
_gtk_misc_get_padding_and_border (GTK_MISC (widget), &border);
|
||||
gtk_misc_get_alignment (GTK_MISC (widget), &xalign, &yalign);
|
||||
G_GNUC_END_IGNORE_DEPRECATIONS
|
||||
|
||||
width = gtk_widget_get_allocated_width (widget) - border.left - border.right;
|
||||
height = gtk_widget_get_allocated_height (widget) - border.top - border.bottom;
|
||||
@@ -30,7 +30,7 @@
|
||||
#error "Only <gtk/gtk.h> can be included directly."
|
||||
#endif
|
||||
|
||||
#include <gtk/gtkmisc.h>
|
||||
#include <gtk/deprecated/gtkmisc.h>
|
||||
|
||||
|
||||
G_BEGIN_DECLS
|
||||
@@ -67,12 +67,12 @@ struct _GtkArrowClass
|
||||
};
|
||||
|
||||
|
||||
GDK_AVAILABLE_IN_ALL
|
||||
GDK_DEPRECATED_IN_3_14
|
||||
GType gtk_arrow_get_type (void) G_GNUC_CONST;
|
||||
GDK_AVAILABLE_IN_ALL
|
||||
GDK_DEPRECATED_IN_3_14
|
||||
GtkWidget* gtk_arrow_new (GtkArrowType arrow_type,
|
||||
GtkShadowType shadow_type);
|
||||
GDK_AVAILABLE_IN_ALL
|
||||
GDK_DEPRECATED_IN_3_14
|
||||
void gtk_arrow_set (GtkArrow *arrow,
|
||||
GtkArrowType arrow_type,
|
||||
GtkShadowType shadow_type);
|
||||
@@ -27,8 +27,12 @@
|
||||
#include "gtkmisc.h"
|
||||
#include "gtkintl.h"
|
||||
#include "gtkprivate.h"
|
||||
#include "gtkimage.h"
|
||||
#include "gtklabel.h"
|
||||
|
||||
|
||||
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
|
||||
|
||||
/**
|
||||
* SECTION:gtkmisc
|
||||
* @Short_description: Base class for widgets with alignments and padding
|
||||
@@ -47,10 +51,10 @@
|
||||
*
|
||||
* Note that the desired effect can in most cases be achieved by using the
|
||||
* #GtkWidget:halign, #GtkWidget:valign and #GtkWidget:margin properties
|
||||
* on the child widget, so GtkMisc should not be used in new code.
|
||||
* on the child widget, so GtkMisc should not be used in new code. To reflect
|
||||
* this fact, all #GtkMisc API has been deprecated.
|
||||
*/
|
||||
|
||||
|
||||
struct _GtkMiscPrivate
|
||||
{
|
||||
gfloat xalign;
|
||||
@@ -103,7 +107,7 @@ gtk_misc_class_init (GtkMiscClass *class)
|
||||
0.0,
|
||||
1.0,
|
||||
0.5,
|
||||
GTK_PARAM_READWRITE));
|
||||
GTK_PARAM_READWRITE|G_PARAM_DEPRECATED));
|
||||
|
||||
g_object_class_install_property (gobject_class,
|
||||
PROP_YALIGN,
|
||||
@@ -113,7 +117,7 @@ gtk_misc_class_init (GtkMiscClass *class)
|
||||
0.0,
|
||||
1.0,
|
||||
0.5,
|
||||
GTK_PARAM_READWRITE));
|
||||
GTK_PARAM_READWRITE|G_PARAM_DEPRECATED));
|
||||
|
||||
g_object_class_install_property (gobject_class,
|
||||
PROP_XPAD,
|
||||
@@ -123,7 +127,7 @@ gtk_misc_class_init (GtkMiscClass *class)
|
||||
0,
|
||||
G_MAXINT,
|
||||
0,
|
||||
GTK_PARAM_READWRITE));
|
||||
GTK_PARAM_READWRITE|G_PARAM_DEPRECATED));
|
||||
|
||||
g_object_class_install_property (gobject_class,
|
||||
PROP_YPAD,
|
||||
@@ -133,7 +137,7 @@ gtk_misc_class_init (GtkMiscClass *class)
|
||||
0,
|
||||
G_MAXINT,
|
||||
0,
|
||||
GTK_PARAM_READWRITE));
|
||||
GTK_PARAM_READWRITE|G_PARAM_DEPRECATED));
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -215,6 +219,8 @@ gtk_misc_get_property (GObject *object,
|
||||
* @yalign: the vertical alignment, from 0 (top) to 1 (bottom).
|
||||
*
|
||||
* Sets the alignment of the widget.
|
||||
*
|
||||
* Deprecated: 3.14: Use #GtkWidget alignment and margin properties.
|
||||
*/
|
||||
void
|
||||
gtk_misc_set_alignment (GtkMisc *misc,
|
||||
@@ -228,6 +234,28 @@ gtk_misc_set_alignment (GtkMisc *misc,
|
||||
|
||||
priv = misc->priv;
|
||||
|
||||
if (GTK_IS_LABEL (misc) || GTK_IS_IMAGE (misc))
|
||||
{
|
||||
GtkAlign halign, valign;
|
||||
|
||||
if (xalign < 0.4)
|
||||
halign = GTK_ALIGN_START;
|
||||
else if (xalign > 0.6)
|
||||
halign = GTK_ALIGN_END;
|
||||
else
|
||||
halign = GTK_ALIGN_CENTER;
|
||||
|
||||
if (yalign < 0.4)
|
||||
valign = GTK_ALIGN_START;
|
||||
else if (yalign > 0.6)
|
||||
valign = GTK_ALIGN_END;
|
||||
else
|
||||
valign = GTK_ALIGN_CENTER;
|
||||
|
||||
gtk_widget_set_halign (GTK_WIDGET (misc), halign);
|
||||
gtk_widget_set_valign (GTK_WIDGET (misc), valign);
|
||||
}
|
||||
|
||||
if (xalign < 0.0)
|
||||
xalign = 0.0;
|
||||
else if (xalign > 1.0)
|
||||
@@ -268,6 +296,8 @@ gtk_misc_set_alignment (GtkMisc *misc,
|
||||
*
|
||||
* Gets the X and Y alignment of the widget within its allocation.
|
||||
* See gtk_misc_set_alignment().
|
||||
*
|
||||
* Deprecated: 3.14: Use #GtkWidget alignment and margin properties.
|
||||
**/
|
||||
void
|
||||
gtk_misc_get_alignment (GtkMisc *misc,
|
||||
@@ -295,6 +325,8 @@ gtk_misc_get_alignment (GtkMisc *misc,
|
||||
* in pixels.
|
||||
*
|
||||
* Sets the amount of space to add around the widget.
|
||||
*
|
||||
* Deprecated: 3.14: Use #GtkWidget alignment and margin properties.
|
||||
*/
|
||||
void
|
||||
gtk_misc_set_padding (GtkMisc *misc,
|
||||
@@ -341,6 +373,8 @@ gtk_misc_set_padding (GtkMisc *misc,
|
||||
*
|
||||
* Gets the padding in the X and Y directions of the widget.
|
||||
* See gtk_misc_set_padding().
|
||||
*
|
||||
* Deprecated: 3.14: Use #GtkWidget alignment and margin properties.
|
||||
**/
|
||||
void
|
||||
gtk_misc_get_padding (GtkMisc *misc,
|
||||
@@ -66,21 +66,21 @@ struct _GtkMiscClass
|
||||
void (*_gtk_reserved4) (void);
|
||||
};
|
||||
|
||||
GDK_AVAILABLE_IN_ALL
|
||||
GDK_DEPRECATED_IN_3_14
|
||||
GType gtk_misc_get_type (void) G_GNUC_CONST;
|
||||
GDK_AVAILABLE_IN_ALL
|
||||
GDK_DEPRECATED_IN_3_14
|
||||
void gtk_misc_set_alignment (GtkMisc *misc,
|
||||
gfloat xalign,
|
||||
gfloat yalign);
|
||||
GDK_AVAILABLE_IN_ALL
|
||||
GDK_DEPRECATED_IN_3_14
|
||||
void gtk_misc_get_alignment (GtkMisc *misc,
|
||||
gfloat *xalign,
|
||||
gfloat *yalign);
|
||||
GDK_AVAILABLE_IN_ALL
|
||||
GDK_DEPRECATED_IN_3_14
|
||||
void gtk_misc_set_padding (GtkMisc *misc,
|
||||
gint xpad,
|
||||
gint ypad);
|
||||
GDK_AVAILABLE_IN_ALL
|
||||
GDK_DEPRECATED_IN_3_14
|
||||
void gtk_misc_get_padding (GtkMisc *misc,
|
||||
gint *xpad,
|
||||
gint *ypad);
|
||||
@@ -56,43 +56,43 @@ struct _GtkNumerableIconClass {
|
||||
gpointer padding[16];
|
||||
};
|
||||
|
||||
GDK_AVAILABLE_IN_ALL
|
||||
GDK_DEPRECATED_IN_3_14
|
||||
GType gtk_numerable_icon_get_type (void) G_GNUC_CONST;
|
||||
|
||||
GDK_AVAILABLE_IN_ALL
|
||||
GDK_DEPRECATED_IN_3_14
|
||||
GIcon * gtk_numerable_icon_new (GIcon *base_icon);
|
||||
GDK_AVAILABLE_IN_ALL
|
||||
GDK_DEPRECATED_IN_3_14
|
||||
GIcon * gtk_numerable_icon_new_with_style_context (GIcon *base_icon,
|
||||
GtkStyleContext *context);
|
||||
|
||||
GDK_AVAILABLE_IN_ALL
|
||||
GDK_DEPRECATED_IN_3_14
|
||||
GtkStyleContext * gtk_numerable_icon_get_style_context (GtkNumerableIcon *self);
|
||||
GDK_AVAILABLE_IN_ALL
|
||||
GDK_DEPRECATED_IN_3_14
|
||||
void gtk_numerable_icon_set_style_context (GtkNumerableIcon *self,
|
||||
GtkStyleContext *style);
|
||||
|
||||
GDK_AVAILABLE_IN_ALL
|
||||
GDK_DEPRECATED_IN_3_14
|
||||
gint gtk_numerable_icon_get_count (GtkNumerableIcon *self);
|
||||
GDK_AVAILABLE_IN_ALL
|
||||
GDK_DEPRECATED_IN_3_14
|
||||
void gtk_numerable_icon_set_count (GtkNumerableIcon *self,
|
||||
gint count);
|
||||
|
||||
GDK_AVAILABLE_IN_ALL
|
||||
GDK_DEPRECATED_IN_3_14
|
||||
const gchar * gtk_numerable_icon_get_label (GtkNumerableIcon *self);
|
||||
GDK_AVAILABLE_IN_ALL
|
||||
GDK_DEPRECATED_IN_3_14
|
||||
void gtk_numerable_icon_set_label (GtkNumerableIcon *self,
|
||||
const gchar *label);
|
||||
|
||||
GDK_AVAILABLE_IN_ALL
|
||||
GDK_DEPRECATED_IN_3_14
|
||||
void gtk_numerable_icon_set_background_gicon (GtkNumerableIcon *self,
|
||||
GIcon *icon);
|
||||
GDK_AVAILABLE_IN_ALL
|
||||
GDK_DEPRECATED_IN_3_14
|
||||
GIcon * gtk_numerable_icon_get_background_gicon (GtkNumerableIcon *self);
|
||||
|
||||
GDK_AVAILABLE_IN_ALL
|
||||
GDK_DEPRECATED_IN_3_14
|
||||
void gtk_numerable_icon_set_background_icon_name (GtkNumerableIcon *self,
|
||||
const gchar *icon_name);
|
||||
GDK_AVAILABLE_IN_ALL
|
||||
GDK_DEPRECATED_IN_3_14
|
||||
const gchar * gtk_numerable_icon_get_background_icon_name (GtkNumerableIcon *self);
|
||||
|
||||
G_END_DECLS
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user