Compare commits
1606 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 1320dda9cb | |||
| e997f4a7f4 | |||
| 1bbd944277 | |||
| b109aba663 | |||
| 19b463ec78 | |||
| 80dd3f8635 | |||
| de8f97be6b | |||
| 03da721030 | |||
| 7c85dc6cd7 | |||
| 72c4cfd4b6 | |||
| 4f73530c4a | |||
| 7c37641d83 | |||
| a0fec9db57 | |||
| 9f80da60c3 | |||
| 2622f875ee | |||
| 2518a2cc81 | |||
| f21467e340 | |||
| 820c2d2722 | |||
| 18b6bdf5dd | |||
| 809a4e3c0e | |||
| 32aa265175 | |||
| d080c928a7 | |||
| c85d1fa00c | |||
| 77488e379c | |||
| 85df994eda | |||
| 03d5bf0df5 | |||
| de74590279 | |||
| 13b7dd354c | |||
| 23fd4b64dd | |||
| 97212acecb | |||
| a6b7d4f7f6 | |||
| 8576668eba | |||
| 22fdc7f51f | |||
| d1b2a6ea70 | |||
| bbe5146bbb | |||
| cc93d82025 | |||
| bfb8806682 | |||
| 06cb21cc47 | |||
| d65da471b7 | |||
| 53989e3bdc | |||
| aaa44b7348 | |||
| a25368cc6b | |||
| baeb3689b5 | |||
| b219fbc3d2 | |||
| fb21077d3a | |||
| 375e8a2f97 | |||
| bb8096497a | |||
| 054a24c26e | |||
| 0ba0c17245 | |||
| 1bfefc61ea | |||
| 195fbbaf23 | |||
| f8f5ffd560 | |||
| b25ffc0aa8 | |||
| 416f93175d | |||
| e65569e3b2 | |||
| 0d90fab01b | |||
| 551eb56da0 | |||
| 8f583008e0 | |||
| 3fefe01d2e | |||
| d094934cf4 | |||
| 4fcfd266e0 | |||
| 99859727e8 | |||
| 59ed9f086f | |||
| 46feb76aba | |||
| 3135b63976 | |||
| a0ed40876d | |||
| 0823692dda | |||
| e01348cccc | |||
| 176fe80425 | |||
| aa875e5830 | |||
| 49dd5d838c | |||
| 92fe201c5b | |||
| fbc19ab893 | |||
| a6b36adb32 | |||
| 29af26565d | |||
| 8ba7d4570c | |||
| 206b40621e | |||
| b4c8657904 | |||
| d50dc4ff65 | |||
| e2be49a2f6 | |||
| 2f2aba2333 | |||
| 959a4bdded | |||
| a0eaff289a | |||
| 3e22b75948 | |||
| 6fb96891b1 | |||
| d92c318b40 | |||
| fb0fd825ba | |||
| 3cdf88f2c6 | |||
| 8493daf9ff | |||
| e47c9ccc0b | |||
| 0328f3e33b | |||
| c2d77a7300 | |||
| a33d67f6b4 | |||
| 045f5f6a61 | |||
| dd938b02df | |||
| 1c295d46a9 | |||
| 037e6bc006 | |||
| 619c78622e | |||
| ccf18ceb0e | |||
| f3f0a6899f | |||
| 3bf24fae7a | |||
| e855b244ae | |||
| cc0bd9a171 | |||
| d170243d61 | |||
| 7bb046c0a5 | |||
| 36b430562d | |||
| c0204e90b1 | |||
| c3b2885f88 | |||
| 95430e131e | |||
| e022a2e4d1 | |||
| 9fda86e261 | |||
| 796d888f8f | |||
| 2d27c10c63 | |||
| d428d5fecf | |||
| 06abda254a | |||
| 402031244d | |||
| 72120e0a96 | |||
| c0b80c67b9 | |||
| 4c2ea8879f | |||
| b414cbfada | |||
| 79b2ff7551 | |||
| db59c7011b | |||
| 9020a3a26c | |||
| e3e546f7d2 | |||
| 9b6e1cb1cd | |||
| 8fcd59ebda | |||
| 10e4bf2a20 | |||
| c9d65c5324 | |||
| e04436b138 | |||
| 0b80c00678 | |||
| c836cc9cf8 | |||
| 3a2c39b0f8 | |||
| 039bd92ea5 | |||
| b15f039444 | |||
| 3796b2fe7f | |||
| 17b5a3750b | |||
| bc07c7da11 | |||
| 441c2c240f | |||
| 17d015ed5d | |||
| 885497ec1f | |||
| ab283174df | |||
| 0b87a92ed6 | |||
| c5fb8518d2 | |||
| 4d53ff9811 | |||
| 9fe7bfb596 | |||
| 8db8119564 | |||
| 726bceecfd | |||
| 88f2318c9c | |||
| 45e4387ed1 | |||
| 5666af4d1d | |||
| 75fcdb3b08 | |||
| c7fc54b348 | |||
| 8b3e257648 | |||
| 56bf72cc5d | |||
| 5151cd0bfe | |||
| 4e90b2d48b | |||
| 38fc51c3b6 | |||
| 5aa48e523d | |||
| 5facd37376 | |||
| e985e10eec | |||
| 7ed4d11f0c | |||
| 2e66d80af8 | |||
| 2b55f8a1aa | |||
| 50b7027b22 | |||
| 4399a52ad3 | |||
| 2a3e82a144 | |||
| 920120864f | |||
| edc05b5d54 | |||
| f59b3a0210 | |||
| b6f6fc3d65 | |||
| a96158e26b | |||
| 23d824de66 | |||
| 6c0a3b4534 | |||
| 1a68d7c200 | |||
| 6069263beb | |||
| 91446c1515 | |||
| bf5ce3a1ba | |||
| fb3aa446e1 | |||
| 97d70d7844 | |||
| 95bfb733ee | |||
| 120637bd9b | |||
| c60118b6a4 | |||
| 3e8ebe0a2a | |||
| fb1d7811b1 | |||
| ce7833b982 | |||
| 373ba5a904 | |||
| b6b26b4e1e | |||
| 5503727d3d | |||
| 7349fe2e72 | |||
| c438686deb | |||
| 7bfbcef942 | |||
| 01e78b04c6 | |||
| b8a03be869 | |||
| f756af788e | |||
| cc82e59003 | |||
| c258ad7e3c | |||
| 05429bc39c | |||
| 5c85dbaec4 | |||
| 76853dfeb2 | |||
| c624ee9cff | |||
| 2b32070793 | |||
| 937e3c2d48 | |||
| 2738848336 | |||
| 1ea9ad05bc | |||
| 643c7f25f5 | |||
| 8789ab9265 | |||
| 9dcf3b862c | |||
| 3f28a1d1cb | |||
| cd4983f092 | |||
| 03a33b6b56 | |||
| bea74c27e5 | |||
| 5c80019541 | |||
| ff28501d6d | |||
| d4e9ddc14c | |||
| 6c401ecce7 | |||
| 300fb43a38 | |||
| 9b6c8c885b | |||
| 58cfc13649 | |||
| b595dc0d3b | |||
| 6bf1ac45e3 | |||
| b70df18939 | |||
| b432a718ab | |||
| 7b5b807a8c | |||
| ee1be14b62 | |||
| 987642eb8c | |||
| c03535343c | |||
| 8334cb9a1c | |||
| 10fcd8eaef | |||
| a6b2a44fd6 | |||
| dc69cac298 | |||
| 70270f5bd1 | |||
| 0a0eb35ee8 | |||
| d0344aecea | |||
| ab766e6c1c | |||
| b99c71744f | |||
| 2af41e87f9 | |||
| daac54b5d2 | |||
| 4e40534d21 | |||
| 5347c2ad3d | |||
| 3904d7ccfc | |||
| 21b90de829 | |||
| 7314acf053 | |||
| 77334628c4 | |||
| 815602d1af | |||
| 5f438b7a85 | |||
| c68b83e1bb | |||
| 6b031d9b9e | |||
| 460b03372d | |||
| e58d9606dd | |||
| bd8721d6b9 | |||
| 3d9c04ecaf | |||
| dd702cd53d | |||
| 9e90cb9572 | |||
| 79934a327e | |||
| a7c41f0c34 | |||
| c1fcb1d895 | |||
| 8c77d31d4d | |||
| 29e9b9f792 | |||
| 3514473a5a | |||
| 7759ad7e27 | |||
| d208447cba | |||
| 30c724e858 | |||
| 1808d8bd40 | |||
| 2ca379b281 | |||
| b858fa38c4 | |||
| aa4d7682ca | |||
| 6f44b00b2c | |||
| b79d2d9258 | |||
| 346495ae31 | |||
| 88801f46d9 | |||
| de4854d112 | |||
| 4d4adf0753 | |||
| ab7cf4a2b0 | |||
| bb290abe91 | |||
| 858db3c104 | |||
| b5e01ea163 | |||
| 4a1edf581e | |||
| 1b5e1cd4d2 | |||
| b428d74281 | |||
| d746ba892d | |||
| 43be58a1ea | |||
| 0821f1ac11 | |||
| 02eb1d2c62 | |||
| 0b08e4dcd2 | |||
| fcff0dd228 | |||
| 176b1a0fd5 | |||
| b4fc78fc0d | |||
| 9fae30162d | |||
| b3b32fa966 | |||
| e32a50b34d | |||
| bacbe86756 | |||
| f4c1730b7c | |||
| 6577309de4 | |||
| a1f16f3681 | |||
| b31212def2 | |||
| 5324b65fb0 | |||
| b877d17138 | |||
| 3de00eef5f | |||
| d67c2d13c7 | |||
| 7c1049d86b | |||
| 1402087562 | |||
| c84c10fa06 | |||
| e5463b5455 | |||
| 05353049b5 | |||
| 6cab769f41 | |||
| 884ae5a7ff | |||
| bed70339b8 | |||
| cf4393091a | |||
| 8b492c3c45 | |||
| 5bb06e5ac5 | |||
| 6cd7d9fb89 | |||
| 164d40f235 | |||
| 243a8b6843 | |||
| b9749d361b | |||
| 920f128cc7 | |||
| ba7ad7ddf4 | |||
| 8d79661996 | |||
| ae0bdb96e5 | |||
| f2db7ecbe4 | |||
| 6388189f48 | |||
| 5ff7c61003 | |||
| 2c5876ee8c | |||
| a61673a144 | |||
| 27aacb26f8 | |||
| ceb6a49f0c | |||
| 787b16db98 | |||
| 7d10b29592 | |||
| 3069fd5974 | |||
| e816a0c29d | |||
| 16f672a9bd | |||
| 58ca5b71a9 | |||
| dad8c9821b | |||
| 6da11de5e0 | |||
| f30cd67411 | |||
| d767e83dac | |||
| a3c74051c2 | |||
| fe188489c7 | |||
| 5091f08f71 | |||
| 928d6c5dff | |||
| 9259f3a7c9 | |||
| 1a7cef2950 | |||
| 560fda70a2 | |||
| 1dbaa89f95 | |||
| 37af3adffb | |||
| a3855cb4f2 | |||
| 2d17d2b91f | |||
| fc2379ca8a | |||
| be5f3717c7 | |||
| f2f2b4bcf9 | |||
| c86b4928a7 | |||
| 39954b20fe | |||
| 20036f8105 | |||
| 34894acb89 | |||
| 6c9e34e799 | |||
| 029b624e96 | |||
| 807b8d4cf1 | |||
| 044b4a6d4c | |||
| 7159f6e48a | |||
| 5c43924338 | |||
| ff9d899ae0 | |||
| 6186dd5c51 | |||
| e1a22333c1 | |||
| ecc5fc9894 | |||
| cd1a1a67fb | |||
| 13d61e4b2b | |||
| 30ec895c96 | |||
| 483dc24e87 | |||
| b0b9c5ab63 | |||
| 8bb3fae5ae | |||
| 36f1d023f0 | |||
| d7f3a38510 | |||
| 46f47adebe | |||
| 17d64ac348 | |||
| 3a8f32c380 | |||
| d3d0bdbe17 | |||
| fb881ee209 | |||
| b8013648d2 | |||
| 183687c69e | |||
| e32306c232 | |||
| 1633068920 | |||
| 269cd11b5a | |||
| 4852c91b42 | |||
| 772dff7a01 | |||
| a11f3a0b80 | |||
| b029e4e44a | |||
| 986392d88e | |||
| a833aeeacb | |||
| d92396341e | |||
| 70ca02537d | |||
| a991625f56 | |||
| c600b758b3 | |||
| 174c276883 | |||
| a3b855ac6c | |||
| 44734dc059 | |||
| 3d8d852990 | |||
| 39c830435c | |||
| ea0edaba21 | |||
| 7ee6afeace | |||
| 50f6844e71 | |||
| 562ab0bdea | |||
| 09100100c9 | |||
| 541d4358b8 | |||
| b74bccbb13 | |||
| f20335cefe | |||
| a9c66e15ea | |||
| 867585c1f2 | |||
| bcd48d4bc2 | |||
| 29df4f809e | |||
| eeae94b4b6 | |||
| fffb0d340f | |||
| becd6a6f9d | |||
| 1548dcfe8d | |||
| 18995a1527 | |||
| c8c3e1f96a | |||
| c715a22e1c | |||
| a2fe319b92 | |||
| 0eed5175cc | |||
| adf06791eb | |||
| d03041b565 | |||
| ef03afe289 | |||
| 9460f207f5 | |||
| 69b31eb88d | |||
| d65ad38e3f | |||
| 34e00bdb6d | |||
| 21d9a3d4bd | |||
| 527d9509d3 | |||
| 1c30f3d9a9 | |||
| 109c21aad4 | |||
| 9ee36b1a87 | |||
| 081842dff0 | |||
| da71a51029 | |||
| 29db6152b3 | |||
| faa730dfb1 | |||
| 9effd24f3a | |||
| ad26ece8d4 | |||
| 743c650129 | |||
| 5ed8ba5bf3 | |||
| 978c4fd7d3 | |||
| 9328ec8b52 | |||
| 62d453ecd8 | |||
| d88bddad7e | |||
| 09b07cd387 | |||
| 232e21cb37 | |||
| 51479c2042 | |||
| 7297208119 | |||
| d650cca088 | |||
| 3b645ed305 | |||
| a498d7e9c5 | |||
| bcf690f901 | |||
| c8cd95a718 | |||
| 3a94ccd6a3 | |||
| 16cf1a4d09 | |||
| 2ed3bf47bb | |||
| a72b5416c3 | |||
| c9ccd8a642 | |||
| 71aafb6eb3 | |||
| 3135334c0c | |||
| 981072598b | |||
| 42e14b5a4e | |||
| 2f23aa9556 | |||
| e175eb25b8 | |||
| 8efe8d1835 | |||
| 7208ef481f | |||
| 6253b44f20 | |||
| 5e40de9357 | |||
| 2ad40ad10a | |||
| f11de08fa9 | |||
| 7099614041 | |||
| 7292ce6a8b | |||
| fa84babefe | |||
| e785c140b9 | |||
| 7903cfa1da | |||
| c77d214c5f | |||
| 8d84e22f31 | |||
| e800bc5ffe | |||
| da645c5d16 | |||
| 15cd13ba6e | |||
| cb1fd069f0 | |||
| 00cf8ba976 | |||
| a39023ad22 | |||
| 107d206dba | |||
| 89d1d3d299 | |||
| 4eaba20cd3 | |||
| be42b80713 | |||
| c1eee56785 | |||
| 31c254d8c1 | |||
| 1cc05f19b5 | |||
| 288982b15d | |||
| 7ce38ee6f8 | |||
| d4054029cd | |||
| f9702aab87 | |||
| cda3a82c66 | |||
| f088d4d762 | |||
| 3784950603 | |||
| 49610085ea | |||
| 0ed26e4e33 | |||
| 65821f747d | |||
| e5cb8a0310 | |||
| f8f1476f63 | |||
| 1099befab1 | |||
| 70e6d95c7f | |||
| 14986d1e0e | |||
| 79cd457ba7 | |||
| a19c668891 | |||
| f70ab6203b | |||
| ba7cf09ad5 | |||
| fbfcba6e4d | |||
| e1d5cf1a87 | |||
| 5c89e4490e | |||
| 29ca96cfe7 | |||
| 70ff2e14a5 | |||
| 98124e68c7 | |||
| f9c476d851 | |||
| 6180687bbd | |||
| d7fe307913 | |||
| ec3158d03a | |||
| 0bce0f37e4 | |||
| 15e6bcc86b | |||
| 6d60b98dc8 | |||
| 172542cfc4 | |||
| 710a82bc51 | |||
| 251e0ca19c | |||
| 1ece1172c5 | |||
| c8c318510e | |||
| b1803bcf02 | |||
| d132cf37e0 | |||
| 39c2745f55 | |||
| 57a60a32f5 | |||
| e1a2cbbea1 | |||
| 3bd2b7762a | |||
| 4a18f9db3a | |||
| b8d2fef079 | |||
| 77cefe0c16 | |||
| 6aa0ceff36 | |||
| 485d436860 | |||
| 4054d7ddf7 | |||
| bacb8c26cc | |||
| eb95202708 | |||
| 730b89af6d | |||
| 3a0256aade | |||
| 6a9eb4576d | |||
| 0e4cd590cf | |||
| b2eac14552 | |||
| 3ecf3ae4b2 | |||
| e16bf40e60 | |||
| 1ef2f84f72 | |||
| b876309999 | |||
| 6444cfd345 | |||
| c8f254ff92 | |||
| b8dfc1f26a | |||
| 581b5257e1 | |||
| aaa7661b94 | |||
| b0c1c1ad2b | |||
| 0f0323da5a | |||
| dcbd897a95 | |||
| 7dd247f1dc | |||
| 2f2c358aef | |||
| ffc1b6406f | |||
| aba58e3e48 | |||
| 9f9e87f11f | |||
| e6e4000863 | |||
| b5cf03f5ad | |||
| bc26ccf9f2 | |||
| 1956c074ba | |||
| 66e8795656 | |||
| 42e3c13820 | |||
| 9e464f9f5b | |||
| 7cfe19d9fd | |||
| 7235da0979 | |||
| d74ec1a1b2 | |||
| 15a67fc358 | |||
| 4eab89d9ef | |||
| 8085899d0a | |||
| 1f35ec5521 | |||
| 666705c1f8 | |||
| 21030fdfb2 | |||
| 37afcd93e2 | |||
| 875caa694c | |||
| 5d7739a662 | |||
| e6d5110ccf | |||
| 418bd28347 | |||
| dd3617cfda | |||
| b2ee2a4d88 | |||
| de67f3f1e9 | |||
| f30c8e0f46 | |||
| 909aeba3d9 | |||
| c7bfa9857e | |||
| 66d2060942 | |||
| a076f5092c | |||
| be8fe3884f | |||
| 77bf575742 | |||
| e4fbd003e0 | |||
| 6d335f2a82 | |||
| 18ffb405b4 | |||
| 6a8e69f9c9 | |||
| 552815d486 | |||
| 0f4bdbd184 | |||
| f14e41133b | |||
| 945eaceb91 | |||
| 18ebced8f4 | |||
| 19aba615c2 | |||
| 5610261dce | |||
| 12a4a38507 | |||
| 77643fe9b6 | |||
| 4f4b24a638 | |||
| 79e2000af4 | |||
| 96935e0a7e | |||
| 2dd82cbca7 | |||
| f550ecaf1f | |||
| 6dc8e96a34 | |||
| 51511eda85 | |||
| ca12ce6f14 | |||
| e90cfa1d40 | |||
| 3d9690302c | |||
| b429dbfb88 | |||
| 83ee51370c | |||
| 21ac28a1ec | |||
| 36f70704eb | |||
| 7d69a917b9 | |||
| dc56678289 | |||
| d5f680ecd2 | |||
| b2c848579a | |||
| fb3d1bdb59 | |||
| 8cc1e2b5e7 | |||
| 8f84c3ec4f | |||
| 1edeba7fb4 | |||
| 517c79c9cd | |||
| 41441d9ced | |||
| f0cd7a5fd9 | |||
| ce1f35a1be | |||
| df08f9921f | |||
| ae8daee83c | |||
| 158e05adea | |||
| 4043a15482 | |||
| 54b22b1851 | |||
| 8112a8ade1 | |||
| 19de0ae55d | |||
| a41ff7b924 | |||
| 028973d182 | |||
| b9eb627bc3 | |||
| f135ec47fa | |||
| c47f97e02f | |||
| daad58e511 | |||
| 51b9319246 | |||
| 0571ff6ce2 | |||
| fac3e2d662 | |||
| 860198edc5 | |||
| 781c5f7e1d | |||
| cbe8c5a934 | |||
| e52afd93a3 | |||
| 36f09cb29b | |||
| e691704a82 | |||
| 97d2800f16 | |||
| 2348537769 | |||
| 455ee4c08c | |||
| 2d29f76c49 | |||
| 06d2170501 | |||
| c0e1f7a17a | |||
| b1b7408cf2 | |||
| 60b98a8b4f | |||
| 32052d953f | |||
| 7726b039b2 | |||
| 05652d4787 | |||
| 0359ffb6c7 | |||
| 9625cea57f | |||
| 1e4abac579 | |||
| b9e07f2a70 | |||
| a91934c7b3 | |||
| e4d16abcbd | |||
| 09a3c5b280 | |||
| 9f427da56f | |||
| b36f982272 | |||
| 6623ab91a8 | |||
| e9017ce0b1 | |||
| b3e30e50c8 | |||
| a3f3fb39de | |||
| aeadc768f6 | |||
| b0e8443383 | |||
| 19638b2226 | |||
| 620395608c | |||
| 31ee95c683 | |||
| bb96255a03 | |||
| 1f6a5c92d7 | |||
| a568e70b99 | |||
| 5e49517781 | |||
| c13ef839c1 | |||
| 16cb1e731d | |||
| c3cc85eb1c | |||
| 193ec692a9 | |||
| 6025256e07 | |||
| d323fb57a7 | |||
| 765606012f | |||
| e606587ff6 | |||
| 720889edd0 | |||
| 7ebda0247f | |||
| beb4348016 | |||
| 074ebe0e2b | |||
| bc096dc4ee | |||
| 0035445456 | |||
| 929b1a1275 | |||
| bc27b0ed5f | |||
| 838e8aef04 | |||
| 4a52062a54 | |||
| 63eb552e0a | |||
| b75017830f | |||
| 35da498a32 | |||
| 81c5ba257b | |||
| 23f9d4642d | |||
| f7550940ee | |||
| df5c5c23ca | |||
| 598b140112 | |||
| 1a3b129d1e | |||
| a75dd7f48c | |||
| dfbe02c8c2 | |||
| b0182abbb5 | |||
| f1f26a9197 | |||
| ce9b1e3da5 | |||
| 27a5ed1a9f | |||
| 607650be22 | |||
| 1142eb259b | |||
| 42887544c9 | |||
| 8d8c743f97 | |||
| 90f06c56a9 | |||
| b9927a0655 | |||
| 469fc3b572 | |||
| 6fab7cc025 | |||
| 64b18ea06a | |||
| c6af38477d | |||
| 2d40425e4d | |||
| c711ad5c7c | |||
| e75be4074e | |||
| 6f8a0a4eed | |||
| 3cb90063a1 | |||
| f007d2857a | |||
| 15241b7fcf | |||
| 1222f3cc72 | |||
| 1ea5b04e22 | |||
| eb1faebf1f | |||
| 0ea75cb4e7 | |||
| e3c1235572 | |||
| dfcffddbe4 | |||
| 1fe848f37c | |||
| 1ea001d497 | |||
| 4e11dcfa31 | |||
| fbfbb64387 | |||
| ea3c29e3ec | |||
| 7c337ec45d | |||
| 56e3e988ff | |||
| c977895412 | |||
| 34ccd0f004 | |||
| 1721cc1700 | |||
| 1bf04d1722 | |||
| 584ed9e204 | |||
| a0ef3f81f4 | |||
| 59a01789ff | |||
| 3912c7407f | |||
| d7574db805 | |||
| 568c8c336b | |||
| 9f1e2e34b7 | |||
| e517199794 | |||
| a5f670b69d | |||
| be54f357eb | |||
| 7e1407f205 | |||
| cb83f8acdf | |||
| 95ab0b1813 | |||
| 1f30d0c803 | |||
| 6ddc2fe02d | |||
| 99756efea5 | |||
| cbea5149cb | |||
| da4fe27447 | |||
| 33773bad4d | |||
| 60d2dc2e90 | |||
| 256d7b0714 | |||
| dfc2fe3929 | |||
| 6ac273264d | |||
| 374a3feb3e | |||
| 208a8553a5 | |||
| 63fb408478 | |||
| 17b18637f8 | |||
| 45a9544726 | |||
| b7f4113f96 | |||
| 072fc4f8cb | |||
| 15e6787596 | |||
| 41a9546b3d | |||
| 6a45446496 | |||
| b244a940ef | |||
| 9163ac543a | |||
| 6c93cccb70 | |||
| 3e655801b5 | |||
| 7f1ed30ff5 | |||
| 39b91c90dd | |||
| f49779465e | |||
| 3fb8963536 | |||
| 888c01d11b | |||
| d1877d7c1b | |||
| 961b22d603 | |||
| 3777c5270b | |||
| 296ec66796 | |||
| 74e10791ff | |||
| f67df4bf11 | |||
| c1298570cb | |||
| 27a2b840ec | |||
| d47cac12c3 | |||
| 69e60d3982 | |||
| b578f8b362 | |||
| 7553cc2651 | |||
| c71c1d4d1a | |||
| ed9153a786 | |||
| f1076c0f48 | |||
| c7fa5c567f | |||
| 1dd1ddf83b | |||
| d7774b94fc | |||
| ead1914b1d | |||
| c2662b0e11 | |||
| d6e9bdf07b | |||
| 03bab2f4a9 | |||
| 0a01277808 | |||
| d2daab808c | |||
| edc8438ef0 | |||
| 4842c73530 | |||
| 30ad8e9369 | |||
| 68002d2eec | |||
| 611878351a | |||
| 6695209246 | |||
| 55261eb223 | |||
| 9094a17795 | |||
| d0926cce58 | |||
| eb0fc7bae2 | |||
| 87d997704f | |||
| 218bea9ace | |||
| 48899a4c96 | |||
| e7e20b85b5 | |||
| 4d8be7b2bb | |||
| adfc4d2485 | |||
| cdaba24f0d | |||
| 453eb9c3eb | |||
| 45f10fcff1 | |||
| f2d7bb7b0c | |||
| 59b729c731 | |||
| 1e9da7f57b | |||
| 9d29e94cb5 | |||
| 0260b32125 | |||
| a27e4246e0 | |||
| 01326d1304 | |||
| c0909611d3 | |||
| 133ff9b552 | |||
| f59a2410fa | |||
| 0b629b4bd4 | |||
| 10b0b18d80 | |||
| 6b4b2d61f8 | |||
| 27d097a78c | |||
| 5287ab6e4f | |||
| 50d2aaa97c | |||
| 39d769937f | |||
| ce4c4c9409 | |||
| 718ad77891 | |||
| 9d9745b555 | |||
| 0a6b1ea256 | |||
| 3625668ff5 | |||
| cfe588a853 | |||
| db90e97d0b | |||
| d24a2afaca | |||
| 800cc1a11c | |||
| e9e28b9aac | |||
| 927d2a645c | |||
| 2502bce987 | |||
| 21c216556b | |||
| 6936effaa7 | |||
| 248089c934 | |||
| bdd44ce88c | |||
| 0e5cc54ec9 | |||
| 638ac3838c | |||
| d2a2dea9c4 | |||
| b40289c1bd | |||
| 15cf25a6fc | |||
| 6b40473f5d | |||
| e156e4509c | |||
| 549b76739e | |||
| b5c80fe689 | |||
| 7bb1d50d55 | |||
| 568d4e2b19 | |||
| a6e6e914af | |||
| b8e2054b23 | |||
| 0979aadae8 | |||
| 6bcf1839b7 | |||
| 0a668ee550 | |||
| 52a9e68093 | |||
| b9898e2bb0 | |||
| 8518c373d1 | |||
| a3dfce5adb | |||
| ba4ba5b668 | |||
| a6dee516fd | |||
| a1b3e5d9bb | |||
| 94c8e84d3b | |||
| a73f3fe36d | |||
| 741140e4a4 | |||
| 7058b79bf1 | |||
| f0352176ec | |||
| 32f25cf8b4 | |||
| 057366e97e | |||
| 899c8ccc8d | |||
| 71f188f3de | |||
| 2901fee9a0 | |||
| 85f984ccd9 | |||
| 09424db68f | |||
| 431eae0492 | |||
| 323bb0f8e1 | |||
| 43a5bb72ca | |||
| 40382f4d52 | |||
| 944ecc8913 | |||
| 2ec4ceffbd | |||
| a88ac393bb | |||
| 816f6db310 | |||
| 4ae5a006d0 | |||
| e3815381ab | |||
| e957fb403b | |||
| 4c33320cbc | |||
| 4e6c9ac7b1 | |||
| 8c89847627 | |||
| ab3ada5200 | |||
| 3afea91088 | |||
| 924736c6f3 | |||
| 39bb4b639f | |||
| ebd8c44eee | |||
| 241127788e | |||
| 073c03e61f | |||
| ce93934f08 | |||
| 2c55091a74 | |||
| 0daf14f9c3 | |||
| 1a56dfe342 | |||
| 2dd5757eb5 | |||
| d642ac39ae | |||
| 872c8ca37b | |||
| 94b46ce176 | |||
| 593b7cd6a1 | |||
| c52ff1ca23 | |||
| a045642b7e | |||
| 83e08c9277 | |||
| 300f5cb082 | |||
| 840e08fa78 | |||
| 0617bffce0 | |||
| e1f6230e8c | |||
| 75cea18f07 | |||
| d3777eaddf | |||
| 1f2bdf895e | |||
| 0047f88f82 | |||
| 1636405b66 | |||
| ecb81426a4 | |||
| ac435ecd68 | |||
| 323ecada8d | |||
| fbffb9ae1e | |||
| 67f7571f04 | |||
| 67cc2aac2e | |||
| 07b82d19e3 | |||
| 2b38b23a5e | |||
| 37e057173c | |||
| f18807ea0f | |||
| 459a972116 | |||
| 06b22594ca | |||
| e1373d70ae | |||
| b53b29399d | |||
| 6f7475dcd3 | |||
| 68451a2a9c | |||
| 1181b9f9b4 | |||
| a62a89eac3 | |||
| 490c805319 | |||
| bf0a466642 | |||
| 9992839c78 | |||
| c80e3e0ffc | |||
| aee1fe45f4 | |||
| d3dc7ade8a | |||
| 691f05273e | |||
| 62a5302bc4 | |||
| cbb0d74bd5 | |||
| c5f8a6b26e | |||
| 20800d03b7 | |||
| f53c42fac9 | |||
| 95a6fb6ea3 | |||
| 1401d8a8ea | |||
| bc52f0a03b | |||
| af30eca3cb | |||
| aff3243f3b | |||
| 034669bf30 | |||
| 5ea46e8b78 | |||
| 6e6063b258 | |||
| dbc40096db | |||
| d701637eab | |||
| c35ec8ae7c | |||
| 97ddefd01a | |||
| 4ac20d7ab1 | |||
| f21faceb74 | |||
| ec39bdda77 | |||
| 9d56102210 | |||
| cc290715a2 | |||
| ab6521ff9e | |||
| 5137b54bd8 | |||
| 813de6a1f3 | |||
| 21a7621ddb | |||
| 7d9a0b06e0 | |||
| 952108dd43 | |||
| 5f851a4bad | |||
| 7c25001622 | |||
| b90b454ada | |||
| 13aa503614 | |||
| 38cdafd407 | |||
| 1a3d0492f5 | |||
| e33871fbf0 | |||
| de055031a3 | |||
| f347815150 | |||
| f32c95229e | |||
| 97166a72f5 | |||
| 0961614df2 | |||
| 69339f341b | |||
| 7452e98655 | |||
| 6b3fe33d6f | |||
| 5dd71b5563 | |||
| 68224e0fcd | |||
| 0dd1584394 | |||
| 6630a7227d | |||
| 48fb78418c | |||
| 97445f1714 | |||
| b4d4525496 | |||
| fbb807f3bb | |||
| eba892009d | |||
| ddc6079ceb | |||
| 8378f97a78 | |||
| 0eb8f92c69 | |||
| eb1e67583f | |||
| 6ade8c25e1 | |||
| f47e2b54f8 | |||
| 2c1b970027 | |||
| dfc3a11185 | |||
| f08d040c02 | |||
| 0eb391b13f | |||
| a0f477cc5f | |||
| d34433a1df | |||
| 44e111b37e | |||
| b3b5ffe799 | |||
| 69afa27a5f | |||
| f9e4ee1fc9 | |||
| eb3a201d39 | |||
| 06d64c7883 | |||
| e850592587 | |||
| 053c26c96e | |||
| 2d99ec779f | |||
| a32bb4e9a5 | |||
| 2aea26de1e | |||
| dcd4b13104 | |||
| 6cf7ad68ad | |||
| 041c52c369 | |||
| 6f27ef7f66 | |||
| b9a17b928a | |||
| ef5c69167a | |||
| d290154dd3 | |||
| 3c4f8c1bf7 | |||
| f37ee5c2b3 | |||
| 92ccb766ab | |||
| 7a715904ad | |||
| ee095a6711 | |||
| 019f63cd95 | |||
| 924a5e68f0 | |||
| 25209516a6 | |||
| 51bfec8ef9 | |||
| 18593d2dbb | |||
| f602ccd814 | |||
| 5c39521149 | |||
| 7995b5cc3c | |||
| 76a915d472 | |||
| f8776f72ac | |||
| 7200f4d7b5 | |||
| 0a308c4584 | |||
| 17ac5b6d13 | |||
| e19141bdc8 | |||
| 9cc3d6764f | |||
| b83dac68d0 | |||
| 5e08be7018 | |||
| 792c4328aa | |||
| a9f663d5ef | |||
| 0c2ba94b16 | |||
| 717b1d37be | |||
| 86d1592777 | |||
| c1539ae014 | |||
| f3c95ad83c | |||
| 5685174808 | |||
| 7da2631b27 | |||
| e77d096412 | |||
| f6e07f575a | |||
| ea0941cab3 | |||
| 40f41133b3 | |||
| a3483f44d2 | |||
| ae54f34392 | |||
| 589a37bfe8 | |||
| 0e5f5d37d1 | |||
| 2f782ac7a4 | |||
| 5f4a6e33a0 | |||
| a155289f70 | |||
| f7c042a357 | |||
| b56ca3f09c | |||
| 3caa4376a5 | |||
| c716d66e53 | |||
| 533fdcf00a | |||
| e6fe220f84 | |||
| 3e5005698c | |||
| c02777a721 | |||
| 8341e3f972 | |||
| 1de5b83d82 | |||
| 81993eef83 | |||
| 3d3c280f22 | |||
| a40367ce17 | |||
| 469231ae15 | |||
| 2e4d948535 | |||
| e10c01aaff | |||
| 2c71d550ab | |||
| cf046e0548 | |||
| f40408187e | |||
| 11ec7d4651 | |||
| 2097411550 | |||
| 4a3add7ac5 | |||
| cc28fb18fd | |||
| 2c43d4d6bf | |||
| 272c045c37 | |||
| 316be464ab | |||
| f1a38a6d41 | |||
| cd2bd23c37 | |||
| e5151ed639 | |||
| a76bcc204f | |||
| b97d65e791 | |||
| 13beb344ca | |||
| d12eee9c98 | |||
| 207900e4f9 | |||
| a12d769074 | |||
| 8e75824d29 | |||
| f87d371b8b | |||
| 2e43c6c64e | |||
| cc439f9ab0 | |||
| 49231ac08f | |||
| 09c9db472e | |||
| e9eacbc91c | |||
| 019a731e03 | |||
| b7e67073ef | |||
| 0b2e1d00ea | |||
| d881f4b21f | |||
| c4fac81dbb | |||
| a42a4b0b52 | |||
| fd546da640 | |||
| 9adf012c20 | |||
| 2d28ab7dd2 | |||
| 32765ebffd | |||
| ed0e6af66d | |||
| dd9c426922 | |||
| b5fd7b9842 | |||
| 7e3ad4585a | |||
| 2edb09e583 | |||
| 4ccfa17ff9 | |||
| 554094ada6 | |||
| a825cdfa5a | |||
| bcdc3ad90a | |||
| 21b315f2af | |||
| 6e695aac25 | |||
| f4b92e6acf | |||
| 2774af928a | |||
| 20b63174dc | |||
| f95f202f81 | |||
| f187f91f57 | |||
| 1cc3055481 | |||
| 4ca0f4da10 | |||
| 7273748c57 | |||
| 90a663facd | |||
| 1e5334f5d4 | |||
| 7c54fc9c46 | |||
| 29f1787af2 | |||
| c09817e08c | |||
| 0ea156042b | |||
| a61bbea4bd | |||
| 59af079cbd | |||
| 58ba573038 | |||
| e9dd8542d1 | |||
| 0af7c87277 | |||
| bbd8659f69 | |||
| 588d13a912 | |||
| 35e8a340ca | |||
| 423d430b58 | |||
| 1ff7869ec3 | |||
| f81007f74b | |||
| 2244dcd567 | |||
| 902be18a04 | |||
| ddbd92c274 | |||
| b526461a8e | |||
| f2474d074b | |||
| 42383ae871 | |||
| 7632f89157 | |||
| da988428cf | |||
| 2bd4a1b58c | |||
| 9e2bbcb8b6 | |||
| de347998d1 | |||
| 57a491357f | |||
| eacc3e67a5 | |||
| 4e0208dfba | |||
| a80f7432b7 | |||
| 1c8461bec7 | |||
| 8c00dac3c7 | |||
| f200c61897 | |||
| 6d918ea1f1 | |||
| 722edda83c | |||
| 2f2d48938e | |||
| e0ada1379f | |||
| 3e4913adce | |||
| f87754848e | |||
| 9e6e9d0910 | |||
| 38f54b4372 | |||
| 2e8d930250 | |||
| 4d776034ca | |||
| 2a09664ebc | |||
| 7508f02de5 | |||
| 460d1f2a15 | |||
| 839f0fbfcf | |||
| cbc8faf49b | |||
| efa0c97da9 | |||
| 4efed8a4dd | |||
| 036571e129 | |||
| 9f189ca71a | |||
| 7d803437e2 | |||
| 4e5a94efb7 | |||
| 9741b43dae | |||
| c343b36a39 | |||
| a5a2152ff4 | |||
| c054944d67 | |||
| 42d20cbd96 | |||
| 0d7708430d | |||
| 96d2fc840b | |||
| 49e88b267a | |||
| 3aaba79b87 | |||
| 10900c918f | |||
| e808c7f956 | |||
| fcc4a84e0e | |||
| 33fe9a2761 | |||
| df228a3c10 | |||
| eccadd92fb | |||
| 69cdb4a76c | |||
| 6536b4766c | |||
| 50a9a6e1f7 | |||
| d89d0e6b74 | |||
| 183f4fe9a5 | |||
| 0844a5c478 | |||
| f9dd1324da | |||
| 8049c07a34 | |||
| e476cfcec5 | |||
| 3233bedc7a | |||
| 0ce32f7be1 | |||
| 098102220e | |||
| f0376f1379 | |||
| a427d0c0e7 | |||
| 5813164d15 | |||
| 1426a4f3cf | |||
| e06d37090a | |||
| 3bfe5fb84b | |||
| ed27c50692 | |||
| f7d35cf94b | |||
| 15bba27406 | |||
| 5e556f0c6a | |||
| e046e8f593 | |||
| e687d14903 | |||
| d281f051ed | |||
| a967adbf26 | |||
| 9e00f48efc | |||
| b6674e3bcb | |||
| ff6a8cd537 | |||
| 782b8227fa | |||
| b351e70d13 | |||
| 62811d3209 | |||
| c994961ebf | |||
| b03e9061ff | |||
| 0445a9913f | |||
| f6d0166584 | |||
| 1a007c3e4b | |||
| e885d739a4 | |||
| 8e812c012d | |||
| 17b3b8f30d | |||
| 5e2cf51309 | |||
| a461eae8b9 | |||
| 64ba866146 | |||
| 6e8dd598c0 | |||
| 1a9aa2e92d | |||
| e2c12d8c25 | |||
| 223e24f423 | |||
| 2b3b26b502 | |||
| ed4c9f7ddb | |||
| dffd1179c5 | |||
| 957f868e2f | |||
| 77fe7d8325 | |||
| 5b226f6c96 | |||
| eca9cc35c6 | |||
| a92bb94612 | |||
| f2d9887409 | |||
| 5113c3cc58 | |||
| 954998ec9a | |||
| e9c1cd2371 | |||
| d88126e519 | |||
| f274e0f68b | |||
| d0bc84bcbf | |||
| 2bcf38d2b6 | |||
| cc18464f8f | |||
| 3d7c070faf | |||
| 6ad97e5b5b | |||
| 02fca8e0df | |||
| f4ba3cd910 | |||
| 4214437d18 | |||
| 7030c7d948 | |||
| 105825c058 | |||
| 3a8ffd66ca | |||
| 8e2ef339b6 | |||
| 0772b54845 | |||
| c88fd514a0 | |||
| 45aa514591 | |||
| c1c5afad67 | |||
| c5effadb2a | |||
| 68e6308066 | |||
| acf6c0ae2c | |||
| 371149756d | |||
| e312e2b286 | |||
| ce84c19a38 | |||
| 427f0aed78 | |||
| 4bd661add7 | |||
| 03214b5dea | |||
| 2a00fc962b | |||
| 8cc3c6f159 | |||
| ead5bfe64b | |||
| 460909ea9a | |||
| ecfa05e2ca | |||
| 32c86a4ca4 | |||
| 4d3e86d795 | |||
| 895d4c9e1a | |||
| 03bce55403 | |||
| 1437e56b72 | |||
| c135158364 | |||
| 6cdde97e6f | |||
| 6d4fbcd5bb | |||
| a07caac85a | |||
| ef3f773f84 | |||
| d5f136cd7e | |||
| dacab4abe0 | |||
| 1d2db311b2 | |||
| ad5a1fd963 | |||
| b63fab92cf | |||
| 91bf08df1a | |||
| 078fdb9077 | |||
| 77706a7ea6 | |||
| eadf6d93bc | |||
| 67bdf61682 | |||
| 94a948fdd1 | |||
| fc7f5630c7 | |||
| 734e61d4c2 | |||
| 68c2f06074 | |||
| dec5d80180 | |||
| 9ea7fe5338 | |||
| 3e7969ab8d | |||
| 3bdd69ad6b | |||
| 822cd9c6ef | |||
| 94470f7da6 | |||
| 2529346940 | |||
| 203019d959 | |||
| dae41b7460 | |||
| 2d7ef9813f | |||
| d70ae19cb8 | |||
| ab2281d26f | |||
| 3d9b5daf9c | |||
| c1ee395303 | |||
| c162ff9076 | |||
| 6ff1919ae0 | |||
| 49d8c29608 | |||
| 69a66fc826 | |||
| df600fc1a2 | |||
| 0021ecf51e | |||
| 76e0622222 | |||
| 8ae0579436 | |||
| e7d32c54b9 | |||
| ca7aec2d4e | |||
| 4020b5689b | |||
| 3c11b89e4c | |||
| 63db3f7c17 | |||
| 17e88d0944 | |||
| 0fae86b1ba | |||
| 232b1c799f | |||
| 3b46253056 | |||
| 8c9244e677 | |||
| e28c937a5c | |||
| 1c93b122f1 | |||
| 1a031e771f | |||
| e90452d0e2 | |||
| b7c12b238f | |||
| 2144c6c97d | |||
| aa53b5508e | |||
| 105520b235 | |||
| a0981d06a7 | |||
| 9ef442b3a3 | |||
| 2048114512 | |||
| 541c2fdb29 | |||
| 86d32fa34d | |||
| 89d2e67e45 | |||
| 707e7b4b65 | |||
| 7cf394e34f | |||
| f056777e6a | |||
| fe1c2310e4 | |||
| 3d33cba574 | |||
| 37ae0bf809 | |||
| 59e6d3bf22 | |||
| cf69cb5637 | |||
| bf051b5c41 | |||
| 94ba1bcb87 | |||
| c78c3c8198 | |||
| d88df890ed | |||
| 257d9b5fe9 | |||
| 9c00a7a5c3 | |||
| adf3637476 | |||
| dd17f24c04 | |||
| 3b194d6993 | |||
| 0997ecf446 | |||
| 3f32dc9a64 | |||
| 0b33df8831 | |||
| 8548e69382 | |||
| 124dd5e59a | |||
| d361e68d0e | |||
| a1c162e59f | |||
| 77f15eeeaf | |||
| 52e3a1d7c4 | |||
| b6c0aeb608 | |||
| cf63ae7ae2 | |||
| c8118e3ce4 | |||
| bd487d2c25 | |||
| 2162b53d72 | |||
| c07de84c05 | |||
| e5753b79d4 | |||
| a81512ca96 | |||
| 27e6f5b9e8 | |||
| 3cb6dc69f0 | |||
| a300ae105d | |||
| 196ddec81c | |||
| 24bf838392 | |||
| 4a9f82109a | |||
| 684bb62fd8 | |||
| 97063440bb | |||
| 615c49315f | |||
| 1ae47b6069 | |||
| b6a0bf1142 | |||
| dfee7bddd3 | |||
| d928aa9780 | |||
| 87f303319c | |||
| e563184eac | |||
| ea43866563 | |||
| 2aad4a5e57 | |||
| 1ccef6dc80 | |||
| 0f39d4907f | |||
| 30f7d6a2c1 | |||
| ee14da3093 | |||
| 0aa8458d04 | |||
| de4b2dea77 | |||
| 3a1b412fbf | |||
| 95635804bf | |||
| ec2c571abb | |||
| ff8b7cc6c1 | |||
| 99e57724e6 | |||
| 5a0944e9a0 | |||
| d5990100e1 | |||
| ce254d1061 | |||
| 0fb956cdbe | |||
| a6a6785316 | |||
| 591894c7e6 | |||
| d8cc2f8280 | |||
| d90d0780ae | |||
| 77284e82c8 | |||
| 75366bce74 | |||
| 5ac96c6127 | |||
| 120ab06db4 | |||
| d2cb0ca75f | |||
| 3ace73fbdd | |||
| 920d9e3d46 | |||
| ca25f352ce | |||
| 52246121b9 | |||
| 8a9b82c2a2 | |||
| b11f9fc873 | |||
| db0523626c | |||
| 948a61711d | |||
| 9e240db80c | |||
| 7ee12d674e | |||
| 88faac309f | |||
| 4eb30f6b85 | |||
| 6f1c3f5ef8 | |||
| b0674b8802 | |||
| fe6bc411dd | |||
| 940aef77af | |||
| 32e82f8d87 | |||
| 3eef4bceac | |||
| e7900e994d | |||
| 5ebec518d0 | |||
| 0d2dd48cad | |||
| abc605fcfa | |||
| 3c27617782 | |||
| 8b30cd4389 | |||
| 428e7a900b | |||
| 6f4d1345f3 | |||
| 5eb2a33498 | |||
| f20a1314ff | |||
| 33e594e63e | |||
| b9a8680735 | |||
| a8b8c73ab8 | |||
| ee3bac5a32 | |||
| 8b2b06c926 | |||
| 81d4a45e73 | |||
| 3da5396c8d | |||
| 8e2d82ebdb | |||
| 9d97c053b4 | |||
| 0f1ab3be2d | |||
| 2466b4363d | |||
| f1882f333e | |||
| 74ace97249 | |||
| 05ed906aea | |||
| babdc9fd7b | |||
| 9589427960 | |||
| 4bc7e6fdfa | |||
| b687a178ef | |||
| b15da3c656 | |||
| 65af2c8b6c | |||
| 4d10183e78 | |||
| 82d4029831 | |||
| e98debfeb2 | |||
| 3c714f1d8c | |||
| 7b9f186464 | |||
| 54bfeb742c | |||
| 464fa820b1 | |||
| 9cd2e65787 | |||
| 5cf82f1a9e | |||
| c8c0b89eef | |||
| 83c7e7fc65 | |||
| 8985badc64 | |||
| a611269975 | |||
| d29ee13fda | |||
| 7170720f3c | |||
| b00413b7d6 | |||
| a7270f8c1c | |||
| a69cdf1793 | |||
| 37edf0e9a6 | |||
| 49d75e2383 | |||
| ad76ebd82a | |||
| 2447933b54 | |||
| e5de787f88 | |||
| 54aed9b17e | |||
| 444050c7d5 | |||
| e1d3df54eb | |||
| 3536840f52 | |||
| d6b8e9e037 | |||
| b7017167f0 | |||
| dd3252445d | |||
| b681e4a68e | |||
| edd94ce2d6 | |||
| 11f03c8551 | |||
| 9e5bc5d2d3 | |||
| bbcea3c98d | |||
| c1c4a0925d | |||
| 175a2bc0b4 | |||
| aef369f4af | |||
| 567bdd9b9d | |||
| ff73f69d3e | |||
| ab74445df4 | |||
| fdfe5eabfb | |||
| ecb168f7a7 | |||
| a7c8df5666 | |||
| b889ecaab2 | |||
| 4896daaae5 | |||
| e286ca170d | |||
| 7c04b3dbeb | |||
| ad5369fb1f | |||
| 432e12effd | |||
| 078320e2fb | |||
| 07c61be7f0 | |||
| 0943c176a3 | |||
| d6f565e452 | |||
| fb0b1f2617 | |||
| efeb87fdf9 | |||
| 2121142d3c | |||
| b558366a4e | |||
| 0de25e557b | |||
| f96d16eba3 | |||
| 5619cc41f9 | |||
| 59d9a9f454 | |||
| 7e34a5a106 | |||
| cf7639b4da | |||
| 79bacd15e1 | |||
| bec2d7861e | |||
| a1ee5405aa | |||
| 353d9d7c9e | |||
| 2bd2cf6a6b | |||
| aef0221d3b | |||
| ec24981cc8 | |||
| 3692c511d0 | |||
| 3fc681c1b7 | |||
| 23086deccd | |||
| 6006703798 | |||
| c61ec8ee3b | |||
| 94fa734c61 | |||
| 80cf4ec5cb | |||
| 61567d3917 | |||
| d259459a14 | |||
| d25d62295a | |||
| b9944e2c06 | |||
| 9bfce26ce7 | |||
| 00a9b662f7 |
+19
@@ -59,6 +59,16 @@ demos/**/*-bak
|
||||
demos/**/_autosave-*
|
||||
demos/**/fp-info-cache
|
||||
|
||||
# MacOS package info created by CMake
|
||||
bitmap2component/Info.plist
|
||||
cvpcb/Info.plist
|
||||
eeschema/Info.plist
|
||||
gerbview/Info.plist
|
||||
kicad/Info.plist
|
||||
pagelayout_editor/Info.plist
|
||||
pcb_calculator/Info.plist
|
||||
pcbnew/Info.plist
|
||||
|
||||
# editor/OS fluff
|
||||
.*.swp
|
||||
*~
|
||||
@@ -76,3 +86,12 @@ demos/**/fp-info-cache
|
||||
*.gch
|
||||
*.orig
|
||||
*.patch
|
||||
|
||||
# These CMake files are wanted
|
||||
!CMakeModules/*.cmake
|
||||
|
||||
# Eclipse IDE
|
||||
.project
|
||||
.cproject
|
||||
.pydevproject
|
||||
__pycache__
|
||||
|
||||
@@ -40,6 +40,12 @@ CACHE_WRAPPER::~CACHE_WRAPPER()
|
||||
}
|
||||
|
||||
|
||||
FILENAME_RESOLVER* PROJECT::Get3DFilenameResolver()
|
||||
{
|
||||
return Get3DCacheManager()->GetResolver();
|
||||
}
|
||||
|
||||
|
||||
S3D_CACHE* PROJECT::Get3DCacheManager( bool updateProjDir )
|
||||
{
|
||||
wxCriticalSectionLocker lock( lock3D_wrapper );
|
||||
|
||||
@@ -221,7 +221,7 @@ void DLG_SELECT_3DMODEL::OnFileActivated( wxTreeEvent& event )
|
||||
|
||||
void DLG_SELECT_3DMODEL::SetRootDir( wxCommandEvent& event )
|
||||
{
|
||||
if( m_FileTree )
|
||||
if( m_FileTree && dirChoices->GetSelection() > 0 )
|
||||
m_FileTree->SetPath( dirChoices->GetString( dirChoices->GetSelection() ) );
|
||||
|
||||
return;
|
||||
@@ -263,21 +263,31 @@ void DLG_SELECT_3DMODEL::updateDirChoiceList( void )
|
||||
|
||||
if( !cl.empty() )
|
||||
{
|
||||
unsigned int choice = 0;
|
||||
dirChoices->Clear();
|
||||
dirChoices->Append( "" ); //Insert a blank string at the beginning to allow selection
|
||||
|
||||
if( !prjDir.empty() )
|
||||
{
|
||||
dirChoices->Append( prjDir );
|
||||
|
||||
if( prjDir == m_FileTree->GetPath() )
|
||||
choice = 1;
|
||||
}
|
||||
|
||||
std::set< wxString >::const_iterator sI = cl.begin();
|
||||
std::set< wxString >::const_iterator eI = cl.end();
|
||||
|
||||
while( sI != eI )
|
||||
{
|
||||
if( *sI == m_FileTree->GetPath() )
|
||||
choice = dirChoices->GetCount();
|
||||
|
||||
dirChoices->Append( *sI );
|
||||
++sI;
|
||||
}
|
||||
|
||||
dirChoices->Select( 0 );
|
||||
dirChoices->Select( choice );
|
||||
}
|
||||
|
||||
return;
|
||||
|
||||
@@ -24,20 +24,12 @@
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
/**
|
||||
* @file panel_prev_model.cpp
|
||||
*/
|
||||
|
||||
#include "panel_prev_model.h"
|
||||
|
||||
#include <3d_canvas/eda_3d_canvas.h>
|
||||
#include <common_ogl/cogl_att_list.h>
|
||||
|
||||
#include <class_board.h>
|
||||
|
||||
#include <base_units.h>
|
||||
#include <bitmaps.h>
|
||||
#include <class_drawpanel.h>
|
||||
#include <dpi_scaling.h>
|
||||
#include <pgm_base.h>
|
||||
#include <project.h>
|
||||
@@ -52,7 +44,7 @@ PANEL_PREV_3D::PANEL_PREV_3D( wxWindow* aParent, PCB_BASE_FRAME* aFrame, MODULE*
|
||||
initPanel();
|
||||
|
||||
// Initialize the color settings to draw the board and the footprint
|
||||
m_dummyBoard->SetColorsSettings( &aFrame->Settings().Colors() );
|
||||
m_dummyBoard->SetGeneralSettings( &aFrame->Settings() );
|
||||
|
||||
m_parentModelList = aParentModelList;
|
||||
|
||||
@@ -108,8 +100,8 @@ void PANEL_PREV_3D::initPanel()
|
||||
m_spinXoffset,m_spinYoffset, m_spinZoffset
|
||||
};
|
||||
|
||||
for( int ii = 0; ii < 9; ii++ )
|
||||
spinButtonList[ii]->SetRange( INT_MIN, INT_MAX );
|
||||
for( wxSpinButton* button : spinButtonList )
|
||||
button->SetRange(INT_MIN, INT_MAX );
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -50,8 +50,8 @@
|
||||
#define SCALE_INCREMENT_FINE 0.02
|
||||
#define SCALE_INCREMENT 0.1
|
||||
|
||||
#define ROTATION_INCREMENT 5 // in degrees, for spin button command
|
||||
#define ROTATION_INCREMENT_WHEEL 15 // in degrees, for mouse wheel command
|
||||
#define ROTATION_INCREMENT 90 // in degrees, for spin button command
|
||||
#define ROTATION_INCREMENT_WHEEL 90 // in degrees, for mouse wheel command
|
||||
#define ROTATION_INCREMENT_WHEEL_FINE 1 // in degrees, for mouse wheel command
|
||||
|
||||
#define OFFSET_INCREMENT_MM 0.5
|
||||
|
||||
@@ -65,8 +65,7 @@ CINFO3D_VISU::CINFO3D_VISU() :
|
||||
m_boardSize = wxSize();
|
||||
m_boardCenter = SFVEC3F( 0.0f );
|
||||
|
||||
m_boardBoudingBox.Reset();
|
||||
m_board2dBBox3DU.Reset();
|
||||
m_boardBoundingBox.Reset();
|
||||
|
||||
m_layers_container2D.clear();
|
||||
m_layers_holes2D.clear();
|
||||
@@ -416,7 +415,7 @@ void CINFO3D_VISU::InitSettings( REPORTER *aStatusTextReporter )
|
||||
boardMin.z = m_layerZcoordTop[B_Adhes];
|
||||
boardMax.z = m_layerZcoordTop[F_Adhes];
|
||||
|
||||
m_boardBoudingBox = CBBOX( boardMin, boardMax );
|
||||
m_boardBoundingBox = CBBOX( boardMin, boardMax );
|
||||
|
||||
#ifdef PRINT_STATISTICS_3D_VIEWER
|
||||
unsigned stats_startCreateBoardPolyTime = GetRunningMicroSecs();
|
||||
@@ -462,8 +461,6 @@ void CINFO3D_VISU::createBoardPolygon()
|
||||
errmsg.append( _( "Cannot determine the board outline." ) );
|
||||
wxLogMessage( errmsg );
|
||||
}
|
||||
|
||||
Polygon_Calc_BBox_3DU( m_board_poly, m_board2dBBox3DU, m_biuTo3Dunits );
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -144,7 +144,7 @@ class CINFO3D_VISU
|
||||
* @brief GetBBox3DU - Get the bbox of the pcb board
|
||||
* @return the board bbox in 3d units
|
||||
*/
|
||||
const CBBOX &GetBBox3DU() const { return m_boardBoudingBox; }
|
||||
const CBBOX &GetBBox3DU() const { return m_boardBoundingBox; }
|
||||
|
||||
/**
|
||||
* @brief GetEpoxyThickness3DU - Get the current epoxy thickness
|
||||
@@ -425,10 +425,6 @@ class CINFO3D_VISU
|
||||
// Helper functions to create the board
|
||||
COBJECT2D *createNewTrack( const TRACK* aTrack , int aClearanceValue ) const;
|
||||
|
||||
void createNewPad( const D_PAD* aPad,
|
||||
CGENERICCONTAINER2D *aDstContainer,
|
||||
wxSize aInflateValue ) const;
|
||||
|
||||
void createNewPadWithClearance( const D_PAD *aPad,
|
||||
CGENERICCONTAINER2D *aDstContainer,
|
||||
wxSize aClearanceValue ) const;
|
||||
@@ -482,7 +478,7 @@ class CINFO3D_VISU
|
||||
SHAPE_POLY_SET &aCornerBuffer,
|
||||
int aWidth) const;
|
||||
|
||||
void transformPadsShapesWithClearanceToPolygon( const DLIST<D_PAD> &aPads,
|
||||
void transformPadsShapesWithClearanceToPolygon( const PADS &aPads,
|
||||
PCB_LAYER_ID aLayer,
|
||||
SHAPE_POLY_SET &aCornerBuffer,
|
||||
int aInflateValue,
|
||||
@@ -494,12 +490,10 @@ class CINFO3D_VISU
|
||||
|
||||
void buildPadShapePolygon( const D_PAD *aPad,
|
||||
SHAPE_POLY_SET &aCornerBuffer,
|
||||
wxSize aInflateValue,
|
||||
int aSegmentsPerCircle,
|
||||
double aCorrectionFactor ) const;
|
||||
wxSize aInflateValue ) const;
|
||||
|
||||
|
||||
public:
|
||||
public:
|
||||
SFVEC3D m_BgColorBot; ///< background bottom color
|
||||
SFVEC3D m_BgColorTop; ///< background top color
|
||||
SFVEC3D m_BoardBodyColor; ///< in realistic mode: FR4 board color
|
||||
@@ -509,7 +503,7 @@ class CINFO3D_VISU
|
||||
SFVEC3D m_CopperColor; ///< in realistic mode: copper color
|
||||
|
||||
|
||||
private:
|
||||
private:
|
||||
|
||||
/// Current board
|
||||
BOARD *m_board;
|
||||
@@ -547,11 +541,8 @@ class CINFO3D_VISU
|
||||
|
||||
// Pcb board bounding boxes
|
||||
|
||||
/// 3d bouding box of the pcb board in 3d units
|
||||
CBBOX m_boardBoudingBox;
|
||||
|
||||
/// 2d bouding box of the pcb board in 3d units
|
||||
CBBOX2D m_board2dBBox3DU;
|
||||
/// 3d bounding box of the pcb board in 3d units
|
||||
CBBOX m_boardBoundingBox;
|
||||
|
||||
/// It contains polygon contours for each layer
|
||||
MAP_POLY m_layers_poly;
|
||||
|
||||
@@ -50,7 +50,7 @@
|
||||
#include <class_text_mod.h>
|
||||
#include <convert_basic_shapes_to_polygon.h>
|
||||
#include <trigo.h>
|
||||
#include <draw_graphic_text.h>
|
||||
#include <gr_text.h>
|
||||
#include <utility>
|
||||
#include <vector>
|
||||
|
||||
@@ -62,13 +62,11 @@
|
||||
static int s_textWidth;
|
||||
static CGENERICCONTAINER2D *s_dstcontainer = NULL;
|
||||
static float s_biuTo3Dunits;
|
||||
static const CBBOX2D *s_boardBBox3DU = NULL;
|
||||
static const BOARD_ITEM *s_boardItem = NULL;
|
||||
|
||||
// This is a call back function, used by DrawGraphicText to draw the 3D text shape:
|
||||
// This is a call back function, used by GRText to draw the 3D text shape:
|
||||
void addTextSegmToContainer( int x0, int y0, int xf, int yf, void* aData )
|
||||
{
|
||||
wxASSERT( s_boardBBox3DU != NULL );
|
||||
wxASSERT( s_dstcontainer != NULL );
|
||||
|
||||
const SFVEC2F start3DU( x0 * s_biuTo3Dunits, -y0 * s_biuTo3Dunits );
|
||||
@@ -76,7 +74,7 @@ void addTextSegmToContainer( int x0, int y0, int xf, int yf, void* aData )
|
||||
|
||||
if( Is_segment_a_circle( start3DU, end3DU ) )
|
||||
s_dstcontainer->Add( new CFILLEDCIRCLE2D( start3DU,
|
||||
s_textWidth * s_biuTo3Dunits,
|
||||
( s_textWidth / 2 ) * s_biuTo3Dunits,
|
||||
*s_boardItem) );
|
||||
else
|
||||
s_dstcontainer->Add( new CROUNDSEGMENT2D( start3DU,
|
||||
@@ -89,52 +87,46 @@ void addTextSegmToContainer( int x0, int y0, int xf, int yf, void* aData )
|
||||
// Based on
|
||||
// void TEXTE_PCB::TransformShapeWithClearanceToPolygonSet
|
||||
// board_items_to_polygon_shape_transform.cpp
|
||||
void CINFO3D_VISU::AddShapeWithClearanceToContainer( const TEXTE_PCB* aTextPCB,
|
||||
void CINFO3D_VISU::AddShapeWithClearanceToContainer( const TEXTE_PCB* aText,
|
||||
CGENERICCONTAINER2D *aDstContainer,
|
||||
PCB_LAYER_ID aLayerId,
|
||||
int aClearanceValue )
|
||||
{
|
||||
wxSize size = aTextPCB->GetTextSize();
|
||||
wxSize size = aText->GetTextSize();
|
||||
|
||||
if( aTextPCB->IsMirrored() )
|
||||
if( aText->IsMirrored() )
|
||||
size.x = -size.x;
|
||||
|
||||
s_boardItem = (const BOARD_ITEM *)&aTextPCB;
|
||||
s_boardItem = (const BOARD_ITEM *) &aText;
|
||||
s_dstcontainer = aDstContainer;
|
||||
s_textWidth = aTextPCB->GetThickness() + ( 2 * aClearanceValue );
|
||||
s_textWidth = aText->GetThickness() + ( 2 * aClearanceValue );
|
||||
s_biuTo3Dunits = m_biuTo3Dunits;
|
||||
s_boardBBox3DU = &m_board2dBBox3DU;
|
||||
|
||||
// not actually used, but needed by DrawGraphicText
|
||||
// not actually used, but needed by GRText
|
||||
const COLOR4D dummy_color = COLOR4D::BLACK;
|
||||
|
||||
if( aTextPCB->IsMultilineAllowed() )
|
||||
if( aText->IsMultilineAllowed() )
|
||||
{
|
||||
wxArrayString strings_list;
|
||||
wxStringSplit( aTextPCB->GetShownText(), strings_list, '\n' );
|
||||
wxStringSplit( aText->GetShownText(), strings_list, '\n' );
|
||||
std::vector<wxPoint> positions;
|
||||
positions.reserve( strings_list.Count() );
|
||||
aTextPCB->GetPositionsOfLinesOfMultilineText( positions,
|
||||
strings_list.Count() );
|
||||
aText->GetPositionsOfLinesOfMultilineText( positions, strings_list.Count() );
|
||||
|
||||
for( unsigned ii = 0; ii < strings_list.Count(); ++ii )
|
||||
{
|
||||
wxString txt = strings_list.Item( ii );
|
||||
|
||||
DrawGraphicText( NULL, NULL, positions[ii], dummy_color,
|
||||
txt, aTextPCB->GetTextAngle(), size,
|
||||
aTextPCB->GetHorizJustify(), aTextPCB->GetVertJustify(),
|
||||
aTextPCB->GetThickness(), aTextPCB->IsItalic(),
|
||||
true, addTextSegmToContainer );
|
||||
GRText( NULL, positions[ii], dummy_color, txt, aText->GetTextAngle(), size,
|
||||
aText->GetHorizJustify(), aText->GetVertJustify(), aText->GetThickness(),
|
||||
aText->IsItalic(), true, addTextSegmToContainer );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
DrawGraphicText( NULL, NULL, aTextPCB->GetTextPos(), dummy_color,
|
||||
aTextPCB->GetShownText(), aTextPCB->GetTextAngle(), size,
|
||||
aTextPCB->GetHorizJustify(), aTextPCB->GetVertJustify(),
|
||||
aTextPCB->GetThickness(), aTextPCB->IsItalic(),
|
||||
true, addTextSegmToContainer );
|
||||
GRText( NULL, aText->GetTextPos(), dummy_color, aText->GetShownText(),
|
||||
aText->GetTextAngle(), size, aText->GetHorizJustify(), aText->GetVertJustify(),
|
||||
aText->GetThickness(), aText->IsItalic(), true, addTextSegmToContainer );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -184,9 +176,7 @@ void CINFO3D_VISU::AddGraphicsShapesWithClearanceToContainer( const MODULE* aMod
|
||||
std::vector<TEXTE_MODULE *> texts; // List of TEXTE_MODULE to convert
|
||||
EDGE_MODULE* outline;
|
||||
|
||||
for( EDA_ITEM* item = aModule->GraphicalItemsList();
|
||||
item != NULL;
|
||||
item = item->Next() )
|
||||
for( auto item : aModule->GraphicalItems() )
|
||||
{
|
||||
switch( item->Type() )
|
||||
{
|
||||
@@ -228,22 +218,18 @@ void CINFO3D_VISU::AddGraphicsShapesWithClearanceToContainer( const MODULE* aMod
|
||||
s_boardItem = (const BOARD_ITEM *)&aModule->Value();
|
||||
s_dstcontainer = aDstContainer;
|
||||
s_biuTo3Dunits = m_biuTo3Dunits;
|
||||
s_boardBBox3DU = &m_board2dBBox3DU;
|
||||
|
||||
for( unsigned ii = 0; ii < texts.size(); ++ii )
|
||||
for( TEXTE_MODULE* text : texts )
|
||||
{
|
||||
TEXTE_MODULE *textmod = texts[ii];
|
||||
s_textWidth = textmod->GetThickness() + ( 2 * aInflateValue );
|
||||
wxSize size = textmod->GetTextSize();
|
||||
s_textWidth = text->GetThickness() + ( 2 * aInflateValue );
|
||||
wxSize size = text->GetTextSize();
|
||||
|
||||
if( textmod->IsMirrored() )
|
||||
if( text->IsMirrored() )
|
||||
size.x = -size.x;
|
||||
|
||||
DrawGraphicText( NULL, NULL, textmod->GetTextPos(), BLACK,
|
||||
textmod->GetShownText(), textmod->GetDrawRotation(), size,
|
||||
textmod->GetHorizJustify(), textmod->GetVertJustify(),
|
||||
textmod->GetThickness(), textmod->IsItalic(),
|
||||
true, addTextSegmToContainer );
|
||||
GRText( NULL, text->GetTextPos(), BLACK, text->GetShownText(), text->GetDrawRotation(),
|
||||
size, text->GetHorizJustify(), text->GetVertJustify(), text->GetThickness(),
|
||||
text->IsItalic(), true, addTextSegmToContainer );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -491,6 +477,25 @@ void CINFO3D_VISU::createNewPadWithClearance( const D_PAD* aPad,
|
||||
}
|
||||
break;
|
||||
|
||||
case PAD_SHAPE_CHAMFERED_RECT:
|
||||
{
|
||||
wxSize shapesize( aPad->GetSize() );
|
||||
shapesize.x += aClearanceValue.x * 2;
|
||||
shapesize.y += aClearanceValue.y * 2;
|
||||
|
||||
SHAPE_POLY_SET polyList; // Will contain the pad outlines in board coordinates
|
||||
|
||||
int corner_radius = aPad->GetRoundRectCornerRadius( shapesize );
|
||||
TransformRoundChamferedRectToPolygon( polyList, PadShapePos, shapesize, aPad->GetOrientation(),
|
||||
corner_radius, aPad->GetChamferRectRatio(),
|
||||
aPad->GetChamferPositions(), ARC_HIGH_DEF );
|
||||
|
||||
// Add the PAD polygon
|
||||
Convert_shape_line_polygon_to_triangles( polyList, *aDstContainer, m_biuTo3Dunits, *aPad );
|
||||
|
||||
}
|
||||
break;
|
||||
|
||||
case PAD_SHAPE_CUSTOM:
|
||||
{
|
||||
SHAPE_POLY_SET polyList; // Will contain the pad outlines in board coordinates
|
||||
@@ -563,59 +568,15 @@ COBJECT2D *CINFO3D_VISU::createNewPadDrill( const D_PAD* aPad, int aInflateValue
|
||||
}
|
||||
|
||||
|
||||
// This function pretends to be like the
|
||||
// void D_PAD::BuildPadShapePolygon(
|
||||
// board_items_to_polygon_shape_transform.cpp
|
||||
void CINFO3D_VISU::createNewPad( const D_PAD* aPad,
|
||||
CGENERICCONTAINER2D *aDstContainer,
|
||||
wxSize aInflateValue ) const
|
||||
{
|
||||
switch( aPad->GetShape() )
|
||||
{
|
||||
case PAD_SHAPE_CIRCLE:
|
||||
case PAD_SHAPE_OVAL:
|
||||
case PAD_SHAPE_ROUNDRECT:
|
||||
case PAD_SHAPE_CUSTOM:
|
||||
createNewPadWithClearance( aPad, aDstContainer, aInflateValue );
|
||||
break;
|
||||
|
||||
case PAD_SHAPE_TRAPEZOID:
|
||||
case PAD_SHAPE_RECT:
|
||||
wxPoint corners[4];
|
||||
aPad->BuildPadPolygon( corners, aInflateValue, aPad->GetOrientation() );
|
||||
|
||||
// Note: for pad having a shape offset,
|
||||
// the pad position is NOT the shape position
|
||||
for( unsigned int ii = 0; ii < 4; ++ii )
|
||||
corners[ii] += aPad->ShapePos(); // Shift origin to position
|
||||
|
||||
aDstContainer->Add( new CPOLYGON4PTS2D(
|
||||
SFVEC2F( corners[0].x * m_biuTo3Dunits,
|
||||
-corners[0].y * m_biuTo3Dunits ),
|
||||
SFVEC2F( corners[1].x * m_biuTo3Dunits,
|
||||
-corners[1].y * m_biuTo3Dunits ),
|
||||
SFVEC2F( corners[2].x * m_biuTo3Dunits,
|
||||
-corners[2].y * m_biuTo3Dunits ),
|
||||
SFVEC2F( corners[3].x * m_biuTo3Dunits,
|
||||
-corners[3].y * m_biuTo3Dunits ),
|
||||
*aPad ) );
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void CINFO3D_VISU::AddPadsShapesWithClearanceToContainer( const MODULE* aModule,
|
||||
CGENERICCONTAINER2D *aDstContainer,
|
||||
PCB_LAYER_ID aLayerId,
|
||||
int aInflateValue,
|
||||
bool aSkipNPTHPadsWihNoCopper )
|
||||
{
|
||||
const D_PAD* pad = aModule->PadsList();
|
||||
|
||||
wxSize margin;
|
||||
|
||||
for( ; pad != NULL; pad = pad->Next() )
|
||||
for( auto pad : aModule->Pads() )
|
||||
{
|
||||
if( !pad->IsOnLayer( aLayerId ) )
|
||||
continue;
|
||||
@@ -664,7 +625,7 @@ void CINFO3D_VISU::AddPadsShapesWithClearanceToContainer( const MODULE* aModule,
|
||||
break;
|
||||
}
|
||||
|
||||
createNewPad( pad, aDstContainer, margin );
|
||||
createNewPadWithClearance( pad, aDstContainer, margin );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -763,14 +724,13 @@ void CINFO3D_VISU::AddShapeWithClearanceToContainer( const DRAWSEGMENT* aDrawSeg
|
||||
const SFVEC2F center3DU( aDrawSegment->GetCenter().x * m_biuTo3Dunits,
|
||||
-aDrawSegment->GetCenter().y * m_biuTo3Dunits );
|
||||
|
||||
const float inner_radius =
|
||||
std::max<float>( (aDrawSegment->GetRadius() - linewidth / 2) * m_biuTo3Dunits, 0.0 );
|
||||
const float outter_radius = (aDrawSegment->GetRadius() + linewidth / 2) * m_biuTo3Dunits;
|
||||
float inner_radius = ( aDrawSegment->GetRadius() - linewidth / 2 ) * m_biuTo3Dunits;
|
||||
float outer_radius = ( aDrawSegment->GetRadius() + linewidth / 2 ) * m_biuTo3Dunits;
|
||||
|
||||
aDstContainer->Add( new CRING2D( center3DU,
|
||||
inner_radius,
|
||||
outter_radius,
|
||||
*aDrawSegment ) );
|
||||
if( inner_radius < 0 )
|
||||
inner_radius = 0;
|
||||
|
||||
aDstContainer->Add( new CRING2D( center3DU, inner_radius, outer_radius, *aDrawSegment ) );
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -816,12 +776,9 @@ void CINFO3D_VISU::AddShapeWithClearanceToContainer( const DRAWSEGMENT* aDrawSeg
|
||||
case S_CURVE:
|
||||
case S_POLYGON:
|
||||
{
|
||||
const int segcountforcircle = ARC_APPROX_SEGMENTS_COUNT_HIGH_DEF;
|
||||
const double correctionFactor = GetCircleCorrectionFactor( segcountforcircle );
|
||||
SHAPE_POLY_SET polyList;
|
||||
|
||||
aDrawSegment->TransformShapeWithClearanceToPolygon( polyList, aClearanceValue,
|
||||
segcountforcircle, correctionFactor );
|
||||
aDrawSegment->TransformShapeWithClearanceToPolygon( polyList, aClearanceValue );
|
||||
|
||||
polyList.Simplify( SHAPE_POLY_SET::PM_FAST );
|
||||
|
||||
@@ -850,13 +807,16 @@ void CINFO3D_VISU::AddSolidAreasShapesToContainer( const ZONE_CONTAINER* aZoneCo
|
||||
SHAPE_POLY_SET polyList = SHAPE_POLY_SET( aZoneContainer->GetFilledPolysList(), true );
|
||||
|
||||
// This convert the poly in outline and holes
|
||||
Convert_shape_line_polygon_to_triangles( polyList,
|
||||
*aDstContainer,
|
||||
m_biuTo3Dunits,
|
||||
Convert_shape_line_polygon_to_triangles( polyList, *aDstContainer, m_biuTo3Dunits,
|
||||
*aZoneContainer );
|
||||
|
||||
// add filled areas outlines, which are drawn with thick lines segments
|
||||
// /////////////////////////////////////////////////////////////////////////
|
||||
// but only if filled polygons outlines have thickness
|
||||
if( !aZoneContainer->GetFilledPolysUseThickness() )
|
||||
return;
|
||||
|
||||
float line_thickness = aZoneContainer->GetMinThickness() * m_biuTo3Dunits;
|
||||
|
||||
for( int i = 0; i < polyList.OutlineCount(); ++i )
|
||||
{
|
||||
// Add outline
|
||||
@@ -872,17 +832,15 @@ void CINFO3D_VISU::AddSolidAreasShapesToContainer( const ZONE_CONTAINER* aZoneCo
|
||||
|
||||
if( Is_segment_a_circle( start3DU, end3DU ) )
|
||||
{
|
||||
float radius = (aZoneContainer->GetMinThickness() / 2) * m_biuTo3Dunits;
|
||||
float radius = line_thickness/2;
|
||||
|
||||
if( radius > 0.0 ) // degenerated circles crash 3D viewer
|
||||
aDstContainer->Add( new CFILLEDCIRCLE2D( start3DU, radius ,
|
||||
aDstContainer->Add( new CFILLEDCIRCLE2D( start3DU, radius,
|
||||
*aZoneContainer ) );
|
||||
}
|
||||
else
|
||||
{
|
||||
aDstContainer->Add( new CROUNDSEGMENT2D( start3DU, end3DU,
|
||||
aZoneContainer->GetMinThickness() *
|
||||
m_biuTo3Dunits,
|
||||
aDstContainer->Add( new CROUNDSEGMENT2D( start3DU, end3DU, line_thickness,
|
||||
*aZoneContainer ) );
|
||||
}
|
||||
}
|
||||
@@ -902,7 +860,7 @@ void CINFO3D_VISU::AddSolidAreasShapesToContainer( const ZONE_CONTAINER* aZoneCo
|
||||
|
||||
if( Is_segment_a_circle( start3DU, end3DU ) )
|
||||
{
|
||||
float radius = (aZoneContainer->GetMinThickness() / 2) * m_biuTo3Dunits;
|
||||
float radius = line_thickness/2;
|
||||
|
||||
if( radius > 0.0 ) // degenerated circles crash 3D viewer
|
||||
aDstContainer->Add(
|
||||
@@ -912,9 +870,7 @@ void CINFO3D_VISU::AddSolidAreasShapesToContainer( const ZONE_CONTAINER* aZoneCo
|
||||
else
|
||||
{
|
||||
aDstContainer->Add(
|
||||
new CROUNDSEGMENT2D( start3DU, end3DU,
|
||||
aZoneContainer->GetMinThickness() *
|
||||
m_biuTo3Dunits,
|
||||
new CROUNDSEGMENT2D( start3DU, end3DU, line_thickness,
|
||||
*aZoneContainer ) );
|
||||
}
|
||||
}
|
||||
@@ -934,28 +890,17 @@ void CINFO3D_VISU::buildPadShapeThickOutlineAsSegments( const D_PAD* aPad,
|
||||
-aPad->ShapePos().y * m_biuTo3Dunits );
|
||||
|
||||
const int radius = aPad->GetSize().x / 2;
|
||||
const float inner_radius = (radius - aWidth / 2) * m_biuTo3Dunits;
|
||||
const float outter_radius = (radius + aWidth / 2) * m_biuTo3Dunits;
|
||||
const float inner_radius = ( radius - aWidth / 2 ) * m_biuTo3Dunits;
|
||||
const float outer_radius = ( radius + aWidth / 2 ) * m_biuTo3Dunits;
|
||||
|
||||
aDstContainer->Add( new CRING2D( center3DU,
|
||||
inner_radius,
|
||||
outter_radius,
|
||||
*aPad ) );
|
||||
aDstContainer->Add( new CRING2D( center3DU, inner_radius, outer_radius, *aPad ) );
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
// For other shapes, draw polygon outlines
|
||||
SHAPE_POLY_SET corners;
|
||||
|
||||
const int segcountforcircle = GetNrSegmentsCircle( glm::min( aPad->GetSize().x,
|
||||
aPad->GetSize().y) );
|
||||
|
||||
const double correctionFactor = GetCircleCorrectionFactor( segcountforcircle );
|
||||
|
||||
aPad->BuildPadShapePolygon( corners, wxSize( 0, 0 ),
|
||||
// This two factors are only expected to be used if render an oval
|
||||
segcountforcircle, correctionFactor );
|
||||
aPad->BuildPadShapePolygon( corners, wxSize( 0, 0 ) );
|
||||
|
||||
|
||||
// Add outlines as thick segments in polygon buffer
|
||||
@@ -972,15 +917,13 @@ void CINFO3D_VISU::buildPadShapeThickOutlineAsSegments( const D_PAD* aPad,
|
||||
|
||||
if( Is_segment_a_circle( start3DU, end3DU ) )
|
||||
{
|
||||
aDstContainer->Add( new CFILLEDCIRCLE2D( start3DU,
|
||||
(aWidth / 2) * m_biuTo3Dunits,
|
||||
*aPad ) );
|
||||
aDstContainer->Add(
|
||||
new CFILLEDCIRCLE2D( start3DU, ( aWidth / 2 ) * m_biuTo3Dunits, *aPad ) );
|
||||
}
|
||||
else
|
||||
{
|
||||
aDstContainer->Add( new CROUNDSEGMENT2D( start3DU, end3DU,
|
||||
aWidth * m_biuTo3Dunits,
|
||||
*aPad ) );
|
||||
aDstContainer->Add(
|
||||
new CROUNDSEGMENT2D( start3DU, end3DU, aWidth * m_biuTo3Dunits, *aPad ) );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -140,17 +140,6 @@ void CINFO3D_VISU::destroyLayers()
|
||||
|
||||
void CINFO3D_VISU::createLayers( REPORTER *aStatusTextReporter )
|
||||
{
|
||||
// Number of segments to draw a circle using segments (used on countour zones
|
||||
// and text copper elements )
|
||||
const int segcountforcircle = 12;
|
||||
const double correctionFactor = GetCircleCorrectionFactor( segcountforcircle );
|
||||
|
||||
// segments to draw a circle to build texts. Is is used only to build
|
||||
// the shape of each segment of the stroke font, therefore no need to have
|
||||
// many segments per circle.
|
||||
const int segcountInStrokeFont = 12;
|
||||
const double correctionFactorStroke = GetCircleCorrectionFactor( segcountInStrokeFont );
|
||||
|
||||
destroyLayers();
|
||||
|
||||
// Build Copper layers
|
||||
@@ -177,9 +166,9 @@ void CINFO3D_VISU::createLayers( REPORTER *aStatusTextReporter )
|
||||
// /////////////////////////////////////////////////////////////////////////
|
||||
std::vector< const TRACK *> trackList;
|
||||
trackList.clear();
|
||||
trackList.reserve( m_board->m_Track.GetCount() );
|
||||
trackList.reserve( m_board->Tracks().size() );
|
||||
|
||||
for( const TRACK* track = m_board->m_Track; track; track = track->Next() )
|
||||
for( auto track : m_board->Tracks() )
|
||||
{
|
||||
if( !Is3DLayerEnabled( track->GetLayer() ) ) // Skip non enabled layers
|
||||
continue;
|
||||
@@ -393,7 +382,7 @@ void CINFO3D_VISU::createLayers( REPORTER *aStatusTextReporter )
|
||||
// Add VIA hole contourns
|
||||
// /////////////////////////////////////////////////////////
|
||||
|
||||
// Add outter holes of VIAs
|
||||
// Add outer holes of VIAs
|
||||
SHAPE_POLY_SET *layerOuterHolesPoly = NULL;
|
||||
SHAPE_POLY_SET *layerInnerHolesPoly = NULL;
|
||||
|
||||
@@ -425,15 +414,11 @@ void CINFO3D_VISU::createLayers( REPORTER *aStatusTextReporter )
|
||||
const int holediameter = via->GetDrillValue();
|
||||
const int hole_outer_radius = (holediameter / 2) + GetCopperThicknessBIU();
|
||||
|
||||
TransformCircleToPolygon( *layerOuterHolesPoly,
|
||||
via->GetStart(),
|
||||
hole_outer_radius,
|
||||
GetNrSegmentsCircle( hole_outer_radius * 2 ) );
|
||||
TransformCircleToPolygon( *layerOuterHolesPoly, via->GetStart(),
|
||||
hole_outer_radius, ARC_HIGH_DEF );
|
||||
|
||||
TransformCircleToPolygon( *layerInnerHolesPoly,
|
||||
via->GetStart(),
|
||||
holediameter / 2,
|
||||
GetNrSegmentsCircle( holediameter ) );
|
||||
TransformCircleToPolygon( *layerInnerHolesPoly, via->GetStart(),
|
||||
holediameter / 2, ARC_HIGH_DEF );
|
||||
}
|
||||
else if( lIdx == 0 ) // it only adds once the THT holes
|
||||
{
|
||||
@@ -442,22 +427,16 @@ void CINFO3D_VISU::createLayers( REPORTER *aStatusTextReporter )
|
||||
|
||||
// Add through hole contourns
|
||||
// /////////////////////////////////////////////////////////
|
||||
TransformCircleToPolygon( m_through_outer_holes_poly,
|
||||
via->GetStart(),
|
||||
hole_outer_radius,
|
||||
GetNrSegmentsCircle( hole_outer_radius * 2 ) );
|
||||
TransformCircleToPolygon( m_through_outer_holes_poly, via->GetStart(),
|
||||
hole_outer_radius, ARC_HIGH_DEF );
|
||||
|
||||
TransformCircleToPolygon( m_through_inner_holes_poly,
|
||||
via->GetStart(),
|
||||
holediameter / 2,
|
||||
GetNrSegmentsCircle( holediameter ) );
|
||||
TransformCircleToPolygon( m_through_inner_holes_poly, via->GetStart(),
|
||||
holediameter / 2, ARC_HIGH_DEF );
|
||||
|
||||
// Add samething for vias only
|
||||
|
||||
TransformCircleToPolygon( m_through_outer_holes_vias_poly,
|
||||
via->GetStart(),
|
||||
hole_outer_radius,
|
||||
GetNrSegmentsCircle( hole_outer_radius * 2 ) );
|
||||
TransformCircleToPolygon( m_through_outer_holes_vias_poly, via->GetStart(),
|
||||
hole_outer_radius, ARC_HIGH_DEF );
|
||||
|
||||
//TransformCircleToPolygon( m_through_inner_holes_vias_poly,
|
||||
// via->GetStart(),
|
||||
@@ -497,13 +476,7 @@ void CINFO3D_VISU::createLayers( REPORTER *aStatusTextReporter )
|
||||
continue;
|
||||
|
||||
// Add the track contour
|
||||
int nrSegments = GetNrSegmentsCircle( track->GetWidth() );
|
||||
|
||||
track->TransformShapeWithClearanceToPolygon(
|
||||
*layerPoly,
|
||||
0,
|
||||
nrSegments,
|
||||
GetCircleCorrectionFactor( nrSegments ) );
|
||||
track->TransformShapeWithClearanceToPolygon( *layerPoly, 0 );
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -515,11 +488,9 @@ void CINFO3D_VISU::createLayers( REPORTER *aStatusTextReporter )
|
||||
|
||||
// Add holes of modules
|
||||
// /////////////////////////////////////////////////////////////////////////
|
||||
for( const MODULE* module = m_board->m_Modules; module; module = module->Next() )
|
||||
for( auto module : m_board->Modules() )
|
||||
{
|
||||
const D_PAD* pad = module->PadsList();
|
||||
|
||||
for( ; pad; pad = pad->Next() )
|
||||
for( auto pad : module->Pads() )
|
||||
{
|
||||
const wxSize padHole = pad->GetDrillSize();
|
||||
|
||||
@@ -549,11 +520,9 @@ void CINFO3D_VISU::createLayers( REPORTER *aStatusTextReporter )
|
||||
|
||||
// Add contours of the pad holes (pads can be Circle or Segment holes)
|
||||
// /////////////////////////////////////////////////////////////////////////
|
||||
for( const MODULE* module = m_board->m_Modules; module; module = module->Next() )
|
||||
for( auto module : m_board->Modules() )
|
||||
{
|
||||
const D_PAD* pad = module->PadsList();
|
||||
|
||||
for( ; pad; pad = pad->Next() )
|
||||
for( auto pad : module->Pads() )
|
||||
{
|
||||
const wxSize padHole = pad->GetDrillSize();
|
||||
|
||||
@@ -563,28 +532,16 @@ void CINFO3D_VISU::createLayers( REPORTER *aStatusTextReporter )
|
||||
// The hole in the body is inflated by copper thickness.
|
||||
const int inflate = GetCopperThicknessBIU();
|
||||
|
||||
// we use the hole diameter to calculate the seg count.
|
||||
// for round holes, padHole.x == padHole.y
|
||||
// for oblong holes, the diameter is the smaller of (padHole.x, padHole.y)
|
||||
const int diam = std::min( padHole.x, padHole.y );
|
||||
|
||||
|
||||
if( pad->GetAttribute () != PAD_ATTRIB_HOLE_NOT_PLATED )
|
||||
{
|
||||
pad->BuildPadDrillShapePolygon( m_through_outer_holes_poly,
|
||||
inflate,
|
||||
GetNrSegmentsCircle( diam ) );
|
||||
pad->BuildPadDrillShapePolygon( m_through_outer_holes_poly, inflate );
|
||||
|
||||
pad->BuildPadDrillShapePolygon( m_through_inner_holes_poly,
|
||||
0,
|
||||
GetNrSegmentsCircle( diam ) );
|
||||
pad->BuildPadDrillShapePolygon( m_through_inner_holes_poly, 0 );
|
||||
}
|
||||
else
|
||||
{
|
||||
// If not plated, no copper.
|
||||
pad->BuildPadDrillShapePolygon( m_through_outer_holes_poly_NPTH,
|
||||
inflate,
|
||||
GetNrSegmentsCircle( diam ) );
|
||||
pad->BuildPadDrillShapePolygon( m_through_outer_holes_poly_NPTH, inflate );
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -605,7 +562,7 @@ void CINFO3D_VISU::createLayers( REPORTER *aStatusTextReporter )
|
||||
CBVHCONTAINER2D *layerContainer = m_layers_container2D[curr_layer_id];
|
||||
|
||||
// ADD PADS
|
||||
for( const MODULE* module = m_board->m_Modules; module; module = module->Next() )
|
||||
for( auto module : m_board->Modules() )
|
||||
{
|
||||
// Note: NPTH pads are not drawn on copper layers when the pad
|
||||
// has same shape as its hole
|
||||
@@ -642,25 +599,22 @@ void CINFO3D_VISU::createLayers( REPORTER *aStatusTextReporter )
|
||||
SHAPE_POLY_SET *layerPoly = m_layers_poly[curr_layer_id];
|
||||
|
||||
// ADD PADS
|
||||
for( const MODULE* module = m_board->m_Modules; module; module = module->Next() )
|
||||
for( auto module : m_board->Modules() )
|
||||
{
|
||||
// Construct polys
|
||||
// /////////////////////////////////////////////////////////////
|
||||
|
||||
// Note: NPTH pads are not drawn on copper layers when the pad
|
||||
// has same shape as its hole
|
||||
transformPadsShapesWithClearanceToPolygon( module->PadsList(),
|
||||
transformPadsShapesWithClearanceToPolygon( module->Pads(),
|
||||
curr_layer_id,
|
||||
*layerPoly,
|
||||
0,
|
||||
true );
|
||||
|
||||
// Micro-wave modules may have items on copper layers
|
||||
module->TransformGraphicTextWithClearanceToPolygonSet( curr_layer_id,
|
||||
*layerPoly,
|
||||
0,
|
||||
segcountforcircle,
|
||||
correctionFactor );
|
||||
module->TransformGraphicTextWithClearanceToPolygonSet(
|
||||
curr_layer_id, *layerPoly, 0 );
|
||||
|
||||
transformGraphicModuleEdgeToPolygonSet( module, curr_layer_id, *layerPoly );
|
||||
}
|
||||
@@ -690,7 +644,7 @@ void CINFO3D_VISU::createLayers( REPORTER *aStatusTextReporter )
|
||||
|
||||
switch( item->Type() )
|
||||
{
|
||||
case PCB_LINE_T: // should not exist on copper layers
|
||||
case PCB_LINE_T:
|
||||
{
|
||||
AddShapeWithClearanceToContainer( (DRAWSEGMENT*)item,
|
||||
layerContainer,
|
||||
@@ -749,31 +703,17 @@ void CINFO3D_VISU::createLayers( REPORTER *aStatusTextReporter )
|
||||
switch( item->Type() )
|
||||
{
|
||||
case PCB_LINE_T:
|
||||
{
|
||||
const int nrSegments =
|
||||
GetNrSegmentsCircle( item->GetBoundingBox().GetSizeMax() );
|
||||
|
||||
( (DRAWSEGMENT*) item )->TransformShapeWithClearanceToPolygon(
|
||||
*layerPoly,
|
||||
0,
|
||||
nrSegments,
|
||||
GetCircleCorrectionFactor( nrSegments ) );
|
||||
}
|
||||
break;
|
||||
( (DRAWSEGMENT*) item )->TransformShapeWithClearanceToPolygon( *layerPoly, 0 );
|
||||
break;
|
||||
|
||||
case PCB_TEXT_T:
|
||||
( (TEXTE_PCB*) item )->TransformShapeWithClearanceToPolygonSet(
|
||||
*layerPoly,
|
||||
0,
|
||||
segcountforcircle,
|
||||
correctionFactor );
|
||||
break;
|
||||
( (TEXTE_PCB*) item )->TransformShapeWithClearanceToPolygonSet( *layerPoly, 0 );
|
||||
break;
|
||||
|
||||
default:
|
||||
wxLogTrace( m_logTrace,
|
||||
wxT( "createLayers: item type: %d not implemented" ),
|
||||
item->Type() );
|
||||
break;
|
||||
wxLogTrace( m_logTrace, wxT( "createLayers: item type: %d not implemented" ),
|
||||
item->Type() );
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -846,7 +786,7 @@ void CINFO3D_VISU::createLayers( REPORTER *aStatusTextReporter )
|
||||
auto layerContainer = m_layers_poly.find( zone->GetLayer() );
|
||||
|
||||
if( layerContainer != m_layers_poly.end() )
|
||||
zone->TransformSolidAreasShapesToPolygonSet( *layerContainer->second, segcountforcircle, correctionFactor );
|
||||
zone->TransformSolidAreasShapesToPolygonSet( *layerContainer->second );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1034,22 +974,11 @@ void CINFO3D_VISU::createLayers( REPORTER *aStatusTextReporter )
|
||||
switch( item->Type() )
|
||||
{
|
||||
case PCB_LINE_T:
|
||||
{
|
||||
const unsigned int nr_segments =
|
||||
GetNrSegmentsCircle( item->GetBoundingBox().GetSizeMax() );
|
||||
|
||||
((DRAWSEGMENT*) item)->TransformShapeWithClearanceToPolygon( *layerPoly,
|
||||
0,
|
||||
nr_segments,
|
||||
0.0 );
|
||||
}
|
||||
( (DRAWSEGMENT*) item )->TransformShapeWithClearanceToPolygon( *layerPoly, 0 );
|
||||
break;
|
||||
|
||||
case PCB_TEXT_T:
|
||||
((TEXTE_PCB*) item)->TransformShapeWithClearanceToPolygonSet( *layerPoly,
|
||||
0,
|
||||
segcountInStrokeFont,
|
||||
1.0 );
|
||||
( (TEXTE_PCB*) item )->TransformShapeWithClearanceToPolygonSet( *layerPoly, 0 );
|
||||
break;
|
||||
|
||||
default:
|
||||
@@ -1060,49 +989,39 @@ void CINFO3D_VISU::createLayers( REPORTER *aStatusTextReporter )
|
||||
|
||||
// Add modules tech layers - objects
|
||||
// /////////////////////////////////////////////////////////////////////
|
||||
for( MODULE* module = m_board->m_Modules; module; module = module->Next() )
|
||||
for( auto module : m_board->Modules() )
|
||||
{
|
||||
if( (curr_layer_id == F_SilkS) || (curr_layer_id == B_SilkS) )
|
||||
{
|
||||
D_PAD* pad = module->PadsList();
|
||||
int linewidth = g_DrawDefaultLineThickness;
|
||||
|
||||
for( ; pad; pad = pad->Next() )
|
||||
for( auto pad : module->Pads() )
|
||||
{
|
||||
if( !pad->IsOnLayer( curr_layer_id ) )
|
||||
continue;
|
||||
|
||||
buildPadShapeThickOutlineAsSegments( pad,
|
||||
layerContainer,
|
||||
linewidth );
|
||||
buildPadShapeThickOutlineAsSegments( pad, layerContainer, linewidth );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
AddPadsShapesWithClearanceToContainer( module,
|
||||
layerContainer,
|
||||
curr_layer_id,
|
||||
0,
|
||||
false );
|
||||
AddPadsShapesWithClearanceToContainer(
|
||||
module, layerContainer, curr_layer_id, 0, false );
|
||||
}
|
||||
|
||||
AddGraphicsShapesWithClearanceToContainer( module,
|
||||
layerContainer,
|
||||
curr_layer_id,
|
||||
0 );
|
||||
AddGraphicsShapesWithClearanceToContainer( module, layerContainer, curr_layer_id, 0 );
|
||||
}
|
||||
|
||||
|
||||
// Add modules tech layers - contours
|
||||
// /////////////////////////////////////////////////////////////////////
|
||||
for( MODULE* module = m_board->m_Modules; module; module = module->Next() )
|
||||
for( auto module : m_board->Modules() )
|
||||
{
|
||||
if( (curr_layer_id == F_SilkS) || (curr_layer_id == B_SilkS) )
|
||||
{
|
||||
D_PAD* pad = module->PadsList();
|
||||
const int linewidth = g_DrawDefaultLineThickness;
|
||||
|
||||
for( ; pad; pad = pad->Next() )
|
||||
for( auto pad : module->Pads() )
|
||||
{
|
||||
if( !pad->IsOnLayer( curr_layer_id ) )
|
||||
continue;
|
||||
@@ -1112,20 +1031,12 @@ void CINFO3D_VISU::createLayers( REPORTER *aStatusTextReporter )
|
||||
}
|
||||
else
|
||||
{
|
||||
transformPadsShapesWithClearanceToPolygon( module->PadsList(),
|
||||
curr_layer_id,
|
||||
*layerPoly,
|
||||
0,
|
||||
false );
|
||||
transformPadsShapesWithClearanceToPolygon(
|
||||
module->Pads(), curr_layer_id, *layerPoly, 0, false );
|
||||
}
|
||||
|
||||
// On tech layers, use a poor circle approximation, only for texts (stroke font)
|
||||
module->TransformGraphicTextWithClearanceToPolygonSet( curr_layer_id,
|
||||
*layerPoly,
|
||||
0,
|
||||
segcountInStrokeFont,
|
||||
correctionFactorStroke,
|
||||
segcountInStrokeFont );
|
||||
module->TransformGraphicTextWithClearanceToPolygonSet( curr_layer_id, *layerPoly, 0 );
|
||||
|
||||
// Add the remaining things with dynamic seg count for circles
|
||||
transformGraphicModuleEdgeToPolygonSet( module, curr_layer_id, *layerPoly );
|
||||
@@ -1155,10 +1066,7 @@ void CINFO3D_VISU::createLayers( REPORTER *aStatusTextReporter )
|
||||
if( !zone->IsOnLayer( curr_layer_id ) )
|
||||
continue;
|
||||
|
||||
zone->TransformSolidAreasShapesToPolygonSet( *layerPoly,
|
||||
// Use the same segcount as stroke font
|
||||
segcountInStrokeFont,
|
||||
correctionFactorStroke );
|
||||
zone->TransformSolidAreasShapesToPolygonSet( *layerPoly );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
* This program source code file is part of KiCad, a free EDA CAD application.
|
||||
*
|
||||
* Copyright (C) 2015-2016 Mario Luzeiro <mrluzeiro@ua.pt>
|
||||
* Copyright (C) 1992-2016 KiCad Developers, see AUTHORS.txt for contributors.
|
||||
* Copyright (C) 1992-2019 KiCad Developers, see AUTHORS.txt for contributors.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
@@ -40,9 +40,7 @@
|
||||
// but it adds the rect/trapezoid shapes with a different winding
|
||||
void CINFO3D_VISU::buildPadShapePolygon( const D_PAD* aPad,
|
||||
SHAPE_POLY_SET& aCornerBuffer,
|
||||
wxSize aInflateValue,
|
||||
int aSegmentsPerCircle,
|
||||
double aCorrectionFactor ) const
|
||||
wxSize aInflateValue ) const
|
||||
{
|
||||
wxPoint corners[4];
|
||||
wxPoint PadShapePos = aPad->ShapePos(); /* Note: for pad having a shape offset,
|
||||
@@ -52,6 +50,7 @@ void CINFO3D_VISU::buildPadShapePolygon( const D_PAD* aPad,
|
||||
case PAD_SHAPE_CIRCLE:
|
||||
case PAD_SHAPE_OVAL:
|
||||
case PAD_SHAPE_ROUNDRECT:
|
||||
case PAD_SHAPE_CHAMFERED_RECT:
|
||||
{
|
||||
// We are using TransformShapeWithClearanceToPolygon to build the shape.
|
||||
// Currently, this method uses only the same inflate value for X and Y dirs.
|
||||
@@ -62,8 +61,7 @@ void CINFO3D_VISU::buildPadShapePolygon( const D_PAD* aPad,
|
||||
D_PAD dummy( *aPad );
|
||||
wxSize new_size = aPad->GetSize() + aInflateValue + aInflateValue;
|
||||
dummy.SetSize( new_size );
|
||||
dummy.TransformShapeWithClearanceToPolygon( aCornerBuffer, 0,
|
||||
aSegmentsPerCircle, aCorrectionFactor );
|
||||
dummy.TransformShapeWithClearanceToPolygon( aCornerBuffer, 0 );
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -89,8 +87,17 @@ void CINFO3D_VISU::buildPadShapePolygon( const D_PAD* aPad,
|
||||
case PAD_SHAPE_CUSTOM:
|
||||
{
|
||||
SHAPE_POLY_SET polyList; // Will contain the pad outlines in board coordinates
|
||||
auto inflate_val = std::max( aInflateValue.x, aInflateValue.y );
|
||||
|
||||
polyList.Append( aPad->GetCustomShapeAsPolygon() );
|
||||
aPad->CustomShapeAsPolygonToBoardPosition( &polyList, aPad->ShapePos(), aPad->GetOrientation() );
|
||||
|
||||
if( inflate_val > 0 )
|
||||
{
|
||||
int numSegs = GetNrSegmentsCircle( inflate_val );
|
||||
polyList.Inflate( inflate_val, numSegs );
|
||||
}
|
||||
|
||||
aCornerBuffer.Append( polyList );
|
||||
}
|
||||
break;
|
||||
@@ -104,11 +111,8 @@ void CINFO3D_VISU::buildPadShapeThickOutlineAsPolygon( const D_PAD* aPad,
|
||||
{
|
||||
if( aPad->GetShape() == PAD_SHAPE_CIRCLE ) // Draw a ring
|
||||
{
|
||||
unsigned int nr_sides_per_circle = GetNrSegmentsCircle( ( aPad->GetSize().x / 2 +
|
||||
aWidth / 2 ) * 2 );
|
||||
|
||||
TransformRingToPolygon( aCornerBuffer, aPad->ShapePos(),
|
||||
aPad->GetSize().x / 2, nr_sides_per_circle, aWidth );
|
||||
aPad->GetSize().x / 2, ARC_HIGH_DEF, aWidth );
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -116,11 +120,7 @@ void CINFO3D_VISU::buildPadShapeThickOutlineAsPolygon( const D_PAD* aPad,
|
||||
// For other shapes, draw polygon outlines
|
||||
SHAPE_POLY_SET corners;
|
||||
|
||||
unsigned int nr_sides_per_circle = GetNrSegmentsCircle( glm::min( aPad->GetSize().x,
|
||||
aPad->GetSize().y) );
|
||||
buildPadShapePolygon( aPad, corners, wxSize( 0, 0 ),
|
||||
nr_sides_per_circle,
|
||||
GetCircleCorrectionFactor( nr_sides_per_circle ) );
|
||||
buildPadShapePolygon( aPad, corners, wxSize( 0, 0 ) );
|
||||
|
||||
// Add outlines as thick segments in polygon buffer
|
||||
|
||||
@@ -131,26 +131,21 @@ void CINFO3D_VISU::buildPadShapeThickOutlineAsPolygon( const D_PAD* aPad,
|
||||
const VECTOR2I& a = path.CPoint( ii );
|
||||
const VECTOR2I& b = path.CPoint( ii + 1 );
|
||||
|
||||
TransformRoundedEndsSegmentToPolygon( aCornerBuffer,
|
||||
wxPoint( a.x, a.y ),
|
||||
wxPoint( b.x, b.y ),
|
||||
nr_sides_per_circle,
|
||||
aWidth );
|
||||
TransformRoundedEndsSegmentToPolygon( aCornerBuffer, wxPoint( a.x, a.y ),
|
||||
wxPoint( b.x, b.y ), ARC_HIGH_DEF, aWidth );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Based on the same function name in board_items_to_polyshape_transform.cpp
|
||||
// It was implemented here to allow dynamic segments count per pad shape
|
||||
void CINFO3D_VISU::transformPadsShapesWithClearanceToPolygon( const DLIST<D_PAD>& aPads, PCB_LAYER_ID aLayer,
|
||||
void CINFO3D_VISU::transformPadsShapesWithClearanceToPolygon( const PADS& aPads, PCB_LAYER_ID aLayer,
|
||||
SHAPE_POLY_SET& aCornerBuffer,
|
||||
int aInflateValue,
|
||||
bool aSkipNPTHPadsWihNoCopper ) const
|
||||
{
|
||||
const D_PAD* pad = aPads;
|
||||
|
||||
wxSize margin;
|
||||
for( ; pad != NULL; pad = pad->Next() )
|
||||
for( auto pad : aPads )
|
||||
{
|
||||
if( !pad->IsOnLayer(aLayer) )
|
||||
continue;
|
||||
@@ -199,11 +194,7 @@ void CINFO3D_VISU::transformPadsShapesWithClearanceToPolygon( const DLIST<D_PAD>
|
||||
break;
|
||||
}
|
||||
|
||||
unsigned int aCircleToSegmentsCount = GetNrSegmentsCircle( pad->GetSize().x );
|
||||
double aCorrectionFactor = GetCircleCorrectionFactor( aCircleToSegmentsCount );
|
||||
|
||||
buildPadShapePolygon( pad, aCornerBuffer, margin,
|
||||
aCircleToSegmentsCount, aCorrectionFactor );
|
||||
buildPadShapePolygon( pad, aCornerBuffer, margin );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -211,9 +202,7 @@ void CINFO3D_VISU::transformGraphicModuleEdgeToPolygonSet( const MODULE *aModule
|
||||
PCB_LAYER_ID aLayer,
|
||||
SHAPE_POLY_SET& aCornerBuffer ) const
|
||||
{
|
||||
for( const EDA_ITEM* item = aModule->GraphicalItemsList();
|
||||
item != NULL;
|
||||
item = item->Next() )
|
||||
for( auto item : aModule->GraphicalItems() )
|
||||
{
|
||||
switch( item->Type() )
|
||||
{
|
||||
@@ -224,15 +213,7 @@ void CINFO3D_VISU::transformGraphicModuleEdgeToPolygonSet( const MODULE *aModule
|
||||
if( outline->GetLayer() != aLayer )
|
||||
break;
|
||||
|
||||
unsigned int aCircleToSegmentsCount =
|
||||
GetNrSegmentsCircle( outline->GetBoundingBox().GetSizeMax() );
|
||||
|
||||
double aCorrectionFactor = GetCircleCorrectionFactor( aCircleToSegmentsCount );
|
||||
|
||||
outline->TransformShapeWithClearanceToPolygon( aCornerBuffer,
|
||||
0,
|
||||
aCircleToSegmentsCount,
|
||||
aCorrectionFactor );
|
||||
outline->TransformShapeWithClearanceToPolygon( aCornerBuffer, 0 );
|
||||
}
|
||||
break;
|
||||
|
||||
|
||||
@@ -45,6 +45,8 @@
|
||||
#include <hotkeys_basic.h>
|
||||
#include <menus_helpers.h>
|
||||
|
||||
#include <widgets/wx_busy_indicator.h>
|
||||
|
||||
|
||||
/**
|
||||
* Flag to enable 3D canvas debug tracing.
|
||||
@@ -141,6 +143,11 @@ EDA_3D_CANVAS::EDA_3D_CANVAS( wxWindow *aParent,
|
||||
wxASSERT( m_3d_render_raytracing != NULL );
|
||||
wxASSERT( m_3d_render_ogl_legacy != NULL );
|
||||
|
||||
auto busy_indicator_factory = []() { return std::make_unique<WX_BUSY_INDICATOR>(); };
|
||||
|
||||
m_3d_render_raytracing->SetBusyIndicatorFactory( busy_indicator_factory );
|
||||
m_3d_render_ogl_legacy->SetBusyIndicatorFactory( busy_indicator_factory );
|
||||
|
||||
RenderEngineChanged();
|
||||
|
||||
wxASSERT( aBoard != NULL );
|
||||
@@ -653,79 +660,42 @@ void EDA_3D_CANVAS::OnRightClick( wxMouseEvent &event )
|
||||
|
||||
wxPoint pos;
|
||||
wxMenu PopUpMenu;
|
||||
wxString msg;
|
||||
|
||||
pos.x = event.GetX();
|
||||
pos.y = event.GetY();
|
||||
|
||||
msg = AddHotkeyName( _( "Zoom +" ), GetHotkeyConfig(),
|
||||
ID_POPUP_ZOOMIN );
|
||||
AddMenuItem( &PopUpMenu, ID_POPUP_ZOOMIN,
|
||||
msg, KiBitmap( zoom_in_xpm ) );
|
||||
|
||||
|
||||
msg = AddHotkeyName( _( "Zoom -" ), GetHotkeyConfig(),
|
||||
ID_POPUP_ZOOMOUT );
|
||||
_( "Zoom +\tF1" ), KiBitmap( zoom_in_xpm ) );
|
||||
AddMenuItem( &PopUpMenu, ID_POPUP_ZOOMOUT,
|
||||
msg, KiBitmap( zoom_out_xpm ) );
|
||||
_( "Zoom -\tF2" ), KiBitmap( zoom_out_xpm ) );
|
||||
|
||||
PopUpMenu.AppendSeparator();
|
||||
|
||||
msg = AddHotkeyName( _( "Top View" ), GetHotkeyConfig(),
|
||||
ID_POPUP_VIEW_ZPOS );
|
||||
AddMenuItem( &PopUpMenu, ID_POPUP_VIEW_ZPOS,
|
||||
msg, KiBitmap( axis3d_top_xpm ) );
|
||||
|
||||
msg = AddHotkeyName( _( "Bottom View" ), GetHotkeyConfig(),
|
||||
ID_POPUP_VIEW_ZNEG );
|
||||
_( "Top View\tZ" ), KiBitmap( axis3d_top_xpm ) );
|
||||
AddMenuItem( &PopUpMenu, ID_POPUP_VIEW_ZNEG,
|
||||
msg, KiBitmap( axis3d_bottom_xpm ) );
|
||||
_( "Bottom View\tShift+Z" ), KiBitmap( axis3d_bottom_xpm ) );
|
||||
|
||||
PopUpMenu.AppendSeparator();
|
||||
|
||||
msg = AddHotkeyName( _( "Right View" ), GetHotkeyConfig(),
|
||||
ID_POPUP_VIEW_XPOS );
|
||||
AddMenuItem( &PopUpMenu, ID_POPUP_VIEW_XPOS,
|
||||
msg, KiBitmap( axis3d_right_xpm ) );
|
||||
|
||||
msg = AddHotkeyName( _( "Left View" ), GetHotkeyConfig(),
|
||||
ID_POPUP_VIEW_XNEG );
|
||||
_( "Right View\tX" ), KiBitmap( axis3d_right_xpm ) );
|
||||
AddMenuItem( &PopUpMenu, ID_POPUP_VIEW_XNEG,
|
||||
msg, KiBitmap( axis3d_left_xpm ) );
|
||||
_( "Left View\tShift+X" ), KiBitmap( axis3d_left_xpm ) );
|
||||
|
||||
PopUpMenu.AppendSeparator();
|
||||
|
||||
msg = AddHotkeyName( _( "Front View" ), GetHotkeyConfig(),
|
||||
ID_POPUP_VIEW_YPOS );
|
||||
AddMenuItem( &PopUpMenu, ID_POPUP_VIEW_YPOS,
|
||||
msg, KiBitmap( axis3d_front_xpm ) );
|
||||
|
||||
msg = AddHotkeyName( _( "Back View" ), GetHotkeyConfig(),
|
||||
ID_POPUP_VIEW_YNEG );
|
||||
_( "Front View\tY" ), KiBitmap( axis3d_front_xpm ) );
|
||||
AddMenuItem( &PopUpMenu, ID_POPUP_VIEW_YNEG,
|
||||
msg, KiBitmap( axis3d_back_xpm ) );
|
||||
_( "Back View\tShift+Y" ), KiBitmap( axis3d_back_xpm ) );
|
||||
|
||||
PopUpMenu.AppendSeparator();
|
||||
|
||||
msg = AddHotkeyName( _( "Move Left <-" ), GetHotkeyConfig(),
|
||||
ID_POPUP_MOVE3D_LEFT );
|
||||
AddMenuItem( &PopUpMenu, ID_POPUP_MOVE3D_LEFT,
|
||||
msg, KiBitmap( left_xpm ) );
|
||||
|
||||
msg = AddHotkeyName( _( "Move Right ->" ), GetHotkeyConfig(),
|
||||
ID_POPUP_MOVE3D_RIGHT );
|
||||
_( "Move Left <-\tLeft" ), KiBitmap( left_xpm ) );
|
||||
AddMenuItem( &PopUpMenu, ID_POPUP_MOVE3D_RIGHT,
|
||||
msg, KiBitmap( right_xpm ) );
|
||||
|
||||
msg = AddHotkeyName( _( "Move Up ^" ), GetHotkeyConfig(),
|
||||
ID_POPUP_MOVE3D_UP );
|
||||
_( "Move Right ->\tRight" ), KiBitmap( right_xpm ) );
|
||||
AddMenuItem( &PopUpMenu, ID_POPUP_MOVE3D_UP,
|
||||
msg, KiBitmap( up_xpm ) );
|
||||
|
||||
msg = AddHotkeyName( _( "Move Down" ), GetHotkeyConfig(),
|
||||
ID_POPUP_MOVE3D_DOWN );
|
||||
_( "Move Up ^\tUp" ), KiBitmap( up_xpm ) );
|
||||
AddMenuItem( &PopUpMenu, ID_POPUP_MOVE3D_DOWN,
|
||||
msg, KiBitmap( down_xpm ) );
|
||||
_( "Move Down\tDown" ), KiBitmap( down_xpm ) );
|
||||
|
||||
PopupMenu( &PopUpMenu, pos );
|
||||
}
|
||||
|
||||
@@ -128,11 +128,6 @@ class EDA_3D_CANVAS : public HIDPI_GL_CANVAS
|
||||
|
||||
bool IsOpenGLInitialized() const { return m_is_opengl_initialized; }
|
||||
|
||||
/**
|
||||
* Return a structure containing currently used hotkey mapping.
|
||||
*/
|
||||
EDA_HOTKEY_CONFIG* GetHotkeyConfig() const;
|
||||
|
||||
private:
|
||||
|
||||
void OnPaint( wxPaintEvent &event );
|
||||
|
||||
@@ -745,9 +745,7 @@ void C3D_RENDER_OGL_LEGACY::generate_3D_Vias_and_Pads()
|
||||
// /////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// Insert vias holes (vertical cylinders)
|
||||
for( const TRACK* track = m_settings.GetBoard()->m_Track;
|
||||
track;
|
||||
track = track->Next() )
|
||||
for( auto track : m_settings.GetBoard()->Tracks() )
|
||||
{
|
||||
if( track->Type() == PCB_VIA_T )
|
||||
{
|
||||
@@ -800,11 +798,9 @@ void C3D_RENDER_OGL_LEGACY::generate_3D_Vias_and_Pads()
|
||||
tht_inner_holes_poly.RemoveAllContours();
|
||||
|
||||
// Insert pads holes (vertical cylinders)
|
||||
for( const MODULE* module = m_settings.GetBoard()->m_Modules;
|
||||
module;
|
||||
module = module->Next() )
|
||||
for( const auto module : m_settings.GetBoard()->Modules() )
|
||||
{
|
||||
for( const D_PAD* pad = module->PadsList(); pad; pad = pad->Next() )
|
||||
for( auto pad : module->Pads() )
|
||||
{
|
||||
if( pad->GetAttribute() != PAD_ATTRIB_HOLE_NOT_PLATED )
|
||||
{
|
||||
@@ -823,13 +819,10 @@ void C3D_RENDER_OGL_LEGACY::generate_3D_Vias_and_Pads()
|
||||
double correctionFactor = m_settings.GetCircleCorrectionFactor( nrSegments );
|
||||
int correction = radius * ( correctionFactor - 1 );
|
||||
|
||||
pad->BuildPadDrillShapePolygon( tht_outer_holes_poly,
|
||||
copperThickness + correction,
|
||||
nrSegments );
|
||||
pad->BuildPadDrillShapePolygon(
|
||||
tht_outer_holes_poly, copperThickness + correction );
|
||||
|
||||
pad->BuildPadDrillShapePolygon( tht_inner_holes_poly,
|
||||
correction,
|
||||
nrSegments );
|
||||
pad->BuildPadDrillShapePolygon( tht_inner_holes_poly, correction );
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -910,8 +903,7 @@ void C3D_RENDER_OGL_LEGACY::load_3D_models( REPORTER *aStatusTextReporter )
|
||||
return;
|
||||
|
||||
// Go for all modules
|
||||
for( const MODULE* module = m_settings.GetBoard()->m_Modules;
|
||||
module; module = module->Next() )
|
||||
for( auto module : m_settings.GetBoard()->Modules() )
|
||||
{
|
||||
if( !module->Models().empty() )
|
||||
{
|
||||
|
||||
@@ -472,7 +472,7 @@ bool C3D_RENDER_OGL_LEGACY::Redraw( bool aIsMoving,
|
||||
|
||||
if( m_reloadRequested )
|
||||
{
|
||||
wxBusyCursor dummy;
|
||||
std::unique_ptr<BUSY_INDICATOR> busy = CreateBusyIndicator();
|
||||
|
||||
if( aStatusTextReporter )
|
||||
aStatusTextReporter->Report( _( "Loading..." ) );
|
||||
@@ -980,18 +980,13 @@ void C3D_RENDER_OGL_LEGACY::render_3D_models( bool aRenderTopOrBot,
|
||||
bool aRenderTransparentOnly )
|
||||
{
|
||||
// Go for all modules
|
||||
if( m_settings.GetBoard()->m_Modules.GetCount() )
|
||||
for( auto module : m_settings.GetBoard()->Modules() )
|
||||
{
|
||||
for( const MODULE* module = m_settings.GetBoard()->m_Modules;
|
||||
module;
|
||||
module = module->Next() )
|
||||
{
|
||||
if( !module->Models().empty() )
|
||||
if( m_settings.ShouldModuleBeDisplayed( (MODULE_ATTR_T)module->GetAttributes() ) )
|
||||
if( ( aRenderTopOrBot && !module->IsFlipped()) ||
|
||||
(!aRenderTopOrBot && module->IsFlipped()) )
|
||||
render_3D_module( module, aRenderTransparentOnly );
|
||||
}
|
||||
if( !module->Models().empty() )
|
||||
if( m_settings.ShouldModuleBeDisplayed( (MODULE_ATTR_T) module->GetAttributes() ) )
|
||||
if( ( aRenderTopOrBot && !module->IsFlipped() )
|
||||
|| ( !aRenderTopOrBot && module->IsFlipped() ) )
|
||||
render_3D_module( module, aRenderTransparentOnly );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1076,7 +1076,7 @@ void C3D_RENDER_RAYTRACING::insert3DPadHole( const D_PAD* aPad )
|
||||
width * m_settings.BiuTo3Dunits(),
|
||||
*aPad );
|
||||
|
||||
CROUNDSEGMENT2D *outterSeg = new CROUNDSEGMENT2D(
|
||||
CROUNDSEGMENT2D *outerSeg = new CROUNDSEGMENT2D(
|
||||
SFVEC2F( start.x * m_settings.BiuTo3Dunits(),
|
||||
-start.y * m_settings.BiuTo3Dunits() ),
|
||||
SFVEC2F( end.x * m_settings.BiuTo3Dunits(),
|
||||
@@ -1090,14 +1090,14 @@ void C3D_RENDER_RAYTRACING::insert3DPadHole( const D_PAD* aPad )
|
||||
std::vector<const COBJECT2D *> *object2d_B = new std::vector<const COBJECT2D *>();
|
||||
object2d_B->push_back( innerSeg );
|
||||
|
||||
CITEMLAYERCSG2D *itemCSG2d = new CITEMLAYERCSG2D( outterSeg,
|
||||
CITEMLAYERCSG2D *itemCSG2d = new CITEMLAYERCSG2D( outerSeg,
|
||||
object2d_B,
|
||||
CSGITEM_FULL,
|
||||
*aPad );
|
||||
|
||||
m_containerWithObjectsToDelete.Add( itemCSG2d );
|
||||
m_containerWithObjectsToDelete.Add( innerSeg );
|
||||
m_containerWithObjectsToDelete.Add( outterSeg );
|
||||
m_containerWithObjectsToDelete.Add( outerSeg );
|
||||
|
||||
object2d_A = itemCSG2d;
|
||||
}
|
||||
@@ -1171,9 +1171,7 @@ void C3D_RENDER_RAYTRACING::add_3D_vias_and_pads_to_container()
|
||||
// /////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// Insert vias holes (vertical cylinders)
|
||||
for( const TRACK* track = m_settings.GetBoard()->m_Track;
|
||||
track;
|
||||
track = track->Next() )
|
||||
for( auto track : m_settings.GetBoard()->Tracks() )
|
||||
{
|
||||
if( track->Type() == PCB_VIA_T )
|
||||
{
|
||||
@@ -1183,11 +1181,9 @@ void C3D_RENDER_RAYTRACING::add_3D_vias_and_pads_to_container()
|
||||
}
|
||||
|
||||
// Insert pads holes (vertical cylinders)
|
||||
for( const MODULE* module = m_settings.GetBoard()->m_Modules;
|
||||
module;
|
||||
module = module->Next() )
|
||||
for( auto module : m_settings.GetBoard()->Modules() )
|
||||
{
|
||||
for( const D_PAD* pad = module->PadsList(); pad; pad = pad->Next() )
|
||||
for( auto pad : module->Pads() )
|
||||
if( pad->GetAttribute () != PAD_ATTRIB_HOLE_NOT_PLATED )
|
||||
{
|
||||
insert3DPadHole( pad );
|
||||
@@ -1199,9 +1195,7 @@ void C3D_RENDER_RAYTRACING::add_3D_vias_and_pads_to_container()
|
||||
void C3D_RENDER_RAYTRACING::load_3D_models()
|
||||
{
|
||||
// Go for all modules
|
||||
for( const MODULE* module = m_settings.GetBoard()->m_Modules;
|
||||
module;
|
||||
module = module->Next() )
|
||||
for( auto module : m_settings.GetBoard()->Modules() )
|
||||
{
|
||||
if( (!module->Models().empty() ) &&
|
||||
m_settings.ShouldModuleBeDisplayed( (MODULE_ATTR_T)module->GetAttributes() ) )
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/*
|
||||
/*
|
||||
* This program source code file is part of KiCad, a free EDA CAD application.
|
||||
*
|
||||
* Copyright (C) 2015-2016 Mario Luzeiro <mrluzeiro@ua.pt>
|
||||
@@ -28,10 +28,11 @@
|
||||
*/
|
||||
|
||||
#include <GL/glew.h>
|
||||
#include <climits>
|
||||
#include <algorithm>
|
||||
#include <atomic>
|
||||
#include <thread>
|
||||
#include <chrono>
|
||||
#include <climits>
|
||||
#include <thread>
|
||||
|
||||
#include "c3d_render_raytracing.h"
|
||||
#include "mortoncodes.h"
|
||||
@@ -166,7 +167,7 @@ bool C3D_RENDER_RAYTRACING::Redraw( bool aIsMoving, REPORTER *aStatusTextReporte
|
||||
initialize_block_positions();
|
||||
}
|
||||
|
||||
wxBusyCursor dummy;
|
||||
std::unique_ptr<BUSY_INDICATOR> busy = CreateBusyIndicator();
|
||||
|
||||
// Reload board if it was requested
|
||||
// /////////////////////////////////////////////////////////////////////////
|
||||
@@ -2074,6 +2075,13 @@ bool C3D_RENDER_RAYTRACING::initializeOpenGL()
|
||||
}
|
||||
|
||||
|
||||
static float distance( const SFVEC2UI& a, const SFVEC2UI& b )
|
||||
{
|
||||
const float dx = (float) a.x - (float) b.x;
|
||||
const float dy = (float) a.y - (float) b.y;
|
||||
return hypotf( dx, dy );
|
||||
}
|
||||
|
||||
void C3D_RENDER_RAYTRACING::initialize_block_positions()
|
||||
{
|
||||
|
||||
@@ -2123,26 +2131,24 @@ void C3D_RENDER_RAYTRACING::initialize_block_positions()
|
||||
m_postshader_ssao.UpdateSize( m_realBufferSize );
|
||||
|
||||
|
||||
// Calc block positions
|
||||
// Calc block positions for regular rendering. Choose an 'inside out'
|
||||
// style of rendering
|
||||
// /////////////////////////////////////////////////////////////////////
|
||||
m_blockPositions.clear();
|
||||
m_blockPositions.reserve( (m_realBufferSize.x / RAYPACKET_DIM) *
|
||||
(m_realBufferSize.y / RAYPACKET_DIM) );
|
||||
const int blocks_x = m_realBufferSize.x / RAYPACKET_DIM;
|
||||
const int blocks_y = m_realBufferSize.y / RAYPACKET_DIM;
|
||||
m_blockPositions.reserve( blocks_x * blocks_y );
|
||||
|
||||
i = 0;
|
||||
for( int x = 0; x < blocks_x; ++x )
|
||||
for( int y = 0; y < blocks_y; ++y )
|
||||
m_blockPositions.push_back( SFVEC2UI( x * RAYPACKET_DIM, y * RAYPACKET_DIM ) );
|
||||
|
||||
while(1)
|
||||
{
|
||||
SFVEC2UI blockPos( DecodeMorton2X(i) * RAYPACKET_DIM,
|
||||
DecodeMorton2Y(i) * RAYPACKET_DIM );
|
||||
i++;
|
||||
|
||||
if( (blockPos.x >= m_realBufferSize.x) && (blockPos.y >= m_realBufferSize.y) )
|
||||
break;
|
||||
|
||||
if( (blockPos.x < m_realBufferSize.x) && (blockPos.y < m_realBufferSize.y) )
|
||||
m_blockPositions.push_back( blockPos );
|
||||
}
|
||||
const SFVEC2UI center( m_realBufferSize.x / 2, m_realBufferSize.y / 2 );
|
||||
std::sort( m_blockPositions.begin(), m_blockPositions.end(),
|
||||
[&]( const SFVEC2UI& a, const SFVEC2UI& b ) {
|
||||
// Sort order: inside out.
|
||||
return distance( a, center ) < distance( b, center );
|
||||
} );
|
||||
|
||||
// Create m_shader buffer
|
||||
delete[] m_shaderBuffer;
|
||||
|
||||
@@ -109,9 +109,9 @@ public:
|
||||
float *aOutT,
|
||||
SFVEC2F *aNormalOut ) const = 0;
|
||||
|
||||
/** Function IsBBoxInside
|
||||
* @brief Tests if the bouding is out, intersects or is complety inside
|
||||
* @param aBBox - The bounding box to test
|
||||
/**
|
||||
* Function IsBBoxInside
|
||||
* @brief Tests if the bounding is out, intersects or is complety inside
|
||||
* @return INTERSECTION_RESULT
|
||||
*/
|
||||
virtual INTERSECTION_RESULT IsBBoxInside( const CBBOX2D &aBBox ) const = 0;
|
||||
|
||||
@@ -711,35 +711,6 @@ void Convert_path_polygon_to_polygon_blocks_and_dummy_blocks(
|
||||
}
|
||||
|
||||
|
||||
void Polygon_Calc_BBox_3DU( const SHAPE_POLY_SET &aPolysList,
|
||||
CBBOX2D &aOutBBox ,
|
||||
float aBiuTo3DunitsScale )
|
||||
{
|
||||
aOutBBox.Reset();
|
||||
|
||||
for( int idx = 0; idx < aPolysList.OutlineCount(); ++idx )
|
||||
{
|
||||
// Each polygon in aPolysList is a polygon with holes
|
||||
const SHAPE_POLY_SET::POLYGON& curr_polywithholes = aPolysList.CPolygon( idx );
|
||||
|
||||
for( unsigned ipoly = 0; ipoly < curr_polywithholes.size(); ++ipoly )
|
||||
{
|
||||
const SHAPE_LINE_CHAIN& path = curr_polywithholes[ipoly]; // a simple polygon
|
||||
|
||||
for( int jj = 0; jj < path.PointCount(); jj++ )
|
||||
{
|
||||
const VECTOR2I& a = path.CPoint( jj );
|
||||
|
||||
aOutBBox.Union( SFVEC2F( (float) a.x * aBiuTo3DunitsScale,
|
||||
(float)-a.y * aBiuTo3DunitsScale ) );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
aOutBBox.ScaleNextUp();
|
||||
}
|
||||
|
||||
|
||||
#ifdef DEBUG
|
||||
static void polygon_Convert( const ClipperLib::Path &aPath,
|
||||
SEGMENTS &aOutSegment,
|
||||
@@ -780,7 +751,7 @@ void Polygon2d_TestModule()
|
||||
aPath[2] = ClipperLib::IntPoint( 2, 2 );
|
||||
aPath[3] = ClipperLib::IntPoint( -2, 2 );
|
||||
|
||||
// It must be an outter polygon
|
||||
// It must be an outer polygon
|
||||
wxASSERT( ClipperLib::Orientation( aPath ) );
|
||||
|
||||
polygon_Convert( aPath, aSegments, 1.0f );
|
||||
|
||||
@@ -86,7 +86,7 @@ typedef struct
|
||||
class CPOLYGONBLOCK2D : public COBJECT2D
|
||||
{
|
||||
private:
|
||||
/// This is the outter part of the polygon. This list is used to test a ray
|
||||
/// This is the outer part of the polygon. This list is used to test a ray
|
||||
/// intersection with the boundaries of this sub polygon.
|
||||
/// It contains also the interpolated normals that are passed from the main
|
||||
/// polygon.
|
||||
@@ -150,10 +150,6 @@ void Convert_path_polygon_to_polygon_blocks_and_dummy_blocks(
|
||||
float aDivFactor,
|
||||
const BOARD_ITEM &aBoardItem );
|
||||
|
||||
void Polygon_Calc_BBox_3DU( const SHAPE_POLY_SET &aPolysList,
|
||||
CBBOX2D &aOutBBox,
|
||||
float aBiuTo3DunitsScale );
|
||||
|
||||
void Polygon2d_TestModule();
|
||||
|
||||
#endif // _CPOLYGON2D_H_
|
||||
|
||||
@@ -88,7 +88,7 @@ bool CPOLYGON4PTS2D::Intersects( const CBBOX2D &aBBox ) const
|
||||
if( !m_bbox.Intersects( aBBox ) )
|
||||
return false;
|
||||
|
||||
// Check if the bouding box complety have inside the small bouding box
|
||||
// Check if the bounding box complety have inside the small bounding box
|
||||
if( (aBBox.Max().x > m_bbox.Max().x) &&
|
||||
(aBBox.Max().y > m_bbox.Max().x) &&
|
||||
(aBBox.Min().x < m_bbox.Min().x) &&
|
||||
|
||||
@@ -87,15 +87,15 @@ bool CRING2D::Intersect( const RAYSEG2D &aSegRay,
|
||||
// dd*t^2 + (2*qd)*t + (qq-r^2) = 0
|
||||
|
||||
const float discriminantsqr = qd * qd - qq;
|
||||
const float discriminantsqr_outter = discriminantsqr + m_outer_radius_squared;
|
||||
const float discriminantsqr_outer = discriminantsqr + m_outer_radius_squared;
|
||||
|
||||
// If the discriminant is less than zero, there is no intersection
|
||||
if( discriminantsqr_outter < FLT_EPSILON )
|
||||
if( discriminantsqr_outer < FLT_EPSILON )
|
||||
return false;
|
||||
|
||||
// Otherwise check and make sure that the intersections occur on the ray (t
|
||||
// > 0) and return the closer one
|
||||
const float discriminant = sqrt( discriminantsqr_outter );
|
||||
const float discriminant = sqrt( discriminantsqr_outer );
|
||||
float t = (-qd - discriminant);
|
||||
|
||||
if( (t > FLT_EPSILON) && (t < aSegRay.m_Length) )
|
||||
|
||||
@@ -85,7 +85,7 @@ public:
|
||||
bool IsPointInside( const SFVEC2F &aPoint ) const override;
|
||||
};
|
||||
|
||||
static const float s_min_dot = (FLT_EPSILON * 4.0f) ;
|
||||
static const float s_min_dot = (FLT_EPSILON * 4.0f * FLT_EPSILON * 4.0f) ;
|
||||
|
||||
/**
|
||||
* @brief Segment_is_a_circle - check if segment start and end is very close to each other
|
||||
|
||||
@@ -83,7 +83,7 @@ public:
|
||||
CROUNDSEG( const SFVEC2F &aStart,
|
||||
const SFVEC2F &aEnd,
|
||||
float aInnerRadius,
|
||||
float aOutterRadius,
|
||||
float aOuterRadius,
|
||||
float aZmin,
|
||||
float aZmax );
|
||||
|
||||
@@ -102,9 +102,9 @@ private:
|
||||
float m_inner_radius;
|
||||
float m_inner_radius_squared;
|
||||
float m_inner_inv_radius;
|
||||
float m_outter_radius;
|
||||
float m_outter_radius_squared;
|
||||
float m_outter_inv_radius;
|
||||
float m_outer_radius;
|
||||
float m_outer_radius_squared;
|
||||
float m_outer_inv_radius;
|
||||
float m_width;
|
||||
float m_seglen_over_two_squared;
|
||||
};
|
||||
|
||||
@@ -54,3 +54,19 @@ C3D_RENDER_BASE::~C3D_RENDER_BASE()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
void C3D_RENDER_BASE::SetBusyIndicatorFactory( BUSY_INDICATOR::FACTORY aNewFactory )
|
||||
{
|
||||
m_busyIndicatorFactory = aNewFactory;
|
||||
}
|
||||
|
||||
|
||||
std::unique_ptr<BUSY_INDICATOR> C3D_RENDER_BASE::CreateBusyIndicator() const
|
||||
{
|
||||
std::unique_ptr<BUSY_INDICATOR> busy;
|
||||
|
||||
if( m_busyIndicatorFactory )
|
||||
busy = m_busyIndicatorFactory();
|
||||
|
||||
return busy;
|
||||
}
|
||||
|
||||
@@ -35,6 +35,8 @@
|
||||
#include "../3d_canvas/cinfo3d_visu.h"
|
||||
#include <reporter.h>
|
||||
|
||||
#include <widgets/busy_indicator.h>
|
||||
|
||||
/**
|
||||
* This is a base class to hold data and functions for render targets.
|
||||
*/
|
||||
@@ -86,9 +88,22 @@ public:
|
||||
*/
|
||||
virtual int GetWaitForEditingTimeOut() = 0;
|
||||
|
||||
/**
|
||||
* Set a new busy indicator factory.
|
||||
*
|
||||
* When set, this factory will be used to generate busy indicators when
|
||||
* suitable. If not set, no busy indicator will be used.
|
||||
*/
|
||||
void SetBusyIndicatorFactory( BUSY_INDICATOR::FACTORY aNewFactory );
|
||||
|
||||
// Attributes
|
||||
|
||||
protected:
|
||||
/**
|
||||
* Return a created busy indicator, if a factory has been set, else
|
||||
* a null pointer.
|
||||
*/
|
||||
std::unique_ptr<BUSY_INDICATOR> CreateBusyIndicator() const;
|
||||
|
||||
/// settings refrence in use for this render
|
||||
CINFO3D_VISU &m_settings;
|
||||
@@ -109,6 +124,10 @@ protected:
|
||||
* more information.
|
||||
*/
|
||||
static const wxChar *m_logTrace;
|
||||
|
||||
private:
|
||||
/// Factory that returns a suitable busy indicator for the context.
|
||||
BUSY_INDICATOR::FACTORY m_busyIndicatorFactory;
|
||||
};
|
||||
|
||||
#endif // C3D_RENDER_BASE_H
|
||||
|
||||
@@ -310,7 +310,7 @@ void CCAMERA::MakeRay( const SFVEC2I &aWindowPos,
|
||||
|
||||
case PROJECTION_ORTHO:
|
||||
aOutOrigin = up_plus_right * 0.5f + m_frustum.nc;
|
||||
aOutDirection = -m_dir;
|
||||
aOutDirection = -m_dir + SFVEC3F( FLT_EPSILON );
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -341,7 +341,7 @@ void CCAMERA::MakeRay( const SFVEC2F &aWindowPos, SFVEC3F &aOutOrigin, SFVEC3F &
|
||||
|
||||
case PROJECTION_ORTHO:
|
||||
aOutOrigin = up_plus_right * 0.5f + m_frustum.nc;
|
||||
aOutDirection = -m_dir;
|
||||
aOutDirection = -m_dir + SFVEC3F( FLT_EPSILON );
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,129 @@
|
||||
/*
|
||||
* This program source code file is part of KiCad, a free EDA CAD application.
|
||||
*
|
||||
* Copyright (C) 2017 Jon Evans <jon@craftyjon.com>
|
||||
* Copyright (C) 2017-2019 KiCad Developers, see AUTHORS.txt for contributors.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by the
|
||||
* Free Software Foundation, either version 3 of the License, or (at your
|
||||
* option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along
|
||||
* with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include <tool/tool_manager.h>
|
||||
#include <bitmaps.h>
|
||||
#include "3d_actions.h"
|
||||
|
||||
|
||||
// Actions, being statically-defined, require specialized I18N handling. We continue to
|
||||
// use the _() macro so that string harvesting by the I18N framework doesn't have to be
|
||||
// specialized, but we don't translate on initialization and instead do it in the getters.
|
||||
|
||||
#undef _
|
||||
#define _(s) s
|
||||
|
||||
|
||||
TOOL_ACTION EDA_3D_ACTIONS::pivotCenter( "3DViewer.Control.pivotCenter",
|
||||
AS_GLOBAL,
|
||||
' ', "",
|
||||
"Center pivot rotation (Middle mouse click)" );
|
||||
|
||||
TOOL_ACTION EDA_3D_ACTIONS::moveLeft( "3DViewer.Control.moveLeft",
|
||||
AS_GLOBAL,
|
||||
WXK_LEFT, "",
|
||||
"Move board Left" );
|
||||
|
||||
TOOL_ACTION EDA_3D_ACTIONS::moveRight( "3DViewer.Control.moveRight",
|
||||
AS_GLOBAL,
|
||||
WXK_RIGHT, "",
|
||||
"Move board Right" );
|
||||
|
||||
TOOL_ACTION EDA_3D_ACTIONS::moveUp( "3DViewer.Control.moveUp",
|
||||
AS_GLOBAL,
|
||||
WXK_UP, "",
|
||||
"Move board Up" );
|
||||
|
||||
TOOL_ACTION EDA_3D_ACTIONS::moveDown( "3DViewer.Control.moveDown",
|
||||
AS_GLOBAL,
|
||||
WXK_DOWN, "",
|
||||
"Move board Down" );
|
||||
|
||||
TOOL_ACTION EDA_3D_ACTIONS::homeView( "3DViewer.Control.homeView",
|
||||
AS_GLOBAL,
|
||||
WXK_HOME, "",
|
||||
"Home view" );
|
||||
|
||||
TOOL_ACTION EDA_3D_ACTIONS::resetView( "3DViewer.Control.resetView",
|
||||
AS_GLOBAL,
|
||||
'R', "",
|
||||
"Reset view" );
|
||||
|
||||
TOOL_ACTION EDA_3D_ACTIONS::viewFront( "3DViewer.Control.viewFront",
|
||||
AS_GLOBAL,
|
||||
'Y', "",
|
||||
"View Front" );
|
||||
|
||||
TOOL_ACTION EDA_3D_ACTIONS::viewBack( "3DViewer.Control.viewBack",
|
||||
AS_GLOBAL,
|
||||
MD_SHIFT + 'Y', "",
|
||||
"View Back" );
|
||||
|
||||
TOOL_ACTION EDA_3D_ACTIONS::viewLeft( "3DViewer.Control.viewLeft",
|
||||
AS_GLOBAL,
|
||||
MD_SHIFT + 'X', "",
|
||||
"View Left" );
|
||||
|
||||
TOOL_ACTION EDA_3D_ACTIONS::viewRight( "3DViewer.Control.viewRight",
|
||||
AS_GLOBAL,
|
||||
'X', "",
|
||||
"View Right" );
|
||||
|
||||
TOOL_ACTION EDA_3D_ACTIONS::viewTop( "3DViewer.Control.viewTop",
|
||||
AS_GLOBAL,
|
||||
'Z', "",
|
||||
"View Top" );
|
||||
|
||||
TOOL_ACTION EDA_3D_ACTIONS::viewBottom( "3DViewer.Control.viewBottom",
|
||||
AS_GLOBAL,
|
||||
MD_SHIFT + 'Z', "",
|
||||
"View Bottom" );
|
||||
|
||||
TOOL_ACTION EDA_3D_ACTIONS::rotate45axisZ( "3DViewer.Control.rotate45axisZ",
|
||||
AS_GLOBAL,
|
||||
WXK_TAB, "",
|
||||
"Rotate 45 degrees over Z axis" );
|
||||
|
||||
TOOL_ACTION EDA_3D_ACTIONS::zoomIn( "3DViewer.Control.zoomIn",
|
||||
AS_GLOBAL,
|
||||
WXK_F1, "",
|
||||
"Zoom in " );
|
||||
|
||||
TOOL_ACTION EDA_3D_ACTIONS::zoomOut( "3DViewer.Control.zoomOut",
|
||||
AS_GLOBAL,
|
||||
WXK_F2, "",
|
||||
"Zoom out" );
|
||||
|
||||
TOOL_ACTION EDA_3D_ACTIONS::attributesTHT( "3DViewer.Control.attributesTHT",
|
||||
AS_GLOBAL,
|
||||
'T', "",
|
||||
"Toggle 3D models with type Through Hole" );
|
||||
|
||||
TOOL_ACTION EDA_3D_ACTIONS::attributesSMD( "3DViewer.Control.attributesSMD",
|
||||
AS_GLOBAL,
|
||||
'S', "",
|
||||
"Toggle 3D models with type Surface Mount" );
|
||||
|
||||
TOOL_ACTION EDA_3D_ACTIONS::attributesVirtual( "3DViewer.Control.attributesVirtual",
|
||||
AS_GLOBAL,
|
||||
'V', "",
|
||||
"Toggle 3D models with type Virtual" );
|
||||
|
||||
|
||||
@@ -0,0 +1,70 @@
|
||||
/*
|
||||
* This program source code file is part of KiCad, a free EDA CAD application.
|
||||
*
|
||||
* Copyright (C) 2013-2016 CERN
|
||||
* Copyright (C) 2018 KiCad Developers, see AUTHORS.txt for contributors.
|
||||
* @author Maciej Suminski <maciej.suminski@cern.ch>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version 2
|
||||
* of the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, you may find one here:
|
||||
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
||||
* or you may search the http://www.gnu.org website for the version 2 license,
|
||||
* or you may write to the Free Software Foundation, Inc.,
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
#ifndef EDA_3D_ACTIONS_H
|
||||
#define EDA_3D_ACTIONS_H
|
||||
|
||||
#include <tool/tool_action.h>
|
||||
#include <tool/actions.h>
|
||||
#include <core/optional.h>
|
||||
|
||||
class TOOL_EVENT;
|
||||
class TOOL_MANAGER;
|
||||
|
||||
/**
|
||||
* Class EDA_3D_ACTIONS
|
||||
*
|
||||
* Note: these aren't "real" actions; we just use them to see the hotkeys display.
|
||||
*/
|
||||
class EDA_3D_ACTIONS : public ACTIONS
|
||||
{
|
||||
public:
|
||||
static TOOL_ACTION pivotCenter;
|
||||
static TOOL_ACTION moveLeft;
|
||||
static TOOL_ACTION moveRight;
|
||||
static TOOL_ACTION moveUp;
|
||||
static TOOL_ACTION moveDown;
|
||||
static TOOL_ACTION homeView;
|
||||
static TOOL_ACTION resetView;
|
||||
|
||||
static TOOL_ACTION viewFront;
|
||||
static TOOL_ACTION viewBack;
|
||||
static TOOL_ACTION viewLeft;
|
||||
static TOOL_ACTION viewRight;
|
||||
static TOOL_ACTION viewTop;
|
||||
static TOOL_ACTION viewBottom;
|
||||
|
||||
static TOOL_ACTION rotate45axisZ;
|
||||
static TOOL_ACTION zoomIn;
|
||||
static TOOL_ACTION zoomOut;
|
||||
static TOOL_ACTION attributesTHT;
|
||||
static TOOL_ACTION attributesSMD;
|
||||
static TOOL_ACTION attributesVirtual;
|
||||
|
||||
///> @copydoc COMMON_ACTIONS::TranslateLegacyId()
|
||||
virtual OPT<TOOL_EVENT> TranslateLegacyId( int aId ) override { return OPT<TOOL_EVENT>(); }
|
||||
};
|
||||
|
||||
#endif
|
||||
+261
-249
@@ -24,307 +24,319 @@
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
/**
|
||||
* @file 3d_menubar.cpp
|
||||
*/
|
||||
|
||||
#include <fctsys.h>
|
||||
|
||||
#include <tool/conditional_menu.h>
|
||||
#include <eda_3d_viewer.h>
|
||||
#include <3d_canvas/cinfo3d_visu.h>
|
||||
#include <menus_helpers.h>
|
||||
#include <3d_viewer_id.h>
|
||||
#include <3d_actions.h>
|
||||
#include <tool/tool_manager.h>
|
||||
#include <tool/common_control.h>
|
||||
#include "help_common_strings.h"
|
||||
|
||||
|
||||
void EDA_3D_VIEWER::CreateMenuBar()
|
||||
{
|
||||
wxLogTrace( m_logTrace, "EDA_3D_VIEWER::CreateMenuBar" );
|
||||
|
||||
COMMON_CONTROL* tool = m_toolManager->GetTool<COMMON_CONTROL>();
|
||||
wxMenuBar* menuBar = new wxMenuBar;
|
||||
wxMenu* fileMenu = new wxMenu;
|
||||
wxMenu* editMenu = new wxMenu;
|
||||
wxMenu* viewMenu = new wxMenu;
|
||||
wxMenu* prefsMenu = new wxMenu;
|
||||
wxMenu* helpMenu = new wxMenu;
|
||||
|
||||
menuBar->Append( fileMenu, _( "&File" ) );
|
||||
|
||||
AddMenuItem( fileMenu, ID_MENU_SCREENCOPY_PNG,
|
||||
_( "Export Current View as PNG..." ),
|
||||
KiBitmap( export_xpm ) );
|
||||
|
||||
AddMenuItem( fileMenu, ID_MENU_SCREENCOPY_JPEG,
|
||||
_( "Export Current View as JPEG..." ),
|
||||
KiBitmap( export_xpm ) );
|
||||
|
||||
fileMenu->AppendSeparator();
|
||||
AddMenuItem( fileMenu, wxID_EXIT,
|
||||
_( "&Exit" ),
|
||||
KiBitmap( exit_xpm ) );
|
||||
|
||||
menuBar->Append( editMenu, _( "&Edit" ) );
|
||||
|
||||
AddMenuItem( editMenu, ID_TOOL_SCREENCOPY_TOCLIBBOARD,
|
||||
_( "Copy 3D Image" ),
|
||||
KiBitmap( copy_xpm ) );
|
||||
|
||||
menuBar->Append( viewMenu, _( "&View" ) );
|
||||
|
||||
AddMenuItem( viewMenu, ID_ZOOM_IN,
|
||||
_( "Zoom &In" ), HELP_ZOOM_IN,
|
||||
KiBitmap( zoom_in_xpm ) );
|
||||
|
||||
AddMenuItem( viewMenu, ID_ZOOM_OUT,
|
||||
_( "Zoom &Out" ), HELP_ZOOM_OUT,
|
||||
KiBitmap( zoom_out_xpm ) );
|
||||
|
||||
AddMenuItem( viewMenu, ID_ZOOM_PAGE,
|
||||
_( "Zoom to &Fit" ), HELP_ZOOM_FIT,
|
||||
KiBitmap( zoom_fit_in_page_xpm ) );
|
||||
|
||||
AddMenuItem( viewMenu, ID_ZOOM_REDRAW,
|
||||
_( "&Redraw" ), HELP_ZOOM_REDRAW,
|
||||
KiBitmap( zoom_redraw_xpm ) );
|
||||
|
||||
viewMenu->AppendSeparator();
|
||||
|
||||
AddMenuItem( viewMenu, ID_ROTATE3D_X_NEG,
|
||||
_( "Rotate X Clockwise" ),
|
||||
KiBitmap( rotate_neg_x_xpm ) );
|
||||
|
||||
AddMenuItem( viewMenu, ID_ROTATE3D_X_POS,
|
||||
_( "Rotate X Counterclockwise" ),
|
||||
KiBitmap( rotate_pos_x_xpm ) );
|
||||
|
||||
viewMenu->AppendSeparator();
|
||||
|
||||
AddMenuItem( viewMenu, ID_ROTATE3D_Y_NEG,
|
||||
_( "Rotate Y Clockwise" ),
|
||||
KiBitmap( rotate_neg_y_xpm ) );
|
||||
|
||||
AddMenuItem( viewMenu, ID_ROTATE3D_Y_POS,
|
||||
_( "Rotate Y Counterclockwise" ),
|
||||
KiBitmap( rotate_pos_y_xpm ) );
|
||||
|
||||
viewMenu->AppendSeparator();
|
||||
|
||||
AddMenuItem( viewMenu, ID_ROTATE3D_Z_NEG,
|
||||
_( "Rotate Z Clockwise" ),
|
||||
KiBitmap( rotate_neg_z_xpm ) );
|
||||
|
||||
AddMenuItem( viewMenu, ID_ROTATE3D_Z_POS,
|
||||
_( "Rotate Z Counterclockwise" ),
|
||||
KiBitmap( rotate_pos_z_xpm ) );
|
||||
|
||||
viewMenu->AppendSeparator();
|
||||
|
||||
AddMenuItem( viewMenu, ID_MOVE3D_LEFT,
|
||||
_( "Move left" ),
|
||||
KiBitmap( left_xpm ) );
|
||||
|
||||
AddMenuItem( viewMenu, ID_MOVE3D_RIGHT,
|
||||
_( "Move right" ),
|
||||
KiBitmap( right_xpm ) );
|
||||
|
||||
AddMenuItem( viewMenu, ID_MOVE3D_UP,
|
||||
_( "Move up" ),
|
||||
KiBitmap( up_xpm ) );
|
||||
|
||||
AddMenuItem( viewMenu, ID_MOVE3D_DOWN,
|
||||
_( "Move down" ),
|
||||
KiBitmap( down_xpm ) );
|
||||
|
||||
menuBar->Append( prefsMenu, _( "&Preferences" ) );
|
||||
|
||||
AddMenuItem( prefsMenu, ID_TOOL_SET_VISIBLE_ITEMS,
|
||||
_( "Display Options" ),
|
||||
KiBitmap( read_setup_xpm ) );
|
||||
|
||||
prefsMenu->AppendCheckItem( ID_RENDER_CURRENT_VIEW, _( "Raytracing" ) );
|
||||
prefsMenu->Check( ID_RENDER_CURRENT_VIEW,
|
||||
m_settings.RenderEngineGet() != RENDER_ENGINE_OPENGL_LEGACY );
|
||||
|
||||
wxMenu * renderOptionsMenu = new wxMenu;
|
||||
AddMenuItem( prefsMenu, renderOptionsMenu, ID_MENU3D_FL,
|
||||
_( "Render Options" ), KiBitmap( options_3drender_xpm ) );
|
||||
|
||||
wxMenu * materialsList = new wxMenu;
|
||||
AddMenuItem( renderOptionsMenu, materialsList, ID_MENU3D_FL_RENDER_MATERIAL,
|
||||
_( "Material Properties" ), KiBitmap( color_materials_xpm ) );
|
||||
|
||||
materialsList->AppendRadioItem( ID_MENU3D_FL_RENDER_MATERIAL_MODE_NORMAL,
|
||||
_( "Use All Properties" ),
|
||||
_( "Use all material properties from each 3D model file" ) );
|
||||
|
||||
materialsList->AppendRadioItem( ID_MENU3D_FL_RENDER_MATERIAL_MODE_DIFFUSE_ONLY,
|
||||
_( "Use Diffuse Only" ),
|
||||
_( "Use only the diffuse color property from model 3D model file" ) );
|
||||
|
||||
materialsList->AppendRadioItem( ID_MENU3D_FL_RENDER_MATERIAL_MODE_CAD_MODE,
|
||||
_( "CAD Color Style" ),
|
||||
_( "Use a CAD color style based on the diffuse color of the material" ) );
|
||||
|
||||
// Add specific preferences for OpenGL
|
||||
// /////////////////////////////////////////////////////////////////////////
|
||||
wxMenu * renderOptionsMenu_OPENGL = new wxMenu;
|
||||
|
||||
AddMenuItem( renderOptionsMenu, renderOptionsMenu_OPENGL, ID_MENU3D_FL_OPENGL,
|
||||
_( "OpenGL Options" ), KiBitmap( tools_xpm ) );
|
||||
|
||||
AddMenuItem( renderOptionsMenu_OPENGL, ID_MENU3D_FL_OPENGL_RENDER_COPPER_THICKNESS,
|
||||
_( "Show Copper Thickness" ),
|
||||
_( "Shows the copper thickness on copper layers (slower loading)"),
|
||||
KiBitmap( use_3D_copper_thickness_xpm ), wxITEM_CHECK );
|
||||
|
||||
AddMenuItem( renderOptionsMenu_OPENGL, ID_MENU3D_FL_OPENGL_RENDER_SHOW_MODEL_BBOX,
|
||||
_( "Show Model Bounding Boxes" ),
|
||||
KiBitmap( ortho_xpm ), wxITEM_CHECK );
|
||||
|
||||
|
||||
// Add specific preferences for Raytracing
|
||||
// /////////////////////////////////////////////////////////////////////////
|
||||
wxMenu * renderOptionsMenu_RAYTRACING = new wxMenu;
|
||||
AddMenuItem( renderOptionsMenu, renderOptionsMenu_RAYTRACING, ID_MENU3D_FL_RAYTRACING,
|
||||
_( "Raytracing Options" ), KiBitmap( tools_xpm ) );
|
||||
//-- File menu -----------------------------------------------------------
|
||||
//
|
||||
CONDITIONAL_MENU* fileMenu = new CONDITIONAL_MENU( false, tool );
|
||||
|
||||
AddMenuItem( renderOptionsMenu_RAYTRACING, ID_MENU3D_FL_RAYTRACING_RENDER_SHADOWS,
|
||||
_( "Render Shadows" ),
|
||||
KiBitmap( green_xpm ), wxITEM_CHECK );
|
||||
fileMenu->AddItem( ID_MENU_SCREENCOPY_PNG, _( "Export Current View as PNG..." ), "",
|
||||
export_xpm, SELECTION_CONDITIONS::ShowAlways );
|
||||
|
||||
AddMenuItem( renderOptionsMenu_RAYTRACING, ID_MENU3D_FL_RAYTRACING_PROCEDURAL_TEXTURES,
|
||||
fileMenu->AddItem( ID_MENU_SCREENCOPY_JPEG, _( "Export Current View as JPEG..." ), "",
|
||||
export_xpm, SELECTION_CONDITIONS::ShowAlways );
|
||||
|
||||
fileMenu->AddSeparator();
|
||||
fileMenu->AddClose( _( "3D Viewer" ) );
|
||||
|
||||
fileMenu->Resolve();
|
||||
|
||||
//-- Edit menu -------------------------------------------------------
|
||||
//
|
||||
CONDITIONAL_MENU* editMenu = new CONDITIONAL_MENU( false, tool );
|
||||
|
||||
editMenu->AddItem( ID_TOOL_SCREENCOPY_TOCLIBBOARD, _( "Copy 3D Image" ), "",
|
||||
copy_xpm, SELECTION_CONDITIONS::ShowAlways );
|
||||
|
||||
editMenu->Resolve();
|
||||
|
||||
//-- View menu -------------------------------------------------------
|
||||
//
|
||||
CONDITIONAL_MENU* viewMenu = new CONDITIONAL_MENU( false, tool );
|
||||
|
||||
viewMenu->AddItem( ID_ZOOM_IN, _( "Zoom In\tF1" ), HELP_ZOOM_IN,
|
||||
zoom_in_xpm, SELECTION_CONDITIONS::ShowAlways );
|
||||
|
||||
viewMenu->AddItem( ID_ZOOM_OUT, _( "Zoom Out\tF2" ), HELP_ZOOM_OUT,
|
||||
zoom_out_xpm, SELECTION_CONDITIONS::ShowAlways );
|
||||
|
||||
viewMenu->AddItem( ID_ZOOM_PAGE, _( "Zoom to Fit" ), HELP_ZOOM_FIT,
|
||||
zoom_fit_in_page_xpm, SELECTION_CONDITIONS::ShowAlways );
|
||||
|
||||
viewMenu->AddItem( ID_ZOOM_REDRAW, _( "Redraw\tR" ), HELP_ZOOM_REDRAW,
|
||||
zoom_redraw_xpm, SELECTION_CONDITIONS::ShowAlways );
|
||||
|
||||
viewMenu->AddSeparator();
|
||||
viewMenu->AddItem( ID_ROTATE3D_X_NEG, _( "Rotate X Clockwise\tShift+X" ), "",
|
||||
rotate_neg_x_xpm, SELECTION_CONDITIONS::ShowAlways );
|
||||
|
||||
viewMenu->AddItem( ID_ROTATE3D_X_POS, _( "Rotate X Counterclockwise\tX" ), "",
|
||||
rotate_pos_x_xpm, SELECTION_CONDITIONS::ShowAlways );
|
||||
|
||||
viewMenu->AddSeparator();
|
||||
viewMenu->AddItem( ID_ROTATE3D_Y_NEG, _( "Rotate Y Clockwise\tShift+Y" ), "",
|
||||
rotate_neg_y_xpm, SELECTION_CONDITIONS::ShowAlways );
|
||||
|
||||
viewMenu->AddItem( ID_ROTATE3D_Y_POS, _( "Rotate Y Counterclockwise\tY" ), "",
|
||||
rotate_pos_y_xpm, SELECTION_CONDITIONS::ShowAlways );
|
||||
|
||||
viewMenu->AddSeparator();
|
||||
viewMenu->AddItem( ID_ROTATE3D_Z_NEG, _( "Rotate Z Clockwise\tShift+Z" ), "",
|
||||
rotate_neg_z_xpm, SELECTION_CONDITIONS::ShowAlways );;
|
||||
|
||||
viewMenu->AddItem( ID_ROTATE3D_Z_POS, _( "Rotate Z Counterclockwise\tZ" ), "",
|
||||
rotate_pos_z_xpm, SELECTION_CONDITIONS::ShowAlways );
|
||||
|
||||
viewMenu->AddSeparator();
|
||||
viewMenu->AddItem( ID_MOVE3D_LEFT, _( "Move Left\tLeft" ), "",
|
||||
left_xpm, SELECTION_CONDITIONS::ShowAlways );
|
||||
|
||||
viewMenu->AddItem( ID_MOVE3D_RIGHT, _( "Move Right\tRight" ), "",
|
||||
right_xpm, SELECTION_CONDITIONS::ShowAlways );
|
||||
|
||||
viewMenu->AddItem( ID_MOVE3D_UP, _( "Move Up\tUp" ), "",
|
||||
up_xpm, SELECTION_CONDITIONS::ShowAlways );
|
||||
|
||||
viewMenu->AddItem( ID_MOVE3D_DOWN, _( "Move Down\tDown" ), "",
|
||||
down_xpm, SELECTION_CONDITIONS::ShowAlways );
|
||||
|
||||
viewMenu->Resolve();
|
||||
|
||||
//-- Preferences menu -----------------------------------------------
|
||||
//
|
||||
CONDITIONAL_MENU* prefsMenu = new CONDITIONAL_MENU( false, tool );
|
||||
|
||||
auto raytracingCondition = [ this ] ( const SELECTION& aSel ) {
|
||||
return m_settings.RenderEngineGet() != RENDER_ENGINE_OPENGL_LEGACY;
|
||||
};
|
||||
auto NormalModeCondition = [ this ] ( const SELECTION& aSel ) {
|
||||
return m_settings.MaterialModeGet() == MATERIAL_MODE_NORMAL;
|
||||
};
|
||||
auto DiffuseModeCondition = [ this ] ( const SELECTION& aSel ) {
|
||||
return m_settings.MaterialModeGet() == MATERIAL_MODE_DIFFUSE_ONLY;
|
||||
};
|
||||
auto CADModeCondition = [ this ] ( const SELECTION& aSel ) {
|
||||
return m_settings.MaterialModeGet() == MATERIAL_MODE_CAD_MODE;
|
||||
};
|
||||
auto copperThicknessCondition = [ this ] ( const SELECTION& aSel ) {
|
||||
return m_settings.GetFlag( FL_RENDER_OPENGL_COPPER_THICKNESS );
|
||||
};
|
||||
auto boundingBoxesCondition = [ this ] ( const SELECTION& aSel ) {
|
||||
return m_settings.GetFlag( FL_RENDER_OPENGL_SHOW_MODEL_BBOX );
|
||||
};
|
||||
auto renderShadowsCondition = [ this ] ( const SELECTION& aSel ) {
|
||||
return m_settings.GetFlag( FL_RENDER_RAYTRACING_SHADOWS );
|
||||
};
|
||||
auto proceduralTexturesCondition = [ this ] ( const SELECTION& aSel ) {
|
||||
return m_settings.GetFlag( FL_RENDER_RAYTRACING_PROCEDURAL_TEXTURES );
|
||||
};
|
||||
auto showFloorCondition = [ this ] ( const SELECTION& aSel ) {
|
||||
return m_settings.GetFlag( FL_RENDER_RAYTRACING_BACKFLOOR );
|
||||
};
|
||||
auto useRefractionsCondition = [ this ] ( const SELECTION& aSel ) {
|
||||
return m_settings.GetFlag( FL_RENDER_RAYTRACING_REFRACTIONS );
|
||||
};
|
||||
auto useReflectionsCondition = [ this ] ( const SELECTION& aSel ) {
|
||||
return m_settings.GetFlag( FL_RENDER_RAYTRACING_REFLECTIONS );
|
||||
};
|
||||
auto antiAliasingCondition = [ this ] ( const SELECTION& aSel ) {
|
||||
return m_settings.GetFlag( FL_RENDER_RAYTRACING_ANTI_ALIASING );
|
||||
};
|
||||
auto postProcessCondition = [ this ] ( const SELECTION& aSel ) {
|
||||
return m_settings.GetFlag( FL_RENDER_RAYTRACING_POST_PROCESSING );
|
||||
};
|
||||
auto showAxesCondition = [ this ] ( const SELECTION& aSel ) {
|
||||
return m_settings.GetFlag( FL_AXIS );
|
||||
};
|
||||
|
||||
prefsMenu->AddItem( ID_TOOL_SET_VISIBLE_ITEMS, _( "Display Options" ), "",
|
||||
read_setup_xpm, SELECTION_CONDITIONS::ShowAlways );
|
||||
|
||||
prefsMenu->AddCheckItem( ID_RENDER_CURRENT_VIEW, _( "Raytracing" ), "",
|
||||
tools_xpm, raytracingCondition );
|
||||
|
||||
// Render options submenu
|
||||
CONDITIONAL_MENU* optsSubmenu = new CONDITIONAL_MENU( false, tool );
|
||||
optsSubmenu->SetTitle( _( "Render Options" ) );
|
||||
optsSubmenu->SetIcon( options_3drender_xpm );
|
||||
|
||||
// Material properties submenu
|
||||
CONDITIONAL_MENU* propsSubmenu = new CONDITIONAL_MENU( false, tool );
|
||||
propsSubmenu->SetTitle( _( "Material Properties" ) );
|
||||
propsSubmenu->SetIcon( color_materials_xpm );
|
||||
|
||||
propsSubmenu->AddCheckItem( ID_MENU3D_FL_RENDER_MATERIAL_MODE_NORMAL,
|
||||
_( "Use All Properties" ),
|
||||
_( "Use all material properties from each 3D model file" ),
|
||||
nullptr, NormalModeCondition );
|
||||
|
||||
propsSubmenu->AddCheckItem( ID_MENU3D_FL_RENDER_MATERIAL_MODE_DIFFUSE_ONLY,
|
||||
_( "Use Diffuse Only" ),
|
||||
_( "Use only the diffuse color property from model 3D model file" ),
|
||||
nullptr, DiffuseModeCondition );
|
||||
|
||||
propsSubmenu->AddCheckItem( ID_MENU3D_FL_RENDER_MATERIAL_MODE_CAD_MODE,
|
||||
_( "CAD Color Style" ),
|
||||
_( "Use a CAD color style based on the diffuse color of the material" ),
|
||||
nullptr, CADModeCondition );
|
||||
|
||||
optsSubmenu->AddMenu( propsSubmenu, SELECTION_CONDITIONS::ShowAlways );
|
||||
|
||||
optsSubmenu->AddCheckItem( ID_MENU3D_FL_OPENGL_RENDER_COPPER_THICKNESS,
|
||||
_( "Show Copper Thickness" ),
|
||||
_( "Shows the copper thickness on copper layers (slower loading)" ),
|
||||
use_3D_copper_thickness_xpm, copperThicknessCondition );
|
||||
|
||||
optsSubmenu->AddCheckItem( ID_MENU3D_FL_OPENGL_RENDER_SHOW_MODEL_BBOX,
|
||||
_( "Show Model Bounding Boxes" ), "",
|
||||
ortho_xpm, boundingBoxesCondition );
|
||||
|
||||
// Raytracing submenu
|
||||
CONDITIONAL_MENU* raySubmenu = new CONDITIONAL_MENU( false, tool );
|
||||
raySubmenu->SetTitle( _( "Raytracing Options" ) );
|
||||
raySubmenu->SetIcon( tools_xpm );
|
||||
|
||||
raySubmenu->AddCheckItem( ID_MENU3D_FL_RAYTRACING_RENDER_SHADOWS,
|
||||
_( "Render Shadows" ), "",
|
||||
green_xpm, renderShadowsCondition );
|
||||
|
||||
raySubmenu->AddCheckItem( ID_MENU3D_FL_RAYTRACING_PROCEDURAL_TEXTURES,
|
||||
_( "Procedural Textures" ),
|
||||
_( "Apply procedural textures to materials (slow)"),
|
||||
KiBitmap( green_xpm ), wxITEM_CHECK );
|
||||
green_xpm, proceduralTexturesCondition );
|
||||
|
||||
AddMenuItem( renderOptionsMenu_RAYTRACING, ID_MENU3D_FL_RAYTRACING_BACKFLOOR,
|
||||
raySubmenu->AddCheckItem( ID_MENU3D_FL_RAYTRACING_BACKFLOOR,
|
||||
_( "Add Floor" ),
|
||||
_( "Adds a floor plane below the board (slow)"),
|
||||
KiBitmap( green_xpm ), wxITEM_CHECK );
|
||||
green_xpm, showFloorCondition );
|
||||
|
||||
AddMenuItem( renderOptionsMenu_RAYTRACING, ID_MENU3D_FL_RAYTRACING_REFRACTIONS,
|
||||
raySubmenu->AddCheckItem( ID_MENU3D_FL_RAYTRACING_REFRACTIONS,
|
||||
_( "Refractions" ),
|
||||
_( "Render materials with refractions properties on final render (slow)"),
|
||||
KiBitmap( green_xpm ), wxITEM_CHECK );
|
||||
green_xpm, useRefractionsCondition );
|
||||
|
||||
AddMenuItem( renderOptionsMenu_RAYTRACING, ID_MENU3D_FL_RAYTRACING_REFLECTIONS,
|
||||
raySubmenu->AddCheckItem( ID_MENU3D_FL_RAYTRACING_REFLECTIONS,
|
||||
_( "Reflections" ),
|
||||
_( "Render materials with reflections properties on final render (slow)"),
|
||||
KiBitmap( green_xpm ), wxITEM_CHECK );
|
||||
green_xpm, useReflectionsCondition );
|
||||
|
||||
AddMenuItem( renderOptionsMenu_RAYTRACING, ID_MENU3D_FL_RAYTRACING_ANTI_ALIASING,
|
||||
raySubmenu->AddCheckItem( ID_MENU3D_FL_RAYTRACING_ANTI_ALIASING,
|
||||
_( "Anti-aliasing" ),
|
||||
_( "Render with improved quality on final render (slow)"),
|
||||
KiBitmap( green_xpm ), wxITEM_CHECK );
|
||||
green_xpm, antiAliasingCondition );
|
||||
|
||||
AddMenuItem( renderOptionsMenu_RAYTRACING, ID_MENU3D_FL_RAYTRACING_POST_PROCESSING,
|
||||
raySubmenu->AddCheckItem( ID_MENU3D_FL_RAYTRACING_POST_PROCESSING,
|
||||
_( "Post-processing" ),
|
||||
_( "Apply Screen Space Ambient Occlusion and Global Illumination reflections on final render (slow)"),
|
||||
KiBitmap( green_xpm ), wxITEM_CHECK );
|
||||
green_xpm, postProcessCondition );
|
||||
|
||||
prefsMenu->AppendSeparator();
|
||||
optsSubmenu->AddMenu( raySubmenu, SELECTION_CONDITIONS::ShowAlways );
|
||||
prefsMenu->AddMenu( optsSubmenu, SELECTION_CONDITIONS::ShowAlways );
|
||||
|
||||
prefsMenu->AddSeparator();
|
||||
|
||||
// Colors, axis and grid elements
|
||||
// /////////////////////////////////////////////////////////////////////////
|
||||
// Color submenu
|
||||
CONDITIONAL_MENU* colorSubmenu = new CONDITIONAL_MENU( false, tool );
|
||||
colorSubmenu->SetTitle( _( "Choose Colors" ) );
|
||||
colorSubmenu->SetIcon( palette_xpm );
|
||||
|
||||
// Add submenu set Colors
|
||||
wxMenu * setColorMenu = new wxMenu;
|
||||
AddMenuItem( prefsMenu, setColorMenu, ID_MENU3D_COLOR,
|
||||
_( "Choose Colors" ), KiBitmap( palette_xpm ) );
|
||||
colorSubmenu->AddItem( ID_MENU3D_BGCOLOR_TOP, _( "Background Top Color..." ), "",
|
||||
setcolor_3d_bg_xpm, SELECTION_CONDITIONS::ShowAlways );
|
||||
|
||||
wxMenu * setBgColorMenu = new wxMenu;
|
||||
AddMenuItem( setColorMenu, setBgColorMenu, ID_MENU3D_BGCOLOR,
|
||||
_( "Background Color" ), KiBitmap( palette_xpm ) );
|
||||
colorSubmenu->AddItem( ID_MENU3D_BGCOLOR_BOTTOM, _( "Background Bottom Color..." ), "",
|
||||
setcolor_3d_bg_xpm, SELECTION_CONDITIONS::ShowAlways );
|
||||
|
||||
AddMenuItem( setBgColorMenu, ID_MENU3D_BGCOLOR_TOP_SELECTION,
|
||||
_( "Background Top Color..." ), KiBitmap( setcolor_3d_bg_xpm ) );
|
||||
colorSubmenu->AddItem( ID_MENU3D_SILKSCREEN_COLOR, _( "Silkscreen Color..." ), "",
|
||||
setcolor_silkscreen_xpm, SELECTION_CONDITIONS::ShowAlways );
|
||||
|
||||
AddMenuItem( setBgColorMenu, ID_MENU3D_BGCOLOR_BOTTOM_SELECTION,
|
||||
_( "Background Bottom Color..." ), KiBitmap( setcolor_3d_bg_xpm ) );
|
||||
colorSubmenu->AddItem( ID_MENU3D_SOLDERMASK_COLOR, _( "Solder Mask Color..." ), "",
|
||||
setcolor_soldermask_xpm, SELECTION_CONDITIONS::ShowAlways );
|
||||
|
||||
AddMenuItem( setColorMenu, ID_MENU3D_SILKSCREEN_COLOR_SELECTION,
|
||||
_( "Silkscreen Color..." ), KiBitmap( setcolor_silkscreen_xpm ) );
|
||||
colorSubmenu->AddItem( ID_MENU3D_SOLDERPASTE_COLOR, _( "Solder Paste Color..." ), "",
|
||||
setcolor_solderpaste_xpm, SELECTION_CONDITIONS::ShowAlways );
|
||||
|
||||
AddMenuItem( setColorMenu, ID_MENU3D_SOLDERMASK_COLOR_SELECTION,
|
||||
_( "Solder Mask Color..." ), KiBitmap( setcolor_soldermask_xpm ) );
|
||||
colorSubmenu->AddItem( ID_MENU3D_COPPER_COLOR, _( "Copper/Surface Finish Color..." ), "",
|
||||
setcolor_copper_xpm, SELECTION_CONDITIONS::ShowAlways );
|
||||
|
||||
AddMenuItem( setColorMenu, ID_MENU3D_SOLDERPASTE_COLOR_SELECTION,
|
||||
_( "Solder Paste Color..." ), KiBitmap( setcolor_solderpaste_xpm ) );
|
||||
colorSubmenu->AddItem( ID_MENU3D_PCB_BODY_COLOR, _( "Board Body Color..." ), "",
|
||||
setcolor_board_body_xpm, SELECTION_CONDITIONS::ShowAlways );
|
||||
|
||||
AddMenuItem( setColorMenu, ID_MENU3D_COPPER_COLOR_SELECTION,
|
||||
_( "Copper/Surface Finish Color..." ), KiBitmap( setcolor_copper_xpm ) );
|
||||
prefsMenu->AddMenu( colorSubmenu );
|
||||
|
||||
AddMenuItem( setColorMenu, ID_MENU3D_PCB_BODY_COLOR_SELECTION,
|
||||
_( "Board Body Color..." ), KiBitmap( setcolor_board_body_xpm ) );
|
||||
prefsMenu->AddCheckItem( ID_MENU3D_AXIS_ONOFF, _( "Show 3D &Axis" ), "",
|
||||
axis3d_front_xpm, showAxesCondition );
|
||||
|
||||
AddMenuItem( prefsMenu, ID_MENU3D_AXIS_ONOFF,
|
||||
_( "Show 3D &Axis" ), KiBitmap( axis3d_front_xpm ), wxITEM_CHECK );
|
||||
// Grid submenu
|
||||
CONDITIONAL_MENU* gridSubmenu = new CONDITIONAL_MENU( false, tool );
|
||||
gridSubmenu->SetTitle( _( "3D Grid" ) );
|
||||
gridSubmenu->SetIcon( grid_xpm );
|
||||
|
||||
auto noGridCondition = [ this ] ( const SELECTION& aSel ) {
|
||||
return m_settings.GridGet() == GRID3D_NONE;
|
||||
};
|
||||
auto grid10mmCondition = [ this ] ( const SELECTION& aSel ) {
|
||||
return m_settings.GridGet() == GRID3D_10MM;
|
||||
};
|
||||
auto grid5mmCondition = [ this ] ( const SELECTION& aSel ) {
|
||||
return m_settings.GridGet() == GRID3D_5MM;
|
||||
};
|
||||
auto grid2p5mmCondition = [ this ] ( const SELECTION& aSel ) {
|
||||
return m_settings.GridGet() == GRID3D_2P5MM;
|
||||
};
|
||||
auto grid_1mmCondition = [ this ] ( const SELECTION& aSel ) {
|
||||
return m_settings.GridGet() == GRID3D_1MM;
|
||||
};
|
||||
|
||||
// Creates grid menu
|
||||
// /////////////////////////////////////////////////////////////////////////
|
||||
gridSubmenu->AddCheckItem( ID_MENU3D_GRID_NOGRID, _( "No 3D Grid" ), "",
|
||||
nullptr, noGridCondition );
|
||||
gridSubmenu->AddCheckItem( ID_MENU3D_GRID_10_MM, _( "3D Grid 10mm" ), "",
|
||||
nullptr, grid10mmCondition );
|
||||
gridSubmenu->AddCheckItem( ID_MENU3D_GRID_5_MM, _( "3D Grid 5mm" ), "",
|
||||
nullptr, grid5mmCondition );
|
||||
gridSubmenu->AddCheckItem( ID_MENU3D_GRID_2P5_MM, _( "3D Grid 2.5mm" ), "",
|
||||
nullptr, grid2p5mmCondition );
|
||||
gridSubmenu->AddCheckItem( ID_MENU3D_GRID_1_MM, _( "3D Grid 1mm" ), "",
|
||||
nullptr, grid_1mmCondition );
|
||||
|
||||
wxMenu * gridlistMenu = new wxMenu;
|
||||
AddMenuItem( prefsMenu, gridlistMenu, ID_MENU3D_GRID,
|
||||
_( "3D Grid" ), KiBitmap( grid_xpm ) );
|
||||
gridlistMenu->AppendRadioItem( ID_MENU3D_GRID_NOGRID, _( "No 3D Grid" ), wxEmptyString );
|
||||
gridlistMenu->AppendRadioItem( ID_MENU3D_GRID_10_MM, _( "3D Grid 10 mm" ), wxEmptyString );
|
||||
gridlistMenu->AppendRadioItem( ID_MENU3D_GRID_5_MM, _( "3D Grid 5 mm" ), wxEmptyString );
|
||||
gridlistMenu->AppendRadioItem( ID_MENU3D_GRID_2P5_MM, _( "3D Grid 2.5 mm" ), wxEmptyString );
|
||||
gridlistMenu->AppendRadioItem( ID_MENU3D_GRID_1_MM, _( "3D Grid 1 mm" ), wxEmptyString );
|
||||
prefsMenu->AddMenu( gridSubmenu, SELECTION_CONDITIONS::ShowAlways );
|
||||
|
||||
// If the grid is on, check the corresponding menuitem showing the grid size
|
||||
if( m_settings.GridGet() != GRID3D_NONE )
|
||||
{
|
||||
gridlistMenu->Check( ID_MENU3D_GRID_10_MM, m_settings.GridGet() == GRID3D_10MM );
|
||||
gridlistMenu->Check( ID_MENU3D_GRID_5_MM, m_settings.GridGet() == GRID3D_5MM );
|
||||
gridlistMenu->Check( ID_MENU3D_GRID_2P5_MM, m_settings.GridGet() == GRID3D_2P5MM );
|
||||
gridlistMenu->Check( ID_MENU3D_GRID_1_MM, m_settings.GridGet() == GRID3D_1MM );
|
||||
}
|
||||
else
|
||||
gridlistMenu->Check( ID_MENU3D_GRID_NOGRID, true );
|
||||
prefsMenu->AddSeparator();
|
||||
prefsMenu->AddItem( ID_MENU3D_RESET_DEFAULTS, _( "Reset to Default Settings" ), "",
|
||||
tools_xpm, SELECTION_CONDITIONS::ShowAlways );
|
||||
|
||||
// Reset options
|
||||
// /////////////////////////////////////////////////////////////////////////
|
||||
prefsMenu->AppendSeparator();
|
||||
#ifdef __APPLE__ // Note: will get moved to Apple menu by wxWidgets
|
||||
prefsMenu->AddItem( wxID_PREFERENCES,
|
||||
_( "Preferences...\tCTRL+," ),
|
||||
_( "Show preferences for all open tools" ),
|
||||
preference_xpm, SELECTION_CONDITIONS::ShowAlways );
|
||||
#endif
|
||||
|
||||
AddMenuItem( prefsMenu, ID_MENU3D_RESET_DEFAULTS,
|
||||
_( "Reset to Default Settings" ),
|
||||
KiBitmap( tools_xpm ) );
|
||||
prefsMenu->Resolve();
|
||||
|
||||
// Help menu
|
||||
// /////////////////////////////////////////////////////////////////////////
|
||||
menuBar->Append( helpMenu, _( "&Help" ) );
|
||||
|
||||
AddMenuItem( helpMenu, wxID_HELP,
|
||||
_( "Pcbnew &Manual" ),
|
||||
_( "Open Pcbnew Manual" ),
|
||||
KiBitmap( online_help_xpm ) );
|
||||
|
||||
AddMenuItem( helpMenu, wxID_INDEX,
|
||||
_( "&Getting Started in KiCad" ),
|
||||
_( "Open \"Getting Started in KiCad\" guide for beginners" ),
|
||||
KiBitmap( help_xpm ) );
|
||||
|
||||
wxString text = AddHotkeyName( _( "&List Hotkeys..." ), GetHotkeyConfig(), HK_HELP );
|
||||
AddMenuItem( helpMenu, ID_MENU3D_HELP_HOTKEY_SHOW_CURRENT_LIST,
|
||||
text,
|
||||
_( "Displays the current hotkeys list and corresponding commands" ),
|
||||
KiBitmap( hotkeys_xpm ) );
|
||||
|
||||
helpMenu->AppendSeparator();
|
||||
|
||||
AddMenuItem( helpMenu, ID_HELP_GET_INVOLVED,
|
||||
_( "Get &Involved" ),
|
||||
_( "Contribute to KiCad (opens a web browser)" ),
|
||||
KiBitmap( info_xpm ) );
|
||||
|
||||
helpMenu->AppendSeparator();
|
||||
|
||||
AddMenuItem( helpMenu, wxID_ABOUT,
|
||||
_( "&About KiCad" ),
|
||||
_( "Display KiCad About dialog" ),
|
||||
KiBitmap( about_xpm ) );
|
||||
//-- Menubar -------------------------------------------------------------
|
||||
//
|
||||
menuBar->Append( fileMenu, _( "&File" ) );
|
||||
menuBar->Append( editMenu, _( "&Edit" ) );
|
||||
menuBar->Append( viewMenu, _( "&View" ) );
|
||||
menuBar->Append( prefsMenu, _( "&Preferences" ) );
|
||||
AddStandardHelpMenu( menuBar );
|
||||
|
||||
SetMenuBar( menuBar );
|
||||
}
|
||||
|
||||
@@ -22,27 +22,21 @@
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
/**
|
||||
* @file eda_3d_viewer.cpp
|
||||
* @brief Implements a 3d viewer windows GUI
|
||||
*/
|
||||
|
||||
#include "eda_3d_viewer.h"
|
||||
|
||||
#include "../3d_viewer_id.h"
|
||||
#include "../common_ogl/cogl_att_list.h"
|
||||
|
||||
#include <3d_actions.h>
|
||||
#include <bitmaps.h>
|
||||
#include <dpi_scaling.h>
|
||||
#include <gestfich.h>
|
||||
#include <lru_cache.h>
|
||||
#include <pgm_base.h>
|
||||
#include <project.h>
|
||||
#include <wildcards_and_files_ext.h>
|
||||
|
||||
#include <tool/tool_manager.h>
|
||||
#include <tool/common_control.h>
|
||||
#include <hotkeys_basic.h>
|
||||
#include <wx/colordlg.h>
|
||||
#include <wx/colourdata.h>
|
||||
#include <wx/toolbar.h>
|
||||
|
||||
|
||||
@@ -86,11 +80,8 @@ static const wxChar keyBoardBodyColor_Red[] = wxT( "BoardBodyColor_Red" );
|
||||
static const wxChar keyBoardBodyColor_Green[] = wxT( "BoardBodyColor_Green" );
|
||||
static const wxChar keyBoardBodyColor_Blue[] = wxT( "BoardBodyColor_Blue" );
|
||||
|
||||
static const wxChar keyMousewheelPanning[] = wxT( "MousewheelPAN3D" );
|
||||
|
||||
static const wxChar keyShowRealisticMode[] = wxT( "ShowRealisticMode" );
|
||||
static const wxChar keyRenderEngine[] = wxT( "RenderEngine" );
|
||||
//static const wxChar keyRenderTextures[] = wxT( "Render_Textures" );
|
||||
static const wxChar keyRenderMaterial[] = wxT( "Render_Material" );
|
||||
|
||||
static const wxChar keyRenderOGL_ShowCopperTck[]= wxT( "Render_OGL_ShowCopperThickness" );
|
||||
@@ -131,27 +122,18 @@ BEGIN_EVENT_TABLE( EDA_3D_VIEWER, EDA_BASE_FRAME )
|
||||
|
||||
EVT_TOOL( ID_TOOL_SET_VISIBLE_ITEMS, EDA_3D_VIEWER::Install3DViewOptionDialog )
|
||||
|
||||
EVT_MENU( wxID_EXIT, EDA_3D_VIEWER::Exit3DFrame )
|
||||
EVT_MENU( wxID_CLOSE, EDA_3D_VIEWER::Exit3DFrame )
|
||||
EVT_MENU( ID_RENDER_CURRENT_VIEW, EDA_3D_VIEWER::OnRenderEngineSelection )
|
||||
EVT_MENU( ID_DISABLE_RAY_TRACING, EDA_3D_VIEWER::OnDisableRayTracing )
|
||||
|
||||
EVT_MENU_RANGE( ID_MENU3D_GRID, ID_MENU3D_GRID_END, EDA_3D_VIEWER::On3DGridSelection )
|
||||
EVT_MENU( wxID_ABOUT, EDA_BASE_FRAME::GetKicadAbout )
|
||||
|
||||
EVT_CLOSE( EDA_3D_VIEWER::OnCloseWindow )
|
||||
|
||||
EVT_UPDATE_UI( ID_RENDER_CURRENT_VIEW, EDA_3D_VIEWER::OnUpdateUIEngine )
|
||||
EVT_UPDATE_UI_RANGE( ID_MENU3D_FL_RENDER_MATERIAL_MODE_NORMAL,
|
||||
ID_MENU3D_FL_RENDER_MATERIAL_MODE_CAD_MODE,
|
||||
EDA_3D_VIEWER::OnUpdateUIMaterial )
|
||||
EVT_UPDATE_UI_RANGE( ID_MENU3D_FL_OPENGL_RENDER_COPPER_THICKNESS,
|
||||
ID_MENU3D_FL_OPENGL_RENDER_SHOW_MODEL_BBOX,
|
||||
EDA_3D_VIEWER::OnUpdateUIOpenGL )
|
||||
EVT_UPDATE_UI_RANGE( ID_MENU3D_FL_RAYTRACING_RENDER_SHADOWS,
|
||||
ID_MENU3D_FL_RAYTRACING_PROCEDURAL_TEXTURES,
|
||||
EDA_3D_VIEWER::OnUpdateUIRayTracing )
|
||||
|
||||
EVT_UPDATE_UI( ID_RENDER_CURRENT_VIEW, EDA_3D_VIEWER::OnUpdateUIEngine )
|
||||
EVT_UPDATE_UI( ID_MENU3D_AXIS_ONOFF, EDA_3D_VIEWER::OnUpdateUIAxis )
|
||||
EVT_CLOSE( EDA_3D_VIEWER::OnCloseWindow )
|
||||
END_EVENT_TABLE()
|
||||
|
||||
|
||||
@@ -160,12 +142,14 @@ EDA_3D_VIEWER::EDA_3D_VIEWER( KIWAY *aKiway, PCB_BASE_FRAME *aParent,
|
||||
KIWAY_PLAYER( aKiway, aParent,
|
||||
FRAME_PCB_DISPLAY3D, aTitle,
|
||||
wxDefaultPosition, wxDefaultSize,
|
||||
style, VIEWER3D_FRAMENAME )
|
||||
style, QUALIFIED_VIEWER3D_FRAMENAME( aParent ) )
|
||||
{
|
||||
wxLogTrace( m_logTrace, "EDA_3D_VIEWER::EDA_3D_VIEWER %s", aTitle );
|
||||
|
||||
m_canvas = NULL;
|
||||
m_disable_ray_tracing = false;
|
||||
m_mainToolBar = nullptr;
|
||||
m_AboutTitle = "3D Viewer";
|
||||
|
||||
// Give it an icon
|
||||
wxIcon icon;
|
||||
@@ -193,6 +177,15 @@ EDA_3D_VIEWER::EDA_3D_VIEWER( KIWAY *aKiway, PCB_BASE_FRAME *aParent,
|
||||
// Some settings need the canvas
|
||||
loadCommonSettings();
|
||||
|
||||
// Create the manager
|
||||
m_toolManager = new TOOL_MANAGER;
|
||||
m_toolManager->SetEnvironment( nullptr, nullptr, nullptr, this );
|
||||
|
||||
// Register tools
|
||||
m_toolManager->RegisterTool( new COMMON_CONTROL );
|
||||
m_actions = new EDA_3D_ACTIONS();
|
||||
m_toolManager->InitTools();
|
||||
|
||||
CreateMenuBar();
|
||||
ReCreateMainToolbar();
|
||||
|
||||
@@ -223,7 +216,7 @@ EDA_3D_VIEWER::~EDA_3D_VIEWER()
|
||||
|
||||
// m_canvas delete will be called by wxWidget manager
|
||||
//delete m_canvas;
|
||||
//m_canvas = 0;
|
||||
//m_canvas = nullptr;
|
||||
}
|
||||
|
||||
|
||||
@@ -263,7 +256,7 @@ void EDA_3D_VIEWER::OnCloseWindow( wxCloseEvent &event )
|
||||
|
||||
// m_canvas delete will be called by wxWidget manager
|
||||
//delete m_canvas;
|
||||
//m_canvas = 0;
|
||||
//m_canvas = nullptr;
|
||||
|
||||
Destroy();
|
||||
event.Skip( true );
|
||||
@@ -376,7 +369,7 @@ void EDA_3D_VIEWER::Process_Special_Functions( wxCommandEvent &event )
|
||||
takeScreenshot( event );
|
||||
return;
|
||||
|
||||
case ID_MENU3D_BGCOLOR_BOTTOM_SELECTION:
|
||||
case ID_MENU3D_BGCOLOR_BOTTOM:
|
||||
if( Set3DColorFromUser( m_settings.m_BgColorBot, _( "Background Color, Bottom" ),
|
||||
nullptr ) )
|
||||
{
|
||||
@@ -387,7 +380,7 @@ void EDA_3D_VIEWER::Process_Special_Functions( wxCommandEvent &event )
|
||||
}
|
||||
return;
|
||||
|
||||
case ID_MENU3D_BGCOLOR_TOP_SELECTION:
|
||||
case ID_MENU3D_BGCOLOR_TOP:
|
||||
if( Set3DColorFromUser( m_settings.m_BgColorTop, _( "Background Color, Top" ), nullptr ) )
|
||||
{
|
||||
if( m_settings.RenderEngineGet() == RENDER_ENGINE_OPENGL_LEGACY )
|
||||
@@ -397,23 +390,23 @@ void EDA_3D_VIEWER::Process_Special_Functions( wxCommandEvent &event )
|
||||
}
|
||||
return;
|
||||
|
||||
case ID_MENU3D_SILKSCREEN_COLOR_SELECTION:
|
||||
case ID_MENU3D_SILKSCREEN_COLOR:
|
||||
Set3DSilkScreenColorFromUser();
|
||||
return;
|
||||
|
||||
case ID_MENU3D_SOLDERMASK_COLOR_SELECTION:
|
||||
case ID_MENU3D_SOLDERMASK_COLOR:
|
||||
Set3DSolderMaskColorFromUser();
|
||||
return;
|
||||
|
||||
case ID_MENU3D_SOLDERPASTE_COLOR_SELECTION:
|
||||
case ID_MENU3D_SOLDERPASTE_COLOR:
|
||||
Set3DSolderPasteColorFromUser();
|
||||
return;
|
||||
|
||||
case ID_MENU3D_COPPER_COLOR_SELECTION:
|
||||
case ID_MENU3D_COPPER_COLOR:
|
||||
Set3DCopperColorFromUser();
|
||||
break;
|
||||
|
||||
case ID_MENU3D_PCB_BODY_COLOR_SELECTION:
|
||||
case ID_MENU3D_PCB_BODY_COLOR:
|
||||
Set3DBoardBodyColorFromUser();
|
||||
break;
|
||||
|
||||
@@ -556,12 +549,6 @@ void EDA_3D_VIEWER::Process_Special_Functions( wxCommandEvent &event )
|
||||
}
|
||||
return;
|
||||
|
||||
case ID_MENU3D_HELP_HOTKEY_SHOW_CURRENT_LIST:
|
||||
{
|
||||
DisplayHotKeys();
|
||||
}
|
||||
return;
|
||||
|
||||
default:
|
||||
wxFAIL_MSG( "Invalid event in EDA_3D_VIEWER::Process_Special_Functions()" );
|
||||
return;
|
||||
@@ -580,29 +567,28 @@ void EDA_3D_VIEWER::On3DGridSelection( wxCommandEvent &event )
|
||||
|
||||
switch( id )
|
||||
{
|
||||
case ID_MENU3D_GRID_NOGRID:
|
||||
m_settings.GridSet( GRID3D_NONE );
|
||||
break;
|
||||
case ID_MENU3D_GRID_NOGRID: m_settings.GridSet( GRID3D_NONE ); break;
|
||||
case ID_MENU3D_GRID_10_MM: m_settings.GridSet( GRID3D_10MM ); break;
|
||||
case ID_MENU3D_GRID_5_MM: m_settings.GridSet( GRID3D_5MM ); break;
|
||||
case ID_MENU3D_GRID_2P5_MM: m_settings.GridSet( GRID3D_2P5MM ); break;
|
||||
case ID_MENU3D_GRID_1_MM: m_settings.GridSet( GRID3D_1MM ); break;
|
||||
|
||||
case ID_MENU3D_GRID_10_MM:
|
||||
m_settings.GridSet( GRID3D_10MM );
|
||||
break;
|
||||
default: wxFAIL_MSG( "Invalid event in EDA_3D_VIEWER::On3DGridSelection()" );
|
||||
}
|
||||
|
||||
case ID_MENU3D_GRID_5_MM:
|
||||
m_settings.GridSet( GRID3D_5MM );
|
||||
break;
|
||||
int menu_ids[]
|
||||
{
|
||||
ID_MENU3D_GRID_NOGRID, ID_MENU3D_GRID_10_MM, ID_MENU3D_GRID_5_MM,
|
||||
ID_MENU3D_GRID_2P5_MM, ID_MENU3D_GRID_1_MM
|
||||
};
|
||||
|
||||
case ID_MENU3D_GRID_2P5_MM:
|
||||
m_settings.GridSet( GRID3D_2P5MM );
|
||||
break;
|
||||
// Refresh checkmarks
|
||||
wxMenuBar* menuBar = GetMenuBar();
|
||||
|
||||
case ID_MENU3D_GRID_1_MM:
|
||||
m_settings.GridSet( GRID3D_1MM );
|
||||
break;
|
||||
|
||||
default:
|
||||
wxFAIL_MSG( "Invalid event in EDA_3D_VIEWER::On3DGridSelection()" );
|
||||
return;
|
||||
for( int ii = 0; ii < 5; ii++ )
|
||||
{
|
||||
wxMenuItem* item = menuBar->FindItem( menu_ids[ii] );
|
||||
item->Check( menu_ids[ii] == id );
|
||||
}
|
||||
|
||||
if( m_canvas )
|
||||
@@ -641,25 +627,11 @@ void EDA_3D_VIEWER::ProcessZoom( wxCommandEvent &event )
|
||||
|
||||
switch( id )
|
||||
{
|
||||
case ID_ZOOM_PAGE:
|
||||
m_canvas->SetView3D( WXK_HOME );
|
||||
break;
|
||||
|
||||
case ID_ZOOM_IN:
|
||||
m_canvas->SetView3D( WXK_F1 );
|
||||
break;
|
||||
|
||||
case ID_ZOOM_OUT:
|
||||
m_canvas->SetView3D( WXK_F2 );
|
||||
break;
|
||||
|
||||
case ID_ZOOM_REDRAW:
|
||||
m_canvas->Request_refresh();
|
||||
break;
|
||||
|
||||
default:
|
||||
wxFAIL_MSG( "Invalid event in EDA_3D_VIEWER::ProcessZoom()" );
|
||||
return;
|
||||
case ID_ZOOM_PAGE: m_canvas->SetView3D( WXK_HOME ); break;
|
||||
case ID_ZOOM_IN: m_canvas->SetView3D( WXK_F1 ); break;
|
||||
case ID_ZOOM_OUT: m_canvas->SetView3D( WXK_F2 ); break;
|
||||
case ID_ZOOM_REDRAW: m_canvas->Request_refresh(); break;
|
||||
default: wxFAIL_MSG( "Invalid event in EDA_3D_VIEWER::ProcessZoom()" );
|
||||
}
|
||||
|
||||
m_canvas->DisplayStatus();
|
||||
@@ -759,7 +731,7 @@ void EDA_3D_VIEWER::LoadSettings( wxConfigBase *aCfg )
|
||||
aCfg->Read( keyRenderRAY_Shadows, &tmp, true );
|
||||
m_settings.SetFlag( FL_RENDER_RAYTRACING_SHADOWS, tmp );
|
||||
|
||||
aCfg->Read( keyRenderRAY_Backfloor, &tmp, true );
|
||||
aCfg->Read( keyRenderRAY_Backfloor, &tmp, false );
|
||||
m_settings.SetFlag( FL_RENDER_RAYTRACING_BACKFLOOR, tmp );
|
||||
|
||||
aCfg->Read( keyRenderRAY_Refractions, &tmp, true );
|
||||
@@ -902,12 +874,12 @@ void EDA_3D_VIEWER::SaveSettings( wxConfigBase *aCfg )
|
||||
}
|
||||
|
||||
|
||||
void EDA_3D_VIEWER::CommonSettingsChanged()
|
||||
void EDA_3D_VIEWER::CommonSettingsChanged( bool aEnvVarsChanged )
|
||||
{
|
||||
wxLogTrace( m_logTrace, "EDA_3D_VIEWER::CommonSettingsChanged" );
|
||||
|
||||
// Regen menu bars, etc
|
||||
EDA_BASE_FRAME::CommonSettingsChanged();
|
||||
EDA_BASE_FRAME::CommonSettingsChanged( aEnvVarsChanged );
|
||||
|
||||
// There is no base class that handles toolbars for this frame
|
||||
ReCreateMainToolbar();
|
||||
@@ -918,20 +890,6 @@ void EDA_3D_VIEWER::CommonSettingsChanged()
|
||||
}
|
||||
|
||||
|
||||
void EDA_3D_VIEWER::OnLeftClick( wxDC *DC, const wxPoint &MousePos )
|
||||
{
|
||||
wxLogTrace( m_logTrace, "EDA_3D_VIEWER::OnLeftClick" );
|
||||
// Do nothing
|
||||
}
|
||||
|
||||
|
||||
void EDA_3D_VIEWER::OnRightClick( const wxPoint &MousePos, wxMenu *PopMenu )
|
||||
{
|
||||
wxLogTrace( m_logTrace, "EDA_3D_VIEWER::OnRightClick" );
|
||||
// Do nothing
|
||||
}
|
||||
|
||||
|
||||
void EDA_3D_VIEWER::OnKeyEvent( wxKeyEvent& event )
|
||||
{
|
||||
if( m_canvas )
|
||||
@@ -941,13 +899,6 @@ void EDA_3D_VIEWER::OnKeyEvent( wxKeyEvent& event )
|
||||
}
|
||||
|
||||
|
||||
void EDA_3D_VIEWER::RedrawActiveWindow( wxDC *DC, bool EraseBg )
|
||||
{
|
||||
wxLogTrace( m_logTrace, "EDA_3D_VIEWER::RedrawActiveWindow" );
|
||||
// Do nothing
|
||||
}
|
||||
|
||||
|
||||
void EDA_3D_VIEWER::takeScreenshot( wxCommandEvent& event )
|
||||
{
|
||||
wxString fullFileName;
|
||||
@@ -1064,129 +1015,118 @@ bool EDA_3D_VIEWER::Set3DColorFromUser( SFVEC3D &aColor, const wxString& aTitle,
|
||||
|
||||
bool EDA_3D_VIEWER::Set3DSilkScreenColorFromUser()
|
||||
{
|
||||
CUSTOM_COLORS_LIST definedColors;
|
||||
definedColors.push_back( CUSTOM_COLOR_ITEM( 241.0/255.0, 241.0/255.0, 241.0/255.0, "White" ) );
|
||||
definedColors.push_back( CUSTOM_COLOR_ITEM( 4.0/255.0, 18.0/255.0, 21.0/255.0, "Dark" ) );
|
||||
CUSTOM_COLORS_LIST colors;
|
||||
|
||||
bool change = Set3DColorFromUser( m_settings.m_SilkScreenColor,
|
||||
_( "Solder Mask Color" ), &definedColors );
|
||||
colors.push_back( CUSTOM_COLOR_ITEM( 241.0/255.0, 241.0/255.0, 241.0/255.0, "White" ) );
|
||||
colors.push_back( CUSTOM_COLOR_ITEM( 4.0/255.0, 18.0/255.0, 21.0/255.0, "Dark" ) );
|
||||
|
||||
if( change )
|
||||
if( Set3DColorFromUser( m_settings.m_SilkScreenColor, _( "Silkscreen Color" ), &colors ) )
|
||||
{
|
||||
NewDisplay( true );
|
||||
return true;
|
||||
}
|
||||
|
||||
return change;
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
bool EDA_3D_VIEWER::Set3DSolderMaskColorFromUser()
|
||||
{
|
||||
CUSTOM_COLORS_LIST definedColors;
|
||||
CUSTOM_COLORS_LIST colors;
|
||||
|
||||
definedColors.push_back( CUSTOM_COLOR_ITEM( 20/255.0, 51/255.0, 36/255.0, "Green" ) );
|
||||
definedColors.push_back( CUSTOM_COLOR_ITEM( 91/255.0, 168/255.0, 12/255.0, "Light Green" ) );
|
||||
definedColors.push_back( CUSTOM_COLOR_ITEM( 13/255.0, 104/255.0, 11/255.0,
|
||||
"Saturated Green" ) );
|
||||
definedColors.push_back( CUSTOM_COLOR_ITEM( 181/255.0, 19/255.0, 21/255.0, "Red" ) );
|
||||
definedColors.push_back( CUSTOM_COLOR_ITEM( 239/255.0, 53/255.0, 41/255.0,
|
||||
"Red Light Orange" ) );
|
||||
definedColors.push_back( CUSTOM_COLOR_ITEM( 210/255.0, 40/255.0, 14/255.0, "Red 2" ) );
|
||||
definedColors.push_back( CUSTOM_COLOR_ITEM( 2/255.0, 59/255.0, 162/255.0, "Blue" ) );
|
||||
definedColors.push_back( CUSTOM_COLOR_ITEM( 54/255.0, 79/255.0, 116/255.0, "Light blue 1" ) );
|
||||
definedColors.push_back( CUSTOM_COLOR_ITEM( 61/255.0, 85/255.0, 130/255.0, "Light blue 2" ) );
|
||||
definedColors.push_back( CUSTOM_COLOR_ITEM( 21/255.0, 70/255.0, 80/255.0,
|
||||
"Green blue (dark)" ) );
|
||||
definedColors.push_back( CUSTOM_COLOR_ITEM( 11/255.0, 11/255.0, 11/255.0, "Black" ) );
|
||||
definedColors.push_back( CUSTOM_COLOR_ITEM( 245/255.0, 245/255.0, 245/255.0, "White" ) );
|
||||
definedColors.push_back( CUSTOM_COLOR_ITEM( 119/255.0, 31/255.0, 91/255.0, "Purple" ) );
|
||||
definedColors.push_back( CUSTOM_COLOR_ITEM( 32/255.0, 2/255.0, 53/255.0, "Purple Dark" ) );
|
||||
colors.push_back( CUSTOM_COLOR_ITEM( 20/255.0, 51/255.0, 36/255.0, "Green" ) );
|
||||
colors.push_back( CUSTOM_COLOR_ITEM( 91/255.0, 168/255.0, 12/255.0, "Light Green" ) );
|
||||
colors.push_back( CUSTOM_COLOR_ITEM( 13/255.0, 104/255.0, 11/255.0, "Saturated Green" ) );
|
||||
colors.push_back( CUSTOM_COLOR_ITEM( 181/255.0, 19/255.0, 21/255.0, "Red" ) );
|
||||
colors.push_back( CUSTOM_COLOR_ITEM( 239/255.0, 53/255.0, 41/255.0, "Red Light Orange" ) );
|
||||
colors.push_back( CUSTOM_COLOR_ITEM( 210/255.0, 40/255.0, 14/255.0, "Red 2" ) );
|
||||
colors.push_back( CUSTOM_COLOR_ITEM( 2/255.0, 59/255.0, 162/255.0, "Blue" ) );
|
||||
colors.push_back( CUSTOM_COLOR_ITEM( 54/255.0, 79/255.0, 116/255.0, "Light blue 1" ) );
|
||||
colors.push_back( CUSTOM_COLOR_ITEM( 61/255.0, 85/255.0, 130/255.0, "Light blue 2" ) );
|
||||
colors.push_back( CUSTOM_COLOR_ITEM( 21/255.0, 70/255.0, 80/255.0, "Green blue (dark)" ) );
|
||||
colors.push_back( CUSTOM_COLOR_ITEM( 11/255.0, 11/255.0, 11/255.0, "Black" ) );
|
||||
colors.push_back( CUSTOM_COLOR_ITEM( 245/255.0, 245/255.0, 245/255.0, "White" ) );
|
||||
colors.push_back( CUSTOM_COLOR_ITEM( 119/255.0, 31/255.0, 91/255.0, "Purple" ) );
|
||||
colors.push_back( CUSTOM_COLOR_ITEM( 32/255.0, 2/255.0, 53/255.0, "Purple Dark" ) );
|
||||
|
||||
bool change = Set3DColorFromUser( m_settings.m_SolderMaskColor,
|
||||
_( "Solder Mask Color" ),
|
||||
&definedColors );
|
||||
|
||||
if( change )
|
||||
if( Set3DColorFromUser( m_settings.m_SolderMaskColor, _( "Solder Mask Color" ), &colors ) )
|
||||
{
|
||||
NewDisplay( true );
|
||||
return true;
|
||||
}
|
||||
|
||||
return change;
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
bool EDA_3D_VIEWER::Set3DCopperColorFromUser()
|
||||
{
|
||||
CUSTOM_COLORS_LIST definedColors;
|
||||
CUSTOM_COLORS_LIST colors;
|
||||
|
||||
definedColors.push_back( CUSTOM_COLOR_ITEM( 184/255.0, 115/255.0, 50/255.0, "Copper" ) );
|
||||
definedColors.push_back( CUSTOM_COLOR_ITEM( 178/255.0, 156/255.0, 0.0, "Gold" ) );
|
||||
definedColors.push_back( CUSTOM_COLOR_ITEM( 213/255.0, 213/255.0, 213/255.0, "Silver" ) );
|
||||
definedColors.push_back( CUSTOM_COLOR_ITEM( 160/255.0, 160/255.0, 160/255.0, "Tin" ) );
|
||||
colors.push_back( CUSTOM_COLOR_ITEM( 184/255.0, 115/255.0, 50/255.0, "Copper" ) );
|
||||
colors.push_back( CUSTOM_COLOR_ITEM( 178/255.0, 156/255.0, 0.0, "Gold" ) );
|
||||
colors.push_back( CUSTOM_COLOR_ITEM( 213/255.0, 213/255.0, 213/255.0, "Silver" ) );
|
||||
colors.push_back( CUSTOM_COLOR_ITEM( 160/255.0, 160/255.0, 160/255.0, "Tin" ) );
|
||||
|
||||
bool change = Set3DColorFromUser( m_settings.m_CopperColor, _( "Copper Color" ),
|
||||
&definedColors );
|
||||
|
||||
if( change )
|
||||
if( Set3DColorFromUser( m_settings.m_CopperColor, _( "Copper Color" ), &colors ) )
|
||||
{
|
||||
NewDisplay( true );
|
||||
return true;
|
||||
}
|
||||
|
||||
return change;
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
bool EDA_3D_VIEWER::Set3DBoardBodyColorFromUser()
|
||||
{
|
||||
CUSTOM_COLORS_LIST definedColors;
|
||||
CUSTOM_COLORS_LIST colors;
|
||||
|
||||
definedColors.push_back( CUSTOM_COLOR_ITEM( 51/255.0, 43/255.0, 22/255.0,
|
||||
"FR4 natural, dark" ) );
|
||||
definedColors.push_back( CUSTOM_COLOR_ITEM( 109/255.0, 116/255.0, 75/255.0, "FR4 natural" ) );
|
||||
definedColors.push_back( CUSTOM_COLOR_ITEM( 78/255.0, 14/255.0, 5/255.0, "brown/red" ) );
|
||||
definedColors.push_back( CUSTOM_COLOR_ITEM( 146/255.0, 99/255.0, 47/255.0, "brown 1" ) );
|
||||
definedColors.push_back( CUSTOM_COLOR_ITEM( 160/255.0, 123/255.0, 54/255.0, "brown 2" ) );
|
||||
definedColors.push_back( CUSTOM_COLOR_ITEM( 146/255.0, 99/255.0, 47/255.0, "brown 3" ) );
|
||||
definedColors.push_back( CUSTOM_COLOR_ITEM( 63/255.0, 126/255.0, 71/255.0, "green 1" ) );
|
||||
definedColors.push_back( CUSTOM_COLOR_ITEM( 117/255.0, 122/255.0, 90/255.0, "green 2" ) );
|
||||
colors.push_back( CUSTOM_COLOR_ITEM( 51/255.0, 43/255.0, 22/255.0, "FR4 natural, dark" ) );
|
||||
colors.push_back( CUSTOM_COLOR_ITEM( 109/255.0, 116/255.0, 75/255.0, "FR4 natural" ) );
|
||||
colors.push_back( CUSTOM_COLOR_ITEM( 78/255.0, 14/255.0, 5/255.0, "brown/red" ) );
|
||||
colors.push_back( CUSTOM_COLOR_ITEM( 146/255.0, 99/255.0, 47/255.0, "brown 1" ) );
|
||||
colors.push_back( CUSTOM_COLOR_ITEM( 160/255.0, 123/255.0, 54/255.0, "brown 2" ) );
|
||||
colors.push_back( CUSTOM_COLOR_ITEM( 146/255.0, 99/255.0, 47/255.0, "brown 3" ) );
|
||||
colors.push_back( CUSTOM_COLOR_ITEM( 63/255.0, 126/255.0, 71/255.0, "green 1" ) );
|
||||
colors.push_back( CUSTOM_COLOR_ITEM( 117/255.0, 122/255.0, 90/255.0, "green 2" ) );
|
||||
|
||||
bool change = Set3DColorFromUser( m_settings.m_BoardBodyColor, _( "Board Body Color" ),
|
||||
&definedColors );
|
||||
if( change )
|
||||
if( Set3DColorFromUser( m_settings.m_BoardBodyColor, _( "Board Body Color" ), &colors ) )
|
||||
{
|
||||
NewDisplay( true );
|
||||
return true;
|
||||
}
|
||||
|
||||
return change;
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
bool EDA_3D_VIEWER::Set3DSolderPasteColorFromUser()
|
||||
{
|
||||
CUSTOM_COLORS_LIST definedColors;
|
||||
CUSTOM_COLORS_LIST colors;
|
||||
|
||||
definedColors.push_back( CUSTOM_COLOR_ITEM( 128/255.0, 128/255.0, 128/255.0, "grey" ) );
|
||||
definedColors.push_back( CUSTOM_COLOR_ITEM( 213/255.0, 213/255.0, 213/255.0, "Silver" ) );
|
||||
definedColors.push_back( CUSTOM_COLOR_ITEM( 90/255.0, 90/255.0, 90/255.0, "grey 2" ) );
|
||||
colors.push_back( CUSTOM_COLOR_ITEM( 128/255.0, 128/255.0, 128/255.0, "grey" ) );
|
||||
colors.push_back( CUSTOM_COLOR_ITEM( 213/255.0, 213/255.0, 213/255.0, "Silver" ) );
|
||||
colors.push_back( CUSTOM_COLOR_ITEM( 90/255.0, 90/255.0, 90/255.0, "grey 2" ) );
|
||||
|
||||
bool change = Set3DColorFromUser( m_settings.m_SolderPasteColor,
|
||||
_( "Solder Paste Color" ), &definedColors );
|
||||
|
||||
if( change )
|
||||
if( Set3DColorFromUser( m_settings.m_SolderPasteColor, _( "Solder Paste Color" ), &colors ) )
|
||||
{
|
||||
NewDisplay( true );
|
||||
return true;
|
||||
}
|
||||
|
||||
return change;
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
void EDA_3D_VIEWER::OnUpdateUIEngine( wxUpdateUIEvent& aEvent )
|
||||
{
|
||||
wxLogTrace( m_logTrace, "EDA_3D_VIEWER::OnUpdateUIEngine %s %s",
|
||||
( !m_disable_ray_tracing ) ? "enable" : "disable",
|
||||
( m_settings.RenderEngineGet() == RENDER_ENGINE_RAYTRACING ) ?
|
||||
"Ray Trace" : "OpenGL Legacy" );
|
||||
|
||||
aEvent.Enable( !m_disable_ray_tracing );
|
||||
aEvent.Check( m_settings.RenderEngineGet() != RENDER_ENGINE_OPENGL_LEGACY );
|
||||
}
|
||||
|
||||
|
||||
void EDA_3D_VIEWER::OnUpdateUIMaterial( wxUpdateUIEvent& aEvent )
|
||||
{
|
||||
wxLogTrace( m_logTrace, "EDA_3D_VIEWER::OnUpdateUIMaterial() id %d", aEvent.GetId() );
|
||||
|
||||
// Set the state of toggle menus according to the current display options
|
||||
switch( aEvent.GetId() )
|
||||
{
|
||||
@@ -1208,74 +1148,6 @@ void EDA_3D_VIEWER::OnUpdateUIMaterial( wxUpdateUIEvent& aEvent )
|
||||
}
|
||||
|
||||
|
||||
void EDA_3D_VIEWER::OnUpdateUIOpenGL( wxUpdateUIEvent& aEvent )
|
||||
{
|
||||
wxLogTrace( m_logTrace, "EDA_3D_VIEWER::OnUpdateUIOpenGL() id %d", aEvent.GetId() );
|
||||
|
||||
// OpenGL
|
||||
switch( aEvent.GetId() )
|
||||
{
|
||||
case ID_MENU3D_FL_OPENGL_RENDER_COPPER_THICKNESS:
|
||||
aEvent.Check( m_settings.GetFlag( FL_RENDER_OPENGL_COPPER_THICKNESS ) );
|
||||
break;
|
||||
|
||||
case ID_MENU3D_FL_OPENGL_RENDER_SHOW_MODEL_BBOX:
|
||||
aEvent.Check( m_settings.GetFlag( FL_RENDER_OPENGL_SHOW_MODEL_BBOX ) );
|
||||
break;
|
||||
|
||||
default:
|
||||
wxFAIL_MSG( "Invalid event in EDA_3D_VIEWER::OnUpdateUIOpenGL()" );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void EDA_3D_VIEWER::OnUpdateUIRayTracing( wxUpdateUIEvent& aEvent )
|
||||
{
|
||||
wxLogTrace( m_logTrace, "EDA_3D_VIEWER::OnUpdateUIRayTracing() id %d", aEvent.GetId() );
|
||||
|
||||
// Raytracing
|
||||
switch( aEvent.GetId() )
|
||||
{
|
||||
case ID_MENU3D_FL_RAYTRACING_RENDER_SHADOWS:
|
||||
aEvent.Check( m_settings.GetFlag( FL_RENDER_RAYTRACING_SHADOWS ) );
|
||||
break;
|
||||
|
||||
case ID_MENU3D_FL_RAYTRACING_BACKFLOOR:
|
||||
aEvent.Check( m_settings.GetFlag( FL_RENDER_RAYTRACING_BACKFLOOR ) );
|
||||
break;
|
||||
|
||||
case ID_MENU3D_FL_RAYTRACING_REFRACTIONS:
|
||||
aEvent.Check( m_settings.GetFlag( FL_RENDER_RAYTRACING_REFRACTIONS ) );
|
||||
break;
|
||||
|
||||
case ID_MENU3D_FL_RAYTRACING_REFLECTIONS:
|
||||
aEvent.Check( m_settings.GetFlag( FL_RENDER_RAYTRACING_REFLECTIONS ) );
|
||||
break;
|
||||
|
||||
case ID_MENU3D_FL_RAYTRACING_POST_PROCESSING:
|
||||
aEvent.Check( m_settings.GetFlag( FL_RENDER_RAYTRACING_POST_PROCESSING ) );
|
||||
break;
|
||||
|
||||
case ID_MENU3D_FL_RAYTRACING_ANTI_ALIASING:
|
||||
aEvent.Check( m_settings.GetFlag( FL_RENDER_RAYTRACING_ANTI_ALIASING ) );
|
||||
break;
|
||||
|
||||
case ID_MENU3D_FL_RAYTRACING_PROCEDURAL_TEXTURES:
|
||||
aEvent.Check( m_settings.GetFlag( FL_RENDER_RAYTRACING_PROCEDURAL_TEXTURES ) );
|
||||
break;
|
||||
|
||||
default:
|
||||
wxFAIL_MSG( "Invalid event in EDA_3D_VIEWER::OnUpdateUIMaterial()" );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void EDA_3D_VIEWER::OnUpdateUIAxis( wxUpdateUIEvent& aEvent )
|
||||
{
|
||||
aEvent.Check( m_settings.GetFlag( FL_AXIS ) );
|
||||
}
|
||||
|
||||
|
||||
void EDA_3D_VIEWER::loadCommonSettings()
|
||||
{
|
||||
wxCHECK_RET( m_canvas, "Cannot load settings to null canvas" );
|
||||
|
||||
@@ -39,9 +39,16 @@
|
||||
#include <../common/dialogs/dialog_color_picker.h> // for CUSTOM_COLORS_LIST definition
|
||||
|
||||
|
||||
/// A variable name whose value holds the path of 3D shape files.
|
||||
/// Currently an environment variable, eventually a project variable.
|
||||
#define KISYS3DMOD wxT( "KISYS3DMOD" )
|
||||
|
||||
|
||||
#define KICAD_DEFAULT_3D_DRAWFRAME_STYLE (wxDEFAULT_FRAME_STYLE | wxWANTS_CHARS)
|
||||
|
||||
#define VIEWER3D_FRAMENAME wxT( "Viewer3DFrameName" )
|
||||
#define QUALIFIED_VIEWER3D_FRAMENAME( parent ) \
|
||||
( wxString( VIEWER3D_FRAMENAME ) + wxT( ":" ) + parent->GetName() )
|
||||
|
||||
/**
|
||||
* Create and handle a window for the 3d viewer connected to a Kiway and a pcbboard
|
||||
@@ -83,30 +90,11 @@ class EDA_3D_VIEWER : public KIWAY_PLAYER
|
||||
*/
|
||||
void NewDisplay( bool aForceImmediateRedraw = false );
|
||||
|
||||
/**
|
||||
* Set the default file name (eg: to be suggested to a screenshot)
|
||||
* @param aFn = file name to assign
|
||||
*/
|
||||
void SetDefaultFileName( const wxString& aFn )
|
||||
{
|
||||
m_defaultSaveScreenshotFileName = aFn;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the default suggested file name
|
||||
*/
|
||||
const wxFileName& GetDefaultFileName() const { return m_defaultSaveScreenshotFileName; }
|
||||
|
||||
/**
|
||||
* @return current settings
|
||||
*/
|
||||
CINFO3D_VISU &GetSettings() { return m_settings; }
|
||||
|
||||
/**
|
||||
* Return a structure containing currently used hotkey mapping.
|
||||
*/
|
||||
EDA_HOTKEY_CONFIG* GetHotkeyConfig() const;
|
||||
|
||||
/**
|
||||
* Get a SFVEC3D from a wx colour dialog
|
||||
* @param aColor is the SFVEC3D to change
|
||||
@@ -161,7 +149,7 @@ class EDA_3D_VIEWER : public KIWAY_PLAYER
|
||||
* need to do this manually from the PCB frame because the 3D viewer isn't
|
||||
* updated via the #KIWAY.
|
||||
*/
|
||||
void CommonSettingsChanged() override;
|
||||
void CommonSettingsChanged( bool aEnvVarsChanged ) override;
|
||||
|
||||
private:
|
||||
/// Called when user press the File->Exit
|
||||
@@ -176,12 +164,6 @@ class EDA_3D_VIEWER : public KIWAY_PLAYER
|
||||
void OnRenderEngineSelection( wxCommandEvent &event );
|
||||
void OnDisableRayTracing( wxCommandEvent& aEvent );
|
||||
|
||||
void OnUpdateUIEngine( wxUpdateUIEvent& aEvent );
|
||||
void OnUpdateUIMaterial( wxUpdateUIEvent& aEvent );
|
||||
void OnUpdateUIOpenGL( wxUpdateUIEvent& aEvent );
|
||||
void OnUpdateUIRayTracing( wxUpdateUIEvent& aEvent );
|
||||
void OnUpdateUIAxis( wxUpdateUIEvent& aEvent );
|
||||
|
||||
void ProcessZoom( wxCommandEvent &event );
|
||||
|
||||
void OnActivate( wxActivateEvent &event );
|
||||
@@ -190,30 +172,22 @@ class EDA_3D_VIEWER : public KIWAY_PLAYER
|
||||
|
||||
void Install3DViewOptionDialog( wxCommandEvent &event );
|
||||
|
||||
void CreateMenuBar();
|
||||
void OnUpdateUIEngine( wxUpdateUIEvent& aEvent );
|
||||
void OnUpdateUIMaterial( wxUpdateUIEvent& aEvent );
|
||||
|
||||
void DisplayHotKeys()
|
||||
{
|
||||
DisplayHotkeyList( this, GetHotkeyConfig() );
|
||||
}
|
||||
void CreateMenuBar();
|
||||
|
||||
/**
|
||||
* Equivalent of EDA_DRAW_FRAME::ReCreateHToolbar
|
||||
*/
|
||||
void ReCreateMainToolbar();
|
||||
|
||||
void SetToolbars();
|
||||
|
||||
void SaveSettings( wxConfigBase *aCfg ) override;
|
||||
|
||||
void LoadSettings( wxConfigBase *aCfg ) override;
|
||||
|
||||
void OnLeftClick( wxDC *DC, const wxPoint &MousePos );
|
||||
void OnRightClick( const wxPoint &MousePos, wxMenu *PopMenu );
|
||||
void OnKeyEvent( wxKeyEvent& event );
|
||||
|
||||
void RedrawActiveWindow( wxDC *DC, bool EraseBg );
|
||||
|
||||
/**
|
||||
* Create a Screenshot of the current 3D view.
|
||||
* Output file format is png or jpeg, or image is copied to the clipboard
|
||||
@@ -234,22 +208,13 @@ class EDA_3D_VIEWER : public KIWAY_PLAYER
|
||||
*/
|
||||
void loadCommonSettings();
|
||||
|
||||
/**
|
||||
* Filename to propose for save a screenshot
|
||||
*/
|
||||
wxFileName m_defaultSaveScreenshotFileName;
|
||||
wxFileName m_defaultSaveScreenshotFileName;
|
||||
|
||||
/**
|
||||
* The canvas where the openGL context will be rendered
|
||||
*/
|
||||
EDA_3D_CANVAS *m_canvas;
|
||||
wxAuiToolBar* m_mainToolBar;
|
||||
EDA_3D_CANVAS* m_canvas;
|
||||
CINFO3D_VISU m_settings;
|
||||
|
||||
/**
|
||||
* Store all the settings and options to be used by the renders
|
||||
*/
|
||||
CINFO3D_VISU m_settings;
|
||||
|
||||
bool m_disable_ray_tracing;
|
||||
bool m_disable_ray_tracing;
|
||||
|
||||
/**
|
||||
* Trace mask used to enable or disable the trace output of this class.
|
||||
|
||||
@@ -1,105 +0,0 @@
|
||||
/*
|
||||
* This program source code file is part of KiCad, a free EDA CAD application.
|
||||
*
|
||||
* Copyright (C) 1992-2018 KiCad Developers, see AUTHORS.txt for contributors.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version 2
|
||||
* of the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, you may find one here:
|
||||
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
||||
* or you may search the http://www.gnu.org website for the version 2 license,
|
||||
* or you may write to the Free Software Foundation, Inc.,
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
/**
|
||||
* @file hotkeys.cpp
|
||||
* @brief list of hotkeys used in 3D viewer
|
||||
*/
|
||||
|
||||
#include <hotkeys_basic.h>
|
||||
#include "eda_3d_viewer.h"
|
||||
#include "../3d_viewer_id.h"
|
||||
|
||||
// Define 3D Viewer Hotkeys
|
||||
static EDA_HOTKEY HkHotkeysHelp( _HKI( "List Hotkeys" ), HK_HELP, GR_KB_CTRL + WXK_F1 );
|
||||
static EDA_HOTKEY Hk3D_PivotCenter( _HKI( "Center pivot rotation (Middle mouse click)" ), 0, WXK_SPACE );
|
||||
static EDA_HOTKEY Hk3D_MoveLeft( _HKI( "Move board Left" ), ID_POPUP_MOVE3D_LEFT, WXK_LEFT );
|
||||
static EDA_HOTKEY Hk3D_MoveRight( _HKI( "Move board Right" ), ID_POPUP_MOVE3D_RIGHT, WXK_RIGHT );
|
||||
static EDA_HOTKEY Hk3D_MoveUp( _HKI( "Move board Up" ), ID_POPUP_MOVE3D_UP, WXK_UP );
|
||||
static EDA_HOTKEY Hk3D_MoveDown( _HKI( "Move board Down" ), ID_POPUP_MOVE3D_DOWN, WXK_DOWN );
|
||||
static EDA_HOTKEY Hk3D_HomeView( _HKI( "Home view" ), 0, WXK_HOME );
|
||||
static EDA_HOTKEY Hk3D_ResetView( _HKI( "Reset view" ), 0, 'R' );
|
||||
|
||||
static EDA_HOTKEY Hk3D_ViewFront( _HKI( "View Front" ), ID_POPUP_VIEW_YPOS, 'Y' );
|
||||
static EDA_HOTKEY Hk3D_ViewBack( _HKI( "View Back" ), ID_POPUP_VIEW_YNEG, GR_KB_SHIFT + 'Y' );
|
||||
static EDA_HOTKEY Hk3D_ViewLeft( _HKI( "View Left" ), ID_POPUP_VIEW_XNEG, GR_KB_SHIFT + 'X' );
|
||||
static EDA_HOTKEY Hk3D_ViewRight( _HKI( "View Right" ), ID_POPUP_VIEW_XPOS, 'X' );
|
||||
static EDA_HOTKEY Hk3D_ViewTop( _HKI( "View Top" ), ID_POPUP_VIEW_ZPOS, 'Z' );
|
||||
static EDA_HOTKEY Hk3D_ViewBot( _HKI( "View Bot" ), ID_POPUP_VIEW_ZNEG, GR_KB_SHIFT + 'Z' );
|
||||
|
||||
static EDA_HOTKEY Hk3D_Rotate45axisZ( _HKI( "Rotate 45 degrees over Z axis" ), 0, WXK_TAB );
|
||||
static EDA_HOTKEY Hk3D_ZoomIn( _HKI( "Zoom in " ), ID_POPUP_ZOOMIN, WXK_F1 );
|
||||
static EDA_HOTKEY Hk3D_ZoomOut( _HKI( "Zoom out" ), ID_POPUP_ZOOMOUT, WXK_F2 );
|
||||
static EDA_HOTKEY Hk3D_AttributesTHT( _HKI( "Toggle 3D models with type Through Hole" ), 0, 'T' );
|
||||
static EDA_HOTKEY Hk3D_AttributesSMD( _HKI( "Toggle 3D models with type Surface Mount" ), 0, 'S' );
|
||||
static EDA_HOTKEY Hk3D_AttributesVirtual( _HKI( "Toggle 3D models with type Virtual" ), 0, 'V' );
|
||||
|
||||
static wxString viewer3DSectionTitle( _HKI( "Viewer 3D" ) );
|
||||
|
||||
// List of hotkey descriptors for the 3D Viewer only
|
||||
// !TODO: this is used just for help menu, the structured are not used yet in the viewer
|
||||
static EDA_HOTKEY* viewer3d_Hotkey_List[] =
|
||||
{
|
||||
&HkHotkeysHelp,
|
||||
&Hk3D_PivotCenter,
|
||||
&Hk3D_MoveLeft,
|
||||
&Hk3D_MoveRight,
|
||||
&Hk3D_MoveUp,
|
||||
&Hk3D_MoveDown,
|
||||
&Hk3D_HomeView,
|
||||
&Hk3D_ResetView,
|
||||
&Hk3D_ViewFront,
|
||||
&Hk3D_ViewBack,
|
||||
&Hk3D_ViewLeft,
|
||||
&Hk3D_ViewRight,
|
||||
&Hk3D_ViewTop,
|
||||
&Hk3D_ViewBot,
|
||||
&Hk3D_Rotate45axisZ,
|
||||
&Hk3D_ZoomIn,
|
||||
&Hk3D_ZoomOut,
|
||||
&Hk3D_AttributesTHT,
|
||||
&Hk3D_AttributesSMD,
|
||||
&Hk3D_AttributesVirtual,
|
||||
NULL
|
||||
};
|
||||
|
||||
|
||||
// list of sections and corresponding hotkey list for the 3D Viewer
|
||||
// (used to list current hotkeys)
|
||||
static struct EDA_HOTKEY_CONFIG s_3DViewer_Hotkeys_Descr[] =
|
||||
{
|
||||
{ &g_CommonSectionTag, viewer3d_Hotkey_List, &viewer3DSectionTitle },
|
||||
{ NULL, NULL, NULL }
|
||||
};
|
||||
|
||||
|
||||
EDA_HOTKEY_CONFIG* EDA_3D_VIEWER::GetHotkeyConfig() const
|
||||
{
|
||||
return s_3DViewer_Hotkeys_Descr;
|
||||
}
|
||||
|
||||
|
||||
EDA_HOTKEY_CONFIG* EDA_3D_CANVAS::GetHotkeyConfig() const
|
||||
{
|
||||
return s_3DViewer_Hotkeys_Descr;
|
||||
}
|
||||
@@ -32,13 +32,13 @@ enum id_3dview_frm
|
||||
ID_ORTHO,
|
||||
ID_MENU3D_COLOR,
|
||||
ID_MENU3D_BGCOLOR,
|
||||
ID_MENU3D_BGCOLOR_BOTTOM_SELECTION,
|
||||
ID_MENU3D_BGCOLOR_TOP_SELECTION,
|
||||
ID_MENU3D_SILKSCREEN_COLOR_SELECTION,
|
||||
ID_MENU3D_SOLDERMASK_COLOR_SELECTION,
|
||||
ID_MENU3D_SOLDERPASTE_COLOR_SELECTION,
|
||||
ID_MENU3D_PCB_BODY_COLOR_SELECTION,
|
||||
ID_MENU3D_COPPER_COLOR_SELECTION,
|
||||
ID_MENU3D_BGCOLOR_BOTTOM,
|
||||
ID_MENU3D_BGCOLOR_TOP,
|
||||
ID_MENU3D_SILKSCREEN_COLOR,
|
||||
ID_MENU3D_SOLDERMASK_COLOR,
|
||||
ID_MENU3D_SOLDERPASTE_COLOR,
|
||||
ID_MENU3D_PCB_BODY_COLOR,
|
||||
ID_MENU3D_COPPER_COLOR,
|
||||
ID_MENU3D_AXIS_ONOFF,
|
||||
|
||||
ID_MENU3D_MODULE_ONOFF,
|
||||
@@ -85,8 +85,6 @@ enum id_3dview_frm
|
||||
ID_MENU3D_RESET_DEFAULTS,
|
||||
|
||||
// Help
|
||||
ID_MENU3D_HELP_HOTKEY_SHOW_CURRENT_LIST,
|
||||
|
||||
ID_MENU_COMMAND_END,
|
||||
|
||||
ID_RENDER_CURRENT_VIEW,
|
||||
|
||||
@@ -6,7 +6,6 @@ configure_file( 3d_plugin_dir.h.in 3d_plugin_dir.h @ONLY )
|
||||
include_directories(BEFORE ${INC_BEFORE})
|
||||
include_directories(
|
||||
${CMAKE_CURRENT_BINARY_DIR}
|
||||
../include/legacy_wx
|
||||
../pcbnew
|
||||
3d_canvas
|
||||
3d_cache
|
||||
@@ -88,8 +87,8 @@ set(3D-VIEWER_SRCS
|
||||
3d_rendering/cpostshader.cpp
|
||||
3d_rendering/cpostshader_ssao.cpp
|
||||
3d_rendering/ctrack_ball.cpp
|
||||
3d_viewer/3d_actions.cpp
|
||||
3d_viewer/3d_menubar.cpp
|
||||
3d_viewer/hotkeys.cpp
|
||||
3d_rendering/test_cases.cpp
|
||||
3d_rendering/trackball.cpp
|
||||
3d_viewer/3d_toolbar.cpp
|
||||
|
||||
@@ -75,6 +75,7 @@ Spanish (ES) Pedro Martin del Valle <pkicad[at]yahoo-dot-es>
|
||||
Spanish (ES) Iñigo Zuluaga <inigo_zuluaga[at]yahoo-dot-es>
|
||||
German (DE) Rafael Sokolowski <Rafael.Sokolowski[at]web-dot-de
|
||||
Japanese (JA) Kenta Yonekura <yoneken[at]kicad-dot-jp>
|
||||
Simplified Chinese (zh_CN) taotieren <admin[at]taotieren-dot-com>
|
||||
|
||||
Remy Halvick, David Briscoe, Dominique Laigle, Paul Burke
|
||||
|
||||
|
||||
+143
-75
@@ -21,7 +21,7 @@
|
||||
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
#
|
||||
|
||||
cmake_minimum_required( VERSION 2.8.12 FATAL_ERROR )
|
||||
cmake_minimum_required( VERSION 3.0.2 FATAL_ERROR )
|
||||
# because of http://public.kitware.com/Bug/view.php?id=10395
|
||||
|
||||
# See https://gitlab.kitware.com/cmake/cmake/issues/15943
|
||||
@@ -60,12 +60,6 @@ option( BUILD_SMALL_DEBUG_FILES "In debug build: create smaller binaries." OFF )
|
||||
# so that build option settings can be included in bug reports.
|
||||
#
|
||||
|
||||
option( USE_WX_GRAPHICS_CONTEXT
|
||||
"Use wxGraphicsContext for rendering (default OFF). Warning, this is experimental" )
|
||||
|
||||
option( USE_WX_OVERLAY
|
||||
"Use wxOverlay: Always ON for MAC and GTK3 (default OFF)." )
|
||||
|
||||
option( KICAD_SCRIPTING
|
||||
"Build the Python scripting support inside KiCad binaries (default ON)."
|
||||
ON )
|
||||
@@ -102,41 +96,79 @@ option( KICAD_INSTALL_DEMOS
|
||||
"Install KiCad demos and examples (default ON)"
|
||||
ON )
|
||||
|
||||
option( KICAD_BUILD_QA_TESTS
|
||||
"Build software Quality assurance unit tests (default ON)"
|
||||
ON )
|
||||
|
||||
option( BUILD_GITHUB_PLUGIN
|
||||
"Build the GITHUB_PLUGIN for pcbnew."
|
||||
ON )
|
||||
|
||||
option( KICAD_SPICE
|
||||
"Build KiCad with internal Spice simulator."
|
||||
ON )
|
||||
|
||||
# Not supported by all platforms (for instance mingw)
|
||||
option( KICAD_SANITIZE
|
||||
"Build KiCad with sanitizer options. WARNING: Not compatible with gold linker"
|
||||
OFF )
|
||||
|
||||
option( KICAD_STDLIB_DEBUG
|
||||
"Build KiCad with libstdc++ debug flags enabled."
|
||||
OFF )
|
||||
|
||||
option( KICAD_STDLIB_LIGHT_DEBUG
|
||||
"Build KiCad with libstdc++ with -Wp,-D_GLIBCXX_ASSERTIONS flag enabled. Not as intrusive as KICAD_STDLIB_DEBUG"
|
||||
OFF )
|
||||
|
||||
option( KICAD_BUILD_PARALLEL_CL_MP
|
||||
"Build in parallel using the /MP compiler option (default OFF for safety reasons)"
|
||||
OFF )
|
||||
|
||||
option( KICAD_USE_VALGRIND
|
||||
"Build KiCad with valgrind stack tracking enabled."
|
||||
OFF )
|
||||
|
||||
# when option KICAD_SCRIPTING OR KICAD_SCRIPTING_MODULES is enabled:
|
||||
# PYTHON_EXECUTABLE can be defined when invoking cmake
|
||||
# ( use -DPYTHON_EXECUTABLE=<python path>/python.exe or python2 )
|
||||
# when not defined by user, the default is python.exe under Windows and python2 for others
|
||||
# python binary file should be in exec path.
|
||||
|
||||
# KICAD_SCRIPTING_MODULES requires KICAD_SCRIPTING enable it here if KICAD_SCRIPTING_MODULES is ON
|
||||
if ( KICAD_SCRIPTING_MODULES AND NOT KICAD_SCRIPTING )
|
||||
message(STATUS "Changing KICAD_SCRIPTING to ON as needed by KICAD_SCRIPTING_MODULES")
|
||||
set ( KICAD_SCRIPTING ON )
|
||||
# KICAD_SCRIPTING controls the entire python scripting system. If it is off, no other scripting
|
||||
# functions are available.
|
||||
if ( NOT KICAD_SCRIPTING )
|
||||
message( STATUS "KICAD_SCRIPTING is OFF: Disabling all python scripting support" )
|
||||
set( KICAD_SCRIPTING_MODULES OFF )
|
||||
set( KICAD_SCRIPTING_ACTION_MENU OFF )
|
||||
set( KICAD_SCRIPTING_PYTHON3 OFF )
|
||||
set( KICAD_SCRIPTING_WXPYTHON OFF )
|
||||
set( KICAD_SCRIPTING_WXPYTHON_PHOENIX OFF)
|
||||
endif()
|
||||
|
||||
# same with KICAD_SCRIPTING_ACTION_MENUS
|
||||
if ( KICAD_SCRIPTING_ACTION_MENU AND NOT KICAD_SCRIPTING )
|
||||
message(STATUS "Changing KICAD_SCRIPTING to ON as needed by KICAD_SCRIPTING_ACTION_MENU")
|
||||
set ( KICAD_SCRIPTING ON )
|
||||
# KICAD_SCRIPTING_WXPYTHON_PHOENIX requires enabling the KICAD_SCRIPTING_WXPYTHON flag
|
||||
# so that the wxWidgets library is properly versioned
|
||||
if ( KICAD_SCRIPTING AND NOT KICAD_SCRIPTING_WXPYTHON AND KICAD_SCRIPTING_WXPYTHON_PHOENIX )
|
||||
message( STATUS
|
||||
"KICAD_SCRIPTING_WXPYTHON_PHOENIX has been requested, setting KICAD_SCRIPTING_WXPYTHON to ON")
|
||||
set( KICAD_SCRIPTING_WXPYTHON ON)
|
||||
endif()
|
||||
|
||||
option( BUILD_GITHUB_PLUGIN "Build the GITHUB_PLUGIN for pcbnew." ON )
|
||||
|
||||
option( KICAD_SPICE "Build KiCad with internal Spice simulator." ON )
|
||||
|
||||
# Global setting: exports are explicit
|
||||
set( CMAKE_CXX_VISIBILITY_PRESET "hidden" )
|
||||
set( CMAKE_VISIBILITY_INLINES_HIDDEN ON )
|
||||
|
||||
|
||||
# Global setting: build everything position independent
|
||||
set( CMAKE_POSITION_INDEPENDENT_CODE ON )
|
||||
|
||||
|
||||
# Global setting: Use C++11
|
||||
set(CMAKE_CXX_STANDARD 11)
|
||||
# Global setting: Use C++14
|
||||
set(CMAKE_CXX_STANDARD 14)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
|
||||
# Enable additional valgrind instrumentation for stack tracking in libcontext
|
||||
if( KICAD_USE_VALGRIND )
|
||||
add_definitions( -DKICAD_USE_VALGRIND )
|
||||
endif()
|
||||
|
||||
# CMP0063: CMake < 3.3 does not handle hidden visibility for static libraries,
|
||||
# and 3.3 is backwards compatible when the minimum version is smaller than 3.3.
|
||||
@@ -160,12 +192,9 @@ endif()
|
||||
# Add option to add user directories for linker, if any
|
||||
LINK_DIRECTORIES( ${LINK_DIRECTORIES_PATH} )
|
||||
|
||||
if( UNIX )
|
||||
set( KICAD_USER_CONFIG_DIR $ENV{HOME} CACHE PATH "Location of user specific KiCad config files" )
|
||||
elseif( MINGW )
|
||||
set( KICAD_USER_CONFIG_DIR $ENV{APPDATA} CACHE PATH "Location of user specific KiCad config files" )
|
||||
endif()
|
||||
mark_as_advanced( KICAD_USER_CONFIG_DIR )
|
||||
set( KICAD_CONFIG_DIR "kicad" CACHE STRING "Location of user specific KiCad config files" )
|
||||
mark_as_advanced( KICAD_CONFIG_DIR )
|
||||
add_definitions( -DKICAD_CONFIG_DIR=${KICAD_CONFIG_DIR} )
|
||||
|
||||
# Set default data file path to CMAKE_INSTALL_PREFIX if it wasn't specified during the
|
||||
# CMake configuration. The value of DEFAULT_INSTALL_PATH is expanded in config.h and
|
||||
@@ -193,12 +222,12 @@ endif()
|
||||
if( CMAKE_VERSION VERSION_LESS 3.1 AND ( CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang" ) )
|
||||
include(CheckCXXCompilerFlag)
|
||||
|
||||
CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11)
|
||||
CHECK_CXX_COMPILER_FLAG("-std=gnu++14" COMPILER_SUPPORTS_CXX14)
|
||||
|
||||
if(COMPILER_SUPPORTS_CXX11)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
|
||||
if(COMPILER_SUPPORTS_CXX14)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++14")
|
||||
else()
|
||||
message(STATUS "The compiler ${CMAKE_CXX_COMPILER} has no C++11 support. Please use a different C++ compiler.")
|
||||
message(STATUS "The compiler ${CMAKE_CXX_COMPILER} has no C++14 support. Please use a different C++ compiler.")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
@@ -241,6 +270,10 @@ if( WIN32 )
|
||||
# define UNICODE and_UNICODE definition on Windows. KiCad uses unicode.
|
||||
# Both definitions are required
|
||||
add_definitions(-DUNICODE -D_UNICODE)
|
||||
|
||||
# In fully standards-compliant mode, M_PI et al. are defined only if
|
||||
# _USE_MATH_DEFINES is set.
|
||||
add_definitions( -D_USE_MATH_DEFINES )
|
||||
endif()
|
||||
|
||||
|
||||
@@ -310,6 +343,21 @@ if( CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang" )
|
||||
set( CMAKE_CXX_FLAGS_DEBUG "-g3 -ggdb3 -DDEBUG -Wno-deprecated-declarations" )
|
||||
endif()
|
||||
|
||||
if( KICAD_SANITIZE )
|
||||
add_definitions( -DKICAD_SANITIZE )
|
||||
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_GLIBCXX_SANITIZE_VECTOR -fsanitize=address -fno-optimize-sibling-calls -fsanitize-address-use-after-scope -fno-omit-frame-pointer" )
|
||||
endif()
|
||||
|
||||
if( KICAD_STDLIB_DEBUG )
|
||||
add_definitions( -DKICAD_STDLIB_DEBUG )
|
||||
set( CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -D_GLIBCXX_DEBUG" )
|
||||
elseif( KICAD_STDLIB_LIGHT_DEBUG )
|
||||
# useless if KICAD_STDLIB_DEBUG is ON.
|
||||
# this option makes some controls to trap out of bound memory access.
|
||||
add_definitions( -DKICAD_STDLIB_LIGHT_DEBUG )
|
||||
set( CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Wp,-D_GLIBCXX_ASSERTIONS" )
|
||||
endif()
|
||||
|
||||
if( MINGW )
|
||||
set( CMAKE_EXE_LINKER_FLAGS_RELEASE "-s" )
|
||||
|
||||
@@ -340,17 +388,11 @@ if( CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang" )
|
||||
|
||||
elseif( NOT APPLE )
|
||||
# Thou shalt not link vaporware and tell us it's a valid DSO (apple ld doesn't support it)
|
||||
set( CMAKE_SHARED_LINKER_FLAGS "-Wl,--no-undefined" )
|
||||
set( CMAKE_MODULE_LINKER_FLAGS "-Wl,--no-undefined" )
|
||||
# temporarily disabled due to breaking ASAN-enabled builds - Tom
|
||||
# set( CMAKE_SHARED_LINKER_FLAGS "-Wl,--no-undefined" )
|
||||
# set( CMAKE_MODULE_LINKER_FLAGS "-Wl,--no-undefined" )
|
||||
|
||||
set( CMAKE_EXE_LINKER_FLAGS_RELEASE "-s" )
|
||||
|
||||
# Defeat ELF's ability to use the GOT to replace locally implemented functions
|
||||
# with ones from another module.
|
||||
# https://bugs.launchpad.net/kicad/+bug/1322354
|
||||
set( CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,-Bsymbolic" )
|
||||
set( CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -Wl,-Bsymbolic" )
|
||||
|
||||
endif()
|
||||
|
||||
if( APPLE )
|
||||
@@ -359,8 +401,36 @@ if( CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang" )
|
||||
|
||||
endif( CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang" )
|
||||
|
||||
if( USE_WX_OVERLAY OR APPLE )
|
||||
add_definitions( -DUSE_WX_OVERLAY )
|
||||
if( MSVC )
|
||||
# Disallow implicit linking for Boost
|
||||
add_definitions( -DBOOST_ALL_NO_LIB )
|
||||
# Disable MSVC's deprecation warnings
|
||||
add_definitions( -D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_DEPRECATE -D_SCL_SECURE_NO_WARNINGS )
|
||||
# Hide Windows's min() and max() macros
|
||||
add_definitions( -DNOMINMAX )
|
||||
# source and execution charset are UTF-8
|
||||
string( APPEND CMAKE_CXX_FLAGS " /utf-8" )
|
||||
# C4290: throw() is interpreted as declspec(nothrow)
|
||||
string( APPEND CMAKE_CXX_FLAGS " /wd4290" )
|
||||
# C4800: non-bool is explicitly cast to bool, forcing value of 0 or 1
|
||||
string( APPEND CMAKE_CXX_FLAGS " /wd4800" )
|
||||
# /Zi: create PDB
|
||||
string( APPEND CMAKE_CXX_FLAGS " /Zi" )
|
||||
# /GF: enable string pooling
|
||||
string( APPEND CMAKE_CXX_FLAGS_RELEASE " /GF" )
|
||||
foreach( type EXE SHARED MODULE)
|
||||
# /DEBUG: create PDB
|
||||
string( APPEND CMAKE_${type}_LINKER_FLAGS " /DEBUG" )
|
||||
# /OPT:REF: omit unreferenced code
|
||||
string( APPEND CMAKE_${type}_LINKER_FLAGS_RELEASE " /OPT:REF" )
|
||||
# /OPT:ICF: fold common data
|
||||
string( APPEND CMAKE_${type}_LINKER_FLAGS_RELEASE " /OPT:ICF" )
|
||||
endforeach()
|
||||
|
||||
# Let cl.exe parallelize builds
|
||||
if( KICAD_BUILD_PARALLEL_CL_MP )
|
||||
string( APPEND CMAKE_CXX_FLAGS " /MP" )
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if( KICAD_SCRIPTING )
|
||||
@@ -405,10 +475,6 @@ if( KICAD_USE_CUSTOM_PADS )
|
||||
add_definitions( -DKICAD_USE_CUSTOM_PADS )
|
||||
endif()
|
||||
|
||||
if( USE_WX_GRAPHICS_CONTEXT OR APPLE )
|
||||
add_definitions( -DUSE_WX_GRAPHICS_CONTEXT )
|
||||
endif()
|
||||
|
||||
|
||||
# KIFACE_SUFFIX is the file extension used for top level program modules which
|
||||
# implement the KIFACE interface. A valid suffix starts with a period '.'.
|
||||
@@ -570,11 +636,6 @@ endif()
|
||||
# Find GLM library, required
|
||||
#
|
||||
find_package( GLM 0.9.5.1 REQUIRED )
|
||||
if( GLM_VERSION MATCHES "0.9.9.3" AND CMAKE_CXX_COMPILER_ID MATCHES "GNU")
|
||||
MESSAGE( FATAL_ERROR "\nGLM version ${GLM_VERSION} is incompatible with KiCad using GCC.\n"
|
||||
"Please downgrade to GLM version 0.9.9.2 or older or use clang instead" )
|
||||
endif()
|
||||
|
||||
add_definitions( -DGLM_FORCE_CTOR_INIT )
|
||||
|
||||
#
|
||||
@@ -597,16 +658,9 @@ find_package( Boost 1.54.0 REQUIRED )
|
||||
# Include MinGW resource compiler.
|
||||
include( MinGWResourceCompiler )
|
||||
|
||||
# Find GDI+ on windows if wxGraphicsContext is available, and only link gdiplus library
|
||||
# if wxGraphicsContext not used, because the cairo printing system uses this library
|
||||
if( WIN32 )
|
||||
if( USE_WX_GRAPHICS_CONTEXT )
|
||||
find_package( GdiPlus )
|
||||
check_find_package_result( GDI_PLUS_FOUND "GDI+" )
|
||||
else()
|
||||
# if WX_GRAPHICS_CONTEXT is not used we just need the gdiplus library for cairo printing
|
||||
set( GDI_PLUS_LIBRARIES gdiplus )
|
||||
endif()
|
||||
# we need the gdiplus library for cairo printing on windows
|
||||
set( GDI_PLUS_LIBRARIES gdiplus )
|
||||
endif()
|
||||
|
||||
# Find ngspice library, required for integrated circuit simulator
|
||||
@@ -655,8 +709,9 @@ set( INC_AFTER
|
||||
${CMAKE_BINARY_DIR}
|
||||
)
|
||||
|
||||
|
||||
#
|
||||
# Find Python and other scripting resources
|
||||
#
|
||||
if( KICAD_SCRIPTING OR KICAD_SCRIPTING_MODULES )
|
||||
|
||||
# SWIG 3.0 or later require for C++11 support.
|
||||
@@ -714,19 +769,36 @@ if( KICAD_SCRIPTING OR KICAD_SCRIPTING_MODULES )
|
||||
find_package( PythonLibs 2.6 REQUIRED )
|
||||
endif()
|
||||
|
||||
if( KICAD_SCRIPTING_WXPYTHON )
|
||||
find_package( wxPython REQUIRED )
|
||||
message( STATUS "Found ${WXPYTHON_FLAVOR} "
|
||||
"${WXPYTHON_VERSION}/${WXPYTHON_TOOLKIT} "
|
||||
"(wxWidgets ${WXPYTHON_WXVERSION})" )
|
||||
endif()
|
||||
|
||||
# Infrequently needed headers go at end of search paths, append to INC_AFTER which
|
||||
# although is used for all components, should be a harmless hit for something like eeschema
|
||||
# so long as unused search paths are at the end like this.
|
||||
set( INC_AFTER ${INC_AFTER} ${PYTHON_INCLUDE_DIRS} ${CMAKE_CURRENT_SOURCE_DIR}/scripting )
|
||||
endif()
|
||||
|
||||
# Find the wxPython installation if requested
|
||||
if( KICAD_SCRIPTING_WXPYTHON )
|
||||
find_package( wxPython REQUIRED )
|
||||
|
||||
if( KICAD_SCRIPTING_WXPYTHON_PHOENIX AND WXPYTHON_VERSION VERSION_LESS 4.0.0 )
|
||||
message( FATAL_ERROR
|
||||
"Unable to find wxPython Phoenix,"
|
||||
" instead found wxPython Classic ${WXPYTHON_VERSION}" )
|
||||
endif()
|
||||
|
||||
# The test VERSION_GREATER_EQUAL is only available in cmake >3.7, so use the max possible
|
||||
# version for the 3.0 line as the basis of the comparison
|
||||
if( NOT KICAD_SCRIPTING_WXPYTHON_PHOENIX AND WXPYTHON_VERSION VERSION_GREATER 3.9.999 )
|
||||
message( FATAL_ERROR
|
||||
"Unable to find wxPython Classic,"
|
||||
" instead found wxPython Phoenix ${WXPYTHON_VERSION}" )
|
||||
endif()
|
||||
|
||||
message( STATUS "Found ${WXPYTHON_FLAVOR} "
|
||||
"${WXPYTHON_VERSION}/${WXPYTHON_TOOLKIT} "
|
||||
"(wxWidgets ${WXPYTHON_WXVERSION})" )
|
||||
endif()
|
||||
|
||||
|
||||
#
|
||||
# Find wxWidgets library, required
|
||||
#
|
||||
@@ -764,11 +836,6 @@ find_package( wxWidgets ${wxWidgets_REQ_VERSION} COMPONENTS gl aui adv html core
|
||||
# Include wxWidgets macros.
|
||||
include( ${wxWidgets_USE_FILE} )
|
||||
|
||||
# Check for GTK3 libraries - These do not have XOR, so we need overlay (Page layout editor)
|
||||
if( wxWidgets_LIBRARIES MATCHES "gtk3" )
|
||||
add_definitions( -DUSE_WX_OVERLAY )
|
||||
endif()
|
||||
|
||||
if( KICAD_SCRIPTING_WXPYTHON AND NOT KICAD_SCRIPTING_WXPYTHON_PHOENIX )
|
||||
# wxPython appears to be installed and valid so make sure the headers are available.
|
||||
foreach( path ${wxWidgets_INCLUDE_DIRS} )
|
||||
@@ -939,6 +1006,7 @@ endif()
|
||||
|
||||
# Binaries ( CMake targets )
|
||||
add_subdirectory( bitmaps_png )
|
||||
add_subdirectory( libs )
|
||||
add_subdirectory( common )
|
||||
add_subdirectory( 3d-viewer )
|
||||
add_subdirectory( cvpcb )
|
||||
|
||||
@@ -1,342 +0,0 @@
|
||||
#.rst:
|
||||
# FindOpenSSL
|
||||
# -----------
|
||||
#
|
||||
# Try to find the OpenSSL encryption library
|
||||
#
|
||||
# Once done this will define
|
||||
#
|
||||
# ::
|
||||
#
|
||||
# OPENSSL_ROOT_DIR - Set this variable to the root installation of OpenSSL
|
||||
#
|
||||
#
|
||||
#
|
||||
# Read-Only variables:
|
||||
#
|
||||
# ::
|
||||
#
|
||||
# OPENSSL_FOUND - system has the OpenSSL library
|
||||
# OPENSSL_INCLUDE_DIR - the OpenSSL include directory
|
||||
# OPENSSL_LIBRARIES - The libraries needed to use OpenSSL
|
||||
# OPENSSL_VERSION - This is set to $major.$minor.$revision$path (eg. 0.9.8s)
|
||||
|
||||
#=============================================================================
|
||||
# Copyright 2006-2009 Kitware, Inc.
|
||||
# Copyright 2006 Alexander Neundorf <neundorf@kde.org>
|
||||
# Copyright 2009-2011 Mathieu Malaterre <mathieu.malaterre@gmail.com>
|
||||
#
|
||||
# Distributed under the OSI-approved BSD License (the "License");
|
||||
# see accompanying file Copyright.txt for details.
|
||||
#
|
||||
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
if (UNIX)
|
||||
find_package(PkgConfig QUIET)
|
||||
pkg_check_modules(_OPENSSL QUIET openssl)
|
||||
endif ()
|
||||
|
||||
if (WIN32)
|
||||
# http://www.slproweb.com/products/Win32OpenSSL.html
|
||||
set(_OPENSSL_ROOT_HINTS
|
||||
${OPENSSL_ROOT_DIR}
|
||||
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\OpenSSL (32-bit)_is1;Inno Setup: App Path]"
|
||||
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\OpenSSL (64-bit)_is1;Inno Setup: App Path]"
|
||||
ENV OPENSSL_ROOT_DIR
|
||||
)
|
||||
file(TO_CMAKE_PATH "$ENV{PROGRAMFILES}" _programfiles)
|
||||
set(_OPENSSL_ROOT_PATHS
|
||||
"${_programfiles}/OpenSSL"
|
||||
"${_programfiles}/OpenSSL-Win32"
|
||||
"${_programfiles}/OpenSSL-Win64"
|
||||
"C:/OpenSSL/"
|
||||
"C:/OpenSSL-Win32/"
|
||||
"C:/OpenSSL-Win64/"
|
||||
)
|
||||
unset(_programfiles)
|
||||
else ()
|
||||
set(_OPENSSL_ROOT_HINTS
|
||||
${OPENSSL_ROOT_DIR}
|
||||
ENV OPENSSL_ROOT_DIR
|
||||
)
|
||||
endif ()
|
||||
|
||||
set(_OPENSSL_ROOT_HINTS_AND_PATHS
|
||||
HINTS ${_OPENSSL_ROOT_HINTS}
|
||||
PATHS ${_OPENSSL_ROOT_PATHS}
|
||||
)
|
||||
|
||||
find_path(OPENSSL_INCLUDE_DIR
|
||||
NAMES
|
||||
openssl/ssl.h
|
||||
${_OPENSSL_ROOT_HINTS_AND_PATHS}
|
||||
HINTS
|
||||
${_OPENSSL_INCLUDEDIR}
|
||||
PATH_SUFFIXES
|
||||
include
|
||||
)
|
||||
|
||||
if(WIN32 AND NOT CYGWIN)
|
||||
if(MSVC)
|
||||
# /MD and /MDd are the standard values - if someone wants to use
|
||||
# others, the libnames have to change here too
|
||||
# use also ssl and ssleay32 in debug as fallback for openssl < 0.9.8b
|
||||
# TODO: handle /MT and static lib
|
||||
# In Visual C++ naming convention each of these four kinds of Windows libraries has it's standard suffix:
|
||||
# * MD for dynamic-release
|
||||
# * MDd for dynamic-debug
|
||||
# * MT for static-release
|
||||
# * MTd for static-debug
|
||||
|
||||
# Implementation details:
|
||||
# We are using the libraries located in the VC subdir instead of the parent directory eventhough :
|
||||
# libeay32MD.lib is identical to ../libeay32.lib, and
|
||||
# ssleay32MD.lib is identical to ../ssleay32.lib
|
||||
find_library(LIB_EAY_DEBUG
|
||||
NAMES
|
||||
libeay32MDd
|
||||
libeay32d
|
||||
${_OPENSSL_ROOT_HINTS_AND_PATHS}
|
||||
PATH_SUFFIXES
|
||||
"lib"
|
||||
"VC"
|
||||
"lib/VC"
|
||||
)
|
||||
|
||||
find_library(LIB_EAY_RELEASE
|
||||
NAMES
|
||||
libeay32MD
|
||||
libeay32
|
||||
${_OPENSSL_ROOT_HINTS_AND_PATHS}
|
||||
PATH_SUFFIXES
|
||||
"lib"
|
||||
"VC"
|
||||
"lib/VC"
|
||||
)
|
||||
|
||||
find_library(SSL_EAY_DEBUG
|
||||
NAMES
|
||||
ssleay32MDd
|
||||
ssleay32d
|
||||
${_OPENSSL_ROOT_HINTS_AND_PATHS}
|
||||
PATH_SUFFIXES
|
||||
"lib"
|
||||
"VC"
|
||||
"lib/VC"
|
||||
)
|
||||
|
||||
find_library(SSL_EAY_RELEASE
|
||||
NAMES
|
||||
ssleay32MD
|
||||
ssleay32
|
||||
ssl
|
||||
${_OPENSSL_ROOT_HINTS_AND_PATHS}
|
||||
PATH_SUFFIXES
|
||||
"lib"
|
||||
"VC"
|
||||
"lib/VC"
|
||||
)
|
||||
|
||||
set(LIB_EAY_LIBRARY_DEBUG "${LIB_EAY_DEBUG}")
|
||||
set(LIB_EAY_LIBRARY_RELEASE "${LIB_EAY_RELEASE}")
|
||||
set(SSL_EAY_LIBRARY_DEBUG "${SSL_EAY_DEBUG}")
|
||||
set(SSL_EAY_LIBRARY_RELEASE "${SSL_EAY_RELEASE}")
|
||||
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/SelectLibraryConfigurations.cmake)
|
||||
select_library_configurations(LIB_EAY)
|
||||
select_library_configurations(SSL_EAY)
|
||||
|
||||
mark_as_advanced(LIB_EAY_LIBRARY_DEBUG LIB_EAY_LIBRARY_RELEASE
|
||||
SSL_EAY_LIBRARY_DEBUG SSL_EAY_LIBRARY_RELEASE)
|
||||
set( OPENSSL_LIBRARIES ${SSL_EAY_LIBRARY} ${LIB_EAY_LIBRARY} )
|
||||
elseif(MINGW)
|
||||
message( STATUS "Searching for OpenSSL in MinGW." )
|
||||
# same player, for MinGW
|
||||
set(LIB_EAY_NAMES libeay32)
|
||||
set(SSL_EAY_NAMES ssleay32)
|
||||
list(APPEND LIB_EAY_NAMES crypto)
|
||||
list(APPEND SSL_EAY_NAMES ssl)
|
||||
|
||||
find_library(LIB_EAY
|
||||
NAMES
|
||||
${LIB_EAY_NAMES}
|
||||
${_OPENSSL_ROOT_HINTS_AND_PATHS}
|
||||
PATH_SUFFIXES
|
||||
"lib"
|
||||
"lib/MinGW"
|
||||
# Do not search system path. Otherwise the DLL will be found rather than the link library.
|
||||
NO_SYSTEM_ENVIRONMENT_PATH
|
||||
NO_CMAKE_SYSTEM_PATH
|
||||
)
|
||||
|
||||
find_library(SSL_EAY
|
||||
NAMES
|
||||
${SSL_EAY_NAMES}
|
||||
${_OPENSSL_ROOT_HINTS_AND_PATHS}
|
||||
PATH_SUFFIXES
|
||||
"lib"
|
||||
"lib/MinGW"
|
||||
# Do not search system path. Otherwise the DLL will be found rather than the link library.
|
||||
NO_SYSTEM_ENVIRONMENT_PATH
|
||||
NO_CMAKE_SYSTEM_PATH
|
||||
)
|
||||
|
||||
mark_as_advanced(SSL_EAY LIB_EAY)
|
||||
set( OPENSSL_LIBRARIES ${SSL_EAY} ${LIB_EAY} )
|
||||
unset(LIB_EAY_NAMES)
|
||||
unset(SSL_EAY_NAMES)
|
||||
else()
|
||||
# Not sure what to pick for -say- intel, let's use the toplevel ones and hope someone report issues:
|
||||
find_library(LIB_EAY
|
||||
NAMES
|
||||
libeay32
|
||||
${_OPENSSL_ROOT_HINTS_AND_PATHS}
|
||||
HINTS
|
||||
${_OPENSSL_LIBDIR}
|
||||
PATH_SUFFIXES
|
||||
lib
|
||||
)
|
||||
|
||||
find_library(SSL_EAY
|
||||
NAMES
|
||||
ssleay32
|
||||
${_OPENSSL_ROOT_HINTS_AND_PATHS}
|
||||
HINTS
|
||||
${_OPENSSL_LIBDIR}
|
||||
PATH_SUFFIXES
|
||||
lib
|
||||
)
|
||||
|
||||
mark_as_advanced(SSL_EAY LIB_EAY)
|
||||
set( OPENSSL_LIBRARIES ${SSL_EAY} ${LIB_EAY} )
|
||||
endif()
|
||||
else()
|
||||
|
||||
find_library(OPENSSL_SSL_LIBRARY
|
||||
NAMES
|
||||
ssl
|
||||
ssleay32
|
||||
ssleay32MD
|
||||
${_OPENSSL_ROOT_HINTS_AND_PATHS}
|
||||
HINTS
|
||||
${_OPENSSL_LIBDIR}
|
||||
PATH_SUFFIXES
|
||||
lib
|
||||
)
|
||||
|
||||
find_library(OPENSSL_CRYPTO_LIBRARY
|
||||
NAMES
|
||||
crypto
|
||||
${_OPENSSL_ROOT_HINTS_AND_PATHS}
|
||||
HINTS
|
||||
${_OPENSSL_LIBDIR}
|
||||
PATH_SUFFIXES
|
||||
lib
|
||||
)
|
||||
|
||||
mark_as_advanced(OPENSSL_CRYPTO_LIBRARY OPENSSL_SSL_LIBRARY)
|
||||
|
||||
# compat defines
|
||||
set(OPENSSL_SSL_LIBRARIES ${OPENSSL_SSL_LIBRARY})
|
||||
set(OPENSSL_CRYPTO_LIBRARIES ${OPENSSL_CRYPTO_LIBRARY})
|
||||
|
||||
set(OPENSSL_LIBRARIES ${OPENSSL_SSL_LIBRARY} ${OPENSSL_CRYPTO_LIBRARY})
|
||||
|
||||
endif()
|
||||
|
||||
function(from_hex HEX DEC)
|
||||
string(TOUPPER "${HEX}" HEX)
|
||||
set(_res 0)
|
||||
string(LENGTH "${HEX}" _strlen)
|
||||
|
||||
while (_strlen GREATER 0)
|
||||
math(EXPR _res "${_res} * 16")
|
||||
string(SUBSTRING "${HEX}" 0 1 NIBBLE)
|
||||
string(SUBSTRING "${HEX}" 1 -1 HEX)
|
||||
if (NIBBLE STREQUAL "A")
|
||||
math(EXPR _res "${_res} + 10")
|
||||
elseif (NIBBLE STREQUAL "B")
|
||||
math(EXPR _res "${_res} + 11")
|
||||
elseif (NIBBLE STREQUAL "C")
|
||||
math(EXPR _res "${_res} + 12")
|
||||
elseif (NIBBLE STREQUAL "D")
|
||||
math(EXPR _res "${_res} + 13")
|
||||
elseif (NIBBLE STREQUAL "E")
|
||||
math(EXPR _res "${_res} + 14")
|
||||
elseif (NIBBLE STREQUAL "F")
|
||||
math(EXPR _res "${_res} + 15")
|
||||
else()
|
||||
math(EXPR _res "${_res} + ${NIBBLE}")
|
||||
endif()
|
||||
|
||||
string(LENGTH "${HEX}" _strlen)
|
||||
endwhile()
|
||||
|
||||
set(${DEC} ${_res} PARENT_SCOPE)
|
||||
endfunction()
|
||||
|
||||
if (OPENSSL_INCLUDE_DIR)
|
||||
if (_OPENSSL_VERSION)
|
||||
set(OPENSSL_VERSION "${_OPENSSL_VERSION}")
|
||||
elseif(OPENSSL_INCLUDE_DIR AND EXISTS "${OPENSSL_INCLUDE_DIR}/openssl/opensslv.h")
|
||||
file(STRINGS "${OPENSSL_INCLUDE_DIR}/openssl/opensslv.h" openssl_version_str
|
||||
REGEX "^#[\t ]*define[\t ]+OPENSSL_VERSION_NUMBER[\t ]+0x([0-9a-fA-F])+.*")
|
||||
|
||||
# The version number is encoded as 0xMNNFFPPS: major minor fix patch status
|
||||
# The status gives if this is a developer or prerelease and is ignored here.
|
||||
# Major, minor, and fix directly translate into the version numbers shown in
|
||||
# the string. The patch field translates to the single character suffix that
|
||||
# indicates the bug fix state, which 00 -> nothing, 01 -> a, 02 -> b and so
|
||||
# on.
|
||||
|
||||
message(STATUS "OPENSSL_VERSION_STR=${openssl_version_str}")
|
||||
|
||||
string(REGEX REPLACE "^.*OPENSSL_VERSION_NUMBER[\t ]+0x([0-9a-fA-F])([0-9a-fA-F][0-9a-fA-F])([0-9a-fA-F][0-9a-fA-F])([0-9a-fA-F][0-9a-fA-F])([0-9a-fA-F]).*$"
|
||||
"\\1;\\2;\\3;\\4;\\5" OPENSSL_VERSION_LIST "${openssl_version_str}")
|
||||
list(GET OPENSSL_VERSION_LIST 0 OPENSSL_VERSION_MAJOR)
|
||||
list(GET OPENSSL_VERSION_LIST 1 OPENSSL_VERSION_MINOR)
|
||||
from_hex("${OPENSSL_VERSION_MINOR}" OPENSSL_VERSION_MINOR)
|
||||
list(GET OPENSSL_VERSION_LIST 2 OPENSSL_VERSION_FIX)
|
||||
from_hex("${OPENSSL_VERSION_FIX}" OPENSSL_VERSION_FIX)
|
||||
list(GET OPENSSL_VERSION_LIST 3 OPENSSL_VERSION_PATCH)
|
||||
|
||||
if (NOT OPENSSL_VERSION_PATCH STREQUAL "00")
|
||||
from_hex("${OPENSSL_VERSION_PATCH}" _tmp)
|
||||
# 96 is the ASCII code of 'a' minus 1
|
||||
math(EXPR OPENSSL_VERSION_PATCH_ASCII "${_tmp} + 96")
|
||||
unset(_tmp)
|
||||
# Once anyone knows how OpenSSL would call the patch versions beyond 'z'
|
||||
# this should be updated to handle that, too. This has not happened yet
|
||||
# so it is simply ignored here for now.
|
||||
string(ASCII "${OPENSSL_VERSION_PATCH_ASCII}" OPENSSL_VERSION_PATCH_STRING)
|
||||
endif ()
|
||||
|
||||
set(OPENSSL_VERSION "${OPENSSL_VERSION_MAJOR}.${OPENSSL_VERSION_MINOR}.${OPENSSL_VERSION_FIX}${OPENSSL_VERSION_PATCH_STRING}")
|
||||
endif ()
|
||||
endif ()
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
|
||||
if (OPENSSL_VERSION)
|
||||
find_package_handle_standard_args(OpenSSL
|
||||
REQUIRED_VARS
|
||||
OPENSSL_LIBRARIES
|
||||
OPENSSL_INCLUDE_DIR
|
||||
VERSION_VAR
|
||||
OPENSSL_VERSION
|
||||
FAIL_MESSAGE
|
||||
"Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the system variable OPENSSL_ROOT_DIR"
|
||||
)
|
||||
else ()
|
||||
find_package_handle_standard_args(OpenSSL "Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the system variable OPENSSL_ROOT_DIR"
|
||||
OPENSSL_LIBRARIES
|
||||
OPENSSL_INCLUDE_DIR
|
||||
)
|
||||
endif ()
|
||||
|
||||
mark_as_advanced(OPENSSL_INCLUDE_DIR OPENSSL_LIBRARIES)
|
||||
@@ -22,6 +22,7 @@
|
||||
|
||||
find_path( NGSPICE_INCLUDE_DIR ngspice/sharedspice.h
|
||||
PATHS ${NGSPICE_ROOT_DIR} $ENV{NGSPICE_ROOT_DIR} ${NGSPICE_INCLUDE_PATH}
|
||||
${NGSPICE_ROOT_DIR}/include
|
||||
PATH_SUFFIXES src/include share/ngspice/include share/ngspice/include/ngspice
|
||||
)
|
||||
|
||||
|
||||
@@ -25,34 +25,32 @@
|
||||
# Function make_lexer
|
||||
# is a standard way to invoke TokenList2DsnLexer.cmake.
|
||||
# Extra arguments are treated as source files which depend on the generated
|
||||
# outHeaderFile
|
||||
# files. Some detail here on the indirection:
|
||||
# - Parallel builds all depend on the same files, and CMake will generate the same file multiple times in the same location.
|
||||
# This can be problematic if the files are generated at the same time and overwrite each other.
|
||||
# - To fix this, we create a custom target (outputTarget) that the parallel builds depend on.
|
||||
# AND build dependencies. This creates the needed rebuild for appropriate source object changes.
|
||||
function( make_lexer outputTarget inputFile outHeaderFile outCppFile enum )
|
||||
|
||||
function( make_lexer inputFile outHeaderFile outCppFile enum )
|
||||
add_custom_command(
|
||||
OUTPUT ${outHeaderFile}
|
||||
${outCppFile}
|
||||
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${outHeaderFile}
|
||||
${CMAKE_CURRENT_BINARY_DIR}/${outCppFile}
|
||||
COMMAND ${CMAKE_COMMAND}
|
||||
-Denum=${enum}
|
||||
-DinputFile=${inputFile}
|
||||
-DoutHeaderFile=${outHeaderFile}
|
||||
-DoutCppFile=${outCppFile}
|
||||
-DinputFile=${CMAKE_CURRENT_SOURCE_DIR}/${inputFile}
|
||||
-DoutHeaderFile=${CMAKE_CURRENT_BINARY_DIR}/${outHeaderFile}
|
||||
-DoutCppFile=${CMAKE_CURRENT_BINARY_DIR}/${outCppFile}
|
||||
-P ${CMAKE_MODULE_PATH}/TokenList2DsnLexer.cmake
|
||||
DEPENDS ${inputFile}
|
||||
${CMAKE_MODULE_PATH}/TokenList2DsnLexer.cmake
|
||||
COMMENT "TokenList2DsnLexer.cmake creating:
|
||||
${outHeaderFile} and
|
||||
${outCppFile} from
|
||||
${inputFile}"
|
||||
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${inputFile}
|
||||
${CMAKE_MODULE_PATH}/TokenList2DsnLexer.cmake
|
||||
)
|
||||
|
||||
# extra_args, if any, are treated as source files (typically headers) which
|
||||
# are known to depend on the generated outHeader.
|
||||
foreach( extra_arg ${ARGN} )
|
||||
set_source_files_properties( ${extra_arg}
|
||||
PROPERTIES OBJECT_DEPENDS ${outHeaderFile}
|
||||
)
|
||||
endforeach()
|
||||
|
||||
target_sources( ${outputTarget} PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/${outCppFile} )
|
||||
target_include_directories( ${outputTarget} PUBLIC ${CMAKE_CURRENT_BINARY_DIR} )
|
||||
endfunction()
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,100 @@
|
||||
# This program source code file is part of KiCad, a free EDA CAD application.
|
||||
#
|
||||
# Copyright (C) 2019 KiCad Developers, see AUTHORS.txt for contributors.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License
|
||||
# as published by the Free Software Foundation; either version 2
|
||||
# of the License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, you may find one here:
|
||||
# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
||||
# or you may search the http://www.gnu.org website for the version 2 license,
|
||||
# or you may write to the Free Software Foundation, Inc.,
|
||||
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
|
||||
#
|
||||
# Utility CMake functions and targets for marshalling the builds of QA
|
||||
# tests and tools
|
||||
#
|
||||
|
||||
# CI tools can use this to force tests to output machine-readable formats
|
||||
# when possible
|
||||
option( KICAD_TEST_XML_OUTPUT
|
||||
"Cause unit tests to output xUnit results where possible for more granular CI reporting."
|
||||
OFF
|
||||
)
|
||||
mark_as_advanced( KICAD_TEST_XML_OUTPUT ) # Only CI tools need this
|
||||
|
||||
# This is a "meta" target that is used to collect all tests
|
||||
add_custom_target( qa_all_tests )
|
||||
|
||||
# This is a "meta" target used to collect all utility tools
|
||||
add_custom_target( qa_all_tools )
|
||||
|
||||
# This "meta" target builds all QA tools, utils, etc
|
||||
add_custom_target( qa_all
|
||||
DEPENDS qa_all_tests qa_all_tools
|
||||
)
|
||||
|
||||
# Add a target as a "QA test" executable:
|
||||
# * Added as a CTest test with the given name
|
||||
# * Excluded from ALL when KICAD_BUILD_QA_TESTS not set
|
||||
# * Is a dependency of qa_all_tests
|
||||
function( kicad_add_boost_test TEST_EXEC_TARGET TEST_NAME)
|
||||
|
||||
set(BOOST_TEST_PARAMS "")
|
||||
|
||||
if( KICAD_TEST_XML_OUTPUT )
|
||||
# Provide Boost-test-y XML params if asked
|
||||
# Due to Boost issue in 1.62, have to use the --logger parameter, rather than
|
||||
# separate --log_format, --log_sink, etc parameter
|
||||
# https://svn.boost.org/trac10/ticket/12507
|
||||
set(BOOST_TEST_PARAMS --logger=XML,all,${TEST_NAME}.boost-results.xml --report_level=no --result_code=no)
|
||||
endif()
|
||||
|
||||
# Add the test to the CTest registry
|
||||
add_test( NAME ${TEST_NAME}
|
||||
COMMAND $<TARGET_FILE:${TEST_EXEC_TARGET}> ${BOOST_TEST_PARAMS}
|
||||
)
|
||||
|
||||
# Make the overall test meta-target depend on this test
|
||||
add_dependencies( qa_all_tests ${TEST_EXEC_TARGET} )
|
||||
|
||||
# If tests are not enabled by default, remove from the ALL target
|
||||
# They can still be built manually, or all together with the qa_all_test target
|
||||
if( NOT KICAD_BUILD_QA_TESTS )
|
||||
|
||||
set_target_properties( ${TEST_EXEC_TARGET}
|
||||
PROPERTIES EXCLUDE_FROM_ALL TRUE
|
||||
)
|
||||
|
||||
endif()
|
||||
|
||||
endfunction()
|
||||
|
||||
# Add a target as a "QA tool" executable:
|
||||
# * Excluded from ALL when KICAD_BUILD_QA_TESTS not set
|
||||
# * Is a dependency of qa_all_tools
|
||||
function( kicad_add_utils_executable TARGET)
|
||||
|
||||
# If tests are not enabled by default, remove from the ALL target
|
||||
# They can still be built manually, or all together with the qa_all_tools
|
||||
if( NOT KICAD_BUILD_QA_TESTS )
|
||||
|
||||
set_target_properties( ${TARGET}
|
||||
PROPERTIES EXCLUDE_FROM_ALL TRUE
|
||||
)
|
||||
|
||||
endif()
|
||||
|
||||
# Make the overall test meta-target depend on this test
|
||||
add_dependencies( qa_all_tools ${TARGET} )
|
||||
|
||||
endfunction()
|
||||
@@ -1,38 +1,38 @@
|
||||
#
|
||||
# This program source code file is part of KICAD, a free EDA CAD application.
|
||||
#
|
||||
# Copyright (C) 2016 Wayne Stambaugh <stambaughw@gmail.com>
|
||||
# Copyright (C) 2016 - 2019 KiCad Developers, see AUTHORS.txt for contributors.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License
|
||||
# as published by the Free Software Foundation; either version 2
|
||||
# of the License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, you may find one here:
|
||||
# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
||||
# or you may search the http://www.gnu.org website for the version 2 license,
|
||||
# or you may write to the Free Software Foundation, Inc.,
|
||||
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
#
|
||||
|
||||
# Note: unless you are the person responsible for creating releases,
|
||||
# do *not* change these variables. This way the KiCad project
|
||||
# can maintain control over what is an official KiCad build and
|
||||
# what is not. Setting these variable that conflict with KiCad
|
||||
# releases is a shooting offense.
|
||||
#
|
||||
# This file gets included in the WriteVersionHeader.cmake file to set
|
||||
# the default KiCad version when the source is provided in an archive
|
||||
# file or git is not available on the build system. When KiCad is
|
||||
# cloned using git, the git version is used. This version string should
|
||||
# be set after each version tag is added to the git repo. This will
|
||||
# give developers a reasonable idea where which branch was used to build
|
||||
# KiCad.
|
||||
set( KICAD_VERSION "5.1.2" )
|
||||
#
|
||||
# This program source code file is part of KICAD, a free EDA CAD application.
|
||||
#
|
||||
# Copyright (C) 2016 Wayne Stambaugh <stambaughw@gmail.com>
|
||||
# Copyright (C) 2016 - 2019 KiCad Developers, see AUTHORS.txt for contributors.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License
|
||||
# as published by the Free Software Foundation; either version 2
|
||||
# of the License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, you may find one here:
|
||||
# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
||||
# or you may search the http://www.gnu.org website for the version 2 license,
|
||||
# or you may write to the Free Software Foundation, Inc.,
|
||||
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
#
|
||||
|
||||
# Note: unless you are the person responsible for creating releases,
|
||||
# do *not* change these variables. This way the KiCad project
|
||||
# can maintain control over what is an official KiCad build and
|
||||
# what is not. Setting these variable that conflict with KiCad
|
||||
# releases is a shooting offense.
|
||||
#
|
||||
# This file gets included in the WriteVersionHeader.cmake file to set
|
||||
# the default KiCad version when the source is provided in an archive
|
||||
# file or git is not available on the build system. When KiCad is
|
||||
# cloned using git, the git version is used. This version string should
|
||||
# be set after each version tag is added to the git repo. This will
|
||||
# give developers a reasonable idea where which branch was used to build
|
||||
# KiCad.
|
||||
set( KICAD_VERSION "5.99.0-unknown" )
|
||||
|
||||
@@ -150,7 +150,7 @@ set( sourceFileHeader
|
||||
* your DSN lexer.
|
||||
*/
|
||||
|
||||
#include <${result}_lexer.h>
|
||||
#include <${outHeaderFile}>
|
||||
|
||||
using namespace ${enum};
|
||||
|
||||
@@ -268,7 +268,7 @@ public:
|
||||
|
||||
/**
|
||||
* Constructor ( LINE_READER* )
|
||||
* intializes a lexer and prepares to read from @a aLineReader which
|
||||
* initializes a lexer and prepares to read from @a aLineReader which
|
||||
* is assumed ready, and may be in use by other DSNLEXERs also. No ownership
|
||||
* is taken of @a aLineReader. This enables it to be used by other lexers also.
|
||||
* The transition between grammars in such a case, must happen on a text
|
||||
|
||||
@@ -194,7 +194,7 @@ jp charras:
|
||||
|
||||
* Add item clarification context menu to EESchema when multiple unresolved
|
||||
items are found at the current cross hair position.
|
||||
* Add collector class SCH_COLLECTOR for supporting multiple item hit testing.
|
||||
* Add collector class EE_COLLECTOR for supporting multiple item hit testing.
|
||||
* Removed bit wise masked filtering from schematic item hit testing.
|
||||
* Removed all old hit testing functions and methods scattered about the
|
||||
EESchema source code.
|
||||
|
||||
@@ -50,7 +50,7 @@ developers. The other KiCad developers will appreciate your effort.
|
||||
**Do not modify this document without the consent of the project
|
||||
leader. All changes to this document require approval.**
|
||||
|
||||
## 1.3 Tools
|
||||
## 1.3 Tools ## {#tools}
|
||||
|
||||
There are some tools that can help you format your code easily.
|
||||
|
||||
@@ -76,26 +76,38 @@ to "true" for the KiCad repo:
|
||||
git config kicad.check-format true
|
||||
|
||||
Without this config, the format checker will not run on commit, but you can
|
||||
still check files staged for commit manually:
|
||||
|
||||
tools/check_coding.sh --diff
|
||||
still check files staged for commit manually (see below).
|
||||
|
||||
If the hook is enabled, when you commit a change, you will be told if you
|
||||
have caused any style violations (only in your changed code). You can fix your
|
||||
staged changes automatically with this tool:
|
||||
have caused any style violations (only in your changed code). You can then fix
|
||||
the errors, either manually, or with the tools below.
|
||||
|
||||
tools/check_coding.sh
|
||||
|
||||
Or you can proceed anyway, if you are sure your style is correct:
|
||||
If you are warned about formatting errors, but you are sure your style is correct,
|
||||
you can still commit:
|
||||
|
||||
git commit --no-verify
|
||||
|
||||
The `check_coding.sh` tool has other modes:
|
||||
### Correcting Formatting Errors ## {#correcting-formatting-errors}
|
||||
|
||||
* Make (or see only) changes to files modified in the previous commit:
|
||||
There is a Git aliases file that provides the right commands to show and correct
|
||||
formatting errors. Add to your repository config by running this command from
|
||||
the source directory:
|
||||
|
||||
git config --add include.path $(pwd)/helpers/git/format_alias
|
||||
|
||||
Then you can use the following aliases:
|
||||
|
||||
* `git check-format`: show any formatting warnings (but make no changes)
|
||||
* `git fix-format`: correct formatting (you will need to `git add` afterwards)
|
||||
|
||||
These aliases use a script, `tools/check-coding.sh`, which takes care of only
|
||||
checking the formatting for files that should be formatted. This script has
|
||||
other uses:
|
||||
|
||||
* Make (or see only) violations in files modified in the previous commit (useful
|
||||
when interactive-rebasing):
|
||||
* `check_coding.sh --amend [--diff]`
|
||||
|
||||
|
||||
# 2. Naming Conventions # {#naming_conventions}
|
||||
Before delving into anything as esoteric as indentation and formatting,
|
||||
naming conventions need to be addressed. This section does not attempt
|
||||
@@ -467,6 +479,20 @@ The case statement is to be indented to the same level as the switch.
|
||||
}
|
||||
~~~~~~~~~~~~~
|
||||
|
||||
It is permitted to place all cases on a single line each, if that makes the
|
||||
code more readable. This is often done for look-ups or translation functions. In
|
||||
this case, you will have to manually align for readability as appropriate and
|
||||
reject clang-format's suggested changes, if you use it:
|
||||
|
||||
~~~~~~~~~~~~~{.cpp}
|
||||
switch( m_orientation )
|
||||
{
|
||||
case PIN_RIGHT: m_orientation = PIN_UP; break;
|
||||
case PIN_UP: m_orientation = PIN_LEFT; break;
|
||||
case PIN_LEFT: m_orientation = PIN_DOWN; break;
|
||||
case PIN_DOWN: m_orientation = PIN_RIGHT; break;
|
||||
}
|
||||
~~~~~~~~~~~~~
|
||||
|
||||
# 5. License Statement # {#license_statement}
|
||||
There is a the file copyright.h which you can copy into the top of
|
||||
@@ -835,6 +861,6 @@ learn something new.
|
||||
|
||||
[clang-format]: https://clang.llvm.org/docs/ClangFormat.html
|
||||
[cppstandard]:http://www.possibility.com/Cpp/CppCodingStandard.html
|
||||
[kernel]:http://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/tree/Documentation/CodingStyle
|
||||
[kernel]:https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/Documentation/process/coding-style.rst
|
||||
[overloading]:http://www.cs.caltech.edu/courses/cs11/material/cpp/donnie/cpp-ops.html
|
||||
[style]:http://en.wikipedia.org/wiki/Programming_style
|
||||
|
||||
@@ -125,7 +125,7 @@ section.
|
||||
|
||||
## Ngspice Library ## {#ngspice}
|
||||
|
||||
The [Ngspice Library][libngsice] is used to provide Spice simulation support in the schematic
|
||||
The [Ngspice Library][libngspice] is used to provide Spice simulation support in the schematic
|
||||
editor. Make sure the the version of ngspice library used was built with the--with-ngshared
|
||||
option. This library needs to be installed unless the Spice build option is disabled.
|
||||
|
||||
@@ -135,41 +135,43 @@ KiCad has many build options that can be configured to build different options d
|
||||
the availability of support for each option on a given platform. This section documents
|
||||
these options and their default values.
|
||||
|
||||
## Advanced Graphics Context ## {#graphics_context_opt}
|
||||
|
||||
The USE_WX_GRAPHICS_CONTEXT option replaces wxDC with wxGraphicsContext for graphics rendering.
|
||||
This option is disabled by default. Warning: the is experimental and has not been maintained
|
||||
so use at your own risk.
|
||||
|
||||
## Graphics Context Overlay ## {#overlay_opt}
|
||||
|
||||
The USE_WX_OVERLAY option is used to enable the optional wxOverlay class for graphics rendering
|
||||
on macOS. This is enabled on macOS by default and disabled on all other platforms.
|
||||
|
||||
## Scripting Support ## {#scripting_opt}
|
||||
|
||||
The KICAD_SCRIPTING option is used to enable building the Python scripting support into Pcbnew.
|
||||
This options is enabled by default.
|
||||
This options is enabled by default, and will disable all other KICAD_SCRIPTING_* options when
|
||||
it is disabled.
|
||||
|
||||
## Python 3 Scripting Support ## {#python3}
|
||||
|
||||
The KICAD_SCRIPTING_PYTHON3 option is used to enable using Python 3 for the scripting support
|
||||
instead of Python 2. This option is disabled by default and only is relevant if
|
||||
[KICAD_SCRIPTING](#scripting_opt) is enabled.
|
||||
|
||||
## Scripting Module Support ## {#scripting_mod_opt}
|
||||
|
||||
The KICAD_SCRIPTING_MODULES option is used to enable building and installing the Python modules
|
||||
supplied by KiCad. This option is enabled by default.
|
||||
|
||||
## Python 3 Scripting Support ## {#python3}
|
||||
|
||||
The KICAD_SCRIPTING_PYTHON3 option is used to enable building of the Python 3 interface instead
|
||||
of Python 2. This option is disabled by default.
|
||||
supplied by KiCad. This option is enabled by default, but will be disabled if
|
||||
[KICAD_SCRIPTING](#scripting_opt) is disabled.
|
||||
|
||||
## wxPython Scripting Support ## {#wxpython_opt}
|
||||
|
||||
The KICAD_SCRIPTING_WXPYTHON option is used to enable building the wxPython interface into
|
||||
Pcbnew including the wxPython console. This option is enabled by default.
|
||||
Pcbnew including the wxPython console. This option is enabled by default, but will be disabled if
|
||||
[KICAD_SCRIPTING](#scripting_opt) is disabled.
|
||||
|
||||
## wxPython Phoenix Scripting Support ## {#wxpython_phoenix}
|
||||
|
||||
The KICAD_SCRIPTING_WXPYTHON_PHOENIX option is used to enable building the wxPython interface with
|
||||
the new Phoenix binding instead of the legacy one. This option is disabled by default.
|
||||
the new Phoenix binding instead of the legacy one. This option is disabled by default, and
|
||||
enabling it requires [KICAD_SCRIPTING](#scripting_opt) to be enabled.
|
||||
|
||||
## Python Scripting Action Menu Support ## {#python_action_menu_opt}
|
||||
|
||||
The KICAD_SCRIPTING_ACTION_MENU option allows Python scripts to be added directly to the Pcbnew
|
||||
menu. This option is enabled by default, but will be disabled if
|
||||
[KICAD_SCRIPTING](#scripting_opt) is disabled. Please note that this option is highly
|
||||
experimental and can cause Pcbnew to crash if Python scripts create an invalid object state
|
||||
within Pcbnew.
|
||||
|
||||
## GitHub Plugin ## {#github_opt}
|
||||
|
||||
@@ -199,11 +201,20 @@ whether install them or not with the KICAD_INSTALL_DEMOS option. You can also se
|
||||
install them with the KICAD_DEMOS variable. On Linux the demos are installed in
|
||||
$PREFIX/share/kicad/demos by default.
|
||||
|
||||
## Python Scripting Action Menu Support ## {#python_action_menu_opt}
|
||||
## Quality assurance (QA) unit tests ## {#quality_assurance_tests_opt}
|
||||
|
||||
The KICAD_SCRIPTING_ACTION_MENU option allows Python scripts to be added directly to the Pcbnew
|
||||
menu. This option is disabled by default. Please note that this option is highly experimental
|
||||
and can cause Pcbnew to crash if Python scripts create an invalid object state within Pcbnew.
|
||||
The KICAD_BUILD_QA_TESTS option allows building unit tests binaries for quality assurance as part
|
||||
of the default build. This option is enabled by default.
|
||||
|
||||
If this option is disabled, the QA binaries can still be built by manually specifying the target.
|
||||
For example, with `make`:
|
||||
|
||||
* Build all QA binaries: `make qa_all`
|
||||
* Build a specific test: `make qa_pcbnew`
|
||||
* Build all unit tests: `make qa_all_tests`
|
||||
* Build all test tool binaries: `make qa_all_tools`
|
||||
|
||||
For more information about testing KiCad, see [this page](testing.md).
|
||||
|
||||
## KiCad Build Version ## {#build_version_opt}
|
||||
|
||||
@@ -222,6 +233,18 @@ information as follows:
|
||||
|
|
||||
output of `git describe --dirty` if git is available.
|
||||
|
||||
|
||||
## KiCad Config Directory ## {#config_dir_opt}
|
||||
|
||||
The default KiCad configuration directory is `kicad`. On Linux this is located at
|
||||
`~/.config/kicad`, on MSW, this is `C:\Documents and Settings\username\Application Data\kicad` and
|
||||
on MacOS, this is `~/Library/Preferences/kicad`. If the installation package would like to, it may
|
||||
specify an alternate configuration name instead of `kicad`. This may be useful for versioning
|
||||
the configuration parameters and allowing the use of, e.g. `kicad5` and `kicad6` concurrently without
|
||||
losing configuration data.
|
||||
|
||||
This is set by specifying the KICAD_CONFIG_DIR string at compile time.
|
||||
|
||||
# Getting the KiCad Source Code ## {#getting_src}
|
||||
|
||||
There are several ways to get the KiCad source. If you want to build the stable version you
|
||||
@@ -336,6 +359,12 @@ configure pacman to prevent upgrading the 64-bit Boost package by adding:
|
||||
|
||||
to your /etc/pacman.conf file.
|
||||
|
||||
### Building with Boost 1.70 ### {#ki_msys2_boost_1_70}
|
||||
|
||||
There is an issue building KiCad with Boost version 1.70 due to CMake not defining the proper
|
||||
link libraries during configuration. Boost 1.70 can be used but `-DBoost_NO_BOOST_CMAKE=ON`
|
||||
needs to be added during CMake configuration to insure the link libraries are properly generated.
|
||||
|
||||
### Building OCE from source
|
||||
|
||||
KiCad requires OCE by default, and the version installed by `pacman` can cause build errors in
|
||||
|
||||
@@ -25,7 +25,7 @@ Another documentation source is the auto-generated Doxygen reference of the
|
||||
API. It can be found
|
||||
[here](http://docs.kicad-pcb.org/doxygen-python/namespacepcbnew.html).
|
||||
|
||||
# `Action Plugin` Support # {#ppi_action_pi}
|
||||
# \`Action Plugin\` Support # {#ppi_action_pi}
|
||||
Besides the stand-alone usage of the generated Python plugin interface,
|
||||
additional support regarding online manipulation of board projects is available
|
||||
for Pcbnew. Plugins using this feature are called `Action Plugins` and they are
|
||||
@@ -44,21 +44,23 @@ In order for the discovery process to work, the following requirements must be m
|
||||
|
||||
* The plugin must be installed in the KiCad plugins search paths as documented
|
||||
in `scripting/kicadplugins.i`. You can always discover the search path for your
|
||||
setup by opening the Scripting console and entering the command: `import pcbnew;
|
||||
print pcbnew.PLUGIN_DIRECTORIES_SEARCH`.
|
||||
setup by opening the scripting console and entering the command:
|
||||
|
||||
Currently on a Linux Installation the plugins search path is
|
||||
`import pcbnew; print pcbnew.PLUGIN_DIRECTORIES_SEARCH`
|
||||
|
||||
Currently on a Linux Installation the plugins search path is
|
||||
|
||||
* /usr/share/kicad/scripting/plugins/
|
||||
* ~/.kicad/scripting/plugins
|
||||
* ~/.kicad_plugins/
|
||||
|
||||
On Windows
|
||||
On Windows
|
||||
|
||||
* \{KICAD_INSTALL_PATH\}/share/kicad/scripting/plugins
|
||||
* %APPDATA%/Roaming/kicad/scripting/plugins
|
||||
* \%KICAD_INSTALL_PATH%/share/kicad/scripting/plugins
|
||||
* \%APPDATA%/Roaming/kicad/scripting/plugins
|
||||
|
||||
On macOS, there is a security feature that makes it easier to add scripting plugins to the ~/Library... path than to kicad.app, but the search path is
|
||||
On macOS, there is a security feature that makes it easier to add scripting plugins
|
||||
to the ~/Library... path than to kicad.app, but the search path is
|
||||
|
||||
* /Applications/kicad/Kicad/Contents/SharedSupport/scripting/plugins
|
||||
* ~/Library/Application Support/kicad/scripting/plugins
|
||||
|
||||
@@ -1,461 +0,0 @@
|
||||
# Version 5 Road Map # {#v5_road_map}
|
||||
|
||||
This document is the KiCad version 5 Developer's road map document. It is
|
||||
living document that should be maintained during the version 5 development
|
||||
cycle. The goal of this document is to provide an overview for developers
|
||||
of the goals for the project for the version 5 release of KiCad. It is
|
||||
broken into sections for each major component of the KiCad source code and
|
||||
documentation. It defines tasks that developers an use to contribute to the
|
||||
project and provides updated status information. Tasks should define clear
|
||||
objectives and avoid vague generalizations so that a new developer can complete
|
||||
the task. It is not a place for developers to add their own personal wish.
|
||||
list. It should only be updated with approval of the project manager after
|
||||
discussion with the lead developers.
|
||||
|
||||
Each entry in the road map is made up of four sections. The goal should
|
||||
be a brief description of the what the road map entry will accomplish. The
|
||||
task section should be a list of deliverable items that are specific enough
|
||||
hat they can be documented as completed. The dependencies sections is a list
|
||||
of requirements that must be completed before work can begin on any of the
|
||||
tasks. The status section should include a list of completed tasks or marked
|
||||
as complete as when the goal is met.
|
||||
|
||||
[TOC]
|
||||
|
||||
# Project # {#v5_project}
|
||||
This section defines the tasks for the project related goals that are not
|
||||
related to coding or documentation. It is a catch all for issues such as
|
||||
developer and user relations, dissemination of information on websites,
|
||||
policies, etc.
|
||||
|
||||
|
||||
# General # {#v5_general}
|
||||
This section defines the tasks that affect all or most of KiCad or do not
|
||||
fit under as specific part of the code such as the board editor or the
|
||||
schematic editor.
|
||||
|
||||
## Search Tree Control ## {#v5_re_search_control}
|
||||
|
||||
**Goal:**
|
||||
Create a user interface element that allows searching through a list of
|
||||
items in a tree control for library searching.
|
||||
|
||||
**Task:**
|
||||
- Create hybrid tree control with search text control for displaying filtered
|
||||
objects (both symbol and footprint libraries) in a parent window.
|
||||
|
||||
**Dependencies:**
|
||||
- None
|
||||
|
||||
**Status:**
|
||||
- Initial container searching code completed.
|
||||
- Wildcard and regular expression container searching completed.
|
||||
- Control code in progress.
|
||||
|
||||
# Common Library # {#v5_common_lib}
|
||||
This section covers the source code shared between all of the KiCad
|
||||
applications
|
||||
|
||||
## Unified Rendering Framework ## {#v5_unified_rendering}
|
||||
**Goal:**
|
||||
|
||||
Provide a single framework for developing new tools. Port existing tools
|
||||
to the new framework and remove the legacy framework tools.
|
||||
|
||||
**Task:**
|
||||
- Port wxDC to GAL or get Cairo rendering to nearly the performance of the
|
||||
current wxDC rendering so that we have a single framework to develop new
|
||||
tools and we can continue to support systems that don't have a complete
|
||||
OpenGL stack.
|
||||
|
||||
**Dependencies**
|
||||
- [Tool framework](http://www.ohwr.org/projects/cern-kicad/wiki/WorkPackages)
|
||||
|
||||
**Status**
|
||||
- In progress
|
||||
|
||||
## Printing Improvements ## {#v5_print}
|
||||
**Goal:**
|
||||
|
||||
Make printing quality consistent across platforms.
|
||||
|
||||
**Task:**
|
||||
- Resolve printing issues on all platforms.
|
||||
|
||||
**Dependencies**
|
||||
- None
|
||||
|
||||
**Status**
|
||||
- No progress.
|
||||
|
||||
## Object Properties and Introspection ## {#v5_object_props}
|
||||
**Goal:**
|
||||
|
||||
Provide an object introspection system using properties.
|
||||
|
||||
**Task:**
|
||||
- Select existing or develop property system.
|
||||
- Add definable properties to base objects.
|
||||
- Create introspection framework for manipulating object properties.
|
||||
- Serialization of properties to and from files and/or other I/O structures.
|
||||
- Create tool to edit property namespace/object name/name/type/value table.
|
||||
|
||||
**Dependencies:**
|
||||
- None
|
||||
|
||||
**Status:**
|
||||
- No progress.
|
||||
|
||||
## 3D Viewer Dynamic Library Plugin ## {#v5_plugin_base}
|
||||
**Goal:**
|
||||
|
||||
Create a base library plugin for handling external file I/O for the 3D viewer.
|
||||
This will allow plugins to be provided that are external to the project such
|
||||
as providing solid model file support (STEP, IGES, etc.) using OpenCascade
|
||||
without making it a project dependency.
|
||||
|
||||
**Task:**
|
||||
- Create a plugin to handle dynamically registered plugins for loading and
|
||||
saving file formats.
|
||||
- This object should be flexible enough to be extended for handling all file
|
||||
plugin types including schematic, board, footprint library, component
|
||||
library, etc. (optional)
|
||||
- See [blueprint](https://blueprints.launchpad.net/kicad/+spec/pluggable-file-io)
|
||||
on Launchpad for more information.
|
||||
|
||||
**Dependencies:**
|
||||
- None
|
||||
|
||||
**Status:**
|
||||
- 3D plugin code complete and legacy formats implemented.
|
||||
|
||||
|
||||
# Eeschema: Schematic Editor # {#v5_eeschema}
|
||||
This section applies to the source code for the Eeschema schematic editor.
|
||||
|
||||
## Coherent SCHEMATIC Object ## {#v5_sch_object}
|
||||
**Goal:**
|
||||
|
||||
Clean up the code related to the schematic object(s) into a coherent object for
|
||||
managing and manipulating the schematic that can be used by third party tools
|
||||
and Python scripting.
|
||||
|
||||
**Task:**
|
||||
- Move handling of root sheet object to SCHEMATIC object.
|
||||
- Move SCH_SCREENS code into SCH_OBJECT.
|
||||
- Build and maintain schematic hierarchy in SCHEMATIC object rather than
|
||||
recreating on the fly every time the hierarchical information is required.
|
||||
- Optionally build and maintain netlist during editing for extended editing
|
||||
features.
|
||||
- Add any missing functionality to the SCHEMATIC object.
|
||||
|
||||
**Dependencies:**
|
||||
- [Schematic and Component Library Plugin](#v5_sch_plugin)
|
||||
|
||||
**Status:**
|
||||
- In progress.
|
||||
|
||||
## Schematic and Component Library I/O Manager Plugin ## {#v5_sch_plugin}
|
||||
**Goal:**
|
||||
Create a plugin manager for loading and saving schematics and component
|
||||
libraries similar to the board plugin manager.
|
||||
|
||||
**Task:**
|
||||
- Design plugin manager for schematics and component libraries.
|
||||
- Port the current schematic and component library file formats to use the
|
||||
plugin.
|
||||
|
||||
**Dependencies:**
|
||||
- None
|
||||
|
||||
**Status:**
|
||||
- I/O manager and plugin objects are complete.
|
||||
- Legacy schematic file parser almost ready to commit.
|
||||
|
||||
|
||||
## S-Expression File Format ## {#v5_sch_sexpr}
|
||||
**Goal:**
|
||||
|
||||
Make schematic file format more readable, add new features, and take advantage
|
||||
of the s-expression parser and formatter capability used in Pcbnew.
|
||||
|
||||
**Task:**
|
||||
- Finalize feature set and file format.
|
||||
- Discuss the possibility of dropping the unit-less proposal temporarily to get
|
||||
the s-expression file format and SWEET library format implemented without
|
||||
completely rewriting Eeschema.
|
||||
- Add new s-expression file format to plugin.
|
||||
|
||||
**Dependencies:**
|
||||
- [Schematic and component I/O manager plugin](#v5_sch_plugin)
|
||||
|
||||
**Status:**
|
||||
- File format document nearly complete.
|
||||
|
||||
## Implement Sweet Component Libraries ## {#v5_sch_sweet}
|
||||
**Goal:**
|
||||
|
||||
Make component library design more robust and feature rich. Use s-expressions
|
||||
to make component library files more readable.
|
||||
|
||||
**Task:**
|
||||
- Use sweet component file format for component libraries.
|
||||
|
||||
**Dependencies:**
|
||||
- [S-expression file format](#v5_sch_sexpr).
|
||||
[Schematic and component I/O manager plugin](#v5_sch_plugin)
|
||||
|
||||
**Status:**
|
||||
- Initial SWEET library file format document written.
|
||||
|
||||
## Component Library Editor Usability Improvements ## {#v5_lib_editor_usability}
|
||||
**Goal:**
|
||||
|
||||
Make editing schematic symbol libraries easier to manage.
|
||||
|
||||
**Task:**
|
||||
- Determine usability improvements in the library editor for components with
|
||||
multiple units and/or alternate graphical representations.
|
||||
- Replace current library/symbols selection process with new hybrid tree search
|
||||
widget in new window pain for selection libraries and symbols. Provide drag
|
||||
and drop symbol copy/move between libraries.
|
||||
- Allow editing of symbol libraries not defined in footprint library table(s)
|
||||
using the file/path dialog to open a library.
|
||||
|
||||
**Dependencies:**
|
||||
- [Search Tree Control](#v5_re_search_control)
|
||||
|
||||
**Status:**
|
||||
- Determined alternate UI designs using new hybrid search tree control.
|
||||
|
||||
## Component and Netlist Attributes ## {#v5_netlist_attributes}
|
||||
**Goal:**
|
||||
|
||||
Provide a method of passing information to other tools via the net list.
|
||||
|
||||
**Task:**
|
||||
- Add virtual components and attributes to netlist to define properties that
|
||||
can be used by other tools besides the board editor.
|
||||
- Attributes (properties) are automatically included as part of the new file
|
||||
format.
|
||||
|
||||
**Dependencies:**
|
||||
- [S-expression schematic file format](#v5_sch_sexpr).
|
||||
|
||||
**Status:**
|
||||
- No progress.
|
||||
|
||||
|
||||
# Circuit Simulation # {#simulation}
|
||||
**Goal:**
|
||||
|
||||
Provide quality circuit simulation capabilities similar to commercial products.
|
||||
|
||||
**Task:**
|
||||
- Evaluate and select simulation library (ngspice, gnucap, qucs, etc).
|
||||
- Evaluate and select plotting library with wxWidgets support.
|
||||
- Confirm current spice netlist export is up to the task and add missing
|
||||
support for simulations.
|
||||
- Use plotting library to handle simulator output in a consistent manor similar
|
||||
to LTSpice.
|
||||
- Develop a tool that allows fine tuning of components on the fly.
|
||||
- Use plugin for the simulation code to allow support of different simulation
|
||||
libraries.
|
||||
- Create dialogs for configuring of simulation of Spice primitive components
|
||||
such as voltage sources, current sources, etc.
|
||||
- Create dialog(s) for configuration of simulation types transient, DC operating
|
||||
point, AC analysis, etc.
|
||||
|
||||
**Dependencies:**
|
||||
- None
|
||||
|
||||
**Status:**
|
||||
- Complete ([announcement message](https://lists.launchpad.net/kicad-developers/msg25483.html))
|
||||
|
||||
|
||||
# Pcbnew: Circuit Board Editor # {#v5_pcbnew}
|
||||
This section covers the source code of the board editing application Pcbnew.
|
||||
|
||||
## Tool Framework ## {#v5_pcb_tool_framework}
|
||||
**Goal:**
|
||||
|
||||
Unify all board editing tools under a single framework.
|
||||
|
||||
**Task:**
|
||||
- Drop footprint edit mode.
|
||||
- Port auto-router to GAL.
|
||||
- Complete porting of all board editing tools to new tool framework so they
|
||||
are available in the OpenGL and Cairo canvases.
|
||||
- Remove all duplicate legacy editing tools.
|
||||
|
||||
**Dependencies:**
|
||||
- In progress.
|
||||
|
||||
**Status:**
|
||||
- Initial porting work in progress.
|
||||
|
||||
## Modeling ## {#v5_modeling}
|
||||
|
||||
**Goal:**
|
||||
|
||||
Provide improved solid modeling support for KiCad including the file formats
|
||||
available in OpenCascade.
|
||||
|
||||
**Task:**
|
||||
- Improve low level code design.
|
||||
- Design plugin architecture to handle loading and saving 3D models.
|
||||
- Back port existing 3D formats (IDF and S3D) to plugin
|
||||
|
||||
**Dependencies:**
|
||||
- [Dynamic library plugin](#v5_plugin_base).
|
||||
|
||||
**Status:**
|
||||
- Completed.
|
||||
|
||||
## Push and Shove Router Improvements ## {#v5_ps_router_improvements}
|
||||
|
||||
**Goal:**
|
||||
|
||||
Add finishing touches to push and shove router.
|
||||
|
||||
**Task:**
|
||||
- Determine which features are feasible.
|
||||
- Factor out KiCad-specific code from PNS_ROUTER class.
|
||||
- Delete and backspace in idle mode
|
||||
- Differential pair clearance fixes.
|
||||
- Differential pair optimizer improvements (recognize differential pairs)
|
||||
- Persistent differential pair gap/width setting.
|
||||
- Walk around in drag mode.
|
||||
- Optimize trace being dragged too. (currently no optimization)
|
||||
- Backspace to erase last routed segment.
|
||||
- Auto-finish traces (if time permits)
|
||||
- Additional optimization pass for spring back algorithm using area-minimization
|
||||
strategy. (improves tightness of routing)
|
||||
- Restrict optimization area to view port (if user wants to)
|
||||
- Support 45 degree tuning meanders.
|
||||
- Respect trace/via locking!
|
||||
- Keep out zone support.
|
||||
|
||||
**Dependencies:**
|
||||
- None
|
||||
|
||||
**Status:**
|
||||
- Feature feasibility determined.
|
||||
- In Progress.
|
||||
|
||||
## Selection Filtering ## {#v5_pcb_selection_filtering}
|
||||
**Goal:**
|
||||
|
||||
Make the selection tool easier for the user to determine which object(s) are
|
||||
being selected by filtering.
|
||||
|
||||
**Task:**
|
||||
- Provide filtered object selection by adding a third tab to the layer manager
|
||||
or possibly some other UI element to provide filtered selection options.
|
||||
|
||||
**Dependencies:**
|
||||
- None
|
||||
|
||||
**Status:**
|
||||
- Initial design concept discussed.
|
||||
|
||||
## Segment End Point Snapping. ## {#v5_segment_snapping}
|
||||
**Goal:**
|
||||
|
||||
It is not uncommon for board edge segment end points to inadvertently not
|
||||
be closed causing issues for the 3D viewer and exporting to different file
|
||||
formats due the board outline not being a fully enclosed polygon. This
|
||||
feature would add segment end snapping support to allow the board outline
|
||||
to be fully enclosed. This feature would only need to be supported by the
|
||||
GAL rendering.
|
||||
|
||||
**Tasks**
|
||||
- Mark board edge segment ends with a drag indicator to make it visible to the
|
||||
user that the segment end does not have an endpoint with any other board edge
|
||||
segment.
|
||||
- Allow the user to snap the unconnected segment end to the nearest segment end
|
||||
point.
|
||||
- Automatically connect unconnected segments with and additional segment when
|
||||
opening the 3D viewer or exporting the board to another format. Warn the
|
||||
user that an addition segment has be added and should be verified.
|
||||
|
||||
**Dependencies:**
|
||||
- None
|
||||
|
||||
**Progress:**
|
||||
- Initial discussion.
|
||||
|
||||
## Stitching Via Support ## {#v5_pcb_stitching_vias}
|
||||
**Goal:**
|
||||
|
||||
Add capability to add vias for stitching and thermal transfer purposes
|
||||
that do not require being attached to tracks.
|
||||
|
||||
**Task:**
|
||||
- Develop more robust connectivity checking algorithm.
|
||||
- Create a UI element to allow the user to select a net from the list of
|
||||
valid nets.
|
||||
- Connection propagation fix for the current issue of vias that are not
|
||||
connected to tracks being tagged as unassigned and removed.
|
||||
- Manual via placement tool.
|
||||
- Improve the DRC to handle cases of orphaned vias.
|
||||
|
||||
**Dependencies:**
|
||||
- None
|
||||
|
||||
**Progress:**
|
||||
- Patch available to fix via propagation issue.
|
||||
|
||||
|
||||
# Documentation # {#v5_documentation}
|
||||
This section defines the tasks for both the user and developer documentation.
|
||||
|
||||
## Grammar Check ## {#v5_doc_grammar}
|
||||
**Goal:**
|
||||
|
||||
Improve user documentation readability and make life easier to for translators.
|
||||
|
||||
**Task:**
|
||||
- Review and revise all of the English documentation so that it is update with
|
||||
the current functionality of the code.
|
||||
- Translate the update documentation into other languages.
|
||||
|
||||
**Dependencies:**
|
||||
- None
|
||||
|
||||
**Status:**
|
||||
- No progress.
|
||||
|
||||
## Maintenance ## {#v5_doc_maintenance}
|
||||
**Task:**
|
||||
- Keep screen shots current with the source changes.
|
||||
|
||||
**Dependencies:**
|
||||
- None.
|
||||
|
||||
**Status:**
|
||||
- No progress.
|
||||
|
||||
## Convert Developer Documentation to Markup/down Format ## {#v5_dev_doc_format}
|
||||
**Goal:**
|
||||
|
||||
Improve developers documentation to make life easier for new developers to get
|
||||
involved with the project.
|
||||
|
||||
**Task:**
|
||||
- Convert platform build instructions from plain text to new format to be
|
||||
merged with the developer documentation.
|
||||
- Convert how to contribute to KiCad instructions from plain text to the new
|
||||
format to merged with the developer documentation.
|
||||
|
||||
**Dependencies:**
|
||||
- None.
|
||||
|
||||
**Status:**
|
||||
- In progress. Most of the developer documentation has been converted to
|
||||
[Doxygen markdown](http://www.doxygen.nl/manual/markdown.html)
|
||||
and the [output][kicad-docs] is rebuilt automatically when a commit is
|
||||
made to the KiCad repo.
|
||||
|
||||
[kicad-website]:http://kicad-pcb.org/
|
||||
[kicad-docs]:http://ci.kicad-pcb.org/job/kicad-doxygen/ws/Documentation/doxygen/html/index.html
|
||||
@@ -54,10 +54,84 @@ Create perspectives to allow users to arrange dockable windows as they prefer.
|
||||
**Status:**
|
||||
- No progress.
|
||||
|
||||
## Object Properties and Introspection ## {#v6_object_props}
|
||||
**Goal:**
|
||||
|
||||
Provide an object introspection system using properties.
|
||||
|
||||
**Task:**
|
||||
- Select existing or develop property system.
|
||||
- Add definable properties to base objects.
|
||||
- Create introspection framework for manipulating object properties.
|
||||
- Serialization of properties to and from files and/or other I/O structures.
|
||||
- Create tool to edit property namespace/object name/name/type/value table.
|
||||
|
||||
**Dependencies:**
|
||||
- None
|
||||
|
||||
**Status:**
|
||||
- In progress.
|
||||
|
||||
|
||||
# Eeschema: Schematic Editor # {#v6_eeschema}
|
||||
This section applies to the source code for the Eeschema schematic editor.
|
||||
|
||||
## Coherent SCHEMATIC Object ## {#v6_sch_object}
|
||||
**Goal:**
|
||||
|
||||
Clean up the code related to the schematic object(s) into a coherent object for
|
||||
managing and manipulating the schematic that can be used by third party tools
|
||||
and Python scripting.
|
||||
|
||||
**Task:**
|
||||
- Move handling of root sheet object to SCHEMATIC object.
|
||||
- Move SCH_SCREENS code into SCH_OBJECT.
|
||||
- Build and maintain schematic hierarchy in SCHEMATIC object rather than
|
||||
recreating on the fly every time the hierarchical information is required.
|
||||
- Optionally build and maintain netlist during editing for extended editing
|
||||
features.
|
||||
- Add any missing functionality to the SCHEMATIC object.
|
||||
|
||||
**Dependencies:**
|
||||
- None
|
||||
|
||||
**Status:**
|
||||
- In progress.
|
||||
|
||||
## Implement Sweet (S-Expression) Symbol Libraries ## {#v6_sch_sweet}
|
||||
**Goal:**
|
||||
|
||||
Make symbol library design more robust and feature rich. Use s-expressions
|
||||
to make component library files more readable.
|
||||
|
||||
**Task:**
|
||||
- Use sweet component file format for component libraries.
|
||||
|
||||
**Dependencies:**
|
||||
- None
|
||||
|
||||
**Status:**
|
||||
- Initial SWEET library file format document written.
|
||||
|
||||
## S-Expression File Format ## {#v6_sch_sexpr}
|
||||
**Goal:**
|
||||
|
||||
Make schematic file format more readable, add new features, and take advantage
|
||||
of the s-expression parser and formatter capability used in Pcbnew.
|
||||
|
||||
**Task:**
|
||||
- Finalize feature set and file format.
|
||||
- Discuss the possibility of dropping the unit-less proposal temporarily to get
|
||||
the s-expression file format and SWEET library format implemented without
|
||||
completely rewriting Eeschema.
|
||||
- Add new s-expression file format to plugin.
|
||||
|
||||
**Dependencies:**
|
||||
- [S-expression file format](#v6_sch_sweet).
|
||||
|
||||
**Status:**
|
||||
- File format document initial draft complete.
|
||||
|
||||
## Move Common Schematic Code into a Shared Object ## {#v6_sch_shared_object}
|
||||
**Goal:**
|
||||
|
||||
@@ -93,37 +167,22 @@ Improve the coverage and usability of the electrical rules checker (ERC).
|
||||
**Status:**
|
||||
- No progress.
|
||||
|
||||
## Implement GAL and New Tool Framework ## {#v6_sch_gal}
|
||||
**Goal:**
|
||||
|
||||
Implement the GAL and the tool framework used by Pcbnew in Eechema to
|
||||
provide advanced graphics and tool capabilities.
|
||||
|
||||
**Task:**
|
||||
- Implement graphics abstraction layer along side current legacy rendering
|
||||
framework.
|
||||
|
||||
**Dependencies:**
|
||||
- None
|
||||
|
||||
**Status:**
|
||||
- Initial Discussion..
|
||||
|
||||
## Port Editing Tools ## {#v6_sch_tool_framework}
|
||||
## Port Editing Tools to New Tool Framework ## {#v6_sch_tool_framework}
|
||||
**Goal:**
|
||||
|
||||
Convert all editing tool to new tool framework.
|
||||
|
||||
-**Task:**
|
||||
**Task:**
|
||||
- Rewrite existing editing tools using the new tool framework.
|
||||
- Add new capabilities supported by the new tool framework to existing
|
||||
editing tools.
|
||||
- Remove legacy tool framework.
|
||||
|
||||
-**Dependencies:**
|
||||
- [GAL and new tool framework port](#v6_sch_gal).
|
||||
**Dependencies:**
|
||||
- None.
|
||||
|
||||
-**Status:**
|
||||
- Initial Discussion..
|
||||
**Status:**
|
||||
- Schematic editor complete.
|
||||
|
||||
## Net Highlighting ## {#v6_sch_net_highlight}
|
||||
**Goal:**
|
||||
@@ -134,28 +193,11 @@ Highlight wires, buses, and junctions when corresponding net in Pcbnew is select
|
||||
- Implement highlight algorithm for net objects.
|
||||
- Highlight objects connected to net selected in Pcbnew.
|
||||
|
||||
**Dependencies:**
|
||||
- [GAL and new tool framework port, maybe](#v6_sch_gal).
|
||||
|
||||
**Status:**
|
||||
- No progress.
|
||||
|
||||
## Component Library Editor Improvements ## {#lib_editor_usability}
|
||||
**Goal:**
|
||||
|
||||
Make editing components with multiple units and/or alternate graphical
|
||||
representations easier.
|
||||
|
||||
**Task:**
|
||||
- Determine usability improvements in the library editor for components with
|
||||
multiple units and/or alternate graphical representations.
|
||||
- Implement said usability improvements.
|
||||
|
||||
**Dependencies:**
|
||||
- None.
|
||||
|
||||
**Status:**
|
||||
- No progress.
|
||||
- Complete.
|
||||
|
||||
## Allow Use of System Fonts ## {#v6_sch_sys_fonts}
|
||||
**Goal:**
|
||||
@@ -170,33 +212,112 @@ for schematic text.
|
||||
- Add support for selecting text object fonts.
|
||||
|
||||
**Dependencies:**
|
||||
- [S-expression schematic file format](#sch_sexpr).
|
||||
- [S-expression schematic file format](#v6_sch_sexpr).
|
||||
|
||||
**Status:**
|
||||
- No progress.
|
||||
|
||||
## Symbol and Netlist Attributes ## {#v6_netlist_attributes}
|
||||
**Goal:**
|
||||
|
||||
Provide a method of passing information to other tools via the net list.
|
||||
|
||||
**Task:**
|
||||
- Add virtual components and attributes to netlist to define properties that
|
||||
can be used by other tools besides the board editor.
|
||||
- Attributes (properties) are automatically included as part of the new file
|
||||
format.
|
||||
|
||||
**Dependencies:**
|
||||
- [S-expression schematic file format](#v6_sch_sexpr).
|
||||
|
||||
**Status:**
|
||||
- No progress.
|
||||
|
||||
## Orthogonal Wire Drag ## {#v6_orthogonal_drag}
|
||||
**Goal:**
|
||||
|
||||
Keep wires and buses orthogonal when dragging a symbol.
|
||||
|
||||
**Task:**
|
||||
- Add code to new tool framework to allow for orthogonal dragging of symbols.
|
||||
|
||||
**Dependencies:**
|
||||
- [New tool framework](#v6_sch_tool_framework).
|
||||
|
||||
**Status:**
|
||||
- No progress.
|
||||
|
||||
## Custom Wire and Bus Attributes ## {#v6_sch_bus_wire_attr}
|
||||
**Goal:**
|
||||
|
||||
Allow for wires and buses to have different widths, colors, and line types.
|
||||
|
||||
**Task:**
|
||||
- Add code to support custom wire and bus attributes.
|
||||
- Add user interface element to support changing wire and bus attributes.
|
||||
|
||||
**Dependencies:**
|
||||
- [S-Expression File Format](#v6_sch_sexpr).
|
||||
|
||||
**Status:**
|
||||
- No progress.
|
||||
|
||||
## Connectivity Improvements ## {#v6_sch_connectivity}
|
||||
**Goal:**
|
||||
|
||||
Support structured buses, real time netlist calculations, and other
|
||||
connectivity improvements.
|
||||
|
||||
**Task:**
|
||||
- Keep netlist up to date real time.
|
||||
- Add support for structured bus definitions.
|
||||
- Possible real time ERC checking.
|
||||
|
||||
**Dependencies:**
|
||||
- None.
|
||||
|
||||
**Status:**
|
||||
- Real time netlist and structured bus support complete.
|
||||
|
||||
## ERC Improvements ## {#v6_sch_erc}
|
||||
**Goal:**
|
||||
|
||||
Improve ERC test coverage and other ERC usability features.
|
||||
|
||||
**Task:**
|
||||
- Add missing ERC tests to improve coverage.
|
||||
- Save ERC settings in project file.
|
||||
- Add mechanism to allow import and export of ERC settings.
|
||||
- ERC user interface improvements.
|
||||
|
||||
**Dependencies:**
|
||||
- None.
|
||||
|
||||
**Status:**
|
||||
- Preliminary specification draft complete.
|
||||
|
||||
## Python Support ## {#v6_sch_python}
|
||||
**Goal:**
|
||||
|
||||
SWIG all schematic low level objects and coherent schematic object to
|
||||
provide Python interface for manipulating schematic objects.
|
||||
|
||||
**Task:**-
|
||||
- Create SWIG wrappers for all low level schematic, symbol library, and
|
||||
coherent schematic object code.
|
||||
- Add Python interpreter launcher.
|
||||
|
||||
**Dependencies:**
|
||||
- [Coherent Schematic Object](#v6_sch_object).
|
||||
|
||||
**Status:**
|
||||
- No Progress.
|
||||
|
||||
|
||||
# CvPcb: Footprint Association Tool # {#v6_cvpcb}
|
||||
This section covers the source code of the footprint assignment tool CvPcb.
|
||||
|
||||
## Improved Footprint Search Tool ## {#v6_cvpcb_search}
|
||||
|
||||
**Goal:**
|
||||
|
||||
Provide advanced search features such as wild card and regular expression
|
||||
searches using the type as you go feature of the current search dialog.
|
||||
|
||||
**Task:**
|
||||
- Add code for wild card and regular expression pattern matching to search
|
||||
container objects.
|
||||
- Add search dialog to CvPcb to search container of footprint names.
|
||||
|
||||
**Dependencies:**
|
||||
- [Search Tree Control](#v6_re_search_control)
|
||||
|
||||
**Status:**
|
||||
- Pattern matching added to search container objects.
|
||||
|
||||
|
||||
# Pcbnew: Circuit Board Editor # {#v6_pcbnew}
|
||||
This section covers the source code of the board editing application Pcbnew.
|
||||
@@ -208,14 +329,45 @@ This section covers the source code of the board editing application Pcbnew.
|
||||
Add finishing touches to push and shove router.
|
||||
|
||||
**Task:**
|
||||
- Microwave tools to be added as parametrized shapes generated by Python
|
||||
- Delete and backspace in idle mode
|
||||
- Differential pair clearance fixes.
|
||||
- Differential pair optimizer improvements (recognize differential pairs)
|
||||
- Persistent differential pair gap/width setting.
|
||||
- Walk around in drag mode.
|
||||
- Optimize trace being dragged too. (currently no optimization)
|
||||
- Auto-finish traces (if time permits)
|
||||
- Additional optimization pass for spring back algorithm using area-minimization
|
||||
strategy. (improves tightness of routing)
|
||||
- Restrict optimization area to view port (if user wants to)
|
||||
- Support 45 degree tuning meanders.
|
||||
- Respect trace/via locking!
|
||||
- Keep out zone support.
|
||||
- Microwave tools to be added as parameterized shapes generated by Python
|
||||
scripts.
|
||||
- BGA fan out support.
|
||||
- Drag footprints with traces connected.
|
||||
|
||||
**Dependencies:**
|
||||
- None.
|
||||
|
||||
**Status:**
|
||||
- In progress.
|
||||
|
||||
## Selection Filtering ## {#v6_pcb_selection_filtering}
|
||||
**Goal:**
|
||||
|
||||
Make the selection tool easier for the user to determine which object(s) are
|
||||
being selected by filtering.
|
||||
|
||||
**Task:**
|
||||
- Provide filtered object selection by adding a third tab to the layer manager
|
||||
or possibly some other UI element to provide filtered selection options.
|
||||
|
||||
**Dependencies:**
|
||||
- None
|
||||
|
||||
**Status:**
|
||||
- None
|
||||
- In progress.
|
||||
|
||||
## Design Rule Check (DRC) Improvements. ## {#v6_drc_improvements}
|
||||
**Goal:**
|
||||
@@ -223,7 +375,6 @@ Add finishing touches to push and shove router.
|
||||
Create additional DRC tests for improved error checking.
|
||||
|
||||
**Task:**
|
||||
- Replace geometry code with [unified geometry library](#v6_geometry_lib).
|
||||
- Remove floating point code from clearance calculations to prevent rounding
|
||||
errors.
|
||||
- Add checks for component, silk screen, and mask clearances.
|
||||
@@ -232,7 +383,7 @@ Create additional DRC tests for improved error checking.
|
||||
- Add option for saving and loading DRC options.
|
||||
|
||||
**Dependencies:**
|
||||
- [Unified geometry library.](#v6_geometry_lib)
|
||||
- [Constraint Management System](#v6_pcb_constraint).
|
||||
|
||||
**Progress:**
|
||||
- In progress.
|
||||
@@ -273,7 +424,7 @@ does not have to do it in Eeschema and re-import the net list.
|
||||
- Add support to handle net label back annotation changes.
|
||||
|
||||
**Dependencies:**
|
||||
- None
|
||||
- [S-Expression File Format](#v6_sch_sexpr).
|
||||
|
||||
**Status:**
|
||||
- No progress.
|
||||
@@ -292,7 +443,7 @@ Add support for keepout zones on boards and footprints.
|
||||
- [DRC Improvements.](#v6_drc_improvements)
|
||||
|
||||
**Progress:**
|
||||
- Planning
|
||||
- In progress.
|
||||
|
||||
## Clipboard Support ## {#v6_fp_edit_clipboard}
|
||||
**Goal:**
|
||||
@@ -307,7 +458,7 @@ Provide clipboard cut and paste for footprints.
|
||||
- None
|
||||
|
||||
**Status:**
|
||||
- No progress.
|
||||
- Complete.
|
||||
|
||||
## Net Highlighting ## {#v6_pcb_net_highlight}
|
||||
**Goal:**
|
||||
@@ -323,7 +474,7 @@ Highlight rats nest links and/or traces when corresponding net in Eeschema is se
|
||||
- None.
|
||||
|
||||
**Status:**
|
||||
- No progress.
|
||||
- Complete.
|
||||
|
||||
## Hatched Zone Filling ## {#v6_pcb_hatched_zones}
|
||||
**Goal:**
|
||||
@@ -339,7 +490,7 @@ with hatching.
|
||||
- None.
|
||||
|
||||
**Status:**
|
||||
- No progress.
|
||||
- Complete.
|
||||
|
||||
## Board Stack Up Impedance Calculator ## {#v6_pcb_impedance_calc}
|
||||
**Goal:**
|
||||
@@ -354,7 +505,7 @@ Maybe this should be included in the PCB calculator application.
|
||||
- None.
|
||||
|
||||
**Status:**
|
||||
- No progress.
|
||||
- In progress.
|
||||
|
||||
## Net Class Improvements ## {#v6_pcb_net_class_improvements}
|
||||
**Goal:**
|
||||
@@ -378,9 +529,10 @@ Add support for route impedance, color selection, etc in net class object.
|
||||
## Ratsnest Improvements ## {#v6_pcb_ratsnest_improvements}
|
||||
**Goal:**
|
||||
|
||||
Add support for per net color and visibility settings.
|
||||
Add support for curved rats and per net color and visibility settings.
|
||||
|
||||
**Task:**
|
||||
- Implement rat curving to minimize overlapped rats.
|
||||
- Implement UI code to configure ratsnest color and visibility.
|
||||
- Update ratsnest code to handle per net color and visibility.
|
||||
|
||||
@@ -388,23 +540,312 @@ Add support for per net color and visibility settings.
|
||||
- None.
|
||||
|
||||
**Status:**
|
||||
- No progress.
|
||||
- Curved rat support complete.
|
||||
|
||||
|
||||
# GerbView: Gerber File Viewer # {#v6_gerbview}
|
||||
|
||||
This section covers the source code for the GerbView gerber file viewer.
|
||||
|
||||
## Graphics Abstraction Layer ## {#v6_gerbview_gal}
|
||||
## DXF Improvements ## {#v6_pcb_dxf_import}
|
||||
**Goal:**
|
||||
|
||||
Graphics rendering unification.
|
||||
- Allow for anchor point setting and layer mapping support on DXF import and
|
||||
export multiple board layers to a single DXF file.
|
||||
|
||||
**Task:**
|
||||
- Port graphics rendering layer to GAL.
|
||||
- Provide method to select DXF import anchor point.
|
||||
- Add user interface to allow mapping DXF layers to board layers.
|
||||
- Modify DXF plotting to export multiple layers to a single file.
|
||||
|
||||
**Dependencies:**
|
||||
- None.
|
||||
|
||||
**Status:**
|
||||
- No progress.
|
||||
|
||||
## Improve Dimension Tool ## {#v6_pcb_dim_tool}
|
||||
**Goal:**
|
||||
|
||||
Make dimensions link to objects and change when objects are modified and add
|
||||
basic mechanical constraints.
|
||||
|
||||
**Task:**
|
||||
- Add code to link dimension to objects.
|
||||
- Add basic mechanical constraints like linear distance and angle.
|
||||
|
||||
**Dependencies:**
|
||||
- None.
|
||||
|
||||
**Status:**
|
||||
- In progress.
|
||||
|
||||
## Constraint Management System ## {#v6_pcb_constraint}
|
||||
**Goal:**
|
||||
|
||||
Implement full featured constraint management system to allow for complex
|
||||
board constraints instead of netclass only constraints.
|
||||
|
||||
**Task:**
|
||||
- Write specification to define requirement of new constraint system.
|
||||
- Implement new constraint system including file format changes.
|
||||
- Allow constraints to be defined in schematic editor and passed to board
|
||||
editor via netlist.
|
||||
- Update netlist file format to support constraints.
|
||||
- Update DRC to test new constraints.
|
||||
|
||||
**Dependencies:**
|
||||
- None.
|
||||
|
||||
**Status**
|
||||
- No Progress.
|
||||
|
||||
## Append Board in Project Mode ## {#v6_pcb_append}
|
||||
**Goal:**
|
||||
|
||||
Allow appending to the board when running Pcbnew in the project mode.
|
||||
|
||||
**Task:**
|
||||
- Enable append board feature in project mode.
|
||||
- Extend copy/paste feature to introduce paste special tool to add prefix
|
||||
and/or suffix to nets of pasted/appended objects.
|
||||
|
||||
**Dependencies:**
|
||||
- None.
|
||||
|
||||
**Status:**
|
||||
- No progress.
|
||||
|
||||
## Grid and Auxiliary Origin Improvements ## {#v6_pcb_origin}
|
||||
**Goal:**
|
||||
|
||||
Allow reset grid and auxiliary origin without hotkey only. Add support to
|
||||
make all coordinates relative to the plot origin.
|
||||
|
||||
**Task:**
|
||||
- Add reset grid and auxiliary origin commands to menu entry and/or toolbar
|
||||
button.
|
||||
- Add code to dialogs to allow coordinates to be specified relative to the
|
||||
plot origin.
|
||||
|
||||
**Dependencies:**
|
||||
- None.
|
||||
|
||||
**Status:**
|
||||
- Relative coordinate entry in progress.
|
||||
|
||||
## Addition Mechanical Layers ## {#v6_pcb_mech_layers}
|
||||
**Goal:**
|
||||
|
||||
Add more mechanical layers.
|
||||
|
||||
**Task:**
|
||||
- Add remaining mechanical layers for a total of 32.
|
||||
|
||||
**Dependencies:**
|
||||
- None.
|
||||
|
||||
**Status:**
|
||||
- No progress.
|
||||
|
||||
## Layer Renaming ## {#v6_pcb_layer_rename}
|
||||
**Goal:**
|
||||
|
||||
Allow mechanical layers to be renamed.
|
||||
|
||||
**Task:**
|
||||
- Quote layer names in file format to support any printable characters in
|
||||
layer names.
|
||||
- Add user interface to allow mechanical layers to be renamed.
|
||||
|
||||
**Dependencies:**
|
||||
- None.
|
||||
|
||||
**Status:**
|
||||
- Quoted layer names complete.
|
||||
|
||||
## Stable Python API ## {#v6_pcb_python_api}
|
||||
**Goal:**
|
||||
|
||||
Create a Python wrapper to hide the SWIG generated API.
|
||||
|
||||
**Task:**
|
||||
- Document new Python API.
|
||||
- Write Python API.
|
||||
|
||||
**Dependencies:**
|
||||
- None.
|
||||
|
||||
**Status:**
|
||||
- Initial technical specification drafted.
|
||||
|
||||
## Track Refining ## {#v6_pcb_track_refine}
|
||||
**Goal:**
|
||||
|
||||
Add support for teardrops and automatically updating length tuning
|
||||
meandering.
|
||||
|
||||
**Task:**
|
||||
- Draft specification for track refining.
|
||||
- Implement support for teardrops.
|
||||
- Implement support for changing tuned length meandering.
|
||||
|
||||
**Dependencies:**
|
||||
- None.
|
||||
|
||||
**Status:**
|
||||
- Initial technical specification drafted.
|
||||
|
||||
## Groups and Rooms ## {#v6_pcb_groups}
|
||||
**Goal:**
|
||||
|
||||
Support grouping board objects into reusable snippets.
|
||||
|
||||
**Task:**
|
||||
- Write design specification.
|
||||
- Update board file format to support grouped objects.
|
||||
- Add user interface code to support grouped board objects.
|
||||
|
||||
**Dependencies:**
|
||||
- None.
|
||||
|
||||
**Status:**
|
||||
- Initial technical specification drafted.
|
||||
|
||||
## Pad Stack Support ## {#v6_pcb_padstack}
|
||||
**Goal:**
|
||||
|
||||
Add padstack support.
|
||||
|
||||
**Task:**
|
||||
- Write pad stack design specification.
|
||||
- Update board file format to support pad stacks.
|
||||
- Add user interface code to support designing pad stack objects.
|
||||
- Update push and shove router to handle pad stacks.
|
||||
- Update zone filling to handle pad stacks.
|
||||
- Update DRC to handle pad stacks.
|
||||
|
||||
**Dependencies:**
|
||||
- None.
|
||||
|
||||
**Status:**
|
||||
- Initial technical specification drafted.
|
||||
|
||||
## Net Ties ## {#v6_pcb_net_ties}
|
||||
**Goal:**
|
||||
|
||||
Add support for net ties.
|
||||
|
||||
**Task:**
|
||||
- Write net tie design specification.
|
||||
- Implement board file support for net ties.
|
||||
- Implement schematic file support for net ties.
|
||||
- Update ERC and DRC to handle net ties.
|
||||
- Update netlist to pass net tie information from schematic to board.
|
||||
- Add user interface support for net ties to editors.
|
||||
|
||||
**Dependencies:**
|
||||
- [S-Expression File Format](#v6_sch_sexpr).
|
||||
|
||||
**Status:**
|
||||
- No Progress.
|
||||
|
||||
## Anti-pad Improvements ## {#v6_pcb_anti_pad}
|
||||
**Goal:**
|
||||
|
||||
Use anti-pads on vias and through hold pads on internal layers as required.
|
||||
|
||||
**Task:**-
|
||||
- Revise zone filling algorithm to create anti-pad on internal layers.
|
||||
|
||||
**Dependencies:**
|
||||
- None.
|
||||
|
||||
**Status:**
|
||||
- No Progress.
|
||||
|
||||
## Thermal Relief Improvements ## {#v6_pcb_thermal_relief}
|
||||
**Goal:**
|
||||
|
||||
Allow for custom thermal reliefs in zones and custom pad shapes.
|
||||
|
||||
**Task:**-
|
||||
- Write technical specification to define requirements, alternate unions,
|
||||
knockouts, union spokes, etc.
|
||||
- Revise zone filling thermal relief support to handle new requirements.
|
||||
- Update board file format for new thermal relief requirements.
|
||||
- Add user interface support for thermal relief definitions.
|
||||
|
||||
**Dependencies:**
|
||||
- None.
|
||||
|
||||
**Status:**
|
||||
- No Progress.
|
||||
|
||||
## Merge KiCad2Step ## {#v6_pcb_kicad2step}
|
||||
**Goal:**
|
||||
|
||||
Merge export to STEP file code from KiCad2Step so that conversion does
|
||||
not run in a separate process.
|
||||
|
||||
**Task:**-
|
||||
- Merge KiCad2Step code into Pcbnew code base.
|
||||
- Remove unused parser code.
|
||||
|
||||
**Dependencies:**
|
||||
- None.
|
||||
|
||||
**Status:**
|
||||
- No Progress.
|
||||
|
||||
## 3D Model Improvements ## {#v6_pcb_3d_model_opacity}
|
||||
**Goal:**
|
||||
|
||||
Add opacity to 3D model support and convert from path look up to library
|
||||
table to access 3D models.
|
||||
|
||||
**Task:**-
|
||||
- Add opacity support to footprint library file format.
|
||||
- Add library table 3D model support to footprint library file format.
|
||||
- Create remapping utility to map from path look up to library table look up.
|
||||
- Add user interface support for 3D model opacity.
|
||||
- Add user interface support accessing 3D models via library table.
|
||||
|
||||
**Dependencies:**
|
||||
- None.
|
||||
|
||||
**Status:**
|
||||
- No Progress.
|
||||
|
||||
## IPC-2581 Support ## {#v6_pcb_ipc_2581}
|
||||
**Goal:**
|
||||
|
||||
Add support for exporting to and importing from IPC-2581.
|
||||
|
||||
**Task:**-
|
||||
- Add IPC-2581 export code.
|
||||
- Add IPC-2581 import code.
|
||||
|
||||
**Dependencies:**
|
||||
- None.
|
||||
|
||||
**Status:**
|
||||
- No Progress.
|
||||
|
||||
## Curved Trace Support ## {#v6_pcb}
|
||||
**Goal:**
|
||||
|
||||
Add curved trace support to the board editor.
|
||||
|
||||
**Task:**-
|
||||
- Add curved trace support to track object code.
|
||||
- Add support to board file format for curved traces.
|
||||
- Update zone fill algorithm to support curved fills.
|
||||
- Update router to support curved traces.
|
||||
- Update DRC to handle curved traces and fills.
|
||||
|
||||
**Dependencies:**
|
||||
- None.
|
||||
|
||||
**Status:**
|
||||
- No Progress.
|
||||
|
||||
|
||||
# GerbView: Gerber File Viewer # {#v6_gerbview}
|
||||
|
||||
This section covers the source code for the GerbView gerber file viewer.
|
||||
|
||||
@@ -3,14 +3,16 @@
|
||||
This document is the KiCad Developer's road map document. It is a living
|
||||
document that should be maintained as the project progresses. The goal of
|
||||
this document is to provide an overview for developers of where the project
|
||||
is headed to prevent resource conflicts and endless rehashing of previously
|
||||
discussed topics. It is broken into sections for each major component of
|
||||
the KiCad source code and documentation. It defines tasks that developers
|
||||
an use to contribute to the project and provides updated status information.
|
||||
Tasks should define clear objective and avoid vague generalizations so that
|
||||
a new developer can complete the task. It is not a place for developers to
|
||||
add their own personal wish list It should only be updated with approval
|
||||
of the project manager after discussion with the lead developers.
|
||||
is headed beyond the current development cycle road map (currently
|
||||
[version 6](./v6_road_map.html) to prevent resource conflicts and endless
|
||||
rehashing of previously discussed topics. It is broken into sections for
|
||||
each major component of the KiCad source code and documentation. It defines
|
||||
tasks that developers an use to contribute to the project and provides updated
|
||||
status information. Tasks should define clear objectives and avoid vague
|
||||
generalizations so that a new developer can complete the task. It is not a
|
||||
place for developers to add their own personal wish list It should only be
|
||||
updated with approval of the project manager after discussion with the lead
|
||||
developers.
|
||||
|
||||
Each entry in the road map is made up of four sections. The goal should
|
||||
be a brief description of the what the road map entry will accomplish. The
|
||||
@@ -34,59 +36,16 @@ This section defines the tasks that affect all or most of KiCad or do not
|
||||
fit under as specific part of the code such as the board editor or the
|
||||
schematic editor.
|
||||
|
||||
## User Interface Modernization ## {#wxaui}
|
||||
**Goal:**
|
||||
|
||||
Give KiCad a more modern user interface with dockable tool bars and windows.
|
||||
Create perspectives to allow users to arrange dockable windows as they prefer.
|
||||
|
||||
**Task:**
|
||||
- Take advantage of the advanced UI features in wxAui such as detaching and
|
||||
hiding.
|
||||
- Study ergonomics of various commercial/proprietary PCB applications (when
|
||||
in doubt about any particular UI solution, check how it has been done in a
|
||||
certain proprietary app that is very popular among OSHW folks and do exactly
|
||||
opposite).
|
||||
- Clean up menu structure. Menus must allow access to all features of the
|
||||
program in a clear and logical way. Currently some functions of Pcbnew are
|
||||
accessible only through tool bars
|
||||
- Redesign dialogs, make sure they are following same style rules.
|
||||
- Check quality of translations. Either fix or remove bad quality translations.
|
||||
- Develop a global shortcut manager that allows the user assign arbitrary
|
||||
shortcuts for any tool or action.
|
||||
|
||||
**Dependencies:**
|
||||
- [wxWidgets 3](#wxwidgets3)
|
||||
|
||||
**Status:**
|
||||
- No progress.
|
||||
|
||||
|
||||
# Build Tools # {#build_tools}
|
||||
This section covers build tools for both the KiCad source as well as the
|
||||
custom dependency builds required to build KiCad.
|
||||
|
||||
|
||||
# Common Library # {#common_lib}
|
||||
This section covers the source code shared between all of the KiCad
|
||||
applications
|
||||
|
||||
## Unified Rendering Framework ## {#unified_rendering}
|
||||
**Goal:**
|
||||
|
||||
Provide a single framework for developing new tools. Port existing tools
|
||||
to the new framework and remove the legacy framework tools.
|
||||
|
||||
**Task:**
|
||||
- Port wxDC to GAL or get Cairo rendering to nearly the performance of the
|
||||
current wxDC rendering so that we have a single framework to develop new
|
||||
tools and we can continue to support systems that don't have a complete
|
||||
OpenGL stack.
|
||||
|
||||
**Dependencies**
|
||||
- [Tool framework](http://www.ohwr.org/projects/cern-kicad/wiki/WorkPackages)
|
||||
|
||||
**Status**
|
||||
- No progress
|
||||
|
||||
# KiCad: Application Launcher # {#kicad}
|
||||
This section applies to the source code for the KiCad application launcher.
|
||||
@@ -95,277 +54,19 @@ This section applies to the source code for the KiCad application launcher.
|
||||
# Eeschema: Schematic Editor # {#eeschema}
|
||||
This section applies to the source code for the Eeschema schematic editor.
|
||||
|
||||
## Graphics Abstraction Layer Conversion ## {#sch_gal}
|
||||
**Goal:**
|
||||
|
||||
Take advantage of advanced graphics rendering in Eeschema.
|
||||
|
||||
**Task:**
|
||||
- Port graphics rendering to GAL.
|
||||
|
||||
**Dependencies:**
|
||||
- None
|
||||
|
||||
**Status:**
|
||||
- No progress.
|
||||
|
||||
## Port Editing Tools ## {#sch_tool_framework}
|
||||
**Goal:**
|
||||
|
||||
Use standard tool framework across all applications.
|
||||
|
||||
**Task:**
|
||||
- Rewrite editing tools using the new tool framework.
|
||||
|
||||
**Dependencies:**
|
||||
- [GAL port](#sch_gal).
|
||||
|
||||
**Status:**
|
||||
- No progress.
|
||||
|
||||
## Allow Use of System Fonts ## {#sch_sys_fonts}
|
||||
**Goal:**
|
||||
|
||||
Currently the schematic editor uses the stroke drawn fonts which aren't really
|
||||
necessary for accurated printing of schematics. Allow the use of system fonts
|
||||
for schematic text.
|
||||
|
||||
**Task:**
|
||||
- Determine which library for font handling makes the most sense, wxWidgets or
|
||||
freetype.
|
||||
- Add support for selecting text object fonts.
|
||||
|
||||
**Dependencies:**
|
||||
- [S-expression schematic file format](#sch_sexpr).
|
||||
|
||||
**Status:**
|
||||
- No progress.
|
||||
|
||||
# CvPcb: Footprint Association Tool # {#cvpcb}
|
||||
This section covers the source code of the footprint assignment tool CvPcb.
|
||||
|
||||
|
||||
# Pcbnew: Circuit Board Editor # {#pcbnew}
|
||||
This section covers the source code of the board editing application Pcbnew.
|
||||
|
||||
## Model Export ## {#model_export}
|
||||
|
||||
**Goal:**
|
||||
|
||||
Provide improved solid modeling export to the file formats available in
|
||||
OpenCascade.
|
||||
|
||||
**Task:**
|
||||
- Add STEP 3D modeling capability.
|
||||
- Add IGES 3D modeling capability.
|
||||
- Add any other file formats supported by OpenCascade that make sense for
|
||||
KiCad.
|
||||
|
||||
**Dependencies:**
|
||||
- None
|
||||
|
||||
**Status:**
|
||||
- None
|
||||
|
||||
## Linked Objects ## {#pcb_linked_objects}
|
||||
**Goal:**
|
||||
|
||||
Provide a way to allow external objects such as footprints to be externally
|
||||
linked in the board file so that changes in the footprint are automatically
|
||||
updated. This will all a one to many object relationship which can pave the
|
||||
way for real board modules.
|
||||
|
||||
**Task:**
|
||||
- Add externally and internally linked objects to the file format to allow for
|
||||
footprints and/or other board objects to be shared (one to many relationship)
|
||||
instead of only supporting embedded objects (one to one relationship) that
|
||||
can only be edited in place.
|
||||
|
||||
**Dependencies:**
|
||||
- None.
|
||||
|
||||
**Status:**
|
||||
- No progress.
|
||||
|
||||
## Pin and Part Swapping ## {#pcb_drc}
|
||||
**Goal:**
|
||||
|
||||
Allow Pcbnew to perform pin and/or part swapping during layout so the user
|
||||
does not have to do it in Eeschema and re-import the net list.
|
||||
|
||||
**Task:**
|
||||
- Provide forward and back annotation between the schematic and board editors.
|
||||
- Define netlist file format changes required to handle pin/part swapping.
|
||||
- Update netlist file formatter and parser to handle file format changes.
|
||||
- Develop a netlist comparison engine that will produce a netlist diff that
|
||||
can be passed between the schematic and board editors.
|
||||
- Create pin/part swap dialog to manipulate swappable pins and parts.
|
||||
- Add support to handle net label back annotation changes.
|
||||
|
||||
**Dependencies:**
|
||||
- [S-expression schematic file format](#sch_sexpr).
|
||||
- [Convert to a single process application](#kiway).
|
||||
|
||||
**Status:**
|
||||
- No progress.
|
||||
|
||||
## Clipboard Support ## {#fp_edit_clipboard}
|
||||
**Goal:**
|
||||
|
||||
Provide clipboard cut and paste for footprints..
|
||||
|
||||
**Task:**
|
||||
- Clipboard cut and paste to and from clipboard of footprints in footprint
|
||||
editor.
|
||||
|
||||
**Dependencies:**
|
||||
- None
|
||||
|
||||
**Status:**
|
||||
- No progress.
|
||||
|
||||
## Segment End Point Snapping. ## {#segment_snapping}
|
||||
**Goal:**
|
||||
|
||||
It is not uncommon for board edge segment end points to inadvertently not
|
||||
be closed causing issues for the 3D viewer and exporting to different file
|
||||
formats due the board outline not being a fully enclosed polygon. This
|
||||
feature would add segment end snapping support to allow the board outline
|
||||
to be fully enclosed. This feature would only need to be supported by the
|
||||
GAL rendering.
|
||||
|
||||
**Tasks**
|
||||
- Mark board edge segment ends with a drag indicator to make it visible to the
|
||||
user that the segment end does not have an endpoint with any other board edge
|
||||
segment.
|
||||
- Allow the user to smap the unconnected segment end to the nearest segment end
|
||||
point.
|
||||
- Automatically connect unconnected segments with and additional segment when
|
||||
opening the 3D viewer or exporting the board to another format. Warn the
|
||||
user that an addition segment has be added and should be verified.
|
||||
|
||||
**Dependencies:**
|
||||
- None
|
||||
|
||||
**Progress:**
|
||||
- Initial discussion.
|
||||
|
||||
## Keepout Zones. ## {#keepout_zones}
|
||||
**Goal:**
|
||||
|
||||
Add support for keepout zones on boards and footprints.
|
||||
|
||||
**Task:**
|
||||
- Add keepout support to zone classes.
|
||||
- Add keepout zone support to board editor.
|
||||
- Add keepout zone support to library editor.
|
||||
|
||||
**Dependencies:**
|
||||
- [DRC Improvements.](#drc_improvements)
|
||||
|
||||
**Progress:**
|
||||
- Planning
|
||||
|
||||
|
||||
## Net Highlighting ## {#pcb_net_highlight}
|
||||
**Goal:**
|
||||
|
||||
Highlight rats nest links and/or traces when corresponding net in Eeschema is selected.
|
||||
|
||||
**Task:**
|
||||
- Add communications link to handle net selection from Eeschema.
|
||||
- Implement highlight algorithm for objects connected to the selected net.
|
||||
- Highlight objects connected to net selected in Eeschema
|
||||
|
||||
**Dependencies:**
|
||||
- None.
|
||||
|
||||
**Status:**
|
||||
- No progress.
|
||||
|
||||
## Hatched Zone Filling ## {#pcb_hatched_zones}
|
||||
**Goal:**
|
||||
|
||||
Currently Pcbnew only supports solid zone files. Add option to fill zones
|
||||
with hatching.
|
||||
|
||||
**Task:**
|
||||
- Determine zone fill method, required filling code, and file format requirements.
|
||||
- Add hatch option and hatch configuration to zone dialog.
|
||||
|
||||
**Dependencies:**
|
||||
- None.
|
||||
|
||||
**Status:**
|
||||
- No progress.
|
||||
|
||||
|
||||
## Board Stack Up Impedance Calculator ## {#pcb_impedance_calc}
|
||||
**Goal:**
|
||||
|
||||
Provide a calculator to compute trace impedances using a full board stackup.
|
||||
Maybe this should be included in the PCB calculator application.
|
||||
|
||||
**Task:**
|
||||
- Design a trace impedance calculator that includes full board stackup.
|
||||
|
||||
**Dependencies:**
|
||||
- None.
|
||||
|
||||
**Status:**
|
||||
- No progress.
|
||||
|
||||
## Net Class Improvements ## {#pcb_net_class_improvements}
|
||||
**Goal:**
|
||||
|
||||
Add support for route impedance, color selection, etc in net class object.
|
||||
|
||||
**Task:**
|
||||
- Determine parameters to add to net class object.
|
||||
- Implement file parser and formatter changes to support net class object
|
||||
changes.
|
||||
- Implement tools to work with new net class parameters.
|
||||
- Create UI elements to configure new net class parameters.
|
||||
- Update the render tab UI code to view traces by net class.
|
||||
|
||||
**Dependencies:**
|
||||
- None.
|
||||
|
||||
**Status:**
|
||||
- No progress.
|
||||
|
||||
## Ratsnest Improvements ## {#pcb_ratsnest_improvements}
|
||||
**Goal:**
|
||||
|
||||
Add support for per net color and visibility settings.
|
||||
|
||||
**Task:**
|
||||
- Implement UI code to configure ratsnest color and visibility.
|
||||
- Update ratsnest code to handle per net color and visibility.
|
||||
|
||||
**Dependencies:**
|
||||
- None.
|
||||
|
||||
**Status:**
|
||||
- No progress.
|
||||
|
||||
|
||||
# GerbView: Gerber File Viewer # {#gerbview}
|
||||
|
||||
This section covers the source code for the GerbView gerber file viewer.
|
||||
|
||||
## Graphics Abstraction Layer ## {#gerbview_gal}
|
||||
**Goal:**
|
||||
|
||||
Graphics rendering unification.
|
||||
|
||||
**Task:**
|
||||
- Port graphics rendering layer to GAL.
|
||||
|
||||
**Dependencies:**
|
||||
- None.
|
||||
|
||||
**Status**
|
||||
- No progress.
|
||||
|
||||
# Documentation # {#documentation}
|
||||
This section defines the tasks for both the user and developer documentation.
|
||||
@@ -380,6 +81,7 @@ This section defines the tasks for both the user and developer documentation.
|
||||
**Status:**
|
||||
- No progress.
|
||||
|
||||
|
||||
# Unit Testing # {#unittest}
|
||||
**Goal:**
|
||||
|
||||
|
||||
@@ -0,0 +1,170 @@
|
||||
# Technical To-Do List {#technical_todo}
|
||||
|
||||
Some work is blocked for technical reasons, and can only be done once
|
||||
certain other criteria are met (e.g. library versions).
|
||||
|
||||
Because KiCad supports distributions with relatively long support cycles,
|
||||
many of these workarounds will be required for some time, so they are easily
|
||||
forgotten.
|
||||
|
||||
This section collects these so they can be dealt with when the project's
|
||||
minimum version for that dependency is met. This kind of code should always be
|
||||
documented in detail at the place of use, so that it's clear what action should
|
||||
be taken in future.
|
||||
|
||||
[TOC]
|
||||
|
||||
# C++ Versions {#todo_cpp_version}
|
||||
|
||||
Newer C++ versions include features that make some of our current code unnecessary.
|
||||
|
||||
## C++11 {#todo_cpp_11}
|
||||
|
||||
This C++ standard version is already used by KiCad, but much code that pre-dates
|
||||
the version switch exists and can be tidied.
|
||||
|
||||
* [`std::auto_ptr`](https://en.cppreference.com/w/cpp/memory/auto_ptr)
|
||||
should be changed to [`std::unique_ptr`](https://en.cppreference.com/w/cpp/memory/unique_ptr).
|
||||
`auto_ptr` is removed entirely in C++17.
|
||||
|
||||
## C++14 {#todo_cpp_14}
|
||||
|
||||
Compiler support:
|
||||
|
||||
* GCC: complete by GCC 5: [GCC C++14 support](https://gcc.gnu.org/projects/cxx-status.html#cxx14).
|
||||
|
||||
Provides:
|
||||
|
||||
* [`std::make_unique`](https://en.cppreference.com/w/cpp/memory/unique_ptr/make_unique)
|
||||
is available. The "polyfill" in `make_unique.h` is no longer required and can
|
||||
be removed.
|
||||
|
||||
## C++17 {#todo_cpp_17}
|
||||
|
||||
Compiler support:
|
||||
|
||||
* GCC: from GCC 5 to 7: [GCC C++17 support](https://gcc.gnu.org/projects/cxx-status.html#cxx17).
|
||||
|
||||
Provides:
|
||||
|
||||
* `OPT<>` can be replaced with [`std::optional`](https://en.cppreference.com/w/cpp/utility/optional).
|
||||
Header `core/optional.h` can be removed and replaced with the built-in `<optional>`.
|
||||
Needs [GCC 7][].
|
||||
* [`std::filesystem`](https://en.cppreference.com/w/cpp/filesystem)
|
||||
can replace `boost::filesystem` and the Boost dependency can be dropped entirely
|
||||
from the CMake files.
|
||||
|
||||
# Compilers {#compilers}
|
||||
|
||||
Some compilers have bugs or limitations to C++ standard support.
|
||||
|
||||
## GCC {#todo_gcc}
|
||||
|
||||
Current versions:
|
||||
|
||||
* Debian Stretch: [6.3.0](https://packages.debian.org/stretch/gcc)
|
||||
* Debian Buster: [8.3.0](https://packages.debian.org/buster/gcc)
|
||||
* Ubuntu 14.04: [4.8.2](https://packages.ubuntu.com/trusty/gcc)
|
||||
* Ubuntu 16.04: [5.3.1](https://packages.ubuntu.com/xenial/gcc)
|
||||
* Ubuntu 18.04: [7.3.0](https://packages.ubuntu.com/bionic/gcc)
|
||||
|
||||
### GCC 7 {#todo_gcc_7}
|
||||
|
||||
* Fixes [bug #56480](https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56480)
|
||||
(Explicit specialization in a different namespace). This
|
||||
means the `BOOST_TEST_PRINT_NAMESPACE_OPEN` macro is not required, a namespace
|
||||
alias can be used instead.
|
||||
|
||||
# 3rd Party Libraries # {#todo_third_party}
|
||||
|
||||
There are several places in KiCad where workarounds exist for defects in 3rd
|
||||
party library limitations or defects.
|
||||
|
||||
## Boost ## {#todo_boost}
|
||||
|
||||
Current versions:
|
||||
|
||||
* Debian Stretch: [1.62](https://packages.debian.org/stretch/libboost-dev)
|
||||
* Ubuntu 14.04: [1.54](https://packages.ubuntu.com/trusty/libboost-dev)
|
||||
* Ubuntu 16.04: [1.58](https://packages.ubuntu.com/xenial/libboost-dev)
|
||||
* Ubuntu 18.04: [1.65](https://packages.ubuntu.com/bionic/libboost-dev)
|
||||
|
||||
### 1.59 {#boost_1_59}
|
||||
|
||||
* Boost 1.59 brings a major overhaul of the [Boost test][] library.
|
||||
* Many "Polyfills" un `unit_test_utils.h` can be removed:
|
||||
* `BOOST_TEST_CONTEXT` and `BOOST_TEST_INFO` are available, remove the
|
||||
polyfill macros.
|
||||
* `boost::unit_test::expected_failures` is available, so can remove the
|
||||
`HAVE_EXPECTED_FAILURES` guard macro.
|
||||
* `BOOST_TEST_PRINT_NAMESPACE_OPEN` doesn't need to switch the namespace
|
||||
|
||||
### 1.64 #### {#todo_boost_1_64}
|
||||
|
||||
* [Boost test][]
|
||||
* Boost test print helper for `nullptr_t` exists, can remove our polyfill
|
||||
* The [`boost_test_print_type`](https://www.boost.org/doc/libs/master/libs/test/doc/html/boost_test/test_output/test_tools_support_for_logging/testing_tool_output_disable.html)
|
||||
customisation point exists and the old code using `BOOST_TEST_PRINT_NAMESPACE_OPEN`
|
||||
can be converted to use that.
|
||||
|
||||
## CMake ### {#todo_cmake}
|
||||
|
||||
Current versions:
|
||||
|
||||
* Debian Stretch: [3.7.2](https://packages.debian.org/stretch/cmake)
|
||||
* Ubuntu 14.04: [2.8.12](https://packages.ubuntu.com/trusty/cmake)
|
||||
* Ubuntu 16.04: [3.5.1](https://packages.ubuntu.com/xenial/cmake)
|
||||
* Ubuntu 18.04: [3.10.2](https://packages.ubuntu.com/bionic/cmake)
|
||||
|
||||
### 3.1 {#todo_cmake_3_1}
|
||||
|
||||
* Can remove [CMake policy CMP0025](https://cmake.org/cmake/help/v3.0/policy/CMP0025.html)
|
||||
from root CMake
|
||||
|
||||
### 3.3 {#todo_cmake_3_3}
|
||||
|
||||
* Can remove check for [CMake policy CMP0063](https://cmake.org/cmake/help/git-stage/policy/CMP0063.html)
|
||||
entirely (the policy exists as of v3.3 and the default is correct).
|
||||
|
||||
### 3.5 {#todo_cmake_3_5}
|
||||
|
||||
* Can use `target_link_libraries(foo Boost::boost)` for Boost header-only libraries,
|
||||
rather than `${Boost_INCLUDE_DIRS}`.
|
||||
C.f. [Github commit](https://github.com/Kitware/CMake/commit/3f9b081f6ee85e0691c36496d989edbe8382589d)
|
||||
|
||||
## OpenSSL {#todo_openssl}
|
||||
|
||||
Current versions:
|
||||
|
||||
* Debian Stretch: [1.0.1](https://packages.debian.org/stretch/openssl)
|
||||
* Ubuntu 14.04: [1.0.1](https://packages.ubuntu.com/trusty/openssl)
|
||||
* Ubuntu 16.04: [1.0.2](https://packages.ubuntu.com/xenial/openssl)
|
||||
* Ubuntu 18.04: [1.1.0](https://packages.ubuntu.com/bionic/openssl)
|
||||
|
||||
### 1.1.0 {#todo_openssl_1_1_0}
|
||||
|
||||
* Can remove all locking code from `kicad_curl.cpp`. From v1.1.0, this is no
|
||||
longer required. C.f. [OpenSSL issue 1260](https://github.com/openssl/openssl/issues/1260)
|
||||
|
||||
## wxWidgets {#todo_wx}
|
||||
|
||||
Current versions:
|
||||
|
||||
* Debian Stretch: [3.0.2](https://packages.debian.org/stretch/wx-common)
|
||||
* Ubuntu 14.04: [3.0.0](https://packages.ubuntu.com/trusty/wx-common)
|
||||
* Ubuntu 16.04: [3.0.2](https://packages.ubuntu.com/xenial/wx-common)
|
||||
* Ubuntu 18.04: [3.0.4](https://packages.ubuntu.com/bionic/wx-common)
|
||||
|
||||
### 3.1 {#todo_wx_3_1}
|
||||
|
||||
This is a development release, but it brings its own set of features and fixes.
|
||||
Most of these will not be available in general distributions until v3.2.
|
||||
|
||||
* DPI scaling on GTK+ available (also needs GTK+ 3.10).
|
||||
C.f. [this commit](https://github.com/wxWidgets/wxWidgets/commit/f95fd11e08482697c3b0c0a9d2ccd661134480ee)
|
||||
`dpi_scaling.cpp` should continue to work normally, but the config should
|
||||
no longer be required and the scaling should auto-detect.
|
||||
|
||||
|
||||
[Boost test]: https://github.com/boostorg/test
|
||||
[GCC 7]: https://gcc.gnu.org/gcc-7/changes.html
|
||||
@@ -44,6 +44,22 @@ Common useful patterns:
|
||||
You can rebuild just a specific test with CMake to avoid rebuilding
|
||||
everything when working on a small area, e.g. `make qa_common`.
|
||||
|
||||
### Automated testing {#automated-testing}
|
||||
|
||||
The unit tests can be run on automated Continuous Integration (CI) systems.
|
||||
|
||||
By default, tests output human-readable results, which is useful when
|
||||
developing or debugging, but not so useful for automated test reporting.
|
||||
Systems that can parse XML test results can enable these by setting the
|
||||
`KICAD_TEST_XML_OUTPUT` option to `ON`. The test results are then output
|
||||
as files ending in `.xml` in the `qa` subdirectory.
|
||||
|
||||
Test results are written to the build directory as follows:
|
||||
|
||||
* Boost units tests: one XML file per test with the extension `.boost-results.xml`
|
||||
* Python unit tests: one directory per test with the extension `.xunit-results.xml`.
|
||||
These directories contain one `.xml` file per Python test case file.
|
||||
|
||||
## Writing Boost tests {#writing-boost-tests}
|
||||
|
||||
Boost unit tests are straightforward to write. Individual test cases can be
|
||||
@@ -114,6 +130,15 @@ the triggering of a bug prior to fixing it. This is advantageous, not only from
|
||||
a "project history" perspective, but also to ensure that the test you write to
|
||||
catch the bug in question does, in fact, catch the bug in the first place.
|
||||
|
||||
### Assertions {#test-assertions}
|
||||
|
||||
It is possible to check for assertions in unit tests. When running the unit
|
||||
tests, `wxASSERT` calls are caught and re-thrown as exceptions. You can then use
|
||||
the `CHECK_WX_ASSERT` macro to check this is called in Debug builds. In Release
|
||||
builds, the check is not run, as `wxASSERT` is disabled in these builds.
|
||||
|
||||
You can use this to ensure that code rejects invalid input correctly.
|
||||
|
||||
## Python modules {#python-tests}
|
||||
|
||||
The Pcbnew Python modules have some test programs in the `qa` directory.
|
||||
|
||||
@@ -71,8 +71,7 @@ or not, has a `TOOL_ACTION` instance. This provides:
|
||||
|
||||
GAL tools inherit the `TOOL_BASE` class. A Pcbnew tool will generally
|
||||
inherit from `PCB_TOOL`, which is a `TOOL_INTERACTIVE`, which is
|
||||
a `TOOL_BASE`. In the future, Eeschema tools will be developed in a similar
|
||||
manner.
|
||||
a `TOOL_BASE`. Eeschema tools inherit directly from `TOOL_INTERACTIVE`.
|
||||
|
||||
The tool class for a tool can be fairly lightweight - much of the
|
||||
functionality is inherited from the tool's base classes. These base
|
||||
@@ -105,18 +104,18 @@ The major parts of tool's implementation are the functions used by the
|
||||
when the GAL canvas is switched, and also just after tool registration.
|
||||
Any resource claimed from the GAL view or the model must be released
|
||||
in this function, as they could become invalid.
|
||||
* `SetTransitions()` function, which maps tool actions to functions
|
||||
* `setTransitions()` function, which maps tool actions to functions
|
||||
within the tool class.
|
||||
* One or more functions to call when actions are invoked. Many actions
|
||||
can invoke the same function if desired. The functions have the
|
||||
following signature:
|
||||
* int TOOL_CLASS::FunctionName( const TOOL_EVENT& aEvent )
|
||||
* Returning 0 means success.
|
||||
* Returning 0 means success.
|
||||
* These functions are called by the `TOOL_MANAGER` in case an associated
|
||||
event arrives (association is created with TOOL_INTERACTIVE::Go() function).
|
||||
* These can generally be private, as they are not called directly
|
||||
by any other code, but are invoked by the tool manager's coroutine
|
||||
framework according to the `SetTransitions()` map.
|
||||
framework according to the `setTransitions()` map.
|
||||
|
||||
### Interactive actions {#interactive-actions}
|
||||
|
||||
@@ -132,7 +131,7 @@ a cursor change and by setting a status string.
|
||||
auto& frame = *getEditFrame<PCB_EDIT_FRAME>();
|
||||
|
||||
// set tool hint and cursor (actually looks like a crosshair)
|
||||
frame.SetToolID( ID_PCB_SHOW_1_RATSNEST_BUTT,
|
||||
frame.SetToolID( ID_LOCAL_RATSNEST_BUTT,
|
||||
wxCURSOR_PENCIL, _( "Select item to move left" ) );
|
||||
getViewControls()->ShowCursor( true );
|
||||
|
||||
@@ -171,7 +170,7 @@ provide their own context menu. Tools that are called only from other
|
||||
tools' interactive modes add their menu items to those tools' menus.
|
||||
|
||||
To use a `TOOL_MENU` in a top level tool, simply add one as a member
|
||||
and initialise it with a reference to the tools at construction time:
|
||||
and initialize it with a reference to the tools at construction time:
|
||||
|
||||
TOOL_NAME: public PCB_TOOL
|
||||
{
|
||||
@@ -215,7 +214,7 @@ The procedure of a commit is:
|
||||
unless you are going to abort the commit.
|
||||
* When removing an item, call `Remove( item )`. You should not delete the
|
||||
removed item, it will be stored in the undo buffer.
|
||||
* Finalise the commit with `Push( "Description" )`. If you performed
|
||||
* Finalize the commit with `Push( "Description" )`. If you performed
|
||||
no modifications, additions or removals, this is a no-op, so you
|
||||
don't need to check if you made any changes before pushing.
|
||||
|
||||
@@ -284,7 +283,7 @@ In `pcbnew/tools/pcb_actions.h`, we add the following to the
|
||||
static TOOL_ACTION uselessFixedCircle;
|
||||
|
||||
Definitions of actions generally happen in the .cpp of the relevant tool.
|
||||
It doesn't actually matter where the defintion occurs (the declaration
|
||||
It doesn't actually matter where the definition occurs (the declaration
|
||||
is enough to use the action), as long as it's linked in the end.
|
||||
Similar tools should always be defined together.
|
||||
|
||||
@@ -337,11 +336,11 @@ the following class:
|
||||
///> React to model/view changes
|
||||
void Reset( RESET_REASON aReason ) override;
|
||||
|
||||
///> Basic initalization
|
||||
///> Basic initialization
|
||||
bool Init() override;
|
||||
|
||||
///> Bind handlers to corresponding TOOL_ACTIONs
|
||||
void SetTransitions() override;
|
||||
void setTransitions() override;
|
||||
|
||||
private:
|
||||
///> 'Move selected left' interactive tool
|
||||
@@ -392,7 +391,7 @@ Below you will find the contents of useless_tool.cpp:
|
||||
|
||||
|
||||
/*
|
||||
* Tool-specific action defintions
|
||||
* Tool-specific action definitions
|
||||
*/
|
||||
TOOL_ACTION PCB_ACTIONS::uselessMoveItemLeft(
|
||||
"pcbnew.UselessTool.MoveItemLeft",
|
||||
@@ -443,7 +442,7 @@ Below you will find the contents of useless_tool.cpp:
|
||||
void USELESS_TOOL::moveLeftInt()
|
||||
{
|
||||
// we will call actions on the selection tool to get the current
|
||||
// selection. The selection tools will handle item deisambiguation
|
||||
// selection. The selection tools will handle item disambiguation
|
||||
SELECTION_TOOL* selectionTool = m_toolMgr->GetTool<SELECTION_TOOL>();
|
||||
assert( selectionTool );
|
||||
|
||||
@@ -535,7 +534,7 @@ Below you will find the contents of useless_tool.cpp:
|
||||
}
|
||||
|
||||
|
||||
void USELESS_TOOL::SetTransitions()
|
||||
void USELESS_TOOL::setTransitions()
|
||||
{
|
||||
Go( &USELESS_TOOL::fixedCircle, PCB_ACTIONS::uselessFixedCircle.MakeEvent() );
|
||||
Go( &USELESS_TOOL::moveLeft, PCB_ACTIONS::uselessMoveItemLeft.MakeEvent() );
|
||||
@@ -546,22 +545,8 @@ Below you will find the contents of useless_tool.cpp:
|
||||
|
||||
The last step is to register the tool in the tool manager.
|
||||
|
||||
This is done by adding a new instance of the tool to the
|
||||
`registerAllTools()` function in `pcbnew/tools/tools_common.cpp`.
|
||||
|
||||
// add your tool header
|
||||
#include <tools/useless_tool.h>
|
||||
|
||||
void registerAllTools( TOOL_MANAGER *aToolManager )
|
||||
{
|
||||
....
|
||||
aToolManager->RegisterTool( new USELESS_TOOL );
|
||||
....
|
||||
}
|
||||
|
||||
If your new tool applies in the module editor, you also need to do this
|
||||
in `FOOTPRINT_EDIT_FRAME::setupTools()`. Generally, each kind of
|
||||
`EDA_DRAW_FRAME` that can use GAL will have a place to do this.
|
||||
This is done in the frame's `setupTools()` function for whichever
|
||||
`EDA_DRAW_FRAME` support that tool.
|
||||
|
||||
## Build and run {#tutorial-summary}
|
||||
|
||||
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
+4
-2
@@ -1,7 +1,7 @@
|
||||
The majority of KiCad's source code is developed and distributed under the terms
|
||||
of the GPLv3 or later. However, It does include some third-party code licensed
|
||||
under AGPLv3 or later as well as sections licensed under the BOOST license v1.0
|
||||
and portions licensed under the ISC license.
|
||||
under AGPLv3 or later as well as sections licensed under the BOOST license v1.0,
|
||||
the ISC license and the MIT license.
|
||||
|
||||
These licenses are compatible, but a combined works as is will be governed under
|
||||
the terms of the AGPLv3 (or later). This includes any binary distribution of the
|
||||
@@ -15,6 +15,8 @@ Licensed under BOOSTv1:
|
||||
- libcontext [https://github.com/boostorg/context], sources in common/system/libcontext.cpp
|
||||
Licensed under ISC:
|
||||
- portions of code in include/geometry/polygon_triangulation.h
|
||||
Licensed under MIT:
|
||||
- tinyspline_lib in dxflib_qcad/tinyspline_lib
|
||||
Licensed under CC-BY-SA-4.0:
|
||||
- All the demo files provided in demos/*
|
||||
Licensed under GPLv3 (or later):
|
||||
|
||||
+1
-1
@@ -7,7 +7,7 @@ AlignOperands: true
|
||||
AlignTrailingComments: true
|
||||
AllowAllParametersOfDeclarationOnNextLine: true
|
||||
AllowShortBlocksOnASingleLine: false
|
||||
AllowShortCaseLabelsOnASingleLine: true
|
||||
AllowShortCaseLabelsOnASingleLine: false
|
||||
AllowShortFunctionsOnASingleLine: false
|
||||
AllowShortIfStatementsOnASingleLine: false
|
||||
AllowShortLoopsOnASingleLine: false
|
||||
|
||||
@@ -3,6 +3,8 @@ if( COMPILER_SUPPORTS_WSHADOW )
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${WSHADOW_FLAGS}")
|
||||
endif()
|
||||
|
||||
add_definitions( -DBITMAP_2_CMP )
|
||||
|
||||
include_directories( BEFORE ${INC_BEFORE} )
|
||||
include_directories(
|
||||
../potrace
|
||||
@@ -11,9 +13,10 @@ include_directories(
|
||||
|
||||
set( BITMAP2COMPONENT_SRCS
|
||||
../common/single_top.cpp
|
||||
bitmap2cmp_main.cpp
|
||||
bitmap2component.cpp
|
||||
bitmap2cmp_gui_base
|
||||
bitmap2cmp_gui
|
||||
bitmap2cmp_gui_base.cpp
|
||||
bitmap2cmp_gui.cpp
|
||||
)
|
||||
|
||||
set_source_files_properties( ../common/single_top.cpp PROPERTIES
|
||||
@@ -54,6 +57,9 @@ target_link_libraries( bitmap2component
|
||||
)
|
||||
|
||||
if( APPLE )
|
||||
include( ${CMAKE_MODULE_PATH}/KiCadVersion.cmake )
|
||||
configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/Info.plist.in ${CMAKE_CURRENT_SOURCE_DIR}/Info.plist @ONLY )
|
||||
|
||||
set_target_properties( bitmap2component PROPERTIES
|
||||
MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/Info.plist
|
||||
)
|
||||
@@ -86,6 +92,6 @@ endif()
|
||||
|
||||
if( false ) # linker map with cross reference
|
||||
set_target_properties( bitmap2component PROPERTIES
|
||||
LINK_FLAGS "${TO_LINKER},-cref ${TO_LINKER},-Map=bitmap2component.map"
|
||||
LINK_FLAGS "-Wl,-cref,-Map=bitmap2component.map"
|
||||
)
|
||||
endif()
|
||||
|
||||
@@ -17,17 +17,17 @@
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleLongVersionString</key>
|
||||
<string></string>
|
||||
<string>@KICAD_VERSION_FULL@</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>Bitmap 2 Component</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string></string>
|
||||
<string>@KICAD_VERSION@</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string></string>
|
||||
<string>@KICAD_VERSION_FULL@</string>
|
||||
<key>CSResourcesFileMapped</key>
|
||||
<true/>
|
||||
<key>LSRequiresCarbon</key>
|
||||
+432
-284
@@ -2,7 +2,7 @@
|
||||
* This program source code file is part of KICAD, a free EDA CAD application.
|
||||
*
|
||||
* Copyright (C) 1992-2010 jean-pierre.charras
|
||||
* Copyright (C) 1992-2019 Kicad Developers, see change_log.txt for contributors.
|
||||
* Copyright (C) 1992-2019 Kicad Developers, see AUTHORS.txt for contributors.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
@@ -22,23 +22,22 @@
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
#include <fctsys.h>
|
||||
#include <macros.h>
|
||||
|
||||
#include <pgm_base.h>
|
||||
#include <confirm.h>
|
||||
#include <gestfich.h>
|
||||
#include <wildcards_and_files_ext.h>
|
||||
#include <bitmap_io.h>
|
||||
#include <build_version.h>
|
||||
#include <menus_helpers.h>
|
||||
#include <kiway.h>
|
||||
#include <kiface_i.h>
|
||||
|
||||
#include <wx/rawbmp.h>
|
||||
#include <potracelib.h>
|
||||
|
||||
#include "bitmap2cmp_gui.h"
|
||||
#include "bitmap2component.h"
|
||||
#include <bitmap_io.h>
|
||||
#include <bitmaps.h>
|
||||
#include <build_version.h>
|
||||
#include <confirm.h>
|
||||
#include <fctsys.h>
|
||||
#include <gestfich.h>
|
||||
#include <kiface_i.h>
|
||||
#include <kiway.h>
|
||||
#include <macros.h>
|
||||
#include <pgm_base.h>
|
||||
#include <potracelib.h>
|
||||
#include <wildcards_and_files_ext.h>
|
||||
#include <wx/clipbrd.h>
|
||||
#include <wx/rawbmp.h>
|
||||
|
||||
#include "bitmap2cmp_gui_base.h"
|
||||
|
||||
@@ -53,141 +52,137 @@
|
||||
#define KEYWORD_LAST_MODLAYER wxT( "Last_modlayer" )
|
||||
#define KEYWORD_BINARY_THRESHOLD wxT( "Threshold" )
|
||||
#define KEYWORD_BW_NEGATIVE wxT( "Negative_choice" )
|
||||
#define KEYWORD_UNIT_SELECTION wxT( "Unit_selection" )
|
||||
|
||||
#define DEFAULT_DPI 300 // Default resolution in Bit per inches
|
||||
#define DEFAULT_DPI 300 // the image DPI used in formats that do not define a DPI
|
||||
|
||||
extern int bitmap2component( potrace_bitmap_t* aPotrace_bitmap, FILE* aOutfile,
|
||||
OUTPUT_FMT_ID aFormat, int aDpi_X, int aDpi_Y,
|
||||
BMP2CMP_MOD_LAYER aModLayer );
|
||||
|
||||
/**
|
||||
* Class BM2CMP_FRAME_BASE
|
||||
* is the main frame for this application
|
||||
*/
|
||||
class BM2CMP_FRAME : public BM2CMP_FRAME_BASE
|
||||
IMAGE_SIZE::IMAGE_SIZE()
|
||||
{
|
||||
private:
|
||||
wxImage m_Pict_Image;
|
||||
wxBitmap m_Pict_Bitmap;
|
||||
wxImage m_Greyscale_Image;
|
||||
wxBitmap m_Greyscale_Bitmap;
|
||||
wxImage m_NB_Image;
|
||||
wxBitmap m_BN_Bitmap;
|
||||
wxSize m_imageDPI; // The initial image resolution. When unknown,
|
||||
// set to DEFAULT_DPI x DEFAULT_DPI per Inch
|
||||
bool m_Negative;
|
||||
wxString m_BitmapFileName;
|
||||
wxString m_ConvertedFileName;
|
||||
wxSize m_frameSize;
|
||||
wxPoint m_framePos;
|
||||
std::unique_ptr<wxConfigBase> m_config;
|
||||
m_outputSize = 0.0;
|
||||
m_originalDPI = DEFAULT_DPI;
|
||||
m_originalSizePixels = 0;
|
||||
m_unit = MILLIMETRES;
|
||||
}
|
||||
|
||||
public:
|
||||
BM2CMP_FRAME( KIWAY* aKiway, wxWindow* aParent );
|
||||
~BM2CMP_FRAME();
|
||||
|
||||
// overload KIWAY_PLAYER virtual
|
||||
bool OpenProjectFiles( const std::vector<wxString>& aFilenames, int aCtl=0 ) override;
|
||||
|
||||
private:
|
||||
|
||||
// Event handlers
|
||||
void OnPaintInit( wxPaintEvent& event ) override;
|
||||
void OnPaintGreyscale( wxPaintEvent& event ) override;
|
||||
void OnPaintBW( wxPaintEvent& event ) override;
|
||||
void OnLoadFile( wxCommandEvent& event ) override;
|
||||
void OnExport( wxCommandEvent& event ) override;
|
||||
|
||||
/**
|
||||
* Generate a schematic library which contains one component:
|
||||
* the logo
|
||||
*/
|
||||
void OnExportEeschema();
|
||||
|
||||
/**
|
||||
* Generate a module in S expr format
|
||||
*/
|
||||
void OnExportPcbnew();
|
||||
|
||||
/**
|
||||
* Generate a postscript file
|
||||
*/
|
||||
void OnExportPostScript();
|
||||
|
||||
/**
|
||||
* Generate a file suitable to be copied into a page layout
|
||||
* description file (.kicad_wks file
|
||||
*/
|
||||
void OnExportLogo();
|
||||
|
||||
void Binarize( double aThreshold ); // aThreshold = 0.0 (black level) to 1.0 (white level)
|
||||
void OnNegativeClicked( wxCommandEvent& event ) override;
|
||||
void OnThresholdChange( wxScrollEvent& event ) override;
|
||||
void OnResolutionChange( wxCommandEvent& event ) override;
|
||||
|
||||
// called when texts controls which handle the image resolution
|
||||
// lose the focus, to ensure the right values are displayed
|
||||
// because the m_imageDPI are clipped to acceptable values, and
|
||||
// the text displayed could be differ during text editing
|
||||
// We are using ChangeValue here to avoid generating a wxEVT_TEXT event.
|
||||
void UpdateDPITextValueX( wxMouseEvent& event )
|
||||
void IMAGE_SIZE::SetOutputSizeFromInitialImageSize()
|
||||
{
|
||||
// Set the m_outputSize value from the m_originalSizePixels and the selected unit
|
||||
if( m_unit == MILLIMETRES )
|
||||
{
|
||||
m_DPIValueX->ChangeValue( wxString::Format( wxT( "%d" ), m_imageDPI.x ) );
|
||||
m_outputSize = (double)GetOriginalSizePixels() / m_originalDPI * 25.4;
|
||||
}
|
||||
else if( m_unit == INCHES )
|
||||
{
|
||||
m_outputSize = (double)GetOriginalSizePixels() / m_originalDPI;
|
||||
}
|
||||
else
|
||||
{
|
||||
m_outputSize = m_originalDPI;
|
||||
}
|
||||
|
||||
void UpdateDPITextValueY( wxMouseEvent& event )
|
||||
}
|
||||
|
||||
|
||||
int IMAGE_SIZE::GetOutputDPI()
|
||||
{
|
||||
int outputDPI;
|
||||
|
||||
if( m_unit == MILLIMETRES )
|
||||
{
|
||||
m_DPIValueY->ChangeValue( wxString::Format( wxT( "%d" ), m_imageDPI.y ) );
|
||||
outputDPI = GetOriginalSizePixels() / ( m_outputSize / 25.4 );
|
||||
}
|
||||
else if( m_unit == INCHES )
|
||||
{
|
||||
outputDPI = GetOriginalSizePixels() / m_outputSize;
|
||||
}
|
||||
else
|
||||
{
|
||||
outputDPI = KiROUND( m_outputSize );
|
||||
}
|
||||
|
||||
void NegateGreyscaleImage( );
|
||||
void ExportFile( FILE* aOutfile, OUTPUT_FMT_ID aFormat );
|
||||
void updateImageInfo();
|
||||
void OnFormatChange( wxCommandEvent& event ) override;
|
||||
};
|
||||
return outputDPI;
|
||||
}
|
||||
|
||||
|
||||
void IMAGE_SIZE::SetUnit( EDA_UNITS_T aUnit )
|
||||
{
|
||||
// Set the unit used for m_outputSize, and convert the old m_outputSize value
|
||||
// to the value in new unit
|
||||
if( aUnit == m_unit )
|
||||
return;
|
||||
|
||||
// Convert m_outputSize to mm:
|
||||
double size_mm;
|
||||
|
||||
if( m_unit == MILLIMETRES )
|
||||
{
|
||||
size_mm = m_outputSize;
|
||||
}
|
||||
else if( m_unit == INCHES )
|
||||
{
|
||||
size_mm = m_outputSize * 25.4;
|
||||
}
|
||||
else
|
||||
{
|
||||
// m_outputSize is the DPI, not an image size
|
||||
// the image size is m_originalSizePixels / m_outputSize (in inches)
|
||||
if( m_outputSize )
|
||||
size_mm = m_originalSizePixels / m_outputSize * 25.4;
|
||||
else
|
||||
size_mm = 0;
|
||||
}
|
||||
|
||||
// Convert m_outputSize to new value:
|
||||
if( aUnit == MILLIMETRES )
|
||||
{
|
||||
m_outputSize = size_mm;
|
||||
}
|
||||
else if( aUnit == INCHES )
|
||||
{
|
||||
m_outputSize = size_mm / 25.4;
|
||||
}
|
||||
else
|
||||
{
|
||||
if( size_mm )
|
||||
m_outputSize = m_originalSizePixels / size_mm * 25.4;
|
||||
else
|
||||
m_outputSize = 0;
|
||||
}
|
||||
|
||||
m_unit = aUnit;
|
||||
}
|
||||
|
||||
|
||||
|
||||
BM2CMP_FRAME::BM2CMP_FRAME( KIWAY* aKiway, wxWindow* aParent ) :
|
||||
BM2CMP_FRAME_BASE( aParent )
|
||||
{
|
||||
SetKiway( this, aKiway );
|
||||
|
||||
int tmp;
|
||||
m_config = GetNewConfig( Pgm().App().GetAppName() );
|
||||
m_config->Read( KEYWORD_FRAME_POSX, & m_framePos.x, -1 );
|
||||
m_config->Read( KEYWORD_FRAME_POSY, & m_framePos.y, -1 );
|
||||
m_config->Read( KEYWORD_FRAME_SIZEX, & m_frameSize.x, -1 );
|
||||
m_config->Read( KEYWORD_FRAME_SIZEY, & m_frameSize.y, -1 );
|
||||
m_config->Read( KEYWORD_LAST_INPUT_FILE, &m_BitmapFileName );
|
||||
m_config->Read( KEYWORD_LAST_OUTPUT_FILE, &m_ConvertedFileName );
|
||||
|
||||
if( m_config->Read( KEYWORD_BINARY_THRESHOLD, &tmp ) )
|
||||
m_sliderThreshold->SetValue( tmp );
|
||||
|
||||
m_config->Read( KEYWORD_BW_NEGATIVE, &tmp, 0 );
|
||||
m_Negative = tmp != 0;
|
||||
m_checkNegative->SetValue( m_Negative );
|
||||
|
||||
if( m_config->Read( KEYWORD_LAST_FORMAT, &tmp ) )
|
||||
wxString unitList[] =
|
||||
{
|
||||
if( tmp < 0 || tmp > FINAL_FMT )
|
||||
tmp = PCBNEW_KICAD_MOD;
|
||||
_("mm"), _("Inch"), _("DPI")
|
||||
};
|
||||
|
||||
m_radioBoxFormat->SetSelection( tmp );
|
||||
}
|
||||
for( int ii = 0; ii < 3; ii++ )
|
||||
m_PixelUnit->Append( unitList[ii] );
|
||||
|
||||
if( tmp == PCBNEW_KICAD_MOD )
|
||||
m_radio_PCBLayer->Enable( true );
|
||||
else
|
||||
m_radio_PCBLayer->Enable( false );
|
||||
LoadSettings( m_config.get() );
|
||||
|
||||
if( m_config->Read( KEYWORD_LAST_MODLAYER, &tmp ) )
|
||||
{
|
||||
if( (unsigned) tmp > MOD_LYR_FINAL ) // Out of range
|
||||
m_radio_PCBLayer->SetSelection( MOD_LYR_FSILKS );
|
||||
else
|
||||
m_radio_PCBLayer->SetSelection( tmp );
|
||||
}
|
||||
m_outputSizeX.SetUnit( getUnitFromSelection() );
|
||||
m_outputSizeY.SetUnit( getUnitFromSelection() );
|
||||
m_outputSizeX.SetOutputSize( 0, getUnitFromSelection() );
|
||||
m_outputSizeY.SetOutputSize( 0, getUnitFromSelection() );
|
||||
|
||||
m_UnitSizeX->ChangeValue( FormatOutputSize( m_outputSizeX.GetOutputSize() ) );
|
||||
m_UnitSizeY->ChangeValue( FormatOutputSize( m_outputSizeY.GetOutputSize() ) );
|
||||
|
||||
//Set icon for aspect ratio
|
||||
m_AspectRatioLocked = true;
|
||||
m_AspectRatio = 1;
|
||||
m_AspectRatioLockButton->SetBitmap( KiBitmap( locked_xpm ) );
|
||||
|
||||
// Give an icon
|
||||
wxIcon icon;
|
||||
@@ -198,9 +193,9 @@ BM2CMP_FRAME::BM2CMP_FRAME( KIWAY* aKiway, wxWindow* aParent ) :
|
||||
|
||||
SetSize( m_framePos.x, m_framePos.y, m_frameSize.x, m_frameSize.y );
|
||||
|
||||
m_buttonExport->Enable( false );
|
||||
m_buttonExportFile->Enable( false );
|
||||
m_buttonExportClipboard->Enable( false );
|
||||
|
||||
m_imageDPI.x = m_imageDPI.y = DEFAULT_DPI; // Default resolution in Bit per inches
|
||||
|
||||
if ( m_framePos == wxDefaultPosition )
|
||||
Centre();
|
||||
@@ -209,27 +204,88 @@ BM2CMP_FRAME::BM2CMP_FRAME( KIWAY* aKiway, wxWindow* aParent ) :
|
||||
|
||||
BM2CMP_FRAME::~BM2CMP_FRAME()
|
||||
{
|
||||
if( !m_config || IsIconized() )
|
||||
SaveSettings( m_config.get() );
|
||||
/*
|
||||
* This needed for OSX: avoids further OnDraw processing after this
|
||||
* destructor and before the native window is destroyed
|
||||
*/
|
||||
this->Freeze( );
|
||||
}
|
||||
|
||||
|
||||
void BM2CMP_FRAME::LoadSettings( wxConfigBase* aCfg )
|
||||
{
|
||||
int tmp;
|
||||
aCfg->Read( KEYWORD_FRAME_POSX, & m_framePos.x, -1 );
|
||||
aCfg->Read( KEYWORD_FRAME_POSY, & m_framePos.y, -1 );
|
||||
aCfg->Read( KEYWORD_FRAME_SIZEX, & m_frameSize.x, -1 );
|
||||
aCfg->Read( KEYWORD_FRAME_SIZEY, & m_frameSize.y, -1 );
|
||||
aCfg->Read( KEYWORD_LAST_INPUT_FILE, &m_BitmapFileName );
|
||||
aCfg->Read( KEYWORD_LAST_OUTPUT_FILE, &m_ConvertedFileName );
|
||||
|
||||
int u_select = 0;
|
||||
aCfg->Read( KEYWORD_UNIT_SELECTION, &u_select, 0 );
|
||||
|
||||
if( u_select < 0 || u_select > 2 ) // Validity control
|
||||
u_select = 0;
|
||||
|
||||
m_PixelUnit->SetSelection( u_select );
|
||||
|
||||
if( aCfg->Read( KEYWORD_BINARY_THRESHOLD, &tmp ) )
|
||||
m_sliderThreshold->SetValue( tmp );
|
||||
|
||||
aCfg->Read( KEYWORD_BW_NEGATIVE, &tmp, 0 );
|
||||
m_Negative = tmp != 0;
|
||||
m_checkNegative->SetValue( m_Negative );
|
||||
m_exportToClipboard = false;
|
||||
m_AspectRatioLocked = false;
|
||||
|
||||
if( aCfg->Read( KEYWORD_LAST_FORMAT, &tmp ) )
|
||||
{
|
||||
if( tmp < 0 || tmp > FINAL_FMT )
|
||||
tmp = PCBNEW_KICAD_MOD;
|
||||
|
||||
m_rbOutputFormat->SetSelection( tmp );
|
||||
}
|
||||
|
||||
if( tmp == PCBNEW_KICAD_MOD )
|
||||
m_rbPCBLayer->Enable( true );
|
||||
else
|
||||
m_rbPCBLayer->Enable( false );
|
||||
|
||||
if( aCfg->Read( KEYWORD_LAST_MODLAYER, &tmp ) )
|
||||
{
|
||||
if( (unsigned) tmp > MOD_LYR_FINAL ) // Out of range
|
||||
m_rbPCBLayer->SetSelection( MOD_LYR_FSILKS );
|
||||
else
|
||||
m_rbPCBLayer->SetSelection( tmp );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void BM2CMP_FRAME::SaveSettings( wxConfigBase* aCfg )
|
||||
{
|
||||
if( !aCfg )
|
||||
return;
|
||||
|
||||
m_frameSize = GetSize();
|
||||
m_framePos = GetPosition();
|
||||
|
||||
m_config->Write( KEYWORD_FRAME_POSX, (long) m_framePos.x );
|
||||
m_config->Write( KEYWORD_FRAME_POSY, (long) m_framePos.y );
|
||||
m_config->Write( KEYWORD_FRAME_SIZEX, (long) m_frameSize.x );
|
||||
m_config->Write( KEYWORD_FRAME_SIZEY, (long) m_frameSize.y );
|
||||
m_config->Write( KEYWORD_LAST_INPUT_FILE, m_BitmapFileName );
|
||||
m_config->Write( KEYWORD_LAST_OUTPUT_FILE, m_ConvertedFileName );
|
||||
m_config->Write( KEYWORD_BINARY_THRESHOLD, m_sliderThreshold->GetValue() );
|
||||
m_config->Write( KEYWORD_BW_NEGATIVE, m_checkNegative->IsChecked() ? 1 : 0 );
|
||||
m_config->Write( KEYWORD_LAST_FORMAT, m_radioBoxFormat->GetSelection() );
|
||||
m_config->Write( KEYWORD_LAST_MODLAYER, m_radio_PCBLayer->GetSelection() );
|
||||
if( !IsIconized() )
|
||||
{
|
||||
aCfg->Write( KEYWORD_FRAME_POSX, (long) m_framePos.x );
|
||||
aCfg->Write( KEYWORD_FRAME_POSY, (long) m_framePos.y );
|
||||
aCfg->Write( KEYWORD_FRAME_SIZEX, (long) m_frameSize.x );
|
||||
aCfg->Write( KEYWORD_FRAME_SIZEY, (long) m_frameSize.y );
|
||||
}
|
||||
|
||||
/* This needed for OSX: avoids further OnDraw processing after this
|
||||
* destructor and before the native window is destroyed
|
||||
*/
|
||||
this->Freeze( );
|
||||
aCfg->Write( KEYWORD_LAST_INPUT_FILE, m_BitmapFileName );
|
||||
aCfg->Write( KEYWORD_LAST_OUTPUT_FILE, m_ConvertedFileName );
|
||||
aCfg->Write( KEYWORD_BINARY_THRESHOLD, m_sliderThreshold->GetValue() );
|
||||
aCfg->Write( KEYWORD_BW_NEGATIVE, m_checkNegative->IsChecked() ? 1 : 0 );
|
||||
aCfg->Write( KEYWORD_LAST_FORMAT, m_rbOutputFormat->GetSelection() );
|
||||
aCfg->Write( KEYWORD_LAST_MODLAYER, m_rbPCBLayer->GetSelection() );
|
||||
aCfg->Write( KEYWORD_UNIT_SELECTION, m_PixelUnit->GetSelection() );
|
||||
}
|
||||
|
||||
|
||||
@@ -331,33 +387,41 @@ bool BM2CMP_FRAME::OpenProjectFiles( const std::vector<wxString>& aFileSet, int
|
||||
|
||||
m_Pict_Bitmap = wxBitmap( m_Pict_Image );
|
||||
|
||||
int h = m_Pict_Bitmap.GetHeight();
|
||||
int w = m_Pict_Bitmap.GetWidth();
|
||||
|
||||
// Determine image resolution in DPI (does not existing in all formats).
|
||||
// the resolution can be given in bit per inches or bit per cm in file
|
||||
m_imageDPI.x = m_Pict_Image.GetOptionInt( wxIMAGE_OPTION_RESOLUTIONX );
|
||||
m_imageDPI.y = m_Pict_Image.GetOptionInt( wxIMAGE_OPTION_RESOLUTIONY );
|
||||
|
||||
if( m_imageDPI.x > 1 && m_imageDPI.y > 1 )
|
||||
int imageDPIx = m_Pict_Image.GetOptionInt( wxIMAGE_OPTION_RESOLUTIONX );
|
||||
int imageDPIy = m_Pict_Image.GetOptionInt( wxIMAGE_OPTION_RESOLUTIONY );
|
||||
|
||||
if( imageDPIx > 1 && imageDPIy > 1 )
|
||||
{
|
||||
if( m_Pict_Image.GetOptionInt( wxIMAGE_OPTION_RESOLUTIONUNIT ) == wxIMAGE_RESOLUTION_CM )
|
||||
{
|
||||
// When the initial resolution is given in bits per cm,
|
||||
// experience shows adding 1.27 to the resolution converted in dpi
|
||||
// before convert to int value reduce the conversion error
|
||||
// but it is not perfect
|
||||
m_imageDPI.x = m_imageDPI.x * 2.54 + 1.27;
|
||||
m_imageDPI.y = m_imageDPI.y * 2.54 + 1.27;
|
||||
imageDPIx = KiROUND( imageDPIx * 2.54 );
|
||||
imageDPIy = KiROUND( imageDPIy * 2.54 );
|
||||
}
|
||||
}
|
||||
else // fallback to the default value
|
||||
m_imageDPI.x = m_imageDPI.y = DEFAULT_DPI;
|
||||
else // fallback to a default value (DEFAULT_DPI)
|
||||
{
|
||||
imageDPIx = imageDPIy = DEFAULT_DPI;
|
||||
}
|
||||
|
||||
m_InputXValueDPI->SetLabel( wxString::Format( wxT( "%d" ), imageDPIx ) );
|
||||
m_InputYValueDPI->SetLabel( wxString::Format( wxT( "%d" ), imageDPIy ) );
|
||||
|
||||
int h = m_Pict_Bitmap.GetHeight();
|
||||
int w = m_Pict_Bitmap.GetWidth();
|
||||
m_AspectRatio = (double) w / h;
|
||||
|
||||
m_outputSizeX.SetOriginalDPI( imageDPIx );
|
||||
m_outputSizeX.SetOriginalSizePixels( w );
|
||||
m_outputSizeY.SetOriginalDPI( imageDPIy );
|
||||
m_outputSizeY.SetOriginalSizePixels( h );
|
||||
|
||||
// Update display to keep aspect ratio
|
||||
auto fakeEvent = wxCommandEvent();
|
||||
OnSizeChangeX( fakeEvent );
|
||||
|
||||
// Display image info:
|
||||
// We are using ChangeValue here to avoid generating a wxEVT_TEXT event.
|
||||
m_DPIValueX->ChangeValue( wxString::Format( wxT( "%d" ), m_imageDPI.x ) );
|
||||
m_DPIValueY->ChangeValue( wxString::Format( wxT( "%d" ), m_imageDPI.y ) );
|
||||
updateImageInfo();
|
||||
|
||||
m_InitialPicturePanel->SetVirtualSize( w, h );
|
||||
@@ -390,51 +454,166 @@ bool BM2CMP_FRAME::OpenProjectFiles( const std::vector<wxString>& aFileSet, int
|
||||
m_NB_Image = m_Greyscale_Image;
|
||||
Binarize( (double) m_sliderThreshold->GetValue()/m_sliderThreshold->GetMax() );
|
||||
|
||||
m_buttonExport->Enable( true );
|
||||
m_buttonExportFile->Enable( true );
|
||||
m_buttonExportClipboard->Enable( true );
|
||||
|
||||
m_outputSizeX.SetOutputSizeFromInitialImageSize();
|
||||
m_UnitSizeX->ChangeValue( FormatOutputSize( m_outputSizeX.GetOutputSize() ) );
|
||||
m_outputSizeY.SetOutputSizeFromInitialImageSize();
|
||||
m_UnitSizeY->ChangeValue( FormatOutputSize( m_outputSizeY.GetOutputSize() ) );
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
// return a string giving the output size, according to the selected unit
|
||||
wxString BM2CMP_FRAME::FormatOutputSize( double aSize )
|
||||
{
|
||||
wxString text;
|
||||
|
||||
if( getUnitFromSelection() == MILLIMETRES )
|
||||
{
|
||||
text.Printf( "%.1f", aSize );
|
||||
}
|
||||
else if( getUnitFromSelection() == INCHES )
|
||||
{
|
||||
text.Printf( "%.2f", aSize );
|
||||
}
|
||||
else
|
||||
{
|
||||
text.Printf( "%d", KiROUND( aSize ) );
|
||||
}
|
||||
|
||||
return text;
|
||||
}
|
||||
|
||||
void BM2CMP_FRAME::updateImageInfo()
|
||||
{
|
||||
// Note: the image resolution text controls are not modified
|
||||
// here, to avoid a race between text change when entered by user and
|
||||
// a text change if it is modified here.
|
||||
int h = m_Pict_Bitmap.GetHeight();
|
||||
int w = m_Pict_Bitmap.GetWidth();
|
||||
int nb = m_Pict_Bitmap.GetDepth();
|
||||
|
||||
m_SizeXValue->SetLabel( wxString::Format( wxT( "%d" ), w ) );
|
||||
m_SizeYValue->SetLabel( wxString::Format( wxT( "%d" ), h ) );
|
||||
m_BPPValue->SetLabel( wxString::Format( wxT( "%d" ), nb ) );
|
||||
if( m_Pict_Bitmap.IsOk() )
|
||||
{
|
||||
int h = m_Pict_Bitmap.GetHeight();
|
||||
int w = m_Pict_Bitmap.GetWidth();
|
||||
int nb = m_Pict_Bitmap.GetDepth();
|
||||
|
||||
m_SizeXValue_mm->SetLabel( wxString::Format( wxT( "%.1f" ),
|
||||
(double) w / m_imageDPI.x * 25.4 ) );
|
||||
m_SizeYValue_mm->SetLabel( wxString::Format( wxT( "%.1f" ),
|
||||
(double) h / m_imageDPI.y * 25.4 ) );
|
||||
m_SizeXValue->SetLabel( wxString::Format( wxT( "%d" ), w ) );
|
||||
m_SizeYValue->SetLabel( wxString::Format( wxT( "%d" ), h ) );
|
||||
m_BPPValue->SetLabel( wxString::Format( wxT( "%d" ), nb ) );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void BM2CMP_FRAME::OnResolutionChange( wxCommandEvent& event )
|
||||
EDA_UNITS_T BM2CMP_FRAME::getUnitFromSelection()
|
||||
{
|
||||
long tmp;
|
||||
// return the EDA_UNITS_T from the m_PixelUnit choice
|
||||
switch( m_PixelUnit->GetSelection() )
|
||||
{
|
||||
case 1:
|
||||
return INCHES;
|
||||
|
||||
if( m_DPIValueX->GetValue().ToLong( &tmp ) )
|
||||
m_imageDPI.x = tmp;
|
||||
case 2:
|
||||
return UNSCALED_UNITS;
|
||||
|
||||
if( m_DPIValueY->GetValue().ToLong( &tmp ) )
|
||||
m_imageDPI.y = tmp;
|
||||
case 0:
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if( m_imageDPI.x < 32 )
|
||||
m_imageDPI.x = 32;
|
||||
return MILLIMETRES;
|
||||
}
|
||||
|
||||
if( m_imageDPI.y < 32 )
|
||||
m_imageDPI.y = 32;
|
||||
|
||||
void BM2CMP_FRAME::OnSizeChangeX( wxCommandEvent& event )
|
||||
{
|
||||
double new_size;
|
||||
|
||||
if( m_UnitSizeX->GetValue().ToDouble( &new_size ) )
|
||||
{
|
||||
if( m_AspectRatioLocked )
|
||||
{
|
||||
double calculatedY = new_size / m_AspectRatio;
|
||||
|
||||
if( getUnitFromSelection() == UNSCALED_UNITS )
|
||||
{
|
||||
// for units in DPI, keeping aspect ratio cannot use m_AspectRatioLocked.
|
||||
// just rescale the other dpi
|
||||
double ratio = new_size / m_outputSizeX.GetOutputSize();
|
||||
calculatedY = m_outputSizeY.GetOutputSize() * ratio;
|
||||
}
|
||||
|
||||
m_outputSizeY.SetOutputSize( calculatedY, getUnitFromSelection() );
|
||||
m_UnitSizeY->ChangeValue( FormatOutputSize( m_outputSizeY.GetOutputSize() ) );
|
||||
}
|
||||
|
||||
m_outputSizeX.SetOutputSize( new_size, getUnitFromSelection() );
|
||||
}
|
||||
|
||||
updateImageInfo();
|
||||
}
|
||||
|
||||
|
||||
void BM2CMP_FRAME::OnSizeChangeY( wxCommandEvent& event )
|
||||
{
|
||||
double new_size;
|
||||
|
||||
if( m_UnitSizeY->GetValue().ToDouble( &new_size ) )
|
||||
{
|
||||
if( m_AspectRatioLocked )
|
||||
{
|
||||
double calculatedX = new_size * m_AspectRatio;
|
||||
|
||||
if( getUnitFromSelection() == UNSCALED_UNITS )
|
||||
{
|
||||
// for units in DPI, keeping aspect ratio cannot use m_AspectRatioLocked.
|
||||
// just rescale the other dpi
|
||||
double ratio = new_size / m_outputSizeX.GetOutputSize();
|
||||
calculatedX = m_outputSizeX.GetOutputSize() * ratio;
|
||||
}
|
||||
|
||||
m_outputSizeX.SetOutputSize( calculatedX, getUnitFromSelection() );
|
||||
m_UnitSizeX->ChangeValue( FormatOutputSize( m_outputSizeX.GetOutputSize() ) );
|
||||
}
|
||||
|
||||
m_outputSizeY.SetOutputSize( new_size, getUnitFromSelection() );
|
||||
}
|
||||
|
||||
updateImageInfo();
|
||||
}
|
||||
|
||||
|
||||
void BM2CMP_FRAME::OnSizeUnitChange( wxCommandEvent& event )
|
||||
{
|
||||
m_outputSizeX.SetUnit( getUnitFromSelection() );
|
||||
m_outputSizeY.SetUnit( getUnitFromSelection() );
|
||||
updateImageInfo();
|
||||
|
||||
m_UnitSizeX->ChangeValue( FormatOutputSize( m_outputSizeX.GetOutputSize() ) );
|
||||
m_UnitSizeY->ChangeValue( FormatOutputSize( m_outputSizeY.GetOutputSize() ) );
|
||||
}
|
||||
|
||||
|
||||
void BM2CMP_FRAME::ToggleAspectRatioLock( wxCommandEvent& event )
|
||||
{
|
||||
m_AspectRatioLocked = !m_AspectRatioLocked;
|
||||
|
||||
if( m_AspectRatioLocked )
|
||||
{
|
||||
m_AspectRatioLockButton->SetBitmap( KiBitmap( locked_xpm ) );
|
||||
//Force display update when aspect ratio is locked
|
||||
auto fakeEvent = wxCommandEvent();
|
||||
OnSizeChangeX( fakeEvent );
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
m_AspectRatioLockButton->SetBitmap( KiBitmap( unlocked_xpm ) );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void BM2CMP_FRAME::Binarize( double aThreshold )
|
||||
{
|
||||
int h = m_Greyscale_Image.GetHeight();
|
||||
@@ -450,7 +629,7 @@ void BM2CMP_FRAME::Binarize( double aThreshold )
|
||||
auto alpha = m_Greyscale_Image.HasAlpha() ?
|
||||
m_Greyscale_Image.GetAlpha( x, y ) : wxALPHA_OPAQUE;
|
||||
|
||||
if( pixin < threshold || alpha < alpha_thresh )
|
||||
if( pixin < threshold && alpha > alpha_thresh )
|
||||
pixout = 0;
|
||||
else
|
||||
pixout = 255;
|
||||
@@ -502,24 +681,53 @@ void BM2CMP_FRAME::OnThresholdChange( wxScrollEvent& event )
|
||||
}
|
||||
|
||||
|
||||
void BM2CMP_FRAME::OnExport( wxCommandEvent& event )
|
||||
void BM2CMP_FRAME::OnExportToFile( wxCommandEvent& event )
|
||||
{
|
||||
// choices of m_radioBoxFormat are expected to be in same order as
|
||||
m_exportToClipboard = false;
|
||||
// choices of m_rbOutputFormat are expected to be in same order as
|
||||
// OUTPUT_FMT_ID. See bitmap2component.h
|
||||
OUTPUT_FMT_ID sel = (OUTPUT_FMT_ID) m_radioBoxFormat->GetSelection();
|
||||
OUTPUT_FMT_ID format = (OUTPUT_FMT_ID) m_rbOutputFormat->GetSelection();
|
||||
exportBitmap( format );
|
||||
}
|
||||
|
||||
switch( sel )
|
||||
|
||||
void BM2CMP_FRAME::OnExportToClipboard( wxCommandEvent& event )
|
||||
{
|
||||
m_exportToClipboard = true;
|
||||
// choices of m_rbOutputFormat are expected to be in same order as
|
||||
// OUTPUT_FMT_ID. See bitmap2component.h
|
||||
OUTPUT_FMT_ID format = (OUTPUT_FMT_ID) m_rbOutputFormat->GetSelection();
|
||||
|
||||
std::string buffer;
|
||||
ExportToBuffer( buffer, format );
|
||||
|
||||
// Write buffer to the clipboard
|
||||
if (wxTheClipboard->Open())
|
||||
{
|
||||
// This data objects are held by the clipboard,
|
||||
// so do not delete them in the app.
|
||||
wxTheClipboard->SetData( new wxTextDataObject( buffer.c_str() ) );
|
||||
wxTheClipboard->Close();
|
||||
}
|
||||
else
|
||||
wxMessageBox( _( "Unable to export to the Clipboard") );
|
||||
}
|
||||
|
||||
|
||||
void BM2CMP_FRAME::exportBitmap( OUTPUT_FMT_ID aFormat )
|
||||
{
|
||||
switch( aFormat )
|
||||
{
|
||||
case EESCHEMA_FMT:
|
||||
OnExportEeschema();
|
||||
exportEeschemaFormat();
|
||||
break;
|
||||
|
||||
case PCBNEW_KICAD_MOD:
|
||||
OnExportPcbnew();
|
||||
exportPcbnewFormat();
|
||||
break;
|
||||
|
||||
case POSTSCRIPT_FMT:
|
||||
OnExportPostScript();
|
||||
exportPostScriptFormat();
|
||||
break;
|
||||
|
||||
case KICAD_LOGO:
|
||||
@@ -555,17 +763,19 @@ void BM2CMP_FRAME::OnExportLogo()
|
||||
if( outfile == NULL )
|
||||
{
|
||||
wxString msg;
|
||||
msg.Printf( _( "File \"%s\" could not be created." ), GetChars( m_ConvertedFileName ) );
|
||||
msg.Printf( _( "File \"%s\" could not be created." ), m_ConvertedFileName );
|
||||
wxMessageBox( msg );
|
||||
return;
|
||||
}
|
||||
|
||||
ExportFile( outfile, KICAD_LOGO );
|
||||
std::string buffer;
|
||||
ExportToBuffer( buffer, KICAD_LOGO );
|
||||
fputs( buffer.c_str(), outfile );
|
||||
fclose( outfile );
|
||||
}
|
||||
|
||||
|
||||
void BM2CMP_FRAME::OnExportPostScript()
|
||||
void BM2CMP_FRAME::exportPostScriptFormat()
|
||||
{
|
||||
wxFileName fn( m_ConvertedFileName );
|
||||
wxString path = fn.GetPath();
|
||||
@@ -593,17 +803,19 @@ void BM2CMP_FRAME::OnExportPostScript()
|
||||
if( outfile == NULL )
|
||||
{
|
||||
wxString msg;
|
||||
msg.Printf( _( "File \"%s\" could not be created." ), GetChars( m_ConvertedFileName ) );
|
||||
msg.Printf( _( "File \"%s\" could not be created." ), m_ConvertedFileName );
|
||||
wxMessageBox( msg );
|
||||
return;
|
||||
}
|
||||
|
||||
ExportFile( outfile, POSTSCRIPT_FMT );
|
||||
std::string buffer;
|
||||
ExportToBuffer( buffer, POSTSCRIPT_FMT );
|
||||
fputs( buffer.c_str(), outfile );
|
||||
fclose( outfile );
|
||||
}
|
||||
|
||||
|
||||
void BM2CMP_FRAME::OnExportEeschema()
|
||||
void BM2CMP_FRAME::exportEeschemaFormat()
|
||||
{
|
||||
wxFileName fn( m_ConvertedFileName );
|
||||
wxString path = fn.GetPath();
|
||||
@@ -630,17 +842,19 @@ void BM2CMP_FRAME::OnExportEeschema()
|
||||
if( outfile == NULL )
|
||||
{
|
||||
wxString msg;
|
||||
msg.Printf( _( "File \"%s\" could not be created." ), GetChars( m_ConvertedFileName ) );
|
||||
msg.Printf( _( "File \"%s\" could not be created." ), m_ConvertedFileName );
|
||||
wxMessageBox( msg );
|
||||
return;
|
||||
}
|
||||
|
||||
ExportFile( outfile, EESCHEMA_FMT );
|
||||
std::string buffer;
|
||||
ExportToBuffer( buffer, EESCHEMA_FMT );
|
||||
fputs( buffer.c_str(), outfile );
|
||||
fclose( outfile );
|
||||
}
|
||||
|
||||
|
||||
void BM2CMP_FRAME::OnExportPcbnew()
|
||||
void BM2CMP_FRAME::exportPcbnewFormat()
|
||||
{
|
||||
wxFileName fn( m_ConvertedFileName );
|
||||
wxString path = fn.GetPath();
|
||||
@@ -667,18 +881,20 @@ void BM2CMP_FRAME::OnExportPcbnew()
|
||||
if( outfile == NULL )
|
||||
{
|
||||
wxString msg;
|
||||
msg.Printf( _( "File \"%s\" could not be created." ), GetChars( m_ConvertedFileName ) );
|
||||
msg.Printf( _( "File \"%s\" could not be created." ), m_ConvertedFileName );
|
||||
wxMessageBox( msg );
|
||||
return;
|
||||
}
|
||||
|
||||
ExportFile( outfile, PCBNEW_KICAD_MOD );
|
||||
std::string buffer;
|
||||
ExportToBuffer( buffer, PCBNEW_KICAD_MOD );
|
||||
fputs( buffer.c_str(), outfile );
|
||||
fclose( outfile );
|
||||
m_mruPath = fn.GetPath();
|
||||
}
|
||||
|
||||
|
||||
void BM2CMP_FRAME::ExportFile( FILE* aOutfile, OUTPUT_FMT_ID aFormat )
|
||||
void BM2CMP_FRAME::ExportToBuffer( std::string& aOutput, OUTPUT_FMT_ID aFormat )
|
||||
{
|
||||
// Create a potrace bitmap
|
||||
int h = m_NB_Image.GetHeight();
|
||||
@@ -703,94 +919,26 @@ void BM2CMP_FRAME::ExportFile( FILE* aOutfile, OUTPUT_FMT_ID aFormat )
|
||||
}
|
||||
}
|
||||
|
||||
// choices of m_radio_PCBLayer are expected to be in same order as
|
||||
// choices of m_rbPCBLayer are expected to be in same order as
|
||||
// BMP2CMP_MOD_LAYER. See bitmap2component.h
|
||||
BMP2CMP_MOD_LAYER modLayer = MOD_LYR_FSILKS;
|
||||
|
||||
if( aFormat == PCBNEW_KICAD_MOD )
|
||||
modLayer = (BMP2CMP_MOD_LAYER) m_radio_PCBLayer->GetSelection();
|
||||
modLayer = (BMP2CMP_MOD_LAYER) m_rbPCBLayer->GetSelection();
|
||||
|
||||
bitmap2component( potrace_bitmap, aOutfile, aFormat, m_imageDPI.x, m_imageDPI.y, modLayer );
|
||||
BITMAPCONV_INFO converter( aOutput );
|
||||
converter.ConvertBitmap( potrace_bitmap, aFormat, m_outputSizeX.GetOutputDPI(),
|
||||
m_outputSizeY.GetOutputDPI(), modLayer );
|
||||
|
||||
if( !converter.GetErrorMessages().empty() )
|
||||
wxMessageBox( converter.GetErrorMessages().c_str(), _( "Errors" ) );
|
||||
}
|
||||
|
||||
|
||||
|
||||
//-----<KIFACE>-----------------------------------------------------------------
|
||||
|
||||
namespace BMP2CMP {
|
||||
|
||||
static struct IFACE : public KIFACE_I
|
||||
{
|
||||
bool OnKifaceStart( PGM_BASE* aProgram, int aCtlBits ) override;
|
||||
|
||||
wxWindow* CreateWindow( wxWindow* aParent, int aClassId, KIWAY* aKiway, int aCtlBits = 0 ) override
|
||||
{
|
||||
return new BM2CMP_FRAME( aKiway, aParent );
|
||||
}
|
||||
|
||||
/**
|
||||
* Function IfaceOrAddress
|
||||
* return a pointer to the requested object. The safest way to use this
|
||||
* is to retrieve a pointer to a static instance of an interface, similar to
|
||||
* how the KIFACE interface is exported. But if you know what you are doing
|
||||
* use it to retrieve anything you want.
|
||||
*
|
||||
* @param aDataId identifies which object you want the address of.
|
||||
*
|
||||
* @return void* - and must be cast into the know type.
|
||||
*/
|
||||
void* IfaceOrAddress( int aDataId ) override
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
IFACE( const char* aDSOname, KIWAY::FACE_T aType ) :
|
||||
KIFACE_I( aDSOname, aType )
|
||||
{}
|
||||
|
||||
} kiface( "BMP2CMP", KIWAY::FACE_BMP2CMP );
|
||||
|
||||
} // namespace BMP2CMP
|
||||
|
||||
using namespace BMP2CMP;
|
||||
|
||||
static PGM_BASE* process;
|
||||
|
||||
KIFACE_I& Kiface()
|
||||
{
|
||||
return kiface;
|
||||
}
|
||||
|
||||
|
||||
// KIFACE_GETTER's actual spelling is a substitution macro found in kiway.h.
|
||||
// KIFACE_GETTER will not have name mangling due to declaration in kiway.h.
|
||||
KIFACE* KIFACE_GETTER( int* aKIFACEversion, int aKIWAYversion, PGM_BASE* aProgram )
|
||||
{
|
||||
process = (PGM_BASE*) aProgram;
|
||||
return &kiface;
|
||||
}
|
||||
|
||||
|
||||
#if defined(BUILD_KIWAY_DLLS)
|
||||
PGM_BASE& Pgm()
|
||||
{
|
||||
wxASSERT( process ); // KIFACE_GETTER has already been called.
|
||||
return *process;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
bool IFACE::OnKifaceStart( PGM_BASE* aProgram, int aCtlBits )
|
||||
{
|
||||
return start_common( aCtlBits );
|
||||
}
|
||||
|
||||
void BM2CMP_FRAME::OnFormatChange( wxCommandEvent& event )
|
||||
{
|
||||
if( m_radioBoxFormat->GetSelection() == PCBNEW_KICAD_MOD )
|
||||
m_radio_PCBLayer->Enable( true );
|
||||
if( m_rbOutputFormat->GetSelection() == PCBNEW_KICAD_MOD )
|
||||
m_rbPCBLayer->Enable( true );
|
||||
else
|
||||
m_radio_PCBLayer->Enable( false );
|
||||
|
||||
event.Skip();
|
||||
m_rbPCBLayer->Enable( false );
|
||||
}
|
||||
|
||||
@@ -0,0 +1,177 @@
|
||||
/*
|
||||
* This program source code file is part of KICAD, a free EDA CAD application.
|
||||
*
|
||||
* Copyright (C) 2019 Kicad Developers, see AUTHORS.txt for contributors.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version 2
|
||||
* of the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, you may find one here:
|
||||
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
||||
* or you may search the http://www.gnu.org website for the version 2 license,
|
||||
* or you may write to the Free Software Foundation, Inc.,
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
#ifndef BITMOP2CMP_GUI_H_
|
||||
#define BITMOP2CMP_GUI_H_
|
||||
|
||||
#include "bitmap2component.h"
|
||||
|
||||
#include "bitmap2cmp_gui_base.h"
|
||||
#include <potracelib.h>
|
||||
#include <common.h> // for EDA_UNITS_T
|
||||
|
||||
|
||||
class IMAGE_SIZE
|
||||
{
|
||||
public:
|
||||
IMAGE_SIZE();
|
||||
|
||||
// Set the unit used for m_outputSize, and convert the old m_outputSize value
|
||||
// to the value in new unit
|
||||
void SetUnit( EDA_UNITS_T aUnit );
|
||||
|
||||
// Accessors:
|
||||
void SetOriginalDPI( int aDPI )
|
||||
{
|
||||
m_originalDPI = aDPI;
|
||||
}
|
||||
|
||||
void SetOriginalSizePixels( int aPixels )
|
||||
{
|
||||
m_originalSizePixels = aPixels;
|
||||
}
|
||||
|
||||
double GetOutputSize()
|
||||
{
|
||||
return m_outputSize;
|
||||
}
|
||||
|
||||
void SetOutputSize( double aSize, EDA_UNITS_T aUnit )
|
||||
{
|
||||
m_unit = aUnit;
|
||||
m_outputSize = aSize;
|
||||
}
|
||||
|
||||
int GetOriginalSizePixels()
|
||||
{
|
||||
return m_originalSizePixels;
|
||||
}
|
||||
|
||||
// Set the m_outputSize value from the m_originalSizePixels and the selected unit
|
||||
void SetOutputSizeFromInitialImageSize();
|
||||
|
||||
/** @return the pixels per inch value to build the output image.
|
||||
* It is used by potrace to build the polygonal image
|
||||
*/
|
||||
int GetOutputDPI();
|
||||
|
||||
private:
|
||||
EDA_UNITS_T m_unit; // The units for m_outputSize (mm, inch, dpi)
|
||||
double m_outputSize; // The size in m_unit of the output image, depending on
|
||||
// the user settings. Set to the initial image size
|
||||
int m_originalDPI; // The image DPI if specified in file, or 0 if unknown
|
||||
int m_originalSizePixels; // The original image size read from file, in pixels
|
||||
};
|
||||
|
||||
class BM2CMP_FRAME : public BM2CMP_FRAME_BASE
|
||||
{
|
||||
|
||||
public:
|
||||
BM2CMP_FRAME( KIWAY* aKiway, wxWindow* aParent );
|
||||
~BM2CMP_FRAME();
|
||||
|
||||
// overload KIWAY_PLAYER virtual
|
||||
bool OpenProjectFiles( const std::vector<wxString>& aFilenames, int aCtl = 0 ) override;
|
||||
|
||||
private:
|
||||
// Event handlers
|
||||
void OnPaintInit( wxPaintEvent& event ) override;
|
||||
void OnPaintGreyscale( wxPaintEvent& event ) override;
|
||||
void OnPaintBW( wxPaintEvent& event ) override;
|
||||
void OnLoadFile( wxCommandEvent& event ) override;
|
||||
void OnExportToFile( wxCommandEvent& event ) override;
|
||||
void OnExportToClipboard( wxCommandEvent& event ) override;
|
||||
|
||||
///> @return the EDA_UNITS_T from the m_PixelUnit choice
|
||||
EDA_UNITS_T getUnitFromSelection();
|
||||
|
||||
// return a string giving the output size, according to the selected unit
|
||||
wxString FormatOutputSize( double aSize );
|
||||
|
||||
/**
|
||||
* Generate a schematic library which contains one component:
|
||||
* the logo
|
||||
*/
|
||||
void exportEeschemaFormat();
|
||||
|
||||
/**
|
||||
* Generate a module in S expr format
|
||||
*/
|
||||
void exportPcbnewFormat();
|
||||
|
||||
/**
|
||||
* Generate a postscript file
|
||||
*/
|
||||
void exportPostScriptFormat();
|
||||
|
||||
/**
|
||||
* Generate a file suitable to be copied into a page layout
|
||||
* description file (.kicad_wks file
|
||||
*/
|
||||
void OnExportLogo();
|
||||
|
||||
void Binarize( double aThreshold ); // aThreshold = 0.0 (black level) to 1.0 (white level)
|
||||
void OnNegativeClicked( wxCommandEvent& event ) override;
|
||||
void OnThresholdChange( wxScrollEvent& event ) override;
|
||||
|
||||
void OnSizeChangeX( wxCommandEvent& event ) override;
|
||||
void OnSizeChangeY( wxCommandEvent& event ) override;
|
||||
void OnSizeUnitChange( wxCommandEvent& event ) override;
|
||||
|
||||
void ToggleAspectRatioLock( wxCommandEvent& event ) override;
|
||||
|
||||
|
||||
void NegateGreyscaleImage();
|
||||
/**
|
||||
* generate a export data of the current bitmap.
|
||||
* @param aOutput is a string buffer to fill with data
|
||||
* @param aFormat is the format to generate
|
||||
*/
|
||||
void ExportToBuffer( std::string& aOutput, OUTPUT_FMT_ID aFormat );
|
||||
|
||||
void updateImageInfo();
|
||||
void OnFormatChange( wxCommandEvent& event ) override;
|
||||
void exportBitmap( OUTPUT_FMT_ID aFormat );
|
||||
|
||||
void LoadSettings( wxConfigBase* aCfg ) override;
|
||||
void SaveSettings( wxConfigBase* aCfg ) override;
|
||||
|
||||
private:
|
||||
wxImage m_Pict_Image;
|
||||
wxBitmap m_Pict_Bitmap;
|
||||
wxImage m_Greyscale_Image;
|
||||
wxBitmap m_Greyscale_Bitmap;
|
||||
wxImage m_NB_Image;
|
||||
wxBitmap m_BN_Bitmap;
|
||||
IMAGE_SIZE m_outputSizeX;
|
||||
IMAGE_SIZE m_outputSizeY;
|
||||
bool m_Negative;
|
||||
wxString m_BitmapFileName;
|
||||
wxString m_ConvertedFileName;
|
||||
wxSize m_frameSize;
|
||||
wxPoint m_framePos;
|
||||
std::unique_ptr<wxConfigBase> m_config;
|
||||
bool m_exportToClipboard;
|
||||
bool m_AspectRatioLocked;
|
||||
double m_AspectRatio;
|
||||
};
|
||||
#endif// BITMOP2CMP_GUI_H_
|
||||
@@ -1,5 +1,5 @@
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
// C++ code generated with wxFormBuilder (version Jan 17 2019)
|
||||
// C++ code generated with wxFormBuilder (version Dec 1 2018)
|
||||
// http://www.wxformbuilder.org/
|
||||
//
|
||||
// PLEASE DO *NOT* EDIT THIS FILE!
|
||||
@@ -47,9 +47,9 @@ BM2CMP_FRAME_BASE::BM2CMP_FRAME_BASE( wxWindow* parent, wxWindowID id, const wxS
|
||||
fgSizerInfo->SetFlexibleDirection( wxBOTH );
|
||||
fgSizerInfo->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
|
||||
|
||||
m_staticTextSize = new wxStaticText( sbSizerInfo->GetStaticBox(), wxID_ANY, _("Size:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_staticTextSize->Wrap( -1 );
|
||||
fgSizerInfo->Add( m_staticTextSize, 0, wxALIGN_RIGHT|wxALL|wxALIGN_CENTER_VERTICAL, 5 );
|
||||
m_staticTextISize = new wxStaticText( sbSizerInfo->GetStaticBox(), wxID_ANY, _("Bitmap size:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_staticTextISize->Wrap( -1 );
|
||||
fgSizerInfo->Add( m_staticTextISize, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
|
||||
|
||||
m_SizeXValue = new wxStaticText( sbSizerInfo->GetStaticBox(), wxID_ANY, _("0000"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_SizeXValue->Wrap( -1 );
|
||||
@@ -63,25 +63,25 @@ BM2CMP_FRAME_BASE::BM2CMP_FRAME_BASE( wxWindow* parent, wxWindowID id, const wxS
|
||||
m_SizePixUnits->Wrap( -1 );
|
||||
fgSizerInfo->Add( m_SizePixUnits, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
|
||||
|
||||
m_staticTextSize1 = new wxStaticText( sbSizerInfo->GetStaticBox(), wxID_ANY, _("Size:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_staticTextSize1->Wrap( -1 );
|
||||
fgSizerInfo->Add( m_staticTextSize1, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxALIGN_RIGHT, 5 );
|
||||
m_staticTextDPI = new wxStaticText( sbSizerInfo->GetStaticBox(), wxID_ANY, _("Bitmap PPI:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_staticTextDPI->Wrap( -1 );
|
||||
fgSizerInfo->Add( m_staticTextDPI, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
|
||||
|
||||
m_SizeXValue_mm = new wxStaticText( sbSizerInfo->GetStaticBox(), wxID_ANY, _("0000"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_SizeXValue_mm->Wrap( -1 );
|
||||
fgSizerInfo->Add( m_SizeXValue_mm, 0, wxBOTTOM|wxRIGHT, 5 );
|
||||
m_InputXValueDPI = new wxStaticText( sbSizerInfo->GetStaticBox(), wxID_ANY, _("0000"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_InputXValueDPI->Wrap( -1 );
|
||||
fgSizerInfo->Add( m_InputXValueDPI, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT, 5 );
|
||||
|
||||
m_SizeYValue_mm = new wxStaticText( sbSizerInfo->GetStaticBox(), wxID_ANY, _("0000"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_SizeYValue_mm->Wrap( -1 );
|
||||
fgSizerInfo->Add( m_SizeYValue_mm, 0, wxBOTTOM|wxRIGHT, 5 );
|
||||
m_InputYValueDPI = new wxStaticText( sbSizerInfo->GetStaticBox(), wxID_ANY, _("0000"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_InputYValueDPI->Wrap( -1 );
|
||||
fgSizerInfo->Add( m_InputYValueDPI, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT, 5 );
|
||||
|
||||
m_Size_mmxUnits = new wxStaticText( sbSizerInfo->GetStaticBox(), wxID_ANY, _("mm"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_Size_mmxUnits->Wrap( -1 );
|
||||
fgSizerInfo->Add( m_Size_mmxUnits, 0, wxBOTTOM|wxRIGHT, 5 );
|
||||
m_DPIUnit = new wxStaticText( sbSizerInfo->GetStaticBox(), wxID_ANY, _("PPI"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_DPIUnit->Wrap( -1 );
|
||||
fgSizerInfo->Add( m_DPIUnit, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT, 5 );
|
||||
|
||||
m_staticTextBPP = new wxStaticText( sbSizerInfo->GetStaticBox(), wxID_ANY, _("BPP:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_staticTextBPP->Wrap( -1 );
|
||||
fgSizerInfo->Add( m_staticTextBPP, 0, wxALIGN_RIGHT|wxBOTTOM|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
|
||||
fgSizerInfo->Add( m_staticTextBPP, 0, wxBOTTOM|wxLEFT|wxRIGHT, 5 );
|
||||
|
||||
m_BPPValue = new wxStaticText( sbSizerInfo->GetStaticBox(), wxID_ANY, _("0000"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_BPPValue->Wrap( -1 );
|
||||
@@ -92,52 +92,81 @@ BM2CMP_FRAME_BASE::BM2CMP_FRAME_BASE( wxWindow* parent, wxWindowID id, const wxS
|
||||
fgSizerInfo->Add( m_BPPunits, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
|
||||
|
||||
|
||||
fgSizerInfo->Add( 0, 0, 1, wxEXPAND, 5 );
|
||||
|
||||
m_staticTextBPI = new wxStaticText( sbSizerInfo->GetStaticBox(), wxID_ANY, _("Resolution:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_staticTextBPI->Wrap( -1 );
|
||||
fgSizerInfo->Add( m_staticTextBPI, 0, wxALIGN_RIGHT|wxBOTTOM|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
|
||||
|
||||
m_DPIValueX = new wxTextCtrl( sbSizerInfo->GetStaticBox(), wxID_ANY, _("300"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_DPIValueX->SetMinSize( wxSize( 40,-1 ) );
|
||||
|
||||
fgSizerInfo->Add( m_DPIValueX, 0, wxBOTTOM|wxRIGHT, 5 );
|
||||
|
||||
m_DPIValueY = new wxTextCtrl( sbSizerInfo->GetStaticBox(), wxID_ANY, _("300"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_DPIValueY->SetMinSize( wxSize( 40,-1 ) );
|
||||
|
||||
fgSizerInfo->Add( m_DPIValueY, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT, 5 );
|
||||
|
||||
m_DPI_Units = new wxStaticText( sbSizerInfo->GetStaticBox(), wxID_ANY, _("DPI"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_DPI_Units->Wrap( -1 );
|
||||
fgSizerInfo->Add( m_DPI_Units, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT, 5 );
|
||||
fgSizerInfo->Add( 0, 0, 0, 0, 5 );
|
||||
|
||||
|
||||
sbSizerInfo->Add( fgSizerInfo, 0, wxEXPAND|wxBOTTOM, 5 );
|
||||
sbSizerInfo->Add( fgSizerInfo, 0, wxEXPAND, 5 );
|
||||
|
||||
|
||||
brightSizer->Add( sbSizerInfo, 0, wxEXPAND|wxALL, 5 );
|
||||
|
||||
wxStaticBoxSizer* sbSizerImgPrms;
|
||||
sbSizerImgPrms = new wxStaticBoxSizer( new wxStaticBox( m_panelRight, wxID_ANY, _("Output Parameters:") ), wxVERTICAL );
|
||||
|
||||
wxBoxSizer* bSizerLock;
|
||||
bSizerLock = new wxBoxSizer( wxHORIZONTAL );
|
||||
|
||||
m_textLock = new wxStaticText( sbSizerImgPrms->GetStaticBox(), wxID_ANY, _("Lock height/width ratio"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_textLock->Wrap( -1 );
|
||||
bSizerLock->Add( m_textLock, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
|
||||
|
||||
m_AspectRatioLockButton = new wxBitmapButton( sbSizerImgPrms->GetStaticBox(), wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, wxBU_AUTODRAW|0 );
|
||||
bSizerLock->Add( m_AspectRatioLockButton, 0, wxALL, 5 );
|
||||
|
||||
|
||||
sbSizerImgPrms->Add( bSizerLock, 0, wxEXPAND, 5 );
|
||||
|
||||
wxBoxSizer* bSizerRes;
|
||||
bSizerRes = new wxBoxSizer( wxHORIZONTAL );
|
||||
|
||||
m_staticTextOSize = new wxStaticText( sbSizerImgPrms->GetStaticBox(), wxID_ANY, _("Size:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_staticTextOSize->Wrap( -1 );
|
||||
bSizerRes->Add( m_staticTextOSize, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
|
||||
|
||||
m_UnitSizeX = new wxTextCtrl( sbSizerImgPrms->GetStaticBox(), wxID_ANY, _("300"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_UnitSizeX->SetMinSize( wxSize( 60,-1 ) );
|
||||
|
||||
bSizerRes->Add( m_UnitSizeX, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
|
||||
|
||||
m_UnitSizeY = new wxTextCtrl( sbSizerImgPrms->GetStaticBox(), wxID_ANY, _("300"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_UnitSizeY->SetMinSize( wxSize( 60,-1 ) );
|
||||
|
||||
bSizerRes->Add( m_UnitSizeY, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
|
||||
|
||||
wxArrayString m_PixelUnitChoices;
|
||||
m_PixelUnit = new wxChoice( sbSizerImgPrms->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_PixelUnitChoices, 0 );
|
||||
m_PixelUnit->SetSelection( 0 );
|
||||
m_PixelUnit->SetMinSize( wxSize( 80,-1 ) );
|
||||
|
||||
bSizerRes->Add( m_PixelUnit, 0, wxTOP|wxBOTTOM|wxRIGHT|wxALIGN_CENTER_VERTICAL, 5 );
|
||||
|
||||
|
||||
sbSizerImgPrms->Add( bSizerRes, 0, wxEXPAND, 5 );
|
||||
|
||||
|
||||
brightSizer->Add( sbSizerImgPrms, 0, wxEXPAND|wxALL, 5 );
|
||||
|
||||
m_buttonLoad = new wxButton( m_panelRight, wxID_ANY, _("Load Bitmap"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
brightSizer->Add( m_buttonLoad, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
|
||||
|
||||
m_buttonExport = new wxButton( m_panelRight, wxID_ANY, _("Export"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_buttonExport->SetToolTip( _("Create a library file for Eeschema\nThis library contains only one component: logo") );
|
||||
m_buttonExportFile = new wxButton( m_panelRight, wxID_ANY, _("Export to File"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
brightSizer->Add( m_buttonExportFile, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
|
||||
|
||||
brightSizer->Add( m_buttonExport, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
|
||||
m_buttonExportClipboard = new wxButton( m_panelRight, wxID_ANY, _("Export to Clipboard"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
brightSizer->Add( m_buttonExportClipboard, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
|
||||
|
||||
wxString m_radioBoxFormatChoices[] = { _("Eeschema (.lib file)"), _("Pcbnew (.kicad_mod file)"), _("Postscript (.ps file)"), _("Logo for title block (.kicad_wks file)") };
|
||||
int m_radioBoxFormatNChoices = sizeof( m_radioBoxFormatChoices ) / sizeof( wxString );
|
||||
m_radioBoxFormat = new wxRadioBox( m_panelRight, wxID_ANY, _("Format:"), wxDefaultPosition, wxDefaultSize, m_radioBoxFormatNChoices, m_radioBoxFormatChoices, 1, wxRA_SPECIFY_COLS );
|
||||
m_radioBoxFormat->SetSelection( 1 );
|
||||
brightSizer->Add( m_radioBoxFormat, 0, wxEXPAND|wxALL, 5 );
|
||||
wxString m_rbOutputFormatChoices[] = { _("Eeschema (.lib file)"), _("Pcbnew (.kicad_mod file)"), _("Postscript (.ps file)"), _("Logo for title block (.kicad_wks file)") };
|
||||
int m_rbOutputFormatNChoices = sizeof( m_rbOutputFormatChoices ) / sizeof( wxString );
|
||||
m_rbOutputFormat = new wxRadioBox( m_panelRight, wxID_ANY, _("Format:"), wxDefaultPosition, wxDefaultSize, m_rbOutputFormatNChoices, m_rbOutputFormatChoices, 1, wxRA_SPECIFY_COLS );
|
||||
m_rbOutputFormat->SetSelection( 1 );
|
||||
brightSizer->Add( m_rbOutputFormat, 0, wxEXPAND|wxALL, 5 );
|
||||
|
||||
wxStaticBoxSizer* sbSizer2;
|
||||
sbSizer2 = new wxStaticBoxSizer( new wxStaticBox( m_panelRight, wxID_ANY, _("Image Options:") ), wxVERTICAL );
|
||||
|
||||
m_ThresholdText = new wxStaticText( sbSizer2->GetStaticBox(), wxID_ANY, _("Black / White Threshold:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_ThresholdText->Wrap( -1 );
|
||||
sbSizer2->Add( m_ThresholdText, 0, 0, 5 );
|
||||
sbSizer2->Add( m_ThresholdText, 0, wxTOP|wxLEFT, 5 );
|
||||
|
||||
m_sliderThreshold = new wxSlider( sbSizer2->GetStaticBox(), wxID_ANY, 50, 0, 100, wxDefaultPosition, wxDefaultSize, wxSL_HORIZONTAL|wxSL_LABELS );
|
||||
m_sliderThreshold->SetToolTip( _("Adjust the level to convert the greyscale picture to a black and white picture.") );
|
||||
@@ -145,18 +174,18 @@ BM2CMP_FRAME_BASE::BM2CMP_FRAME_BASE( wxWindow* parent, wxWindowID id, const wxS
|
||||
sbSizer2->Add( m_sliderThreshold, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
|
||||
|
||||
m_checkNegative = new wxCheckBox( sbSizer2->GetStaticBox(), wxID_ANY, _("Negative"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
sbSizer2->Add( m_checkNegative, 0, wxBOTTOM|wxTOP, 10 );
|
||||
sbSizer2->Add( m_checkNegative, 0, wxTOP|wxBOTTOM, 10 );
|
||||
|
||||
|
||||
brightSizer->Add( sbSizer2, 0, wxALL|wxEXPAND, 5 );
|
||||
|
||||
wxString m_radio_PCBLayerChoices[] = { _("Front silk screen"), _("Front solder mask"), _("User layer Eco1"), _("User layer Eco2") };
|
||||
int m_radio_PCBLayerNChoices = sizeof( m_radio_PCBLayerChoices ) / sizeof( wxString );
|
||||
m_radio_PCBLayer = new wxRadioBox( m_panelRight, wxID_ANY, _("Board Layer for Outline:"), wxDefaultPosition, wxDefaultSize, m_radio_PCBLayerNChoices, m_radio_PCBLayerChoices, 1, wxRA_SPECIFY_COLS );
|
||||
m_radio_PCBLayer->SetSelection( 3 );
|
||||
m_radio_PCBLayer->SetToolTip( _("Choose the board layer to place the outline.\nThe 2 invisible fields reference and value are always placed on the silk screen layer.") );
|
||||
wxString m_rbPCBLayerChoices[] = { _("Front silk screen"), _("Front solder mask"), _("User layer Eco1"), _("User layer Eco2") };
|
||||
int m_rbPCBLayerNChoices = sizeof( m_rbPCBLayerChoices ) / sizeof( wxString );
|
||||
m_rbPCBLayer = new wxRadioBox( m_panelRight, wxID_ANY, _("Board Layer for Outline:"), wxDefaultPosition, wxDefaultSize, m_rbPCBLayerNChoices, m_rbPCBLayerChoices, 1, wxRA_SPECIFY_COLS );
|
||||
m_rbPCBLayer->SetSelection( 0 );
|
||||
m_rbPCBLayer->SetToolTip( _("Choose the board layer to place the outline.\nThe 2 invisible fields reference and value are always placed on the silk screen layer.") );
|
||||
|
||||
brightSizer->Add( m_radio_PCBLayer, 0, wxALL|wxEXPAND, 5 );
|
||||
brightSizer->Add( m_rbPCBLayer, 0, wxALL|wxEXPAND, 5 );
|
||||
|
||||
|
||||
m_panelRight->SetSizer( brightSizer );
|
||||
@@ -173,13 +202,14 @@ BM2CMP_FRAME_BASE::BM2CMP_FRAME_BASE( wxWindow* parent, wxWindowID id, const wxS
|
||||
m_InitialPicturePanel->Connect( wxEVT_PAINT, wxPaintEventHandler( BM2CMP_FRAME_BASE::OnPaintInit ), NULL, this );
|
||||
m_GreyscalePicturePanel->Connect( wxEVT_PAINT, wxPaintEventHandler( BM2CMP_FRAME_BASE::OnPaintGreyscale ), NULL, this );
|
||||
m_BNPicturePanel->Connect( wxEVT_PAINT, wxPaintEventHandler( BM2CMP_FRAME_BASE::OnPaintBW ), NULL, this );
|
||||
m_DPIValueX->Connect( wxEVT_LEAVE_WINDOW, wxMouseEventHandler( BM2CMP_FRAME_BASE::UpdatePPITextValueX ), NULL, this );
|
||||
m_DPIValueX->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( BM2CMP_FRAME_BASE::OnResolutionChange ), NULL, this );
|
||||
m_DPIValueY->Connect( wxEVT_LEAVE_WINDOW, wxMouseEventHandler( BM2CMP_FRAME_BASE::UpdatePPITextValueY ), NULL, this );
|
||||
m_DPIValueY->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( BM2CMP_FRAME_BASE::OnResolutionChange ), NULL, this );
|
||||
m_AspectRatioLockButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( BM2CMP_FRAME_BASE::ToggleAspectRatioLock ), NULL, this );
|
||||
m_UnitSizeX->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( BM2CMP_FRAME_BASE::OnSizeChangeX ), NULL, this );
|
||||
m_UnitSizeY->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( BM2CMP_FRAME_BASE::OnSizeChangeY ), NULL, this );
|
||||
m_PixelUnit->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( BM2CMP_FRAME_BASE::OnSizeUnitChange ), NULL, this );
|
||||
m_buttonLoad->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( BM2CMP_FRAME_BASE::OnLoadFile ), NULL, this );
|
||||
m_buttonExport->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( BM2CMP_FRAME_BASE::OnExport ), NULL, this );
|
||||
m_radioBoxFormat->Connect( wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler( BM2CMP_FRAME_BASE::OnFormatChange ), NULL, this );
|
||||
m_buttonExportFile->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( BM2CMP_FRAME_BASE::OnExportToFile ), NULL, this );
|
||||
m_buttonExportClipboard->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( BM2CMP_FRAME_BASE::OnExportToClipboard ), NULL, this );
|
||||
m_rbOutputFormat->Connect( wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler( BM2CMP_FRAME_BASE::OnFormatChange ), NULL, this );
|
||||
m_sliderThreshold->Connect( wxEVT_SCROLL_THUMBTRACK, wxScrollEventHandler( BM2CMP_FRAME_BASE::OnThresholdChange ), NULL, this );
|
||||
m_checkNegative->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( BM2CMP_FRAME_BASE::OnNegativeClicked ), NULL, this );
|
||||
}
|
||||
@@ -190,13 +220,14 @@ BM2CMP_FRAME_BASE::~BM2CMP_FRAME_BASE()
|
||||
m_InitialPicturePanel->Disconnect( wxEVT_PAINT, wxPaintEventHandler( BM2CMP_FRAME_BASE::OnPaintInit ), NULL, this );
|
||||
m_GreyscalePicturePanel->Disconnect( wxEVT_PAINT, wxPaintEventHandler( BM2CMP_FRAME_BASE::OnPaintGreyscale ), NULL, this );
|
||||
m_BNPicturePanel->Disconnect( wxEVT_PAINT, wxPaintEventHandler( BM2CMP_FRAME_BASE::OnPaintBW ), NULL, this );
|
||||
m_DPIValueX->Disconnect( wxEVT_LEAVE_WINDOW, wxMouseEventHandler( BM2CMP_FRAME_BASE::UpdatePPITextValueX ), NULL, this );
|
||||
m_DPIValueX->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( BM2CMP_FRAME_BASE::OnResolutionChange ), NULL, this );
|
||||
m_DPIValueY->Disconnect( wxEVT_LEAVE_WINDOW, wxMouseEventHandler( BM2CMP_FRAME_BASE::UpdatePPITextValueY ), NULL, this );
|
||||
m_DPIValueY->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( BM2CMP_FRAME_BASE::OnResolutionChange ), NULL, this );
|
||||
m_AspectRatioLockButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( BM2CMP_FRAME_BASE::ToggleAspectRatioLock ), NULL, this );
|
||||
m_UnitSizeX->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( BM2CMP_FRAME_BASE::OnSizeChangeX ), NULL, this );
|
||||
m_UnitSizeY->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( BM2CMP_FRAME_BASE::OnSizeChangeY ), NULL, this );
|
||||
m_PixelUnit->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( BM2CMP_FRAME_BASE::OnSizeUnitChange ), NULL, this );
|
||||
m_buttonLoad->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( BM2CMP_FRAME_BASE::OnLoadFile ), NULL, this );
|
||||
m_buttonExport->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( BM2CMP_FRAME_BASE::OnExport ), NULL, this );
|
||||
m_radioBoxFormat->Disconnect( wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler( BM2CMP_FRAME_BASE::OnFormatChange ), NULL, this );
|
||||
m_buttonExportFile->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( BM2CMP_FRAME_BASE::OnExportToFile ), NULL, this );
|
||||
m_buttonExportClipboard->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( BM2CMP_FRAME_BASE::OnExportToClipboard ), NULL, this );
|
||||
m_rbOutputFormat->Disconnect( wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler( BM2CMP_FRAME_BASE::OnFormatChange ), NULL, this );
|
||||
m_sliderThreshold->Disconnect( wxEVT_SCROLL_THUMBTRACK, wxScrollEventHandler( BM2CMP_FRAME_BASE::OnThresholdChange ), NULL, this );
|
||||
m_checkNegative->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( BM2CMP_FRAME_BASE::OnNegativeClicked ), NULL, this );
|
||||
|
||||
|
||||
+2087
-1842
File diff suppressed because it is too large
Load Diff
@@ -1,5 +1,5 @@
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
// C++ code generated with wxFormBuilder (version Jan 17 2019)
|
||||
// C++ code generated with wxFormBuilder (version Dec 1 2018)
|
||||
// http://www.wxformbuilder.org/
|
||||
//
|
||||
// PLEASE DO *NOT* EDIT THIS FILE!
|
||||
@@ -22,10 +22,13 @@
|
||||
#include <wx/icon.h>
|
||||
#include <wx/notebook.h>
|
||||
#include <wx/stattext.h>
|
||||
#include <wx/textctrl.h>
|
||||
#include <wx/sizer.h>
|
||||
#include <wx/statbox.h>
|
||||
#include <wx/bmpbuttn.h>
|
||||
#include <wx/button.h>
|
||||
#include <wx/textctrl.h>
|
||||
#include <wx/valtext.h>
|
||||
#include <wx/choice.h>
|
||||
#include <wx/radiobox.h>
|
||||
#include <wx/slider.h>
|
||||
#include <wx/checkbox.h>
|
||||
@@ -49,39 +52,44 @@ class BM2CMP_FRAME_BASE : public KIWAY_PLAYER
|
||||
wxScrolledWindow* m_GreyscalePicturePanel;
|
||||
wxScrolledWindow* m_BNPicturePanel;
|
||||
wxPanel* m_panelRight;
|
||||
wxStaticText* m_staticTextSize;
|
||||
wxStaticText* m_staticTextISize;
|
||||
wxStaticText* m_SizeXValue;
|
||||
wxStaticText* m_SizeYValue;
|
||||
wxStaticText* m_SizePixUnits;
|
||||
wxStaticText* m_staticTextSize1;
|
||||
wxStaticText* m_SizeXValue_mm;
|
||||
wxStaticText* m_SizeYValue_mm;
|
||||
wxStaticText* m_Size_mmxUnits;
|
||||
wxStaticText* m_staticTextDPI;
|
||||
wxStaticText* m_InputXValueDPI;
|
||||
wxStaticText* m_InputYValueDPI;
|
||||
wxStaticText* m_DPIUnit;
|
||||
wxStaticText* m_staticTextBPP;
|
||||
wxStaticText* m_BPPValue;
|
||||
wxStaticText* m_BPPunits;
|
||||
wxStaticText* m_staticTextBPI;
|
||||
wxTextCtrl* m_DPIValueX;
|
||||
wxTextCtrl* m_DPIValueY;
|
||||
wxStaticText* m_DPI_Units;
|
||||
wxStaticText* m_textLock;
|
||||
wxBitmapButton* m_AspectRatioLockButton;
|
||||
wxStaticText* m_staticTextOSize;
|
||||
wxTextCtrl* m_UnitSizeX;
|
||||
wxTextCtrl* m_UnitSizeY;
|
||||
wxChoice* m_PixelUnit;
|
||||
wxButton* m_buttonLoad;
|
||||
wxButton* m_buttonExport;
|
||||
wxRadioBox* m_radioBoxFormat;
|
||||
wxButton* m_buttonExportFile;
|
||||
wxButton* m_buttonExportClipboard;
|
||||
wxRadioBox* m_rbOutputFormat;
|
||||
wxStaticText* m_ThresholdText;
|
||||
wxSlider* m_sliderThreshold;
|
||||
wxCheckBox* m_checkNegative;
|
||||
wxRadioBox* m_radio_PCBLayer;
|
||||
wxRadioBox* m_rbPCBLayer;
|
||||
wxStatusBar* m_statusBar;
|
||||
|
||||
// Virtual event handlers, overide them in your derived class
|
||||
virtual void OnPaintInit( wxPaintEvent& event ) { event.Skip(); }
|
||||
virtual void OnPaintGreyscale( wxPaintEvent& event ) { event.Skip(); }
|
||||
virtual void OnPaintBW( wxPaintEvent& event ) { event.Skip(); }
|
||||
virtual void UpdatePPITextValueX( wxMouseEvent& event ) { event.Skip(); }
|
||||
virtual void OnResolutionChange( wxCommandEvent& event ) { event.Skip(); }
|
||||
virtual void UpdatePPITextValueY( wxMouseEvent& event ) { event.Skip(); }
|
||||
virtual void ToggleAspectRatioLock( wxCommandEvent& event ) { event.Skip(); }
|
||||
virtual void OnSizeChangeX( wxCommandEvent& event ) { event.Skip(); }
|
||||
virtual void OnSizeChangeY( wxCommandEvent& event ) { event.Skip(); }
|
||||
virtual void OnSizeUnitChange( wxCommandEvent& event ) { event.Skip(); }
|
||||
virtual void OnLoadFile( wxCommandEvent& event ) { event.Skip(); }
|
||||
virtual void OnExport( wxCommandEvent& event ) { event.Skip(); }
|
||||
virtual void OnExportToFile( wxCommandEvent& event ) { event.Skip(); }
|
||||
virtual void OnExportToClipboard( wxCommandEvent& event ) { event.Skip(); }
|
||||
virtual void OnFormatChange( wxCommandEvent& event ) { event.Skip(); }
|
||||
virtual void OnThresholdChange( wxScrollEvent& event ) { event.Skip(); }
|
||||
virtual void OnNegativeClicked( wxCommandEvent& event ) { event.Skip(); }
|
||||
@@ -89,7 +97,7 @@ class BM2CMP_FRAME_BASE : public KIWAY_PLAYER
|
||||
|
||||
public:
|
||||
|
||||
BM2CMP_FRAME_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Bitmap to Component Converter"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 733,634 ), long style = wxDEFAULT_FRAME_STYLE|wxRESIZE_BORDER|wxTAB_TRAVERSAL );
|
||||
BM2CMP_FRAME_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Bitmap to Component Converter"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 746,684 ), long style = wxDEFAULT_FRAME_STYLE|wxRESIZE_BORDER|wxTAB_TRAVERSAL );
|
||||
|
||||
~BM2CMP_FRAME_BASE();
|
||||
|
||||
|
||||
@@ -0,0 +1,99 @@
|
||||
/*
|
||||
* This program source code file is part of KICAD, a free EDA CAD application.
|
||||
*
|
||||
* Copyright (C) 1992-2010 jean-pierre.charras
|
||||
* Copyright (C) 1992-2019 Kicad Developers, see AUTHORS.txt for contributors.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version 2
|
||||
* of the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, you may find one here:
|
||||
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
||||
* or you may search the http://www.gnu.org website for the version 2 license,
|
||||
* or you may write to the Free Software Foundation, Inc.,
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
#include "bitmap2cmp_gui.h"
|
||||
#include <kiface_i.h>
|
||||
#include <kiway.h>
|
||||
#include <pgm_base.h>
|
||||
|
||||
|
||||
//-----<KIFACE>-----------------------------------------------------------------
|
||||
|
||||
namespace BMP2CMP {
|
||||
|
||||
static struct IFACE : public KIFACE_I
|
||||
{
|
||||
bool OnKifaceStart( PGM_BASE* aProgram, int aCtlBits ) override;
|
||||
|
||||
wxWindow* CreateWindow( wxWindow* aParent, int aClassId, KIWAY* aKiway, int aCtlBits = 0 ) override
|
||||
{
|
||||
return new BM2CMP_FRAME( aKiway, aParent );
|
||||
}
|
||||
|
||||
/**
|
||||
* Function IfaceOrAddress
|
||||
* return a pointer to the requested object. The safest way to use this
|
||||
* is to retrieve a pointer to a static instance of an interface, similar to
|
||||
* how the KIFACE interface is exported. But if you know what you are doing
|
||||
* use it to retrieve anything you want.
|
||||
*
|
||||
* @param aDataId identifies which object you want the address of.
|
||||
*
|
||||
* @return void* - and must be cast into the know type.
|
||||
*/
|
||||
void* IfaceOrAddress( int aDataId ) override
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
IFACE( const char* aDSOname, KIWAY::FACE_T aType ) :
|
||||
KIFACE_I( aDSOname, aType )
|
||||
{}
|
||||
|
||||
} kiface( "BMP2CMP", KIWAY::FACE_BMP2CMP );
|
||||
|
||||
} // namespace BMP2CMP
|
||||
|
||||
using namespace BMP2CMP;
|
||||
|
||||
static PGM_BASE* process;
|
||||
|
||||
KIFACE_I& Kiface()
|
||||
{
|
||||
return kiface;
|
||||
}
|
||||
|
||||
|
||||
// KIFACE_GETTER's actual spelling is a substitution macro found in kiway.h.
|
||||
// KIFACE_GETTER will not have name mangling due to declaration in kiway.h.
|
||||
KIFACE* KIFACE_GETTER( int* aKIFACEversion, int aKIWAYversion, PGM_BASE* aProgram )
|
||||
{
|
||||
process = (PGM_BASE*) aProgram;
|
||||
return &kiface;
|
||||
}
|
||||
|
||||
|
||||
#if defined(BUILD_KIWAY_DLLS)
|
||||
PGM_BASE& Pgm()
|
||||
{
|
||||
wxASSERT( process ); // KIFACE_GETTER has already been called.
|
||||
return *process;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
bool IFACE::OnKifaceStart( PGM_BASE* aProgram, int aCtlBits )
|
||||
{
|
||||
return start_common( aCtlBits );
|
||||
}
|
||||
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* This program source code file is part of KICAD, a free EDA CAD application.
|
||||
*
|
||||
* Copyright (C) 1992-2013 jean-pierre.charras
|
||||
* Copyright (C) 1992-2019 Kicad Developers, see change_log.txt for contributors.
|
||||
* Copyright (C) 1992-2019 jean-pierre.charras
|
||||
* Copyright (C) 1992-2019 Kicad Developers, see AUTHORS.txt for contributors.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
@@ -24,6 +24,7 @@
|
||||
|
||||
#include <algorithm> // std::max
|
||||
#include <cmath>
|
||||
#include <string>
|
||||
#include <errno.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
@@ -31,13 +32,15 @@
|
||||
#include <vector>
|
||||
|
||||
#include <common.h>
|
||||
#include <geometry/shape_poly_set.h>
|
||||
#include <layers_id_colors_and_visibility.h>
|
||||
|
||||
#include <potracelib.h>
|
||||
|
||||
#include "bitmap2component.h"
|
||||
|
||||
// Unit conversion. Coord unit from potrace is mm
|
||||
#define MM2MICRON 1e3 // For pl_editor
|
||||
#define MM2NANOMETER 1e6 // For pcbew
|
||||
|
||||
/* free a potrace bitmap */
|
||||
static void bm_free( potrace_bitmap_t* bm )
|
||||
@@ -50,61 +53,6 @@ static void bm_free( potrace_bitmap_t* bm )
|
||||
}
|
||||
|
||||
|
||||
/* Helper class to handle useful info to convert a bitmap image to
|
||||
* a polygonal object description
|
||||
*/
|
||||
class BITMAPCONV_INFO
|
||||
{
|
||||
public:
|
||||
enum OUTPUT_FMT_ID m_Format; // File format
|
||||
int m_PixmapWidth;
|
||||
int m_PixmapHeight; // the bitmap size in pixels
|
||||
double m_ScaleX;
|
||||
double m_ScaleY; // the conversion scale
|
||||
potrace_path_t* m_Paths; // the list of paths, from potrace (list of lines and bezier curves)
|
||||
FILE* m_Outfile; // File to create
|
||||
const char * m_CmpName; // The string used as cmp/footprint name
|
||||
|
||||
public:
|
||||
BITMAPCONV_INFO();
|
||||
|
||||
/**
|
||||
* Function CreateOutputFile
|
||||
* Creates the output file specified by m_Outfile,
|
||||
* depending on file format given by m_Format
|
||||
*/
|
||||
void CreateOutputFile( BMP2CMP_MOD_LAYER aModLayer = (BMP2CMP_MOD_LAYER) 0 );
|
||||
|
||||
|
||||
private:
|
||||
/**
|
||||
* Function OuputFileHeader
|
||||
* write to file the header depending on file format
|
||||
*/
|
||||
void OuputFileHeader( const char * aBrdLayerName );
|
||||
|
||||
/**
|
||||
* Function OuputFileEnd
|
||||
* write to file the last strings depending on file format
|
||||
*/
|
||||
void OuputFileEnd();
|
||||
|
||||
|
||||
/**
|
||||
* @return the board layer name depending on the board layer selected
|
||||
* @param aChoice = the choice (MOD_LYR_FSILKS to MOD_LYR_FINAL)
|
||||
*/
|
||||
const char * getBrdLayerName( BMP2CMP_MOD_LAYER aChoice );
|
||||
|
||||
/**
|
||||
* Function OuputOnePolygon
|
||||
* write one polygon to output file.
|
||||
* Polygon coordinates are expected scaled by the polugon extraction function
|
||||
*/
|
||||
void OuputOnePolygon( SHAPE_LINE_CHAIN & aPolygon, const char* aBrdLayerName );
|
||||
|
||||
};
|
||||
|
||||
static void BezierToPolyline( std::vector <potrace_dpoint_t>& aCornersBuffer,
|
||||
potrace_dpoint_t p1,
|
||||
potrace_dpoint_t p2,
|
||||
@@ -112,7 +60,8 @@ static void BezierToPolyline( std::vector <potrace_dpoint_t>& aCornersBuffer,
|
||||
potrace_dpoint_t p4 );
|
||||
|
||||
|
||||
BITMAPCONV_INFO::BITMAPCONV_INFO()
|
||||
BITMAPCONV_INFO::BITMAPCONV_INFO( std::string& aData ):
|
||||
m_Data( aData )
|
||||
{
|
||||
m_Format = POSTSCRIPT_FMT;
|
||||
m_PixmapWidth = 0;
|
||||
@@ -120,12 +69,11 @@ BITMAPCONV_INFO::BITMAPCONV_INFO()
|
||||
m_ScaleX = 1.0;
|
||||
m_ScaleY = 1.0;
|
||||
m_Paths = NULL;
|
||||
m_Outfile = NULL;
|
||||
m_CmpName = "LOGO";
|
||||
}
|
||||
|
||||
|
||||
int bitmap2component( potrace_bitmap_t* aPotrace_bitmap, FILE* aOutfile,
|
||||
int BITMAPCONV_INFO::ConvertBitmap( potrace_bitmap_t* aPotrace_bitmap,
|
||||
OUTPUT_FMT_ID aFormat, int aDpi_X, int aDpi_Y,
|
||||
BMP2CMP_MOD_LAYER aModLayer )
|
||||
{
|
||||
@@ -134,15 +82,23 @@ int bitmap2component( potrace_bitmap_t* aPotrace_bitmap, FILE* aOutfile,
|
||||
|
||||
// set tracing parameters, starting from defaults
|
||||
param = potrace_param_default();
|
||||
|
||||
if( !param )
|
||||
{
|
||||
fprintf( stderr, "Error allocating parameters: %s\n", strerror( errno ) );
|
||||
char msg[256];
|
||||
sprintf( msg, "Error allocating parameters: %s\n", strerror( errno ) );
|
||||
m_errors += msg;
|
||||
return 1;
|
||||
}
|
||||
param->turdsize = 0;
|
||||
|
||||
// For parameters: see http://potrace.sourceforge.net/potracelib.pdf
|
||||
param->turdsize = 0; // area (in pixels) of largest path to be ignored.
|
||||
// Potrace default is 2
|
||||
param->opttolerance = 0.2; // curve optimization tolerance. Potrace default is 0.2
|
||||
|
||||
/* convert the bitmap to curves */
|
||||
st = potrace_trace( param, aPotrace_bitmap );
|
||||
|
||||
if( !st || st->status != POTRACE_STATUS_OK )
|
||||
{
|
||||
if( st )
|
||||
@@ -151,46 +107,45 @@ int bitmap2component( potrace_bitmap_t* aPotrace_bitmap, FILE* aOutfile,
|
||||
}
|
||||
potrace_param_free( param );
|
||||
|
||||
fprintf( stderr, "Error tracing bitmap: %s\n", strerror( errno ) );
|
||||
char msg[256];
|
||||
sprintf( msg, "Error tracing bitmap: %s\n", strerror( errno ) );
|
||||
m_errors += msg;
|
||||
return 1;
|
||||
}
|
||||
|
||||
printf("Step 1\n");
|
||||
BITMAPCONV_INFO info;
|
||||
info.m_PixmapWidth = aPotrace_bitmap->w;
|
||||
info.m_PixmapHeight = aPotrace_bitmap->h; // the bitmap size in pixels
|
||||
info.m_Paths = st->plist;
|
||||
info.m_Outfile = aOutfile;
|
||||
m_PixmapWidth = aPotrace_bitmap->w;
|
||||
m_PixmapHeight = aPotrace_bitmap->h; // the bitmap size in pixels
|
||||
m_Paths = st->plist;
|
||||
|
||||
switch( aFormat )
|
||||
{
|
||||
case KICAD_LOGO:
|
||||
info.m_Format = KICAD_LOGO;
|
||||
info.m_ScaleX = 1e3 * 25.4 / aDpi_X; // the conversion scale from PPI to micro
|
||||
info.m_ScaleY = 1e3 * 25.4 / aDpi_Y; // Y axis is top to bottom
|
||||
info.CreateOutputFile();
|
||||
m_Format = KICAD_LOGO;
|
||||
m_ScaleX = MM2MICRON * 25.4 / aDpi_X; // the conversion scale from PPI to micron
|
||||
m_ScaleY = MM2MICRON * 25.4 / aDpi_Y; // Y axis is top to bottom
|
||||
createOutputData();
|
||||
break;
|
||||
|
||||
case POSTSCRIPT_FMT:
|
||||
info.m_Format = POSTSCRIPT_FMT;
|
||||
info.m_ScaleX = 1.0; // the conversion scale
|
||||
info.m_ScaleY = info.m_ScaleX;
|
||||
m_Format = POSTSCRIPT_FMT;
|
||||
m_ScaleX = 1.0; // the conversion scale
|
||||
m_ScaleY = m_ScaleX;
|
||||
// output vector data, e.g. as a rudimentary EPS file (mainly for tests)
|
||||
info.CreateOutputFile();
|
||||
createOutputData();
|
||||
break;
|
||||
|
||||
case EESCHEMA_FMT:
|
||||
info.m_Format = EESCHEMA_FMT;
|
||||
info.m_ScaleX = 1000.0 / aDpi_X; // the conversion scale from PPI to UI
|
||||
info.m_ScaleY = -1000.0 / aDpi_Y; // Y axis is bottom to Top for components in libs
|
||||
info.CreateOutputFile();
|
||||
m_Format = EESCHEMA_FMT;
|
||||
m_ScaleX = 1000.0 / aDpi_X; // the conversion scale from PPI to UI (mil)
|
||||
m_ScaleY = -1000.0 / aDpi_Y; // Y axis is bottom to Top for components in libs
|
||||
createOutputData();
|
||||
break;
|
||||
|
||||
case PCBNEW_KICAD_MOD:
|
||||
info.m_Format = PCBNEW_KICAD_MOD;
|
||||
info.m_ScaleX = 1e6 * 25.4 / aDpi_X; // the conversion scale from PPI to UI
|
||||
info.m_ScaleY = 1e6 * 25.4 / aDpi_Y; // Y axis is top to bottom in modedit
|
||||
info.CreateOutputFile( aModLayer );
|
||||
m_Format = PCBNEW_KICAD_MOD;
|
||||
m_ScaleX = MM2NANOMETER * 25.4 / aDpi_X; // the conversion scale from PPI to UI
|
||||
m_ScaleY = MM2NANOMETER * 25.4 / aDpi_Y; // Y axis is top to bottom in modedit
|
||||
createOutputData( aModLayer );
|
||||
break;
|
||||
|
||||
default:
|
||||
@@ -205,7 +160,8 @@ int bitmap2component( potrace_bitmap_t* aPotrace_bitmap, FILE* aOutfile,
|
||||
return 0;
|
||||
}
|
||||
|
||||
const char* BITMAPCONV_INFO::getBrdLayerName( BMP2CMP_MOD_LAYER aChoice )
|
||||
|
||||
const char* BITMAPCONV_INFO::getBoardLayerName( BMP2CMP_MOD_LAYER aChoice )
|
||||
{
|
||||
const char * layerName = "F.SilkS";
|
||||
|
||||
@@ -231,87 +187,96 @@ const char* BITMAPCONV_INFO::getBrdLayerName( BMP2CMP_MOD_LAYER aChoice )
|
||||
return layerName;
|
||||
}
|
||||
|
||||
void BITMAPCONV_INFO::OuputFileHeader( const char * aBrdLayerName )
|
||||
|
||||
void BITMAPCONV_INFO::outputDataHeader( const char * aBrdLayerName )
|
||||
{
|
||||
int Ypos = (int) ( m_PixmapHeight / 2 * m_ScaleY );
|
||||
int fieldSize; // fields text size = 60 mils
|
||||
char strbuf[1024];
|
||||
|
||||
switch( m_Format )
|
||||
{
|
||||
case POSTSCRIPT_FMT:
|
||||
/* output vector data, e.g. as a rudimentary EPS file */
|
||||
fprintf( m_Outfile, "%%!PS-Adobe-3.0 EPSF-3.0\n" );
|
||||
fprintf( m_Outfile, "%%%%BoundingBox: 0 0 %d %d\n",
|
||||
m_PixmapWidth, m_PixmapHeight );
|
||||
fprintf( m_Outfile, "gsave\n" );
|
||||
m_Data += "%%!PS-Adobe-3.0 EPSF-3.0\n";
|
||||
sprintf( strbuf, "%%%%BoundingBox: 0 0 %d %d\n", m_PixmapWidth, m_PixmapHeight );
|
||||
m_Data += strbuf;
|
||||
m_Data += "gsave\n";
|
||||
break;
|
||||
|
||||
case PCBNEW_KICAD_MOD:
|
||||
// fields text size = 1.5 mm
|
||||
// fields text thickness = 1.5 / 5 = 0.3mm
|
||||
fprintf( m_Outfile, "(module %s (layer F.Cu)\n (at 0 0)\n",
|
||||
m_CmpName );
|
||||
fprintf( m_Outfile, " (fp_text reference \"G***\" (at 0 0) (layer %s) hide\n"
|
||||
sprintf( strbuf, "(module %s (layer F.Cu)\n (at 0 0)\n", m_CmpName.c_str() );
|
||||
m_Data += strbuf;
|
||||
sprintf( strbuf, " (fp_text reference \"G***\" (at 0 0) (layer %s)\n"
|
||||
" (effects (font (thickness 0.3)))\n )\n", aBrdLayerName );
|
||||
fprintf( m_Outfile, " (fp_text value \"%s\" (at 0.75 0) (layer %s) hide\n"
|
||||
" (effects (font (thickness 0.3)))\n )\n", m_CmpName, aBrdLayerName );
|
||||
m_Data += strbuf;
|
||||
sprintf( strbuf, " (fp_text value \"%s\" (at 0.75 0) (layer %s) hide\n"
|
||||
" (effects (font (thickness 0.3)))\n )\n", m_CmpName.c_str(), aBrdLayerName );
|
||||
m_Data += strbuf;
|
||||
break;
|
||||
|
||||
case KICAD_LOGO:
|
||||
fprintf( m_Outfile, "(polygon (pos 0 0 rbcorner) (rotate 0) (linewidth 0.01)\n" );
|
||||
m_Data += "(polygon (pos 0 0 rbcorner) (rotate 0) (linewidth 0.01)\n";
|
||||
break;
|
||||
|
||||
case EESCHEMA_FMT:
|
||||
fprintf( m_Outfile, "EESchema-LIBRARY Version 2.3\n" );
|
||||
fprintf( m_Outfile, "#\n# %s\n", m_CmpName );
|
||||
fprintf( m_Outfile, "# pixmap size w = %d, h = %d\n#\n",
|
||||
sprintf( strbuf, "EESchema-LIBRARY Version 2.3\n" );
|
||||
m_Data += strbuf;
|
||||
sprintf( strbuf, "#\n# %s\n", m_CmpName.c_str() );
|
||||
m_Data += strbuf;
|
||||
sprintf( strbuf, "# pixmap size w = %d, h = %d\n#\n",
|
||||
m_PixmapWidth, m_PixmapHeight );
|
||||
m_Data += strbuf;
|
||||
|
||||
// print reference and value
|
||||
fieldSize = 60; // fields text size = 60 mils
|
||||
fieldSize = 50; // fields text size = 50 mils
|
||||
Ypos += fieldSize / 2;
|
||||
fprintf( m_Outfile, "DEF %s G 0 40 Y Y 1 F N\n", m_CmpName );
|
||||
fprintf( m_Outfile, "F0 \"#G\" 0 %d %d H I C CNN\n", Ypos, fieldSize );
|
||||
fprintf( m_Outfile, "F1 \"%s\" 0 %d %d H I C CNN\n", m_CmpName, -Ypos, fieldSize );
|
||||
fprintf( m_Outfile, "DRAW\n" );
|
||||
sprintf( strbuf, "DEF %s G 0 40 Y Y 1 F N\n", m_CmpName.c_str() );
|
||||
m_Data += strbuf;
|
||||
sprintf( strbuf, "F0 \"#G\" 0 %d %d H I C CNN\n", Ypos, fieldSize );
|
||||
m_Data += strbuf;
|
||||
sprintf( strbuf, "F1 \"%s\" 0 %d %d H I C CNN\n", m_CmpName.c_str(), -Ypos, fieldSize );
|
||||
m_Data += strbuf;
|
||||
m_Data += "DRAW\n";
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void BITMAPCONV_INFO::OuputFileEnd()
|
||||
void BITMAPCONV_INFO::outputDataEnd()
|
||||
{
|
||||
switch( m_Format )
|
||||
{
|
||||
case POSTSCRIPT_FMT:
|
||||
fprintf( m_Outfile, "grestore\n" );
|
||||
fprintf( m_Outfile, "%%EOF\n" );
|
||||
m_Data += "grestore\n";
|
||||
m_Data += "%%EOF\n";
|
||||
break;
|
||||
|
||||
case PCBNEW_KICAD_MOD:
|
||||
fprintf( m_Outfile, ")\n" );
|
||||
m_Data += ")\n";
|
||||
break;
|
||||
|
||||
case KICAD_LOGO:
|
||||
fprintf( m_Outfile, ")\n" );
|
||||
m_Data += ")\n";
|
||||
break;
|
||||
|
||||
case EESCHEMA_FMT:
|
||||
fprintf( m_Outfile, "ENDDRAW\n" );
|
||||
fprintf( m_Outfile, "ENDDEF\n" );
|
||||
m_Data += "ENDDRAW\n";
|
||||
m_Data += "ENDDEF\n";
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Function OuputOnePolygon
|
||||
* write one polygon to output file.
|
||||
* Polygon coordinates are expected scaled by the polygon extraction function
|
||||
*/
|
||||
void BITMAPCONV_INFO::OuputOnePolygon( SHAPE_LINE_CHAIN & aPolygon, const char* aBrdLayerName )
|
||||
|
||||
void BITMAPCONV_INFO::outputOnePolygon( SHAPE_LINE_CHAIN & aPolygon, const char* aBrdLayerName )
|
||||
{
|
||||
// write one polygon to output file.
|
||||
// coordinates are expected in target unit.
|
||||
int ii, jj;
|
||||
VECTOR2I currpoint;
|
||||
char strbuf[1024];
|
||||
|
||||
int offsetX = (int)( m_PixmapWidth / 2 * m_ScaleX );
|
||||
int offsetY = (int)( m_PixmapHeight / 2 * m_ScaleY );
|
||||
@@ -322,95 +287,106 @@ void BITMAPCONV_INFO::OuputOnePolygon( SHAPE_LINE_CHAIN & aPolygon, const char*
|
||||
{
|
||||
case POSTSCRIPT_FMT:
|
||||
offsetY = (int)( m_PixmapHeight * m_ScaleY );
|
||||
fprintf( m_Outfile, "newpath\n%d %d moveto\n",
|
||||
sprintf( strbuf, "newpath\n%d %d moveto\n",
|
||||
startpoint.x, offsetY - startpoint.y );
|
||||
m_Data += strbuf;
|
||||
jj = 0;
|
||||
for( ii = 1; ii < aPolygon.PointCount(); ii++ )
|
||||
{
|
||||
currpoint = aPolygon.CPoint( ii );
|
||||
fprintf( m_Outfile, " %d %d lineto",
|
||||
sprintf( strbuf, " %d %d lineto",
|
||||
currpoint.x, offsetY - currpoint.y );
|
||||
m_Data += strbuf;
|
||||
|
||||
if( jj++ > 6 )
|
||||
{
|
||||
jj = 0;
|
||||
fprintf( m_Outfile, ("\n") );
|
||||
m_Data += "\n";
|
||||
}
|
||||
}
|
||||
|
||||
fprintf( m_Outfile, "\nclosepath fill\n" );
|
||||
m_Data += "\nclosepath fill\n";
|
||||
break;
|
||||
|
||||
case PCBNEW_KICAD_MOD:
|
||||
{
|
||||
double width = 0.01; // outline thickness in mm
|
||||
fprintf( m_Outfile, " (fp_poly (pts" );
|
||||
double width = 0.0; // outline thickness in mm: no thickness
|
||||
m_Data += " (fp_poly (pts";
|
||||
|
||||
jj = 0;
|
||||
for( ii = 0; ii < aPolygon.PointCount(); ii++ )
|
||||
{
|
||||
currpoint = aPolygon.CPoint( ii );
|
||||
fprintf( m_Outfile, " (xy %f %f)",
|
||||
( currpoint.x - offsetX ) / 1e6,
|
||||
( currpoint.y - offsetY ) / 1e6 );
|
||||
sprintf( strbuf, " (xy %f %f)",
|
||||
( currpoint.x - offsetX ) / MM2NANOMETER,
|
||||
( currpoint.y - offsetY ) / MM2NANOMETER );
|
||||
m_Data += strbuf;
|
||||
|
||||
if( jj++ > 6 )
|
||||
{
|
||||
jj = 0;
|
||||
fprintf( m_Outfile, ("\n ") );
|
||||
m_Data += "\n ";
|
||||
}
|
||||
}
|
||||
// Close polygon
|
||||
fprintf( m_Outfile, " (xy %f %f) )",
|
||||
( startpoint.x - offsetX ) / 1e6, ( startpoint.y - offsetY ) / 1e6 );
|
||||
|
||||
fprintf( m_Outfile, "(layer %s) (width %f)\n )\n", aBrdLayerName, width );
|
||||
|
||||
// No need to close polygon
|
||||
m_Data += " )";
|
||||
sprintf( strbuf, "(layer %s) (width %f)\n )\n", aBrdLayerName, width );
|
||||
m_Data += strbuf;
|
||||
}
|
||||
break;
|
||||
|
||||
case KICAD_LOGO:
|
||||
fprintf( m_Outfile, " (pts" );
|
||||
m_Data += " (pts";
|
||||
// Internal units = micron, file unit = mm
|
||||
jj = 0;
|
||||
for( ii = 0; ii < aPolygon.PointCount(); ii++ )
|
||||
{
|
||||
currpoint = aPolygon.CPoint( ii );
|
||||
fprintf( m_Outfile, " (xy %.3f %.3f)",
|
||||
( currpoint.x - offsetX ) / 1e3,
|
||||
( currpoint.y - offsetY ) / 1e3 );
|
||||
sprintf( strbuf, " (xy %.3f %.3f)",
|
||||
( currpoint.x - offsetX ) / MM2MICRON,
|
||||
( currpoint.y - offsetY ) / MM2MICRON );
|
||||
m_Data += strbuf;
|
||||
|
||||
if( jj++ > 4 )
|
||||
{
|
||||
jj = 0;
|
||||
fprintf( m_Outfile, ("\n ") );
|
||||
m_Data += "\n ";
|
||||
}
|
||||
}
|
||||
// Close polygon
|
||||
fprintf( m_Outfile, " (xy %.3f %.3f) )\n",
|
||||
( startpoint.x - offsetX ) / 1e3, ( startpoint.y - offsetY ) / 1e3 );
|
||||
sprintf( strbuf, " (xy %.3f %.3f) )\n",
|
||||
( startpoint.x - offsetX ) / MM2MICRON,
|
||||
( startpoint.y - offsetY ) / MM2MICRON );
|
||||
m_Data += strbuf;
|
||||
break;
|
||||
|
||||
case EESCHEMA_FMT:
|
||||
fprintf( m_Outfile, "P %d 0 0 1", (int) aPolygon.PointCount() + 1 );
|
||||
// The polygon outline thickness is fixed here to 1 mil, the minimal
|
||||
// value in Eeschema (0 means use default thickness for graphics)
|
||||
#define EE_LINE_THICKNESS 1
|
||||
sprintf( strbuf, "P %d 0 0 %d",
|
||||
(int) aPolygon.PointCount() + 1, EE_LINE_THICKNESS );
|
||||
m_Data += strbuf;
|
||||
for( ii = 0; ii < aPolygon.PointCount(); ii++ )
|
||||
{
|
||||
currpoint = aPolygon.CPoint( ii );
|
||||
fprintf( m_Outfile, " %d %d",
|
||||
sprintf( strbuf, " %d %d",
|
||||
currpoint.x - offsetX, currpoint.y - offsetY );
|
||||
m_Data += strbuf;
|
||||
}
|
||||
|
||||
// Close polygon
|
||||
fprintf( m_Outfile, " %d %d",
|
||||
sprintf( strbuf, " %d %d",
|
||||
startpoint.x - offsetX, startpoint.y - offsetY );
|
||||
m_Data += strbuf;
|
||||
|
||||
fprintf( m_Outfile, " F\n" );
|
||||
m_Data += " F\n";
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void BITMAPCONV_INFO::CreateOutputFile( BMP2CMP_MOD_LAYER aModLayer )
|
||||
void BITMAPCONV_INFO::createOutputData( BMP2CMP_MOD_LAYER aModLayer )
|
||||
{
|
||||
std::vector <potrace_dpoint_t> cornersBuffer;
|
||||
|
||||
@@ -427,7 +403,7 @@ void BITMAPCONV_INFO::CreateOutputFile( BMP2CMP_MOD_LAYER aModLayer )
|
||||
// The layer name has meaning only for .kicad_mod files.
|
||||
// For these files the header creates 2 invisible texts: value and ref
|
||||
// (needed but not usefull) on silk screen layer
|
||||
OuputFileHeader( getBrdLayerName( MOD_LYR_FSILKS ) );
|
||||
outputDataHeader( getBoardLayerName( MOD_LYR_FSILKS ) );
|
||||
|
||||
bool main_outline = true;
|
||||
|
||||
@@ -435,8 +411,12 @@ void BITMAPCONV_INFO::CreateOutputFile( BMP2CMP_MOD_LAYER aModLayer )
|
||||
* Bezier curves are approximated by a polyline
|
||||
*/
|
||||
potrace_path_t* paths = m_Paths; // the list of paths
|
||||
|
||||
if(!m_Paths)
|
||||
printf("NULL Paths!\n");
|
||||
{
|
||||
m_errors += "No path in black and white image: no outline created\n";
|
||||
}
|
||||
|
||||
while( paths != NULL )
|
||||
{
|
||||
int cnt = paths->curve.n;
|
||||
@@ -490,17 +470,21 @@ void BITMAPCONV_INFO::CreateOutputFile( BMP2CMP_MOD_LAYER aModLayer )
|
||||
*/
|
||||
if( paths->next == NULL || paths->next->sign == '+' )
|
||||
{
|
||||
// Substract holes to main polygon:
|
||||
polyset_areas.Simplify( SHAPE_POLY_SET::PM_FAST );
|
||||
polyset_holes.Simplify( SHAPE_POLY_SET::PM_FAST );
|
||||
polyset_areas.BooleanSubtract( polyset_holes, SHAPE_POLY_SET::PM_FAST );
|
||||
polyset_areas.Simplify( SHAPE_POLY_SET::PM_STRICTLY_SIMPLE );
|
||||
polyset_holes.Simplify( SHAPE_POLY_SET::PM_STRICTLY_SIMPLE );
|
||||
polyset_areas.BooleanSubtract( polyset_holes, SHAPE_POLY_SET::PM_STRICTLY_SIMPLE );
|
||||
|
||||
// Ensure there are no self intersecting polygons
|
||||
polyset_areas.NormalizeAreaOutlines();
|
||||
|
||||
// Convert polygon with holes to a unique polygon
|
||||
polyset_areas.Fracture( SHAPE_POLY_SET::PM_STRICTLY_SIMPLE );
|
||||
|
||||
// Output current resulting polygon(s)
|
||||
for( int ii = 0; ii < polyset_areas.OutlineCount(); ii++ )
|
||||
{
|
||||
SHAPE_LINE_CHAIN& poly = polyset_areas.Outline( ii );
|
||||
OuputOnePolygon(poly, getBrdLayerName( aModLayer ) );
|
||||
outputOnePolygon( poly, getBoardLayerName( aModLayer ));
|
||||
}
|
||||
|
||||
polyset_areas.RemoveAllContours();
|
||||
@@ -510,7 +494,7 @@ void BITMAPCONV_INFO::CreateOutputFile( BMP2CMP_MOD_LAYER aModLayer )
|
||||
paths = paths->next;
|
||||
}
|
||||
|
||||
OuputFileEnd();
|
||||
outputDataEnd();
|
||||
}
|
||||
|
||||
// a helper function to calculate a square value
|
||||
|
||||
@@ -24,6 +24,9 @@
|
||||
#ifndef BITMAP2COMPONENT_H
|
||||
#define BITMAP2COMPONENT_H
|
||||
|
||||
#include <geometry/shape_poly_set.h>
|
||||
#include <potracelib.h>
|
||||
|
||||
// for consistency this enum should conform to the
|
||||
// indices in m_radioBoxFormat from bitmap2cmp_gui.cpp
|
||||
enum OUTPUT_FMT_ID
|
||||
@@ -44,4 +47,67 @@ enum BMP2CMP_MOD_LAYER
|
||||
MOD_LYR_FINAL = MOD_LYR_ECO2
|
||||
};
|
||||
|
||||
|
||||
/* Helper class to handle useful info to convert a bitmap image to
|
||||
* a polygonal object description
|
||||
*/
|
||||
class BITMAPCONV_INFO
|
||||
{
|
||||
private:
|
||||
enum OUTPUT_FMT_ID m_Format; // File format
|
||||
int m_PixmapWidth;
|
||||
int m_PixmapHeight; // the bitmap size in pixels
|
||||
double m_ScaleX;
|
||||
double m_ScaleY; // the conversion scale
|
||||
potrace_path_t* m_Paths; // the list of paths, from potrace (list of lines and bezier curves)
|
||||
std::string m_CmpName; // The string used as cmp/footprint name
|
||||
std::string& m_Data; // the buffer containing the conversion
|
||||
std::string m_errors; // a buffer to return error messages
|
||||
|
||||
public:
|
||||
BITMAPCONV_INFO( std::string& aData );
|
||||
|
||||
/**
|
||||
* Run the conversion of the bitmap
|
||||
*/
|
||||
int ConvertBitmap( potrace_bitmap_t* aPotrace_bitmap,
|
||||
OUTPUT_FMT_ID aFormat, int aDpi_X, int aDpi_Y,
|
||||
BMP2CMP_MOD_LAYER aModLayer );
|
||||
|
||||
std::string& GetErrorMessages() {return m_errors; }
|
||||
|
||||
private:
|
||||
/**
|
||||
* Creates the data specified by m_Format
|
||||
*/
|
||||
void createOutputData( BMP2CMP_MOD_LAYER aModLayer = (BMP2CMP_MOD_LAYER) 0 );
|
||||
|
||||
/**
|
||||
* Function outputDataHeader
|
||||
* write to file the header depending on file format
|
||||
*/
|
||||
void outputDataHeader( const char * aBrdLayerName );
|
||||
|
||||
/**
|
||||
* Function outputDataEnd
|
||||
* write to file the last strings depending on file format
|
||||
*/
|
||||
void outputDataEnd();
|
||||
|
||||
|
||||
/**
|
||||
* @return the board layer name depending on the board layer selected
|
||||
* @param aChoice = the choice (MOD_LYR_FSILKS to MOD_LYR_FINAL)
|
||||
*/
|
||||
const char * getBoardLayerName( BMP2CMP_MOD_LAYER aChoice );
|
||||
|
||||
/**
|
||||
* Function outputOnePolygon
|
||||
* write one polygon to output file.
|
||||
* Polygon coordinates are expected scaled by the polygon extraction function
|
||||
*/
|
||||
void outputOnePolygon( SHAPE_LINE_CHAIN & aPolygon, const char* aBrdLayerName );
|
||||
|
||||
};
|
||||
|
||||
#endif // BITMAP2COMPONENT_H
|
||||
|
||||
@@ -131,7 +131,6 @@ set( BMAPS_MID
|
||||
add_line_label
|
||||
add_line
|
||||
add_pcb_target
|
||||
add_polygon
|
||||
add_power
|
||||
add_rectangle
|
||||
add_tracks
|
||||
@@ -164,14 +163,15 @@ set( BMAPS_MID
|
||||
axis3d
|
||||
bitmap2component
|
||||
bom
|
||||
book
|
||||
break_bus
|
||||
break_line
|
||||
browse_files
|
||||
bus_definition_tool
|
||||
calculator
|
||||
cancel
|
||||
change_entry_orient
|
||||
contrast_mode
|
||||
curved_ratsnest
|
||||
create_cmp_file
|
||||
checked_ok
|
||||
color_materials
|
||||
@@ -186,25 +186,10 @@ set( BMAPS_MID
|
||||
custom_pad_to_primitives
|
||||
cut
|
||||
cvpcb
|
||||
dashline
|
||||
datasheet
|
||||
delete_association
|
||||
delete_bus
|
||||
delete_circle
|
||||
delete_connection
|
||||
delete_dimension
|
||||
delete_field
|
||||
delete_gerber
|
||||
delete_glabel
|
||||
delete_line
|
||||
delete_module
|
||||
delete_net
|
||||
delete_node
|
||||
delete_pad
|
||||
delete_polygon
|
||||
delete_rectangle
|
||||
delete_sheet
|
||||
delete_track
|
||||
delete
|
||||
directory
|
||||
directory_browser
|
||||
@@ -213,13 +198,10 @@ set( BMAPS_MID
|
||||
distribute_vertical
|
||||
down
|
||||
drag
|
||||
drag_outline_segment
|
||||
drag_pad
|
||||
drag_segment_withslope
|
||||
drc_off
|
||||
drc
|
||||
duplicate
|
||||
edges_sketch
|
||||
edit_comp_footprint
|
||||
edit_comp_ref
|
||||
edit_comp_value
|
||||
@@ -263,9 +245,6 @@ set( BMAPS_MID
|
||||
gerbview_clear_layers
|
||||
general_deletions
|
||||
general_ratsnest
|
||||
glabel2label
|
||||
glabel2text
|
||||
gl_change
|
||||
go_down
|
||||
go_up
|
||||
green
|
||||
@@ -278,8 +257,6 @@ set( BMAPS_MID
|
||||
hierarchy_nav
|
||||
highlight_remove
|
||||
hotkeys
|
||||
hotkeys_import
|
||||
hotkeys_export
|
||||
html
|
||||
icon
|
||||
icon_cvpcb_small
|
||||
@@ -293,14 +270,12 @@ set( BMAPS_MID
|
||||
import_module
|
||||
import_part
|
||||
import_project
|
||||
import_setup
|
||||
import_vector
|
||||
import
|
||||
info
|
||||
insert_module_board
|
||||
invisible_text
|
||||
kicad_icon_small
|
||||
label2glabel
|
||||
label2text
|
||||
label
|
||||
lang_ca
|
||||
lang_bg
|
||||
@@ -340,7 +315,6 @@ set( BMAPS_MID
|
||||
list_nets
|
||||
load_gerber
|
||||
load_module_board
|
||||
load_module_lib
|
||||
local_ratsnest
|
||||
lock_unlock
|
||||
locked
|
||||
@@ -351,7 +325,6 @@ set( BMAPS_MID
|
||||
mirror_v
|
||||
mode_module
|
||||
mode_track
|
||||
modratsnest
|
||||
module_check
|
||||
module_editor
|
||||
module_wizard
|
||||
@@ -361,18 +334,11 @@ set( BMAPS_MID
|
||||
module_pin_filtered_list
|
||||
module_library_list
|
||||
module_name_filtered_list
|
||||
module_ratsnest
|
||||
module
|
||||
modview_icon
|
||||
morgan1
|
||||
morgan2
|
||||
move_glabel
|
||||
move_exactly
|
||||
move_pad
|
||||
move_polygon
|
||||
move_rectangle
|
||||
move_sheet
|
||||
move_target
|
||||
move
|
||||
move_relative
|
||||
mw_add_gap
|
||||
@@ -399,34 +365,15 @@ set( BMAPS_MID
|
||||
noconn
|
||||
normal
|
||||
online_help
|
||||
open_brd_file
|
||||
open_library
|
||||
open_page_layout
|
||||
open_project
|
||||
open_document
|
||||
options_3drender
|
||||
options_all_tracks_and_vias
|
||||
options_all_tracks
|
||||
options_all_vias
|
||||
options_arc
|
||||
options_board
|
||||
options_circle
|
||||
options_generic
|
||||
options_module
|
||||
options_pad
|
||||
options_pinsheet
|
||||
options_pin
|
||||
options_rectangle
|
||||
options_segment
|
||||
options_tracks
|
||||
options_track
|
||||
options_vias
|
||||
opt_show_polygon
|
||||
orient
|
||||
ortho
|
||||
pad_sketch
|
||||
pad
|
||||
pad_dimensions
|
||||
pad_enumerate
|
||||
pads_mask_layers
|
||||
path
|
||||
@@ -440,18 +387,11 @@ set( BMAPS_MID
|
||||
pcbcalculator
|
||||
pcb_offset
|
||||
pin2pin
|
||||
pin_name_to
|
||||
pin_number_to
|
||||
pin_size_to
|
||||
pin_show_etype
|
||||
pin_table
|
||||
pin_to
|
||||
pin
|
||||
plot
|
||||
plot_dxf
|
||||
plot_hpg
|
||||
plot_pdf
|
||||
plot_ps
|
||||
plot_svg
|
||||
plus
|
||||
polar_coord
|
||||
@@ -498,10 +438,6 @@ set( BMAPS_MID
|
||||
rotate_pos_z
|
||||
save_as
|
||||
save_fp_to_board
|
||||
save_gerber
|
||||
save_library
|
||||
save_project
|
||||
save_setup
|
||||
save
|
||||
select_grid
|
||||
select_layer_pair
|
||||
@@ -545,7 +481,6 @@ set( BMAPS_MID
|
||||
track_locked
|
||||
track_sketch
|
||||
track_unlocked
|
||||
transistor
|
||||
undelete
|
||||
undo
|
||||
unit_inch
|
||||
@@ -555,7 +490,6 @@ set( BMAPS_MID
|
||||
unzip
|
||||
up
|
||||
update_fields
|
||||
update_module_board
|
||||
update_pcb_from_sch
|
||||
use_3D_copper_thickness
|
||||
via
|
||||
@@ -563,14 +497,9 @@ set( BMAPS_MID
|
||||
via_microvia
|
||||
via_sketch
|
||||
warning
|
||||
web_support
|
||||
width_net
|
||||
width_segment
|
||||
width_track_via
|
||||
width_track
|
||||
width_vias
|
||||
wizard_add_fplib_small
|
||||
zip_tool
|
||||
zip
|
||||
zone_duplicate
|
||||
zone_unfill
|
||||
|
||||
@@ -8,19 +8,13 @@
|
||||
static const unsigned char png[] = {
|
||||
0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52,
|
||||
0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x08, 0x06, 0x00, 0x00, 0x00, 0x1f, 0xf3, 0xff,
|
||||
0x61, 0x00, 0x00, 0x00, 0x04, 0x73, 0x42, 0x49, 0x54, 0x08, 0x08, 0x08, 0x08, 0x7c, 0x08, 0x64,
|
||||
0x88, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x0e, 0xc4, 0x00, 0x00, 0x0e,
|
||||
0xc4, 0x01, 0x95, 0x2b, 0x0e, 0x1b, 0x00, 0x00, 0x00, 0x19, 0x74, 0x45, 0x58, 0x74, 0x53, 0x6f,
|
||||
0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x00, 0x77, 0x77, 0x77, 0x2e, 0x69, 0x6e, 0x6b, 0x73, 0x63,
|
||||
0x61, 0x70, 0x65, 0x2e, 0x6f, 0x72, 0x67, 0x9b, 0xee, 0x3c, 0x1a, 0x00, 0x00, 0x00, 0x69, 0x49,
|
||||
0x44, 0x41, 0x54, 0x38, 0x8d, 0xed, 0xd2, 0x31, 0x0e, 0x82, 0x40, 0x14, 0x06, 0xe1, 0x4f, 0x0e,
|
||||
0x20, 0x94, 0x9c, 0xd5, 0xda, 0x78, 0x16, 0x1a, 0xe8, 0x0d, 0xd9, 0xc4, 0xd8, 0xca, 0x55, 0xb8,
|
||||
0x82, 0x6b, 0x01, 0x41, 0xb4, 0xda, 0xd5, 0x86, 0x82, 0x49, 0xfe, 0xe2, 0x15, 0x33, 0xd5, 0x63,
|
||||
0x2b, 0x5c, 0x10, 0x10, 0x31, 0xe2, 0x81, 0x3a, 0x27, 0x70, 0xc7, 0x71, 0x75, 0x9f, 0xd0, 0xe4,
|
||||
0x04, 0x62, 0xe6, 0x02, 0xce, 0xdf, 0x81, 0x1c, 0x4a, 0xdc, 0xfe, 0x09, 0x2c, 0x4e, 0xf1, 0x83,
|
||||
0xf8, 0xc1, 0x1e, 0x78, 0x07, 0x7a, 0xd3, 0x23, 0x1d, 0x12, 0x57, 0xe1, 0xba, 0x0e, 0x0c, 0xe8,
|
||||
0xf0, 0x4c, 0x5c, 0x3b, 0x3b, 0x1b, 0xe0, 0x05, 0x48, 0x07, 0x25, 0x8f, 0x26, 0x9b, 0x81, 0x8e,
|
||||
0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82,
|
||||
0x61, 0x00, 0x00, 0x00, 0x52, 0x49, 0x44, 0x41, 0x54, 0x38, 0xcb, 0x63, 0x60, 0x18, 0x2c, 0xa0,
|
||||
0x0d, 0x88, 0xf7, 0x02, 0xf1, 0x7f, 0x20, 0x7e, 0x0b, 0xc4, 0xa7, 0x81, 0x58, 0x82, 0x14, 0x03,
|
||||
0x0e, 0x01, 0x31, 0x1f, 0x12, 0xbf, 0x0a, 0x88, 0x57, 0x90, 0x62, 0xc0, 0x7f, 0x12, 0x31, 0xc8,
|
||||
0xb5, 0x2d, 0xe8, 0x06, 0x90, 0x02, 0xf8, 0x81, 0xf8, 0x00, 0x25, 0x06, 0x60, 0xe8, 0x19, 0x35,
|
||||
0x80, 0x0a, 0x06, 0xec, 0x82, 0x26, 0x24, 0x46, 0x22, 0xb1, 0x00, 0x10, 0xef, 0x40, 0x4f, 0xca,
|
||||
0x7b, 0x28, 0x49, 0x48, 0x03, 0x07, 0x00, 0x53, 0x4f, 0x2f, 0x0f, 0x29, 0x5f, 0x3d, 0xf7, 0x00,
|
||||
0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82,
|
||||
};
|
||||
|
||||
const BITMAP_OPAQUE folder_xpm[1] = {{ png, sizeof( png ), "folder_xpm" }};
|
||||
|
||||
@@ -1,51 +0,0 @@
|
||||
|
||||
/* Do not modify this file, it was automatically generated by the
|
||||
* PNG2cpp CMake script, using a *.png file as input.
|
||||
*/
|
||||
|
||||
#include <bitmaps_png/bitmaps_list.h>
|
||||
|
||||
static const unsigned char png[] = {
|
||||
0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52,
|
||||
0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1a, 0x08, 0x06, 0x00, 0x00, 0x00, 0xa9, 0x4a, 0x4c,
|
||||
0xce, 0x00, 0x00, 0x02, 0x1d, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0x63, 0x60, 0xa0, 0x27, 0xc8,
|
||||
0xcd, 0xcd, 0x65, 0x4f, 0xc9, 0x4e, 0x9d, 0x94, 0x92, 0x95, 0xf2, 0x01, 0x84, 0x93, 0x73, 0x52,
|
||||
0x27, 0x80, 0xc4, 0xa8, 0x6e, 0x11, 0xc8, 0x92, 0xb0, 0xba, 0xa8, 0x6f, 0x86, 0x3b, 0x1c, 0xff,
|
||||
0x1b, 0xec, 0x70, 0xf8, 0x1f, 0x56, 0x17, 0xf3, 0x15, 0x64, 0x19, 0x31, 0x7a, 0x53, 0x53, 0x53,
|
||||
0xdd, 0xd3, 0xd2, 0xd2, 0x0a, 0x81, 0xd8, 0x8d, 0xb0, 0x45, 0x40, 0x5f, 0x80, 0x2c, 0xd0, 0x3a,
|
||||
0x64, 0x03, 0xc6, 0x20, 0x0b, 0xe3, 0xd3, 0x32, 0x7f, 0x33, 0x30, 0x9c, 0x98, 0xc7, 0xc0, 0x70,
|
||||
0xbc, 0x01, 0x88, 0x53, 0x80, 0xd8, 0x93, 0x81, 0xe1, 0x94, 0x36, 0x03, 0xc3, 0x19, 0x7e, 0x98,
|
||||
0xbe, 0xa4, 0xec, 0x94, 0xcd, 0xb1, 0x25, 0x09, 0x9f, 0xbc, 0xfb, 0x82, 0x7f, 0xc5, 0x16, 0xc7,
|
||||
0x7f, 0x4a, 0xca, 0x4e, 0xda, 0x48, 0xb2, 0x45, 0x71, 0x29, 0xd9, 0xff, 0x81, 0x16, 0xe1, 0xc2,
|
||||
0x9f, 0x15, 0x14, 0x56, 0x3c, 0x8c, 0x2c, 0x48, 0xf9, 0xad, 0x7d, 0xd0, 0x16, 0xac, 0x47, 0xfb,
|
||||
0x80, 0xed, 0xff, 0x38, 0xa0, 0xa5, 0xe9, 0xe9, 0xe9, 0xae, 0x38, 0x2d, 0x02, 0x05, 0x53, 0x78,
|
||||
0x6d, 0xf4, 0x37, 0x90, 0x65, 0x20, 0x4b, 0xc2, 0x6a, 0x62, 0xbe, 0x07, 0x84, 0x95, 0xad, 0x87,
|
||||
0xfa, 0xa4, 0x01, 0xe2, 0xb3, 0x13, 0x3b, 0x81, 0xf8, 0x2a, 0xc8, 0x12, 0x90, 0x65, 0x7a, 0x7a,
|
||||
0x73, 0xfe, 0x7b, 0x75, 0x87, 0xc1, 0x1d, 0x07, 0xc2, 0x3e, 0xbd, 0xc1, 0x3f, 0x81, 0x16, 0x15,
|
||||
0xe1, 0x4d, 0x0c, 0x20, 0xcb, 0x52, 0xb2, 0x53, 0xde, 0x83, 0x70, 0x72, 0x56, 0x6a, 0x5f, 0x68,
|
||||
0x68, 0x28, 0x1b, 0xee, 0x30, 0x38, 0xc3, 0xef, 0xee, 0xde, 0x96, 0x1a, 0x5d, 0x98, 0xf0, 0x0d,
|
||||
0xe4, 0x13, 0x64, 0x1f, 0x01, 0xe3, 0xcc, 0x85, 0xea, 0x89, 0x08, 0x14, 0x27, 0x20, 0xc3, 0xbd,
|
||||
0x7b, 0xc2, 0xfe, 0x45, 0xe6, 0xa5, 0xfd, 0x8f, 0x88, 0xcf, 0x3f, 0x46, 0xb3, 0xac, 0x01, 0x4a,
|
||||
0x6d, 0xf6, 0xf6, 0xdd, 0xdb, 0xa4, 0xa5, 0xd7, 0x81, 0xe2, 0x6e, 0x31, 0x8d, 0x73, 0xe2, 0x51,
|
||||
0x79, 0xa0, 0x25, 0xff, 0x80, 0xf8, 0x0b, 0x03, 0xc3, 0x7e, 0x1e, 0x1a, 0x5b, 0x76, 0xe2, 0x30,
|
||||
0x34, 0x45, 0xc6, 0xd2, 0xd8, 0xa2, 0x93, 0x19, 0x50, 0x8b, 0x76, 0xd0, 0xd8, 0xa2, 0xc3, 0x82,
|
||||
0x40, 0xcb, 0x7e, 0x00, 0x2d, 0xfa, 0x03, 0xcc, 0xd8, 0x12, 0xb4, 0x0e, 0xbe, 0xf5, 0x10, 0x5f,
|
||||
0x9d, 0x2c, 0xa4, 0xb5, 0x45, 0xc1, 0xd0, 0xe0, 0x3b, 0x43, 0x53, 0x6b, 0xac, 0xad, 0xe7, 0xf2,
|
||||
0x5a, 0xdb, 0xf7, 0x7e, 0x8f, 0x4b, 0xc9, 0xfa, 0x9f, 0x9c, 0x99, 0xfa, 0x99, 0xa6, 0xb5, 0x40,
|
||||
0x48, 0x4d, 0xec, 0x6f, 0x72, 0x6a, 0x01, 0x22, 0xc1, 0x45, 0x6e, 0x06, 0x86, 0x63, 0xf6, 0x89,
|
||||
0xe9, 0xe9, 0xdf, 0xd1, 0x0b, 0x67, 0x50, 0x91, 0x46, 0x49, 0x06, 0x55, 0x06, 0xc6, 0x43, 0x0c,
|
||||
0x10, 0x4f, 0x01, 0xe2, 0xb3, 0x40, 0x0c, 0xaa, 0x52, 0xfe, 0x83, 0x82, 0x0c, 0xaf, 0x45, 0xf8,
|
||||
0x6b, 0xd8, 0x33, 0x5c, 0x40, 0x43, 0x6c, 0x80, 0x38, 0x1f, 0x88, 0x57, 0x01, 0xf1, 0x0b, 0x2c,
|
||||
0xd5, 0xc6, 0x1f, 0x50, 0xc9, 0xee, 0xe4, 0xd1, 0x7a, 0x3d, 0xac, 0x26, 0xf6, 0x27, 0xbc, 0x16,
|
||||
0xa8, 0x05, 0x06, 0x1d, 0xb0, 0x80, 0xc6, 0x59, 0xc3, 0x86, 0xd6, 0xc4, 0xfe, 0x70, 0xf5, 0x6e,
|
||||
0x3e, 0x0f, 0xd4, 0x7c, 0x04, 0x9a, 0x37, 0xd0, 0x0d, 0xfe, 0x00, 0xc4, 0xbb, 0xa1, 0x95, 0xa2,
|
||||
0x2f, 0x03, 0xc3, 0x79, 0x01, 0xa2, 0x6a, 0x01, 0x02, 0x15, 0xdf, 0x6f, 0x68, 0xf0, 0x4c, 0x81,
|
||||
0x04, 0x17, 0x28, 0xd8, 0xc8, 0x4d, 0x2d, 0x58, 0x2c, 0x02, 0x45, 0x2c, 0x28, 0x82, 0x21, 0x11,
|
||||
0x4d, 0x25, 0x80, 0x51, 0xc3, 0xa2, 0x87, 0x2d, 0x35, 0x9b, 0x5b, 0xa4, 0xd5, 0xb0, 0x83, 0x18,
|
||||
0x00, 0x00, 0x06, 0xd3, 0x8e, 0xf0, 0xd7, 0x9a, 0xbb, 0xe9, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45,
|
||||
0x4e, 0x44, 0xae, 0x42, 0x60, 0x82,
|
||||
};
|
||||
|
||||
const BITMAP_OPAQUE add_polygon_xpm[1] = {{ png, sizeof( png ), "add_polygon_xpm" }};
|
||||
|
||||
//EOF
|
||||
@@ -8,52 +8,67 @@
|
||||
static const unsigned char png[] = {
|
||||
0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52,
|
||||
0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1a, 0x08, 0x06, 0x00, 0x00, 0x00, 0xa9, 0x4a, 0x4c,
|
||||
0xce, 0x00, 0x00, 0x02, 0xbb, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0xb5, 0x96, 0x4d, 0x68, 0x15,
|
||||
0x67, 0x14, 0x86, 0x9f, 0x58, 0x0a, 0x1a, 0x6b, 0x29, 0xae, 0xda, 0x85, 0x59, 0x9b, 0xd2, 0x96,
|
||||
0x1a, 0x0a, 0x81, 0xfe, 0x2c, 0xb4, 0x6b, 0x91, 0x62, 0xdc, 0xa8, 0xdd, 0x08, 0x4a, 0x17, 0xa5,
|
||||
0x4b, 0xb7, 0xf3, 0x9c, 0xb9, 0xd7, 0xc0, 0x25, 0x60, 0xd7, 0x01, 0x23, 0x4d, 0x15, 0xdb, 0x4a,
|
||||
0x0b, 0x55, 0x37, 0x7a, 0x15, 0x04, 0xf1, 0x8f, 0xd2, 0xd2, 0x8d, 0x94, 0xb6, 0x1a, 0xab, 0xa6,
|
||||
0xa0, 0x69, 0xb5, 0xad, 0x69, 0x24, 0x31, 0x36, 0xde, 0x2e, 0xfc, 0x26, 0x4c, 0x6e, 0x6e, 0x12,
|
||||
0x91, 0x9b, 0x81, 0x03, 0xc3, 0xfc, 0x9c, 0x67, 0xde, 0xef, 0x9c, 0xf3, 0x7e, 0x03, 0x32, 0x81,
|
||||
0xfc, 0xb6, 0xcc, 0x31, 0x01, 0x32, 0x82, 0x7c, 0xb6, 0xcc, 0x31, 0xb2, 0x14, 0x68, 0x18, 0xf9,
|
||||
0x0a, 0xf9, 0x72, 0xb9, 0x40, 0x75, 0x82, 0x1b, 0xc8, 0x34, 0xd2, 0x48, 0x31, 0x49, 0x70, 0x1d,
|
||||
0x39, 0xd9, 0x0e, 0xd0, 0x61, 0x32, 0x46, 0x90, 0xc7, 0xc8, 0x31, 0x64, 0x3b, 0xd2, 0x43, 0x4e,
|
||||
0x2f, 0xb2, 0x93, 0x8c, 0xd3, 0xe9, 0xde, 0x2f, 0x64, 0x1c, 0x7a, 0x56, 0xd0, 0xe7, 0xc8, 0x28,
|
||||
0x32, 0x86, 0xbc, 0x0d, 0x74, 0xa8, 0x3d, 0xea, 0x9e, 0x14, 0x3d, 0x40, 0x07, 0xb2, 0x89, 0xe0,
|
||||
0x2e, 0x72, 0x93, 0x8c, 0xe1, 0x67, 0x01, 0xfd, 0x88, 0x8c, 0x23, 0xeb, 0xd5, 0x2e, 0xf5, 0xb4,
|
||||
0xda, 0x68, 0x8a, 0xba, 0xda, 0x85, 0xbc, 0x86, 0x4c, 0x92, 0x71, 0xbb, 0x45, 0x87, 0x9d, 0x5d,
|
||||
0x0c, 0x74, 0x84, 0x60, 0x0a, 0xf9, 0x58, 0xed, 0x54, 0x7f, 0x6d, 0x01, 0x29, 0xe2, 0xba, 0xfa,
|
||||
0x02, 0xc1, 0x66, 0xe4, 0x68, 0x53, 0x5c, 0x4c, 0xe3, 0x72, 0x68, 0x21, 0xd0, 0x39, 0x64, 0x92,
|
||||
0xfd, 0xac, 0x52, 0xfb, 0x4b, 0x49, 0xa7, 0xd4, 0x03, 0xea, 0x50, 0x3a, 0x2f, 0xae, 0x57, 0x69,
|
||||
0x75, 0xc8, 0x5a, 0xe4, 0x01, 0x19, 0x97, 0x16, 0x02, 0x5d, 0x41, 0xce, 0x03, 0xa8, 0xdf, 0x17,
|
||||
0x09, 0x23, 0x62, 0xeb, 0x6c, 0x0e, 0xed, 0x5b, 0x44, 0x65, 0x43, 0xfd, 0x36, 0xc1, 0x3e, 0x45,
|
||||
0xfe, 0x4a, 0xa3, 0x31, 0x0f, 0x74, 0x15, 0xf9, 0x26, 0x25, 0x1c, 0x2f, 0x5e, 0xae, 0xd5, 0x6a,
|
||||
0x6b, 0x0a, 0x50, 0xad, 0x56, 0x5b, 0xb3, 0x04, 0x68, 0xa6, 0x52, 0xa9, 0x74, 0x23, 0x5d, 0xc8,
|
||||
0xa3, 0xa6, 0x5a, 0xcd, 0x51, 0x74, 0xa1, 0x59, 0x91, 0xda, 0x57, 0x80, 0x22, 0x62, 0xdb, 0x12,
|
||||
0xa0, 0x86, 0x3a, 0xf4, 0xe4, 0x61, 0x0e, 0x23, 0x77, 0x16, 0xae, 0x91, 0x74, 0xb6, 0xa8, 0xd1,
|
||||
0xc1, 0x14, 0x0f, 0x5b, 0xd5, 0x28, 0xcf, 0xf3, 0xde, 0xd2, 0xf5, 0xe9, 0x6a, 0xb5, 0xba, 0x0e,
|
||||
0x79, 0x03, 0x79, 0x4c, 0xcc, 0x0e, 0x77, 0xa9, 0xeb, 0x64, 0x0a, 0xf9, 0xe4, 0x29, 0xba, 0x6e,
|
||||
0x64, 0x60, 0x60, 0x60, 0x35, 0xc1, 0x56, 0x82, 0x1d, 0x69, 0x15, 0xce, 0x97, 0xee, 0xd7, 0x52,
|
||||
0xad, 0xea, 0xc8, 0xad, 0xd6, 0x73, 0x94, 0xf1, 0x2f, 0x15, 0xba, 0xd3, 0x1c, 0xd5, 0x5b, 0x40,
|
||||
0x4e, 0x55, 0xab, 0xd5, 0x75, 0xe4, 0xbc, 0x9e, 0x56, 0xe0, 0x4f, 0x64, 0x65, 0x44, 0x6c, 0x29,
|
||||
0x3d, 0x73, 0x5f, 0x7d, 0x89, 0x60, 0x63, 0xc9, 0x61, 0xe6, 0x80, 0x86, 0x91, 0x51, 0x82, 0x3f,
|
||||
0xc8, 0x79, 0x0f, 0xe8, 0xc8, 0xf3, 0x7c, 0x43, 0x44, 0xec, 0x8e, 0x88, 0xdd, 0xea, 0x9b, 0x40,
|
||||
0x07, 0xc1, 0xfb, 0xc8, 0x3d, 0xe4, 0x77, 0x32, 0x1e, 0x22, 0x7b, 0x92, 0x8b, 0x5c, 0x29, 0xc1,
|
||||
0xf6, 0x26, 0x55, 0x3f, 0xa4, 0x46, 0x6b, 0xe1, 0x75, 0x72, 0x2d, 0x7d, 0xc9, 0x09, 0x82, 0x1d,
|
||||
0xc8, 0x5b, 0xe4, 0xf4, 0x12, 0x7c, 0x88, 0x9c, 0x69, 0xf2, 0xba, 0x9f, 0xd2, 0xfb, 0x2b, 0xd4,
|
||||
0x5d, 0x25, 0xd0, 0x6d, 0x75, 0x25, 0xd2, 0x87, 0xfc, 0x87, 0x8c, 0x2d, 0xe4, 0xde, 0xa7, 0x92,
|
||||
0x9d, 0xcc, 0x75, 0x6f, 0xe7, 0xb9, 0xf7, 0xd7, 0xc8, 0x0c, 0xc1, 0x07, 0x83, 0x83, 0x83, 0xcf,
|
||||
0xab, 0xb7, 0x4a, 0xb0, 0x5d, 0x1c, 0xe5, 0xb9, 0x94, 0xa7, 0xb1, 0xf8, 0x7e, 0x94, 0xcd, 0xee,
|
||||
0x47, 0x5f, 0x2c, 0x62, 0x98, 0xd7, 0x90, 0xef, 0x52, 0x53, 0xec, 0x2d, 0x81, 0x7e, 0x56, 0x57,
|
||||
0x20, 0x1f, 0x2d, 0x0d, 0x7a, 0x9a, 0x08, 0x8e, 0x27, 0xc5, 0xef, 0xaa, 0x2f, 0xaa, 0x7f, 0x97,
|
||||
0x9c, 0x65, 0x0b, 0xfb, 0x59, 0x45, 0x70, 0xb7, 0x5d, 0x5b, 0xf9, 0x28, 0x72, 0x22, 0xa9, 0xaa,
|
||||
0x95, 0x54, 0x5d, 0x4e, 0x4d, 0xd1, 0xd7, 0x2e, 0x50, 0x3d, 0x35, 0xc9, 0xab, 0xea, 0xcb, 0xea,
|
||||
0x64, 0x01, 0xcb, 0xf3, 0xfc, 0x9d, 0xc2, 0x71, 0xdb, 0xf5, 0x73, 0x32, 0x46, 0x70, 0x20, 0xa9,
|
||||
0x1a, 0x9a, 0x67, 0xb6, 0x6d, 0x04, 0x9d, 0x43, 0xa6, 0xd9, 0xc7, 0x2b, 0x95, 0x4a, 0xa5, 0x5b,
|
||||
0x9d, 0x49, 0xa0, 0x89, 0x76, 0x83, 0x86, 0x91, 0x7f, 0x90, 0xfe, 0xa4, 0xaa, 0x3f, 0x2d, 0x61,
|
||||
0x7f, 0x01, 0x6a, 0xdf, 0x0f, 0x64, 0x30, 0x4e, 0xc6, 0x7d, 0xa4, 0xb3, 0x79, 0x4f, 0xfc, 0x1f,
|
||||
0xf5, 0x11, 0xa2, 0x95, 0x85, 0x61, 0xe4, 0xeb, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44,
|
||||
0xae, 0x42, 0x60, 0x82,
|
||||
0xce, 0x00, 0x00, 0x00, 0x04, 0x73, 0x42, 0x49, 0x54, 0x08, 0x08, 0x08, 0x08, 0x7c, 0x08, 0x64,
|
||||
0x88, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x0e, 0xc4, 0x00, 0x00, 0x0e,
|
||||
0xc4, 0x01, 0x95, 0x2b, 0x0e, 0x1b, 0x00, 0x00, 0x00, 0x19, 0x74, 0x45, 0x58, 0x74, 0x53, 0x6f,
|
||||
0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x00, 0x77, 0x77, 0x77, 0x2e, 0x69, 0x6e, 0x6b, 0x73, 0x63,
|
||||
0x61, 0x70, 0x65, 0x2e, 0x6f, 0x72, 0x67, 0x9b, 0xee, 0x3c, 0x1a, 0x00, 0x00, 0x03, 0x6a, 0x49,
|
||||
0x44, 0x41, 0x54, 0x48, 0x89, 0xb5, 0xd5, 0x5d, 0x88, 0xd6, 0x45, 0x14, 0x06, 0xf0, 0xdf, 0xbc,
|
||||
0xbb, 0xb4, 0x9b, 0xa2, 0x52, 0x62, 0x9f, 0x62, 0x6a, 0xa9, 0xb9, 0x57, 0x19, 0xe9, 0x8d, 0x8a,
|
||||
0x41, 0xa5, 0x45, 0xc6, 0xde, 0x44, 0x4a, 0x46, 0x84, 0x94, 0xd1, 0x5d, 0x88, 0xd5, 0x4a, 0xda,
|
||||
0x7b, 0x16, 0x57, 0xcd, 0x0a, 0x2a, 0x6f, 0x02, 0xa1, 0x0b, 0x31, 0x2f, 0x0a, 0xca, 0xa0, 0x2e,
|
||||
0x44, 0xa5, 0x04, 0xc3, 0xec, 0x1b, 0x0c, 0xda, 0x4a, 0x5c, 0x25, 0x71, 0x55, 0x6a, 0x57, 0x2a,
|
||||
0x65, 0x5d, 0x7d, 0x77, 0xa7, 0x8b, 0xf7, 0xdd, 0xdd, 0xb7, 0xfd, 0x08, 0xcc, 0x75, 0xe0, 0xcf,
|
||||
0x7f, 0x66, 0xce, 0xcc, 0x3c, 0x33, 0xcf, 0x79, 0xce, 0x39, 0x49, 0x38, 0x87, 0xdf, 0x5d, 0xdd,
|
||||
0x36, 0xa9, 0x16, 0x67, 0x70, 0xe0, 0x2a, 0x03, 0x2d, 0x2c, 0x8c, 0xc2, 0x21, 0xf5, 0xb8, 0x16,
|
||||
0xe9, 0xbf, 0x16, 0xd5, 0xfe, 0xaf, 0xa3, 0x93, 0x9b, 0x64, 0x33, 0x71, 0x0b, 0xea, 0x2a, 0xb3,
|
||||
0x97, 0xd0, 0x8e, 0x5f, 0x70, 0xea, 0x4a, 0x81, 0x6a, 0x30, 0x4f, 0x36, 0x03, 0xfb, 0xf0, 0x8a,
|
||||
0x82, 0x23, 0x28, 0xe9, 0x35, 0x0b, 0xcb, 0xb1, 0x54, 0xd2, 0x26, 0x3b, 0x84, 0xd2, 0xe5, 0x03,
|
||||
0x65, 0x49, 0xb2, 0x48, 0x32, 0x06, 0xf7, 0x29, 0xda, 0x1f, 0x11, 0x73, 0xf4, 0xba, 0xa7, 0xb2,
|
||||
0xe2, 0xdb, 0x88, 0x68, 0x14, 0xe6, 0xe3, 0x23, 0x2c, 0xc2, 0x67, 0xc8, 0x90, 0x84, 0xa3, 0x86,
|
||||
0x8a, 0xe1, 0x36, 0x4c, 0x1d, 0x04, 0x54, 0x2f, 0x99, 0xa0, 0x60, 0x6e, 0xf4, 0xc6, 0xdf, 0x78,
|
||||
0x17, 0xf7, 0x0f, 0xda, 0xb7, 0x17, 0x4f, 0x47, 0x4d, 0x8c, 0x55, 0xf2, 0xb5, 0xe4, 0x08, 0x0e,
|
||||
0x1b, 0x41, 0x0c, 0x35, 0x98, 0xab, 0xcc, 0xf3, 0x37, 0xfd, 0x5f, 0x72, 0x40, 0xb2, 0x2c, 0x7a,
|
||||
0xe3, 0x98, 0x32, 0x6d, 0x83, 0x41, 0xe0, 0x01, 0xec, 0x8f, 0x9e, 0x38, 0xa1, 0x60, 0x1d, 0x1a,
|
||||
0x70, 0x0d, 0xc3, 0x51, 0x97, 0xdd, 0x21, 0x49, 0x58, 0x2a, 0x74, 0x0e, 0xb1, 0x87, 0x4d, 0x98,
|
||||
0x51, 0x19, 0x75, 0xe3, 0x3d, 0x65, 0xc5, 0xad, 0x50, 0x16, 0xc6, 0x34, 0xac, 0x95, 0x6d, 0xc4,
|
||||
0x16, 0xd9, 0xad, 0xd2, 0x50, 0xa0, 0x24, 0x99, 0x85, 0x6d, 0x42, 0x67, 0x44, 0x7c, 0x8c, 0xc6,
|
||||
0x61, 0x6e, 0x5e, 0x5e, 0x9c, 0xd2, 0x8a, 0x62, 0xb1, 0xf8, 0x21, 0x34, 0x37, 0x37, 0xef, 0xce,
|
||||
0x39, 0x7f, 0x50, 0x31, 0x2d, 0x16, 0x5e, 0x16, 0xbe, 0x97, 0x4c, 0x84, 0xc1, 0xd4, 0x4d, 0xc1,
|
||||
0x38, 0xbc, 0xb9, 0x61, 0xc3, 0x86, 0xd9, 0x78, 0x64, 0x24, 0x10, 0xa8, 0xaf, 0xaf, 0xdf, 0x53,
|
||||
0xd5, 0xdf, 0x5d, 0x65, 0x9a, 0x55, 0xf9, 0x9f, 0xaa, 0xbc, 0x72, 0x08, 0xd0, 0x6c, 0xc9, 0xfb,
|
||||
0xc2, 0x6f, 0x3d, 0x3d, 0x3d, 0x6b, 0x86, 0xb1, 0xff, 0xab, 0x75, 0x75, 0x75, 0x2d, 0xa9, 0xea,
|
||||
0x3f, 0x54, 0x65, 0xfa, 0xb9, 0xf2, 0xbf, 0x59, 0x99, 0xde, 0x2a, 0xd5, 0x95, 0x83, 0x70, 0x31,
|
||||
0xee, 0x6a, 0xa9, 0x6d, 0xe9, 0x28, 0x95, 0x4a, 0x6d, 0x2a, 0x8e, 0xc4, 0xfc, 0x88, 0x38, 0x08,
|
||||
0x11, 0xb1, 0x09, 0x6b, 0x2b, 0xf3, 0xdd, 0xd8, 0xa9, 0xec, 0xa3, 0xc7, 0x0d, 0x04, 0xef, 0xc6,
|
||||
0x18, 0x1b, 0x9b, 0x9d, 0xd7, 0x21, 0xfb, 0x4a, 0x32, 0x79, 0xc0, 0x47, 0x59, 0x03, 0xf6, 0x09,
|
||||
0x87, 0x4b, 0x51, 0x7a, 0xad, 0x0a, 0xe4, 0x8b, 0x88, 0x38, 0xa8, 0xd9, 0x0a, 0x5c, 0x90, 0xb5,
|
||||
0xe0, 0x51, 0x65, 0x41, 0xd4, 0x61, 0xe5, 0xa0, 0x87, 0xb6, 0xe1, 0x55, 0xe7, 0x3d, 0xa3, 0x1c,
|
||||
0x7d, 0x27, 0x31, 0xb9, 0x8f, 0x9a, 0xeb, 0x30, 0x59, 0xb2, 0x39, 0x22, 0xc6, 0x63, 0x55, 0xd5,
|
||||
0xc6, 0xd7, 0x85, 0x7a, 0xd9, 0x5b, 0xb2, 0x1d, 0x21, 0xa6, 0x2b, 0x4b, 0x7b, 0xef, 0x30, 0x6c,
|
||||
0xee, 0xa9, 0xad, 0xad, 0xbd, 0x37, 0xc4, 0x14, 0xb4, 0xa0, 0x15, 0x17, 0x19, 0xf0, 0x41, 0x03,
|
||||
0x7e, 0x50, 0xf4, 0x79, 0x4a, 0xe9, 0x39, 0x4c, 0xa8, 0xe2, 0xfa, 0x53, 0x3c, 0x29, 0x1b, 0x8f,
|
||||
0x4e, 0xc9, 0xfe, 0x48, 0x71, 0x7b, 0x44, 0x2c, 0xc1, 0x9c, 0x94, 0xd2, 0xaa, 0x94, 0xd2, 0xaa,
|
||||
0x42, 0xa1, 0x70, 0x77, 0x44, 0x3c, 0xb8, 0xae, 0xb4, 0x6e, 0x9a, 0x64, 0xbf, 0xec, 0x2c, 0x7e,
|
||||
0xec, 0xbb, 0x41, 0x12, 0xce, 0x60, 0x22, 0x96, 0x6f, 0xbd, 0x7e, 0xeb, 0x27, 0x9d, 0x9d, 0x9d,
|
||||
0x6d, 0xca, 0xc9, 0x52, 0x4a, 0x69, 0x65, 0x31, 0x17, 0xb7, 0xe3, 0x08, 0xba, 0x65, 0xdf, 0x49,
|
||||
0xe6, 0x55, 0x68, 0xdb, 0x27, 0xd9, 0x21, 0xf9, 0x55, 0xaf, 0x1e, 0xdc, 0x89, 0x65, 0x78, 0x58,
|
||||
0x76, 0x54, 0x72, 0x08, 0x3d, 0x15, 0x9c, 0x85, 0xb5, 0xb8, 0x01, 0xc7, 0x35, 0xd8, 0x75, 0xb6,
|
||||
0xf5, 0xec, 0x53, 0x7d, 0x20, 0x38, 0x99, 0x73, 0xde, 0x29, 0x69, 0x94, 0x4d, 0xc5, 0x2e, 0x49,
|
||||
0x0f, 0xbe, 0x94, 0x1c, 0xc3, 0x4c, 0xd9, 0x36, 0x59, 0x7d, 0x65, 0xfd, 0x45, 0xb4, 0xcb, 0xf6,
|
||||
0x4a, 0x23, 0x67, 0xef, 0x2d, 0x1e, 0xd3, 0x9b, 0x23, 0xaf, 0xee, 0x7f, 0x6a, 0x4a, 0x6f, 0x17,
|
||||
0x8b, 0xc5, 0x8b, 0x42, 0x13, 0x8e, 0xe1, 0x5c, 0xff, 0xae, 0xec, 0x34, 0x4e, 0x57, 0x46, 0xf5,
|
||||
0x48, 0xb2, 0x0b, 0x92, 0x3c, 0x52, 0x55, 0x2a, 0x48, 0x3a, 0x8c, 0xb7, 0x3d, 0x22, 0x1a, 0x2b,
|
||||
0xbe, 0x82, 0xbf, 0xea, 0xea, 0xea, 0xb6, 0x09, 0x0b, 0x30, 0x4f, 0xf2, 0xd3, 0xf0, 0xdb, 0xc1,
|
||||
0x05, 0x74, 0x49, 0xe5, 0x2c, 0x3d, 0x52, 0x2b, 0xe0, 0x59, 0xab, 0x75, 0xe1, 0x85, 0xaa, 0xf9,
|
||||
0x77, 0x9a, 0x9a, 0x9a, 0xfe, 0xc4, 0x4b, 0x92, 0x13, 0xf2, 0x30, 0x39, 0xef, 0x32, 0x5b, 0x82,
|
||||
0x88, 0x58, 0x60, 0xa0, 0x54, 0x74, 0x63, 0x7a, 0xd4, 0xc4, 0x38, 0x3d, 0x5a, 0x95, 0x33, 0x75,
|
||||
0xfb, 0x15, 0xe2, 0xf4, 0x97, 0x89, 0x35, 0x55, 0x93, 0x3b, 0x23, 0xa2, 0x5d, 0xc9, 0x8b, 0x92,
|
||||
0x3f, 0x46, 0x01, 0x04, 0x03, 0x71, 0xd4, 0x57, 0x5b, 0x7a, 0x6b, 0x6a, 0x6a, 0xde, 0xb0, 0xd1,
|
||||
0x8d, 0x92, 0x27, 0xe4, 0xfe, 0x9c, 0x35, 0x6a, 0x40, 0x5b, 0x95, 0x9d, 0xba, 0x65, 0xfd, 0xfa,
|
||||
0xf5, 0xad, 0x2e, 0x79, 0xbe, 0x32, 0x3e, 0x3e, 0x5a, 0x40, 0x43, 0xc5, 0x18, 0xc6, 0xc8, 0x4e,
|
||||
0x29, 0x48, 0xb2, 0x8e, 0x51, 0xc2, 0x99, 0xf4, 0x0f, 0x91, 0x83, 0x1f, 0x42, 0x3f, 0x13, 0xec,
|
||||
0x28, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82,
|
||||
};
|
||||
|
||||
const BITMAP_OPAQUE add_zone_xpm[1] = {{ png, sizeof( png ), "add_zone_xpm" }};
|
||||
|
||||
@@ -1,95 +0,0 @@
|
||||
|
||||
/* Do not modify this file, it was automatically generated by the
|
||||
* PNG2cpp CMake script, using a *.png file as input.
|
||||
*/
|
||||
|
||||
#include <bitmaps_png/bitmaps_list.h>
|
||||
|
||||
static const unsigned char png[] = {
|
||||
0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52,
|
||||
0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1a, 0x08, 0x06, 0x00, 0x00, 0x00, 0xa9, 0x4a, 0x4c,
|
||||
0xce, 0x00, 0x00, 0x04, 0xd9, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0xbd, 0x96, 0x7f, 0x6c, 0x53,
|
||||
0x55, 0x14, 0xc7, 0xbf, 0xef, 0x47, 0xfb, 0x5e, 0xdb, 0xad, 0xdb, 0xba, 0x75, 0x1d, 0xb0, 0x4e,
|
||||
0xd8, 0x90, 0x6d, 0x20, 0x22, 0x24, 0x6a, 0x20, 0x81, 0x48, 0x86, 0xa8, 0x51, 0xb3, 0x04, 0x21,
|
||||
0xfe, 0xc2, 0x84, 0xc5, 0x3f, 0xd4, 0x18, 0x8d, 0x21, 0xd1, 0x68, 0x62, 0x22, 0x09, 0x89, 0x21,
|
||||
0x18, 0x94, 0x18, 0x31, 0xf1, 0x2f, 0x71, 0x89, 0x9a, 0x18, 0x83, 0x81, 0x04, 0x54, 0x02, 0xba,
|
||||
0xc0, 0x94, 0x00, 0x93, 0x0d, 0x68, 0xe7, 0x7e, 0x65, 0x8e, 0x76, 0x2b, 0x8c, 0xb1, 0xad, 0xdd,
|
||||
0xd6, 0xf6, 0xf5, 0xfd, 0xf4, 0xdc, 0x36, 0x65, 0xab, 0x1b, 0x5b, 0x63, 0x08, 0x2f, 0x39, 0xbd,
|
||||
0xbf, 0x9a, 0xf3, 0xb9, 0xe7, 0x9e, 0x73, 0xcf, 0xb9, 0x1c, 0xee, 0xd1, 0xc7, 0xe5, 0xf3, 0xa7,
|
||||
0x3d, 0x7b, 0x2c, 0x1e, 0x8e, 0xf6, 0x8a, 0x29, 0x23, 0xe5, 0xd7, 0x14, 0xb3, 0x72, 0x62, 0x42,
|
||||
0x5b, 0x91, 0x50, 0xf5, 0x3a, 0x4d, 0x37, 0xfc, 0x86, 0xce, 0x69, 0x4a, 0xd2, 0xdc, 0xfd, 0xeb,
|
||||
0xf7, 0x4f, 0x06, 0xf3, 0x02, 0xfd, 0xd1, 0x36, 0xbc, 0x35, 0x1a, 0x53, 0x7c, 0xa1, 0xeb, 0xf1,
|
||||
0x45, 0xc3, 0x37, 0xe3, 0x75, 0xd1, 0x09, 0x7d, 0x99, 0xaa, 0x6a, 0x55, 0xa2, 0x20, 0xfa, 0x64,
|
||||
0x59, 0x70, 0x88, 0x22, 0xcf, 0xdb, 0x45, 0x0e, 0xbc, 0x20, 0x40, 0x14, 0x2c, 0x98, 0x16, 0x07,
|
||||
0xd3, 0x34, 0xa1, 0xa4, 0x4c, 0x74, 0x76, 0x8d, 0x8d, 0x46, 0xff, 0x89, 0x54, 0xb6, 0xb4, 0x34,
|
||||
0x29, 0xf3, 0x82, 0x7e, 0xf8, 0xb6, 0xe7, 0xa1, 0x1b, 0x53, 0xda, 0x25, 0x95, 0xd3, 0x39, 0xff,
|
||||
0xa2, 0x02, 0x08, 0x3c, 0x07, 0x8e, 0x56, 0x74, 0xdd, 0x82, 0xaa, 0x99, 0xd0, 0x34, 0x23, 0xdd,
|
||||
0x66, 0xfa, 0xac, 0xcd, 0x1d, 0x4f, 0xc5, 0x55, 0xb4, 0x5d, 0x1e, 0xf9, 0xec, 0xc2, 0xf1, 0x6d,
|
||||
0xbb, 0xe7, 0x05, 0x7d, 0xb8, 0xb7, 0xed, 0xf7, 0x2d, 0x5b, 0x96, 0x3c, 0x76, 0xaa, 0x75, 0x10,
|
||||
0x0f, 0xaf, 0xf1, 0xe6, 0x2a, 0x54, 0xb3, 0xfd, 0xcc, 0x78, 0xba, 0x9f, 0xbb, 0x81, 0x5b, 0x63,
|
||||
0x8a, 0xd5, 0xde, 0x31, 0x5a, 0xd7, 0x7f, 0xe1, 0x85, 0x9e, 0x39, 0x41, 0x47, 0x9a, 0xfb, 0xca,
|
||||
0xaf, 0x4d, 0x26, 0x03, 0x64, 0x83, 0x57, 0x72, 0xf3, 0x64, 0x0d, 0xb9, 0x43, 0xe6, 0x6f, 0x2b,
|
||||
0x48, 0x2b, 0x54, 0xe7, 0xb6, 0x68, 0xe6, 0x06, 0x92, 0x8a, 0x81, 0xde, 0x81, 0x58, 0xb0, 0xe3,
|
||||
0x97, 0x6d, 0xab, 0x49, 0xad, 0x35, 0x0b, 0x74, 0xe0, 0xe0, 0xd5, 0x1f, 0x57, 0xd4, 0xb9, 0x9f,
|
||||
0xeb, 0xea, 0x8b, 0xa1, 0xa8, 0xc0, 0x8e, 0xcb, 0xbd, 0x23, 0x58, 0x53, 0x5f, 0x0a, 0x35, 0x7d,
|
||||
0x6c, 0xd3, 0x16, 0xa4, 0x08, 0x96, 0x4c, 0x1a, 0xe9, 0x96, 0xcd, 0xeb, 0x86, 0x05, 0x9d, 0xad,
|
||||
0xe9, 0xb4, 0x96, 0xca, 0xcc, 0xb3, 0x4d, 0x9e, 0xbd, 0x18, 0x69, 0x8a, 0x06, 0x9b, 0x0e, 0xcf,
|
||||
0x02, 0x7d, 0xf5, 0xcd, 0xdf, 0x01, 0x25, 0x69, 0xac, 0xf2, 0x79, 0x65, 0x5c, 0x1b, 0x8a, 0xa3,
|
||||
0xd0, 0x2d, 0x62, 0x70, 0x38, 0x8e, 0x92, 0x22, 0x29, 0xc7, 0x02, 0x25, 0x95, 0x39, 0xc6, 0xb9,
|
||||
0xac, 0xc9, 0xf6, 0x19, 0x3c, 0x9e, 0xd0, 0x13, 0x17, 0x03, 0xe3, 0x4b, 0x30, 0xd0, 0x14, 0xcd,
|
||||
0x01, 0x1d, 0xfe, 0xa9, 0xb7, 0x46, 0x04, 0x7a, 0xfa, 0x7b, 0x26, 0xf9, 0x9a, 0xe5, 0x85, 0xe8,
|
||||
0xea, 0x8d, 0xe1, 0x66, 0x34, 0x81, 0xc5, 0x3e, 0x17, 0x34, 0x7d, 0x5a, 0xe1, 0x9d, 0x8e, 0x2c,
|
||||
0xd7, 0x67, 0x26, 0x1c, 0x0e, 0x01, 0x5d, 0xdd, 0xd1, 0xef, 0x22, 0xed, 0x3b, 0x5f, 0x9e, 0x15,
|
||||
0x0c, 0x5f, 0x36, 0x07, 0x8f, 0x09, 0x16, 0xff, 0x6c, 0x78, 0x28, 0x81, 0x2a, 0xbf, 0x13, 0x43,
|
||||
0x91, 0x38, 0x06, 0x6e, 0x4c, 0xc1, 0xeb, 0x91, 0x33, 0x0a, 0x74, 0x03, 0x86, 0x61, 0x2d, 0x08,
|
||||
0xc9, 0xce, 0x79, 0x4b, 0x9d, 0x38, 0x7d, 0xf6, 0xfa, 0x06, 0x0c, 0xbd, 0x7a, 0x2e, 0x07, 0xf4,
|
||||
0xf9, 0x89, 0x5e, 0x49, 0x0f, 0x27, 0xc7, 0xa7, 0x62, 0xba, 0x83, 0x59, 0x21, 0xb9, 0x04, 0x84,
|
||||
0x22, 0x93, 0xa0, 0x28, 0x87, 0x61, 0x52, 0x98, 0xd3, 0x8f, 0x45, 0xee, 0xcd, 0x07, 0xc2, 0xc6,
|
||||
0x82, 0xc0, 0x93, 0x56, 0x33, 0x1c, 0x3c, 0xdd, 0x59, 0x4d, 0xd7, 0x5d, 0xcf, 0xb9, 0xb0, 0x7b,
|
||||
0x0f, 0xfe, 0xf5, 0xae, 0x2c, 0x89, 0xfb, 0x23, 0x83, 0x09, 0x94, 0xf9, 0x64, 0x8a, 0x22, 0x1d,
|
||||
0x57, 0xba, 0xc7, 0xe0, 0x76, 0xd9, 0x08, 0x66, 0x11, 0x94, 0xcb, 0x0b, 0x92, 0x8d, 0xd2, 0xfb,
|
||||
0xfc, 0x85, 0x08, 0x76, 0x8f, 0x7e, 0x30, 0x1e, 0x6c, 0xda, 0xf7, 0xdf, 0x14, 0x64, 0x7f, 0xff,
|
||||
0xe3, 0xf3, 0x61, 0xc9, 0x2e, 0x96, 0xd3, 0xfe, 0xd3, 0x91, 0x34, 0x3c, 0x12, 0xc7, 0x64, 0x5c,
|
||||
0xa7, 0x2c, 0x00, 0xd8, 0x44, 0x7e, 0x61, 0x88, 0x3a, 0x7d, 0xb7, 0xd8, 0x51, 0xd7, 0xd5, 0x14,
|
||||
0xeb, 0xad, 0x6d, 0x43, 0x4b, 0x31, 0xf8, 0xc6, 0x50, 0x16, 0x64, 0x23, 0x71, 0x35, 0xbe, 0xf8,
|
||||
0xe9, 0xc6, 0x65, 0xb5, 0xeb, 0x8f, 0xda, 0x6d, 0x3c, 0xc7, 0xc2, 0x95, 0x49, 0x77, 0xff, 0x04,
|
||||
0x68, 0x0c, 0x59, 0xe2, 0xf3, 0x86, 0x64, 0xd7, 0x99, 0x8f, 0x29, 0x75, 0x9d, 0xea, 0x6d, 0x7d,
|
||||
0xfe, 0xf1, 0x2c, 0x48, 0x26, 0x29, 0x64, 0xb0, 0x57, 0xde, 0x3e, 0x79, 0xbc, 0xc8, 0xed, 0x5a,
|
||||
0xa9, 0xeb, 0x99, 0xbb, 0x13, 0x9b, 0xd4, 0x30, 0x16, 0x55, 0xe8, 0x12, 0x8b, 0xe9, 0x28, 0x9c,
|
||||
0xef, 0xb8, 0xe6, 0xba, 0xd4, 0x9b, 0x1e, 0x5d, 0x84, 0xf3, 0x97, 0xae, 0x37, 0x72, 0x33, 0x82,
|
||||
0xa2, 0x8c, 0xa4, 0xd8, 0x53, 0x5e, 0xe7, 0xdd, 0xba, 0xfd, 0x8b, 0x33, 0xb2, 0x2c, 0x0a, 0x99,
|
||||
0x8b, 0x68, 0x22, 0x1c, 0x99, 0x42, 0x49, 0xb1, 0x3d, 0x9d, 0x40, 0xf3, 0xb1, 0x24, 0x0b, 0x61,
|
||||
0x1f, 0xdb, 0xe0, 0xea, 0xda, 0xe2, 0xb1, 0x99, 0x3e, 0x12, 0x48, 0xaa, 0x19, 0xac, 0x61, 0xfb,
|
||||
0xd7, 0x1f, 0x15, 0x7b, 0x2a, 0x9f, 0xb6, 0x28, 0xd4, 0x18, 0x28, 0x41, 0x81, 0x31, 0x11, 0x53,
|
||||
0x21, 0xc9, 0x42, 0xda, 0xca, 0x7c, 0x20, 0xcc, 0xa7, 0xa5, 0x25, 0x12, 0xca, 0x4a, 0x1d, 0x58,
|
||||
0xba, 0xa4, 0x70, 0x56, 0x3d, 0x92, 0x48, 0x1e, 0x64, 0xb0, 0xcd, 0x3b, 0x8e, 0x1d, 0x93, 0x1d,
|
||||
0x36, 0x39, 0x9d, 0x0d, 0x48, 0xf9, 0xc8, 0xa8, 0x02, 0x2f, 0x65, 0x8f, 0x18, 0x01, 0x67, 0x1e,
|
||||
0x97, 0x46, 0x4e, 0x97, 0xed, 0x02, 0x0a, 0x9c, 0x22, 0x9c, 0x0e, 0x91, 0xc2, 0x88, 0x23, 0xbf,
|
||||
0x58, 0x70, 0x4a, 0x06, 0xfc, 0xe5, 0x6a, 0x74, 0xdd, 0xfd, 0xe3, 0x72, 0x91, 0x4b, 0x39, 0x32,
|
||||
0x57, 0xe1, 0x63, 0xbe, 0x5a, 0x5f, 0xbd, 0xee, 0xad, 0xa7, 0x2a, 0xaa, 0xb6, 0xbc, 0xc3, 0xc2,
|
||||
0x3a, 0x1b, 0x18, 0xe3, 0xd1, 0x54, 0x3a, 0x6c, 0xd9, 0xce, 0x59, 0x2d, 0x32, 0x0c, 0x03, 0x92,
|
||||
0x4d, 0x85, 0xd7, 0x9d, 0xc0, 0xaa, 0x9a, 0x24, 0x36, 0xae, 0x05, 0xea, 0x97, 0x4b, 0x94, 0x33,
|
||||
0x1d, 0x60, 0x75, 0x46, 0x57, 0x86, 0xa1, 0xc6, 0x43, 0xba, 0xd3, 0x5a, 0x5c, 0x76, 0xa7, 0x0a,
|
||||
0xeb, 0x25, 0x69, 0x58, 0xb9, 0xb9, 0xf9, 0x90, 0xd3, 0x51, 0xe8, 0x61, 0xc7, 0xc1, 0x40, 0x4f,
|
||||
0xac, 0x07, 0x7c, 0xf2, 0x79, 0xd4, 0x54, 0x6a, 0x58, 0x59, 0xad, 0xc3, 0x53, 0x6c, 0xa3, 0x42,
|
||||
0xe8, 0x48, 0x0b, 0x27, 0xc8, 0xb7, 0x5b, 0x2a, 0x8f, 0x94, 0x70, 0xa3, 0xd0, 0x12, 0x61, 0x74,
|
||||
0x74, 0x19, 0xea, 0x33, 0x2f, 0x1d, 0x72, 0xcc, 0x57, 0xca, 0xab, 0x0a, 0x3c, 0x6b, 0x77, 0x95,
|
||||
0xd7, 0xbf, 0xb7, 0x47, 0xa4, 0x4a, 0x58, 0x5e, 0x2a, 0x60, 0xdb, 0x86, 0x20, 0x49, 0xe0, 0xb6,
|
||||
0xd2, 0x99, 0x00, 0x66, 0x81, 0x65, 0xa4, 0x60, 0x1a, 0xc9, 0xb4, 0xa4, 0x34, 0x89, 0x72, 0xa6,
|
||||
0x13, 0x6f, 0x7e, 0xe2, 0xbf, 0xd5, 0xfe, 0x5b, 0x59, 0xc5, 0x42, 0x6f, 0x86, 0xd5, 0xde, 0x55,
|
||||
0x07, 0x8e, 0xda, 0xe5, 0x8a, 0x65, 0x8f, 0x3c, 0xa0, 0x60, 0xdf, 0xae, 0xa3, 0x90, 0x24, 0x09,
|
||||
0x1c, 0xcf, 0x20, 0x04, 0x10, 0x0b, 0x30, 0xa1, 0xb8, 0xa0, 0x28, 0x3c, 0x22, 0xb7, 0x04, 0x2a,
|
||||
0x31, 0x32, 0xce, 0x5d, 0x95, 0x53, 0x2d, 0x17, 0xe5, 0xc0, 0x64, 0xd2, 0xba, 0x42, 0xe9, 0xa4,
|
||||
0x93, 0x52, 0xd1, 0x05, 0x84, 0x5f, 0x3f, 0xb3, 0xf0, 0xe3, 0x44, 0x2c, 0x6d, 0x70, 0xd7, 0xec,
|
||||
0x3f, 0xd9, 0xb8, 0x69, 0x84, 0xdf, 0xb1, 0x31, 0x88, 0xbe, 0x48, 0x09, 0xba, 0x42, 0x1e, 0x0c,
|
||||
0x8e, 0x38, 0xad, 0x40, 0x1f, 0x37, 0x1c, 0xba, 0x81, 0x0e, 0xf0, 0xee, 0xb3, 0xa4, 0x94, 0x4c,
|
||||
0x15, 0x03, 0x08, 0x85, 0x06, 0x28, 0xbf, 0x99, 0xff, 0xeb, 0x15, 0x24, 0x57, 0xbc, 0xb6, 0xcf,
|
||||
0x92, 0x6a, 0x77, 0xa6, 0xe2, 0xe1, 0x0e, 0x58, 0xea, 0x9f, 0x90, 0x7c, 0x3f, 0x23, 0x62, 0x5e,
|
||||
0xcd, 0x26, 0xcc, 0xbb, 0xf6, 0xdc, 0xba, 0x67, 0xef, 0xba, 0xbb, 0xf1, 0xfd, 0x0b, 0x51, 0x82,
|
||||
0xd2, 0x46, 0x06, 0xab, 0x0f, 0xee, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42,
|
||||
0x60, 0x82,
|
||||
};
|
||||
|
||||
const BITMAP_OPAQUE book_xpm[1] = {{ png, sizeof( png ), "book_xpm" }};
|
||||
|
||||
//EOF
|
||||
@@ -0,0 +1,87 @@
|
||||
|
||||
/* Do not modify this file, it was automatically generated by the
|
||||
* PNG2cpp CMake script, using a *.png file as input.
|
||||
*/
|
||||
|
||||
#include <bitmaps_png/bitmaps_list.h>
|
||||
|
||||
static const unsigned char png[] = {
|
||||
0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52,
|
||||
0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1a, 0x08, 0x06, 0x00, 0x00, 0x00, 0xa9, 0x4a, 0x4c,
|
||||
0xce, 0x00, 0x00, 0x04, 0x58, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0xb5, 0x96, 0x6b, 0x48, 0xa4,
|
||||
0x55, 0x18, 0xc7, 0x4f, 0x52, 0xb1, 0x49, 0xd4, 0xba, 0x50, 0x51, 0x81, 0x0b, 0xed, 0x87, 0xed,
|
||||
0x02, 0xa2, 0x89, 0x8a, 0xe6, 0xad, 0x56, 0x51, 0x51, 0xd1, 0xe6, 0x83, 0x09, 0x86, 0xa0, 0x48,
|
||||
0xa9, 0x69, 0x48, 0x5e, 0xc2, 0xdb, 0xec, 0x5c, 0xb6, 0x12, 0x9c, 0x34, 0x42, 0x74, 0x57, 0x45,
|
||||
0x68, 0x26, 0xbf, 0x2c, 0x53, 0xe8, 0x8a, 0x69, 0xea, 0x07, 0xef, 0x97, 0x41, 0x4a, 0x44, 0x2b,
|
||||
0x16, 0x46, 0x28, 0x5d, 0xc6, 0x51, 0xca, 0x0f, 0x66, 0x9a, 0x33, 0xce, 0xd3, 0xff, 0x39, 0x3b,
|
||||
0xef, 0xf0, 0x2a, 0xe6, 0x8e, 0xd1, 0x1e, 0xf8, 0x31, 0x73, 0xce, 0x9c, 0xf7, 0xf9, 0x9f, 0xf3,
|
||||
0x3c, 0xff, 0x73, 0xde, 0x11, 0xe2, 0xd4, 0xb6, 0xf8, 0xb4, 0x10, 0xf3, 0xcb, 0x42, 0x2c, 0x7c,
|
||||
0x7e, 0x6c, 0xd8, 0x28, 0xde, 0x12, 0x06, 0xf1, 0xde, 0xb9, 0xb9, 0x21, 0xde, 0x3e, 0x5d, 0x47,
|
||||
0xcc, 0x87, 0x03, 0x02, 0xbf, 0xf8, 0x86, 0x0c, 0xe2, 0x5d, 0x08, 0xdd, 0xc3, 0x43, 0xb7, 0xce,
|
||||
0x8d, 0x41, 0x34, 0xfb, 0x27, 0x74, 0x43, 0xbc, 0x23, 0x45, 0x0c, 0xe2, 0x35, 0xf1, 0xff, 0x36,
|
||||
0x95, 0xd0, 0xc3, 0x13, 0x51, 0x09, 0x5d, 0x18, 0xbb, 0xf7, 0x10, 0x45, 0x54, 0x42, 0x97, 0xac,
|
||||
0x2e, 0x08, 0xbd, 0xe2, 0x1b, 0xd6, 0x89, 0x40, 0xf0, 0xd2, 0x7f, 0xe0, 0x85, 0xb3, 0x85, 0x02,
|
||||
0xa6, 0xec, 0xbe, 0xa1, 0xcf, 0x44, 0x10, 0x44, 0x17, 0xc1, 0xaf, 0x48, 0xa7, 0xfd, 0x5c, 0x18,
|
||||
0xc5, 0x5d, 0x25, 0x4c, 0x1d, 0x78, 0x11, 0x58, 0xc0, 0x6d, 0x21, 0xcc, 0xb1, 0xc7, 0xcc, 0xa0,
|
||||
0x13, 0x17, 0x31, 0xd9, 0x86, 0x14, 0xfa, 0xec, 0x4e, 0x44, 0x17, 0xc0, 0x07, 0x40, 0x07, 0xc2,
|
||||
0xfc, 0xc9, 0x13, 0x56, 0x2f, 0x66, 0x41, 0x21, 0xb8, 0x03, 0x3a, 0x84, 0x08, 0xd3, 0xfb, 0x84,
|
||||
0x4e, 0x11, 0xf1, 0x0a, 0xfd, 0xb4, 0xb2, 0xb2, 0x42, 0x63, 0x63, 0x63, 0x74, 0x78, 0x78, 0xe8,
|
||||
0x41, 0xff, 0xe5, 0x07, 0x09, 0x25, 0x82, 0x56, 0x60, 0x05, 0x1a, 0x50, 0x21, 0xc4, 0xab, 0xcd,
|
||||
0x52, 0xe8, 0x91, 0xd9, 0xbb, 0x8a, 0x08, 0x02, 0xbd, 0x0f, 0x4c, 0xe0, 0x71, 0xaf, 0xd0, 0x51,
|
||||
0x6c, 0x6c, 0x2c, 0x65, 0x67, 0x67, 0xd3, 0xd0, 0xd0, 0x10, 0xba, 0xd4, 0xec, 0x1d, 0xd7, 0x80,
|
||||
0x9b, 0xe0, 0xe2, 0x49, 0xa1, 0x40, 0x2e, 0x0a, 0xb0, 0x01, 0x2e, 0xbc, 0x43, 0x88, 0xaa, 0x4c,
|
||||
0x29, 0x14, 0xf4, 0xed, 0x3e, 0x1f, 0x36, 0x3c, 0x74, 0x6b, 0x6b, 0x6b, 0x8b, 0xe6, 0xe6, 0xe6,
|
||||
0x38, 0xe0, 0x9f, 0xe0, 0x9b, 0xed, 0xed, 0x6d, 0xd2, 0x68, 0x34, 0x64, 0x36, 0x9b, 0x49, 0xab,
|
||||
0xd5, 0xf2, 0xf8, 0x26, 0x98, 0xdf, 0xd9, 0xd9, 0xa1, 0xc9, 0xc9, 0x49, 0xee, 0xff, 0x0e, 0x2e,
|
||||
0xa9, 0x85, 0x1e, 0x05, 0x01, 0xde, 0xef, 0x8f, 0x81, 0x27, 0x7c, 0x66, 0x08, 0xfc, 0xde, 0x89,
|
||||
0xc9, 0x97, 0xf7, 0xf7, 0xf7, 0x29, 0x2e, 0x2e, 0x8e, 0x72, 0x73, 0x73, 0xa9, 0xb8, 0xb8, 0x98,
|
||||
0x26, 0x26, 0x26, 0x28, 0x2b, 0x2b, 0x8b, 0x0c, 0x06, 0x03, 0x4d, 0x4d, 0x4d, 0x51, 0x68, 0x68,
|
||||
0x28, 0x75, 0x74, 0x74, 0x90, 0xd5, 0x6a, 0xa5, 0xf8, 0xf8, 0x78, 0x4a, 0x4d, 0x4d, 0xa5, 0xc1,
|
||||
0xc1, 0x41, 0x16, 0x1b, 0x50, 0x0b, 0x45, 0x83, 0x3f, 0x78, 0xd7, 0xc0, 0x03, 0x56, 0x84, 0xd0,
|
||||
0xa7, 0x28, 0x35, 0xc2, 0xe4, 0x27, 0x3d, 0x1e, 0x8f, 0x3b, 0x3d, 0x3d, 0x5d, 0x3e, 0xdc, 0xd5,
|
||||
0xd5, 0x45, 0x45, 0x45, 0x45, 0xd4, 0xd7, 0xd7, 0x27, 0x45, 0x98, 0xf1, 0xf1, 0x71, 0xd2, 0xeb,
|
||||
0xf5, 0x54, 0x51, 0x51, 0x21, 0x77, 0xcd, 0x8b, 0x58, 0x5e, 0x5e, 0x66, 0x21, 0xd3, 0x59, 0x35,
|
||||
0xd3, 0x0a, 0x11, 0xf2, 0x89, 0xda, 0x75, 0x78, 0xe0, 0xd3, 0xb5, 0xb5, 0x35, 0xb9, 0xd2, 0xd9,
|
||||
0xd9, 0x59, 0x19, 0x7c, 0x66, 0x66, 0x46, 0x7e, 0x57, 0x98, 0x9e, 0x9e, 0x96, 0x63, 0x2d, 0x2d,
|
||||
0x2d, 0xd4, 0xd0, 0xd0, 0xc0, 0x22, 0xdb, 0x27, 0x03, 0x73, 0xea, 0x82, 0xbc, 0x3c, 0x0f, 0x6e,
|
||||
0xc2, 0x88, 0x5a, 0xd5, 0x8e, 0xae, 0x01, 0x8b, 0xd3, 0xe9, 0x94, 0x42, 0x2c, 0xc2, 0x81, 0xb9,
|
||||
0x36, 0x19, 0x19, 0x19, 0x72, 0xac, 0xba, 0xba, 0x5a, 0x8a, 0xb0, 0x98, 0xc9, 0x64, 0xa2, 0xa6,
|
||||
0xa6, 0x26, 0x16, 0x72, 0x80, 0x62, 0xb5, 0x29, 0xa2, 0xc0, 0x96, 0x37, 0x7d, 0xbf, 0x81, 0xef,
|
||||
0x84, 0xe8, 0x8e, 0x67, 0xa1, 0x2b, 0x57, 0x7e, 0x3c, 0x74, 0x38, 0x1c, 0xd4, 0xdf, 0xdf, 0x4f,
|
||||
0x39, 0x39, 0x39, 0x32, 0x08, 0x07, 0xe4, 0xb4, 0xa5, 0xa4, 0xa4, 0x10, 0x17, 0x1e, 0xcd, 0xd3,
|
||||
0xd6, 0xd6, 0x46, 0x65, 0x65, 0x65, 0x72, 0x01, 0x6c, 0x84, 0xa8, 0xa8, 0x28, 0xea, 0xec, 0xec,
|
||||
0xa4, 0xa5, 0xa5, 0x25, 0x3a, 0x3a, 0x3a, 0x62, 0xeb, 0xbf, 0x79, 0x72, 0x77, 0xcf, 0x80, 0x60,
|
||||
0xc5, 0x0c, 0x57, 0xaf, 0x2e, 0x51, 0x48, 0x48, 0x08, 0xe9, 0x74, 0x3a, 0xea, 0xed, 0xed, 0x95,
|
||||
0x22, 0x4c, 0x55, 0x55, 0x95, 0xac, 0x0b, 0xda, 0x17, 0xe0, 0x59, 0xe0, 0x4e, 0x4b, 0x4b, 0x93,
|
||||
0xf5, 0xe1, 0x1d, 0xb3, 0xdd, 0x39, 0x85, 0x5c, 0x2b, 0x8b, 0xc5, 0xc2, 0xf3, 0xbe, 0xe2, 0xe0,
|
||||
0x4f, 0x01, 0xbe, 0x22, 0x86, 0x01, 0xd7, 0xc4, 0x29, 0x44, 0xa9, 0x46, 0x11, 0x8a, 0x88, 0x88,
|
||||
0xa0, 0xfc, 0xfc, 0x7c, 0x32, 0x1a, 0x8d, 0x32, 0x38, 0x0b, 0xd5, 0xd5, 0xd5, 0xd1, 0xc0, 0xc0,
|
||||
0x00, 0x07, 0x18, 0x01, 0x59, 0xbc, 0xea, 0xe4, 0xe4, 0x64, 0x9f, 0x50, 0x4f, 0x4f, 0x0f, 0x95,
|
||||
0x97, 0x97, 0x53, 0x4c, 0x4c, 0x8c, 0xcc, 0x06, 0x5a, 0x17, 0x0b, 0xc5, 0x81, 0x2f, 0xef, 0x9b,
|
||||
0x00, 0x6f, 0x43, 0x1c, 0x22, 0x64, 0xb3, 0x96, 0x85, 0x82, 0x83, 0x7f, 0xd8, 0xe3, 0x59, 0x76,
|
||||
0xbb, 0x9d, 0x6a, 0x6b, 0x6b, 0xa5, 0xb3, 0xb8, 0x0e, 0xa3, 0xa3, 0xa3, 0xd2, 0xee, 0x9c, 0xaa,
|
||||
0xf5, 0xf5, 0x75, 0x69, 0x79, 0x5e, 0x08, 0xf7, 0x79, 0x31, 0xca, 0x6f, 0x7c, 0x2c, 0xd0, 0x76,
|
||||
0x95, 0x5b, 0xe3, 0x9a, 0x57, 0x48, 0x07, 0x3e, 0x04, 0xd7, 0x85, 0x88, 0x68, 0x54, 0x99, 0x81,
|
||||
0xef, 0xb4, 0xd2, 0xdd, 0xdd, 0x5d, 0x79, 0x46, 0x14, 0xc7, 0x0d, 0x0f, 0x0f, 0x53, 0x49, 0x49,
|
||||
0x09, 0xe5, 0xe5, 0xe5, 0x51, 0x7b, 0x7b, 0xbb, 0xcf, 0x79, 0x8d, 0x8d, 0x8d, 0xb2, 0x3e, 0x7c,
|
||||
0x45, 0xf1, 0x19, 0x54, 0xd7, 0xe5, 0x0d, 0x60, 0x3f, 0x4e, 0xc2, 0x47, 0x27, 0xec, 0x7d, 0x7b,
|
||||
0x61, 0x61, 0x41, 0x1a, 0x42, 0x49, 0x8f, 0xda, 0xde, 0x8a, 0xe3, 0xf8, 0x93, 0xd3, 0x56, 0x50,
|
||||
0x50, 0xc0, 0x42, 0x7f, 0x81, 0x40, 0xbf, 0xdf, 0xb0, 0x5c, 0x6c, 0x97, 0xcb, 0xe5, 0x49, 0x4c,
|
||||
0x4c, 0x94, 0x37, 0x42, 0x7d, 0x7d, 0x3d, 0x25, 0x25, 0x25, 0x51, 0x6b, 0x6b, 0xab, 0x74, 0x18,
|
||||
0x0b, 0xf0, 0x8d, 0xc0, 0xc1, 0xf9, 0xde, 0x1b, 0x19, 0x19, 0xa1, 0xc2, 0xc2, 0x42, 0x79, 0xd9,
|
||||
0xa2, 0x7d, 0x7d, 0x6e, 0x21, 0x76, 0x50, 0x42, 0x42, 0x02, 0xb1, 0x95, 0xf9, 0xde, 0xab, 0xa9,
|
||||
0xa9, 0xa1, 0xca, 0xca, 0x4a, 0x59, 0x93, 0xf0, 0xf0, 0x70, 0xb9, 0xb3, 0xd5, 0xd5, 0x55, 0x62,
|
||||
0x53, 0x44, 0x47, 0x47, 0x93, 0xcd, 0x66, 0x63, 0x21, 0xb3, 0xff, 0xff, 0x19, 0xee, 0xa7, 0xae,
|
||||
0xf4, 0xe0, 0xe0, 0xc0, 0xb3, 0xb9, 0xb9, 0x29, 0xbd, 0x01, 0x2a, 0xb9, 0x66, 0x99, 0x99, 0x99,
|
||||
0xd4, 0xdd, 0xdd, 0xad, 0x1c, 0xd0, 0x55, 0xbe, 0xb5, 0xdd, 0x6e, 0xb7, 0x67, 0x63, 0x63, 0x43,
|
||||
0xe9, 0x07, 0x3c, 0x40, 0x68, 0xee, 0x75, 0xaf, 0xd0, 0xcf, 0xaa, 0xf7, 0x4f, 0x18, 0xc8, 0x56,
|
||||
0xf5, 0x5d, 0xec, 0xae, 0xc8, 0xc8, 0x48, 0x59, 0x33, 0xb4, 0xeb, 0xde, 0xf1, 0xcb, 0xa0, 0xc0,
|
||||
0xcf, 0xff, 0x0c, 0x8b, 0x28, 0xe2, 0xfc, 0x20, 0x04, 0x3f, 0xfe, 0xb7, 0x19, 0x08, 0x36, 0xba,
|
||||
0xb7, 0xb7, 0x47, 0x7c, 0x73, 0xa0, 0xfd, 0x0d, 0x9e, 0x3b, 0x2b, 0xe2, 0x3f, 0x64, 0x1d, 0xf5,
|
||||
0x90, 0x43, 0x37, 0x56, 0xad, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60,
|
||||
0x82,
|
||||
};
|
||||
|
||||
const BITMAP_OPAQUE bus_definition_tool_xpm[1] = {{ png, sizeof( png ), "bus_definition_tool_xpm" }};
|
||||
|
||||
//EOF
|
||||
@@ -0,0 +1,45 @@
|
||||
|
||||
/* Do not modify this file, it was automatically generated by the
|
||||
* PNG2cpp CMake script, using a *.png file as input.
|
||||
*/
|
||||
|
||||
#include <bitmaps_png/bitmaps_list.h>
|
||||
|
||||
static const unsigned char png[] = {
|
||||
0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52,
|
||||
0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1a, 0x08, 0x04, 0x00, 0x00, 0x00, 0x03, 0x43, 0x84,
|
||||
0x45, 0x00, 0x00, 0x01, 0xc7, 0x49, 0x44, 0x41, 0x54, 0x38, 0xcb, 0x95, 0x94, 0xbb, 0x4f, 0xc2,
|
||||
0x50, 0x14, 0xc6, 0xbf, 0x2a, 0x21, 0x91, 0xd5, 0x8d, 0x38, 0x34, 0xba, 0xa1, 0xb8, 0xd0, 0xc1,
|
||||
0x41, 0x01, 0x11, 0x16, 0xf1, 0x1f, 0x70, 0x70, 0xd1, 0x89, 0x38, 0xaa, 0x69, 0xe2, 0xa4, 0x4e,
|
||||
0x1a, 0x07, 0x56, 0xcb, 0x66, 0x34, 0xf2, 0x1a, 0x1c, 0xd4, 0xc1, 0x18, 0x12, 0x17, 0x9c, 0x40,
|
||||
0x37, 0x95, 0x89, 0xc6, 0xc4, 0x26, 0xb2, 0xc0, 0x40, 0x4c, 0x0c, 0x31, 0xf5, 0xf6, 0x45, 0xef,
|
||||
0x6d, 0x0b, 0xea, 0x39, 0xcb, 0xbd, 0x3d, 0xfd, 0xf5, 0x9e, 0x47, 0xbf, 0x0b, 0xfc, 0xd3, 0x4e,
|
||||
0x42, 0xf4, 0x6e, 0x04, 0xdc, 0xd0, 0xb7, 0xf5, 0xb8, 0x94, 0x95, 0x54, 0x29, 0xac, 0xef, 0x83,
|
||||
0x81, 0x48, 0x29, 0x29, 0x27, 0xe5, 0x48, 0x31, 0x18, 0x20, 0x5b, 0x1e, 0xeb, 0xc8, 0xe1, 0x8a,
|
||||
0x78, 0x8e, 0xac, 0x78, 0x3b, 0x2e, 0x36, 0x08, 0x92, 0x35, 0x3f, 0x12, 0x29, 0x96, 0x7b, 0x8a,
|
||||
0xaa, 0xa8, 0xe5, 0xde, 0x74, 0x0d, 0x55, 0xb4, 0x70, 0x86, 0x0c, 0x56, 0x88, 0x67, 0xc8, 0xaa,
|
||||
0x85, 0x6a, 0xa8, 0xae, 0xc5, 0x2b, 0xaa, 0xa4, 0x8a, 0xaf, 0xd6, 0xc1, 0xdc, 0x92, 0xac, 0x21,
|
||||
0x9a, 0x2f, 0x74, 0x91, 0x86, 0x8f, 0x49, 0xcb, 0x87, 0x74, 0xb4, 0x6b, 0x20, 0x77, 0x6a, 0xa2,
|
||||
0x69, 0x15, 0xc1, 0x25, 0xfa, 0xd0, 0xe2, 0x9b, 0x47, 0x65, 0x24, 0xae, 0x21, 0x47, 0x24, 0x6e,
|
||||
0x43, 0x10, 0x0a, 0x25, 0x3d, 0xbd, 0xc2, 0xf7, 0xd4, 0x17, 0x44, 0x8c, 0x3a, 0xa9, 0x9d, 0x67,
|
||||
0x0d, 0xd9, 0x52, 0x4b, 0x3d, 0xe1, 0xa2, 0xff, 0x30, 0x18, 0x08, 0xd5, 0x63, 0xdd, 0x54, 0x53,
|
||||
0xc8, 0xfb, 0x67, 0x70, 0x8b, 0x27, 0xcc, 0xd1, 0x48, 0xee, 0x90, 0xd4, 0xd2, 0xe0, 0xdb, 0x7c,
|
||||
0x5b, 0xc8, 0x4f, 0x8c, 0xd1, 0x91, 0x07, 0x2c, 0x9b, 0x07, 0x73, 0x58, 0x83, 0x82, 0x63, 0xf8,
|
||||
0x6d, 0x44, 0xef, 0xd8, 0x1e, 0x71, 0xc6, 0x78, 0x7c, 0x30, 0xe5, 0x8f, 0xe3, 0x12, 0x35, 0x4c,
|
||||
0x52, 0x88, 0x07, 0xb4, 0x81, 0x73, 0x57, 0xf9, 0x9b, 0x78, 0x3f, 0x38, 0xa5, 0xe6, 0xe2, 0x82,
|
||||
0x24, 0x32, 0x11, 0x97, 0xed, 0x96, 0x29, 0xc4, 0x03, 0xba, 0x21, 0xd3, 0x71, 0x18, 0x95, 0xd8,
|
||||
0x00, 0xe8, 0x9a, 0x4c, 0xdf, 0x85, 0xac, 0x7e, 0x22, 0x3e, 0x0c, 0x72, 0xa4, 0x67, 0x9e, 0x32,
|
||||
0x4f, 0xda, 0x93, 0x18, 0x0c, 0x31, 0x8d, 0xa0, 0x12, 0xa3, 0xb1, 0x61, 0x2d, 0x77, 0xd4, 0x62,
|
||||
0x63, 0x2e, 0xa8, 0x3f, 0x5c, 0x57, 0xf9, 0x36, 0xb6, 0xef, 0x80, 0xc8, 0x6f, 0xf4, 0x18, 0xeb,
|
||||
0x26, 0xe5, 0xed, 0x17, 0x17, 0xa2, 0x63, 0x5c, 0x2b, 0x7c, 0x1f, 0xef, 0xc4, 0x3b, 0xa6, 0xde,
|
||||
0x68, 0x3d, 0xb1, 0x7a, 0xa1, 0x6d, 0xb6, 0x52, 0x50, 0x0d, 0xbd, 0x09, 0x79, 0x46, 0x4f, 0x86,
|
||||
0x5e, 0xa2, 0x6d, 0x3d, 0x77, 0x87, 0xc7, 0xda, 0x96, 0x74, 0x18, 0x3d, 0x19, 0x88, 0x32, 0x00,
|
||||
0x8a, 0x7a, 0x40, 0xba, 0x5e, 0x34, 0x84, 0xd1, 0x0b, 0x65, 0x96, 0xde, 0xa8, 0xb8, 0x76, 0xc3,
|
||||
0x88, 0x8d, 0x54, 0x53, 0xd3, 0x13, 0xab, 0x17, 0xbb, 0x51, 0x42, 0x81, 0x89, 0x4b, 0x61, 0xb3,
|
||||
0x63, 0xdc, 0x2f, 0x57, 0x18, 0x1b, 0x67, 0xaf, 0xbf, 0xbf, 0xd8, 0x0f, 0x3c, 0x1e, 0x28, 0x8f,
|
||||
0xaa, 0xd6, 0xe8, 0xf2, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82,
|
||||
};
|
||||
|
||||
const BITMAP_OPAQUE curved_ratsnest_xpm[1] = {{ png, sizeof( png ), "curved_ratsnest_xpm" }};
|
||||
|
||||
//EOF
|
||||
@@ -1,40 +0,0 @@
|
||||
|
||||
/* Do not modify this file, it was automatically generated by the
|
||||
* PNG2cpp CMake script, using a *.png file as input.
|
||||
*/
|
||||
|
||||
#include <bitmaps_png/bitmaps_list.h>
|
||||
|
||||
static const unsigned char png[] = {
|
||||
0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52,
|
||||
0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1a, 0x08, 0x06, 0x00, 0x00, 0x00, 0xa9, 0x4a, 0x4c,
|
||||
0xce, 0x00, 0x00, 0x01, 0x75, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0xc5, 0x96, 0xbf, 0x4b, 0xc3,
|
||||
0x40, 0x14, 0x80, 0x2f, 0xbd, 0xa4, 0x22, 0x38, 0x14, 0x1d, 0x3a, 0x28, 0x8a, 0x20, 0x3a, 0x3b,
|
||||
0xf9, 0x0b, 0xc5, 0x7f, 0xc0, 0xa9, 0x28, 0xb8, 0x08, 0x0e, 0xfe, 0xc0, 0x45, 0x14, 0x6c, 0xdd,
|
||||
0x04, 0x27, 0x1d, 0x1c, 0x1c, 0x9c, 0x1d, 0x5d, 0x04, 0x87, 0x0a, 0x8e, 0x2e, 0x96, 0x82, 0x93,
|
||||
0x93, 0x8b, 0x60, 0x0b, 0x82, 0x9b, 0x83, 0x83, 0x5a, 0x29, 0xf6, 0xfc, 0x72, 0x3e, 0xdb, 0x0c,
|
||||
0x1d, 0xef, 0x34, 0xf0, 0x91, 0xdc, 0x05, 0xde, 0x97, 0x97, 0x77, 0xf7, 0x12, 0xa5, 0xfe, 0xeb,
|
||||
0x30, 0x4a, 0xf5, 0x43, 0x01, 0xf2, 0xb0, 0x2a, 0x2c, 0xc3, 0xbc, 0xd0, 0xeb, 0x4a, 0xd4, 0x05,
|
||||
0x1f, 0x60, 0x4c, 0x10, 0x18, 0x7b, 0x6e, 0x71, 0x0d, 0x69, 0x97, 0x59, 0x5d, 0x5a, 0x89, 0xd6,
|
||||
0xc6, 0xa4, 0x52, 0xbf, 0x92, 0x7b, 0xc8, 0xb8, 0x7e, 0x7d, 0x2b, 0x36, 0x78, 0x2c, 0x89, 0x65,
|
||||
0x5a, 0x37, 0xb8, 0xde, 0xf0, 0x51, 0xa7, 0x2c, 0x7c, 0x89, 0xac, 0xde, 0x94, 0x85, 0xe1, 0x01,
|
||||
0x73, 0xda, 0xb5, 0xac, 0x04, 0x0d, 0x58, 0x44, 0xb2, 0x04, 0xef, 0x22, 0x8c, 0xeb, 0x94, 0x75,
|
||||
0x29, 0x8a, 0x57, 0x5d, 0xbe, 0x39, 0x8e, 0xa2, 0x51, 0x24, 0x8f, 0x22, 0x7b, 0x62, 0x3c, 0xee,
|
||||
0x6c, 0xf5, 0xb5, 0x99, 0xeb, 0x41, 0x72, 0x25, 0xb2, 0x1a, 0xaf, 0x75, 0xd3, 0xe7, 0x3e, 0x4b,
|
||||
0x51, 0xab, 0x7d, 0x5b, 0xb3, 0x1f, 0xe1, 0x29, 0x73, 0x9d, 0xee, 0x45, 0x61, 0x38, 0x4b, 0xf0,
|
||||
0x62, 0x42, 0xf4, 0x49, 0x66, 0x5b, 0xee, 0xb2, 0xd0, 0x7a, 0x0e, 0xca, 0x12, 0x3c, 0xe6, 0x15,
|
||||
0xe9, 0x31, 0xf7, 0xfa, 0xdc, 0x74, 0x09, 0xea, 0x40, 0xd0, 0x6a, 0x42, 0x50, 0x61, 0xae, 0xe0,
|
||||
0x6c, 0xf3, 0x12, 0xec, 0xc4, 0x3e, 0x75, 0x4b, 0x70, 0x0b, 0x0b, 0x4e, 0xf7, 0x11, 0xc1, 0x86,
|
||||
0xa1, 0x2e, 0xfd, 0xee, 0x01, 0x41, 0xce, 0xd7, 0xca, 0x1a, 0x80, 0xf3, 0x44, 0x33, 0x3d, 0xf3,
|
||||
0xfd, 0xc9, 0x98, 0x82, 0x32, 0x4c, 0xc8, 0x78, 0x1d, 0x26, 0x7d, 0x4b, 0x07, 0xa1, 0x26, 0x19,
|
||||
0x16, 0x61, 0xc8, 0x97, 0x28, 0x0d, 0xdb, 0xf0, 0x22, 0xb2, 0x92, 0xef, 0xcc, 0xba, 0xe1, 0x08,
|
||||
0x66, 0x64, 0xbc, 0x0b, 0x3b, 0xd0, 0xe1, 0x5b, 0xfa, 0x26, 0x19, 0x56, 0x6c, 0xa7, 0x57, 0x2a,
|
||||
0xf0, 0x25, 0x1b, 0x83, 0x1b, 0x91, 0xdd, 0xd9, 0x2e, 0xe2, 0x4b, 0x26, 0xc2, 0x1c, 0x4c, 0xcb,
|
||||
0xf5, 0x1e, 0x5c, 0xc0, 0x88, 0x4f, 0x61, 0x04, 0x55, 0xc9, 0xf0, 0xd9, 0xe9, 0xcf, 0x4c, 0x1b,
|
||||
0x59, 0x06, 0x0e, 0x61, 0xed, 0xcf, 0xff, 0x17, 0xbf, 0x01, 0x98, 0x8d, 0xef, 0xd2, 0xf8, 0x39,
|
||||
0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82,
|
||||
};
|
||||
|
||||
const BITMAP_OPAQUE dashline_xpm[1] = {{ png, sizeof( png ), "dashline_xpm" }};
|
||||
|
||||
//EOF
|
||||
@@ -1,65 +0,0 @@
|
||||
|
||||
/* Do not modify this file, it was automatically generated by the
|
||||
* PNG2cpp CMake script, using a *.png file as input.
|
||||
*/
|
||||
|
||||
#include <bitmaps_png/bitmaps_list.h>
|
||||
|
||||
static const unsigned char png[] = {
|
||||
0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52,
|
||||
0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1a, 0x08, 0x06, 0x00, 0x00, 0x00, 0xa9, 0x4a, 0x4c,
|
||||
0xce, 0x00, 0x00, 0x03, 0x07, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0xed, 0x95, 0x4b, 0x4c, 0x13,
|
||||
0x61, 0x10, 0xc7, 0xa1, 0x85, 0x10, 0x81, 0xbe, 0x78, 0x97, 0x57, 0xd3, 0x96, 0x47, 0x36, 0x2d,
|
||||
0xa1, 0x5c, 0x84, 0xa0, 0x10, 0xb8, 0x20, 0x44, 0x0e, 0x1a, 0x09, 0x48, 0x44, 0xe4, 0x00, 0x9a,
|
||||
0x18, 0x13, 0x0f, 0xc6, 0x8b, 0x47, 0x6f, 0x1c, 0x0c, 0x89, 0xc6, 0x9b, 0x77, 0x93, 0x56, 0x8f,
|
||||
0x6a, 0xb8, 0x1a, 0x8b, 0xe2, 0x41, 0xe3, 0x05, 0x0d, 0x6d, 0xda, 0xc4, 0xd4, 0x22, 0x84, 0x94,
|
||||
0xdd, 0x2e, 0xef, 0x06, 0xc6, 0xff, 0xd4, 0x5d, 0x5c, 0x2a, 0x52, 0xdb, 0x70, 0xf0, 0xe0, 0x97,
|
||||
0xfc, 0xd2, 0xed, 0x63, 0xe7, 0xb7, 0x33, 0xdf, 0x7c, 0xd3, 0x9c, 0x9c, 0x2c, 0x16, 0x11, 0x59,
|
||||
0x24, 0x49, 0x7a, 0x1d, 0x08, 0x04, 0x56, 0x70, 0xdd, 0x95, 0xf2, 0x9d, 0x63, 0x69, 0x69, 0xe9,
|
||||
0x73, 0x24, 0x12, 0x09, 0xe2, 0xba, 0x29, 0x27, 0xdb, 0xc5, 0x92, 0x58, 0x2c, 0xf6, 0xb1, 0xa3,
|
||||
0xad, 0x8d, 0x8c, 0x85, 0x85, 0xe4, 0xf7, 0xfb, 0x37, 0x55, 0x19, 0x4b, 0x42, 0xa1, 0xd0, 0x37,
|
||||
0x47, 0x4d, 0x0d, 0xd5, 0x57, 0x56, 0xd2, 0xe2, 0xe2, 0xe2, 0xf7, 0xac, 0x64, 0x5a, 0x49, 0x5f,
|
||||
0x49, 0x09, 0x4d, 0x57, 0x54, 0x90, 0xe9, 0x97, 0xec, 0xaa, 0x2a, 0x99, 0x2a, 0x2b, 0xa3, 0x5b,
|
||||
0xe5, 0xe5, 0xd9, 0xcb, 0x76, 0x76, 0x76, 0x7c, 0xaa, 0x24, 0xd6, 0xd4, 0x44, 0x1b, 0x8d, 0x8d,
|
||||
0x34, 0x83, 0xa0, 0x2c, 0xf3, 0x7a, 0xbd, 0xc4, 0x92, 0x49, 0x8b, 0x85, 0x64, 0xbb, 0x9d, 0xd6,
|
||||
0x1b, 0x1a, 0x0e, 0x64, 0x5c, 0xc6, 0x8c, 0x44, 0xbb, 0xbb, 0xbb, 0x4f, 0xbb, 0xdb, 0xdb, 0xa9,
|
||||
0x17, 0xc1, 0x56, 0x11, 0x68, 0x1d, 0x01, 0xe5, 0xba, 0x3a, 0x7a, 0x60, 0x36, 0x53, 0x6e, 0x6e,
|
||||
0x2e, 0x4d, 0x9a, 0x4c, 0x24, 0x41, 0x26, 0xd7, 0xd7, 0x93, 0xec, 0x70, 0x24, 0x33, 0x63, 0x79,
|
||||
0x34, 0x1a, 0xfd, 0x92, 0x69, 0xe9, 0x8c, 0xa2, 0x28, 0xbe, 0xef, 0x82, 0xac, 0x07, 0xb2, 0x95,
|
||||
0xda, 0x5a, 0x8a, 0x5b, 0xad, 0x24, 0xa1, 0x84, 0x73, 0x90, 0x89, 0x08, 0x1c, 0x47, 0x06, 0x92,
|
||||
0x92, 0x19, 0x4b, 0xb8, 0x9c, 0xbc, 0x77, 0x87, 0x02, 0xb9, 0xdd, 0x74, 0xbe, 0xa5, 0x85, 0x26,
|
||||
0xfe, 0x84, 0xcb, 0x45, 0x97, 0x58, 0x16, 0x8f, 0xc7, 0xe7, 0x7b, 0x3b, 0x3b, 0xe9, 0x8c, 0xd1,
|
||||
0x48, 0x51, 0x94, 0x47, 0x44, 0x29, 0x45, 0x64, 0x23, 0x22, 0xb8, 0x88, 0xf7, 0xd7, 0x71, 0x6d,
|
||||
0xab, 0xaa, 0xe2, 0xfd, 0xf9, 0x4d, 0xa2, 0x63, 0xdc, 0xee, 0xfd, 0x79, 0xc8, 0xe8, 0x18, 0x42,
|
||||
0x4a, 0x66, 0x9e, 0x85, 0x85, 0x85, 0x7d, 0xbd, 0x4e, 0x47, 0x4f, 0x20, 0x13, 0x91, 0xcd, 0x5a,
|
||||
0x71, 0x71, 0xf2, 0x75, 0x0e, 0x32, 0x2e, 0xa3, 0xcf, 0xe7, 0xc3, 0xcf, 0x68, 0x4c, 0x2b, 0xd1,
|
||||
0x03, 0x13, 0xb0, 0xba, 0x5c, 0xdb, 0x1f, 0xd2, 0x89, 0xf8, 0x09, 0xc3, 0xe1, 0x70, 0xc4, 0x89,
|
||||
0xb2, 0x4d, 0xe0, 0xc9, 0xd7, 0x50, 0x36, 0x89, 0x33, 0x82, 0x40, 0xe2, 0xd2, 0x21, 0x93, 0x47,
|
||||
0x78, 0x6f, 0x4e, 0x69, 0x7d, 0x5e, 0x85, 0xa0, 0x0d, 0x5c, 0x10, 0x84, 0xe5, 0xc0, 0x71, 0xa2,
|
||||
0xc1, 0x41, 0xfa, 0x7a, 0xd0, 0xc2, 0x08, 0x16, 0x57, 0xf6, 0x48, 0xc4, 0xbe, 0x70, 0x66, 0xcb,
|
||||
0x78, 0x95, 0xb9, 0x19, 0x6c, 0x36, 0x9a, 0x39, 0xdc, 0xfa, 0x49, 0x59, 0x11, 0x38, 0x0d, 0x46,
|
||||
0xf5, 0xfa, 0x92, 0xa9, 0xfc, 0x7c, 0xeb, 0x0d, 0x15, 0x93, 0x69, 0xe8, 0x9e, 0x56, 0xe4, 0xf7,
|
||||
0x6f, 0x6f, 0x3a, 0x10, 0x7c, 0xbc, 0xb4, 0x94, 0x64, 0xa7, 0x33, 0x19, 0x30, 0x8e, 0xae, 0x9b,
|
||||
0x44, 0xc9, 0xb8, 0x8c, 0x3d, 0xc8, 0x70, 0x05, 0x9f, 0xad, 0xe3, 0xbb, 0x8d, 0xe6, 0x66, 0x9a,
|
||||
0x86, 0x98, 0x0f, 0x75, 0x30, 0x18, 0x5c, 0xd6, 0x66, 0x74, 0x11, 0x5c, 0x56, 0x18, 0x05, 0xd7,
|
||||
0x0c, 0x86, 0xbe, 0xbb, 0x5a, 0x91, 0xd7, 0xbb, 0x2f, 0x5d, 0x19, 0x1e, 0x26, 0x01, 0x4f, 0x1f,
|
||||
0x66, 0x11, 0x48, 0x76, 0x57, 0x75, 0x35, 0xf1, 0x9e, 0xa9, 0xdd, 0xb8, 0x8a, 0x33, 0xc6, 0xe7,
|
||||
0xac, 0x0f, 0xd7, 0x1d, 0x1e, 0x0f, 0xf1, 0xb8, 0x52, 0xf7, 0xc8, 0x02, 0xea, 0x80, 0x4d, 0x41,
|
||||
0xe0, 0x52, 0x1a, 0x0c, 0xe7, 0xee, 0x68, 0x45, 0xad, 0xad, 0x14, 0x4e, 0x24, 0x12, 0xcf, 0x54,
|
||||
0xd9, 0x38, 0xca, 0xa7, 0x69, 0x61, 0x8f, 0xda, 0xfa, 0xbd, 0xf8, 0x5c, 0x95, 0xf0, 0x24, 0xe1,
|
||||
0x89, 0xa2, 0xed, 0x3a, 0xbd, 0x86, 0x52, 0x30, 0x90, 0x2a, 0x52, 0x9a, 0x21, 0x8f, 0x65, 0x63,
|
||||
0x23, 0x23, 0xc4, 0x65, 0xd4, 0x9e, 0x13, 0xf5, 0x9c, 0xf1, 0xa1, 0xe6, 0x09, 0x92, 0x2a, 0x39,
|
||||
0x6a, 0x99, 0x41, 0xff, 0x51, 0x22, 0x25, 0x60, 0xde, 0xde, 0xde, 0xde, 0xc3, 0xad, 0xad, 0xad,
|
||||
0x59, 0x5c, 0xdb, 0x53, 0x0f, 0x35, 0x4f, 0x10, 0x1e, 0x57, 0xe9, 0x24, 0x69, 0x45, 0x27, 0xb9,
|
||||
0xfe, 0x8b, 0x4e, 0x5c, 0x94, 0x00, 0xc1, 0x0c, 0xb9, 0x9d, 0x8d, 0x28, 0x63, 0x30, 0xf1, 0xef,
|
||||
0xff, 0x3b, 0xa2, 0x82, 0x02, 0xe1, 0xa6, 0xdd, 0xfe, 0x66, 0xf6, 0x27, 0x73, 0xaf, 0x1c, 0x8e,
|
||||
0xb7, 0x2f, 0xff, 0x8e, 0x77, 0x2f, 0x9c, 0xce, 0x4f, 0xcf, 0x05, 0x41, 0x7e, 0x0c, 0x51, 0x7f,
|
||||
0x5a, 0x11, 0x18, 0x07, 0x13, 0x59, 0xc0, 0xf7, 0x0d, 0x28, 0x71, 0x8e, 0x5d, 0x06, 0x70, 0x96,
|
||||
0xe7, 0x9d, 0x32, 0x6c, 0x33, 0x85, 0xef, 0xeb, 0x06, 0xc6, 0x74, 0x22, 0x9e, 0x7d, 0xa7, 0x94,
|
||||
0xbf, 0x90, 0xe2, 0x2c, 0x28, 0x52, 0xee, 0xd7, 0xa9, 0x01, 0x7f, 0x00, 0x7c, 0x97, 0x16, 0x4f,
|
||||
0xe9, 0xb8, 0xa5, 0x4b, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82,
|
||||
};
|
||||
|
||||
const BITMAP_OPAQUE delete_bus_xpm[1] = {{ png, sizeof( png ), "delete_bus_xpm" }};
|
||||
|
||||
//EOF
|
||||
@@ -1,95 +0,0 @@
|
||||
|
||||
/* Do not modify this file, it was automatically generated by the
|
||||
* PNG2cpp CMake script, using a *.png file as input.
|
||||
*/
|
||||
|
||||
#include <bitmaps_png/bitmaps_list.h>
|
||||
|
||||
static const unsigned char png[] = {
|
||||
0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52,
|
||||
0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1a, 0x08, 0x06, 0x00, 0x00, 0x00, 0xa9, 0x4a, 0x4c,
|
||||
0xce, 0x00, 0x00, 0x04, 0xda, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0xa5, 0x55, 0x0b, 0x48, 0x9b,
|
||||
0x57, 0x14, 0x36, 0x69, 0x12, 0x5f, 0x69, 0xa2, 0xc6, 0x47, 0xac, 0x9a, 0x97, 0x69, 0xf2, 0x27,
|
||||
0xd1, 0xa9, 0xc8, 0x86, 0x1b, 0xcc, 0xad, 0x3e, 0x46, 0x71, 0x74, 0x63, 0xb0, 0x55, 0x86, 0x0a,
|
||||
0xb5, 0x9d, 0x1d, 0x6b, 0x19, 0xed, 0xba, 0x87, 0xa8, 0xdd, 0x74, 0x30, 0xc6, 0x60, 0x2b, 0x0c,
|
||||
0x69, 0x18, 0x5b, 0xa5, 0x1d, 0x14, 0x1c, 0x1b, 0x05, 0x57, 0xd1, 0xb5, 0x63, 0xe0, 0x60, 0x14,
|
||||
0x6c, 0xa8, 0xce, 0x4d, 0xa4, 0x65, 0x32, 0xdb, 0xd4, 0xb4, 0xf8, 0xa2, 0x9b, 0x51, 0xd3, 0xa8,
|
||||
0x31, 0xff, 0xd9, 0x77, 0xb3, 0xff, 0xd7, 0xdf, 0x36, 0xea, 0xea, 0x2e, 0x7c, 0x78, 0xff, 0x9b,
|
||||
0x73, 0xcf, 0x77, 0xcf, 0x39, 0xdf, 0x39, 0xc6, 0xc4, 0x6c, 0x73, 0x11, 0x51, 0xc5, 0xd8, 0xd8,
|
||||
0xd8, 0x9f, 0xa1, 0x50, 0xe8, 0x14, 0xf6, 0x32, 0xc9, 0xb9, 0x2a, 0x18, 0x0c, 0x9e, 0xf7, 0x7a,
|
||||
0xbd, 0xd7, 0xb1, 0x2f, 0x8a, 0xf9, 0x3f, 0x0b, 0x0e, 0x2a, 0x7b, 0x7b, 0x7b, 0x97, 0xe2, 0x94,
|
||||
0x4a, 0x3a, 0x58, 0x57, 0x47, 0x2b, 0x2b, 0x2b, 0x5f, 0x31, 0x32, 0x46, 0x12, 0x08, 0x04, 0x7a,
|
||||
0xaa, 0xca, 0xcb, 0x29, 0x59, 0xad, 0x26, 0x8f, 0xc7, 0xe3, 0xdf, 0x36, 0x99, 0x48, 0x92, 0x14,
|
||||
0x1f, 0x4f, 0x5f, 0xef, 0xda, 0x45, 0x05, 0x5a, 0x2d, 0x1d, 0xac, 0xad, 0x65, 0x64, 0x67, 0x44,
|
||||
0x92, 0xf2, 0x94, 0x14, 0x6a, 0xd7, 0xeb, 0x49, 0xb7, 0x5d, 0x32, 0x5c, 0x48, 0xe8, 0xef, 0xef,
|
||||
0x0f, 0xa8, 0x63, 0x63, 0xe9, 0x62, 0x76, 0x36, 0x05, 0x6c, 0x36, 0xf2, 0x99, 0xcd, 0xab, 0x64,
|
||||
0x55, 0x65, 0x65, 0x54, 0x96, 0x94, 0x44, 0x33, 0x46, 0x23, 0x2d, 0xe4, 0xe6, 0xd2, 0x97, 0x78,
|
||||
0x08, 0x8b, 0x6c, 0x74, 0x74, 0x74, 0xfc, 0x91, 0x88, 0x06, 0x06, 0x06, 0x94, 0x37, 0xb1, 0x8c,
|
||||
0x78, 0x6d, 0x4b, 0x46, 0x46, 0xc4, 0xd9, 0xbc, 0xc1, 0x40, 0xb7, 0x33, 0x33, 0xa9, 0x60, 0xe7,
|
||||
0x4e, 0x2a, 0x07, 0xe1, 0x14, 0xf6, 0xf3, 0x39, 0x39, 0x34, 0x87, 0x07, 0x1c, 0x48, 0x4d, 0xa5,
|
||||
0x42, 0x8e, 0xa3, 0xe9, 0xe9, 0xe9, 0x2b, 0x9b, 0xbd, 0x5f, 0xe6, 0x72, 0x51, 0x99, 0xcb, 0x15,
|
||||
0x3e, 0xe5, 0x72, 0xf1, 0x57, 0xf3, 0xf2, 0xf8, 0x71, 0xe0, 0xef, 0xbd, 0x7b, 0xc3, 0xe3, 0xd7,
|
||||
0xae, 0x8d, 0x2d, 0x31, 0xb2, 0x66, 0x9d, 0x8e, 0xe6, 0xb2, 0xb2, 0xc8, 0x9f, 0x9e, 0x4e, 0x33,
|
||||
0xd8, 0xff, 0x05, 0xb0, 0xfd, 0x2c, 0x22, 0xa9, 0x4f, 0x4e, 0xa6, 0x42, 0xbb, 0x9d, 0x26, 0x27,
|
||||
0x27, 0x7f, 0x47, 0x26, 0x92, 0xa3, 0x52, 0x80, 0x60, 0x1f, 0x9c, 0x0e, 0xe7, 0xe5, 0x11, 0x45,
|
||||
0x43, 0x65, 0x25, 0x51, 0x7f, 0xff, 0x2d, 0x32, 0x22, 0xaa, 0x93, 0x48, 0x95, 0x1f, 0x04, 0xb3,
|
||||
0x1a, 0x0d, 0xcd, 0x22, 0x22, 0x3f, 0xa2, 0x38, 0x84, 0xb3, 0xc7, 0x90, 0x56, 0x81, 0x24, 0x25,
|
||||
0x1a, 0x81, 0x0a, 0x8e, 0xdc, 0x0f, 0x3b, 0x0f, 0xaf, 0x38, 0x9d, 0xfe, 0x29, 0x8e, 0x9b, 0xf4,
|
||||
0x3a, 0x9d, 0x73, 0xf7, 0x8a, 0x8a, 0x78, 0xbe, 0xaf, 0x6f, 0x91, 0x2a, 0x4b, 0x4b, 0xe9, 0x79,
|
||||
0xe6, 0x1c, 0xc5, 0x8f, 0x10, 0x31, 0xd2, 0xb4, 0x34, 0x2a, 0xc6, 0xbe, 0xae, 0xba, 0x9a, 0x09,
|
||||
0xe4, 0x9c, 0x54, 0xfa, 0x62, 0xaa, 0xe4, 0x70, 0xfa, 0xad, 0x94, 0x80, 0xe3, 0xa6, 0xc6, 0x32,
|
||||
0x33, 0x3f, 0xed, 0x50, 0x28, 0xb2, 0xdf, 0x85, 0xc1, 0x1b, 0xc0, 0x6b, 0x5a, 0xad, 0xb6, 0x61,
|
||||
0x78, 0xf8, 0x8f, 0x91, 0x7d, 0x08, 0x8b, 0x15, 0x7e, 0x0a, 0x29, 0x64, 0xce, 0x59, 0x54, 0x2c,
|
||||
0x9a, 0x39, 0x7c, 0xdf, 0x41, 0xea, 0x8a, 0xf1, 0x5b, 0x7d, 0x4d, 0xcd, 0xaa, 0xf4, 0xa5, 0xd1,
|
||||
0x7c, 0xb8, 0x46, 0xc2, 0xf3, 0x06, 0x43, 0xd7, 0x85, 0x98, 0x18, 0xf9, 0x71, 0xfc, 0x74, 0x18,
|
||||
0x78, 0x05, 0xd8, 0x03, 0x14, 0xfb, 0x7c, 0xbe, 0x3e, 0x26, 0xe1, 0x32, 0xd4, 0x60, 0x1a, 0x42,
|
||||
0x98, 0x87, 0xfa, 0x66, 0x21, 0x80, 0x23, 0xf8, 0x6e, 0x05, 0xd8, 0xf7, 0xbc, 0xc9, 0xf4, 0xaf,
|
||||
0x1a, 0x41, 0x26, 0x48, 0xbf, 0x5d, 0x24, 0xb1, 0x82, 0x60, 0x51, 0x24, 0xca, 0xca, 0x3a, 0xff,
|
||||
0x0d, 0x8e, 0x8f, 0x01, 0x75, 0x40, 0x29, 0x60, 0x01, 0x74, 0x6e, 0xb7, 0x5b, 0xdf, 0xdd, 0xdd,
|
||||
0xcd, 0x2b, 0xe4, 0x72, 0xfa, 0x0d, 0xce, 0x16, 0x2c, 0x16, 0xf2, 0xe3, 0xef, 0x01, 0xa4, 0xae,
|
||||
0x00, 0x85, 0x67, 0x35, 0x6b, 0x46, 0x54, 0x0b, 0x56, 0x2b, 0x05, 0xf0, 0x7d, 0x19, 0xea, 0x93,
|
||||
0xc9, 0x64, 0x34, 0x38, 0x38, 0xe8, 0x8f, 0x10, 0xc1, 0xf9, 0xe7, 0x22, 0x89, 0xcd, 0xe6, 0x1d,
|
||||
0xc1, 0xd1, 0x71, 0x81, 0xe4, 0x71, 0x20, 0x0d, 0x50, 0x01, 0x72, 0x80, 0x75, 0xff, 0x07, 0xef,
|
||||
0x37, 0x35, 0x91, 0x01, 0xfd, 0x31, 0x82, 0x57, 0x37, 0x20, 0x6d, 0x05, 0x28, 0xbc, 0xc7, 0x33,
|
||||
0xb5, 0xe4, 0xf1, 0xdc, 0x26, 0x0b, 0xd2, 0xc6, 0xa4, 0xff, 0x2b, 0x7e, 0xd3, 0x27, 0x26, 0xd2,
|
||||
0xe9, 0xf6, 0x76, 0x1e, 0x77, 0xea, 0x45, 0xa2, 0x3b, 0x22, 0x91, 0x4e, 0x77, 0xe2, 0xb4, 0x90,
|
||||
0xae, 0xa7, 0x81, 0x54, 0x40, 0x11, 0xa5, 0x71, 0xdb, 0x5a, 0x1a, 0x1b, 0x29, 0x41, 0xa1, 0x88,
|
||||
0xf4, 0xc9, 0xc4, 0xc4, 0xc4, 0x70, 0x45, 0xc5, 0xdd, 0xd6, 0x55, 0x35, 0xa2, 0x4e, 0x89, 0x18,
|
||||
0x4f, 0x5f, 0xb8, 0xdd, 0xfc, 0xf2, 0xf2, 0xf2, 0xe1, 0xc8, 0xa5, 0xe2, 0x62, 0xd2, 0xae, 0xd5,
|
||||
0x66, 0x65, 0x59, 0x2e, 0x8f, 0x3d, 0x21, 0xd4, 0xc4, 0x22, 0x44, 0xb2, 0xd1, 0x94, 0x68, 0xed,
|
||||
0xec, 0xec, 0xe4, 0x21, 0xe1, 0x21, 0xd6, 0x27, 0x36, 0xdb, 0x30, 0x27, 0x4a, 0xdf, 0xe3, 0xf1,
|
||||
0x86, 0xbb, 0xba, 0xba, 0xc2, 0x43, 0x43, 0x43, 0x2d, 0x30, 0x8d, 0x15, 0xa2, 0x59, 0x72, 0x88,
|
||||
0x44, 0x90, 0xf0, 0x3d, 0x1c, 0x1d, 0x05, 0x2a, 0x84, 0x68, 0xe4, 0x5b, 0x8c, 0xa4, 0x1c, 0x40,
|
||||
0xc9, 0xf6, 0x56, 0xeb, 0x0f, 0xb1, 0xa2, 0x1f, 0x3c, 0x9e, 0x2f, 0x29, 0xd9, 0xf3, 0x1e, 0x8b,
|
||||
0x03, 0x50, 0xb3, 0x94, 0x43, 0x08, 0x0b, 0x7a, 0xd1, 0xc0, 0xe5, 0x5a, 0xba, 0x8f, 0xc3, 0xd7,
|
||||
0x81, 0xa7, 0x00, 0x6d, 0xc4, 0xe0, 0x3f, 0xae, 0xf5, 0x7e, 0x96, 0x83, 0x51, 0xfc, 0x7c, 0xb7,
|
||||
0x03, 0x72, 0x5e, 0x10, 0x8d, 0x34, 0x9a, 0x97, 0xdb, 0xb6, 0x43, 0x84, 0xb4, 0xbf, 0x24, 0xe9,
|
||||
0x3f, 0x5f, 0xb4, 0x07, 0x63, 0xa6, 0x2d, 0x5e, 0x10, 0x8d, 0xcc, 0xe6, 0x5f, 0x7e, 0x16, 0x52,
|
||||
0xa7, 0xdb, 0x2a, 0x75, 0xeb, 0x89, 0xf8, 0xcb, 0xa2, 0x0f, 0xa3, 0xb1, 0xe7, 0x12, 0x6b, 0xee,
|
||||
0x75, 0xa9, 0x63, 0xcb, 0xe1, 0x98, 0xa8, 0x92, 0x8e, 0x1b, 0x9d, 0xee, 0xed, 0x66, 0x1c, 0x9b,
|
||||
0x37, 0x13, 0xc3, 0x03, 0xa3, 0xeb, 0x55, 0xc9, 0xfd, 0x90, 0x5a, 0x5d, 0xf1, 0x91, 0xd0, 0x1e,
|
||||
0xf6, 0x55, 0x31, 0x08, 0x4b, 0x81, 0x19, 0x76, 0x69, 0x2d, 0xc7, 0xc1, 0xf9, 0x8c, 0x8c, 0x8f,
|
||||
0x1b, 0x36, 0x92, 0xb7, 0x74, 0xe5, 0xe7, 0xd3, 0x8b, 0xb8, 0x13, 0x14, 0xef, 0x9a, 0x4c, 0x3f,
|
||||
0xfd, 0x88, 0xe3, 0x37, 0x81, 0x2a, 0x40, 0x0f, 0xec, 0x90, 0xda, 0xcb, 0x0c, 0x86, 0xb3, 0x16,
|
||||
0xa7, 0xf3, 0xbe, 0x57, 0xfa, 0xb2, 0xdd, 0xbb, 0x6f, 0x9c, 0x4d, 0x4d, 0x6d, 0xb3, 0x49, 0x1b,
|
||||
0x56, 0xbc, 0xc0, 0x71, 0x41, 0x13, 0x6c, 0x3a, 0x60, 0xcb, 0x8b, 0x77, 0xec, 0x76, 0xdf, 0x0d,
|
||||
0xb9, 0x3c, 0xe5, 0x1d, 0x21, 0x9a, 0x02, 0x20, 0x31, 0x5a, 0x9d, 0x15, 0x7a, 0x7d, 0xfb, 0x13,
|
||||
0x0e, 0x87, 0xff, 0xd6, 0xfa, 0xc9, 0xcd, 0x87, 0x9c, 0xce, 0xc0, 0x55, 0x97, 0x6b, 0xae, 0x03,
|
||||
0x0f, 0xf9, 0x0c, 0x8a, 0x3a, 0x03, 0x82, 0x41, 0xfc, 0x16, 0x96, 0xda, 0xd9, 0xed, 0xe3, 0xd7,
|
||||
0x55, 0x2a, 0x53, 0x23, 0xfc, 0xb0, 0x4c, 0x3c, 0x0b, 0xa4, 0x3f, 0x18, 0x8d, 0x74, 0xc5, 0xa9,
|
||||
0xd5, 0x25, 0x0e, 0xab, 0x75, 0xe4, 0x22, 0x8b, 0x68, 0xa3, 0xff, 0x47, 0x52, 0xb8, 0x5c, 0xa1,
|
||||
0xa0, 0xc1, 0xd0, 0xfd, 0x3d, 0x1a, 0xfd, 0x2d, 0x41, 0x00, 0x4c, 0x48, 0x39, 0x5b, 0xd5, 0x97,
|
||||
0x85, 0x19, 0x0f, 0x18, 0xb4, 0xda, 0xda, 0xfd, 0x16, 0xcb, 0x95, 0x1e, 0x8e, 0x9b, 0xb9, 0xfb,
|
||||
0x30, 0x01, 0xcf, 0x73, 0xdc, 0xc4, 0x4d, 0x10, 0x74, 0xab, 0x54, 0x5c, 0x13, 0xec, 0x8f, 0x00,
|
||||
0x35, 0xc2, 0x00, 0xce, 0x16, 0x04, 0xb0, 0x65, 0x6b, 0xc8, 0x84, 0xd7, 0xb0, 0x61, 0x9a, 0x0f,
|
||||
0x3c, 0x17, 0x17, 0xe7, 0x38, 0xa4, 0xd1, 0xec, 0x3f, 0xa9, 0xd3, 0x1d, 0xfd, 0x44, 0xa3, 0x79,
|
||||
0xa1, 0x55, 0xa9, 0xcc, 0x3c, 0x26, 0xcc, 0x43, 0x36, 0x2c, 0xab, 0x81, 0x72, 0xc0, 0x29, 0x88,
|
||||
0x47, 0xf5, 0x28, 0xfd, 0x17, 0x23, 0xe4, 0x37, 0x41, 0x20, 0xcc, 0x05, 0x0a, 0x85, 0x06, 0x64,
|
||||
0xf9, 0x7f, 0x06, 0x78, 0x52, 0x28, 0xb8, 0x59, 0x20, 0x88, 0xdf, 0xac, 0x26, 0xff, 0x00, 0x8c,
|
||||
0xdc, 0x04, 0xd3, 0xa5, 0xbd, 0x0b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae,
|
||||
0x42, 0x60, 0x82,
|
||||
};
|
||||
|
||||
const BITMAP_OPAQUE delete_circle_xpm[1] = {{ png, sizeof( png ), "delete_circle_xpm" }};
|
||||
|
||||
//EOF
|
||||
@@ -1,92 +0,0 @@
|
||||
|
||||
/* Do not modify this file, it was automatically generated by the
|
||||
* PNG2cpp CMake script, using a *.png file as input.
|
||||
*/
|
||||
|
||||
#include <bitmaps_png/bitmaps_list.h>
|
||||
|
||||
static const unsigned char png[] = {
|
||||
0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52,
|
||||
0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1a, 0x08, 0x06, 0x00, 0x00, 0x00, 0xa9, 0x4a, 0x4c,
|
||||
0xce, 0x00, 0x00, 0x04, 0xab, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0x9d, 0x95, 0x7f, 0x4c, 0xd4,
|
||||
0x75, 0x18, 0xc7, 0x3f, 0x1c, 0x27, 0xf1, 0x4b, 0x0e, 0x0f, 0x10, 0xb9, 0xe3, 0x44, 0x18, 0xa0,
|
||||
0x34, 0xc1, 0xc2, 0x1f, 0x07, 0x5b, 0x42, 0x34, 0x17, 0x96, 0xcd, 0x5d, 0xea, 0x40, 0x6d, 0x81,
|
||||
0x59, 0x03, 0x93, 0x54, 0x9a, 0x22, 0x05, 0x69, 0x1b, 0x6b, 0xe0, 0x68, 0x91, 0xb6, 0xdd, 0xdd,
|
||||
0xa2, 0xc9, 0x1f, 0xb2, 0x43, 0xcb, 0x89, 0x7f, 0x34, 0x21, 0x62, 0x25, 0x8c, 0x46, 0x8c, 0x5a,
|
||||
0x80, 0xb2, 0xa8, 0xd9, 0x0a, 0x72, 0xa3, 0x36, 0x60, 0x1c, 0x07, 0x14, 0x52, 0xe7, 0xbb, 0xf7,
|
||||
0xe7, 0xcb, 0x41, 0x88, 0x07, 0x02, 0x9f, 0xed, 0xbd, 0xbb, 0xef, 0x7d, 0xee, 0xfb, 0xbc, 0x3e,
|
||||
0xcf, 0xf3, 0xbc, 0x9f, 0xef, 0x57, 0x88, 0x25, 0x2e, 0x00, 0x61, 0xd4, 0x75, 0xaa, 0x8a, 0xf2,
|
||||
0x73, 0xb3, 0x7f, 0x8a, 0x6a, 0xa2, 0xb6, 0x8b, 0xe5, 0x2e, 0xde, 0xac, 0x1b, 0x1e, 0x1e, 0xbe,
|
||||
0xb3, 0xdd, 0x68, 0xc4, 0xc1, 0x8c, 0x0c, 0x4c, 0x4e, 0x4e, 0x36, 0xcf, 0x86, 0xf1, 0x7b, 0x99,
|
||||
0xd5, 0x6a, 0x45, 0xf8, 0x9a, 0x35, 0xe8, 0xea, 0xea, 0xfa, 0x9b, 0xd7, 0xcf, 0x2c, 0x1b, 0x92,
|
||||
0xbc, 0x79, 0x33, 0x12, 0x56, 0xae, 0x84, 0xde, 0xd7, 0x17, 0x99, 0x7b, 0xf7, 0xce, 0xc0, 0x24,
|
||||
0xc4, 0x62, 0xb1, 0xc0, 0xcb, 0xd3, 0x13, 0x3b, 0xb8, 0x1f, 0x12, 0x18, 0xb8, 0x74, 0x18, 0xff,
|
||||
0xac, 0x75, 0x38, 0x1c, 0x77, 0x52, 0x92, 0x92, 0x14, 0xc8, 0xdd, 0xe8, 0x68, 0xfc, 0x18, 0x19,
|
||||
0x89, 0x08, 0x3f, 0x3f, 0xec, 0x33, 0x99, 0x24, 0xec, 0xf7, 0xca, 0xca, 0x4a, 0x3c, 0xa6, 0x56,
|
||||
0xa3, 0x26, 0x34, 0x14, 0x63, 0x31, 0x31, 0xc8, 0x09, 0x0a, 0x9a, 0x0d, 0x4b, 0x5e, 0x2c, 0xe8,
|
||||
0x60, 0x71, 0x71, 0x31, 0xbc, 0x54, 0x2a, 0xf4, 0x44, 0x45, 0x61, 0x3c, 0x36, 0x16, 0x63, 0xfc,
|
||||
0xec, 0xd2, 0xeb, 0xa1, 0xf7, 0xf1, 0xc1, 0x56, 0x66, 0x29, 0x33, 0xa9, 0x09, 0x0e, 0xc6, 0x68,
|
||||
0x44, 0x84, 0xb2, 0x37, 0x4a, 0xd8, 0xe3, 0xdc, 0x4b, 0xde, 0xb6, 0x0d, 0xb2, 0x9f, 0x8b, 0x05,
|
||||
0x85, 0x0c, 0x0c, 0x0c, 0xf4, 0x25, 0x6e, 0xdc, 0x08, 0x63, 0x40, 0x00, 0xfe, 0x60, 0x36, 0x32,
|
||||
0xa0, 0x83, 0xa0, 0xce, 0x90, 0x10, 0x24, 0x30, 0xa0, 0x8d, 0xa7, 0x77, 0x84, 0x85, 0x61, 0x34,
|
||||
0x3c, 0x5c, 0xd9, 0xcb, 0xd3, 0x6a, 0x11, 0xe8, 0xef, 0x8f, 0xf6, 0xf6, 0xf6, 0x7b, 0xbc, 0xff,
|
||||
0xe9, 0xa5, 0x94, 0x6f, 0xdd, 0xd0, 0xd0, 0x50, 0xdf, 0xd6, 0x4d, 0x9b, 0x60, 0x64, 0xf9, 0xfa,
|
||||
0x75, 0x3a, 0x38, 0xd8, 0xf4, 0x11, 0x66, 0x31, 0xc2, 0xa0, 0x23, 0x2c, 0xd5, 0xc8, 0xea, 0xd5,
|
||||
0x70, 0xf0, 0xf7, 0x37, 0x09, 0xd5, 0xb0, 0xac, 0x6d, 0x6d, 0x6d, 0x12, 0xb2, 0x6b, 0x39, 0x86,
|
||||
0x58, 0xa7, 0x64, 0x16, 0x1f, 0x0f, 0x23, 0x4f, 0xdb, 0x4f, 0x88, 0x7d, 0xd5, 0x2a, 0xd8, 0x99,
|
||||
0xa5, 0x9d, 0xc1, 0x25, 0x34, 0x8f, 0x87, 0x98, 0x95, 0xc9, 0x22, 0x20, 0x67, 0x44, 0x2a, 0x55,
|
||||
0x4d, 0xe5, 0xf0, 0x4a, 0x4d, 0xa9, 0x5c, 0x30, 0x73, 0x79, 0x79, 0x39, 0x56, 0xb0, 0x5f, 0xad,
|
||||
0x0c, 0x2e, 0x01, 0xc3, 0x0c, 0xae, 0x7c, 0xb2, 0x8c, 0xe1, 0xde, 0xde, 0x78, 0x3e, 0x3d, 0x5d,
|
||||
0x1a, 0xa4, 0xc3, 0xdd, 0x9c, 0xb9, 0x03, 0xbd, 0x46, 0x41, 0x9c, 0x16, 0x57, 0x78, 0x15, 0x4f,
|
||||
0x85, 0x39, 0x9d, 0xce, 0x73, 0xd3, 0xee, 0xb2, 0x31, 0x13, 0x59, 0x2a, 0x59, 0x32, 0xbb, 0x2c,
|
||||
0x1d, 0xb3, 0x71, 0xd0, 0x71, 0xdd, 0x2c, 0x67, 0x04, 0xad, 0xef, 0x72, 0x63, 0xf3, 0xa3, 0x61,
|
||||
0xd3, 0xa0, 0x23, 0xe2, 0x26, 0xaf, 0xac, 0xad, 0xad, 0xad, 0xb5, 0xd3, 0x73, 0x52, 0xc3, 0x93,
|
||||
0x8f, 0xd2, 0x08, 0x4a, 0x8f, 0x18, 0xbc, 0x8a, 0xa5, 0xeb, 0xe7, 0xa7, 0x34, 0xc7, 0xe8, 0xda,
|
||||
0xb5, 0xb8, 0x65, 0x30, 0x3c, 0x34, 0x67, 0x8f, 0x06, 0xe5, 0x88, 0x96, 0xac, 0xac, 0xac, 0xaf,
|
||||
0x6d, 0x36, 0x9b, 0x02, 0xb9, 0x4c, 0x67, 0x8d, 0x49, 0xd7, 0x31, 0xa0, 0x74, 0xd8, 0x51, 0x42,
|
||||
0x64, 0x45, 0x95, 0x9e, 0x11, 0x20, 0xad, 0x3d, 0x4e, 0x6b, 0xdf, 0xe2, 0x7f, 0x74, 0x74, 0xe3,
|
||||
0xab, 0xd9, 0xd9, 0xd2, 0xde, 0xe5, 0x8b, 0x02, 0x99, 0x4c, 0xa6, 0xc6, 0xba, 0xba, 0xba, 0xfb,
|
||||
0x5e, 0x2c, 0xd9, 0x79, 0x39, 0x90, 0x1c, 0x58, 0x19, 0x30, 0x8f, 0x7d, 0x91, 0x8d, 0x6f, 0x68,
|
||||
0x68, 0x80, 0x62, 0x10, 0x42, 0xff, 0xe4, 0xde, 0xf8, 0xfa, 0xf5, 0x68, 0xa1, 0xc5, 0x03, 0xbd,
|
||||
0xbc, 0xf0, 0x56, 0x41, 0x81, 0x04, 0x9d, 0x75, 0x87, 0x88, 0xa5, 0x2e, 0x08, 0x5f, 0x71, 0x97,
|
||||
0x82, 0xf0, 0x17, 0x7f, 0xf1, 0xfa, 0x37, 0xb3, 0xd9, 0xdc, 0x50, 0x5b, 0x5b, 0x3b, 0x03, 0x7b,
|
||||
0xe3, 0xc1, 0x39, 0xc9, 0x99, 0x71, 0xa3, 0x46, 0x83, 0x3a, 0x66, 0x26, 0x21, 0xf9, 0xc7, 0x8e,
|
||||
0x49, 0xc8, 0x55, 0x4a, 0x3d, 0x17, 0x72, 0x98, 0x9a, 0x88, 0x8c, 0x30, 0xe0, 0xf5, 0x43, 0x99,
|
||||
0x78, 0xbf, 0x28, 0x0f, 0x27, 0x5f, 0xd9, 0x83, 0xf8, 0x18, 0x83, 0x52, 0x9e, 0xb2, 0xb2, 0xb2,
|
||||
0xef, 0x25, 0x6c, 0x05, 0x4b, 0x38, 0xd7, 0xc2, 0x33, 0xd6, 0xe7, 0x50, 0xcb, 0xcb, 0xfc, 0xe3,
|
||||
0xc7, 0xe7, 0x85, 0xa4, 0x52, 0xce, 0x13, 0xb9, 0xd9, 0x98, 0xec, 0x6d, 0x03, 0x7e, 0xf9, 0x0a,
|
||||
0xe8, 0xbe, 0x06, 0x7c, 0x57, 0x05, 0x67, 0xf3, 0x07, 0xf8, 0x38, 0xff, 0x05, 0xa8, 0x3d, 0x55,
|
||||
0x28, 0x29, 0x29, 0xe9, 0x6e, 0x6a, 0x6a, 0x72, 0x76, 0x76, 0x76, 0x4e, 0xcc, 0x9d, 0x13, 0x09,
|
||||
0x1b, 0x1c, 0x1c, 0xec, 0xad, 0xae, 0xae, 0x96, 0x90, 0x4f, 0xdd, 0x41, 0xe4, 0x6a, 0x4c, 0x4d,
|
||||
0xde, 0x02, 0xf4, 0x7e, 0x03, 0xfc, 0x74, 0x03, 0xe8, 0xb0, 0x01, 0xdf, 0x5a, 0x80, 0x9b, 0xa5,
|
||||
0x40, 0x7d, 0x21, 0xdf, 0x40, 0x47, 0x50, 0xb8, 0x3b, 0x4e, 0x9e, 0x76, 0x32, 0x2d, 0x2d, 0xed,
|
||||
0x52, 0x51, 0x51, 0x51, 0x1a, 0xbf, 0x7b, 0xba, 0x19, 0xea, 0x00, 0x2a, 0x89, 0x52, 0x3d, 0xb8,
|
||||
0xf3, 0x8e, 0x38, 0x2f, 0xde, 0x66, 0x4f, 0x3c, 0x84, 0xb3, 0xea, 0x1c, 0xdf, 0x59, 0xb7, 0x65,
|
||||
0x16, 0x17, 0x81, 0x96, 0x0a, 0xa0, 0xf1, 0x5d, 0xe0, 0xf3, 0x13, 0x2c, 0xc0, 0x21, 0xa0, 0xda,
|
||||
0x84, 0x9e, 0x12, 0xa3, 0x52, 0x16, 0x91, 0xc2, 0xfe, 0xbd, 0x4c, 0xdb, 0x17, 0x0a, 0x8b, 0x72,
|
||||
0x7f, 0x91, 0x52, 0x72, 0x19, 0xd8, 0x63, 0x21, 0x77, 0x41, 0x14, 0x08, 0x25, 0x40, 0xbd, 0xf9,
|
||||
0xf4, 0x9c, 0x2c, 0x72, 0x81, 0xcb, 0xfb, 0xf9, 0xec, 0x7d, 0x0e, 0xb0, 0x24, 0x63, 0xa4, 0x74,
|
||||
0xc3, 0x14, 0xe8, 0x00, 0x75, 0x66, 0x96, 0x4e, 0x89, 0x2f, 0xf8, 0x7b, 0x34, 0x15, 0x3c, 0xfd,
|
||||
0x04, 0x79, 0x78, 0xed, 0x14, 0xed, 0x22, 0x5d, 0xfc, 0xc0, 0x6d, 0xa7, 0xf5, 0xe4, 0x3e, 0x66,
|
||||
0x71, 0xd6, 0x95, 0x05, 0xfd, 0x7f, 0xc9, 0x04, 0x54, 0xa6, 0x01, 0x1f, 0x3d, 0xc9, 0x49, 0x88,
|
||||
0x42, 0xe7, 0x51, 0xcd, 0x14, 0x68, 0x8b, 0xe8, 0x15, 0x3b, 0x44, 0x8f, 0x78, 0x56, 0x74, 0x28,
|
||||
0xf7, 0x26, 0x8a, 0x26, 0xfe, 0x7e, 0x91, 0x3a, 0x40, 0xf9, 0xcc, 0x97, 0xd3, 0x87, 0x94, 0x59,
|
||||
0x5a, 0x38, 0x31, 0x3a, 0x14, 0xff, 0x5e, 0xcb, 0x01, 0x6a, 0x64, 0x16, 0x3b, 0x95, 0x2c, 0x50,
|
||||
0x11, 0x07, 0x94, 0xea, 0x38, 0x09, 0x7e, 0xc8, 0x7d, 0x42, 0xc9, 0x7c, 0x82, 0xfa, 0x92, 0xba,
|
||||
0x41, 0x7d, 0xe2, 0xba, 0x57, 0xaa, 0x82, 0x7a, 0x71, 0x21, 0x90, 0x96, 0x0a, 0xa2, 0xe4, 0x3b,
|
||||
0xe3, 0x5e, 0xa6, 0x51, 0x0f, 0xfb, 0x85, 0xa7, 0x66, 0xb2, 0x40, 0x89, 0x16, 0xff, 0x14, 0x7a,
|
||||
0xe2, 0xbd, 0x14, 0x01, 0x0f, 0xa1, 0x80, 0x6e, 0x53, 0xf5, 0xf2, 0xb1, 0xe4, 0x2a, 0x57, 0x90,
|
||||
0x4b, 0x32, 0x8e, 0xef, 0xc2, 0x7d, 0xfa, 0x7f, 0xed, 0xa1, 0xc6, 0x34, 0xde, 0x2a, 0xec, 0x8e,
|
||||
0xf3, 0x46, 0xbe, 0x51, 0x8d, 0x8c, 0x0d, 0x02, 0x86, 0x00, 0x05, 0x70, 0x9f, 0xfa, 0x99, 0x92,
|
||||
0xfd, 0xb8, 0x4a, 0x65, 0xb9, 0x02, 0x2f, 0x6b, 0xc9, 0xd3, 0x24, 0x50, 0x0d, 0x42, 0x23, 0xec,
|
||||
0x22, 0x8c, 0x80, 0x10, 0xa5, 0x54, 0xbf, 0x52, 0x2d, 0xae, 0x4c, 0x3e, 0xa3, 0x8a, 0x29, 0xdd,
|
||||
0x62, 0x4f, 0x3f, 0xdf, 0x92, 0xb3, 0xa1, 0x17, 0x26, 0x36, 0x57, 0x3a, 0x6a, 0xbf, 0xe8, 0x73,
|
||||
0x01, 0xae, 0xbb, 0x7a, 0xf1, 0x92, 0x7c, 0x65, 0xb8, 0x9b, 0xa1, 0xe5, 0x65, 0x56, 0x20, 0xf2,
|
||||
0x14, 0xd0, 0x61, 0xba, 0x72, 0x2a, 0x8b, 0x7c, 0xca, 0xb0, 0x94, 0x3e, 0xcc, 0x5e, 0xff, 0x01,
|
||||
0x29, 0x35, 0x2e, 0xb3, 0x3a, 0xac, 0xcc, 0x57, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44,
|
||||
0xae, 0x42, 0x60, 0x82,
|
||||
};
|
||||
|
||||
const BITMAP_OPAQUE delete_connection_xpm[1] = {{ png, sizeof( png ), "delete_connection_xpm" }};
|
||||
|
||||
//EOF
|
||||
@@ -1,74 +0,0 @@
|
||||
|
||||
/* Do not modify this file, it was automatically generated by the
|
||||
* PNG2cpp CMake script, using a *.png file as input.
|
||||
*/
|
||||
|
||||
#include <bitmaps_png/bitmaps_list.h>
|
||||
|
||||
static const unsigned char png[] = {
|
||||
0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52,
|
||||
0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1a, 0x08, 0x06, 0x00, 0x00, 0x00, 0xa9, 0x4a, 0x4c,
|
||||
0xce, 0x00, 0x00, 0x03, 0x8a, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0xed, 0x94, 0x4b, 0x48, 0x94,
|
||||
0x51, 0x18, 0x86, 0xff, 0xc9, 0xeb, 0x98, 0xcd, 0x78, 0xbf, 0xdf, 0x66, 0x98, 0xd4, 0xca, 0xc0,
|
||||
0x4d, 0x21, 0x64, 0x9b, 0xb2, 0x4d, 0x45, 0x66, 0xd0, 0x22, 0xcd, 0x34, 0x17, 0x2d, 0x22, 0x83,
|
||||
0x0a, 0x42, 0x02, 0xa1, 0x56, 0x49, 0x5a, 0x4a, 0xb4, 0x28, 0xa3, 0x50, 0x43, 0x17, 0x82, 0xda,
|
||||
0xa2, 0x20, 0x53, 0xcb, 0x91, 0x1c, 0xcc, 0x8d, 0x82, 0x31, 0xc4, 0x78, 0xc3, 0x48, 0x62, 0xb2,
|
||||
0x9c, 0x9b, 0x46, 0x5e, 0xbf, 0xde, 0x6f, 0x3c, 0x3f, 0x4d, 0xe3, 0x8c, 0x9a, 0xb5, 0x09, 0x3a,
|
||||
0xf0, 0xf2, 0xff, 0xe7, 0xf6, 0x3d, 0xe7, 0x7c, 0xe7, 0x3d, 0x47, 0x92, 0x36, 0x51, 0x88, 0x28,
|
||||
0x6b, 0x7c, 0x7c, 0xfc, 0xcb, 0xe4, 0xe4, 0xe4, 0x07, 0xfc, 0xa7, 0xb9, 0xf5, 0xed, 0xfa, 0x88,
|
||||
0x32, 0x36, 0x36, 0x36, 0x85, 0xff, 0x3d, 0xd2, 0x66, 0x0b, 0x43, 0x06, 0x07, 0x07, 0x1d, 0x91,
|
||||
0x21, 0x21, 0xa4, 0x4d, 0x48, 0x20, 0x04, 0x34, 0xcb, 0x30, 0x86, 0x8c, 0x8c, 0x8c, 0x4c, 0x25,
|
||||
0xc7, 0xc6, 0x52, 0x74, 0x68, 0x28, 0x0d, 0x0d, 0x0d, 0xd9, 0x37, 0x05, 0x73, 0x85, 0x5c, 0x8e,
|
||||
0x8c, 0xa4, 0xfc, 0xb0, 0x30, 0xd2, 0xc6, 0xc7, 0xcb, 0xb0, 0xbc, 0xe1, 0xe1, 0x61, 0x27, 0xa4,
|
||||
0x38, 0x3c, 0x9c, 0x2e, 0x46, 0x44, 0x6c, 0x0e, 0x86, 0xc1, 0x6a, 0xa3, 0xd1, 0x68, 0x63, 0xc8,
|
||||
0x15, 0x40, 0x66, 0xd3, 0xd2, 0xc8, 0xae, 0xd3, 0x51, 0x3e, 0xef, 0x0c, 0x30, 0xbd, 0x5e, 0x4f,
|
||||
0x0c, 0x29, 0x42, 0xdd, 0xae, 0xd1, 0xd0, 0x0c, 0xfa, 0x64, 0x98, 0xc9, 0x64, 0xb2, 0xfc, 0x0e,
|
||||
0x28, 0xb2, 0xbf, 0xbf, 0x7f, 0x2e, 0x28, 0x20, 0x80, 0x6a, 0x62, 0x62, 0x9c, 0x81, 0x66, 0x52,
|
||||
0x52, 0xc8, 0x96, 0x98, 0x48, 0xf9, 0x2a, 0x15, 0xf1, 0x90, 0x33, 0xf8, 0x5a, 0x01, 0x75, 0x24,
|
||||
0x25, 0xd1, 0x8c, 0x56, 0x4b, 0x95, 0xd1, 0xd1, 0xb4, 0x15, 0xe3, 0x07, 0x06, 0x06, 0xbe, 0x7b,
|
||||
0x8a, 0x79, 0x0f, 0x1a, 0x81, 0xf2, 0x5c, 0xda, 0x0c, 0x50, 0x2d, 0x60, 0xb9, 0x9d, 0x9d, 0x9d,
|
||||
0x0b, 0x3c, 0xb9, 0x06, 0xbb, 0x72, 0x00, 0x62, 0xc7, 0x2e, 0x2c, 0x51, 0x51, 0xd4, 0x0c, 0x88,
|
||||
0x05, 0x6d, 0x76, 0x2c, 0xc2, 0x01, 0xd8, 0x2d, 0xa4, 0x2f, 0x38, 0x30, 0x90, 0xba, 0xbb, 0xbb,
|
||||
0xe7, 0x31, 0xef, 0xa8, 0x27, 0x50, 0x33, 0xb4, 0x0c, 0x2d, 0x42, 0x25, 0xa2, 0x6d, 0x12, 0x7a,
|
||||
0x0b, 0x6d, 0x67, 0x18, 0xd2, 0x34, 0xbf, 0x4d, 0xa9, 0xa4, 0x2a, 0xa4, 0xc9, 0x06, 0x88, 0x15,
|
||||
0x67, 0x65, 0x55, 0xab, 0x9d, 0x5f, 0xae, 0xd7, 0xa0, 0x9d, 0x21, 0x5d, 0x5d, 0x5d, 0x5e, 0x21,
|
||||
0x32, 0xc8, 0x01, 0x3d, 0x13, 0xc0, 0xab, 0x02, 0xf4, 0x0e, 0xca, 0x12, 0x69, 0xbc, 0x54, 0x57,
|
||||
0x57, 0x47, 0x0a, 0xfc, 0x1a, 0x10, 0x94, 0x21, 0x96, 0xe0, 0x60, 0xb2, 0xe2, 0x3c, 0xf4, 0x90,
|
||||
0x42, 0xa1, 0xa0, 0xc6, 0xc6, 0x46, 0x0c, 0xa3, 0xd2, 0xb5, 0x8e, 0x43, 0x06, 0xe5, 0x43, 0x4f,
|
||||
0x5c, 0x76, 0xe7, 0x04, 0x61, 0xf2, 0x4e, 0xbe, 0x23, 0x9a, 0xb8, 0x38, 0x2a, 0x14, 0xe9, 0x62,
|
||||
0x80, 0x95, 0x77, 0x87, 0x74, 0x59, 0x71, 0x2e, 0x05, 0x68, 0x4f, 0x46, 0x0a, 0xe1, 0x42, 0x76,
|
||||
0x63, 0xfa, 0x7a, 0xa0, 0x13, 0x50, 0x00, 0x74, 0x1f, 0x5a, 0x62, 0x50, 0x59, 0x59, 0xd9, 0x29,
|
||||
0xd9, 0xc2, 0xec, 0x2e, 0x3e, 0x78, 0x3b, 0x02, 0xdb, 0x00, 0x1b, 0x06, 0x84, 0xff, 0xed, 0x58,
|
||||
0x80, 0x0d, 0x66, 0x28, 0x10, 0x6e, 0xc4, 0xa2, 0x3e, 0x7b, 0x83, 0xb9, 0x82, 0xb8, 0xf8, 0x41,
|
||||
0x5f, 0x55, 0x2a, 0x95, 0x11, 0x90, 0x69, 0x27, 0x04, 0x67, 0xc1, 0x16, 0x66, 0x77, 0xd9, 0xf9,
|
||||
0xe0, 0x11, 0x74, 0x0b, 0xd2, 0x55, 0x8d, 0x9d, 0xc9, 0x8e, 0x73, 0xa4, 0xa6, 0xd2, 0x69, 0xc0,
|
||||
0x35, 0xe8, 0x9f, 0x98, 0x98, 0xf8, 0xe4, 0x09, 0x14, 0x0d, 0x95, 0xb9, 0x80, 0xb8, 0xec, 0xc8,
|
||||
0xc8, 0xc8, 0xa8, 0xea, 0xe9, 0xe9, 0x59, 0xf2, 0xf3, 0xf1, 0xa1, 0x7a, 0xac, 0xda, 0x69, 0x6f,
|
||||
0xc0, 0x64, 0x77, 0x55, 0x56, 0x56, 0x92, 0xec, 0xc6, 0x59, 0x40, 0xf8, 0x9e, 0x3d, 0xc2, 0xa2,
|
||||
0xfc, 0x7d, 0x7d, 0xc9, 0x60, 0x30, 0x2c, 0x78, 0x4b, 0x9f, 0x16, 0x8a, 0x77, 0xa9, 0xfb, 0x42,
|
||||
0xa9, 0x78, 0xdb, 0x4a, 0x5b, 0x5a, 0x5a, 0x96, 0x03, 0xfd, 0xfc, 0xe8, 0x31, 0x82, 0xdc, 0x45,
|
||||
0xaa, 0x5c, 0xdc, 0x75, 0x53, 0x76, 0xe3, 0x6d, 0x9c, 0x4f, 0x03, 0x16, 0x13, 0xe4, 0xef, 0x4f,
|
||||
0xad, 0xad, 0xad, 0x4b, 0xe8, 0x2b, 0xe4, 0xeb, 0x71, 0x0c, 0x32, 0x4a, 0xd2, 0x85, 0x03, 0xa8,
|
||||
0x6c, 0xd9, 0xc0, 0xc5, 0x2d, 0x91, 0x61, 0x0c, 0xe1, 0xe0, 0x68, 0x3b, 0x22, 0xfa, 0x8e, 0x03,
|
||||
0xea, 0xbc, 0x67, 0x4a, 0xf4, 0xb7, 0xb5, 0x3d, 0xa5, 0x8a, 0x8a, 0x37, 0xad, 0xe8, 0x52, 0x32,
|
||||
0xa8, 0x58, 0x92, 0x1e, 0xe2, 0x66, 0xef, 0xaf, 0x46, 0x25, 0xd8, 0x2d, 0x6e, 0x92, 0x90, 0x3b,
|
||||
0xec, 0x6c, 0x7b, 0x7b, 0xfb, 0x52, 0x5f, 0x5f, 0xdf, 0x9c, 0xd9, 0x6c, 0xe6, 0x14, 0x67, 0x43,
|
||||
0x0a, 0xd1, 0x97, 0xdb, 0xdb, 0xdb, 0x3b, 0xdf, 0xd1, 0xd1, 0xb1, 0x58, 0x58, 0xf8, 0x1a, 0x71,
|
||||
0xcf, 0xbf, 0x14, 0xd9, 0x59, 0x05, 0x62, 0x15, 0x41, 0x5d, 0x90, 0xd9, 0x03, 0x5c, 0x86, 0xa5,
|
||||
0x43, 0x1a, 0x51, 0x7d, 0x01, 0x8d, 0x42, 0x37, 0x20, 0x1d, 0xda, 0xb5, 0x4d, 0x4d, 0xa3, 0xd9,
|
||||
0x2b, 0x71, 0x57, 0x81, 0x32, 0x9f, 0xa3, 0xf2, 0x0a, 0xfa, 0xc6, 0x71, 0x84, 0xfa, 0xa1, 0x93,
|
||||
0x1b, 0x50, 0x83, 0xcb, 0x1c, 0x5a, 0x81, 0xc6, 0xd6, 0x7a, 0x01, 0xe9, 0x2c, 0x6e, 0x83, 0x59,
|
||||
0xb3, 0xe2, 0x55, 0x30, 0x41, 0xef, 0xd7, 0xd0, 0xd4, 0xea, 0xb9, 0x21, 0x8e, 0x95, 0xb8, 0xe7,
|
||||
0xf4, 0x6e, 0xa0, 0xbd, 0xf5, 0xa8, 0x5c, 0x83, 0x3a, 0xa0, 0x69, 0x31, 0x81, 0x21, 0xe5, 0xe2,
|
||||
0x81, 0xcd, 0x81, 0x0e, 0x7a, 0x50, 0x8e, 0x48, 0x1d, 0x89, 0xfb, 0xd7, 0xbb, 0xf2, 0x30, 0x27,
|
||||
0x97, 0x7b, 0x01, 0xfd, 0x62, 0x06, 0x85, 0x38, 0x60, 0x6c, 0x5f, 0xda, 0xbd, 0x8e, 0x11, 0x95,
|
||||
0xe2, 0xf5, 0x38, 0x0c, 0xf9, 0xfc, 0x6c, 0x7e, 0x10, 0xeb, 0x25, 0x75, 0x1e, 0x5d, 0xf7, 0x07,
|
||||
0xe5, 0x3f, 0xe8, 0x1f, 0x04, 0xdd, 0x81, 0x6b, 0xb2, 0xf6, 0x49, 0x92, 0x3f, 0x5b, 0x38, 0xf0,
|
||||
0xef, 0x81, 0xae, 0xe3, 0xdd, 0x3c, 0x94, 0x29, 0x49, 0x11, 0xfc, 0x0e, 0xaa, 0x7f, 0x00, 0x16,
|
||||
0xeb, 0x70, 0x69, 0xbf, 0x1f, 0x42, 0x2d, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae,
|
||||
0x42, 0x60, 0x82,
|
||||
};
|
||||
|
||||
const BITMAP_OPAQUE delete_dimension_xpm[1] = {{ png, sizeof( png ), "delete_dimension_xpm" }};
|
||||
|
||||
//EOF
|
||||
@@ -1,71 +0,0 @@
|
||||
|
||||
/* Do not modify this file, it was automatically generated by the
|
||||
* PNG2cpp CMake script, using a *.png file as input.
|
||||
*/
|
||||
|
||||
#include <bitmaps_png/bitmaps_list.h>
|
||||
|
||||
static const unsigned char png[] = {
|
||||
0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52,
|
||||
0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1a, 0x08, 0x06, 0x00, 0x00, 0x00, 0xa9, 0x4a, 0x4c,
|
||||
0xce, 0x00, 0x00, 0x03, 0x5e, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0xd5, 0x94, 0x59, 0x48, 0x54,
|
||||
0x61, 0x14, 0xc7, 0xdd, 0x18, 0x9b, 0xdc, 0x77, 0x67, 0xdc, 0x37, 0x94, 0x08, 0x35, 0xd2, 0x97,
|
||||
0x7c, 0x8a, 0x82, 0x16, 0x7d, 0xb2, 0x14, 0xd1, 0x54, 0x88, 0x32, 0x49, 0x2d, 0x24, 0x0a, 0xa4,
|
||||
0xa4, 0x1e, 0x0a, 0xa2, 0x87, 0x1e, 0x2a, 0x8c, 0xe8, 0xa9, 0x90, 0xd2, 0x0a, 0x53, 0x06, 0xea,
|
||||
0x35, 0x0a, 0x69, 0x1b, 0x88, 0x74, 0xc4, 0x10, 0x1a, 0x17, 0x94, 0x12, 0x5a, 0x66, 0x51, 0x1a,
|
||||
0xab, 0xe9, 0xf4, 0x3f, 0xb7, 0x73, 0xe3, 0x7a, 0x99, 0xd1, 0x1c, 0x9f, 0xfa, 0xe0, 0xcf, 0x5c,
|
||||
0xce, 0x77, 0xbf, 0xf3, 0xbb, 0xe7, 0x9c, 0xff, 0x37, 0x41, 0x41, 0x01, 0x2c, 0x22, 0x32, 0x2c,
|
||||
0x2d, 0x2d, 0xdd, 0x1d, 0x1d, 0x1d, 0x75, 0xe1, 0xb9, 0x56, 0xb7, 0x67, 0x9e, 0x9f, 0x9f, 0x7f,
|
||||
0x3b, 0x39, 0x39, 0x39, 0x8d, 0xe7, 0xcd, 0x41, 0x81, 0x2e, 0x86, 0x78, 0x3c, 0x1e, 0x4b, 0x75,
|
||||
0x55, 0x15, 0x85, 0x85, 0x86, 0x52, 0x7f, 0x7f, 0xbf, 0x17, 0xb1, 0x3a, 0x15, 0x32, 0x33, 0x33,
|
||||
0x63, 0x2f, 0xca, 0xc9, 0xa1, 0x94, 0xb8, 0x38, 0x1a, 0x19, 0x19, 0xf9, 0x1c, 0x10, 0x4c, 0x0b,
|
||||
0xd9, 0x12, 0x13, 0x43, 0xb7, 0xcc, 0x66, 0x8a, 0x34, 0x18, 0x54, 0x58, 0x87, 0x0a, 0x69, 0x4e,
|
||||
0x4c, 0xa4, 0x33, 0xc9, 0xc9, 0x81, 0xc3, 0x70, 0xa0, 0xbb, 0xa1, 0xa6, 0x86, 0x4a, 0x01, 0x99,
|
||||
0xcb, 0xcf, 0xa7, 0xc5, 0x82, 0x02, 0x1a, 0x34, 0x99, 0x14, 0x58, 0x4f, 0x4f, 0x0f, 0x15, 0x65,
|
||||
0x67, 0x53, 0x13, 0x92, 0xbb, 0x00, 0x5b, 0xc0, 0xbe, 0x0a, 0x9b, 0x9a, 0x9a, 0x9a, 0x5e, 0x2b,
|
||||
0xa8, 0xe3, 0x64, 0x67, 0x27, 0x65, 0x45, 0x46, 0xd2, 0x38, 0x92, 0x2e, 0x20, 0xa1, 0x3b, 0x23,
|
||||
0x83, 0x1e, 0x26, 0x24, 0xd0, 0x06, 0xb4, 0xb1, 0x11, 0x1f, 0xe0, 0x40, 0x95, 0x1c, 0x63, 0x58,
|
||||
0x33, 0xe2, 0x5c, 0x21, 0xcf, 0x6c, 0xad, 0xa0, 0x60, 0xaf, 0xd7, 0x7b, 0xed, 0x78, 0x7b, 0xbb,
|
||||
0x02, 0x1b, 0x43, 0x52, 0x17, 0x2a, 0x72, 0xe2, 0xcb, 0xc7, 0xf1, 0xe5, 0x0e, 0xb4, 0xcc, 0x95,
|
||||
0x92, 0x42, 0x8e, 0xb4, 0x34, 0xa5, 0x32, 0xae, 0x90, 0xdb, 0xc9, 0xb3, 0x0b, 0x64, 0x4e, 0x7f,
|
||||
0x60, 0x6d, 0x6d, 0x94, 0x15, 0x11, 0x41, 0x36, 0x24, 0x77, 0xc4, 0xc7, 0x93, 0x23, 0x3a, 0x9a,
|
||||
0x1c, 0xb1, 0xb1, 0xf4, 0x35, 0x29, 0x49, 0xa9, 0x6c, 0x5d, 0x10, 0x0d, 0x2c, 0x6d, 0x6e, 0x6e,
|
||||
0xce, 0x15, 0x8b, 0xaa, 0xce, 0x43, 0x0a, 0x20, 0x2a, 0x4a, 0xf9, 0x1d, 0x97, 0x36, 0xf2, 0xcc,
|
||||
0xb8, 0xd5, 0xeb, 0x81, 0x98, 0x67, 0x67, 0x67, 0xdf, 0x6f, 0xca, 0xcb, 0xa3, 0x46, 0x06, 0xa0,
|
||||
0x55, 0x4e, 0x24, 0xe7, 0xaa, 0x9c, 0xdc, 0xba, 0xd4, 0x54, 0x1a, 0xc4, 0x2f, 0x1b, 0xa4, 0xb7,
|
||||
0xb7, 0xf7, 0xaf, 0xf5, 0xf5, 0x2b, 0x0a, 0xda, 0xaa, 0xd3, 0x46, 0x0d, 0xc4, 0xa4, 0x5a, 0xb8,
|
||||
0x89, 0x13, 0xf3, 0xd0, 0x31, 0x27, 0x07, 0x60, 0x17, 0x50, 0xd1, 0x18, 0x66, 0xe5, 0x4e, 0x4f,
|
||||
0x27, 0x77, 0x56, 0x16, 0x0d, 0x2e, 0xb7, 0xfe, 0xb2, 0x4b, 0xcd, 0xbd, 0x5c, 0xe2, 0x7c, 0x3a,
|
||||
0x1d, 0xd2, 0x80, 0x2e, 0x6f, 0x2b, 0x2b, 0xa3, 0xdd, 0x98, 0x81, 0x0b, 0xf6, 0x5d, 0xc0, 0x1c,
|
||||
0x9c, 0x99, 0x99, 0xd4, 0x84, 0xca, 0x62, 0xd0, 0x42, 0x9e, 0xd9, 0x18, 0x40, 0x0b, 0xa8, 0x76,
|
||||
0xb1, 0xb0, 0x50, 0xb9, 0x67, 0x61, 0x21, 0x21, 0x64, 0xb3, 0xd9, 0x9c, 0x5a, 0x90, 0x09, 0xf2,
|
||||
0xf8, 0x00, 0x3d, 0xd6, 0x80, 0xf6, 0xf6, 0xf5, 0xf5, 0x79, 0x23, 0xc3, 0xc3, 0xc9, 0x82, 0x84,
|
||||
0x0c, 0xe3, 0xca, 0x78, 0xf0, 0x13, 0x13, 0x13, 0xa4, 0x18, 0x84, 0xad, 0x9f, 0x9b, 0xab, 0xdc,
|
||||
0x33, 0xbe, 0xd4, 0xd5, 0x95, 0x95, 0xc4, 0x7f, 0x57, 0xfa, 0xd6, 0x99, 0xa4, 0x5d, 0x33, 0x1a,
|
||||
0x10, 0x57, 0x19, 0xab, 0x81, 0xd5, 0xab, 0xb0, 0x5d, 0xec, 0x2e, 0xb4, 0x71, 0x78, 0x78, 0x98,
|
||||
0x4a, 0x4a, 0x4a, 0xae, 0xda, 0xed, 0xf6, 0x7e, 0xd5, 0xfa, 0xa5, 0x70, 0x21, 0x43, 0xac, 0x56,
|
||||
0xeb, 0x04, 0xff, 0xa3, 0xf8, 0x9a, 0x53, 0x81, 0x00, 0x3e, 0x42, 0xcf, 0xe4, 0xb9, 0x49, 0x67,
|
||||
0x08, 0x05, 0x56, 0x51, 0x5e, 0x4e, 0xf8, 0x63, 0xfd, 0x62, 0x46, 0x8b, 0x10, 0x6e, 0x55, 0xad,
|
||||
0xcf, 0x97, 0xfa, 0x40, 0x6d, 0x2d, 0x0d, 0x0c, 0x0c, 0x90, 0xd1, 0x68, 0x1c, 0xf2, 0x67, 0xac,
|
||||
0x2e, 0x49, 0x7e, 0x1d, 0x3a, 0x26, 0xcf, 0x43, 0x3e, 0xdc, 0xb7, 0x87, 0x67, 0x56, 0x5c, 0x5c,
|
||||
0x7c, 0x49, 0xde, 0x69, 0x55, 0xef, 0x19, 0xdb, 0xda, 0x62, 0xb1, 0x0c, 0x19, 0x60, 0x06, 0x84,
|
||||
0x6e, 0xfb, 0x03, 0xbd, 0x92, 0x83, 0x3b, 0xa1, 0x34, 0xe8, 0x97, 0xcc, 0x2e, 0xda, 0xcf, 0xfb,
|
||||
0xdd, 0xf2, 0x7e, 0x2f, 0xd4, 0x02, 0xb5, 0x41, 0x37, 0xa0, 0x6f, 0xd0, 0x4f, 0xa8, 0xc2, 0xd7,
|
||||
0xa1, 0x74, 0x49, 0xfc, 0x09, 0x0a, 0x93, 0xd8, 0x4b, 0x49, 0x54, 0xb7, 0x0a, 0xc8, 0x97, 0x5e,
|
||||
0x68, 0xf2, 0x2c, 0x5b, 0x1d, 0xf2, 0xc2, 0x1b, 0xf9, 0xba, 0x16, 0x71, 0x1d, 0xc7, 0xee, 0x07,
|
||||
0x00, 0x62, 0x3d, 0x80, 0x82, 0xf5, 0x87, 0x9e, 0xac, 0x70, 0x60, 0x11, 0x8a, 0x58, 0x01, 0xd4,
|
||||
0xaa, 0xbb, 0xf8, 0xf5, 0x90, 0x5b, 0xf6, 0x76, 0x68, 0x0f, 0x24, 0x42, 0x3f, 0x56, 0xf9, 0xba,
|
||||
0x7d, 0xff, 0x08, 0x52, 0xd7, 0x69, 0xd9, 0x3b, 0xab, 0x0d, 0x1e, 0x96, 0xe0, 0x3d, 0x1f, 0x07,
|
||||
0xce, 0xc9, 0xde, 0x9d, 0x35, 0x82, 0x54, 0x07, 0x9f, 0x52, 0x03, 0x0d, 0xd0, 0x3b, 0x09, 0x3e,
|
||||
0x87, 0x8e, 0x6a, 0x5e, 0xde, 0x0f, 0x3d, 0x92, 0x3d, 0xb7, 0x24, 0x0e, 0x95, 0xbd, 0x83, 0xd0,
|
||||
0x6b, 0xd9, 0x7b, 0x2a, 0x6e, 0x63, 0xdd, 0x94, 0xd9, 0x7e, 0x97, 0xbd, 0xed, 0x6a, 0xb2, 0x0f,
|
||||
0x3e, 0xda, 0xa4, 0xce, 0x63, 0xd2, 0xc7, 0x5e, 0xa9, 0x0c, 0x78, 0xb5, 0x56, 0xb3, 0x06, 0xb4,
|
||||
0x66, 0xe8, 0x12, 0x2b, 0x5a, 0xe5, 0x1e, 0x5d, 0xd1, 0x54, 0x74, 0x42, 0xaa, 0xb4, 0x8a, 0xb8,
|
||||
0x7d, 0x46, 0xd9, 0xbb, 0x28, 0xf6, 0xb7, 0xea, 0xc4, 0x39, 0xfa, 0xa0, 0x23, 0xfe, 0xec, 0xfd,
|
||||
0xff, 0xaf, 0xdf, 0x05, 0xe7, 0x4a, 0x51, 0xc1, 0x6d, 0x5e, 0xec, 0x00, 0x00, 0x00, 0x00, 0x49,
|
||||
0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82,
|
||||
};
|
||||
|
||||
const BITMAP_OPAQUE delete_field_xpm[1] = {{ png, sizeof( png ), "delete_field_xpm" }};
|
||||
|
||||
//EOF
|
||||
@@ -1,101 +0,0 @@
|
||||
|
||||
/* Do not modify this file, it was automatically generated by the
|
||||
* PNG2cpp CMake script, using a *.png file as input.
|
||||
*/
|
||||
|
||||
#include <bitmaps_png/bitmaps_list.h>
|
||||
|
||||
static const unsigned char png[] = {
|
||||
0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52,
|
||||
0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1a, 0x08, 0x06, 0x00, 0x00, 0x00, 0xa9, 0x4a, 0x4c,
|
||||
0xce, 0x00, 0x00, 0x05, 0x38, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0x8d, 0x95, 0x6d, 0x50, 0x54,
|
||||
0x75, 0x14, 0xc6, 0x17, 0x16, 0x45, 0x90, 0x78, 0x11, 0x71, 0x44, 0x40, 0x91, 0x5d, 0x61, 0x18,
|
||||
0xd8, 0x25, 0xf4, 0x03, 0xa9, 0x35, 0x18, 0x4d, 0xdf, 0xc2, 0x20, 0x35, 0xb3, 0x1c, 0x3f, 0x94,
|
||||
0x4e, 0x33, 0xd9, 0xd4, 0x34, 0x8d, 0x43, 0x46, 0x4e, 0x6f, 0x4e, 0x63, 0x4e, 0x4d, 0x36, 0x35,
|
||||
0x69, 0x9a, 0x68, 0x35, 0x59, 0x41, 0x96, 0xf9, 0x81, 0x58, 0xc5, 0x77, 0xe5, 0x45, 0x79, 0x87,
|
||||
0x5d, 0x96, 0x17, 0x59, 0x75, 0x05, 0xd4, 0x15, 0xd8, 0x65, 0x41, 0x42, 0x83, 0xa7, 0xe7, 0xac,
|
||||
0x77, 0xed, 0xb6, 0x2e, 0xe2, 0x7f, 0xe6, 0x37, 0xfc, 0xef, 0xbd, 0xdc, 0xf3, 0xdc, 0x73, 0xce,
|
||||
0x73, 0xfe, 0xab, 0xd1, 0xfc, 0xb7, 0x36, 0x90, 0x6f, 0x7d, 0xd0, 0x6b, 0x26, 0x58, 0x00, 0xd6,
|
||||
0xd6, 0xd5, 0xd5, 0xb9, 0x6f, 0xdf, 0xbe, 0x5d, 0xc4, 0xbd, 0x56, 0x75, 0xff, 0x91, 0x81, 0x81,
|
||||
0x81, 0xa3, 0x66, 0xb3, 0xf9, 0x26, 0xf7, 0xd9, 0xbe, 0xef, 0x05, 0x92, 0x7f, 0xe4, 0xff, 0x7c,
|
||||
0xd8, 0x3a, 0x81, 0xc8, 0xba, 0x7d, 0x45, 0x45, 0xe3, 0x81, 0x01, 0x01, 0x58, 0x9d, 0x9f, 0x8f,
|
||||
0xd1, 0xd1, 0xd1, 0x9f, 0x45, 0x4c, 0x44, 0xfa, 0xfb, 0xfb, 0x2b, 0x97, 0x2c, 0x5c, 0x88, 0xd0,
|
||||
0xa9, 0x53, 0x51, 0x5e, 0x5e, 0x3e, 0xc2, 0x7b, 0xcb, 0x7c, 0xdf, 0x7f, 0x81, 0x6c, 0x23, 0x36,
|
||||
0x95, 0x50, 0x27, 0x09, 0xf0, 0x27, 0x32, 0x23, 0x24, 0x04, 0x7f, 0x25, 0x24, 0xe0, 0x89, 0x19,
|
||||
0x33, 0xb0, 0x32, 0x37, 0x57, 0xc4, 0x7e, 0x71, 0xb9, 0x5c, 0x95, 0xd9, 0x59, 0x59, 0xc8, 0x8f,
|
||||
0x8e, 0x46, 0x71, 0x5c, 0x1c, 0xa2, 0x42, 0x43, 0x71, 0xe4, 0xc8, 0x91, 0x11, 0x7f, 0x99, 0x85,
|
||||
0x90, 0x41, 0x32, 0x4c, 0xda, 0x14, 0xb1, 0x2c, 0x95, 0xc8, 0xcc, 0xb2, 0xb2, 0xb2, 0x3b, 0xa1,
|
||||
0x53, 0xa6, 0xe0, 0xec, 0xbc, 0x79, 0x18, 0x4e, 0x4e, 0x46, 0x6f, 0x62, 0x22, 0xb2, 0x22, 0x22,
|
||||
0x3c, 0x99, 0x49, 0x26, 0xcf, 0x45, 0x45, 0x61, 0x80, 0xcf, 0x86, 0x74, 0x3a, 0x1c, 0x98, 0x33,
|
||||
0xc7, 0x93, 0x19, 0xcb, 0xe8, 0xf0, 0x15, 0x5a, 0xa9, 0x04, 0xff, 0x95, 0xbc, 0xa7, 0xec, 0xbf,
|
||||
0x50, 0x09, 0x05, 0xdb, 0x6c, 0xb6, 0x4e, 0x1d, 0xbf, 0x76, 0xd3, 0xac, 0x59, 0x18, 0x4a, 0x4a,
|
||||
0x82, 0x7b, 0xee, 0x5c, 0x74, 0xc7, 0xc6, 0x22, 0x2b, 0x3c, 0x1c, 0x2b, 0x28, 0xd8, 0xcf, 0xbd,
|
||||
0x3b, 0x3e, 0x1e, 0x4e, 0x8a, 0xad, 0x60, 0x66, 0x22, 0xee, 0x74, 0x3a, 0x8f, 0xfa, 0x0a, 0x95,
|
||||
0x28, 0xc1, 0xf3, 0x88, 0x8e, 0x8c, 0x93, 0x1e, 0xa2, 0x6e, 0x76, 0x7c, 0x57, 0x57, 0x97, 0x4d,
|
||||
0xc7, 0x60, 0x9b, 0x66, 0xce, 0xc4, 0x20, 0xbf, 0xda, 0x45, 0x51, 0x17, 0x83, 0x7a, 0xe0, 0xbe,
|
||||
0x9f, 0xf7, 0x24, 0xb3, 0x25, 0x99, 0x99, 0x90, 0x9e, 0x49, 0xef, 0xd4, 0x22, 0x72, 0x71, 0x8b,
|
||||
0xb8, 0xc8, 0x34, 0xe5, 0xde, 0x05, 0x45, 0x38, 0xc7, 0xa7, 0x4f, 0x1e, 0xb1, 0x24, 0x66, 0x56,
|
||||
0xc8, 0x80, 0x22, 0xe0, 0x64, 0x46, 0x4e, 0x66, 0xe4, 0xa2, 0xb8, 0x64, 0x36, 0x91, 0x88, 0xac,
|
||||
0x17, 0x95, 0xa0, 0x76, 0x95, 0xbd, 0x9b, 0x94, 0x7b, 0xbb, 0x7d, 0x84, 0xc4, 0x5d, 0x55, 0x8b,
|
||||
0x19, 0x6c, 0x6d, 0x64, 0x24, 0x5c, 0x34, 0x84, 0x47, 0x88, 0x7b, 0x67, 0x4c, 0x8c, 0xa7, 0x67,
|
||||
0xcf, 0xe7, 0xe5, 0x79, 0x0c, 0xa2, 0xb6, 0xbe, 0x77, 0x1d, 0xf6, 0x63, 0x6f, 0x2f, 0xfd, 0x24,
|
||||
0xd8, 0x2b, 0xe2, 0x75, 0x57, 0x1e, 0xb3, 0x91, 0x9e, 0xb8, 0x18, 0xdc, 0x53, 0x36, 0xfe, 0x1d,
|
||||
0x9c, 0x3d, 0x1b, 0xd7, 0x99, 0xe9, 0xe3, 0x7c, 0xb6, 0x6a, 0xf9, 0xf2, 0x7b, 0xd6, 0xf7, 0x8a,
|
||||
0x44, 0x92, 0xbf, 0x95, 0x80, 0xdb, 0x7c, 0xb0, 0x2a, 0x62, 0xb9, 0xf2, 0x02, 0x33, 0x39, 0x2b,
|
||||
0x0d, 0x96, 0x46, 0x8b, 0xbb, 0xa4, 0xf1, 0x22, 0x26, 0x99, 0xbd, 0xcb, 0xe0, 0x72, 0x3d, 0x44,
|
||||
0x27, 0xf6, 0xd2, 0x28, 0x59, 0xbc, 0x16, 0x37, 0xca, 0x50, 0x7b, 0x87, 0xf5, 0x0d, 0x25, 0x58,
|
||||
0x29, 0x89, 0x56, 0x65, 0x39, 0x95, 0x7c, 0xae, 0x3c, 0xfb, 0xbd, 0xb8, 0xb8, 0x58, 0x4f, 0xc6,
|
||||
0xa7, 0x05, 0x05, 0xc1, 0x3c, 0x7f, 0xbe, 0xc7, 0x75, 0x22, 0x26, 0x8d, 0x97, 0x32, 0x26, 0xd1,
|
||||
0x04, 0x62, 0x90, 0x21, 0xbd, 0x1e, 0xc3, 0x29, 0x29, 0x9e, 0x39, 0x93, 0xa1, 0xae, 0xad, 0xad,
|
||||
0x95, 0x91, 0xd1, 0xec, 0xf1, 0x29, 0x93, 0x9b, 0x84, 0x2b, 0x42, 0x16, 0x9f, 0x67, 0x97, 0x99,
|
||||
0xd5, 0x87, 0x5b, 0x36, 0x6f, 0xc6, 0xdc, 0xb0, 0x30, 0x34, 0x51, 0x6c, 0x35, 0x03, 0x4b, 0xe3,
|
||||
0xfb, 0xfa, 0xfa, 0xaa, 0xc4, 0x20, 0x7a, 0x06, 0x7f, 0x93, 0xce, 0xab, 0x60, 0x56, 0x31, 0x1c,
|
||||
0xd8, 0xfd, 0x1c, 0x6e, 0x39, 0xae, 0x24, 0x58, 0x81, 0x52, 0x36, 0x6f, 0xb0, 0x46, 0x95, 0xeb,
|
||||
0xfe, 0x50, 0x1d, 0x4d, 0x63, 0xa4, 0x5c, 0xe9, 0xd3, 0x47, 0x85, 0x05, 0x05, 0x08, 0xd6, 0x6a,
|
||||
0x3d, 0x73, 0xe2, 0x75, 0xd7, 0x3d, 0xeb, 0xb3, 0x47, 0x21, 0x1c, 0xea, 0x7d, 0x77, 0x45, 0xd6,
|
||||
0xdd, 0x77, 0x86, 0x75, 0xe8, 0xf5, 0xc1, 0x4d, 0x06, 0x43, 0xd4, 0x44, 0xc8, 0x73, 0x95, 0xf3,
|
||||
0x3e, 0x28, 0x29, 0x29, 0x19, 0x97, 0x9e, 0xa9, 0x2d, 0x2c, 0x62, 0x32, 0xd4, 0x72, 0x82, 0xf8,
|
||||
0x15, 0xf1, 0xd4, 0xc9, 0x68, 0x7c, 0xa5, 0xd5, 0x68, 0xc4, 0x83, 0xb0, 0x18, 0x0c, 0x37, 0x5b,
|
||||
0x0c, 0x86, 0xe2, 0x13, 0xa9, 0xa9, 0x8f, 0x39, 0x1c, 0x8e, 0x39, 0xfe, 0xec, 0x2b, 0x27, 0x88,
|
||||
0x1c, 0x57, 0x13, 0x9d, 0xfc, 0x9a, 0x16, 0xa3, 0x71, 0x7d, 0x7b, 0x76, 0x36, 0x46, 0x2e, 0xd9,
|
||||
0xe1, 0xee, 0xb4, 0xc3, 0xd9, 0x66, 0x47, 0x9f, 0xc5, 0x8e, 0x1b, 0xcd, 0x76, 0xf4, 0xd4, 0xdb,
|
||||
0x71, 0xe5, 0xb4, 0x15, 0x5d, 0x3f, 0x99, 0xd0, 0xf6, 0xf2, 0xeb, 0x22, 0x38, 0x56, 0x9a, 0x92,
|
||||
0xb2, 0x45, 0xb1, 0x7d, 0x80, 0x66, 0xb2, 0x65, 0x59, 0xb4, 0x28, 0xb6, 0xd5, 0x60, 0x28, 0xe2,
|
||||
0x57, 0xee, 0x37, 0x1b, 0x0c, 0x15, 0x1d, 0x39, 0x39, 0xb8, 0x75, 0x0b, 0x70, 0xbb, 0x81, 0x81,
|
||||
0x01, 0xc0, 0xe1, 0x00, 0x7a, 0x7b, 0x81, 0xab, 0x57, 0x81, 0x4b, 0x97, 0x80, 0xce, 0x4e, 0xc0,
|
||||
0x6a, 0x05, 0xcc, 0xdb, 0x7f, 0x00, 0x2b, 0x30, 0xfe, 0x4e, 0x5c, 0xdc, 0xdb, 0xca, 0x61, 0xfc,
|
||||
0xe0, 0x65, 0x4e, 0x4b, 0x9b, 0xcd, 0x4c, 0xf6, 0x1c, 0x4f, 0x4d, 0x3d, 0x58, 0x91, 0x96, 0xd6,
|
||||
0xd8, 0xfe, 0x64, 0x0e, 0x06, 0x07, 0xc1, 0x06, 0x03, 0x37, 0x6e, 0x00, 0x3d, 0x3d, 0x80, 0xdd,
|
||||
0x0e, 0xd8, 0x6c, 0x40, 0x47, 0x07, 0xd0, 0xda, 0x0a, 0x34, 0x37, 0x03, 0x0d, 0x0d, 0x40, 0xcb,
|
||||
0x9a, 0x57, 0x71, 0x38, 0x39, 0xb9, 0x9b, 0x61, 0x16, 0x93, 0x20, 0xcd, 0x43, 0x2c, 0x49, 0xff,
|
||||
0xa5, 0xc2, 0xb8, 0xb8, 0xdf, 0x44, 0xa8, 0xaf, 0x0f, 0xb8, 0x7e, 0x1d, 0xe8, 0xee, 0x06, 0xae,
|
||||
0x5c, 0x01, 0xba, 0xba, 0x80, 0xf6, 0x76, 0xc0, 0x62, 0x01, 0x9a, 0x9a, 0x80, 0xfa, 0x7a, 0xe0,
|
||||
0xc2, 0x05, 0xa0, 0xee, 0x93, 0x03, 0x52, 0xc2, 0xf1, 0x67, 0x22, 0x22, 0xf6, 0x1c, 0xd2, 0xe9,
|
||||
0x96, 0xb4, 0x66, 0x64, 0x24, 0x4f, 0x26, 0x24, 0x35, 0x0e, 0x61, 0x46, 0x1b, 0xdb, 0x96, 0xe5,
|
||||
0xe0, 0xda, 0xb5, 0xbb, 0xa5, 0xba, 0xcc, 0xa9, 0xb9, 0x78, 0x11, 0x68, 0x6b, 0x63, 0xa9, 0xcc,
|
||||
0x40, 0x63, 0x23, 0x83, 0xd7, 0x01, 0xe7, 0xcf, 0x03, 0x15, 0x15, 0x40, 0xd5, 0xce, 0xd3, 0xff,
|
||||
0x33, 0x0a, 0xcb, 0x6f, 0x56, 0x0e, 0x67, 0xed, 0x03, 0xd5, 0x68, 0xe1, 0x0d, 0x22, 0x24, 0xa5,
|
||||
0x52, 0xf7, 0xa3, 0xa5, 0xe5, 0x6e, 0xa9, 0x6a, 0x6b, 0x81, 0xea, 0x6a, 0xe0, 0xdc, 0x39, 0xe0,
|
||||
0xd4, 0x29, 0xee, 0xdf, 0xff, 0x11, 0xcd, 0x34, 0x45, 0x4c, 0x50, 0xd0, 0xc1, 0x70, 0xad, 0x76,
|
||||
0xe7, 0xf4, 0xc0, 0xc0, 0x1d, 0x0c, 0xf3, 0x31, 0x49, 0x54, 0x4e, 0x9c, 0x89, 0x85, 0xac, 0xd9,
|
||||
0x39, 0x7e, 0xfb, 0x51, 0x53, 0xc3, 0x0c, 0xaa, 0x80, 0xb3, 0x9c, 0x9a, 0x93, 0x27, 0x81, 0xe3,
|
||||
0xe5, 0x63, 0x68, 0xcc, 0x5d, 0x8b, 0xe2, 0x05, 0x0b, 0xe4, 0xf7, 0xea, 0x7b, 0xf2, 0x2c, 0x59,
|
||||
0x48, 0x8c, 0x64, 0xfa, 0x7d, 0x4e, 0xec, 0xc8, 0xcc, 0x8c, 0xb1, 0x66, 0x64, 0x6c, 0xb3, 0x64,
|
||||
0x64, 0x7c, 0x6a, 0x36, 0x1a, 0xcb, 0x44, 0xc8, 0x5f, 0x3f, 0x2a, 0x39, 0xfb, 0x67, 0xce, 0x00,
|
||||
0x27, 0x4e, 0x00, 0xc7, 0x8e, 0x8e, 0xe1, 0xfc, 0xc6, 0xed, 0x52, 0xaa, 0xb1, 0xa5, 0x61, 0x61,
|
||||
0x26, 0x86, 0xf9, 0x92, 0xc4, 0x28, 0x86, 0xd0, 0xfa, 0xb5, 0x7b, 0x87, 0xd1, 0x18, 0x4f, 0x81,
|
||||
0x3f, 0xab, 0xd2, 0xd2, 0x8e, 0xd5, 0xa4, 0xa7, 0xb7, 0x5b, 0x17, 0x2f, 0x85, 0x65, 0xaf, 0x09,
|
||||
0xcd, 0xbb, 0x4d, 0x68, 0xdc, 0x65, 0x42, 0xfd, 0x37, 0x26, 0xd4, 0x7c, 0x65, 0x42, 0xf5, 0x0e,
|
||||
0x13, 0x2a, 0x3f, 0x2b, 0x45, 0x75, 0xc1, 0x6e, 0x34, 0x3d, 0x9d, 0x8f, 0x06, 0x83, 0xe1, 0xce,
|
||||
0x9a, 0xe8, 0xe8, 0x73, 0x0c, 0x21, 0x27, 0xf3, 0x2a, 0xef, 0xcf, 0xc8, 0x64, 0x4b, 0xe6, 0x60,
|
||||
0xfd, 0x5b, 0xb1, 0xb1, 0x87, 0x1a, 0xd2, 0xd3, 0x47, 0xea, 0xd2, 0xd3, 0x47, 0xfd, 0x41, 0xb3,
|
||||
0x0c, 0xd3, 0xce, 0x8e, 0xad, 0x09, 0x09, 0xe6, 0x79, 0xc1, 0xc1, 0x72, 0x0e, 0xee, 0x25, 0xaf,
|
||||
0x91, 0xa8, 0x87, 0x1a, 0x5a, 0xaf, 0xeb, 0x48, 0x04, 0x79, 0x94, 0x7c, 0xad, 0x04, 0xf1, 0xc7,
|
||||
0x77, 0x64, 0x17, 0x29, 0x24, 0x4f, 0x29, 0x27, 0xfd, 0xa4, 0x22, 0xff, 0x02, 0x58, 0x70, 0xe4,
|
||||
0x4e, 0x94, 0xa5, 0x11, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60,
|
||||
0x82,
|
||||
};
|
||||
|
||||
const BITMAP_OPAQUE delete_glabel_xpm[1] = {{ png, sizeof( png ), "delete_glabel_xpm" }};
|
||||
|
||||
//EOF
|
||||
@@ -1,74 +0,0 @@
|
||||
|
||||
/* Do not modify this file, it was automatically generated by the
|
||||
* PNG2cpp CMake script, using a *.png file as input.
|
||||
*/
|
||||
|
||||
#include <bitmaps_png/bitmaps_list.h>
|
||||
|
||||
static const unsigned char png[] = {
|
||||
0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52,
|
||||
0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1a, 0x08, 0x06, 0x00, 0x00, 0x00, 0xa9, 0x4a, 0x4c,
|
||||
0xce, 0x00, 0x00, 0x03, 0x96, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0xb5, 0x95, 0x5b, 0x48, 0x54,
|
||||
0x61, 0x10, 0xc7, 0x67, 0x75, 0x4b, 0xcd, 0xfb, 0x7a, 0xab, 0x34, 0xef, 0xe2, 0x43, 0x59, 0x14,
|
||||
0x04, 0x05, 0x11, 0xf5, 0xd0, 0x53, 0x45, 0x42, 0x05, 0x11, 0x6d, 0x0f, 0x51, 0x78, 0xe9, 0xa2,
|
||||
0x8f, 0x99, 0x52, 0x92, 0x3e, 0x54, 0xae, 0x19, 0xbd, 0x48, 0x11, 0x85, 0x42, 0x08, 0x0b, 0x42,
|
||||
0x62, 0x94, 0x26, 0xf8, 0xd0, 0xcb, 0xaa, 0x98, 0x4b, 0x22, 0x11, 0x78, 0xa1, 0x82, 0x96, 0x42,
|
||||
0xdb, 0xf6, 0x66, 0x5e, 0xd2, 0x9d, 0xfe, 0x73, 0x3c, 0xa7, 0x0e, 0xb6, 0x5b, 0x69, 0xec, 0x07,
|
||||
0xb3, 0xe7, 0x3b, 0xfb, 0x9d, 0x33, 0xbf, 0xf9, 0xcf, 0x37, 0xf3, 0x1d, 0xa2, 0x55, 0x0c, 0x66,
|
||||
0xde, 0x06, 0xcb, 0x0f, 0xb2, 0x66, 0x84, 0xed, 0x85, 0x99, 0xe8, 0x7f, 0x06, 0x1c, 0x54, 0xf5,
|
||||
0xf6, 0xf6, 0xfa, 0xed, 0x76, 0xfb, 0x3c, 0xe6, 0xc7, 0x97, 0xad, 0x45, 0xfa, 0xfd, 0xfe, 0xe7,
|
||||
0xad, 0xad, 0xad, 0x3c, 0x35, 0x35, 0xf5, 0x11, 0xf7, 0x05, 0xab, 0x85, 0x54, 0x5b, 0xad, 0x56,
|
||||
0x36, 0x86, 0x87, 0x73, 0x7c, 0x74, 0x34, 0xf7, 0xf5, 0xf5, 0x2d, 0x68, 0x30, 0x15, 0xd2, 0x55,
|
||||
0x5e, 0x5a, 0xca, 0x72, 0xbb, 0x7d, 0xcb, 0x16, 0x9e, 0x9c, 0x9c, 0x74, 0xac, 0x18, 0xa6, 0x87,
|
||||
0x5c, 0x4f, 0x49, 0x61, 0x73, 0x62, 0xa2, 0x1e, 0x66, 0xd6, 0x20, 0x31, 0x6b, 0xd6, 0x70, 0xdb,
|
||||
0xc6, 0x8d, 0xbc, 0x19, 0x6b, 0x3b, 0x8a, 0x8a, 0x56, 0x06, 0xc3, 0x83, 0x27, 0xda, 0xdb, 0xdb,
|
||||
0x15, 0x48, 0x1d, 0x20, 0xd3, 0x85, 0x85, 0xec, 0x2d, 0x28, 0x60, 0x73, 0x7c, 0xbc, 0x06, 0x63,
|
||||
0x0d, 0xf2, 0x62, 0xfd, 0x7a, 0xf6, 0xe5, 0xe5, 0xf1, 0x7b, 0x98, 0x06, 0x73, 0x3a, 0x9d, 0x1f,
|
||||
0x96, 0x3c, 0x35, 0xd0, 0x11, 0xb2, 0xd0, 0x45, 0xaa, 0x25, 0x63, 0x10, 0x50, 0x6d, 0x79, 0x59,
|
||||
0x19, 0xc7, 0xc1, 0xd1, 0x50, 0x4e, 0x0e, 0xfb, 0x00, 0xf1, 0xe1, 0xea, 0xce, 0xcc, 0xe4, 0x53,
|
||||
0xb1, 0xb1, 0x4a, 0x00, 0x02, 0xe9, 0x42, 0x10, 0xde, 0x4d, 0x9b, 0xd8, 0x9b, 0x9d, 0xad, 0xc0,
|
||||
0x2a, 0x92, 0x92, 0x78, 0xad, 0xd1, 0xc8, 0x23, 0x23, 0x23, 0x8b, 0x44, 0xb7, 0xc9, 0x04, 0xc8,
|
||||
0x02, 0x8c, 0xa9, 0x91, 0x1e, 0x93, 0x95, 0xc2, 0x03, 0x80, 0x12, 0x67, 0x67, 0x67, 0xed, 0x47,
|
||||
0x0e, 0x1d, 0xe2, 0xb4, 0xa8, 0x28, 0x7e, 0x25, 0xce, 0x00, 0xf1, 0x20, 0x45, 0xae, 0xb4, 0x34,
|
||||
0xbe, 0x82, 0xc8, 0xbb, 0x91, 0x4a, 0x0f, 0xe6, 0xf2, 0x9f, 0xac, 0x55, 0xe1, 0x5e, 0x20, 0x9d,
|
||||
0x9d, 0x9d, 0x78, 0x9d, 0x2b, 0x48, 0x71, 0x6c, 0x21, 0x9b, 0x02, 0x5a, 0xb2, 0x87, 0xf8, 0x35,
|
||||
0x04, 0x80, 0x99, 0xe6, 0xe6, 0xe6, 0xec, 0xc5, 0x87, 0x0f, 0x73, 0x4a, 0x64, 0x24, 0xf7, 0xa5,
|
||||
0xa6, 0x2a, 0x8e, 0xdd, 0xc9, 0xc9, 0xec, 0x82, 0x53, 0x97, 0xc9, 0xa4, 0xcc, 0x3d, 0x48, 0xdd,
|
||||
0xe5, 0xb8, 0x38, 0x05, 0xd2, 0xd1, 0xd1, 0x21, 0x90, 0xca, 0x5f, 0x5e, 0x9a, 0x28, 0x01, 0x80,
|
||||
0xc1, 0x9f, 0xb0, 0x46, 0x7a, 0x10, 0x0c, 0x06, 0x65, 0x43, 0xa2, 0x2c, 0x35, 0x22, 0x82, 0x87,
|
||||
0xe1, 0x5c, 0x20, 0x5f, 0x91, 0x3e, 0x17, 0xf6, 0xcb, 0x8d, 0x54, 0x5d, 0xc3, 0x5c, 0xa7, 0xa4,
|
||||
0xf2, 0xf7, 0x8d, 0xb8, 0x4b, 0x29, 0x80, 0x8c, 0xe8, 0x94, 0xdd, 0x09, 0x00, 0x92, 0x12, 0xee,
|
||||
0x2e, 0x2b, 0x29, 0x51, 0xf6, 0xc4, 0x26, 0x4a, 0x12, 0x12, 0xd8, 0x05, 0x05, 0x72, 0x15, 0x45,
|
||||
0x65, 0x00, 0x49, 0x81, 0x0c, 0x0c, 0x0c, 0x2c, 0xe2, 0xf9, 0x63, 0x81, 0xcb, 0xab, 0x81, 0x52,
|
||||
0x61, 0x6f, 0x74, 0x30, 0xcb, 0x32, 0x48, 0xd7, 0x85, 0xf3, 0xe7, 0x79, 0x1d, 0x22, 0x7e, 0x8a,
|
||||
0xe8, 0xdd, 0x48, 0x9f, 0xa8, 0x70, 0x6b, 0x69, 0x93, 0x54, 0xa6, 0xa7, 0xf3, 0x19, 0xb5, 0x1a,
|
||||
0x6d, 0x36, 0xdb, 0x42, 0x70, 0xd8, 0x4d, 0xca, 0x80, 0xfb, 0x71, 0x1d, 0xac, 0x46, 0xdf, 0x8c,
|
||||
0xa2, 0xa4, 0x1b, 0xfb, 0xe0, 0xcd, 0xc8, 0x60, 0xcf, 0x86, 0x0d, 0x8a, 0xf3, 0x66, 0x28, 0x7a,
|
||||
0x25, 0x20, 0xb5, 0x10, 0x3c, 0xa8, 0xc8, 0x53, 0x50, 0x98, 0x10, 0x13, 0xc3, 0xfd, 0xfd, 0xfd,
|
||||
0x7f, 0x80, 0xdd, 0xa0, 0x4c, 0x00, 0xde, 0x69, 0xb0, 0xb6, 0xb7, 0x6d, 0xcf, 0x6a, 0xaa, 0xab,
|
||||
0x39, 0x5a, 0xfa, 0x04, 0x00, 0x29, 0x6d, 0x6f, 0x56, 0x96, 0x02, 0x93, 0x8d, 0x17, 0xc1, 0xb2,
|
||||
0x67, 0x83, 0x00, 0xcb, 0x9a, 0x2f, 0x3f, 0x9f, 0xbd, 0xe8, 0xb5, 0x93, 0x48, 0xad, 0xc0, 0xc6,
|
||||
0xc6, 0xc6, 0x66, 0x82, 0x77, 0xe9, 0x2d, 0x2a, 0x00, 0xc4, 0x21, 0xa0, 0xd2, 0x9e, 0x52, 0x6e,
|
||||
0x6e, 0x6e, 0x66, 0x63, 0x58, 0x18, 0x3f, 0x12, 0x67, 0x70, 0xe4, 0xcb, 0xcd, 0xe5, 0x2a, 0x44,
|
||||
0x2d, 0x1b, 0x2f, 0xcd, 0xac, 0x14, 0x08, 0xaa, 0x71, 0x08, 0x01, 0x48, 0x43, 0x4f, 0xa2, 0xd7,
|
||||
0xf6, 0x21, 0x88, 0x6c, 0xa4, 0xd2, 0xe1, 0x70, 0x38, 0xff, 0x7c, 0x24, 0xdc, 0xa4, 0x42, 0x80,
|
||||
0x3e, 0x19, 0x2c, 0x06, 0xbe, 0xf7, 0xfa, 0x1e, 0x37, 0x35, 0x35, 0x71, 0x38, 0x60, 0x0f, 0x00,
|
||||
0xab, 0x52, 0x9b, 0x51, 0x2d, 0xe1, 0x1a, 0x94, 0xfe, 0x90, 0x56, 0xfa, 0x2f, 0x01, 0xdb, 0x0f,
|
||||
0x48, 0x26, 0x9e, 0x1b, 0x1d, 0x1d, 0xf5, 0x62, 0x7d, 0xd7, 0xdf, 0xcf, 0x9f, 0x06, 0xda, 0x0a,
|
||||
0xd8, 0x17, 0x81, 0xdd, 0x1f, 0xbe, 0xef, 0x17, 0x58, 0x98, 0xc1, 0xf0, 0x5b, 0x09, 0xeb, 0x4b,
|
||||
0x1f, 0x7d, 0xa1, 0x28, 0x19, 0x1f, 0x1f, 0xff, 0x47, 0x88, 0x36, 0x1a, 0x69, 0x3b, 0x60, 0x4e,
|
||||
0x55, 0x99, 0xbf, 0xa5, 0xa5, 0x85, 0x7b, 0x7a, 0x7a, 0xfc, 0xcb, 0xfb, 0x44, 0x83, 0xd5, 0xd5,
|
||||
0xd5, 0xf1, 0xc4, 0xc4, 0x84, 0x67, 0x65, 0x90, 0x5f, 0xca, 0x76, 0x03, 0xe6, 0x15, 0x58, 0xf1,
|
||||
0x93, 0xe2, 0x85, 0x7a, 0x5b, 0xfd, 0x95, 0x20, 0xe7, 0x62, 0x2c, 0xec, 0x34, 0x2c, 0x6f, 0xf5,
|
||||
0x5f, 0x3d, 0x0b, 0xed, 0x81, 0xf9, 0xd4, 0x6a, 0x9c, 0x03, 0xfc, 0x20, 0x85, 0x6c, 0x58, 0xe8,
|
||||
0x00, 0x6c, 0x46, 0x85, 0x7d, 0x43, 0x5a, 0xf7, 0x87, 0x0e, 0xb6, 0xf4, 0x59, 0x99, 0x57, 0xcf,
|
||||
0xc5, 0x69, 0x5c, 0xf7, 0x86, 0x0e, 0xd6, 0x48, 0x47, 0x01, 0xf8, 0xae, 0x2a, 0x73, 0xc3, 0x76,
|
||||
0x86, 0x32, 0x8d, 0x66, 0xd8, 0xa2, 0x0a, 0xfb, 0x8a, 0x26, 0xdf, 0x11, 0xca, 0x34, 0x9e, 0x03,
|
||||
0xc4, 0xaf, 0xc2, 0x3e, 0xe3, 0x43, 0x9a, 0x1f, 0x4a, 0xd8, 0x25, 0xdd, 0x21, 0x7c, 0x95, 0x42,
|
||||
0x3a, 0x2c, 0x74, 0x16, 0x66, 0x85, 0x65, 0x05, 0x5a, 0xfe, 0x01, 0x70, 0xc0, 0xa2, 0x23, 0x6c,
|
||||
0x9d, 0x3b, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82,
|
||||
};
|
||||
|
||||
const BITMAP_OPAQUE delete_line_xpm[1] = {{ png, sizeof( png ), "delete_line_xpm" }};
|
||||
|
||||
//EOF
|
||||
@@ -1,82 +0,0 @@
|
||||
|
||||
/* Do not modify this file, it was automatically generated by the
|
||||
* PNG2cpp CMake script, using a *.png file as input.
|
||||
*/
|
||||
|
||||
#include <bitmaps_png/bitmaps_list.h>
|
||||
|
||||
static const unsigned char png[] = {
|
||||
0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52,
|
||||
0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1a, 0x08, 0x06, 0x00, 0x00, 0x00, 0xa9, 0x4a, 0x4c,
|
||||
0xce, 0x00, 0x00, 0x04, 0x14, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0xdd, 0x96, 0x6d, 0x4c, 0x53,
|
||||
0x67, 0x14, 0xc7, 0xbb, 0x2d, 0x59, 0xd4, 0x28, 0x82, 0x28, 0xc8, 0x14, 0x04, 0x14, 0x89, 0xcb,
|
||||
0x36, 0x8d, 0x46, 0xb2, 0x19, 0xa3, 0x41, 0xb7, 0xf9, 0x36, 0x67, 0xdb, 0x5b, 0x6c, 0xa9, 0xa5,
|
||||
0xbc, 0x88, 0x2e, 0x6c, 0x85, 0xd1, 0x25, 0x53, 0x63, 0x82, 0x12, 0x3f, 0x38, 0x70, 0xdf, 0xbb,
|
||||
0xe0, 0x07, 0x12, 0x48, 0x96, 0x18, 0x20, 0x8b, 0x2c, 0xe1, 0x23, 0x0e, 0x4a, 0x20, 0x34, 0x71,
|
||||
0x69, 0xa5, 0x05, 0x16, 0x02, 0x99, 0x6c, 0xbc, 0x24, 0x83, 0xb6, 0xf4, 0xcd, 0x25, 0x2c, 0xe1,
|
||||
0xec, 0xfc, 0x1f, 0xb9, 0xf5, 0x82, 0xb6, 0x10, 0x4d, 0xfc, 0xe0, 0x4d, 0xfe, 0xe9, 0xed, 0x39,
|
||||
0xcf, 0x3d, 0xbf, 0xfb, 0x9c, 0x97, 0x7b, 0xaf, 0x4a, 0xf5, 0x12, 0x07, 0x11, 0x7d, 0x34, 0x31,
|
||||
0x31, 0xf1, 0xd7, 0xcc, 0xcc, 0x8c, 0x87, 0xcf, 0x33, 0x96, 0xf9, 0xf6, 0xb2, 0xef, 0xef, 0xd9,
|
||||
0xd9, 0x59, 0x37, 0x9f, 0xa7, 0xab, 0x5e, 0xf6, 0x00, 0x64, 0x68, 0x68, 0xc8, 0xf7, 0xde, 0xe6,
|
||||
0xcd, 0xb4, 0x27, 0x3b, 0x9b, 0x26, 0x27, 0x27, 0x1f, 0xcb, 0x30, 0x40, 0x06, 0x07, 0x07, 0xfd,
|
||||
0x69, 0xc9, 0xc9, 0xf4, 0xfe, 0xce, 0x9d, 0xf0, 0xfd, 0x19, 0x13, 0xa6, 0x56, 0xab, 0x13, 0x25,
|
||||
0x49, 0xfa, 0x54, 0x96, 0x56, 0xab, 0xfd, 0x18, 0xf6, 0x92, 0x92, 0x92, 0x35, 0xcd, 0xcd, 0xcd,
|
||||
0x97, 0x38, 0x50, 0x10, 0x90, 0x6f, 0x58, 0xd2, 0xa6, 0x4d, 0x02, 0x36, 0x3e, 0x3e, 0x3e, 0xe5,
|
||||
0x70, 0x38, 0xac, 0x1e, 0x8f, 0x27, 0x08, 0x48, 0x25, 0x4b, 0x93, 0x94, 0x14, 0x1f, 0xa6, 0xd3,
|
||||
0xeb, 0x2a, 0x8f, 0x5b, 0x4e, 0x47, 0xf2, 0x6a, 0xf2, 0x7d, 0x90, 0xc6, 0xa0, 0x8d, 0x14, 0x14,
|
||||
0x14, 0xbc, 0x53, 0x51, 0x51, 0x71, 0xca, 0xe5, 0x7e, 0xb4, 0x00, 0x88, 0x65, 0xcb, 0x16, 0x8a,
|
||||
0xe4, 0xe6, 0xd2, 0x1c, 0x07, 0x92, 0x12, 0x13, 0x69, 0x4f, 0x56, 0x16, 0x75, 0x77, 0x77, 0x93,
|
||||
0x80, 0x30, 0x20, 0xcc, 0xf0, 0xc0, 0xae, 0x5d, 0x51, 0x18, 0xd2, 0xf8, 0x1c, 0x48, 0x2a, 0x90,
|
||||
0xbe, 0xcd, 0xbe, 0x9b, 0x47, 0x2a, 0x47, 0x96, 0xd0, 0x99, 0xb2, 0x73, 0xb3, 0x00, 0x59, 0xad,
|
||||
0xd6, 0xb3, 0x0f, 0x9d, 0xbf, 0x2f, 0x6c, 0x58, 0xbb, 0x96, 0xee, 0xa4, 0xa6, 0x52, 0x98, 0x03,
|
||||
0x85, 0x33, 0x33, 0xc9, 0x9f, 0x9e, 0x4e, 0xda, 0x84, 0x04, 0x42, 0xe6, 0x2c, 0xfc, 0x1b, 0xda,
|
||||
0xb6, 0x8d, 0x42, 0x19, 0x19, 0x02, 0x56, 0xc9, 0x37, 0x05, 0x38, 0xea, 0xb9, 0x6a, 0x90, 0x4e,
|
||||
0xa7, 0x3b, 0x6e, 0xf9, 0xf9, 0x4a, 0xa8, 0xd3, 0xfe, 0x80, 0x12, 0x18, 0xf6, 0x23, 0x07, 0x09,
|
||||
0x31, 0x24, 0x98, 0x96, 0x46, 0xde, 0x94, 0x14, 0x6a, 0x63, 0x48, 0x80, 0x77, 0x1a, 0xdc, 0xba,
|
||||
0x95, 0x42, 0xdb, 0xb7, 0x8b, 0x9d, 0x01, 0x82, 0x9a, 0xa1, 0x76, 0x51, 0x40, 0x71, 0x71, 0xf1,
|
||||
0xe5, 0xf2, 0xf2, 0xf2, 0x6e, 0x53, 0x91, 0x69, 0x54, 0x09, 0x3a, 0x7b, 0x51, 0x3d, 0xcf, 0x76,
|
||||
0x3b, 0xfb, 0x1f, 0x1d, 0xac, 0xcd, 0xff, 0xef, 0xb3, 0x3f, 0x8a, 0xe8, 0x41, 0xcf, 0x6f, 0x02,
|
||||
0x56, 0xcf, 0x69, 0x0b, 0x30, 0x64, 0x8e, 0x83, 0xce, 0x6d, 0xdc, 0x48, 0x73, 0x5c, 0x33, 0xfc,
|
||||
0xff, 0x8e, 0xcf, 0x53, 0xd9, 0xe6, 0x74, 0x3a, 0x9f, 0x2c, 0x81, 0xe0, 0x28, 0x2b, 0x2b, 0xfb,
|
||||
0xa5, 0xb5, 0xb5, 0x95, 0x6c, 0x3f, 0xd9, 0x48, 0x09, 0xd2, 0x7d, 0xad, 0xa7, 0xfe, 0xfe, 0x7e,
|
||||
0x6a, 0x69, 0x69, 0xa1, 0xc3, 0xb7, 0x4f, 0x0a, 0x9b, 0xe5, 0xf1, 0x4d, 0x6a, 0x6a, 0x6a, 0xa2,
|
||||
0xb7, 0x38, 0x5d, 0x8e, 0x45, 0x88, 0x7f, 0xfd, 0x7a, 0x01, 0x6c, 0x63, 0x38, 0xd2, 0x88, 0x9a,
|
||||
0x35, 0x36, 0x36, 0xf6, 0x3d, 0x97, 0x32, 0x80, 0xba, 0xba, 0xba, 0xe8, 0x7e, 0xfb, 0x7d, 0xd2,
|
||||
0x7f, 0x65, 0x24, 0x43, 0xd5, 0x05, 0xa1, 0xa2, 0x4b, 0x66, 0x74, 0x8e, 0x80, 0x15, 0x96, 0x5f,
|
||||
0xa0, 0x6b, 0xf5, 0xd7, 0xc9, 0xe9, 0x72, 0x92, 0xe8, 0xbc, 0xc5, 0x74, 0x89, 0x1d, 0xb1, 0x02,
|
||||
0x6c, 0xf3, 0x73, 0xea, 0xf4, 0x0c, 0xce, 0xe5, 0xfa, 0x0d, 0x0f, 0x0f, 0x47, 0x96, 0xcf, 0x59,
|
||||
0x14, 0x34, 0x35, 0x35, 0x15, 0x53, 0x3c, 0xa0, 0xc4, 0x33, 0x14, 0xed, 0xae, 0x20, 0x17, 0x1e,
|
||||
0x35, 0x01, 0xcc, 0xc1, 0x69, 0xc3, 0x39, 0x6c, 0xfe, 0x1d, 0x3b, 0x48, 0x62, 0xff, 0xf2, 0x39,
|
||||
0x53, 0x2d, 0xce, 0x49, 0x1b, 0xcf, 0xc9, 0x42, 0x2c, 0xc8, 0xf4, 0xf4, 0x34, 0x8d, 0x8e, 0x8e,
|
||||
0x0a, 0x48, 0x15, 0xdf, 0x79, 0x98, 0x5b, 0x1a, 0xdd, 0x85, 0x2e, 0xb3, 0xf0, 0x0e, 0x90, 0xc6,
|
||||
0x3b, 0x1c, 0x3c, 0xc4, 0x90, 0x30, 0xb7, 0x74, 0x20, 0x27, 0x27, 0x3a, 0x67, 0xdc, 0xde, 0x9e,
|
||||
0x67, 0xdd, 0x26, 0x49, 0x39, 0x66, 0xb3, 0xb9, 0x93, 0x61, 0xff, 0xc6, 0x02, 0x0d, 0x0c, 0x0c,
|
||||
0x50, 0xc2, 0xba, 0x75, 0x54, 0x2f, 0xb7, 0x37, 0x5a, 0x78, 0xb1, 0xbb, 0x50, 0x33, 0xd1, 0x8d,
|
||||
0x98, 0xb1, 0xdd, 0xbb, 0xc5, 0x9c, 0x61, 0xa8, 0x91, 0x62, 0xde, 0xd5, 0xf8, 0x92, 0xf4, 0x19,
|
||||
0x0c, 0x86, 0xcc, 0xea, 0xea, 0xea, 0x99, 0x58, 0xbb, 0xf2, 0x7a, 0xbd, 0xd4, 0xdb, 0xdb, 0xfb,
|
||||
0x14, 0xc6, 0x69, 0xaa, 0x62, 0x00, 0x20, 0x48, 0x67, 0x20, 0x10, 0xa0, 0x9e, 0x9e, 0x1e, 0x01,
|
||||
0xc3, 0x9c, 0x59, 0x00, 0x79, 0xea, 0xf3, 0xe1, 0xb1, 0x15, 0x85, 0x68, 0x34, 0x9a, 0x14, 0xde,
|
||||
0xd1, 0xbd, 0x86, 0x86, 0x86, 0x48, 0xbc, 0x3a, 0x29, 0x61, 0x32, 0x04, 0xb5, 0x93, 0x7d, 0x80,
|
||||
0x61, 0xa8, 0xb1, 0x13, 0x97, 0xcb, 0x35, 0xbf, 0x04, 0x82, 0xa3, 0xb4, 0xb4, 0xf4, 0x9e, 0xcd,
|
||||
0x66, 0x9b, 0xe7, 0x29, 0x8e, 0xdb, 0x10, 0x72, 0x40, 0xb7, 0xdb, 0x4d, 0x63, 0x63, 0x63, 0x51,
|
||||
0x88, 0xd2, 0x87, 0x14, 0x8f, 0x8c, 0x8c, 0x50, 0x5d, 0x5d, 0x5d, 0x67, 0xcc, 0xf6, 0x5e, 0x09,
|
||||
0xa2, 0xac, 0x19, 0x14, 0xcb, 0x67, 0xb7, 0xdb, 0x09, 0x31, 0x5f, 0x19, 0xb4, 0x92, 0x10, 0x2b,
|
||||
0x2e, 0xe8, 0xd9, 0xc0, 0x9a, 0x84, 0xe4, 0x81, 0xed, 0xeb, 0xeb, 0xa3, 0xf3, 0x26, 0x3d, 0x9d,
|
||||
0xbf, 0x5c, 0x28, 0xa4, 0x37, 0x19, 0x44, 0x8a, 0xe0, 0xc3, 0x9a, 0x42, 0x5e, 0x0b, 0x19, 0xf8,
|
||||
0xda, 0xf6, 0x5f, 0xdb, 0xe3, 0x83, 0x56, 0xfb, 0x08, 0x82, 0x4e, 0xd4, 0xa8, 0xa9, 0xa3, 0xa3,
|
||||
0x43, 0xf8, 0xb0, 0x46, 0xb6, 0xe3, 0x5a, 0xc4, 0x40, 0xac, 0x17, 0x82, 0x56, 0xfb, 0x50, 0x95,
|
||||
0xed, 0x47, 0xbe, 0x3f, 0x31, 0xcf, 0x81, 0x1e, 0xc2, 0x87, 0x35, 0x4a, 0x10, 0x62, 0x20, 0x16,
|
||||
0x62, 0xc6, 0x7c, 0x55, 0xc7, 0x7b, 0x4d, 0xec, 0xbf, 0x75, 0xd4, 0x27, 0xdb, 0x0f, 0x5f, 0xfd,
|
||||
0xfc, 0x1f, 0xb6, 0x7f, 0x08, 0x1f, 0xd6, 0x28, 0x41, 0x88, 0xb1, 0xe2, 0x37, 0xc1, 0x6b, 0x03,
|
||||
0xc9, 0xaf, 0xf2, 0x83, 0x37, 0xf2, 0xfd, 0x90, 0xa6, 0x50, 0xfb, 0x04, 0xc1, 0x58, 0xc7, 0x4e,
|
||||
0x5f, 0xfc, 0x32, 0x98, 0x57, 0x73, 0xcc, 0x0b, 0x7d, 0x61, 0x3e, 0x17, 0xe4, 0x21, 0xff, 0x00,
|
||||
0x3e, 0xb5, 0x51, 0x1b, 0xde, 0xf7, 0xc3, 0x11, 0x1f, 0x74, 0xd4, 0x7a, 0x32, 0x82, 0x18, 0x2b,
|
||||
0x82, 0x8c, 0x46, 0x63, 0x92, 0xf2, 0xe3, 0x84, 0x03, 0x7d, 0x02, 0x3b, 0xff, 0xbe, 0xcb, 0x3a,
|
||||
0x20, 0x8b, 0x3f, 0x5a, 0xf6, 0xd7, 0xd6, 0xd6, 0xbe, 0x2d, 0x6e, 0x4e, 0xa7, 0x3b, 0xa4, 0xbc,
|
||||
0x86, 0x6f, 0x20, 0x59, 0xf5, 0xc6, 0x1f, 0xff, 0x03, 0x5a, 0x5d, 0x9a, 0xeb, 0x46, 0xcc, 0x01,
|
||||
0x08, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82,
|
||||
};
|
||||
|
||||
const BITMAP_OPAQUE delete_module_xpm[1] = {{ png, sizeof( png ), "delete_module_xpm" }};
|
||||
|
||||
//EOF
|
||||
@@ -1,68 +0,0 @@
|
||||
|
||||
/* Do not modify this file, it was automatically generated by the
|
||||
* PNG2cpp CMake script, using a *.png file as input.
|
||||
*/
|
||||
|
||||
#include <bitmaps_png/bitmaps_list.h>
|
||||
|
||||
static const unsigned char png[] = {
|
||||
0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52,
|
||||
0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1a, 0x08, 0x06, 0x00, 0x00, 0x00, 0xa9, 0x4a, 0x4c,
|
||||
0xce, 0x00, 0x00, 0x03, 0x33, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0xe5, 0x96, 0xbb, 0x4f, 0x93,
|
||||
0x61, 0x14, 0xc6, 0x8b, 0x01, 0x0a, 0x02, 0xa5, 0xdc, 0xef, 0xd0, 0x42, 0x29, 0x43, 0xd3, 0xc5,
|
||||
0xbf, 0x81, 0x81, 0x85, 0xa0, 0xc4, 0x26, 0x46, 0x07, 0x9d, 0x5c, 0x74, 0x71, 0x60, 0x04, 0xdb,
|
||||
0x26, 0x54, 0xd8, 0x28, 0x8d, 0x2c, 0x2c, 0xcc, 0x0c, 0x48, 0x25, 0x26, 0x2d, 0x96, 0xd6, 0x10,
|
||||
0x12, 0x47, 0x42, 0x70, 0x20, 0x20, 0x21, 0x2c, 0x9d, 0x54, 0x7a, 0x23, 0x85, 0x80, 0x1e, 0x9f,
|
||||
0xe7, 0xf5, 0x2b, 0x96, 0x0a, 0x94, 0x1a, 0xc3, 0xe2, 0x9b, 0x9c, 0xbc, 0x97, 0xaf, 0x3d, 0xbf,
|
||||
0xef, 0x9c, 0xe7, 0x9c, 0xb7, 0xd5, 0xe9, 0x0a, 0x1c, 0x22, 0x72, 0x0b, 0x36, 0xb5, 0xbb, 0xbb,
|
||||
0x9b, 0xc6, 0xec, 0xbc, 0xe0, 0xf9, 0xf0, 0xfe, 0xfe, 0x7e, 0xe2, 0xe8, 0xe8, 0x28, 0x88, 0xb5,
|
||||
0x21, 0xaf, 0xc3, 0xa8, 0x4e, 0xe7, 0x81, 0xa5, 0x39, 0xe7, 0x40, 0x66, 0x5f, 0x8e, 0x8d, 0x49,
|
||||
0x51, 0x51, 0x91, 0x4c, 0x7b, 0xbd, 0xd8, 0xca, 0x84, 0xd3, 0xe9, 0xf4, 0xc0, 0xd2, 0x91, 0x48,
|
||||
0x64, 0x21, 0x1c, 0x0e, 0x9f, 0x56, 0x94, 0x95, 0xc9, 0xe0, 0xc0, 0x80, 0xa4, 0xd3, 0xe9, 0x8f,
|
||||
0x79, 0x61, 0x00, 0x1c, 0xc3, 0x84, 0x73, 0x2e, 0xc4, 0x50, 0x5a, 0x2a, 0xe3, 0x0d, 0x0d, 0x52,
|
||||
0x5e, 0x5c, 0xac, 0x60, 0x6b, 0x6b, 0x6b, 0xa7, 0xf3, 0xf3, 0xf3, 0xb2, 0xb2, 0xb2, 0x22, 0x15,
|
||||
0x7a, 0xbd, 0x8c, 0xd4, 0xd5, 0x89, 0xb5, 0xb2, 0xf2, 0x7a, 0x30, 0x0d, 0xa2, 0x4c, 0x03, 0xb9,
|
||||
0x33, 0x90, 0x70, 0x67, 0xa7, 0x1c, 0xf6, 0xf5, 0xc9, 0x62, 0x6b, 0xeb, 0x19, 0x0c, 0x91, 0x28,
|
||||
0x88, 0xbb, 0xb6, 0x56, 0x52, 0x3d, 0x3d, 0xf2, 0xb9, 0xbb, 0xfb, 0x0c, 0x86, 0x34, 0xbe, 0xbf,
|
||||
0x10, 0x62, 0xb1, 0x58, 0xf4, 0xd3, 0x46, 0xa3, 0xbc, 0x30, 0x99, 0xc4, 0x87, 0x99, 0x7b, 0x80,
|
||||
0xde, 0x59, 0xcd, 0x66, 0xe9, 0x37, 0x18, 0x24, 0x6e, 0xb5, 0x2a, 0x67, 0x49, 0x3c, 0x7f, 0xa3,
|
||||
0x45, 0x56, 0x56, 0x52, 0x22, 0xae, 0xea, 0x6a, 0x49, 0x76, 0x74, 0xa8, 0x73, 0x3e, 0x1f, 0xa9,
|
||||
0xaf, 0x17, 0xa6, 0x11, 0x9a, 0x1d, 0x5c, 0x08, 0xb1, 0xdb, 0xed, 0x9f, 0x26, 0xdd, 0x6e, 0x09,
|
||||
0x04, 0x02, 0xc2, 0x19, 0xfb, 0xcd, 0x68, 0x34, 0x7a, 0x67, 0x6f, 0x6f, 0xef, 0x8b, 0xb9, 0xbd,
|
||||
0x5d, 0x86, 0x6b, 0x6a, 0xe4, 0xa0, 0xab, 0x4b, 0x92, 0x58, 0x27, 0x9a, 0x9b, 0x65, 0x09, 0x2f,
|
||||
0xe3, 0xab, 0xaa, 0x92, 0x78, 0x53, 0x93, 0x24, 0x5a, 0x5a, 0x14, 0x8c, 0x91, 0x31, 0x42, 0x6a,
|
||||
0x86, 0x97, 0xbc, 0xff, 0xcb, 0xfb, 0x1c, 0x04, 0x9f, 0xd3, 0x9d, 0xc0, 0xc4, 0xf8, 0xdc, 0x28,
|
||||
0xee, 0x57, 0x6e, 0x81, 0xe3, 0x33, 0x73, 0x79, 0x5c, 0x52, 0xfd, 0xac, 0x5a, 0xec, 0x7e, 0xbb,
|
||||
0xac, 0xef, 0xac, 0x4b, 0x0f, 0x1c, 0x0d, 0xe1, 0xed, 0xbf, 0xc2, 0x69, 0x1c, 0x11, 0xc5, 0xe0,
|
||||
0x34, 0x06, 0x78, 0x1c, 0xda, 0x24, 0x00, 0x1b, 0x07, 0xf8, 0x36, 0x52, 0xbc, 0x1c, 0x5a, 0x96,
|
||||
0xd1, 0xf5, 0xd1, 0x85, 0xdf, 0x61, 0xcc, 0xe9, 0x52, 0x84, 0xd0, 0x4c, 0x0f, 0x4c, 0x12, 0x0c,
|
||||
0x06, 0xcf, 0x81, 0xb8, 0xe7, 0x39, 0x9f, 0x13, 0xb6, 0xb1, 0xb3, 0x21, 0x9d, 0x88, 0xe4, 0x31,
|
||||
0xa3, 0x20, 0x04, 0xe9, 0x8c, 0x69, 0x6b, 0x1f, 0xd6, 0x4c, 0x63, 0x38, 0x12, 0x16, 0xc7, 0x07,
|
||||
0x87, 0x28, 0xdf, 0x59, 0xa0, 0x2b, 0x23, 0x72, 0x8e, 0x3b, 0x55, 0x44, 0x7c, 0xce, 0x2f, 0x87,
|
||||
0xc2, 0x21, 0x95, 0x16, 0x0f, 0xf5, 0x22, 0x08, 0xd1, 0xc5, 0x10, 0x45, 0x1c, 0x9a, 0x2c, 0x61,
|
||||
0x9f, 0x29, 0x90, 0xc9, 0xcd, 0xc9, 0xef, 0xca, 0xf7, 0x65, 0x85, 0x40, 0x4d, 0x26, 0x5c, 0x2e,
|
||||
0xa5, 0x11, 0x9a, 0x44, 0x69, 0x64, 0xb3, 0xd9, 0x4a, 0x91, 0x6b, 0xc7, 0xea, 0xea, 0xea, 0x69,
|
||||
0x25, 0x04, 0x1e, 0x83, 0x63, 0xea, 0xc3, 0xd4, 0x31, 0x65, 0x84, 0x30, 0x6d, 0x89, 0xb6, 0x36,
|
||||
0x59, 0x6c, 0x6c, 0x54, 0x30, 0xef, 0xd4, 0x94, 0xea, 0xb3, 0x4b, 0x4b, 0x9b, 0x30, 0x1f, 0xde,
|
||||
0x52, 0x55, 0x1d, 0x66, 0x0d, 0x32, 0xa8, 0x9a, 0x91, 0x25, 0x0c, 0xc7, 0x49, 0x94, 0x38, 0x9d,
|
||||
0x52, 0x7c, 0x46, 0xf6, 0x04, 0xf6, 0x0d, 0x7b, 0x9e, 0xa7, 0x50, 0xda, 0x7e, 0xac, 0xcb, 0x91,
|
||||
0x42, 0xad, 0xa9, 0x5d, 0x85, 0xf4, 0x51, 0xa8, 0x11, 0x80, 0xbb, 0xd0, 0x22, 0x65, 0xb1, 0x48,
|
||||
0x0a, 0xa5, 0x9e, 0x44, 0xe5, 0xb9, 0x51, 0x04, 0x84, 0x53, 0xb3, 0x7b, 0x4c, 0x21, 0xce, 0x0f,
|
||||
0x7b, 0x7b, 0x55, 0x9f, 0xb1, 0xa9, 0x79, 0x83, 0xe0, 0xba, 0x3a, 0x2c, 0x04, 0xf4, 0xc8, 0xef,
|
||||
0xf7, 0xff, 0xd0, 0x23, 0x25, 0xaf, 0xe1, 0x94, 0xce, 0x18, 0x19, 0x21, 0xbc, 0x11, 0xb6, 0xb7,
|
||||
0xb7, 0xc5, 0x8c, 0x28, 0x86, 0xa1, 0x11, 0xfb, 0x8c, 0x4d, 0xcd, 0xe6, 0x66, 0x93, 0x63, 0x78,
|
||||
0xaf, 0x0d, 0xd2, 0x60, 0x4f, 0x33, 0xb0, 0x21, 0x44, 0x96, 0xe9, 0x13, 0x5e, 0x3f, 0x33, 0x33,
|
||||
0x33, 0xb2, 0xb5, 0xb5, 0x25, 0xec, 0xb3, 0x7e, 0x44, 0x96, 0x05, 0x99, 0xe5, 0xf5, 0x55, 0x10,
|
||||
0x28, 0x1b, 0xd6, 0x04, 0xf1, 0xb5, 0x66, 0x74, 0xe0, 0x42, 0x15, 0x1a, 0x61, 0x6c, 0x6a, 0xde,
|
||||
0x20, 0xce, 0xeb, 0x40, 0xae, 0x02, 0x69, 0xb0, 0x87, 0xb0, 0x00, 0x0b, 0x84, 0xfb, 0x0c, 0x88,
|
||||
0x86, 0x61, 0x83, 0xbd, 0xe5, 0x4f, 0x48, 0x5e, 0x48, 0x3e, 0x50, 0xee, 0xc8, 0x06, 0xe5, 0xfb,
|
||||
0x20, 0x7f, 0x4f, 0x4e, 0xb2, 0xbf, 0x90, 0x0d, 0xca, 0x3e, 0x2f, 0xd0, 0xe8, 0xd3, 0x93, 0x0d,
|
||||
0x4a, 0xe5, 0x7e, 0xe8, 0x1f, 0x81, 0x68, 0xa9, 0x9b, 0x8f, 0xe8, 0xc6, 0x34, 0xfa, 0x6f, 0x40,
|
||||
0xe7, 0xfe, 0x9c, 0xe4, 0x01, 0x1d, 0x6b, 0xa0, 0xe3, 0xbf, 0x01, 0xfd, 0xf1, 0x77, 0x2b, 0x4f,
|
||||
0x7b, 0xa4, 0xf3, 0x0a, 0x7f, 0x13, 0xe3, 0x27, 0xd1, 0x9a, 0x9b, 0x57, 0x27, 0xbf, 0x8f, 0x11,
|
||||
0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82,
|
||||
};
|
||||
|
||||
const BITMAP_OPAQUE delete_net_xpm[1] = {{ png, sizeof( png ), "delete_net_xpm" }};
|
||||
|
||||
//EOF
|
||||
@@ -1,66 +0,0 @@
|
||||
|
||||
/* Do not modify this file, it was automatically generated by the
|
||||
* PNG2cpp CMake script, using a *.png file as input.
|
||||
*/
|
||||
|
||||
#include <bitmaps_png/bitmaps_list.h>
|
||||
|
||||
static const unsigned char png[] = {
|
||||
0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52,
|
||||
0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1a, 0x08, 0x06, 0x00, 0x00, 0x00, 0xa9, 0x4a, 0x4c,
|
||||
0xce, 0x00, 0x00, 0x03, 0x09, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0xed, 0x94, 0x5d, 0x48, 0x93,
|
||||
0x61, 0x14, 0xc7, 0x9f, 0xa5, 0x85, 0xdf, 0xba, 0xf9, 0x3d, 0xa7, 0xce, 0xf9, 0x95, 0xe1, 0x45,
|
||||
0x20, 0x41, 0x17, 0x62, 0x4e, 0xcc, 0x51, 0x22, 0x81, 0x90, 0x8b, 0xba, 0x0a, 0x4a, 0xba, 0x0e,
|
||||
0xba, 0xe8, 0x6e, 0x53, 0x21, 0xd2, 0x44, 0xbb, 0xd5, 0x9b, 0xb1, 0x9b, 0x2e, 0xc2, 0x76, 0xe5,
|
||||
0x95, 0xe0, 0x85, 0x46, 0xdd, 0xe9, 0xb0, 0x6c, 0x6d, 0xcc, 0x46, 0x30, 0xb1, 0x12, 0x74, 0xaf,
|
||||
0xbe, 0x9b, 0xeb, 0xf3, 0xf4, 0x3f, 0x73, 0xaf, 0xcd, 0x35, 0xbf, 0x86, 0x79, 0xd5, 0x81, 0x3f,
|
||||
0x7b, 0x5e, 0x9e, 0x3d, 0xe7, 0xf7, 0x9e, 0x73, 0xfe, 0xcf, 0x2b, 0x44, 0x12, 0x41, 0x44, 0x0f,
|
||||
0x16, 0x16, 0x16, 0x7e, 0x84, 0xc3, 0xe1, 0x29, 0xac, 0xb3, 0xe2, 0xf6, 0x9a, 0x96, 0x97, 0x97,
|
||||
0x3f, 0xf9, 0xfd, 0xfe, 0xcf, 0x58, 0x5f, 0x10, 0xc9, 0x06, 0x0e, 0x3f, 0xb4, 0xd9, 0x6c, 0x74,
|
||||
0x4a, 0xa5, 0xa2, 0xee, 0xae, 0x2e, 0x02, 0x6c, 0x56, 0x81, 0x31, 0xc4, 0xe3, 0xf1, 0x04, 0x74,
|
||||
0xc5, 0xc5, 0x54, 0x56, 0x58, 0x48, 0x6e, 0xb7, 0x5b, 0x4a, 0x0a, 0xa6, 0x40, 0xce, 0xa4, 0xa4,
|
||||
0xd0, 0x60, 0x51, 0x11, 0xe9, 0x33, 0x32, 0x62, 0x61, 0x97, 0x14, 0x88, 0x59, 0xad, 0xa6, 0x1b,
|
||||
0x50, 0x52, 0x30, 0xfc, 0xf9, 0xa6, 0xdd, 0x6e, 0x8f, 0x40, 0xec, 0x5a, 0x2d, 0x05, 0xeb, 0xeb,
|
||||
0xc9, 0xa5, 0xd7, 0xef, 0xc0, 0x5c, 0x2e, 0x17, 0xe9, 0x00, 0xef, 0xc9, 0xcd, 0x25, 0xc9, 0x60,
|
||||
0xa0, 0x8d, 0xda, 0xda, 0x1d, 0x98, 0xd7, 0xeb, 0x95, 0x8e, 0x02, 0x1a, 0xb8, 0x65, 0x36, 0x53,
|
||||
0x65, 0x7a, 0x3a, 0xf9, 0xaa, 0xab, 0x49, 0xae, 0xa9, 0x21, 0x19, 0xa0, 0x77, 0x80, 0x32, 0xec,
|
||||
0x74, 0x6a, 0x2a, 0xf5, 0x64, 0x67, 0x53, 0x40, 0xa7, 0xa3, 0xcd, 0xca, 0x4a, 0x92, 0x01, 0x9b,
|
||||
0x28, 0x2b, 0x23, 0x15, 0x5a, 0xec, 0x70, 0x38, 0x68, 0xff, 0xec, 0x7d, 0xa2, 0x57, 0xf4, 0x8b,
|
||||
0x31, 0x61, 0x15, 0x16, 0x80, 0xd4, 0xb2, 0x2c, 0xcf, 0x5f, 0x6e, 0x6d, 0xa5, 0x86, 0xac, 0x2c,
|
||||
0xfa, 0x50, 0x51, 0x41, 0x9b, 0xe5, 0xe5, 0xb4, 0x51, 0x5a, 0x4a, 0x8b, 0xf9, 0xf9, 0x64, 0xcd,
|
||||
0xcc, 0xa4, 0x35, 0x54, 0xc4, 0xcf, 0x9b, 0x80, 0x39, 0xd0, 0xc2, 0x34, 0xc0, 0x47, 0x47, 0x46,
|
||||
0x70, 0x94, 0x06, 0x0f, 0x02, 0x3d, 0x87, 0x08, 0x5a, 0x8c, 0x56, 0xa5, 0x0e, 0x85, 0x42, 0x73,
|
||||
0x9d, 0x1d, 0x1d, 0x54, 0x8b, 0xc4, 0x1e, 0x24, 0x93, 0xd0, 0x9a, 0x80, 0x46, 0x43, 0x01, 0xb4,
|
||||
0x49, 0x02, 0x50, 0x02, 0xcc, 0x81, 0xdf, 0xf4, 0x43, 0x43, 0x12, 0x80, 0x14, 0x18, 0x2a, 0x7b,
|
||||
0x63, 0x6c, 0x6e, 0xa6, 0x06, 0xb4, 0x6c, 0x1d, 0x49, 0x03, 0x98, 0xcb, 0x3a, 0xaa, 0x64, 0xd8,
|
||||
0x0c, 0xa0, 0x5c, 0xc9, 0x93, 0xa1, 0x21, 0x86, 0x8c, 0x1c, 0x6e, 0x30, 0x89, 0x41, 0xdb, 0x16,
|
||||
0xc6, 0x9b, 0x9b, 0x31, 0x13, 0xae, 0x22, 0x90, 0x97, 0x17, 0x81, 0xf1, 0xda, 0x8d, 0x0a, 0xf5,
|
||||
0x98, 0x63, 0xbc, 0xf5, 0x8f, 0xda, 0xba, 0xa6, 0xa5, 0xa5, 0xa5, 0x80, 0x1e, 0x06, 0xe8, 0xce,
|
||||
0xc9, 0xa1, 0x35, 0xcc, 0x83, 0x5b, 0x25, 0x15, 0x14, 0x6c, 0x8b, 0x67, 0x84, 0x3d, 0x17, 0x4c,
|
||||
0x60, 0x40, 0xb5, 0x9d, 0x26, 0x13, 0xa1, 0xd5, 0x2f, 0x0f, 0x86, 0xc5, 0x80, 0xf0, 0xe7, 0x46,
|
||||
0xe5, 0x9e, 0xf4, 0x70, 0x05, 0x70, 0x16, 0x0f, 0x9d, 0x87, 0x3f, 0x81, 0x96, 0x19, 0x91, 0xd8,
|
||||
0x5b, 0x52, 0x12, 0x31, 0x88, 0x5c, 0x55, 0x45, 0xef, 0x21, 0x3d, 0xe6, 0xa8, 0x54, 0x76, 0x14,
|
||||
0xd0, 0xb0, 0xa9, 0xbd, 0x9d, 0xaa, 0xd3, 0xd2, 0x48, 0x62, 0x6b, 0xc3, 0xbe, 0x6c, 0xe3, 0x09,
|
||||
0xb4, 0x8a, 0x67, 0xd2, 0x50, 0x57, 0x47, 0xf5, 0x48, 0xcc, 0x6e, 0x64, 0xeb, 0xf3, 0x3d, 0x9b,
|
||||
0xc1, 0x3e, 0x37, 0x62, 0x7c, 0x7c, 0x7c, 0x1f, 0x7b, 0x93, 0x50, 0x01, 0x30, 0x15, 0x05, 0xf9,
|
||||
0xa4, 0x6f, 0xd2, 0x45, 0xa7, 0xd3, 0x19, 0x2a, 0x44, 0x35, 0x77, 0x31, 0x0b, 0x19, 0x17, 0xf2,
|
||||
0x05, 0xaa, 0x61, 0xc8, 0xd3, 0xd1, 0x51, 0x6e, 0xd1, 0x97, 0x0e, 0xa3, 0x91, 0xce, 0xc2, 0x14,
|
||||
0x7c, 0xcf, 0x58, 0xe7, 0xb0, 0x6e, 0x6f, 0x69, 0x21, 0xbe, 0x16, 0x89, 0x21, 0x16, 0xd1, 0x88,
|
||||
0xe4, 0xce, 0x28, 0x44, 0xd1, 0xc7, 0xe1, 0xd7, 0xc3, 0xf7, 0x15, 0xd8, 0x55, 0xcc, 0x48, 0x81,
|
||||
0x20, 0x1e, 0xb3, 0x1b, 0x83, 0xc1, 0xe0, 0x9c, 0x02, 0x8b, 0x81, 0x38, 0xb1, 0xa7, 0x49, 0x04,
|
||||
0xd1, 0x21, 0xe9, 0x6a, 0x1c, 0x44, 0x51, 0x78, 0x6c, 0x6e, 0xec, 0x1e, 0xc3, 0xb4, 0x18, 0xbc,
|
||||
0x02, 0x89, 0xb5, 0x3e, 0xc3, 0xae, 0xa0, 0xc5, 0xa6, 0xb6, 0xb6, 0x48, 0x25, 0x7f, 0x20, 0x16,
|
||||
0xa1, 0xdd, 0x25, 0xab, 0xb0, 0xed, 0x01, 0xd9, 0x96, 0x55, 0xcc, 0x4e, 0xfb, 0xa6, 0xaf, 0x6d,
|
||||
0x7d, 0xdf, 0x7a, 0xe5, 0x97, 0xfc, 0x03, 0xf1, 0xe7, 0x27, 0x7d, 0x93, 0x25, 0x48, 0xfe, 0x2c,
|
||||
0x2a, 0x4d, 0xec, 0xc0, 0xe9, 0x58, 0x65, 0x15, 0xd7, 0xf7, 0x72, 0xd6, 0x89, 0x81, 0x7a, 0x77,
|
||||
0xc9, 0x2a, 0xe6, 0x0f, 0x48, 0xb6, 0xf2, 0xd7, 0x99, 0x58, 0xf5, 0x8b, 0xaa, 0xc3, 0x7d, 0x76,
|
||||
0x06, 0x44, 0x33, 0x0e, 0xfc, 0xdc, 0xe7, 0x8d, 0x6f, 0x8b, 0x63, 0x8b, 0x3e, 0x71, 0x07, 0xfa,
|
||||
0x1a, 0x07, 0xf9, 0x05, 0x3d, 0x12, 0xc7, 0x1e, 0x16, 0x61, 0x40, 0xe2, 0xb7, 0x51, 0xc8, 0x2a,
|
||||
0x9e, 0xcf, 0x8b, 0x7f, 0x16, 0x09, 0xbe, 0xde, 0xff, 0x41, 0x27, 0x0e, 0xfa, 0x0d, 0x13, 0x53,
|
||||
0xbd, 0xcc, 0xf6, 0x5b, 0xb0, 0xdb, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42,
|
||||
0x60, 0x82,
|
||||
};
|
||||
|
||||
const BITMAP_OPAQUE delete_node_xpm[1] = {{ png, sizeof( png ), "delete_node_xpm" }};
|
||||
|
||||
//EOF
|
||||
@@ -1,85 +0,0 @@
|
||||
|
||||
/* Do not modify this file, it was automatically generated by the
|
||||
* PNG2cpp CMake script, using a *.png file as input.
|
||||
*/
|
||||
|
||||
#include <bitmaps_png/bitmaps_list.h>
|
||||
|
||||
static const unsigned char png[] = {
|
||||
0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52,
|
||||
0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1a, 0x08, 0x06, 0x00, 0x00, 0x00, 0xa9, 0x4a, 0x4c,
|
||||
0xce, 0x00, 0x00, 0x04, 0x41, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0xa5, 0x95, 0x6d, 0x4c, 0x5b,
|
||||
0x65, 0x14, 0xc7, 0x5b, 0x29, 0x65, 0x94, 0xbe, 0xdc, 0x5b, 0xda, 0x5b, 0x18, 0x2f, 0x61, 0x85,
|
||||
0x51, 0x12, 0x9d, 0x62, 0x8c, 0xd9, 0x17, 0x63, 0x7c, 0xd9, 0xb2, 0x4d, 0x43, 0xcc, 0xec, 0x36,
|
||||
0xdd, 0x82, 0x73, 0xc9, 0x12, 0xfd, 0x00, 0x62, 0x16, 0x31, 0x4b, 0x16, 0x60, 0xf8, 0xc1, 0x49,
|
||||
0x32, 0x35, 0x0e, 0xb6, 0x00, 0x3a, 0x0b, 0x24, 0x26, 0x23, 0xda, 0x80, 0x8e, 0x97, 0x62, 0x3b,
|
||||
0xda, 0x88, 0x64, 0x1f, 0xdc, 0x26, 0x62, 0x42, 0x44, 0xd8, 0xa2, 0xd1, 0x69, 0x44, 0x1d, 0x2b,
|
||||
0xd0, 0x66, 0xb4, 0x85, 0x1e, 0xff, 0xcf, 0xf5, 0xde, 0xad, 0xad, 0x60, 0xa1, 0x9c, 0xe4, 0x9f,
|
||||
0xfb, 0xf6, 0x3c, 0xe7, 0x77, 0x9f, 0x73, 0xfe, 0xcf, 0xbd, 0x0a, 0x45, 0x8a, 0x41, 0x44, 0x8d,
|
||||
0xe3, 0xe3, 0xe3, 0x01, 0x1c, 0x4f, 0x26, 0xdc, 0x57, 0x87, 0x42, 0xa1, 0xee, 0x89, 0x89, 0x09,
|
||||
0x3f, 0xce, 0x0f, 0x28, 0x36, 0x12, 0x48, 0xf0, 0xce, 0xc9, 0xfa, 0x7a, 0x62, 0xa7, 0x6f, 0x35,
|
||||
0x34, 0xe0, 0x92, 0x4e, 0xc9, 0x90, 0xc5, 0xc5, 0xc5, 0x7e, 0x7b, 0x45, 0x05, 0xa5, 0xa7, 0xa5,
|
||||
0x91, 0xd3, 0xe9, 0x5c, 0xc6, 0xbd, 0x17, 0x37, 0x04, 0xb1, 0x68, 0x34, 0xd4, 0x9d, 0x97, 0x27,
|
||||
0x1e, 0x25, 0x58, 0x93, 0x0c, 0x29, 0x37, 0x18, 0xa8, 0x23, 0x37, 0x97, 0xb4, 0x6a, 0x75, 0x6a,
|
||||
0x30, 0x4c, 0xd8, 0x7b, 0xba, 0xa9, 0x49, 0x4c, 0x3e, 0xb6, 0x65, 0x0b, 0x05, 0x4b, 0x4b, 0xe9,
|
||||
0x5a, 0x41, 0x81, 0x78, 0xdd, 0x50, 0x57, 0x47, 0x22, 0x44, 0xaf, 0xa7, 0x9b, 0x85, 0x85, 0x14,
|
||||
0x28, 0x2e, 0xa6, 0x9e, 0xfc, 0x7c, 0xd2, 0x66, 0x64, 0xd0, 0xd0, 0xd0, 0xd0, 0xd2, 0x7a, 0x41,
|
||||
0xbb, 0x3f, 0x6c, 0x6f, 0x27, 0x7e, 0xd3, 0x26, 0xfa, 0x9a, 0x25, 0xb3, 0x5a, 0x69, 0x01, 0xc7,
|
||||
0x2b, 0x16, 0x0b, 0x59, 0x32, 0x33, 0xa9, 0x5c, 0xa7, 0xa3, 0x5f, 0x72, 0x72, 0x68, 0x01, 0xf0,
|
||||
0x40, 0x51, 0x11, 0x39, 0x70, 0x5f, 0x87, 0xb1, 0x23, 0x23, 0x23, 0xa1, 0x54, 0x4a, 0x57, 0xdb,
|
||||
0x7c, 0xe6, 0x8c, 0x08, 0xfb, 0x0a, 0xe5, 0x99, 0xdf, 0xbc, 0x99, 0xe6, 0x90, 0xf0, 0xba, 0xd1,
|
||||
0x48, 0xbf, 0x65, 0x67, 0xd3, 0x9c, 0x20, 0x88, 0xf7, 0x1c, 0x26, 0x93, 0x08, 0x71, 0xbb, 0xdd,
|
||||
0x21, 0xf6, 0x82, 0xa9, 0xf6, 0xa9, 0xb6, 0xbd, 0xad, 0x8d, 0x38, 0x24, 0xf2, 0xb1, 0xe4, 0x90,
|
||||
0x1f, 0x7d, 0xf1, 0x73, 0x1c, 0xcd, 0x01, 0xd0, 0xc9, 0xf3, 0xa4, 0xbf, 0x07, 0xd9, 0xb3, 0x11,
|
||||
0xd7, 0x31, 0x0b, 0x4f, 0x3c, 0xbc, 0x6d, 0x1b, 0xd9, 0xb5, 0x5a, 0xf2, 0x23, 0xf1, 0x6d, 0x94,
|
||||
0x8d, 0xc1, 0x18, 0xa8, 0x18, 0x3d, 0x3b, 0x72, 0xf8, 0x30, 0x33, 0xc8, 0x85, 0xf5, 0xe4, 0x55,
|
||||
0xc6, 0x6a, 0x7a, 0x7a, 0x3a, 0x23, 0x12, 0x89, 0xf4, 0x1d, 0xb4, 0xdb, 0xe9, 0x41, 0x24, 0xff,
|
||||
0xd9, 0x6c, 0xfe, 0x77, 0x45, 0x80, 0xb1, 0x23, 0x2b, 0xe3, 0x35, 0x28, 0x17, 0xb0, 0x46, 0xb8,
|
||||
0x13, 0xf1, 0xf6, 0xaa, 0x99, 0x4d, 0x2e, 0x93, 0x4d, 0xf0, 0x72, 0x0d, 0x66, 0x2f, 0xdf, 0x2f,
|
||||
0x0c, 0xf3, 0x97, 0x05, 0x37, 0xe7, 0x36, 0xf5, 0x73, 0xef, 0x5b, 0xcf, 0x17, 0x3e, 0x1d, 0x0c,
|
||||
0x06, 0x07, 0x65, 0x77, 0xfd, 0x0a, 0x57, 0xb1, 0x7e, 0xcc, 0x23, 0xb1, 0x13, 0x65, 0x1b, 0x05,
|
||||
0x68, 0x1e, 0x96, 0x67, 0x06, 0x61, 0x6e, 0x14, 0x60, 0x10, 0xc9, 0xfa, 0xf1, 0x30, 0xd3, 0xa8,
|
||||
0x49, 0x67, 0xf1, 0x1a, 0x1d, 0x82, 0x97, 0x5f, 0x16, 0x7c, 0x3c, 0x25, 0xaa, 0xe6, 0x87, 0x2a,
|
||||
0xaa, 0xa9, 0xaa, 0xa2, 0x92, 0xac, 0x2c, 0xba, 0x09, 0xc7, 0x05, 0x60, 0x71, 0x96, 0xd4, 0x01,
|
||||
0x23, 0x68, 0xb0, 0x67, 0x38, 0x58, 0x99, 0x19, 0x84, 0xb9, 0x91, 0x59, 0xff, 0x5b, 0x3c, 0xd7,
|
||||
0xa8, 0x54, 0xd4, 0xd5, 0xd5, 0x45, 0xf1, 0x10, 0x9f, 0xf1, 0xca, 0x4a, 0x00, 0x59, 0x3b, 0xae,
|
||||
0x3e, 0x41, 0x43, 0x1e, 0x97, 0xe8, 0x26, 0xb6, 0x21, 0x03, 0x25, 0x25, 0xd4, 0x01, 0x97, 0xb1,
|
||||
0x6b, 0x8f, 0xc7, 0x13, 0x69, 0x69, 0x6e, 0xbe, 0x6b, 0xfd, 0xa0, 0xcd, 0x46, 0x6f, 0xa0, 0xac,
|
||||
0xf9, 0xd0, 0xd4, 0xd4, 0xd4, 0xcc, 0x5d, 0x90, 0xe0, 0x33, 0x76, 0xfc, 0x1f, 0x44, 0xd6, 0xa1,
|
||||
0xef, 0x0f, 0x90, 0xcb, 0x3d, 0x28, 0x26, 0x7f, 0x05, 0xe5, 0x92, 0x20, 0xe1, 0xa5, 0xa5, 0xa5,
|
||||
0x67, 0x98, 0x1b, 0x65, 0x58, 0x25, 0x7a, 0xc6, 0x20, 0x93, 0x93, 0x93, 0x7f, 0xe2, 0x7e, 0x99,
|
||||
0x08, 0xc9, 0xf6, 0x65, 0x97, 0xfd, 0xa7, 0x5c, 0x5e, 0x3e, 0xba, 0xfb, 0xb3, 0x9d, 0xb3, 0x27,
|
||||
0xfa, 0x8e, 0xff, 0x65, 0x77, 0xee, 0xbd, 0x65, 0xbe, 0x74, 0xef, 0xf9, 0xc1, 0xf1, 0xfd, 0xe2,
|
||||
0xca, 0x72, 0xe0, 0x30, 0x58, 0x38, 0x32, 0x36, 0x36, 0x76, 0x08, 0x69, 0xd2, 0x64, 0xeb, 0x9f,
|
||||
0x6d, 0x69, 0x21, 0x2b, 0x7a, 0x14, 0x07, 0x61, 0x61, 0x19, 0xe6, 0xea, 0x12, 0xdf, 0xbc, 0x75,
|
||||
0xe0, 0xdc, 0x1f, 0x14, 0x13, 0xae, 0xcb, 0x83, 0x7f, 0xc3, 0x18, 0x51, 0xf9, 0xf9, 0xf3, 0xdf,
|
||||
0x3d, 0x47, 0x5f, 0xde, 0x18, 0x0a, 0x54, 0x57, 0x57, 0x9f, 0x47, 0x8a, 0x72, 0x28, 0x53, 0x72,
|
||||
0x26, 0x83, 0x1d, 0x85, 0xba, 0xa1, 0xd2, 0x38, 0x13, 0x98, 0x87, 0xf9, 0x0b, 0xb1, 0x90, 0xfb,
|
||||
0x2f, 0xda, 0x02, 0xd1, 0x68, 0x94, 0x12, 0xe3, 0xd9, 0x9e, 0x5d, 0xb7, 0x63, 0xc7, 0x19, 0xbb,
|
||||
0xf4, 0xb3, 0x98, 0xde, 0x0c, 0xb1, 0x4d, 0x69, 0x94, 0x41, 0xab, 0x06, 0xca, 0xe4, 0x8a, 0x4d,
|
||||
0xb0, 0xe7, 0xf3, 0x5d, 0x7e, 0x5a, 0x21, 0x5e, 0xeb, 0xab, 0xba, 0x15, 0x3b, 0xce, 0xf4, 0xa9,
|
||||
0x21, 0x80, 0xe9, 0x6c, 0x45, 0x95, 0x50, 0x1e, 0x74, 0x5f, 0x32, 0xd0, 0x27, 0xb1, 0x09, 0x4a,
|
||||
0xfa, 0x8b, 0xee, 0x60, 0x53, 0x2e, 0x27, 0x82, 0x9e, 0xec, 0x7d, 0xdc, 0x1f, 0xb7, 0x22, 0x87,
|
||||
0xb8, 0xa2, 0x4e, 0xe8, 0x28, 0x54, 0x28, 0xf7, 0x69, 0xd5, 0xb0, 0x78, 0xb8, 0x63, 0x89, 0x3d,
|
||||
0x3a, 0xee, 0x7c, 0x73, 0x26, 0x1c, 0x0e, 0x8b, 0x30, 0x94, 0x31, 0x7a, 0x6e, 0xe0, 0xec, 0x4c,
|
||||
0xe2, 0x18, 0x43, 0x7d, 0xd6, 0x4f, 0x98, 0xde, 0x01, 0x1d, 0x81, 0x0a, 0x92, 0x82, 0xb8, 0x5e,
|
||||
0xae, 0xc8, 0xec, 0xe3, 0xc3, 0x89, 0x89, 0x1e, 0xf8, 0xa2, 0x2c, 0xf8, 0x42, 0xcf, 0xbe, 0xd9,
|
||||
0x47, 0x7a, 0x1f, 0x5a, 0x58, 0xc9, 0xea, 0x19, 0xdb, 0xd3, 0x47, 0x31, 0xbd, 0x15, 0xb2, 0xb3,
|
||||
0xc2, 0x24, 0x2d, 0x1d, 0x6b, 0xa2, 0x79, 0x90, 0xfb, 0x60, 0x2d, 0xfb, 0x48, 0x16, 0xff, 0x9e,
|
||||
0xf6, 0x77, 0xcc, 0xeb, 0x81, 0xd8, 0x6f, 0xfc, 0x31, 0x48, 0x97, 0xd4, 0x0c, 0xe2, 0x80, 0x0a,
|
||||
0x85, 0x06, 0xdf, 0xb3, 0x4b, 0x6b, 0x81, 0x18, 0x3b, 0xf5, 0x7e, 0xa5, 0x5e, 0x39, 0x80, 0x79,
|
||||
0x1f, 0x49, 0xfd, 0xb1, 0x42, 0xe9, 0x6b, 0xff, 0x4a, 0xe7, 0x2b, 0x8c, 0x7c, 0x9b, 0xbe, 0x55,
|
||||
0x70, 0xf3, 0x77, 0x56, 0x02, 0x98, 0xdd, 0xdc, 0xb2, 0xfe, 0x84, 0xe6, 0x86, 0x52, 0xa3, 0xbc,
|
||||
0x28, 0xb9, 0xed, 0x18, 0xf4, 0xe8, 0x5a, 0x57, 0x13, 0x1b, 0x2a, 0xf6, 0xd9, 0x53, 0x6d, 0x55,
|
||||
0xed, 0xd4, 0x55, 0x6b, 0x1c, 0x86, 0x53, 0xba, 0xab, 0xdc, 0xbb, 0xba, 0xeb, 0x86, 0x46, 0xed,
|
||||
0x8f, 0x9a, 0xca, 0xcc, 0x6f, 0xd2, 0x2c, 0x4a, 0x56, 0xaa, 0x8f, 0xa1, 0xd3, 0xd0, 0xab, 0xd0,
|
||||
0x76, 0x88, 0x4f, 0x6a, 0x82, 0x55, 0xfe, 0x3d, 0x0c, 0x66, 0x80, 0x6c, 0xd0, 0x0e, 0xe8, 0x65,
|
||||
0xe8, 0x75, 0xa8, 0x16, 0xaa, 0x81, 0x5e, 0x82, 0x9e, 0x82, 0xb6, 0x42, 0x7a, 0x09, 0xa2, 0x4c,
|
||||
0xf5, 0x27, 0xca, 0x26, 0xaa, 0x99, 0x21, 0xa5, 0x8d, 0x58, 0x0c, 0x95, 0x4a, 0xbd, 0xc8, 0x93,
|
||||
0x5e, 0x44, 0xbd, 0x1e, 0xc0, 0x3f, 0xbb, 0xd3, 0x23, 0x93, 0xd3, 0xc7, 0x4e, 0x68, 0x00, 0x00,
|
||||
0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82,
|
||||
};
|
||||
|
||||
const BITMAP_OPAQUE delete_pad_xpm[1] = {{ png, sizeof( png ), "delete_pad_xpm" }};
|
||||
|
||||
//EOF
|
||||
@@ -1,93 +0,0 @@
|
||||
|
||||
/* Do not modify this file, it was automatically generated by the
|
||||
* PNG2cpp CMake script, using a *.png file as input.
|
||||
*/
|
||||
|
||||
#include <bitmaps_png/bitmaps_list.h>
|
||||
|
||||
static const unsigned char png[] = {
|
||||
0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52,
|
||||
0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1a, 0x08, 0x06, 0x00, 0x00, 0x00, 0xa9, 0x4a, 0x4c,
|
||||
0xce, 0x00, 0x00, 0x04, 0xb9, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0xad, 0x95, 0x7b, 0x48, 0x9b,
|
||||
0x57, 0x18, 0xc6, 0x93, 0x98, 0x18, 0x35, 0xda, 0x68, 0x92, 0x1a, 0x73, 0xf3, 0x92, 0x8b, 0xd1,
|
||||
0x1a, 0x45, 0xbb, 0xae, 0x8c, 0x55, 0xa9, 0xbd, 0x28, 0x1b, 0x5d, 0x11, 0x5d, 0xa5, 0x88, 0x45,
|
||||
0x36, 0x59, 0xa9, 0x76, 0xdd, 0xac, 0xb0, 0xee, 0xd6, 0xb2, 0x8e, 0xb5, 0x95, 0xb2, 0xfd, 0x51,
|
||||
0xe8, 0xdc, 0x06, 0xa3, 0x60, 0xe9, 0xee, 0xa5, 0x74, 0x20, 0x9d, 0xd2, 0xd1, 0x21, 0xcc, 0x4d,
|
||||
0xe6, 0x3a, 0x9b, 0x9a, 0x56, 0xd4, 0x6c, 0xde, 0xf0, 0x12, 0xaf, 0xd3, 0x44, 0x5b, 0xd4, 0x39,
|
||||
0xdf, 0x3d, 0x27, 0x3b, 0x9f, 0x0d, 0xce, 0x32, 0x15, 0x0f, 0x3c, 0x7c, 0xdf, 0x77, 0x4e, 0x3c,
|
||||
0xbf, 0xf3, 0xbe, 0xe7, 0x79, 0x5f, 0x45, 0xa2, 0x75, 0x0c, 0x22, 0x8a, 0x1d, 0x1b, 0x1b, 0xbb,
|
||||
0xdf, 0xdf, 0xdf, 0xdf, 0x8b, 0xf7, 0xd4, 0x65, 0x6b, 0xc9, 0x43, 0x43, 0x43, 0x5d, 0x1e, 0x8f,
|
||||
0xa7, 0x03, 0xef, 0x66, 0xd1, 0x7a, 0x07, 0x83, 0x00, 0xd0, 0x97, 0x94, 0x90, 0x40, 0x7a, 0x8d,
|
||||
0x86, 0xda, 0xda, 0xda, 0x26, 0x04, 0x18, 0x83, 0xb8, 0xdd, 0xee, 0x51, 0x93, 0x56, 0x4b, 0x16,
|
||||
0xa3, 0x91, 0x7a, 0x7b, 0x7b, 0x07, 0xd7, 0x05, 0x0b, 0x84, 0x14, 0xa9, 0xd5, 0x54, 0x01, 0x90,
|
||||
0x1e, 0x4f, 0x0e, 0x3b, 0x20, 0x40, 0xca, 0x31, 0x5f, 0xa2, 0x52, 0xad, 0x1f, 0x86, 0x74, 0x39,
|
||||
0x05, 0x88, 0xcf, 0x6e, 0xa7, 0x19, 0x9b, 0x8d, 0x8e, 0x47, 0x45, 0xf9, 0x61, 0x75, 0x75, 0x75,
|
||||
0xc4, 0x20, 0x65, 0x00, 0x4c, 0xe3, 0x37, 0x3e, 0xab, 0x75, 0x09, 0x36, 0x3c, 0x3c, 0xdc, 0xbe,
|
||||
0x26, 0x10, 0xfe, 0xa0, 0x2d, 0x41, 0xaf, 0xa7, 0x52, 0x9c, 0x78, 0x1a, 0x90, 0x19, 0x6c, 0x38,
|
||||
0x6d, 0x32, 0x51, 0x85, 0x52, 0x49, 0x2c, 0xe0, 0x32, 0x3c, 0xbd, 0x06, 0x03, 0x4d, 0xc7, 0xc6,
|
||||
0xd2, 0xb4, 0xd9, 0xec, 0x8f, 0x8c, 0xc1, 0x07, 0x06, 0x06, 0xba, 0xd6, 0x9a, 0x3a, 0x6b, 0x77,
|
||||
0x77, 0xb7, 0x27, 0x01, 0x9b, 0x95, 0xe2, 0xb4, 0x3e, 0x40, 0x7c, 0x3a, 0x1d, 0x79, 0xa3, 0xa3,
|
||||
0xe9, 0x26, 0x20, 0x53, 0x9b, 0x37, 0x93, 0x2f, 0x26, 0x86, 0x7c, 0x88, 0x82, 0x45, 0x66, 0xc2,
|
||||
0x3c, 0x4b, 0x27, 0xbb, 0xbb, 0xe5, 0x7b, 0x89, 0x03, 0xb4, 0xe2, 0xda, 0xec, 0xec, 0xac, 0xad,
|
||||
0xa7, 0xa7, 0xc7, 0xc3, 0x52, 0x52, 0x82, 0xcd, 0x27, 0xb1, 0xd9, 0x14, 0x36, 0x9d, 0x62, 0x20,
|
||||
0xa4, 0x71, 0x0a, 0xdf, 0xe5, 0x78, 0x67, 0x90, 0xce, 0xce, 0xce, 0xff, 0x40, 0x0a, 0x65, 0x32,
|
||||
0xd9, 0xed, 0x10, 0xb9, 0xfc, 0x1e, 0xde, 0xdf, 0x84, 0x42, 0x21, 0x19, 0x24, 0x81, 0xd4, 0xd0,
|
||||
0x95, 0x70, 0x85, 0xc2, 0x8d, 0xe7, 0x0d, 0x28, 0x6d, 0x72, 0x72, 0x32, 0xbf, 0xa1, 0xa1, 0xc1,
|
||||
0x9f, 0xae, 0x5a, 0x06, 0x60, 0xc0, 0xf0, 0x70, 0x3f, 0xe8, 0x26, 0xc4, 0xe6, 0xeb, 0xeb, 0xeb,
|
||||
0x89, 0x19, 0x24, 0x10, 0x62, 0xb6, 0xdb, 0x2c, 0x0b, 0x63, 0xbf, 0x7c, 0x43, 0x0f, 0xbf, 0x3f,
|
||||
0x47, 0xcf, 0xa6, 0x1b, 0xc8, 0x68, 0xfc, 0xa2, 0x2f, 0x25, 0x65, 0xd6, 0x95, 0x92, 0x32, 0x7f,
|
||||
0x57, 0xa9, 0x2c, 0x1c, 0xbf, 0x78, 0xe6, 0x04, 0x51, 0xcb, 0x65, 0x6a, 0x38, 0x7f, 0x90, 0x32,
|
||||
0x32, 0x32, 0xfe, 0x40, 0x3a, 0x26, 0xe2, 0x91, 0xb2, 0x52, 0x9e, 0x2e, 0x7f, 0x44, 0x00, 0x78,
|
||||
0x71, 0x27, 0x2c, 0x75, 0xaf, 0x45, 0x46, 0x92, 0x16, 0xdf, 0x2e, 0x97, 0x6b, 0x22, 0xb0, 0xce,
|
||||
0xb2, 0x0f, 0xe6, 0x6c, 0x27, 0xba, 0x51, 0x49, 0x74, 0x69, 0x2f, 0x9d, 0xd9, 0x1b, 0x4e, 0x7a,
|
||||
0x7d, 0x35, 0x39, 0x1c, 0xe4, 0x97, 0x42, 0xb1, 0x9b, 0xda, 0x2e, 0x63, 0xed, 0xeb, 0x62, 0xfa,
|
||||
0xab, 0x26, 0x8f, 0x9a, 0x9b, 0x9b, 0x97, 0xdc, 0xc5, 0xee, 0x82, 0x6d, 0xcc, 0xd2, 0x55, 0x8b,
|
||||
0xcd, 0xbd, 0xec, 0x7e, 0x98, 0x19, 0xe2, 0xe2, 0xe8, 0x38, 0x9c, 0x18, 0x60, 0x7d, 0x3f, 0x4c,
|
||||
0x21, 0x93, 0x4a, 0xdb, 0xdf, 0xd8, 0xa3, 0xa1, 0x73, 0x3b, 0x45, 0xa4, 0x0a, 0x95, 0xcf, 0xa9,
|
||||
0x54, 0x47, 0x6e, 0x45, 0x47, 0xbf, 0x73, 0x4d, 0xab, 0x3d, 0xfb, 0x79, 0x44, 0xc4, 0x33, 0x8d,
|
||||
0x4f, 0xc4, 0x6d, 0x5a, 0xbc, 0xb8, 0x2f, 0x9c, 0x9c, 0xcd, 0x8d, 0x24, 0xd4, 0x09, 0x73, 0x15,
|
||||
0xdb, 0xd0, 0x7f, 0xf1, 0xdc, 0x75, 0xa5, 0x80, 0xf9, 0x30, 0x37, 0x63, 0xb1, 0xd0, 0x03, 0xd8,
|
||||
0xbf, 0x02, 0xd1, 0xb2, 0xa2, 0x86, 0xeb, 0x7a, 0x45, 0xfc, 0x1e, 0x74, 0xd0, 0x69, 0xe8, 0x4b,
|
||||
0xe8, 0x43, 0xe8, 0x3c, 0xf4, 0x16, 0x74, 0x0c, 0x2a, 0x83, 0xaa, 0xc4, 0xe2, 0xa0, 0xeb, 0x4d,
|
||||
0x4d, 0x5d, 0x73, 0x0e, 0xd8, 0xba, 0x00, 0x27, 0xf5, 0xa2, 0x4e, 0x18, 0x4c, 0x70, 0x17, 0xbb,
|
||||
0x33, 0xbf, 0xf5, 0xb1, 0x36, 0x03, 0x08, 0xab, 0x33, 0x56, 0x6f, 0xac, 0xee, 0x46, 0x47, 0x47,
|
||||
0xef, 0x09, 0x6e, 0x0a, 0x81, 0xac, 0xd0, 0x73, 0x50, 0x29, 0x54, 0x0c, 0xed, 0x82, 0x1c, 0x90,
|
||||
0x1d, 0x62, 0xa1, 0xef, 0xc9, 0xca, 0x3a, 0xf0, 0xba, 0xd3, 0xe9, 0x59, 0x10, 0x60, 0x42, 0x9d,
|
||||
0x74, 0x74, 0x74, 0x8c, 0xc3, 0x20, 0x05, 0x4b, 0xd6, 0xc7, 0xbc, 0x00, 0x61, 0x9d, 0x84, 0x75,
|
||||
0x14, 0xe1, 0x9e, 0x24, 0xdc, 0x69, 0x31, 0x50, 0x02, 0xc4, 0x16, 0xa2, 0xf8, 0x01, 0x64, 0xfc,
|
||||
0xa9, 0x62, 0x6b, 0x99, 0x99, 0xc7, 0x4e, 0x3b, 0xef, 0xdc, 0x21, 0x06, 0x63, 0x90, 0xbb, 0x2d,
|
||||
0xb7, 0x29, 0x37, 0x37, 0xf7, 0x23, 0xac, 0xc5, 0xb5, 0xb6, 0xb6, 0x3a, 0xfc, 0x30, 0x44, 0xb6,
|
||||
0x12, 0x24, 0xb0, 0x4e, 0x18, 0x50, 0x0a, 0x05, 0xf1, 0x77, 0xf1, 0x0a, 0x6b, 0x39, 0x25, 0x79,
|
||||
0xbb, 0xc9, 0xdb, 0xe7, 0xa2, 0x31, 0x77, 0x0b, 0x5d, 0x38, 0x94, 0xc6, 0xee, 0xe7, 0x1a, 0xcf,
|
||||
0x86, 0x0e, 0x6d, 0xca, 0x3e, 0x32, 0x32, 0x72, 0x9f, 0xb5, 0xab, 0x95, 0x20, 0xab, 0x1d, 0xfe,
|
||||
0x34, 0x07, 0x05, 0x85, 0x35, 0xe6, 0x3b, 0xc2, 0xe8, 0x85, 0x54, 0x11, 0x85, 0xc8, 0x94, 0x5e,
|
||||
0xcc, 0x55, 0x43, 0x87, 0x21, 0x1b, 0xcf, 0xc0, 0x86, 0x0c, 0x89, 0xd1, 0x58, 0x93, 0x6a, 0xb5,
|
||||
0xba, 0xc8, 0x62, 0xf9, 0x95, 0xd4, 0xea, 0xa3, 0xb5, 0xdc, 0x3c, 0x87, 0x58, 0xfa, 0x78, 0xd4,
|
||||
0x1b, 0x32, 0xc4, 0x56, 0xeb, 0x6f, 0x16, 0xa1, 0xce, 0x34, 0x9a, 0xca, 0xab, 0xbc, 0x9b, 0xec,
|
||||
0xe4, 0xf7, 0x2a, 0xd9, 0x28, 0x90, 0x28, 0x29, 0xa9, 0x27, 0xfe, 0x11, 0xe8, 0xc4, 0x67, 0xbc,
|
||||
0x0c, 0x52, 0x20, 0xf9, 0x63, 0xfa, 0xe4, 0xfa, 0x46, 0x70, 0xb0, 0xa9, 0xca, 0x68, 0x48, 0x24,
|
||||
0x5b, 0x82, 0x85, 0x82, 0x83, 0x2d, 0x9d, 0x98, 0x7a, 0x99, 0xf1, 0xd7, 0x7a, 0x3f, 0xe2, 0xe5,
|
||||
0x5d, 0xdc, 0x6a, 0xfd, 0x5d, 0x9e, 0x9c, 0x3c, 0xff, 0x94, 0xc3, 0xf1, 0x77, 0x45, 0x7c, 0xfc,
|
||||
0x8f, 0xdf, 0x6d, 0x4b, 0x77, 0xd0, 0xbc, 0xf3, 0x2a, 0xd1, 0xad, 0x77, 0xa9, 0x24, 0x33, 0x8e,
|
||||
0xb9, 0x8e, 0x45, 0xb5, 0x8d, 0x75, 0x99, 0xd5, 0x44, 0x74, 0x52, 0xa3, 0x51, 0x0f, 0xaa, 0x22,
|
||||
0x23, 0x06, 0xa4, 0x52, 0x43, 0x95, 0xdd, 0xee, 0x29, 0xdc, 0xb2, 0x65, 0xee, 0x03, 0x87, 0x63,
|
||||
0xf1, 0x67, 0xa4, 0xe8, 0xa1, 0x90, 0x2a, 0xb3, 0xb9, 0x89, 0xf6, 0x67, 0xa6, 0x12, 0x7d, 0x7b,
|
||||
0x84, 0xe8, 0x93, 0xa7, 0xe9, 0x64, 0x96, 0x9c, 0x78, 0x57, 0x2f, 0x80, 0x0c, 0xbc, 0x34, 0x1e,
|
||||
0x3b, 0x76, 0xe5, 0x64, 0xef, 0xf0, 0x9f, 0x72, 0xb6, 0xfe, 0x14, 0x65, 0xda, 0x35, 0x70, 0x54,
|
||||
0xf3, 0x52, 0x63, 0x7d, 0xa4, 0xc5, 0x85, 0xa4, 0xa4, 0xf1, 0xc1, 0xb0, 0xb0, 0x27, 0xbd, 0xcf,
|
||||
0xa7, 0x2a, 0xe8, 0xc5, 0x34, 0x11, 0x85, 0x4a, 0x83, 0xfe, 0x5c, 0x8b, 0xbd, 0x8b, 0x5e, 0x2d,
|
||||
0xcc, 0x26, 0xba, 0xfe, 0xef, 0x29, 0x5f, 0xda, 0x2a, 0x23, 0x93, 0xe9, 0xab, 0x07, 0x89, 0x89,
|
||||
0xdd, 0xed, 0x66, 0xf3, 0x4f, 0x3f, 0xe8, 0x74, 0xd5, 0x57, 0x22, 0x23, 0x8b, 0x2f, 0x48, 0xa5,
|
||||
0xea, 0x53, 0xf8, 0xed, 0xdb, 0x10, 0x7b, 0x7e, 0x0c, 0xd5, 0x40, 0xef, 0xf3, 0x3e, 0x59, 0xb4,
|
||||
0x1a, 0x7b, 0x47, 0x85, 0xc8, 0x24, 0xee, 0x57, 0x76, 0x6c, 0xa2, 0xa3, 0x5b, 0x45, 0x24, 0x93,
|
||||
0x48, 0x46, 0xf9, 0x29, 0xcf, 0x72, 0xeb, 0x56, 0x72, 0x67, 0x1d, 0xe6, 0x7d, 0x30, 0x1f, 0xda,
|
||||
0xcf, 0xfe, 0x61, 0xf2, 0xef, 0x3c, 0x28, 0x1d, 0x52, 0xfe, 0x9f, 0xbd, 0x25, 0x3c, 0xbf, 0x6c,
|
||||
0xd3, 0x4f, 0xf9, 0x29, 0xdf, 0x83, 0xca, 0xa1, 0x7d, 0xd0, 0x76, 0xde, 0x60, 0x6d, 0xbc, 0x0f,
|
||||
0xb2, 0x6e, 0xaf, 0xe5, 0x7f, 0x23, 0x7c, 0x47, 0xf0, 0x68, 0x56, 0x34, 0xc3, 0x3f, 0x3f, 0x19,
|
||||
0xa2, 0x7e, 0x5d, 0xaa, 0x4a, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42,
|
||||
0x60, 0x82,
|
||||
};
|
||||
|
||||
const BITMAP_OPAQUE delete_polygon_xpm[1] = {{ png, sizeof( png ), "delete_polygon_xpm" }};
|
||||
|
||||
//EOF
|
||||
@@ -1,87 +0,0 @@
|
||||
|
||||
/* Do not modify this file, it was automatically generated by the
|
||||
* PNG2cpp CMake script, using a *.png file as input.
|
||||
*/
|
||||
|
||||
#include <bitmaps_png/bitmaps_list.h>
|
||||
|
||||
static const unsigned char png[] = {
|
||||
0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52,
|
||||
0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1a, 0x08, 0x06, 0x00, 0x00, 0x00, 0xa9, 0x4a, 0x4c,
|
||||
0xce, 0x00, 0x00, 0x04, 0x66, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0xed, 0x95, 0x6b, 0x4c, 0x5b,
|
||||
0x65, 0x18, 0xc7, 0x5b, 0x3c, 0xb4, 0x3d, 0x5c, 0x4a, 0x0b, 0x74, 0x30, 0xe8, 0x85, 0x6b, 0x61,
|
||||
0x3d, 0xfd, 0x30, 0xc1, 0x65, 0xce, 0x64, 0x90, 0x99, 0xe0, 0xa6, 0x0b, 0x62, 0x54, 0xdc, 0x26,
|
||||
0xd3, 0x8c, 0xa8, 0xd9, 0xb2, 0xc5, 0xc0, 0x36, 0x85, 0xa9, 0x8b, 0x51, 0x67, 0x02, 0xcb, 0xbe,
|
||||
0x80, 0xc6, 0xdb, 0x58, 0x66, 0xb2, 0x04, 0xb3, 0x60, 0x34, 0xeb, 0x07, 0x22, 0xc9, 0xc4, 0x4c,
|
||||
0x67, 0xa0, 0x50, 0x59, 0xa6, 0x59, 0x66, 0xc6, 0xc5, 0x98, 0xe0, 0x48, 0x58, 0x32, 0xa0, 0x2d,
|
||||
0x30, 0x5a, 0x0a, 0x8f, 0xff, 0xe7, 0x78, 0xce, 0x04, 0xa4, 0x64, 0xe5, 0xb3, 0x27, 0xf9, 0xa5,
|
||||
0x87, 0x43, 0xdf, 0xf7, 0x77, 0x9e, 0xcb, 0xfb, 0x54, 0xa3, 0x59, 0xc7, 0x45, 0x44, 0x7b, 0x46,
|
||||
0x46, 0x46, 0x82, 0xa1, 0x50, 0xe8, 0x12, 0xee, 0xc5, 0x15, 0xff, 0x2b, 0x1b, 0x1d, 0x1d, 0xbd,
|
||||
0xe3, 0xf7, 0xfb, 0x7b, 0x71, 0x6f, 0xd1, 0xac, 0xf7, 0xc2, 0xe2, 0x7d, 0x9d, 0x9d, 0x9d, 0x0b,
|
||||
0xfa, 0xf8, 0x78, 0x7a, 0xb6, 0xb2, 0x92, 0xe6, 0xe6, 0xe6, 0xba, 0x55, 0x19, 0x3e, 0xcb, 0x7d,
|
||||
0x3e, 0xdf, 0x6c, 0x6a, 0x72, 0x32, 0x6d, 0x2b, 0x2d, 0xa5, 0x89, 0x89, 0x89, 0x1b, 0xeb, 0x92,
|
||||
0xa9, 0x12, 0x51, 0xa7, 0xa3, 0x0f, 0x2d, 0x16, 0x72, 0x26, 0x25, 0x2d, 0x95, 0xed, 0x52, 0x25,
|
||||
0x47, 0xd3, 0xd2, 0xe8, 0xb1, 0x94, 0x14, 0xda, 0x56, 0x52, 0x12, 0xbb, 0x0c, 0x5f, 0xde, 0xda,
|
||||
0xd5, 0xd5, 0x25, 0x4b, 0x3e, 0xcd, 0xcc, 0xa4, 0x99, 0xa2, 0x22, 0x1a, 0xce, 0xc9, 0x21, 0x67,
|
||||
0x62, 0xa2, 0x2c, 0xeb, 0xeb, 0xeb, 0x23, 0x96, 0x34, 0xa4, 0xa6, 0xd2, 0x74, 0x5e, 0x1e, 0x8d,
|
||||
0xe7, 0xe7, 0xdf, 0x97, 0x05, 0x02, 0x01, 0x6f, 0x2c, 0xa2, 0xea, 0xe6, 0xa6, 0x26, 0x32, 0x41,
|
||||
0xe4, 0x83, 0x60, 0xba, 0xa0, 0x80, 0x82, 0xf8, 0x1c, 0xca, 0xca, 0xa2, 0x42, 0xc8, 0xe2, 0xb4,
|
||||
0x5a, 0x6a, 0xc0, 0xc6, 0x41, 0xab, 0x95, 0x82, 0x0e, 0x07, 0x4d, 0x43, 0xc4, 0x91, 0xb1, 0x1c,
|
||||
0x35, 0x1b, 0x8f, 0x45, 0x14, 0x07, 0xbe, 0x3c, 0x56, 0x5f, 0x4f, 0x16, 0x51, 0xa4, 0xfe, 0xec,
|
||||
0x6c, 0x79, 0xd3, 0xc0, 0xc6, 0x8d, 0x74, 0x2b, 0x3d, 0x9d, 0xce, 0x19, 0x8d, 0xe4, 0xdf, 0xb0,
|
||||
0x41, 0xfe, 0x9b, 0x9f, 0x37, 0x22, 0x32, 0x96, 0x70, 0x3a, 0xb9, 0x76, 0xea, 0x3e, 0x4e, 0x50,
|
||||
0x0f, 0x5e, 0x03, 0x29, 0x40, 0xbb, 0x96, 0xec, 0xad, 0xc6, 0x46, 0x4a, 0x37, 0x18, 0xa8, 0x17,
|
||||
0x75, 0xf2, 0x83, 0x29, 0xb3, 0x99, 0xa6, 0x4c, 0x26, 0xf2, 0x63, 0x73, 0x7f, 0x46, 0x06, 0x35,
|
||||
0x22, 0x32, 0x13, 0xa2, 0xf4, 0x7a, 0xbd, 0xcb, 0x24, 0xdb, 0x6d, 0x56, 0xeb, 0x7c, 0xeb, 0xfb,
|
||||
0xc7, 0xe9, 0x9d, 0x57, 0x2a, 0x49, 0x1f, 0x6f, 0xbc, 0x93, 0x9f, 0xdf, 0x73, 0x50, 0x92, 0x66,
|
||||
0xf7, 0xba, 0xdd, 0x91, 0x17, 0x56, 0x52, 0x52, 0x12, 0xd9, 0x73, 0xfb, 0x36, 0x0d, 0xbc, 0x54,
|
||||
0x53, 0x43, 0x16, 0xa4, 0xf1, 0x2e, 0xd2, 0x33, 0x85, 0x68, 0x26, 0xf1, 0xf6, 0x2c, 0x6c, 0xc3,
|
||||
0x3d, 0xa7, 0x91, 0x6b, 0xc6, 0x0d, 0xb2, 0xf4, 0x45, 0xcf, 0xb6, 0x9f, 0x79, 0x83, 0xe8, 0xca,
|
||||
0x69, 0xa2, 0x8e, 0x97, 0xa9, 0x66, 0x4b, 0x1a, 0xd9, 0xed, 0xdf, 0x92, 0xdb, 0x4d, 0xab, 0x72,
|
||||
0xe0, 0x00, 0x51, 0x4f, 0xcf, 0xc0, 0x3f, 0x85, 0xe7, 0x74, 0x21, 0x6d, 0x1c, 0x8d, 0x1c, 0x11,
|
||||
0xa4, 0x83, 0x48, 0x5f, 0xa1, 0xd2, 0x20, 0x4b, 0x5b, 0x9f, 0xaf, 0x0f, 0x1a, 0x9e, 0xdb, 0x42,
|
||||
0x74, 0x7e, 0x27, 0xdd, 0x3b, 0x65, 0xa5, 0x92, 0x4c, 0x0d, 0xe5, 0xe6, 0xfe, 0x10, 0x92, 0xa4,
|
||||
0x7b, 0xb3, 0x92, 0x14, 0x9a, 0x96, 0xa4, 0x70, 0x50, 0xa5, 0xb6, 0x76, 0x7e, 0xb6, 0xb7, 0x77,
|
||||
0x60, 0x51, 0x96, 0xe0, 0xed, 0x03, 0x68, 0x04, 0xae, 0x0b, 0xcb, 0xee, 0x22, 0x85, 0x01, 0xa4,
|
||||
0x2d, 0x80, 0xda, 0x0d, 0xa1, 0x46, 0x2b, 0x5a, 0x5f, 0x96, 0x19, 0x75, 0xba, 0xc2, 0x9b, 0xce,
|
||||
0x34, 0x81, 0x32, 0x92, 0x12, 0x48, 0x10, 0xd2, 0x7e, 0xc3, 0xb3, 0x36, 0xf0, 0x09, 0x38, 0x03,
|
||||
0x9a, 0x98, 0x8a, 0x8a, 0x8a, 0x36, 0xe4, 0x7c, 0x9e, 0x25, 0x8d, 0x78, 0x73, 0xee, 0xb8, 0xa0,
|
||||
0xcd, 0x26, 0xcb, 0xb8, 0xdb, 0x38, 0x8d, 0x7d, 0x10, 0x05, 0xed, 0x76, 0xb9, 0xbd, 0x47, 0x80,
|
||||
0x2a, 0xc3, 0x04, 0xf1, 0xb0, 0x48, 0x5b, 0x5c, 0x3c, 0x7e, 0x5c, 0x92, 0xe6, 0x90, 0x9a, 0x05,
|
||||
0x32, 0x18, 0x36, 0x7f, 0x85, 0x67, 0x9f, 0x2b, 0x82, 0x37, 0xc1, 0x51, 0xa6, 0xa5, 0xa5, 0xa5,
|
||||
0xfd, 0x04, 0x9a, 0xc0, 0x8c, 0x0d, 0x87, 0xb1, 0x09, 0xb7, 0xef, 0x34, 0x64, 0x1c, 0x19, 0xcb,
|
||||
0xe5, 0x9a, 0xa1, 0x41, 0xfa, 0x21, 0x9f, 0x71, 0x3a, 0xe5, 0x73, 0xc6, 0x87, 0x9a, 0x27, 0x08,
|
||||
0xc6, 0xd5, 0x94, 0x9c, 0x3b, 0x97, 0x6b, 0xf6, 0x75, 0xb5, 0x06, 0x06, 0xc3, 0xc3, 0x17, 0xf0,
|
||||
0xa8, 0x19, 0x3c, 0x09, 0xf2, 0x40, 0x36, 0xc8, 0x2a, 0x2b, 0x2b, 0xcb, 0xc5, 0xc1, 0xfb, 0xe9,
|
||||
0xc5, 0xea, 0x6a, 0x2a, 0xc0, 0x9b, 0x0e, 0x41, 0x76, 0x02, 0x91, 0x71, 0x77, 0x5d, 0xbd, 0xda,
|
||||
0x4f, 0xd7, 0xae, 0xfd, 0xfa, 0xa7, 0xdc, 0x8d, 0xdc, 0xfa, 0x78, 0x81, 0xcf, 0x70, 0xa8, 0x0d,
|
||||
0x90, 0x78, 0x3c, 0x9e, 0x05, 0xa4, 0x6e, 0xaf, 0x2c, 0x92, 0xa4, 0x85, 0xc3, 0xff, 0x8a, 0x4a,
|
||||
0x39, 0x6d, 0xef, 0x82, 0x22, 0x20, 0x28, 0xad, 0x2e, 0x33, 0x36, 0x36, 0x96, 0x10, 0x0e, 0x87,
|
||||
0x2f, 0x3f, 0x5f, 0x55, 0x25, 0x47, 0xc6, 0x91, 0x70, 0x63, 0x70, 0x83, 0xe8, 0xf5, 0x59, 0x1f,
|
||||
0x21, 0xb5, 0x3e, 0x3e, 0x67, 0x26, 0xbd, 0x9e, 0x44, 0x48, 0x78, 0x5c, 0xf1, 0xd8, 0xba, 0xdf,
|
||||
0x76, 0xcb, 0x45, 0x8f, 0x7c, 0x81, 0x47, 0x27, 0x41, 0xce, 0x6a, 0xe7, 0x89, 0x0b, 0xcb, 0x32,
|
||||
0x4e, 0x63, 0x7f, 0xff, 0x40, 0x98, 0x25, 0xbc, 0x4e, 0x10, 0x32, 0x5a, 0x05, 0x41, 0x68, 0x98,
|
||||
0x9c, 0x9c, 0xec, 0x38, 0xdd, 0xdc, 0x4c, 0x3c, 0xae, 0x96, 0x49, 0x62, 0x15, 0x29, 0x32, 0x3d,
|
||||
0xd8, 0x7f, 0xe8, 0xd0, 0x42, 0xab, 0xba, 0x8e, 0x45, 0x5c, 0x53, 0x51, 0x14, 0xed, 0x91, 0x48,
|
||||
0xa4, 0x9a, 0x67, 0xe3, 0x7f, 0x16, 0xc6, 0x2a, 0x5a, 0xb2, 0xee, 0xe4, 0x4a, 0x11, 0xb0, 0x45,
|
||||
0x5d, 0xf7, 0xbf, 0x48, 0xb9, 0x0c, 0x89, 0x89, 0x8f, 0x7b, 0x13, 0x12, 0x36, 0x91, 0x28, 0x6e,
|
||||
0x25, 0xad, 0x36, 0xd9, 0x13, 0x93, 0xc8, 0xe9, 0x1c, 0xfc, 0xab, 0xb0, 0xf0, 0xd6, 0xb0, 0xcb,
|
||||
0x15, 0xfc, 0x59, 0x92, 0x16, 0xbf, 0xc7, 0xb3, 0xcb, 0xab, 0x61, 0x36, 0x1f, 0xfc, 0xe3, 0x70,
|
||||
0xed, 0x3e, 0x0a, 0x5f, 0xef, 0xa0, 0xc1, 0x0b, 0x75, 0x94, 0x69, 0x32, 0x44, 0x94, 0x43, 0x9e,
|
||||
0x0f, 0x1e, 0x5a, 0x55, 0xe4, 0x72, 0xcd, 0x6f, 0x77, 0xbb, 0x17, 0xe7, 0xa2, 0x0d, 0xd2, 0xd5,
|
||||
0x30, 0x1a, 0xab, 0xa8, 0xfb, 0xe3, 0x3a, 0x22, 0xcf, 0x11, 0xa2, 0xb3, 0x3b, 0xe8, 0xe9, 0x62,
|
||||
0x3d, 0x61, 0xab, 0x76, 0xb0, 0x03, 0x24, 0x47, 0x8b, 0x4a, 0x5b, 0x50, 0x70, 0x63, 0x67, 0x5e,
|
||||
0x9e, 0xef, 0x6b, 0x9b, 0xed, 0x1b, 0xaf, 0xcd, 0xd6, 0xf1, 0x8b, 0xc3, 0xd1, 0x79, 0xc5, 0xe1,
|
||||
0xf8, 0xae, 0x3b, 0x1a, 0x66, 0x73, 0xed, 0xef, 0xe5, 0x9b, 0x2c, 0xf4, 0xe3, 0x91, 0x1c, 0x3a,
|
||||
0xff, 0x94, 0x86, 0x44, 0x41, 0x33, 0x83, 0x7d, 0xce, 0x81, 0x3a, 0xe0, 0x00, 0x71, 0xd1, 0x72,
|
||||
0xce, 0x13, 0xb6, 0x14, 0x1c, 0x53, 0x46, 0x50, 0xb3, 0x3a, 0x50, 0xd7, 0xe0, 0x12, 0xb8, 0x09,
|
||||
0xae, 0x83, 0x8b, 0x80, 0xeb, 0xfb, 0xb6, 0xf2, 0x43, 0x2a, 0x44, 0x13, 0xc5, 0x29, 0xbf, 0xae,
|
||||
0x9b, 0xc1, 0x13, 0x60, 0xf7, 0x03, 0xf0, 0x0c, 0x78, 0x15, 0xbc, 0xa7, 0x4c, 0xfa, 0x53, 0x60,
|
||||
0x3f, 0xc8, 0x5c, 0x2b, 0x22, 0x55, 0xa6, 0x57, 0x72, 0x9c, 0xf2, 0x00, 0x98, 0x81, 0x15, 0x3c,
|
||||
0xaa, 0x0c, 0xe1, 0x72, 0x25, 0x6d, 0xba, 0x95, 0x1b, 0xff, 0x0d, 0x5b, 0x77, 0x23, 0x60, 0x96,
|
||||
0x80, 0x07, 0xd9, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82,
|
||||
};
|
||||
|
||||
const BITMAP_OPAQUE delete_rectangle_xpm[1] = {{ png, sizeof( png ), "delete_rectangle_xpm" }};
|
||||
|
||||
//EOF
|
||||
@@ -1,74 +0,0 @@
|
||||
|
||||
/* Do not modify this file, it was automatically generated by the
|
||||
* PNG2cpp CMake script, using a *.png file as input.
|
||||
*/
|
||||
|
||||
#include <bitmaps_png/bitmaps_list.h>
|
||||
|
||||
static const unsigned char png[] = {
|
||||
0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52,
|
||||
0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1a, 0x08, 0x06, 0x00, 0x00, 0x00, 0xa9, 0x4a, 0x4c,
|
||||
0xce, 0x00, 0x00, 0x03, 0x88, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0xb5, 0x96, 0x5d, 0x48, 0x53,
|
||||
0x61, 0x18, 0xc7, 0xdf, 0x72, 0x33, 0x9d, 0x4b, 0x5d, 0x5a, 0x6e, 0x5a, 0x3a, 0x3f, 0x72, 0x12,
|
||||
0x5e, 0x44, 0x65, 0x14, 0x04, 0xc5, 0xf2, 0xa2, 0x24, 0x2a, 0x33, 0xba, 0x2c, 0xba, 0x30, 0xbc,
|
||||
0x88, 0x8a, 0xb4, 0x60, 0x69, 0xb0, 0x45, 0x73, 0x10, 0xda, 0x37, 0x44, 0x37, 0x7d, 0x17, 0x15,
|
||||
0xe8, 0xc2, 0x02, 0x29, 0x58, 0x17, 0x12, 0x25, 0x2c, 0xba, 0xe8, 0xc3, 0x84, 0x58, 0x45, 0x60,
|
||||
0xab, 0x2e, 0xda, 0xdc, 0x96, 0x82, 0x64, 0x4f, 0xff, 0xe7, 0xe8, 0xa9, 0xb7, 0xe3, 0x94, 0x0d,
|
||||
0xda, 0x03, 0x7f, 0x76, 0xde, 0x9d, 0x73, 0x9e, 0xdf, 0x79, 0xbe, 0xde, 0x73, 0x84, 0x48, 0xd2,
|
||||
0x88, 0x68, 0x0d, 0xf4, 0x04, 0x3a, 0x05, 0xe9, 0x34, 0xe7, 0x66, 0x41, 0xc7, 0xa0, 0x67, 0x50,
|
||||
0xdd, 0xd4, 0xbb, 0x9d, 0xa2, 0x1d, 0x1a, 0x55, 0x7e, 0x67, 0x86, 0xac, 0x1b, 0x18, 0x18, 0x18,
|
||||
0x29, 0x2a, 0x28, 0xa0, 0xb6, 0xd6, 0x56, 0x2c, 0xe9, 0xb6, 0x0a, 0x9b, 0x84, 0x5c, 0x38, 0xd9,
|
||||
0xd9, 0x49, 0xf9, 0x26, 0x13, 0xf9, 0xfd, 0xfe, 0x31, 0xac, 0x37, 0x6b, 0x41, 0x31, 0x88, 0xa0,
|
||||
0x71, 0x68, 0xc9, 0x4c, 0x10, 0x4b, 0x7e, 0x3e, 0xad, 0x9d, 0x3b, 0x97, 0x32, 0x75, 0x3a, 0x3a,
|
||||
0xe2, 0x70, 0xa8, 0x30, 0xbd, 0x0a, 0xd1, 0xa7, 0xa5, 0x91, 0xdd, 0x68, 0x24, 0x13, 0xae, 0x99,
|
||||
0x0a, 0x73, 0x0a, 0xef, 0x24, 0x88, 0x75, 0x35, 0x0e, 0x64, 0xf5, 0xe0, 0xe0, 0xe0, 0x48, 0xe1,
|
||||
0xfc, 0xf9, 0xb4, 0x35, 0x37, 0x97, 0xc2, 0x95, 0x95, 0xf4, 0x70, 0xd1, 0x22, 0x32, 0xea, 0xf5,
|
||||
0x74, 0xa8, 0xa5, 0x85, 0x61, 0x01, 0x86, 0xe8, 0x66, 0xcf, 0xa6, 0xcb, 0x0b, 0x16, 0x50, 0x6c,
|
||||
0xf1, 0x62, 0xda, 0x33, 0x6f, 0x1e, 0xe5, 0x64, 0x65, 0x51, 0x7f, 0x7f, 0x3f, 0xc3, 0x36, 0x4c,
|
||||
0x78, 0x3a, 0x26, 0x6a, 0x24, 0xd0, 0x18, 0x64, 0xd5, 0x80, 0x6e, 0xd5, 0x2c, 0x5b, 0x46, 0x95,
|
||||
0x19, 0x19, 0x0a, 0xe4, 0x07, 0x1c, 0xc5, 0xca, 0xca, 0xa8, 0x07, 0x29, 0xe4, 0xc8, 0xd6, 0xdb,
|
||||
0xed, 0xa4, 0x07, 0xe4, 0x06, 0xa2, 0x8d, 0x96, 0x94, 0x28, 0xe7, 0xa2, 0xb8, 0x66, 0xa5, 0xc1,
|
||||
0x40, 0x65, 0x58, 0xc3, 0x1e, 0xc9, 0x51, 0xf9, 0x24, 0xd8, 0x39, 0x0d, 0x68, 0x9b, 0xcf, 0xe7,
|
||||
0xfb, 0x65, 0x98, 0x33, 0x87, 0x5a, 0xf2, 0xf2, 0x26, 0x1c, 0x15, 0x17, 0x53, 0xa4, 0xa8, 0x88,
|
||||
0x7a, 0xf0, 0xe4, 0xe6, 0xf4, 0x74, 0xba, 0x8e, 0x48, 0x23, 0x16, 0x0b, 0x45, 0x17, 0x2e, 0x54,
|
||||
0x60, 0xed, 0x80, 0x72, 0x1a, 0xbb, 0xbb, 0xbb, 0x19, 0xd4, 0x28, 0x83, 0x6a, 0x25, 0xd0, 0xa8,
|
||||
0x70, 0x0b, 0x8b, 0x06, 0xb6, 0xbb, 0xaf, 0xaf, 0x6f, 0xdc, 0x98, 0x99, 0x49, 0xfb, 0xd9, 0x29,
|
||||
0x20, 0x11, 0x44, 0x34, 0x0c, 0x87, 0xc3, 0x80, 0x2b, 0x42, 0xda, 0x22, 0x85, 0x85, 0xe4, 0x41,
|
||||
0x33, 0xa4, 0x23, 0xd2, 0x49, 0x48, 0x73, 0xbc, 0xee, 0x7b, 0x2a, 0xc1, 0xda, 0xe3, 0xd4, 0x6a,
|
||||
0xb7, 0x1a, 0x59, 0x73, 0x76, 0x36, 0x0d, 0xa3, 0x66, 0x61, 0x38, 0x0d, 0xe3, 0x38, 0x0c, 0x38,
|
||||
0x43, 0xdd, 0x38, 0xe6, 0x48, 0xba, 0xba, 0xba, 0xa6, 0x81, 0xb0, 0xb9, 0x44, 0xbd, 0x04, 0x1a,
|
||||
0x86, 0x72, 0xe3, 0xcc, 0x89, 0xaf, 0xa9, 0xa9, 0x49, 0xa9, 0x49, 0x00, 0x69, 0x0b, 0xe7, 0xe4,
|
||||
0x50, 0x08, 0x5d, 0xc6, 0xa0, 0x6f, 0x00, 0x19, 0x00, 0xd9, 0xde, 0xd0, 0xc0, 0x90, 0x17, 0xda,
|
||||
0x39, 0x93, 0x6d, 0x16, 0x9c, 0xbf, 0xfe, 0x03, 0x73, 0x09, 0x87, 0x06, 0x72, 0x41, 0xed, 0xae,
|
||||
0x4b, 0x1c, 0x01, 0x47, 0xc4, 0x30, 0x44, 0xc5, 0xa9, 0xe3, 0x54, 0xf6, 0x02, 0x96, 0xf5, 0xb7,
|
||||
0x1b, 0x6f, 0x4f, 0x0f, 0x73, 0x89, 0x5d, 0x52, 0x54, 0x5f, 0xc5, 0x49, 0x91, 0xa9, 0x42, 0x3a,
|
||||
0x3b, 0x3a, 0x94, 0xb4, 0x70, 0x77, 0x71, 0x2d, 0x94, 0x1a, 0xa1, 0x2e, 0xaf, 0x00, 0xe3, 0x63,
|
||||
0xfe, 0x8f, 0x9b, 0xe4, 0x3e, 0x9a, 0x42, 0x33, 0x67, 0x71, 0x60, 0x17, 0x85, 0x1e, 0x80, 0x0f,
|
||||
0x12, 0x6c, 0x2f, 0x2e, 0x3c, 0x7c, 0xe6, 0xf4, 0x69, 0x05, 0x72, 0xd3, 0x6c, 0xa6, 0x98, 0xd5,
|
||||
0x4a, 0x51, 0xcc, 0x11, 0x37, 0x84, 0x1b, 0xa9, 0xe3, 0x80, 0x0f, 0xa2, 0x36, 0x0c, 0x89, 0x95,
|
||||
0x96, 0x52, 0xac, 0xa2, 0x82, 0x1e, 0xe0, 0x3c, 0xc3, 0x8e, 0xb6, 0xb5, 0x31, 0xec, 0x44, 0xfc,
|
||||
0xa8, 0xe0, 0x5c, 0x02, 0x7d, 0xfa, 0x39, 0xfe, 0xf3, 0xca, 0x86, 0xda, 0x5a, 0x2a, 0x45, 0xc7,
|
||||
0x7d, 0x2c, 0x2f, 0xa7, 0x18, 0x0b, 0x0e, 0xdd, 0x88, 0x84, 0xe1, 0x6d, 0x70, 0xa6, 0x34, 0x08,
|
||||
0x52, 0xc8, 0xc3, 0xfa, 0xc3, 0x66, 0xa3, 0x2f, 0xf8, 0xad, 0xc6, 0xc0, 0xd6, 0x2c, 0x5d, 0xca,
|
||||
0xa0, 0x9e, 0xe9, 0x40, 0x19, 0xd0, 0x67, 0x15, 0x66, 0xbf, 0x66, 0x3f, 0x10, 0x0a, 0x85, 0x3e,
|
||||
0xac, 0x5a, 0xb1, 0x82, 0x6c, 0x28, 0x7c, 0x00, 0x73, 0xe4, 0x41, 0xfa, 0xa4, 0x16, 0xbe, 0xa3,
|
||||
0xb6, 0xfe, 0x3e, 0xd4, 0x2a, 0xc8, 0xc3, 0x8a, 0x2d, 0xa8, 0x0a, 0x0f, 0x34, 0x34, 0x34, 0xf4,
|
||||
0x15, 0xe7, 0x6d, 0xd3, 0xef, 0xa0, 0xdc, 0x08, 0x7f, 0xa3, 0x7a, 0x1b, 0x1a, 0x0d, 0x59, 0x55,
|
||||
0x98, 0x19, 0x4f, 0x2f, 0x0d, 0x63, 0xb3, 0xb6, 0xf5, 0x79, 0x80, 0xab, 0xb1, 0x83, 0x04, 0x83,
|
||||
0x41, 0x86, 0x54, 0xcd, 0xfc, 0x3e, 0x70, 0x8a, 0x6c, 0x28, 0x24, 0x75, 0x60, 0x3d, 0x6e, 0x2a,
|
||||
0x66, 0xd8, 0xf6, 0xfa, 0x7a, 0xf2, 0x7a, 0xbd, 0x53, 0xe6, 0x44, 0x85, 0x6d, 0xaa, 0xab, 0x4b,
|
||||
0x10, 0xf2, 0xef, 0xeb, 0x43, 0x8d, 0xca, 0x8f, 0x3d, 0x71, 0xf9, 0x4e, 0xef, 0xce, 0x8d, 0x81,
|
||||
0xef, 0x81, 0x9b, 0xbd, 0xef, 0x7a, 0x1d, 0xbc, 0xd6, 0xea, 0x7d, 0xf8, 0xfd, 0x0e, 0x00, 0xce,
|
||||
0x42, 0x15, 0x89, 0xbf, 0xe5, 0xdc, 0xa2, 0x00, 0x80, 0x11, 0x09, 0x96, 0x88, 0x1e, 0x8b, 0xbb,
|
||||
0x22, 0x4d, 0x24, 0x6d, 0x4e, 0x71, 0x3e, 0x49, 0x10, 0xcb, 0x93, 0x3c, 0xe8, 0xb8, 0x28, 0xc1,
|
||||
0x8d, 0xcf, 0x13, 0xd0, 0x1b, 0x09, 0xf4, 0x0b, 0x35, 0xdd, 0x22, 0x52, 0x64, 0xbc, 0x7d, 0xdd,
|
||||
0x93, 0x60, 0x11, 0xa8, 0x2a, 0x35, 0x28, 0x8f, 0x30, 0xc1, 0x79, 0x40, 0x82, 0xbd, 0x84, 0x0c,
|
||||
0xa9, 0x81, 0x71, 0xf7, 0x4d, 0x7c, 0xe8, 0xa8, 0xb0, 0x8b, 0x22, 0x65, 0xe6, 0x12, 0x8d, 0x12,
|
||||
0x28, 0x26, 0x52, 0x6a, 0x4e, 0xd1, 0x91, 0xc8, 0x27, 0xdc, 0x7f, 0xb7, 0xdf, 0xec, 0x55, 0xe0,
|
||||
0x28, 0x5e, 0x44, 0x1a, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60,
|
||||
0x82,
|
||||
};
|
||||
|
||||
const BITMAP_OPAQUE delete_track_xpm[1] = {{ png, sizeof( png ), "delete_track_xpm" }};
|
||||
|
||||
//EOF
|
||||
@@ -1,63 +0,0 @@
|
||||
|
||||
/* Do not modify this file, it was automatically generated by the
|
||||
* PNG2cpp CMake script, using a *.png file as input.
|
||||
*/
|
||||
|
||||
#include <bitmaps_png/bitmaps_list.h>
|
||||
|
||||
static const unsigned char png[] = {
|
||||
0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52,
|
||||
0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1a, 0x08, 0x06, 0x00, 0x00, 0x00, 0xa9, 0x4a, 0x4c,
|
||||
0xce, 0x00, 0x00, 0x02, 0xd8, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0xed, 0x95, 0x4b, 0x48, 0x54,
|
||||
0x61, 0x14, 0xc7, 0xbf, 0x3b, 0x73, 0x9d, 0xb9, 0xef, 0x3b, 0x8a, 0x44, 0xa2, 0xe0, 0x66, 0x28,
|
||||
0x72, 0x11, 0x44, 0x14, 0xd8, 0x42, 0x2a, 0x23, 0x12, 0x1f, 0xb9, 0x68, 0xd7, 0x2e, 0x02, 0xc3,
|
||||
0x1e, 0x08, 0x2e, 0x4a, 0x2b, 0x88, 0x5e, 0x36, 0x88, 0x56, 0x1b, 0x45, 0x69, 0x51, 0x63, 0x42,
|
||||
0x05, 0x39, 0x6a, 0xe5, 0xa3, 0x07, 0x4c, 0xab, 0x20, 0xa7, 0xb4, 0x14, 0x1c, 0xa1, 0x0c, 0x33,
|
||||
0x47, 0xed, 0xe5, 0x4c, 0x92, 0x95, 0x0e, 0xf3, 0xef, 0xdc, 0xdb, 0x20, 0x04, 0xa6, 0x33, 0x8e,
|
||||
0xab, 0xf0, 0xc2, 0x61, 0xbe, 0xfb, 0xf1, 0xcd, 0xf9, 0xf1, 0xfd, 0xcf, 0xf9, 0x9f, 0xcb, 0x58,
|
||||
0xa2, 0x0f, 0xcf, 0xef, 0xe1, 0x44, 0x71, 0x8c, 0x56, 0xe9, 0x8b, 0x1f, 0x3c, 0xc3, 0x76, 0xc5,
|
||||
0x1d, 0x67, 0xd9, 0x96, 0xe8, 0xbf, 0xb3, 0x38, 0x87, 0x23, 0x28, 0x54, 0x9c, 0x0c, 0x73, 0xba,
|
||||
0x3e, 0x44, 0xef, 0xd2, 0x62, 0x20, 0x2c, 0x2b, 0xf6, 0xb3, 0xdd, 0x9c, 0xa6, 0x05, 0xa4, 0xbb,
|
||||
0x9e, 0x88, 0xf6, 0x79, 0x0a, 0xb6, 0x63, 0x65, 0x33, 0x5c, 0x72, 0x72, 0x17, 0x65, 0xe4, 0x16,
|
||||
0xe4, 0xd4, 0x75, 0xd5, 0x21, 0x9e, 0x28, 0xbb, 0x53, 0x06, 0x76, 0x9a, 0x81, 0x5b, 0xa3, 0xf9,
|
||||
0x85, 0x0b, 0x55, 0xbf, 0xb4, 0xf1, 0x8f, 0x50, 0xc7, 0x27, 0xa1, 0x05, 0x26, 0xc1, 0xe7, 0xe5,
|
||||
0x4d, 0x33, 0x87, 0xa3, 0x66, 0x41, 0x90, 0xcf, 0xe7, 0x43, 0x3c, 0x51, 0xdf, 0x51, 0x0f, 0xb6,
|
||||
0x89, 0x07, 0x13, 0x84, 0x30, 0xbf, 0x33, 0x37, 0x28, 0x3f, 0x7c, 0x0c, 0xf5, 0xfd, 0x07, 0x08,
|
||||
0x57, 0xae, 0xce, 0x5a, 0xb3, 0xb3, 0x83, 0x94, 0x12, 0x14, 0x07, 0x12, 0x02, 0x79, 0xbd, 0x5e,
|
||||
0x38, 0xb7, 0x6e, 0x04, 0x89, 0x03, 0xb6, 0x99, 0x95, 0x33, 0x59, 0xee, 0x24, 0x00, 0x94, 0x37,
|
||||
0xc3, 0xe0, 0x0b, 0x8b, 0xa6, 0x28, 0xdd, 0x29, 0x8a, 0x72, 0x52, 0x0f, 0x74, 0xb3, 0xda, 0xbf,
|
||||
0x64, 0x8c, 0x15, 0xd2, 0xda, 0xda, 0x8a, 0xb5, 0x4e, 0x27, 0xa4, 0xca, 0x4a, 0x30, 0x5d, 0x02,
|
||||
0xcb, 0xa2, 0x4a, 0x89, 0xe2, 0x13, 0x7b, 0x4d, 0x0d, 0xe4, 0x41, 0x3f, 0xac, 0x05, 0x05, 0x06,
|
||||
0xe8, 0x92, 0x51, 0x75, 0x6b, 0xf6, 0xb6, 0x29, 0xba, 0xed, 0x74, 0xb4, 0x66, 0x52, 0xcc, 0xa0,
|
||||
0xc6, 0xc6, 0x46, 0xe8, 0xe9, 0x19, 0x90, 0xae, 0xbb, 0x4d, 0x99, 0x92, 0x0e, 0x97, 0x80, 0x2f,
|
||||
0xde, 0xfb, 0x9d, 0x2f, 0x2e, 0x9e, 0x16, 0xda, 0xda, 0x20, 0xbd, 0x7a, 0x0d, 0x7b, 0xed, 0xe5,
|
||||
0x30, 0x5f, 0x54, 0x14, 0xa2, 0xbd, 0x90, 0x21, 0xa3, 0x3a, 0x32, 0x0a, 0xdb, 0x91, 0xa3, 0x33,
|
||||
0x9c, 0xa6, 0xfb, 0xcd, 0xd6, 0x5f, 0x0a, 0xd2, 0xd2, 0xd2, 0x02, 0xde, 0x6e, 0x87, 0x7c, 0xff,
|
||||
0x01, 0xd4, 0xb1, 0x09, 0x18, 0x09, 0x0c, 0xa9, 0x64, 0xff, 0x10, 0xa4, 0xfe, 0x01, 0x48, 0xbd,
|
||||
0xbd, 0x10, 0xe9, 0x9c, 0xd4, 0xdb, 0x07, 0x69, 0x60, 0xc0, 0xdc, 0x57, 0xde, 0x0e, 0x9b, 0xe7,
|
||||
0xd4, 0xc0, 0x04, 0xec, 0xc7, 0x4f, 0x84, 0x4d, 0x9f, 0x2d, 0x05, 0xea, 0xe9, 0xe9, 0xc1, 0xc1,
|
||||
0xd2, 0x52, 0xa8, 0x1b, 0xb2, 0x20, 0x3f, 0xf7, 0x99, 0x09, 0x44, 0xf7, 0x4d, 0xd8, 0xa9, 0x36,
|
||||
0x86, 0x6c, 0xa2, 0xf7, 0x29, 0xa4, 0x17, 0x2f, 0x21, 0x78, 0x3c, 0xf4, 0x5e, 0x6b, 0xee, 0x4b,
|
||||
0x1d, 0x9d, 0x7f, 0xce, 0xdd, 0xba, 0x1d, 0x21, 0xf9, 0x82, 0x86, 0xa9, 0x63, 0xae, 0x51, 0x95,
|
||||
0xcb, 0x05, 0x25, 0x83, 0xe4, 0xf3, 0xb4, 0x81, 0xd3, 0x65, 0xb0, 0xf5, 0xa9, 0xed, 0x9c, 0xa2,
|
||||
0x0c, 0xda, 0xab, 0xab, 0xe9, 0x66, 0xfd, 0xb0, 0xe6, 0xe7, 0x87, 0x98, 0xaa, 0x76, 0x92, 0xb7,
|
||||
0xda, 0xad, 0xb9, 0xb9, 0x41, 0xe1, 0xfc, 0xc5, 0x59, 0x4e, 0x55, 0x03, 0x86, 0xa9, 0xe3, 0xee,
|
||||
0x3a, 0xb7, 0x9b, 0x6a, 0x94, 0x9e, 0x06, 0x96, 0x64, 0x35, 0x4c, 0xbb, 0x9d, 0x3a, 0xeb, 0x9a,
|
||||
0x71, 0x0b, 0x43, 0xae, 0x68, 0x33, 0x14, 0x52, 0xec, 0xa0, 0xd6, 0x9f, 0xa3, 0x89, 0xd1, 0x47,
|
||||
0xeb, 0xd4, 0x65, 0xfb, 0xc8, 0xd5, 0xec, 0x02, 0x4b, 0x23, 0x1f, 0x59, 0x2c, 0x11, 0xea, 0xba,
|
||||
0x9f, 0xa2, 0xbb, 0x09, 0xca, 0xf0, 0x3b, 0x24, 0x95, 0x1c, 0x9a, 0x21, 0xc0, 0x0f, 0xd3, 0x47,
|
||||
0x36, 0x5b, 0x33, 0xfd, 0xda, 0x12, 0x32, 0x6c, 0x43, 0x77, 0x03, 0xc8, 0x29, 0xe0, 0x1c, 0xda,
|
||||
0x57, 0xa9, 0xfd, 0x1e, 0xd4, 0xd1, 0xb1, 0xf9, 0xb0, 0x55, 0x54, 0xce, 0x52, 0x4d, 0x9e, 0x19,
|
||||
0xa3, 0x36, 0xe1, 0xc9, 0x60, 0x82, 0x8c, 0x59, 0x97, 0xc3, 0x4a, 0xb8, 0x94, 0x94, 0x90, 0x42,
|
||||
0x8d, 0xa0, 0x4d, 0x7c, 0x82, 0x74, 0xa3, 0x29, 0x42, 0xf5, 0x19, 0xa1, 0x94, 0xfa, 0x8a, 0x8c,
|
||||
0xa0, 0x79, 0x90, 0x51, 0x23, 0x9b, 0x6d, 0x9f, 0x25, 0x33, 0xf3, 0x9b, 0xd2, 0xfd, 0x88, 0x1a,
|
||||
0x44, 0xff, 0x42, 0xe9, 0x9c, 0xff, 0x1c, 0xde, 0x09, 0x81, 0xe8, 0xb1, 0x68, 0xda, 0x39, 0x6a,
|
||||
0xdf, 0x39, 0x5a, 0xe6, 0x2c, 0xfa, 0x39, 0x4a, 0x14, 0x14, 0x9d, 0x67, 0xeb, 0x96, 0xfc, 0x40,
|
||||
0xae, 0x00, 0x28, 0xb6, 0x67, 0x15, 0xb4, 0x0a, 0xfa, 0x7f, 0x41, 0xbf, 0x01, 0xba, 0x28, 0xea,
|
||||
0x15, 0x41, 0x75, 0x1d, 0x9d, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60,
|
||||
0x82,
|
||||
};
|
||||
|
||||
const BITMAP_OPAQUE drag_outline_segment_xpm[1] = {{ png, sizeof( png ), "drag_outline_segment_xpm" }};
|
||||
|
||||
//EOF
|
||||
@@ -1,77 +0,0 @@
|
||||
|
||||
/* Do not modify this file, it was automatically generated by the
|
||||
* PNG2cpp CMake script, using a *.png file as input.
|
||||
*/
|
||||
|
||||
#include <bitmaps_png/bitmaps_list.h>
|
||||
|
||||
static const unsigned char png[] = {
|
||||
0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52,
|
||||
0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1a, 0x08, 0x06, 0x00, 0x00, 0x00, 0xa9, 0x4a, 0x4c,
|
||||
0xce, 0x00, 0x00, 0x03, 0xc0, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0xb5, 0x55, 0x5d, 0x68, 0x14,
|
||||
0x57, 0x14, 0xbe, 0x33, 0x9b, 0x99, 0x9d, 0x9f, 0x3b, 0x13, 0x49, 0x4a, 0xfb, 0x92, 0x87, 0x48,
|
||||
0x4d, 0x1b, 0x1f, 0x8a, 0x9a, 0x3e, 0x36, 0x0f, 0x05, 0xa1, 0xd0, 0x3f, 0x68, 0x05, 0xa9, 0x45,
|
||||
0x68, 0x36, 0x71, 0xb7, 0x56, 0xd1, 0x56, 0x9b, 0xa2, 0x20, 0x6b, 0x08, 0xf8, 0xae, 0x96, 0x8a,
|
||||
0xad, 0x35, 0xd1, 0x8d, 0x01, 0x4d, 0x91, 0x58, 0xc5, 0x1f, 0xf0, 0xa5, 0x15, 0xf4, 0xc1, 0x1a,
|
||||
0x62, 0xb6, 0xa9, 0x46, 0x13, 0x7f, 0x36, 0x9b, 0x6c, 0x95, 0x50, 0x5a, 0x85, 0x8c, 0xae, 0x9b,
|
||||
0x5d, 0x73, 0xfa, 0xdd, 0xeb, 0x28, 0xee, 0x66, 0x93, 0x4d, 0xfc, 0xb9, 0xf0, 0x71, 0xd8, 0x73,
|
||||
0xef, 0x9c, 0xef, 0x9e, 0x73, 0xbe, 0x7b, 0x96, 0xb1, 0xe7, 0x5b, 0x55, 0xcc, 0x30, 0x52, 0xb0,
|
||||
0x1f, 0xb2, 0x97, 0xb8, 0x6c, 0xc5, 0x71, 0x06, 0xf5, 0x50, 0x53, 0x4e, 0xb1, 0xac, 0x71, 0xfc,
|
||||
0x7e, 0xeb, 0x65, 0x90, 0xa8, 0x8a, 0xeb, 0x9e, 0xd6, 0x3f, 0x5f, 0x99, 0x76, 0xff, 0xbb, 0x4b,
|
||||
0x66, 0xfb, 0xfe, 0x49, 0xc5, 0xb6, 0xc7, 0xe0, 0x7f, 0xed, 0x05, 0xe7, 0x62, 0x6f, 0x0f, 0xd4,
|
||||
0xbd, 0xed, 0xb9, 0xa9, 0x5b, 0xe4, 0x8e, 0xfd, 0x23, 0x11, 0x6c, 0xfe, 0x6e, 0x02, 0x19, 0xfe,
|
||||
0x89, 0x5d, 0xe3, 0xc5, 0x90, 0x04, 0x02, 0x0d, 0x2c, 0x18, 0xcc, 0x99, 0x3f, 0xfe, 0x44, 0xbc,
|
||||
0x2f, 0x4e, 0x0e, 0xc8, 0x9c, 0x9b, 0xc3, 0x64, 0x75, 0xfd, 0x42, 0xea, 0x82, 0x05, 0x59, 0x90,
|
||||
0x75, 0x3f, 0x3f, 0x49, 0x30, 0xb8, 0x8e, 0x29, 0xca, 0x84, 0x52, 0x5e, 0xfe, 0x07, 0x44, 0x90,
|
||||
0xd4, 0xbf, 0x5a, 0x93, 0xe3, 0x89, 0x61, 0x32, 0x0f, 0x1e, 0x22, 0xa6, 0xeb, 0x9e, 0xf4, 0x97,
|
||||
0x95, 0xdd, 0x61, 0x9c, 0x1f, 0x16, 0xa7, 0x9f, 0x29, 0x0f, 0x7c, 0xbc, 0x47, 0xad, 0xaa, 0xf2,
|
||||
0x90, 0x51, 0xd6, 0xf7, 0x6d, 0xd2, 0x23, 0x5f, 0x66, 0xed, 0xa1, 0x6b, 0x64, 0x74, 0x74, 0x90,
|
||||
0x52, 0x51, 0x71, 0x41, 0x38, 0x61, 0xcf, 0xaa, 0xf3, 0xe7, 0x67, 0xfd, 0x32, 0xce, 0xa9, 0x67,
|
||||
0xe5, 0xf8, 0xe8, 0x6c, 0xe0, 0x9d, 0x7a, 0x8f, 0xff, 0x75, 0x89, 0x98, 0xaa, 0x4e, 0x2a, 0x95,
|
||||
0xaf, 0xf4, 0x32, 0xd3, 0x4c, 0x69, 0x91, 0x48, 0xce, 0xbe, 0x3c, 0x40, 0x46, 0x2c, 0x46, 0xc8,
|
||||
0xf6, 0x9e, 0x52, 0x59, 0xd9, 0x0b, 0x3b, 0x6e, 0x76, 0x74, 0x92, 0xbe, 0xf1, 0xdb, 0x8c, 0x2f,
|
||||
0x90, 0x59, 0xa9, 0xf1, 0x75, 0x1c, 0x4e, 0xea, 0x8d, 0xab, 0x1e, 0x38, 0x23, 0x29, 0x72, 0x92,
|
||||
0xa3, 0x64, 0x76, 0x1f, 0x21, 0x63, 0x7f, 0x8c, 0x8c, 0xb6, 0x76, 0x32, 0xcf, 0x9c, 0x21, 0x2b,
|
||||
0x1e, 0x27, 0xab, 0xb7, 0x97, 0x82, 0x6d, 0x6d, 0x64, 0xec, 0xdb, 0x47, 0x66, 0xc7, 0x01, 0xe2,
|
||||
0x43, 0xd7, 0xc9, 0x19, 0xfd, 0x9b, 0xcc, 0x3d, 0x7b, 0x27, 0x21, 0x7d, 0x51, 0x85, 0x8f, 0x4a,
|
||||
0xf5, 0x64, 0xaf, 0x5a, 0xf3, 0x46, 0xc6, 0x19, 0x1e, 0x91, 0x4d, 0xe7, 0xb0, 0xfc, 0xfa, 0x0d,
|
||||
0xb2, 0xaf, 0x0e, 0x92, 0x85, 0xec, 0x2c, 0x88, 0xc1, 0xec, 0xe9, 0x01, 0xd1, 0x45, 0xb2, 0xfa,
|
||||
0xfb, 0xc9, 0x1e, 0xb8, 0x42, 0xa2, 0x94, 0x1c, 0xe2, 0x70, 0x46, 0x71, 0xb1, 0xdb, 0x63, 0xa4,
|
||||
0x37, 0x84, 0x72, 0xe8, 0xe7, 0x68, 0xa9, 0x8c, 0x74, 0xc6, 0xdd, 0x2e, 0xf5, 0xcd, 0x5a, 0x8f,
|
||||
0x5f, 0xec, 0x23, 0x9e, 0x1c, 0x21, 0x7d, 0xc3, 0xc6, 0x09, 0xad, 0xb1, 0x29, 0xad, 0x35, 0x84,
|
||||
0xd2, 0x46, 0x67, 0xe7, 0xa4, 0x05, 0xbf, 0xf9, 0xdb, 0xef, 0x54, 0x16, 0x0a, 0x65, 0xb4, 0xc6,
|
||||
0xc6, 0xb4, 0x16, 0x0e, 0x67, 0xec, 0x0b, 0x3d, 0xe4, 0x24, 0x92, 0xa4, 0x7d, 0xb6, 0x22, 0xad,
|
||||
0x70, 0x67, 0x50, 0x4e, 0x90, 0x59, 0x2d, 0xc3, 0xd8, 0x82, 0xfa, 0xdf, 0xb3, 0x8e, 0x1d, 0x17,
|
||||
0x3d, 0x7a, 0x08, 0xcf, 0x66, 0xe0, 0x94, 0xd6, 0xd4, 0x94, 0x15, 0x99, 0x89, 0x32, 0xfa, 0xb7,
|
||||
0xde, 0x0c, 0x9b, 0x30, 0x76, 0xec, 0xa4, 0xc0, 0x92, 0x3a, 0x4f, 0xe1, 0xfc, 0xb4, 0x78, 0x75,
|
||||
0x73, 0x7d, 0x3f, 0x9f, 0x40, 0x00, 0x79, 0xaa, 0xd3, 0xc2, 0x91, 0xac, 0x28, 0xa3, 0x11, 0xcb,
|
||||
0x57, 0x1d, 0xa4, 0x9e, 0x83, 0x4a, 0x77, 0x88, 0x09, 0x32, 0x7d, 0xc0, 0xad, 0x6c, 0x09, 0xb0,
|
||||
0x0d, 0x38, 0x02, 0x9c, 0x60, 0x2d, 0x6c, 0x37, 0xf0, 0x31, 0x6b, 0x95, 0x1f, 0x2d, 0x06, 0xd1,
|
||||
0x2d, 0x58, 0x12, 0xd0, 0x9b, 0x9b, 0x73, 0xfc, 0x46, 0x82, 0xcc, 0x5f, 0x8f, 0x12, 0xde, 0x97,
|
||||
0xf4, 0xc1, 0xe6, 0x98, 0xa6, 0x85, 0xa6, 0x27, 0x68, 0x65, 0xf3, 0x10, 0xf8, 0x30, 0x40, 0xd3,
|
||||
0xe0, 0x12, 0xb0, 0x48, 0x92, 0x21, 0x33, 0xeb, 0xe4, 0x29, 0xa9, 0x2c, 0xa9, 0x46, 0x80, 0x5f,
|
||||
0x19, 0x24, 0xb5, 0xba, 0xda, 0x83, 0x80, 0xbe, 0x9e, 0x89, 0xc4, 0x45, 0x90, 0xf8, 0x0c, 0x24,
|
||||
0x8f, 0x31, 0x8e, 0xb3, 0x75, 0xa2, 0x8c, 0xa2, 0x67, 0x4e, 0xbc, 0x5f, 0x2a, 0xcb, 0x4d, 0xdd,
|
||||
0xa6, 0x40, 0x7d, 0xbd, 0x87, 0x72, 0xfd, 0x3c, 0x73, 0xfd, 0x45, 0x79, 0xa6, 0x06, 0x4d, 0xf8,
|
||||
0x59, 0x64, 0x0b, 0xfc, 0x57, 0x41, 0xa6, 0x0b, 0x81, 0xa8, 0xb5, 0xb5, 0x9e, 0x20, 0xd1, 0x57,
|
||||
0x85, 0x33, 0x98, 0xe6, 0xe7, 0xe4, 0x04, 0x29, 0x51, 0xb2, 0xcc, 0x53, 0x81, 0x32, 0x20, 0xfe,
|
||||
0xf4, 0xc9, 0x7e, 0x94, 0x2d, 0x84, 0xef, 0x5a, 0x1e, 0x59, 0x94, 0x2d, 0x93, 0x7b, 0x2e, 0xa4,
|
||||
0x5f, 0x53, 0x23, 0x26, 0x40, 0x52, 0x4c, 0x90, 0x99, 0xb3, 0x89, 0xb2, 0x0f, 0xf2, 0x82, 0xb4,
|
||||
0xb0, 0x9d, 0x45, 0x32, 0x7e, 0xbf, 0x20, 0xab, 0xef, 0x9f, 0xbc, 0x33, 0x5d, 0x6f, 0x17, 0x13,
|
||||
0xa4, 0xb4, 0x6c, 0x5b, 0xd8, 0xca, 0x82, 0xdb, 0xae, 0x9e, 0x72, 0x66, 0x1b, 0x02, 0xe5, 0x5f,
|
||||
0xa6, 0x6b, 0xee, 0x73, 0x39, 0xca, 0xde, 0x2d, 0xb8, 0x6d, 0x77, 0x11, 0xc9, 0xff, 0x50, 0x70,
|
||||
0xe6, 0x81, 0xcc, 0x3c, 0x3a, 0x9b, 0x4c, 0x24, 0x47, 0x0d, 0x93, 0x8d, 0xdd, 0xca, 0xfe, 0x9d,
|
||||
0x52, 0x9a, 0x56, 0x56, 0x0d, 0x54, 0x20, 0x60, 0xa4, 0x88, 0x20, 0x1e, 0xe3, 0x21, 0x70, 0x0c,
|
||||
0x67, 0x96, 0x16, 0xe9, 0xfd, 0xab, 0x20, 0x58, 0x8f, 0xfd, 0xf3, 0xf2, 0xac, 0xcf, 0xf8, 0xcd,
|
||||
0x2c, 0xa4, 0x5d, 0x0a, 0xfd, 0x40, 0xd8, 0x6f, 0xc5, 0xc9, 0x29, 0x97, 0xf3, 0x97, 0x02, 0xb2,
|
||||
0x58, 0xc9, 0x60, 0x2d, 0xec, 0x32, 0xec, 0x5a, 0x60, 0x68, 0xce, 0x17, 0x79, 0x6a, 0x29, 0x7e,
|
||||
0x90, 0xb1, 0x22, 0x07, 0x85, 0xe4, 0x77, 0xb1, 0x4d, 0xcc, 0xf1, 0xcb, 0xa2, 0xe2, 0xf7, 0x72,
|
||||
0xf8, 0x07, 0x9e, 0x85, 0xe8, 0xd1, 0x5a, 0x8f, 0xff, 0xfa, 0x28, 0x7b, 0x4f, 0x96, 0x33, 0xca,
|
||||
0x9a, 0x65, 0x40, 0xd1, 0xab, 0xe2, 0x6f, 0xf0, 0x11, 0x61, 0x94, 0xf5, 0x4d, 0x43, 0x70, 0x1f,
|
||||
0x38, 0x0a, 0x7c, 0xf1, 0x3f, 0xf6, 0x1e, 0x25, 0xb2, 0x39, 0xbc, 0xa4, 0x37, 0x00, 0x00, 0x00,
|
||||
0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82,
|
||||
};
|
||||
|
||||
const BITMAP_OPAQUE drag_pad_xpm[1] = {{ png, sizeof( png ), "drag_pad_xpm" }};
|
||||
|
||||
//EOF
|
||||
@@ -1,57 +0,0 @@
|
||||
|
||||
/* Do not modify this file, it was automatically generated by the
|
||||
* PNG2cpp CMake script, using a *.png file as input.
|
||||
*/
|
||||
|
||||
#include <bitmaps_png/bitmaps_list.h>
|
||||
|
||||
static const unsigned char png[] = {
|
||||
0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52,
|
||||
0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1a, 0x08, 0x06, 0x00, 0x00, 0x00, 0xa9, 0x4a, 0x4c,
|
||||
0xce, 0x00, 0x00, 0x02, 0x80, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0x63, 0x60, 0x18, 0x08, 0xf0,
|
||||
0x9f, 0x81, 0x41, 0x03, 0x88, 0xe7, 0x01, 0xf1, 0x2a, 0x24, 0x3c, 0x03, 0x88, 0xa5, 0x81, 0xb8,
|
||||
0x1c, 0x4d, 0x1c, 0x84, 0xd3, 0x81, 0x58, 0x12, 0x88, 0x27, 0x00, 0xf1, 0x4c, 0x24, 0x3c, 0x05,
|
||||
0x88, 0xd5, 0xf0, 0x59, 0xb4, 0xba, 0xda, 0xc5, 0xfa, 0x7f, 0x52, 0xb0, 0x1b, 0x1c, 0xf7, 0xd8,
|
||||
0x9a, 0xfc, 0x07, 0x8a, 0xef, 0x3c, 0x2f, 0x21, 0xf1, 0x3f, 0x2e, 0xc4, 0xfb, 0x7f, 0x2c, 0x14,
|
||||
0xc7, 0x07, 0x79, 0xfd, 0xbf, 0x2d, 0x28, 0xf8, 0x0f, 0x28, 0xb7, 0xb0, 0xd7, 0xc6, 0xf8, 0x7f,
|
||||
0x72, 0x90, 0x2b, 0x1c, 0xd7, 0x02, 0xcd, 0x00, 0x99, 0x85, 0xcf, 0xa2, 0xad, 0xd1, 0xa1, 0x3e,
|
||||
0xff, 0xd9, 0x0e, 0xa9, 0x82, 0x31, 0xcf, 0x0e, 0x8d, 0xff, 0xa9, 0x81, 0xae, 0x20, 0x4d, 0x67,
|
||||
0xf7, 0x28, 0x2a, 0xfe, 0xd7, 0xef, 0xb1, 0xfc, 0xcf, 0x70, 0x52, 0x11, 0x8c, 0xed, 0x2b, 0x6d,
|
||||
0xfe, 0x9f, 0x91, 0x94, 0x04, 0xc9, 0x6d, 0x05, 0xa9, 0x01, 0xa9, 0x85, 0xe9, 0x03, 0x99, 0x01,
|
||||
0x14, 0xdf, 0x86, 0xd7, 0xa2, 0xa8, 0x50, 0x6f, 0xb8, 0x61, 0xec, 0xfb, 0x55, 0x89, 0xb6, 0x08,
|
||||
0xa4, 0x16, 0x26, 0x07, 0x32, 0x03, 0xab, 0x45, 0x40, 0xc1, 0xe6, 0xcf, 0x6c, 0x6c, 0x77, 0xbf,
|
||||
0xb0, 0xb1, 0x7d, 0x8b, 0x44, 0xb3, 0x08, 0x14, 0x14, 0x40, 0xf1, 0x1f, 0x5b, 0x55, 0x55, 0x51,
|
||||
0x2c, 0xb2, 0xab, 0xb2, 0xf9, 0x7f, 0x44, 0x56, 0x16, 0x24, 0xf7, 0x0d, 0xa4, 0x06, 0xd9, 0x22,
|
||||
0x90, 0x19, 0x20, 0x71, 0x90, 0x99, 0x20, 0xb3, 0x61, 0x96, 0x30, 0x3e, 0xe4, 0xe7, 0xff, 0x1b,
|
||||
0x1d, 0x1a, 0xfa, 0x3f, 0x33, 0x3a, 0xfa, 0x7f, 0x40, 0x74, 0x20, 0x8a, 0x45, 0x01, 0x71, 0x81,
|
||||
0x60, 0xf1, 0xc4, 0x88, 0x88, 0xff, 0x3a, 0x7d, 0xd6, 0x70, 0x39, 0xb3, 0x3a, 0xc7, 0xff, 0xc9,
|
||||
0x91, 0x91, 0x10, 0x3d, 0x40, 0x35, 0xc8, 0x16, 0x81, 0xcc, 0x00, 0x89, 0x83, 0xcc, 0x04, 0x99,
|
||||
0x0d, 0xb2, 0x03, 0x6c, 0xd1, 0x6d, 0x21, 0xa1, 0xff, 0x8d, 0xf9, 0xf9, 0xff, 0x9f, 0x3d, 0x7b,
|
||||
0xf6, 0x3f, 0x32, 0x25, 0xfa, 0x3f, 0xf7, 0x4e, 0x0d, 0x30, 0x16, 0xdc, 0xa0, 0xfd, 0x3f, 0xa9,
|
||||
0x30, 0x05, 0x2c, 0xbe, 0x76, 0xed, 0xda, 0xff, 0x46, 0x1d, 0x8e, 0x70, 0x39, 0xc7, 0x06, 0xef,
|
||||
0xff, 0xbb, 0x76, 0xed, 0x02, 0xcb, 0x81, 0xd4, 0x80, 0xd4, 0xc2, 0xe4, 0x40, 0x66, 0x80, 0xc4,
|
||||
0x41, 0x66, 0x82, 0xcc, 0xc6, 0x6a, 0x51, 0x43, 0x77, 0xd3, 0xff, 0xcc, 0xca, 0x1c, 0x38, 0xee,
|
||||
0x9d, 0xde, 0x0f, 0x16, 0x3f, 0x7a, 0xf4, 0xe8, 0xff, 0xec, 0xca, 0x3c, 0x20, 0xce, 0x05, 0xe3,
|
||||
0xdc, 0xaa, 0x82, 0xff, 0xe7, 0xce, 0x9d, 0x03, 0xcb, 0xf5, 0x4c, 0xeb, 0xfb, 0x9f, 0x51, 0x99,
|
||||
0x0d, 0xc7, 0xf5, 0x5d, 0x8d, 0x84, 0x2d, 0xa2, 0x26, 0xc6, 0xb0, 0xe8, 0xae, 0xa0, 0xe0, 0xdf,
|
||||
0xac, 0xd8, 0xd8, 0xff, 0xa7, 0x4f, 0x9f, 0xa6, 0x9d, 0x45, 0x20, 0xf0, 0x97, 0x81, 0x61, 0xd1,
|
||||
0x09, 0x69, 0xe9, 0xff, 0xe9, 0xc0, 0xc8, 0xbd, 0x75, 0xeb, 0x16, 0xed, 0x2c, 0x82, 0xa6, 0xbe,
|
||||
0xfa, 0x49, 0xce, 0xce, 0xff, 0xf7, 0xec, 0xd9, 0x43, 0x3b, 0x8b, 0x80, 0x8c, 0xa9, 0x17, 0xc5,
|
||||
0xc5, 0xff, 0xa6, 0x87, 0x87, 0xff, 0xbf, 0x71, 0xe3, 0x06, 0xed, 0xe2, 0xe8, 0x9e, 0x80, 0xc0,
|
||||
0xdf, 0x74, 0x60, 0xba, 0x3f, 0x76, 0xec, 0x18, 0x6d, 0x13, 0x03, 0xdd, 0x52, 0xdd, 0x80, 0x58,
|
||||
0x84, 0x2b, 0xc3, 0x1e, 0x3a, 0x74, 0x08, 0xcc, 0x87, 0x65, 0x4a, 0x50, 0xa6, 0x3d, 0x73, 0xe6,
|
||||
0x0c, 0x58, 0x6e, 0xc2, 0xcc, 0x89, 0xf0, 0x8c, 0x0c, 0xc2, 0xcd, 0xbd, 0x2d, 0x84, 0x2d, 0xa2,
|
||||
0x69, 0x11, 0xf4, 0x80, 0x86, 0x85, 0xea, 0x03, 0x58, 0xa1, 0x0a, 0x4d, 0xde, 0xad, 0x9f, 0x68,
|
||||
0x50, 0x4d, 0x7c, 0x82, 0x54, 0x13, 0xad, 0xf4, 0xaf, 0xf8, 0x88, 0xad, 0xca, 0x0d, 0x3a, 0xac,
|
||||
0xe0, 0x72, 0x8e, 0xe5, 0x76, 0x14, 0x59, 0xb4, 0xba, 0xc6, 0xd5, 0x06, 0xa5, 0x71, 0xd2, 0x0d,
|
||||
0x69, 0x9c, 0x6c, 0xbf, 0x28, 0x26, 0xf6, 0x3f, 0x25, 0x10, 0xd1, 0x00, 0x49, 0x0b, 0x70, 0xfd,
|
||||
0x0f, 0xcc, 0xe8, 0xa0, 0xc6, 0xc9, 0xa2, 0x76, 0x7b, 0x73, 0x78, 0xa3, 0x05, 0x84, 0xcb, 0xdc,
|
||||
0xed, 0x41, 0x7a, 0xd6, 0x12, 0x6a, 0x6e, 0xcd, 0x47, 0x6b, 0x52, 0xcd, 0x84, 0x36, 0xb7, 0x72,
|
||||
0xd0, 0x9a, 0x54, 0x20, 0x1c, 0x07, 0xc4, 0x72, 0x40, 0x3c, 0x17, 0x4d, 0xcf, 0x22, 0x20, 0xd6,
|
||||
0x19, 0x90, 0x36, 0x23, 0x00, 0xe7, 0x5b, 0x70, 0xd7, 0x22, 0x33, 0xae, 0x62, 0x00, 0x00, 0x00,
|
||||
0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82,
|
||||
};
|
||||
|
||||
const BITMAP_OPAQUE edges_sketch_xpm[1] = {{ png, sizeof( png ), "edges_sketch_xpm" }};
|
||||
|
||||
//EOF
|
||||
@@ -1,59 +0,0 @@
|
||||
|
||||
/* Do not modify this file, it was automatically generated by the
|
||||
* PNG2cpp CMake script, using a *.png file as input.
|
||||
*/
|
||||
|
||||
#include <bitmaps_png/bitmaps_list.h>
|
||||
|
||||
static const unsigned char png[] = {
|
||||
0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52,
|
||||
0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1a, 0x08, 0x06, 0x00, 0x00, 0x00, 0xa9, 0x4a, 0x4c,
|
||||
0xce, 0x00, 0x00, 0x02, 0x9a, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0xc5, 0xd6, 0xcf, 0x6b, 0x5c,
|
||||
0x55, 0x18, 0xc6, 0xf1, 0xcf, 0x9d, 0x26, 0x6a, 0xc6, 0x29, 0xa5, 0x16, 0x06, 0xcb, 0xa4, 0xa9,
|
||||
0x6d, 0x33, 0x74, 0x21, 0x58, 0xa8, 0x50, 0x82, 0xb1, 0xd8, 0x0c, 0x09, 0x94, 0x41, 0x49, 0x67,
|
||||
0x8c, 0xd2, 0x4c, 0x7e, 0x9c, 0x68, 0x18, 0xcc, 0x1d, 0xc1, 0x48, 0x5b, 0xd0, 0x4d, 0x41, 0x50,
|
||||
0xda, 0xa2, 0x5d, 0xb8, 0x6c, 0xa4, 0x58, 0x41, 0x28, 0x2e, 0xa4, 0x08, 0x45, 0x50, 0x8b, 0xff,
|
||||
0x80, 0x88, 0xa0, 0x1b, 0x41, 0xfc, 0xd1, 0x85, 0x48, 0x15, 0x8b, 0x74, 0x57, 0x23, 0xcd, 0x71,
|
||||
0x73, 0x95, 0x21, 0xd4, 0xd2, 0xcc, 0x0c, 0xf8, 0xc2, 0x03, 0x97, 0x7b, 0x0e, 0xf7, 0x7b, 0xde,
|
||||
0xf7, 0x3c, 0xef, 0x3d, 0x87, 0xff, 0x33, 0x5a, 0x0b, 0x1e, 0x4c, 0x83, 0x2b, 0xff, 0x6a, 0xd6,
|
||||
0x41, 0x24, 0x3d, 0x07, 0x2d, 0x05, 0xc7, 0xd3, 0x20, 0xa6, 0xc1, 0x9f, 0x69, 0x10, 0x17, 0x8f,
|
||||
0xfa, 0x08, 0x0f, 0x61, 0xa0, 0xa7, 0xa0, 0x34, 0xf8, 0x3a, 0x0d, 0xe2, 0xfc, 0x94, 0xf7, 0xd2,
|
||||
0x20, 0xbe, 0x30, 0x6f, 0x75, 0xf3, 0x66, 0xaf, 0xe0, 0x51, 0xe4, 0x7a, 0x02, 0x79, 0xf1, 0x39,
|
||||
0xfb, 0xb3, 0x6c, 0xd6, 0x76, 0x94, 0x2c, 0x34, 0x67, 0xdc, 0x48, 0x83, 0x78, 0x70, 0xc4, 0x07,
|
||||
0x68, 0xa0, 0xbf, 0x37, 0x65, 0x5b, 0xf0, 0x76, 0x1a, 0xc4, 0xa5, 0xe0, 0xfa, 0xd8, 0x63, 0x2e,
|
||||
0x86, 0x67, 0xfd, 0x9c, 0x06, 0x71, 0xf6, 0x69, 0xdf, 0x63, 0x19, 0xdb, 0xbb, 0xde, 0xaf, 0xd7,
|
||||
0x0e, 0xe9, 0x6b, 0x05, 0xd7, 0xb2, 0x8c, 0xd6, 0x6b, 0xad, 0xb4, 0xdd, 0x1b, 0x78, 0x02, 0x9b,
|
||||
0xba, 0x2b, 0xdb, 0xbc, 0xc9, 0x2c, 0x9b, 0x9f, 0x30, 0x8d, 0xe3, 0x58, 0x3e, 0x3a, 0xe9, 0xab,
|
||||
0x34, 0x88, 0x87, 0xc7, 0x7c, 0x8a, 0x26, 0xee, 0xed, 0xce, 0xd6, 0xc1, 0xa5, 0x34, 0x88, 0xcf,
|
||||
0x37, 0x5c, 0xc8, 0xca, 0xd4, 0xc2, 0xc8, 0x91, 0xc3, 0x4e, 0xa5, 0x41, 0x5c, 0x6c, 0xf8, 0x1d,
|
||||
0x2f, 0xa3, 0xdc, 0x71, 0xf9, 0x5a, 0xcf, 0x28, 0xb4, 0x82, 0x6f, 0xd3, 0xe0, 0x87, 0xca, 0xa8,
|
||||
0x13, 0xd9, 0x07, 0x9f, 0x42, 0xff, 0x62, 0xc3, 0xce, 0x74, 0xde, 0x8f, 0xcd, 0x19, 0xbf, 0x94,
|
||||
0x77, 0x79, 0x0b, 0x4f, 0xa2, 0x6f, 0xa3, 0x8c, 0x3e, 0x6c, 0x6d, 0xd3, 0x16, 0x2c, 0xe0, 0x25,
|
||||
0xec, 0x6b, 0xb3, 0x73, 0x82, 0x3d, 0xd9, 0xfb, 0x14, 0x85, 0x8d, 0x82, 0x46, 0x10, 0xdb, 0x74,
|
||||
0x19, 0x7b, 0x33, 0x0d, 0x62, 0xae, 0x6d, 0xee, 0x3d, 0x6d, 0x63, 0xf7, 0x6f, 0x14, 0xb4, 0x0b,
|
||||
0xd1, 0x79, 0xd1, 0xfb, 0xa2, 0x7e, 0xd7, 0xb1, 0x84, 0xa1, 0xcc, 0xca, 0xb7, 0x70, 0xac, 0xad,
|
||||
0x7f, 0x92, 0x4e, 0xf7, 0x27, 0xc1, 0x35, 0xef, 0x8a, 0x3e, 0x17, 0x1d, 0x11, 0xf1, 0x25, 0x0e,
|
||||
0x60, 0x87, 0x7d, 0xa2, 0xbc, 0x5b, 0x38, 0x97, 0x65, 0xd4, 0x55, 0xbc, 0x29, 0x64, 0xa0, 0x2b,
|
||||
0xa2, 0x13, 0xa2, 0x03, 0xfe, 0x50, 0xf4, 0x99, 0x19, 0xd1, 0x8a, 0x68, 0x9b, 0x35, 0x9c, 0xef,
|
||||
0xd6, 0xda, 0xdb, 0x0c, 0xb8, 0xea, 0x5c, 0x06, 0xbb, 0x9d, 0x2e, 0x8a, 0x86, 0x44, 0x5c, 0xe8,
|
||||
0x16, 0xb6, 0xc7, 0x80, 0xef, 0x34, 0x45, 0x97, 0xfe, 0x03, 0x36, 0x25, 0xe2, 0x2a, 0x66, 0x70,
|
||||
0x5f, 0x37, 0xb0, 0x4d, 0x38, 0x29, 0xf1, 0x8d, 0x21, 0x37, 0x3c, 0xe2, 0xa6, 0x57, 0x33, 0x48,
|
||||
0x53, 0xc4, 0x6f, 0x99, 0x2b, 0x4f, 0x62, 0x7f, 0xb7, 0xfb, 0x95, 0xa0, 0x94, 0x35, 0xe5, 0x19,
|
||||
0x0d, 0xd1, 0xb2, 0x28, 0xf1, 0x2b, 0x3e, 0xc6, 0x19, 0x1c, 0xea, 0xf5, 0x41, 0xb8, 0xdb, 0x6e,
|
||||
0x51, 0xe2, 0x0b, 0x7c, 0x88, 0xb3, 0x18, 0xcb, 0x9a, 0x38, 0xb9, 0xc3, 0x42, 0x93, 0x4e, 0x7a,
|
||||
0xec, 0x13, 0x54, 0x70, 0x3a, 0x83, 0x4c, 0xe6, 0xf3, 0xf9, 0x95, 0x62, 0xb1, 0x78, 0x6c, 0x7c,
|
||||
0x7c, 0x7c, 0xcb, 0xba, 0xf9, 0xb3, 0x85, 0x42, 0xe1, 0x9d, 0x52, 0xa9, 0xb4, 0x34, 0x37, 0x37,
|
||||
0xb7, 0xa1, 0x86, 0xce, 0x67, 0x0e, 0x1b, 0xcd, 0x8e, 0x87, 0x24, 0x97, 0xcb, 0xad, 0x20, 0x0e,
|
||||
0x0e, 0x0e, 0xae, 0xd6, 0x6a, 0xb5, 0x7a, 0xfb, 0x91, 0x91, 0x24, 0xc9, 0x65, 0xc4, 0xe1, 0xe1,
|
||||
0xe1, 0x9b, 0xf5, 0x7a, 0x7d, 0x74, 0xdd, 0xef, 0xeb, 0xae, 0xe2, 0x81, 0x7f, 0x1e, 0xda, 0x40,
|
||||
0x7f, 0xd5, 0xeb, 0xf5, 0xa9, 0xdb, 0x81, 0xca, 0xe5, 0xf2, 0x6a, 0xad, 0x56, 0x7b, 0xbc, 0x13,
|
||||
0x50, 0x7b, 0x14, 0x2b, 0x95, 0xca, 0xeb, 0xd5, 0x6a, 0xf5, 0xf4, 0xf4, 0xf4, 0xf4, 0xc3, 0xeb,
|
||||
0xee, 0x10, 0xa5, 0x89, 0x89, 0x89, 0xb3, 0xd5, 0x6a, 0xf5, 0x54, 0xb5, 0x5a, 0xdd, 0xd9, 0x06,
|
||||
0xe8, 0xd8, 0x38, 0x7d, 0x99, 0x72, 0x77, 0x18, 0xeb, 0xfd, 0xf5, 0xec, 0x6e, 0xe2, 0x6f, 0x7a,
|
||||
0xbe, 0xd6, 0x21, 0x77, 0x52, 0xdf, 0x34, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae,
|
||||
0x42, 0x60, 0x82,
|
||||
};
|
||||
|
||||
const BITMAP_OPAQUE gl_change_xpm[1] = {{ png, sizeof( png ), "gl_change_xpm" }};
|
||||
|
||||
//EOF
|
||||
@@ -1,52 +0,0 @@
|
||||
|
||||
/* Do not modify this file, it was automatically generated by the
|
||||
* PNG2cpp CMake script, using a *.png file as input.
|
||||
*/
|
||||
|
||||
#include <bitmaps_png/bitmaps_list.h>
|
||||
|
||||
static const unsigned char png[] = {
|
||||
0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52,
|
||||
0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1a, 0x08, 0x06, 0x00, 0x00, 0x00, 0xa9, 0x4a, 0x4c,
|
||||
0xce, 0x00, 0x00, 0x02, 0x2f, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0xbd, 0x95, 0xcf, 0x6b, 0x13,
|
||||
0x51, 0x10, 0xc7, 0xbf, 0xb6, 0xbb, 0x20, 0x74, 0x29, 0x24, 0xf4, 0xd2, 0xfe, 0x05, 0x39, 0x28,
|
||||
0x95, 0x48, 0x6e, 0x82, 0x14, 0x3c, 0x25, 0xb9, 0x69, 0x2f, 0x52, 0x49, 0x4e, 0x0a, 0xde, 0xda,
|
||||
0x8b, 0xbf, 0x0e, 0x2e, 0xad, 0xb4, 0x92, 0x44, 0x51, 0xfa, 0x83, 0x42, 0xb1, 0x59, 0x7a, 0x2a,
|
||||
0x29, 0x3d, 0x26, 0x88, 0xe9, 0xc1, 0x8a, 0x18, 0xb2, 0xe7, 0x60, 0xf0, 0xd2, 0x16, 0xb1, 0x8d,
|
||||
0x42, 0xda, 0x8b, 0x4d, 0xa4, 0x96, 0x66, 0x9c, 0x17, 0x36, 0x31, 0xbf, 0x7f, 0x74, 0xb7, 0x19,
|
||||
0xf8, 0xc2, 0xdb, 0x61, 0x77, 0x3e, 0x3b, 0x6f, 0xe6, 0xcd, 0x03, 0x7a, 0x6d, 0xd3, 0x92, 0xf4,
|
||||
0x5b, 0x05, 0xa8, 0x99, 0x66, 0x64, 0x39, 0x3f, 0x0d, 0x8c, 0x9a, 0x06, 0x89, 0x60, 0xad, 0xec,
|
||||
0xeb, 0xe6, 0x66, 0x61, 0x76, 0x60, 0xe0, 0x17, 0xbf, 0x37, 0x64, 0x29, 0xc8, 0xed, 0x76, 0x17,
|
||||
0x55, 0x69, 0xef, 0xa7, 0xa6, 0x4e, 0xe6, 0x06, 0x07, 0x13, 0xfc, 0xae, 0x64, 0x09, 0x28, 0x9f,
|
||||
0xcf, 0x93, 0xdd, 0x6e, 0x27, 0x9b, 0xcd, 0x46, 0xb9, 0x5c, 0xae, 0xec, 0x2f, 0x9c, 0x9d, 0x91,
|
||||
0x36, 0x36, 0x76, 0x3c, 0xab, 0x28, 0x6f, 0x2d, 0x01, 0x85, 0xc3, 0x61, 0xf2, 0x7a, 0xbd, 0xe4,
|
||||
0xf1, 0x78, 0x48, 0xd3, 0xb4, 0xaa, 0xac, 0xfe, 0x1c, 0x1d, 0xd1, 0xab, 0x91, 0x91, 0xe3, 0xbb,
|
||||
0x57, 0xfa, 0x9e, 0x23, 0x88, 0x5b, 0x65, 0x85, 0xe0, 0xea, 0x1a, 0xe4, 0x72, 0xb9, 0x28, 0x16,
|
||||
0x8b, 0x51, 0x34, 0x1a, 0x25, 0xa7, 0xd3, 0x59, 0x57, 0xaf, 0xd4, 0xfa, 0x3a, 0x3d, 0xb3, 0x5f,
|
||||
0x26, 0x0e, 0x5e, 0xad, 0xd7, 0xb8, 0xda, 0x31, 0x28, 0x99, 0x4c, 0x92, 0x24, 0x49, 0xc4, 0xae,
|
||||
0xa2, 0x64, 0x59, 0x26, 0x5d, 0xd7, 0xff, 0x6f, 0xeb, 0xe1, 0x21, 0x85, 0x86, 0x87, 0xcd, 0x67,
|
||||
0xe4, 0xf3, 0xf9, 0x28, 0x18, 0x0c, 0x96, 0x03, 0x07, 0x02, 0x01, 0xf2, 0xfb, 0xfd, 0x55, 0x35,
|
||||
0x9a, 0x53, 0x94, 0x37, 0xa6, 0x6b, 0xe4, 0x70, 0x38, 0x28, 0x9b, 0xcd, 0x96, 0x41, 0x62, 0x2d,
|
||||
0x7c, 0xc5, 0xae, 0x9b, 0x9c, 0x14, 0x5d, 0xf7, 0x25, 0x02, 0xf4, 0x5f, 0xec, 0x39, 0x52, 0x14,
|
||||
0xf3, 0xe7, 0xa8, 0x67, 0x93, 0xa1, 0x27, 0xb6, 0xb8, 0x88, 0x1b, 0x0b, 0x0b, 0x78, 0x24, 0x24,
|
||||
0xd6, 0x17, 0x06, 0x9a, 0x9f, 0x87, 0x9a, 0xc9, 0x80, 0x84, 0xc4, 0xfa, 0x1c, 0x21, 0x44, 0xdd,
|
||||
0x4e, 0xd0, 0xae, 0x7e, 0x16, 0x80, 0x9e, 0xb2, 0xbe, 0xb1, 0x9e, 0x74, 0x0d, 0xe2, 0x2d, 0x7c,
|
||||
0xb8, 0xb4, 0xc4, 0x07, 0xb1, 0xbd, 0x89, 0x01, 0xfb, 0x9d, 0x75, 0x9b, 0xf5, 0x83, 0x25, 0x77,
|
||||
0x0b, 0x52, 0x75, 0x1d, 0x85, 0x95, 0x15, 0xbc, 0x50, 0x55, 0xf4, 0xb5, 0x00, 0x8d, 0xb3, 0x3e,
|
||||
0x1a, 0xeb, 0x6d, 0xd6, 0x9d, 0xae, 0x41, 0xe2, 0x39, 0x9d, 0x06, 0xad, 0xad, 0x21, 0xce, 0xd9,
|
||||
0xd9, 0x9a, 0x7c, 0xfe, 0xc9, 0xc8, 0x06, 0x06, 0x64, 0xbb, 0x23, 0x10, 0x03, 0xe2, 0x46, 0xf7,
|
||||
0xc5, 0x4b, 0xbe, 0xbd, 0x3d, 0xd0, 0xc6, 0x06, 0x7e, 0xb2, 0xaf, 0x76, 0x9e, 0x5d, 0x63, 0x9d,
|
||||
0x96, 0xe6, 0xa2, 0x21, 0xf1, 0x7c, 0xbd, 0x2d, 0xa8, 0x99, 0xf6, 0xf7, 0x41, 0x5b, 0x5b, 0x38,
|
||||
0xe5, 0xcc, 0xee, 0x57, 0x7c, 0xba, 0xca, 0x7a, 0x5c, 0x13, 0x4e, 0x34, 0xc4, 0xbb, 0x86, 0x20,
|
||||
0xce, 0xe0, 0x5e, 0x2a, 0xd5, 0x1a, 0x74, 0x70, 0x00, 0xbe, 0x3a, 0xf0, 0xb7, 0x06, 0x94, 0x6e,
|
||||
0xd0, 0xd2, 0x43, 0x86, 0xbf, 0xde, 0x88, 0x70, 0x89, 0xb3, 0x9a, 0x60, 0xe0, 0xcb, 0x0a, 0x7d,
|
||||
0x2e, 0x41, 0x76, 0x76, 0x40, 0x91, 0x08, 0x32, 0x0d, 0xb6, 0xce, 0x92, 0x69, 0x51, 0xdc, 0x4e,
|
||||
0x91, 0xa9, 0xa6, 0xe1, 0x43, 0x8b, 0x66, 0x30, 0x0f, 0x4a, 0x24, 0x50, 0x58, 0x5e, 0xc6, 0x4c,
|
||||
0x5d, 0x7b, 0x87, 0xb0, 0x5b, 0x77, 0xbb, 0x36, 0xd6, 0x6e, 0x27, 0xa0, 0x07, 0x9c, 0xc5, 0x4d,
|
||||
0xab, 0x7e, 0xfc, 0x1f, 0x28, 0xf3, 0x4d, 0x05, 0xe3, 0x55, 0xa6, 0xa5, 0x00, 0x00, 0x00, 0x00,
|
||||
0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82,
|
||||
};
|
||||
|
||||
const BITMAP_OPAQUE glabel2label_xpm[1] = {{ png, sizeof( png ), "glabel2label_xpm" }};
|
||||
|
||||
//EOF
|
||||
@@ -1,48 +0,0 @@
|
||||
|
||||
/* Do not modify this file, it was automatically generated by the
|
||||
* PNG2cpp CMake script, using a *.png file as input.
|
||||
*/
|
||||
|
||||
#include <bitmaps_png/bitmaps_list.h>
|
||||
|
||||
static const unsigned char png[] = {
|
||||
0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52,
|
||||
0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1a, 0x08, 0x06, 0x00, 0x00, 0x00, 0xa9, 0x4a, 0x4c,
|
||||
0xce, 0x00, 0x00, 0x01, 0xef, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0xcd, 0x95, 0xcf, 0x4b, 0x02,
|
||||
0x41, 0x14, 0xc7, 0xbf, 0xd5, 0x2e, 0x04, 0x2d, 0x81, 0xd2, 0xa5, 0xfe, 0x02, 0x0f, 0x45, 0x20,
|
||||
0xec, 0x2d, 0xa8, 0xa0, 0x93, 0xfa, 0x17, 0x44, 0xa1, 0xa7, 0x82, 0x6e, 0x76, 0xe9, 0xd0, 0xa1,
|
||||
0xa5, 0xa2, 0x42, 0x2b, 0x8a, 0x7e, 0x10, 0x74, 0x70, 0xf1, 0x14, 0x46, 0x47, 0x25, 0xd2, 0x63,
|
||||
0x24, 0xee, 0x59, 0xea, 0x16, 0x5d, 0xca, 0x02, 0xeb, 0x52, 0x1a, 0x15, 0xf9, 0x9a, 0x11, 0xdb,
|
||||
0x94, 0xda, 0xcd, 0xda, 0x4d, 0x7a, 0xf0, 0x85, 0x99, 0xb7, 0xc3, 0x7c, 0xf8, 0xce, 0xbc, 0x37,
|
||||
0x0b, 0x34, 0x3a, 0x66, 0x05, 0xe1, 0x5e, 0x01, 0xc8, 0x48, 0x73, 0xa2, 0x58, 0x9c, 0x05, 0x7a,
|
||||
0x2d, 0x83, 0xf8, 0x66, 0x66, 0x71, 0x7a, 0x70, 0x50, 0x5a, 0x68, 0x6b, 0xbb, 0x61, 0xeb, 0x3a,
|
||||
0x6c, 0x05, 0x79, 0x3c, 0x9e, 0xb2, 0xaa, 0xe3, 0x70, 0x72, 0xf2, 0x69, 0xb1, 0xbd, 0x3d, 0xcd,
|
||||
0xd6, 0x0a, 0xb6, 0x80, 0x8a, 0xc5, 0x22, 0x39, 0x9d, 0x4e, 0x72, 0x38, 0x1c, 0x54, 0x28, 0x14,
|
||||
0xf4, 0x7c, 0xe9, 0xf5, 0x95, 0xd4, 0xc1, 0xc1, 0x87, 0x05, 0x49, 0x5a, 0xb7, 0x05, 0x14, 0x89,
|
||||
0x44, 0xc8, 0xe7, 0xf3, 0x91, 0xd7, 0xeb, 0x25, 0x55, 0x55, 0x6b, 0x5c, 0x3d, 0xde, 0xdd, 0xd1,
|
||||
0x4a, 0x57, 0xd7, 0xc3, 0x70, 0x77, 0xf3, 0x0c, 0xc2, 0x18, 0xd2, 0xb5, 0x0c, 0xf9, 0xc7, 0x20,
|
||||
0x59, 0x96, 0x29, 0x91, 0x48, 0x50, 0x3c, 0x1e, 0x27, 0xb7, 0xdb, 0xfd, 0xe9, 0xbe, 0xb2, 0x7b,
|
||||
0x7b, 0x34, 0xed, 0x6c, 0x25, 0xb6, 0x79, 0xad, 0x56, 0xd1, 0x53, 0x37, 0x28, 0x93, 0xc9, 0x90,
|
||||
0x20, 0x08, 0xc4, 0x52, 0x65, 0x89, 0xa2, 0x48, 0x9a, 0xa6, 0x7d, 0x1c, 0xeb, 0xed, 0x2d, 0x2d,
|
||||
0x77, 0x76, 0x5a, 0x77, 0xe4, 0xf7, 0xfb, 0x29, 0x1c, 0x0e, 0xeb, 0x1b, 0x87, 0x42, 0x21, 0x0a,
|
||||
0x04, 0x02, 0x35, 0x77, 0xb4, 0x28, 0x49, 0x6b, 0x96, 0xef, 0xc8, 0xe5, 0x72, 0x51, 0x3e, 0x9f,
|
||||
0xd7, 0x41, 0x7c, 0xcc, 0x73, 0xe5, 0xaa, 0x0b, 0x06, 0x79, 0xd5, 0x9d, 0xc4, 0x80, 0x96, 0xbf,
|
||||
0xed, 0x23, 0x49, 0xb2, 0xde, 0x47, 0x0d, 0x7b, 0x19, 0x1a, 0x12, 0x5b, 0x5b, 0xe8, 0xdb, 0xdc,
|
||||
0xc4, 0x14, 0x17, 0x1f, 0xff, 0x19, 0x68, 0x63, 0x03, 0x4a, 0x2e, 0x07, 0xe2, 0xe2, 0xe3, 0xff,
|
||||
0x06, 0xa2, 0x3a, 0xf4, 0x3d, 0x88, 0x1d, 0xe1, 0xc4, 0xf6, 0x36, 0x6b, 0x44, 0x73, 0x90, 0x52,
|
||||
0x91, 0x5a, 0x99, 0xab, 0x55, 0xb9, 0xba, 0x41, 0x8a, 0xa6, 0xa1, 0xb4, 0xbb, 0x8b, 0x79, 0x45,
|
||||
0x41, 0xf3, 0xd7, 0x1d, 0xa1, 0xc7, 0x40, 0x65, 0xe3, 0x01, 0x83, 0xef, 0xe6, 0x20, 0x3e, 0x3f,
|
||||
0x3b, 0x03, 0x45, 0xa3, 0x48, 0x32, 0x77, 0x0e, 0x13, 0x77, 0x5f, 0x81, 0xcc, 0xef, 0x88, 0x01,
|
||||
0x92, 0x95, 0xea, 0x4b, 0xbe, 0xe7, 0x2e, 0x2e, 0x40, 0xfb, 0xfb, 0xb8, 0x66, 0x39, 0xd9, 0x36,
|
||||
0x90, 0x91, 0x2e, 0x2f, 0x41, 0xa9, 0x14, 0x5e, 0x98, 0xb3, 0xb1, 0x5f, 0x83, 0x98, 0x83, 0xd1,
|
||||
0x6c, 0xd6, 0x1c, 0x74, 0x75, 0x05, 0xf6, 0xeb, 0xc0, 0xb3, 0x25, 0x10, 0x11, 0x9a, 0x98, 0xab,
|
||||
0x11, 0x06, 0x5c, 0xaa, 0xd2, 0xf1, 0x3b, 0xe4, 0xfc, 0x1c, 0x14, 0x8b, 0x21, 0x67, 0xf9, 0xe8,
|
||||
0x0c, 0x5e, 0x8b, 0xf2, 0x71, 0x72, 0xa7, 0xaa, 0x8a, 0x23, 0x5b, 0x8a, 0xc1, 0x08, 0x94, 0x4e,
|
||||
0xa3, 0xb4, 0xb3, 0x83, 0x39, 0x83, 0xf2, 0x36, 0x6a, 0xde, 0x1f, 0x83, 0xc6, 0x99, 0x8b, 0x7e,
|
||||
0xbb, 0x5e, 0x9f, 0x37, 0x23, 0x66, 0x47, 0x3b, 0xda, 0x7e, 0x54, 0xb7, 0x00, 0x00, 0x00, 0x00,
|
||||
0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82,
|
||||
};
|
||||
|
||||
const BITMAP_OPAQUE glabel2text_xpm[1] = {{ png, sizeof( png ), "glabel2text_xpm" }};
|
||||
|
||||
//EOF
|
||||
@@ -1,104 +0,0 @@
|
||||
|
||||
/* Do not modify this file, it was automatically generated by the
|
||||
* PNG2cpp CMake script, using a *.png file as input.
|
||||
*/
|
||||
|
||||
#include <bitmaps_png/bitmaps_list.h>
|
||||
|
||||
static const unsigned char png[] = {
|
||||
0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52,
|
||||
0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1a, 0x08, 0x06, 0x00, 0x00, 0x00, 0xa9, 0x4a, 0x4c,
|
||||
0xce, 0x00, 0x00, 0x05, 0x77, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0xc5, 0x96, 0x7b, 0x6c, 0xd6,
|
||||
0x57, 0x19, 0xc7, 0x3f, 0xcf, 0x39, 0xe7, 0xbd, 0xf4, 0xf2, 0xae, 0x17, 0x6d, 0xa5, 0x58, 0x04,
|
||||
0x91, 0xf1, 0x02, 0xce, 0xb5, 0x6c, 0xf1, 0x12, 0x63, 0xec, 0x40, 0xb2, 0x01, 0x85, 0x80, 0x01,
|
||||
0x9c, 0x9b, 0xc3, 0xb8, 0x91, 0x90, 0x99, 0xb8, 0x89, 0xfb, 0x83, 0x0c, 0xb7, 0x2a, 0xb8, 0x38,
|
||||
0xb7, 0xa0, 0x86, 0x78, 0x21, 0x53, 0x37, 0x71, 0x18, 0x20, 0x5b, 0xdd, 0xe6, 0xd6, 0x6d, 0x36,
|
||||
0x90, 0x11, 0xf9, 0x8f, 0xe9, 0x6e, 0x71, 0xb3, 0xdb, 0x0a, 0xed, 0x0a, 0x08, 0xb4, 0xce, 0x5e,
|
||||
0xe8, 0xe5, 0x6d, 0xdf, 0xfe, 0x7e, 0xe7, 0x3c, 0xfe, 0xd1, 0xf6, 0xc5, 0xce, 0x35, 0x6c, 0x8b,
|
||||
0x89, 0x27, 0x39, 0xff, 0x9d, 0x3c, 0x9f, 0x73, 0x9e, 0xef, 0xf7, 0x7c, 0xf3, 0xc0, 0xff, 0x60,
|
||||
0xe5, 0x72, 0xb9, 0xdb, 0x0f, 0x1c, 0x38, 0x30, 0xac, 0xaa, 0x37, 0xcc, 0x74, 0x46, 0x00, 0xee,
|
||||
0xff, 0xd9, 0xfd, 0xb5, 0x95, 0x45, 0x65, 0x4d, 0xe9, 0xe2, 0xa2, 0x04, 0x80, 0x11, 0x00, 0x03,
|
||||
0x40, 0x20, 0x80, 0x42, 0x50, 0x6f, 0x72, 0xb9, 0x91, 0x96, 0x6f, 0x6e, 0xbd, 0xed, 0xb1, 0x85,
|
||||
0x6b, 0xef, 0xfb, 0x6e, 0x40, 0xbf, 0x17, 0x7b, 0x52, 0x00, 0x4d, 0x37, 0x7f, 0x96, 0x2d, 0x9b,
|
||||
0x96, 0xb3, 0xf9, 0xcb, 0x37, 0xb1, 0x74, 0xfd, 0x16, 0x7e, 0xfe, 0xe8, 0x71, 0x54, 0x21, 0xe1,
|
||||
0x64, 0xc0, 0xab, 0xd9, 0xdc, 0xd9, 0xb2, 0xfd, 0x69, 0x07, 0xf0, 0xb1, 0xea, 0xda, 0xe6, 0xe5,
|
||||
0xcb, 0x96, 0x7f, 0xce, 0x25, 0x12, 0x38, 0xeb, 0x70, 0xce, 0x62, 0x8c, 0x45, 0x35, 0xe0, 0x7d,
|
||||
0x4c, 0x1c, 0x7b, 0x62, 0xef, 0x69, 0x6f, 0x7f, 0x73, 0xed, 0xd7, 0xbe, 0xfd, 0x83, 0xd3, 0x5d,
|
||||
0x03, 0xa5, 0xbb, 0xf6, 0x7c, 0xa7, 0xc1, 0x66, 0x8a, 0x2d, 0xce, 0x3a, 0xe2, 0xc8, 0x53, 0x57,
|
||||
0x7e, 0x25, 0xb3, 0x5b, 0xab, 0x68, 0x6e, 0xdf, 0x41, 0xeb, 0xe3, 0xbf, 0x63, 0x68, 0xe4, 0x02,
|
||||
0xcf, 0xb7, 0xfd, 0xb3, 0x74, 0xcf, 0x23, 0x7f, 0xdf, 0x07, 0x54, 0x39, 0x80, 0x8a, 0xca, 0x8a,
|
||||
0xca, 0x28, 0x8e, 0xf0, 0xc1, 0x33, 0xe2, 0x63, 0x8c, 0x91, 0xa9, 0xc7, 0x12, 0x08, 0x18, 0x0c,
|
||||
0x46, 0x0c, 0x65, 0xe5, 0xe5, 0x15, 0x8a, 0x5c, 0x79, 0xc7, 0xfa, 0xb9, 0x76, 0xc7, 0x2d, 0xdb,
|
||||
0x64, 0xaa, 0x2d, 0xf9, 0x28, 0x4f, 0xc2, 0x3b, 0xee, 0x1b, 0xdd, 0xc5, 0x43, 0x6f, 0xee, 0x67,
|
||||
0xcd, 0x17, 0xd7, 0x70, 0xf0, 0x99, 0x43, 0x5c, 0x31, 0xbf, 0xca, 0x79, 0xa5, 0x02, 0xc0, 0x01,
|
||||
0x04, 0x1f, 0xf0, 0xc1, 0xe3, 0xd5, 0xa3, 0x28, 0xe8, 0x45, 0x90, 0x6a, 0x20, 0x0a, 0x31, 0x49,
|
||||
0x97, 0x22, 0x8e, 0x23, 0x00, 0x3a, 0xda, 0x5f, 0x97, 0x4f, 0xbe, 0xb4, 0x90, 0xcd, 0x5c, 0x94,
|
||||
0xe4, 0xc3, 0x7c, 0x08, 0x80, 0x2d, 0xf1, 0xd7, 0x59, 0xd0, 0x33, 0x9f, 0x4d, 0xcb, 0x37, 0xf2,
|
||||
0xe3, 0x87, 0x7e, 0x4a, 0xdd, 0xe5, 0xb3, 0xa4, 0x73, 0x4a, 0x88, 0x10, 0x62, 0xa2, 0x68, 0x1c,
|
||||
0xe7, 0x1c, 0xce, 0x3a, 0x0e, 0xb7, 0x1e, 0xe1, 0xcc, 0xe9, 0x33, 0x3c, 0xbc, 0x6f, 0x3f, 0xd6,
|
||||
0x5a, 0xac, 0x75, 0x80, 0x12, 0x45, 0xd1, 0x24, 0x5c, 0xa9, 0xe5, 0xa3, 0x5c, 0x4d, 0x7d, 0x61,
|
||||
0xcf, 0x65, 0x4e, 0x01, 0xda, 0xc0, 0x17, 0x78, 0x6e, 0xb0, 0x85, 0x9d, 0xb7, 0x34, 0xb1, 0xc4,
|
||||
0x75, 0x18, 0x55, 0xdd, 0xe8, 0x00, 0xe2, 0x38, 0x10, 0x47, 0x31, 0xd6, 0x58, 0x14, 0x65, 0xc5,
|
||||
0xb5, 0x2b, 0xf8, 0xed, 0x83, 0xfb, 0x28, 0x2a, 0x2a, 0xc2, 0xb9, 0x04, 0xde, 0x7b, 0xd4, 0x2b,
|
||||
0xe3, 0x93, 0x20, 0x31, 0x72, 0x49, 0x27, 0xce, 0x67, 0x1e, 0xcf, 0x0d, 0xb5, 0xb0, 0x68, 0xcf,
|
||||
0xd5, 0xd4, 0x7d, 0xfa, 0x53, 0x0f, 0x9b, 0x42, 0x7b, 0xe2, 0x08, 0x23, 0x06, 0x63, 0x0c, 0xa5,
|
||||
0xa5, 0x19, 0xba, 0xbb, 0xbb, 0x59, 0xb7, 0x7e, 0x1d, 0xd6, 0x58, 0x8c, 0x31, 0xa8, 0x2a, 0x3e,
|
||||
0x8e, 0x31, 0x62, 0x44, 0x83, 0x5e, 0x12, 0x74, 0x9e, 0x6e, 0xd6, 0x65, 0x6e, 0x60, 0xc3, 0xf5,
|
||||
0x9b, 0x68, 0x6c, 0x6c, 0xdc, 0xee, 0x0a, 0x3e, 0x17, 0x99, 0xb8, 0xa9, 0xc2, 0x6b, 0xaf, 0xbe,
|
||||
0x46, 0xfd, 0xd2, 0xa5, 0xd4, 0xd4, 0xd4, 0x10, 0xfb, 0x18, 0x41, 0x30, 0xc6, 0x4e, 0x2b, 0x74,
|
||||
0x96, 0x73, 0xbc, 0xc8, 0x2b, 0xd3, 0x34, 0x9a, 0x6a, 0xdf, 0x0b, 0xbc, 0xcc, 0xf5, 0x99, 0x6f,
|
||||
0x70, 0xd7, 0x4f, 0xee, 0xe6, 0xd8, 0xe9, 0xe2, 0x50, 0x52, 0x52, 0xf2, 0xcb, 0x02, 0x68, 0x68,
|
||||
0x78, 0x88, 0xd9, 0x35, 0xb5, 0x80, 0x52, 0x57, 0x57, 0x47, 0x7d, 0x5d, 0x3d, 0x00, 0xce, 0x58,
|
||||
0xc4, 0x09, 0x43, 0x83, 0xbd, 0x13, 0x2e, 0xd4, 0xa0, 0x0b, 0xb2, 0x8b, 0xf5, 0xc8, 0x55, 0x87,
|
||||
0xe5, 0x4e, 0x76, 0x15, 0x5c, 0x97, 0xeb, 0x1a, 0xe1, 0x85, 0xa1, 0x63, 0x1c, 0xb4, 0xcd, 0xdc,
|
||||
0x5d, 0x7e, 0x0f, 0xfb, 0xff, 0xf8, 0x7b, 0x24, 0x91, 0xe2, 0x87, 0x4f, 0x1d, 0xd5, 0x82, 0xeb,
|
||||
0x00, 0xd2, 0xa9, 0x34, 0x6d, 0x6f, 0xbc, 0x8a, 0xbe, 0x4b, 0x57, 0x82, 0xf7, 0x54, 0x54, 0x54,
|
||||
0x16, 0x9c, 0xb8, 0xf7, 0xd9, 0xb3, 0xd1, 0x03, 0xcd, 0x7b, 0x93, 0xde, 0x7b, 0xa2, 0x28, 0xc2,
|
||||
0x9a, 0x04, 0x37, 0x7e, 0xfe, 0xab, 0xec, 0x2c, 0xfa, 0x11, 0x4f, 0xce, 0x7e, 0x96, 0x27, 0x1e,
|
||||
0x7f, 0x02, 0x6b, 0x85, 0x9e, 0xde, 0xa1, 0x42, 0x0d, 0x03, 0x70, 0x61, 0xf0, 0xc2, 0x85, 0x54,
|
||||
0x32, 0x85, 0xb3, 0x8e, 0x84, 0xfb, 0xef, 0x9d, 0x4a, 0xa5, 0x30, 0xc6, 0x32, 0x3a, 0x9a, 0x1b,
|
||||
0x54, 0xb1, 0x6d, 0xa7, 0xba, 0x07, 0x4c, 0x4f, 0xdf, 0x20, 0xc3, 0xc3, 0x83, 0x8c, 0x8c, 0x0c,
|
||||
0xe1, 0xe3, 0x88, 0x57, 0xfa, 0xff, 0x46, 0xfb, 0x8a, 0xb7, 0x78, 0xec, 0xc8, 0x1f, 0x18, 0xcb,
|
||||
0x8f, 0x10, 0x34, 0x70, 0xae, 0x77, 0xc4, 0x5b, 0x61, 0xa8, 0x10, 0x41, 0xbb, 0x77, 0xdf, 0xf3,
|
||||
0xf1, 0xee, 0xd1, 0xd2, 0x5f, 0xf7, 0x0d, 0xcb, 0xac, 0x99, 0xc4, 0x55, 0xc4, 0xf7, 0xf4, 0x8d,
|
||||
0xbd, 0xf4, 0xc6, 0xf9, 0x70, 0xdc, 0x1a, 0xdd, 0x18, 0x82, 0x7c, 0x49, 0x8c, 0x28, 0xc0, 0x4d,
|
||||
0xab, 0xea, 0xec, 0xdc, 0xe2, 0xb7, 0x69, 0xeb, 0x2b, 0xf7, 0x4f, 0x1d, 0x6b, 0x0b, 0xa8, 0x18,
|
||||
0x50, 0x13, 0x54, 0xc7, 0x03, 0xf6, 0xe6, 0xce, 0x96, 0xed, 0x87, 0x04, 0x60, 0xc1, 0xda, 0x7b,
|
||||
0xb7, 0xa5, 0x13, 0xf6, 0xde, 0x45, 0x73, 0x32, 0x63, 0x82, 0xbe, 0xa7, 0x20, 0x55, 0x05, 0xaf,
|
||||
0x2a, 0x41, 0x35, 0x05, 0xd8, 0xb7, 0x07, 0xc6, 0xc7, 0x7b, 0x87, 0xa3, 0x8e, 0xd1, 0x48, 0x97,
|
||||
0x49, 0x2a, 0x9d, 0x96, 0xb1, 0xb1, 0x53, 0xe4, 0xf2, 0xd5, 0x5d, 0x7f, 0xde, 0x39, 0x50, 0xd0,
|
||||
0xa8, 0x28, 0x61, 0x6e, 0xbb, 0x75, 0xfd, 0x92, 0xf4, 0xd2, 0x6c, 0x59, 0x51, 0x26, 0x73, 0x59,
|
||||
0x41, 0x8b, 0x69, 0xc9, 0x5b, 0x78, 0xd9, 0xbb, 0xa6, 0x37, 0x62, 0x6c, 0xf2, 0xc6, 0xef, 0x1f,
|
||||
0xbd, 0x22, 0x19, 0x4c, 0x49, 0x9c, 0x1b, 0x73, 0x6a, 0xc9, 0x9f, 0xaa, 0x5a, 0x52, 0x10, 0x69,
|
||||
0xca, 0x0c, 0xe9, 0x64, 0x12, 0x99, 0x55, 0x5d, 0x43, 0x3e, 0x1a, 0x9d, 0x10, 0xcf, 0x18, 0xc4,
|
||||
0x4c, 0x64, 0x9c, 0xc8, 0x45, 0x9c, 0xa2, 0x84, 0xa0, 0x68, 0x08, 0x84, 0xe0, 0x01, 0xa8, 0xae,
|
||||
0xaa, 0xa2, 0xbb, 0xa7, 0x1b, 0x67, 0xd1, 0x7c, 0xf0, 0x57, 0x11, 0xe4, 0x4e, 0x51, 0xfd, 0x05,
|
||||
0xcd, 0x5f, 0xf1, 0xd3, 0xcc, 0x70, 0xf1, 0x2f, 0x29, 0xb1, 0xf7, 0x04, 0x85, 0xd3, 0x67, 0xce,
|
||||
0x32, 0x38, 0x30, 0x08, 0x22, 0x88, 0x58, 0xc4, 0x18, 0x44, 0x0c, 0x27, 0xdb, 0x3b, 0x90, 0x02,
|
||||
0x94, 0x89, 0xf3, 0xde, 0x4f, 0xfe, 0x33, 0x71, 0x0a, 0x7b, 0x30, 0x3c, 0xd9, 0x95, 0x1b, 0x6f,
|
||||
0xfa, 0xcf, 0xda, 0x6e, 0x3a, 0x68, 0x22, 0x05, 0x1e, 0xd8, 0xfb, 0x2b, 0xb2, 0xd9, 0x2c, 0x99,
|
||||
0x4c, 0x86, 0x8e, 0x8e, 0x4e, 0x1a, 0xd7, 0xac, 0xa6, 0xb8, 0xb8, 0x98, 0x38, 0x8e, 0x69, 0x6d,
|
||||
0x3d, 0xcc, 0xed, 0xdb, 0xbe, 0x85, 0x78, 0x29, 0x68, 0x25, 0x62, 0xa6, 0xda, 0x1b, 0x19, 0x71,
|
||||
0xd7, 0x75, 0x3e, 0xbd, 0xfd, 0xc4, 0x3b, 0xdb, 0x3b, 0xed, 0x45, 0xc6, 0x08, 0xa3, 0xb9, 0x51,
|
||||
0x92, 0xa9, 0x14, 0xab, 0x1b, 0x57, 0x71, 0xcd, 0xb2, 0x06, 0x3a, 0x3b, 0x3a, 0xe9, 0xef, 0xeb,
|
||||
0xe7, 0xae, 0x1d, 0x4d, 0x9c, 0x38, 0x71, 0x12, 0x23, 0x06, 0x6b, 0x1d, 0xc6, 0x1a, 0xcc, 0x64,
|
||||
0x3c, 0x19, 0x6b, 0x2e, 0x69, 0x9e, 0x77, 0x80, 0x2c, 0xc5, 0x25, 0x25, 0x9c, 0x3f, 0x7b, 0x0e,
|
||||
0xef, 0x3d, 0xfd, 0xfd, 0x03, 0xcc, 0x9b, 0x37, 0x8f, 0xec, 0xa2, 0x2c, 0xd9, 0x45, 0x59, 0xae,
|
||||
0x69, 0x68, 0x40, 0x8c, 0x4c, 0xe6, 0xdf, 0x24, 0x44, 0x04, 0x23, 0xef, 0x13, 0x24, 0x62, 0xb0,
|
||||
0xd6, 0xb2, 0xf5, 0xd6, 0xad, 0x1c, 0x3c, 0x70, 0x88, 0xb7, 0x3a, 0xbb, 0xd8, 0xb0, 0x71, 0x03,
|
||||
0x7f, 0xfd, 0xcb, 0x8b, 0xac, 0x5a, 0xbd, 0x0a, 0x6b, 0x2d, 0x2b, 0x57, 0xae, 0x9c, 0x2c, 0x2e,
|
||||
0x13, 0xf9, 0x28, 0x82, 0xb1, 0x53, 0x86, 0x99, 0x79, 0x4d, 0xd3, 0x28, 0x3f, 0x3e, 0xce, 0x65,
|
||||
0x25, 0x65, 0x94, 0x2d, 0x2c, 0x67, 0x71, 0x76, 0x31, 0x22, 0x02, 0x62, 0x98, 0x53, 0x5b, 0x8b,
|
||||
0x88, 0xa0, 0x41, 0xa9, 0xaf, 0xab, 0x47, 0x55, 0xb1, 0xc6, 0x91, 0x74, 0x3a, 0x91, 0xea, 0x3e,
|
||||
0x10, 0xc7, 0xf1, 0x7b, 0x00, 0x29, 0x58, 0x63, 0xe9, 0xef, 0xef, 0xe5, 0x64, 0xdf, 0xbf, 0xde,
|
||||
0xf7, 0x14, 0x94, 0x4a, 0xa5, 0xf8, 0x48, 0x75, 0xcd, 0x44, 0x57, 0x22, 0xaf, 0x33, 0x82, 0x02,
|
||||
0xbc, 0xdc, 0x7a, 0xbc, 0xab, 0x32, 0x99, 0x90, 0xb4, 0xf7, 0xfa, 0x01, 0x06, 0xae, 0x31, 0x9e,
|
||||
0x6f, 0x7b, 0x3d, 0x8e, 0x63, 0x0d, 0x3e, 0x9f, 0xff, 0xc7, 0x8c, 0xe3, 0xd6, 0x27, 0xae, 0xdd,
|
||||
0x5d, 0xed, 0xd2, 0xd1, 0x6f, 0xc0, 0x7c, 0x46, 0x55, 0xed, 0x07, 0x99, 0xed, 0x44, 0x38, 0x37,
|
||||
0x16, 0x71, 0xc7, 0xa9, 0x3f, 0xed, 0x38, 0xca, 0xff, 0x73, 0xfd, 0x1b, 0x99, 0xc8, 0x54, 0x9f,
|
||||
0x5c, 0x8c, 0x64, 0x1d, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82,
|
||||
};
|
||||
|
||||
const BITMAP_OPAQUE hotkeys_export_xpm[1] = {{ png, sizeof( png ), "hotkeys_export_xpm" }};
|
||||
|
||||
//EOF
|
||||
@@ -1,105 +0,0 @@
|
||||
|
||||
/* Do not modify this file, it was automatically generated by the
|
||||
* PNG2cpp CMake script, using a *.png file as input.
|
||||
*/
|
||||
|
||||
#include <bitmaps_png/bitmaps_list.h>
|
||||
|
||||
static const unsigned char png[] = {
|
||||
0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52,
|
||||
0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1a, 0x08, 0x06, 0x00, 0x00, 0x00, 0xa9, 0x4a, 0x4c,
|
||||
0xce, 0x00, 0x00, 0x05, 0x7f, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0xc5, 0x96, 0x7d, 0x4c, 0xd4,
|
||||
0x75, 0x1c, 0xc7, 0x6f, 0xcb, 0xfe, 0xf0, 0x0f, 0xa7, 0xae, 0xd5, 0x56, 0xd3, 0x04, 0x39, 0x95,
|
||||
0x36, 0x98, 0x15, 0x69, 0xda, 0xa6, 0xd5, 0xa6, 0x6b, 0x02, 0x87, 0x0f, 0x19, 0x59, 0x5a, 0x69,
|
||||
0x6d, 0xe6, 0xd6, 0x04, 0x15, 0x81, 0x1c, 0xba, 0x28, 0x81, 0x3b, 0x10, 0x24, 0x50, 0xb4, 0x40,
|
||||
0x34, 0x44, 0x40, 0x0c, 0x51, 0x52, 0x2f, 0x21, 0x01, 0x8f, 0xbb, 0xe3, 0xe1, 0xee, 0x10, 0x38,
|
||||
0xe0, 0x1e, 0x38, 0xee, 0xb8, 0x47, 0xee, 0x01, 0x0e, 0x0e, 0x31, 0xe2, 0xe1, 0xf4, 0xdd, 0xf7,
|
||||
0xfb, 0x65, 0xe0, 0x28, 0x4c, 0x68, 0x6d, 0xfd, 0xb6, 0xf7, 0x7e, 0xbf, 0xdf, 0xf7, 0xfb, 0xd9,
|
||||
0xef, 0xf5, 0xf9, 0x3e, 0xbd, 0x3f, 0x3f, 0x0e, 0xe7, 0x3f, 0xbc, 0xbc, 0x5e, 0xef, 0xce, 0x82,
|
||||
0x82, 0x82, 0xdf, 0x87, 0x86, 0x86, 0xf6, 0x4f, 0x1b, 0x20, 0x10, 0x08, 0xe6, 0xff, 0x98, 0x93,
|
||||
0x75, 0x2c, 0x3b, 0xe7, 0x4c, 0x66, 0x76, 0xce, 0x0f, 0xd3, 0x8a, 0xf4, 0xa7, 0x66, 0x64, 0xa4,
|
||||
0x06, 0xd1, 0xf8, 0xa5, 0xa1, 0x49, 0x7b, 0x56, 0x84, 0xf1, 0xad, 0xfe, 0x9b, 0x05, 0x6e, 0xaa,
|
||||
0x57, 0xb6, 0x24, 0xbb, 0xb3, 0x8a, 0x44, 0x43, 0xdb, 0x76, 0xed, 0x02, 0xe9, 0xc6, 0xc5, 0xd2,
|
||||
0xbb, 0xa3, 0xe3, 0xed, 0x7c, 0x95, 0x6f, 0x68, 0xf2, 0xea, 0x49, 0xd0, 0xa5, 0x82, 0x7c, 0x91,
|
||||
0xc5, 0x62, 0x82, 0xcb, 0xe5, 0x80, 0xbb, 0xaf, 0x17, 0x1e, 0x8f, 0x07, 0x0f, 0x1e, 0x0c, 0xe2,
|
||||
0xfe, 0xfd, 0x01, 0xf4, 0xf7, 0xbb, 0x49, 0xbb, 0x0b, 0x76, 0xbb, 0x0d, 0x95, 0x55, 0xe5, 0xf6,
|
||||
0x0f, 0xf7, 0x9d, 0x08, 0xf0, 0xe3, 0x09, 0x46, 0x2f, 0xfc, 0x7c, 0xcb, 0x7b, 0xa3, 0xa2, 0x0a,
|
||||
0xc2, 0x4a, 0x11, 0xda, 0xd4, 0x1a, 0xbc, 0xba, 0x7e, 0x3d, 0xe6, 0xee, 0xdd, 0x8b, 0x05, 0x01,
|
||||
0x01, 0x68, 0x6d, 0x57, 0xa1, 0xae, 0xb1, 0x09, 0x17, 0x4a, 0xaa, 0x46, 0xbf, 0x88, 0x2f, 0x76,
|
||||
0x00, 0x78, 0x91, 0x81, 0x6e, 0x57, 0x08, 0x75, 0x16, 0xab, 0x19, 0x76, 0x87, 0x0d, 0x36, 0x87,
|
||||
0x05, 0xdd, 0x0e, 0x2b, 0x79, 0x1e, 0x57, 0x37, 0x7d, 0xb7, 0x5b, 0x60, 0x23, 0x52, 0xb6, 0x2b,
|
||||
0xbd, 0xe1, 0x5f, 0x25, 0x7e, 0x1e, 0xf0, 0x7e, 0xf2, 0x1f, 0xf5, 0x32, 0x09, 0x2c, 0x56, 0x13,
|
||||
0xe4, 0x0a, 0x39, 0x5e, 0xe0, 0x72, 0x31, 0xe7, 0xdc, 0x39, 0x70, 0xc8, 0x17, 0xe7, 0x05, 0x05,
|
||||
0x21, 0x70, 0xdd, 0x3a, 0xbc, 0xbe, 0x61, 0x03, 0x53, 0xd0, 0xc6, 0x8d, 0x10, 0x0a, 0x85, 0x7d,
|
||||
0x0c, 0xf4, 0x6b, 0xf9, 0x4d, 0x9d, 0xd9, 0x6c, 0x84, 0xc9, 0x62, 0x80, 0xd1, 0xa2, 0x87, 0xc9,
|
||||
0xda, 0x05, 0xb3, 0x6d, 0x5c, 0x26, 0xab, 0x01, 0x5d, 0xe6, 0x4e, 0xd8, 0xba, 0x2d, 0x68, 0x6a,
|
||||
0x69, 0xf4, 0x86, 0xef, 0x1f, 0x07, 0xa9, 0x34, 0xad, 0xb8, 0x5a, 0x5a, 0x8a, 0x05, 0x3e, 0x3e,
|
||||
0xe0, 0x88, 0x44, 0x0c, 0xc2, 0x64, 0x34, 0x82, 0xa3, 0x50, 0x3c, 0x56, 0x64, 0x24, 0x52, 0x52,
|
||||
0x52, 0xc0, 0x40, 0x37, 0x85, 0xbf, 0xe8, 0xf4, 0x5d, 0x3a, 0x58, 0x49, 0xd6, 0xd6, 0x6e, 0x13,
|
||||
0x1b, 0x95, 0xde, 0xa8, 0x43, 0x65, 0xf5, 0x6f, 0x68, 0x69, 0x6b, 0x42, 0x5d, 0x83, 0x94, 0x81,
|
||||
0x64, 0x8a, 0x06, 0x06, 0x3a, 0x9c, 0x56, 0x36, 0x2a, 0x48, 0x4f, 0xc7, 0x3c, 0x7f, 0x7f, 0x70,
|
||||
0x34, 0x9a, 0xc7, 0x90, 0xe9, 0x44, 0x20, 0x93, 0xa0, 0xb2, 0x1b, 0xd7, 0x74, 0x6a, 0xad, 0x0a,
|
||||
0x0e, 0x97, 0x0d, 0x76, 0xa7, 0x0d, 0xce, 0x5e, 0x3b, 0x5c, 0x6e, 0x07, 0x62, 0x62, 0xa3, 0x91,
|
||||
0x90, 0x78, 0x1c, 0x2a, 0x6d, 0x1b, 0xe8, 0xd4, 0x4a, 0x6b, 0xc5, 0x0c, 0xf4, 0x53, 0x5e, 0x3e,
|
||||
0x9e, 0x5d, 0xb8, 0x10, 0x1c, 0xa7, 0xf3, 0x9f, 0x21, 0x7f, 0x05, 0x5d, 0x2f, 0x2b, 0xd1, 0xb5,
|
||||
0xa9, 0x9a, 0xe1, 0x22, 0x00, 0x0a, 0xe9, 0xed, 0xef, 0x41, 0x9f, 0xc7, 0x8d, 0xd3, 0x59, 0xa7,
|
||||
0x70, 0xf4, 0x58, 0x1c, 0xec, 0x24, 0x01, 0x33, 0x59, 0x0f, 0x91, 0xb8, 0x8a, 0x81, 0x12, 0xb2,
|
||||
0x2b, 0x46, 0x23, 0x62, 0x63, 0x31, 0x7f, 0xed, 0x5a, 0x70, 0xba, 0xbb, 0x67, 0x07, 0x6a, 0x57,
|
||||
0x2b, 0xc9, 0x28, 0x9c, 0x04, 0xe6, 0x20, 0x90, 0x5e, 0x06, 0xca, 0xc8, 0xcc, 0x40, 0x8d, 0xb4,
|
||||
0x86, 0x8c, 0xb4, 0x9b, 0x4d, 0xdd, 0x04, 0x88, 0xae, 0x91, 0xae, 0x53, 0x83, 0x9c, 0xf3, 0xe7,
|
||||
0x31, 0xdf, 0xcf, 0x0f, 0x1c, 0xb9, 0x7c, 0x66, 0x6b, 0x44, 0x41, 0x32, 0x45, 0x3d, 0xfa, 0x3d,
|
||||
0x7d, 0x44, 0x6e, 0x0c, 0x0c, 0x7a, 0xc8, 0x36, 0xef, 0x81, 0x44, 0x2a, 0x86, 0x67, 0xa0, 0x8f,
|
||||
0x3d, 0x1b, 0x8c, 0x9d, 0x53, 0x40, 0xf5, 0x72, 0x29, 0xe9, 0xeb, 0x87, 0x44, 0x22, 0xc1, 0x73,
|
||||
0xbe, 0xbe, 0x78, 0xa6, 0xb0, 0xf0, 0xe9, 0xbb, 0x8e, 0x82, 0x14, 0xf7, 0x1a, 0x50, 0x27, 0x93,
|
||||
0xa2, 0x7e, 0x1a, 0xd5, 0x36, 0x88, 0xc9, 0x8e, 0x53, 0x4c, 0x01, 0xd1, 0x78, 0x2a, 0xda, 0xae,
|
||||
0x56, 0xab, 0xe0, 0xbf, 0x6a, 0x15, 0xe6, 0x46, 0x44, 0x60, 0x41, 0x60, 0x20, 0xb4, 0x5a, 0x0d,
|
||||
0xf4, 0x86, 0x0e, 0xc8, 0x9b, 0x5a, 0xb0, 0x33, 0xae, 0x68, 0x6c, 0xf2, 0x1c, 0xe5, 0x17, 0x5e,
|
||||
0x6c, 0x51, 0x93, 0x05, 0x17, 0xd7, 0xde, 0x25, 0xaa, 0x9e, 0x56, 0x6d, 0x2a, 0x25, 0xaa, 0x44,
|
||||
0x77, 0x06, 0xb6, 0x7e, 0x99, 0xb8, 0x71, 0xf9, 0x66, 0xfe, 0x68, 0x93, 0xb2, 0x19, 0xf4, 0x2c,
|
||||
0xd1, 0x3e, 0x49, 0xdd, 0x5d, 0xe8, 0xf4, 0x5a, 0x84, 0xee, 0xd8, 0xc1, 0x9c, 0x41, 0xd9, 0xda,
|
||||
0x8c, 0x66, 0x65, 0x23, 0x8a, 0x6f, 0xde, 0x79, 0xb8, 0x8c, 0xc7, 0xf7, 0x4c, 0x3a, 0x43, 0xfa,
|
||||
0xe9, 0xf4, 0xb5, 0xfc, 0xef, 0xcf, 0x4a, 0xa2, 0x12, 0xce, 0x6a, 0x0e, 0x7e, 0x77, 0x46, 0x3b,
|
||||
0x9d, 0x22, 0xbf, 0xcd, 0x52, 0xef, 0x88, 0x4c, 0x29, 0xf4, 0x0d, 0x16, 0x84, 0xfb, 0xf1, 0x92,
|
||||
0x64, 0xcb, 0x37, 0x0b, 0x46, 0x57, 0x6e, 0x4f, 0x19, 0x26, 0x1a, 0x59, 0xb9, 0xfd, 0xc4, 0xa3,
|
||||
0xd7, 0xc2, 0x4f, 0x0c, 0xc7, 0x67, 0xdd, 0x1a, 0xce, 0xbb, 0x78, 0xe9, 0x51, 0x72, 0x6e, 0xf9,
|
||||
0xc3, 0xd5, 0x1f, 0xa5, 0x8e, 0x2d, 0xe3, 0x09, 0x46, 0xfc, 0x78, 0xc9, 0x11, 0x93, 0x20, 0xbf,
|
||||
0x90, 0xa4, 0xcf, 0x96, 0x87, 0x09, 0x86, 0xdf, 0xde, 0x7d, 0xd2, 0x33, 0x53, 0xbd, 0xf5, 0x49,
|
||||
0xda, 0xfd, 0x35, 0x3b, 0xd3, 0x06, 0xd7, 0xec, 0x4a, 0x1b, 0x7e, 0xf3, 0xe3, 0xd4, 0x31, 0x32,
|
||||
0x9d, 0x43, 0x24, 0x7b, 0xd1, 0xcb, 0x21, 0xfc, 0xa0, 0x25, 0x21, 0x89, 0xef, 0xfa, 0x84, 0xf0,
|
||||
0x47, 0xb8, 0x9b, 0x32, 0x17, 0x4d, 0x31, 0xd5, 0xc0, 0x6d, 0x7c, 0x7d, 0x66, 0xde, 0xf5, 0x47,
|
||||
0xd2, 0xba, 0x1a, 0x28, 0x9a, 0x64, 0xb3, 0x16, 0x5d, 0xc3, 0xc6, 0xe6, 0x7b, 0x58, 0x1a, 0xca,
|
||||
0x7f, 0xc8, 0xdd, 0x94, 0xf4, 0xfc, 0xe2, 0xb0, 0xe4, 0x97, 0x7c, 0x82, 0xf9, 0x0f, 0x38, 0xef,
|
||||
0xc4, 0xcf, 0x99, 0x02, 0x0a, 0xd8, 0x2a, 0x70, 0x5e, 0xb8, 0x72, 0x0b, 0x06, 0xe2, 0x0e, 0x1d,
|
||||
0x7a, 0x35, 0x93, 0xce, 0x40, 0x16, 0xb4, 0xab, 0x83, 0x39, 0x84, 0xc1, 0xd4, 0x89, 0x2e, 0x22,
|
||||
0x7a, 0x37, 0x90, 0x77, 0xbd, 0xb1, 0x83, 0xf5, 0x4f, 0xc4, 0x1a, 0x4d, 0x7a, 0xb2, 0x91, 0x24,
|
||||
0x58, 0x11, 0x26, 0x18, 0x5b, 0x1a, 0x9c, 0xf0, 0x06, 0x81, 0x08, 0x7d, 0x83, 0xf9, 0x59, 0x7f,
|
||||
0x2b, 0x13, 0x8f, 0x41, 0x1d, 0x68, 0x55, 0x37, 0xa1, 0x5d, 0xdb, 0x82, 0x96, 0xf6, 0x46, 0x68,
|
||||
0xf5, 0x2a, 0x74, 0x1a, 0xb5, 0xd0, 0x9b, 0x3a, 0x08, 0x44, 0xc7, 0xee, 0x34, 0x7b, 0x9d, 0x41,
|
||||
0x0d, 0x4d, 0x67, 0x3b, 0x71, 0x0c, 0x25, 0x8b, 0xef, 0x34, 0x68, 0xd1, 0x20, 0xaf, 0xa5, 0x20,
|
||||
0x2c, 0x09, 0x49, 0x1a, 0x24, 0xa0, 0x8c, 0x45, 0x1f, 0x9c, 0x9c, 0xfb, 0x44, 0x90, 0x91, 0x64,
|
||||
0xdc, 0xa6, 0x69, 0xc1, 0x91, 0xb8, 0x58, 0x1c, 0xfb, 0xe6, 0x28, 0xb2, 0xce, 0x9e, 0xc2, 0xe9,
|
||||
0x33, 0x99, 0xc4, 0x68, 0x0d, 0xcc, 0x60, 0x0d, 0xc4, 0x5c, 0x0f, 0x1c, 0x8c, 0x60, 0x50, 0x5d,
|
||||
0x97, 0x86, 0xc1, 0x68, 0x52, 0x06, 0x32, 0x42, 0x99, 0xa2, 0x8e, 0x8d, 0x68, 0xf1, 0x96, 0xe3,
|
||||
0x7e, 0x4f, 0xac, 0x8c, 0x13, 0x20, 0x33, 0xf9, 0x60, 0x43, 0x63, 0x1d, 0xa2, 0x62, 0x0e, 0xb1,
|
||||
0xec, 0xa9, 0x73, 0x87, 0x84, 0x06, 0xa3, 0xa8, 0xb8, 0x10, 0xbc, 0xb0, 0x50, 0xe4, 0xe4, 0x66,
|
||||
0xe3, 0x50, 0xd4, 0x01, 0xd6, 0xce, 0x60, 0x64, 0x64, 0x6a, 0x5d, 0x2b, 0x8c, 0x24, 0x81, 0x09,
|
||||
0xd0, 0x12, 0xde, 0x71, 0xdf, 0xa7, 0x82, 0x68, 0x7d, 0xa1, 0x53, 0xb1, 0x7b, 0xcf, 0xa7, 0xac,
|
||||
0x5c, 0x74, 0x99, 0xf5, 0x88, 0xf9, 0x3a, 0x9a, 0x38, 0xba, 0x19, 0xd1, 0x31, 0x87, 0x99, 0x0f,
|
||||
0x46, 0x45, 0x1f, 0x22, 0x2e, 0x6f, 0x62, 0xfd, 0x74, 0x5a, 0xb5, 0x64, 0x54, 0x66, 0xab, 0x71,
|
||||
0x76, 0x20, 0x5a, 0xdc, 0xe8, 0xba, 0x5c, 0x2b, 0xbb, 0x8a, 0xb8, 0xa3, 0x47, 0x90, 0x5f, 0x90,
|
||||
0x47, 0x6c, 0xa8, 0x06, 0x97, 0x8b, 0x8b, 0x48, 0xdb, 0x35, 0xb8, 0x89, 0xd9, 0x5e, 0x29, 0xb9,
|
||||
0xcc, 0xca, 0x08, 0x9b, 0x4a, 0x13, 0xdd, 0x3c, 0x2a, 0x56, 0x5a, 0x64, 0x8d, 0xf5, 0x33, 0x07,
|
||||
0xd1, 0xcc, 0x9c, 0x2e, 0x52, 0x22, 0x7a, 0x1c, 0xe8, 0xe9, 0x75, 0xa1, 0x97, 0x78, 0x5c, 0x1f,
|
||||
0x29, 0xe5, 0xd4, 0x03, 0x3d, 0x03, 0x1e, 0x76, 0xa7, 0xef, 0xb4, 0xbd, 0xc7, 0xed, 0x22, 0x71,
|
||||
0x4e, 0x16, 0x4f, 0x4b, 0xcb, 0xc4, 0xae, 0x7b, 0x2a, 0x28, 0xaf, 0xe4, 0x36, 0x39, 0x0b, 0x72,
|
||||
0x54, 0x54, 0x0a, 0x67, 0x2d, 0xb1, 0xb4, 0x1a, 0x6a, 0x4d, 0xdb, 0x0c, 0x40, 0xdb, 0x04, 0xd2,
|
||||
0x7d, 0xf1, 0xb9, 0x23, 0x22, 0x69, 0x2d, 0xaa, 0x6b, 0xc4, 0xb3, 0x97, 0x58, 0x82, 0x4b, 0xa5,
|
||||
0xe5, 0x5e, 0x2e, 0xf9, 0x69, 0x99, 0x76, 0x5b, 0x4f, 0x5a, 0xd0, 0x7b, 0x7c, 0x2e, 0xf9, 0x3d,
|
||||
0x52, 0x72, 0x79, 0xfc, 0xe1, 0x65, 0xff, 0x52, 0xe4, 0xf7, 0xcb, 0xc5, 0x0d, 0x4e, 0x0c, 0xe7,
|
||||
0xfc, 0xdf, 0xd7, 0x9f, 0x92, 0x97, 0x0d, 0xce, 0x36, 0xe0, 0x35, 0x9b, 0x00, 0x00, 0x00, 0x00,
|
||||
0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82,
|
||||
};
|
||||
|
||||
const BITMAP_OPAQUE hotkeys_import_xpm[1] = {{ png, sizeof( png ), "hotkeys_import_xpm" }};
|
||||
|
||||
//EOF
|
||||
@@ -0,0 +1,79 @@
|
||||
|
||||
/* Do not modify this file, it was automatically generated by the
|
||||
* PNG2cpp CMake script, using a *.png file as input.
|
||||
*/
|
||||
|
||||
#include <bitmaps_png/bitmaps_list.h>
|
||||
|
||||
static const unsigned char png[] = {
|
||||
0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52,
|
||||
0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1a, 0x08, 0x06, 0x00, 0x00, 0x00, 0xa9, 0x4a, 0x4c,
|
||||
0xce, 0x00, 0x00, 0x03, 0xdc, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0x9d, 0x96, 0x4b, 0x48, 0x54,
|
||||
0x61, 0x14, 0xc7, 0xaf, 0xa5, 0x92, 0xd9, 0x63, 0x28, 0xc3, 0x1e, 0x92, 0x14, 0x31, 0xab, 0x8a,
|
||||
0xc8, 0x6a, 0xa3, 0x92, 0x59, 0x11, 0xb4, 0x69, 0x69, 0xd0, 0x53, 0x14, 0x29, 0xc8, 0x82, 0xf6,
|
||||
0x52, 0xd1, 0x42, 0x10, 0x75, 0xa1, 0x13, 0x11, 0xa8, 0x44, 0x19, 0x2e, 0x9c, 0x92, 0x5a, 0x28,
|
||||
0xb8, 0x0b, 0x34, 0x32, 0xa7, 0x9c, 0x71, 0x08, 0xa6, 0xc7, 0x80, 0x3a, 0xbe, 0x9d, 0x87, 0xcf,
|
||||
0x19, 0xdf, 0xa7, 0xf3, 0x3f, 0xcd, 0x8d, 0x7b, 0xbd, 0x33, 0xd3, 0xe8, 0x07, 0xff, 0x61, 0xe6,
|
||||
0xbb, 0xdf, 0x77, 0x7e, 0x73, 0xce, 0xf9, 0x7f, 0xf7, 0x5e, 0x45, 0x51, 0x94, 0x04, 0xd6, 0x41,
|
||||
0x56, 0x36, 0x2b, 0x67, 0x23, 0xca, 0xcc, 0xcc, 0xcc, 0x77, 0xbb, 0xdd, 0x1f, 0x56, 0x56, 0x56,
|
||||
0x16, 0x9c, 0x4e, 0xe7, 0x2b, 0xcd, 0x35, 0xc4, 0xcc, 0x08, 0x33, 0x94, 0x4d, 0xac, 0xb3, 0xfd,
|
||||
0xfd, 0xfd, 0x34, 0x30, 0x30, 0x40, 0x1e, 0x8f, 0x47, 0x34, 0x38, 0x38, 0x48, 0x43, 0x43, 0x43,
|
||||
0x34, 0x3c, 0x3c, 0x2c, 0x1a, 0x19, 0x19, 0xa1, 0xd1, 0xd1, 0x51, 0x1a, 0x1b, 0x1b, 0x23, 0x5e,
|
||||
0x1b, 0xe2, 0xb5, 0x41, 0x5e, 0x17, 0xe4, 0xf9, 0xd0, 0xe2, 0xe2, 0xe2, 0x4a, 0xe3, 0x9b, 0x37,
|
||||
0xb4, 0x37, 0x23, 0x83, 0x56, 0x57, 0x57, 0xb1, 0x2e, 0x08, 0xf1, 0xda, 0x60, 0x62, 0x62, 0x62,
|
||||
0x6e, 0x98, 0x21, 0x1f, 0x79, 0xf1, 0x42, 0xa0, 0xf1, 0xf1, 0x71, 0x9a, 0x98, 0x98, 0xa0, 0xa9,
|
||||
0xa9, 0x29, 0x5a, 0x58, 0x58, 0xa0, 0xbb, 0x0f, 0x1e, 0x50, 0xea, 0x91, 0x23, 0xc4, 0x71, 0x08,
|
||||
0x63, 0x72, 0x72, 0x52, 0xae, 0x4d, 0x4f, 0x4f, 0x63, 0x4e, 0x0f, 0x8a, 0x04, 0x01, 0x40, 0x0b,
|
||||
0x01, 0x40, 0x85, 0xcc, 0xcd, 0xcd, 0xc9, 0xf7, 0x33, 0xf9, 0xf9, 0xb4, 0xf5, 0xf2, 0x65, 0x52,
|
||||
0xfc, 0xfe, 0x7f, 0x20, 0xed, 0xe8, 0xed, 0xed, 0x7d, 0xad, 0x03, 0x01, 0x10, 0x0f, 0xc4, 0xeb,
|
||||
0xf5, 0x4a, 0x16, 0x1d, 0x1d, 0x1d, 0xb4, 0x8b, 0x4b, 0x95, 0xf4, 0xe4, 0x09, 0x29, 0x5c, 0x2e,
|
||||
0x20, 0x12, 0x4d, 0x26, 0x81, 0xa9, 0xda, 0xc6, 0xbf, 0xb9, 0x94, 0x8b, 0x06, 0x50, 0x2c, 0x08,
|
||||
0xb2, 0xf0, 0xf3, 0xbf, 0x5e, 0x5e, 0x5e, 0xa6, 0xe7, 0x2f, 0x5e, 0x50, 0x4a, 0x5a, 0x1a, 0x29,
|
||||
0x2d, 0x2d, 0x02, 0x88, 0xaa, 0x70, 0x86, 0x3a, 0x90, 0x16, 0x02, 0xc0, 0x5a, 0x08, 0x04, 0xc8,
|
||||
0xd5, 0xdb, 0xb7, 0x69, 0xdb, 0x89, 0x13, 0xa4, 0xb8, 0xdd, 0xb1, 0x21, 0xd1, 0x40, 0xff, 0x83,
|
||||
0xa0, 0x64, 0x6c, 0x5f, 0xba, 0x75, 0xe7, 0x0e, 0xa5, 0x9a, 0xcd, 0xa4, 0x74, 0x77, 0x6f, 0x0c,
|
||||
0x14, 0x0d, 0x02, 0x00, 0xe4, 0xf3, 0xf9, 0xc4, 0x49, 0xc8, 0xea, 0xed, 0xbb, 0x77, 0xb4, 0x23,
|
||||
0x3d, 0x9d, 0x92, 0x1e, 0x3d, 0x22, 0x85, 0x7f, 0xaf, 0x0b, 0x14, 0xc9, 0xbe, 0x5a, 0x08, 0xfa,
|
||||
0x13, 0x08, 0x04, 0x44, 0xf3, 0xf3, 0xf3, 0xe2, 0xd0, 0x33, 0xe7, 0xce, 0x51, 0x2a, 0x4b, 0xe1,
|
||||
0xef, 0xd1, 0xcc, 0xc0, 0x55, 0x58, 0xd2, 0x81, 0xe2, 0x81, 0xe0, 0x7c, 0xa8, 0x67, 0x24, 0x18,
|
||||
0x0c, 0x4a, 0x76, 0x4f, 0xcb, 0xcb, 0x29, 0x95, 0xb3, 0x4b, 0xb0, 0x5a, 0x23, 0xda, 0xdb, 0x6e,
|
||||
0xb7, 0x37, 0xea, 0x40, 0xda, 0x33, 0xa2, 0x02, 0xd6, 0x42, 0xb2, 0xb2, 0xb2, 0x74, 0x9a, 0x9d,
|
||||
0x9d, 0x15, 0x58, 0x37, 0xf7, 0xeb, 0x00, 0xfa, 0x16, 0x06, 0x21, 0x63, 0x1c, 0x01, 0xbe, 0x63,
|
||||
0x60, 0x2e, 0xcf, 0x00, 0xaa, 0xa8, 0xa8, 0xa0, 0x9c, 0x9c, 0x1c, 0xaa, 0xac, 0xac, 0x8c, 0x98,
|
||||
0x09, 0x82, 0xab, 0x43, 0x05, 0xe1, 0xe0, 0x22, 0xe0, 0xcc, 0xcc, 0x0c, 0xd5, 0xd7, 0xd7, 0xcb,
|
||||
0x3a, 0xc4, 0xa8, 0xa9, 0xa9, 0x89, 0x0c, 0x42, 0x26, 0x58, 0xe0, 0x70, 0x38, 0x28, 0x3b, 0x3b,
|
||||
0x9b, 0x4a, 0x4a, 0x4a, 0x0c, 0x5a, 0x0b, 0xd2, 0x5e, 0x2b, 0x2b, 0x2b, 0xa3, 0xe6, 0xe6, 0x66,
|
||||
0x2a, 0x28, 0x28, 0x90, 0x18, 0xb9, 0xb9, 0xb9, 0xb4, 0xb4, 0xb4, 0x64, 0x04, 0xa1, 0x5c, 0x55,
|
||||
0x55, 0x55, 0x02, 0xab, 0xae, 0xae, 0x96, 0x4c, 0x5c, 0x2e, 0x2f, 0x5d, 0xbf, 0xee, 0xa2, 0xa4,
|
||||
0xa4, 0x2e, 0xde, 0xf0, 0xd9, 0x00, 0xc2, 0x5c, 0x72, 0x72, 0x17, 0xdd, 0xb8, 0xf1, 0x93, 0xcd,
|
||||
0x31, 0x2b, 0xe5, 0xaa, 0xad, 0xad, 0x15, 0x88, 0xc5, 0x62, 0x91, 0xb2, 0x1a, 0x40, 0x6a, 0xa9,
|
||||
0xd4, 0x72, 0xb5, 0xb4, 0x0c, 0xd1, 0xee, 0xdd, 0xdd, 0x94, 0x92, 0xd2, 0x45, 0xf7, 0xee, 0xfd,
|
||||
0x22, 0x9b, 0xcd, 0x6b, 0xe8, 0x51, 0x4f, 0x4f, 0x80, 0xee, 0xdf, 0x77, 0xd3, 0x96, 0x2d, 0x5f,
|
||||
0x78, 0xad, 0x8d, 0xda, 0xdb, 0x7d, 0x92, 0x05, 0x04, 0x08, 0xce, 0x9d, 0x01, 0xa4, 0xb5, 0xef,
|
||||
0xfb, 0xf7, 0xc3, 0xb2, 0xf9, 0xf8, 0x71, 0x3b, 0x7d, 0xfb, 0xe6, 0x95, 0xfa, 0xab, 0xfd, 0x80,
|
||||
0xe0, 0xb8, 0x50, 0x28, 0x24, 0x4d, 0x87, 0x9c, 0xce, 0x69, 0x3a, 0x7a, 0xd4, 0x21, 0x7b, 0xda,
|
||||
0xdb, 0xfd, 0xb1, 0x41, 0x2a, 0xe4, 0xc7, 0x0f, 0xaf, 0x64, 0x72, 0xec, 0x98, 0x9d, 0x9f, 0x4f,
|
||||
0x01, 0x1d, 0x04, 0x00, 0x2d, 0x04, 0xa5, 0x82, 0xfe, 0x9e, 0xab, 0x00, 0xef, 0xf9, 0x42, 0xfb,
|
||||
0xf6, 0x7d, 0x64, 0x17, 0xfe, 0x96, 0x3e, 0xb5, 0xb5, 0xb5, 0x79, 0x38, 0xf6, 0x49, 0x03, 0x08,
|
||||
0x8e, 0xb9, 0x76, 0xcd, 0x25, 0xe5, 0xea, 0xe9, 0xf1, 0xc5, 0x05, 0xc1, 0x5c, 0x5d, 0x5d, 0x1d,
|
||||
0x35, 0x34, 0x34, 0xd0, 0xb3, 0x67, 0xaf, 0xa8, 0xb0, 0xb0, 0x91, 0xcb, 0xfe, 0x89, 0xfa, 0xfa,
|
||||
0xfa, 0x56, 0x8b, 0x8b, 0x8b, 0x5f, 0x72, 0xec, 0x9d, 0xda, 0x27, 0x6c, 0x1e, 0x20, 0x68, 0x3e,
|
||||
0x1a, 0x5f, 0x5a, 0xfa, 0xfb, 0xbf, 0x10, 0x58, 0x17, 0xc2, 0x1a, 0x40, 0x30, 0x87, 0x3d, 0x30,
|
||||
0x15, 0x6e, 0xd0, 0x56, 0xab, 0xd5, 0xc1, 0x71, 0x2f, 0xb2, 0x36, 0x2b, 0xe1, 0x21, 0x20, 0x9c,
|
||||
0x76, 0x8b, 0x65, 0x40, 0x9c, 0xf4, 0xf5, 0xab, 0x57, 0x07, 0x01, 0x20, 0x12, 0x04, 0xbd, 0xc0,
|
||||
0x53, 0xb4, 0xa9, 0xa9, 0x49, 0x20, 0xe8, 0x33, 0xee, 0x99, 0x9d, 0x9d, 0x9d, 0x1e, 0x93, 0xc9,
|
||||
0x54, 0xca, 0x71, 0x53, 0x14, 0xcd, 0x10, 0x10, 0x36, 0xdc, 0xbc, 0xe9, 0xa2, 0xf4, 0x74, 0x5b,
|
||||
0xdc, 0x10, 0x08, 0xc1, 0x5b, 0x5b, 0x5b, 0x25, 0x13, 0x40, 0xb8, 0x37, 0x7e, 0xb3, 0xd9, 0xfc,
|
||||
0x98, 0x63, 0xee, 0x57, 0x4b, 0xa6, 0x03, 0xe1, 0x1f, 0x5d, 0xba, 0xf4, 0x9d, 0x4e, 0x9d, 0xea,
|
||||
0x8d, 0x09, 0xd1, 0xda, 0x17, 0xe2, 0x5e, 0xb0, 0xf5, 0x6d, 0x52, 0x2e, 0x64, 0x12, 0x86, 0x1c,
|
||||
0x52, 0x0d, 0x60, 0x00, 0xc5, 0xb2, 0x6f, 0x24, 0x08, 0xac, 0x0b, 0xf1, 0x3b, 0x81, 0x34, 0x1e,
|
||||
0x3d, 0xe1, 0x72, 0x3d, 0x0c, 0xbf, 0x5e, 0x19, 0x20, 0xff, 0x5e, 0xb7, 0xd6, 0x0b, 0xc1, 0x6b,
|
||||
0x15, 0x04, 0x0b, 0x17, 0x15, 0x15, 0xe1, 0x5d, 0xee, 0x0a, 0x6b, 0xfb, 0xda, 0x72, 0x69, 0x07,
|
||||
0x2e, 0x1c, 0x66, 0x9d, 0x67, 0x5d, 0xd8, 0x80, 0x4e, 0xb3, 0xf6, 0x84, 0xdd, 0x15, 0x15, 0xf2,
|
||||
0x07, 0x00, 0x4a, 0xbb, 0x01, 0x4c, 0xdf, 0xac, 0x8e, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e,
|
||||
0x44, 0xae, 0x42, 0x60, 0x82,
|
||||
};
|
||||
|
||||
const BITMAP_OPAQUE import_vector_xpm[1] = {{ png, sizeof( png ), "import_vector_xpm" }};
|
||||
|
||||
//EOF
|
||||
@@ -1,51 +0,0 @@
|
||||
|
||||
/* Do not modify this file, it was automatically generated by the
|
||||
* PNG2cpp CMake script, using a *.png file as input.
|
||||
*/
|
||||
|
||||
#include <bitmaps_png/bitmaps_list.h>
|
||||
|
||||
static const unsigned char png[] = {
|
||||
0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52,
|
||||
0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1a, 0x08, 0x06, 0x00, 0x00, 0x00, 0xa9, 0x4a, 0x4c,
|
||||
0xce, 0x00, 0x00, 0x02, 0x1e, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0xd5, 0x95, 0xcf, 0x4b, 0x22,
|
||||
0x51, 0x1c, 0xc0, 0xbf, 0xdb, 0xce, 0x40, 0xe0, 0x10, 0x8c, 0xec, 0xa5, 0x2e, 0x7b, 0x5b, 0x5c,
|
||||
0x58, 0x08, 0x04, 0x6f, 0x41, 0x04, 0x7b, 0xd8, 0x55, 0xff, 0x82, 0x28, 0xf4, 0xd6, 0xd6, 0xad,
|
||||
0x2e, 0x7b, 0x28, 0x58, 0x29, 0x49, 0x51, 0x17, 0x36, 0xfa, 0x41, 0xd1, 0xc1, 0xa1, 0x4b, 0xa2,
|
||||
0x74, 0x59, 0x50, 0xda, 0xbc, 0xc6, 0x9a, 0x73, 0xd6, 0xf5, 0x66, 0xed, 0x52, 0xb9, 0x0b, 0xda,
|
||||
0xa5, 0x74, 0xd7, 0x43, 0x7e, 0xf7, 0xfb, 0x66, 0xd5, 0xc6, 0x74, 0x44, 0x61, 0x86, 0xad, 0x2f,
|
||||
0x7c, 0xf0, 0xcd, 0xf3, 0xf1, 0x3e, 0x7c, 0xbf, 0xf3, 0x7d, 0x6f, 0x00, 0x1e, 0x40, 0x88, 0x44,
|
||||
0xb5, 0xfe, 0x6b, 0x68, 0xcc, 0x12, 0xdf, 0x89, 0x77, 0x46, 0x8b, 0x4e, 0x88, 0x25, 0x22, 0x65,
|
||||
0xa4, 0xe4, 0x05, 0x71, 0x4e, 0xf0, 0xc4, 0x0f, 0xe2, 0xa5, 0x51, 0x22, 0x3f, 0xe1, 0xeb, 0x30,
|
||||
0xd6, 0x35, 0x06, 0xee, 0x65, 0xd1, 0xc8, 0xee, 0xa9, 0xde, 0xa2, 0xb7, 0xc4, 0x1f, 0x02, 0x55,
|
||||
0xb0, 0xe7, 0x37, 0x7a, 0x8b, 0x22, 0x1d, 0x3a, 0x8d, 0x75, 0xe0, 0xbe, 0xde, 0xa2, 0x5c, 0x87,
|
||||
0xb3, 0x23, 0xd6, 0xe7, 0x1f, 0x4b, 0x84, 0xe0, 0x94, 0xc0, 0x3e, 0x38, 0x7d, 0xb8, 0xc9, 0x6c,
|
||||
0x6e, 0xc2, 0xd8, 0xc6, 0x06, 0xbc, 0x67, 0xb0, 0xb1, 0x61, 0xa2, 0xf5, 0x75, 0xf0, 0x14, 0x0a,
|
||||
0x80, 0x0c, 0x36, 0xfe, 0xef, 0xa2, 0x65, 0x8e, 0xbb, 0xa6, 0x3f, 0x51, 0x8b, 0x15, 0x9e, 0xaf,
|
||||
0x2c, 0x03, 0x8c, 0xf6, 0x25, 0xa2, 0x12, 0xce, 0x6d, 0x6d, 0xc1, 0x6b, 0xf5, 0x3a, 0xb6, 0x59,
|
||||
0xb7, 0xf8, 0x76, 0x70, 0x50, 0x5b, 0x35, 0x99, 0x7e, 0xd1, 0xba, 0x67, 0xfd, 0x88, 0x3c, 0xb2,
|
||||
0x0c, 0xb5, 0xdd, 0x5d, 0xf0, 0x7a, 0x3c, 0xca, 0x95, 0xd4, 0x26, 0xb2, 0xdb, 0xed, 0x0a, 0xea,
|
||||
0x38, 0x5c, 0x58, 0xa8, 0xfa, 0x86, 0x86, 0x52, 0xb4, 0x96, 0xeb, 0x59, 0xc4, 0x9e, 0x73, 0x39,
|
||||
0xc0, 0xbd, 0x3d, 0x48, 0x52, 0x76, 0xa2, 0x5a, 0x54, 0xa9, 0x54, 0xd0, 0x6c, 0x36, 0xa3, 0x28,
|
||||
0x8a, 0x58, 0x2e, 0x97, 0x9b, 0xf3, 0xb5, 0xdb, 0x5b, 0x94, 0x26, 0x26, 0x6e, 0x56, 0x05, 0x61,
|
||||
0xad, 0xab, 0x88, 0x04, 0xc9, 0x7a, 0xf7, 0x25, 0x1b, 0x73, 0x67, 0x67, 0x80, 0xb1, 0x18, 0xfc,
|
||||
0xf4, 0x3e, 0xbf, 0x13, 0x85, 0xc3, 0x61, 0x74, 0x3a, 0x9d, 0xe8, 0x70, 0x38, 0x50, 0x92, 0xa4,
|
||||
0x96, 0xac, 0x7e, 0x5f, 0x5d, 0xe1, 0xc7, 0x91, 0x91, 0x9b, 0xc9, 0x57, 0x03, 0x1f, 0x20, 0x48,
|
||||
0xe5, 0x67, 0x84, 0xc0, 0xd6, 0x22, 0xd2, 0xe2, 0xe2, 0x02, 0x30, 0xf9, 0x05, 0x30, 0x9b, 0xdd,
|
||||
0x51, 0x36, 0xb3, 0xd9, 0x6c, 0x98, 0x48, 0x24, 0x30, 0x1e, 0x8f, 0xa3, 0xd5, 0x6a, 0x6d, 0x7b,
|
||||
0x5f, 0x99, 0x48, 0x04, 0x17, 0xcd, 0x83, 0xad, 0x87, 0x9c, 0x32, 0x98, 0xce, 0x64, 0xba, 0x8b,
|
||||
0x2e, 0x2f, 0x01, 0xe3, 0x9f, 0xff, 0x89, 0xd2, 0xe9, 0x34, 0x72, 0x1c, 0xd7, 0xbc, 0xd9, 0x79,
|
||||
0x9e, 0x47, 0x59, 0x96, 0xef, 0xca, 0x5a, 0x2a, 0x61, 0x68, 0x78, 0xb8, 0x3d, 0x23, 0x44, 0x78,
|
||||
0x42, 0x59, 0x4d, 0x91, 0xd0, 0xaf, 0xe2, 0xb8, 0x21, 0xc9, 0xe7, 0x01, 0xa3, 0x51, 0x28, 0x34,
|
||||
0x4a, 0xe7, 0x72, 0xb9, 0x30, 0x18, 0x0c, 0x36, 0x37, 0x0e, 0x04, 0x02, 0xe8, 0x76, 0xbb, 0x5b,
|
||||
0xde, 0x91, 0x4f, 0x10, 0x3e, 0xf5, 0x7a, 0x5b, 0x28, 0xe5, 0x64, 0x99, 0x4a, 0x12, 0x1c, 0xa9,
|
||||
0x9b, 0xc1, 0x62, 0xb1, 0x60, 0xb1, 0x58, 0x6c, 0x8a, 0xd8, 0x98, 0xcd, 0x29, 0x5d, 0x37, 0x3f,
|
||||
0xcf, 0xba, 0xee, 0x6b, 0xb4, 0xd7, 0x8f, 0x24, 0x13, 0xa5, 0x52, 0x50, 0xdb, 0xde, 0x86, 0x15,
|
||||
0xad, 0xf6, 0xee, 0x78, 0x8e, 0x04, 0x41, 0xfb, 0x1c, 0x69, 0x88, 0x66, 0x28, 0x8b, 0x71, 0x3d,
|
||||
0x6f, 0x86, 0xbf, 0x40, 0xe5, 0x44, 0x06, 0xed, 0xb4, 0x72, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x49,
|
||||
0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82,
|
||||
};
|
||||
|
||||
const BITMAP_OPAQUE label2glabel_xpm[1] = {{ png, sizeof( png ), "label2glabel_xpm" }};
|
||||
|
||||
//EOF
|
||||
@@ -1,38 +0,0 @@
|
||||
|
||||
/* Do not modify this file, it was automatically generated by the
|
||||
* PNG2cpp CMake script, using a *.png file as input.
|
||||
*/
|
||||
|
||||
#include <bitmaps_png/bitmaps_list.h>
|
||||
|
||||
static const unsigned char png[] = {
|
||||
0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52,
|
||||
0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1a, 0x08, 0x06, 0x00, 0x00, 0x00, 0xa9, 0x4a, 0x4c,
|
||||
0xce, 0x00, 0x00, 0x01, 0x50, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0xd5, 0x95, 0xcb, 0x4a, 0xc3,
|
||||
0x40, 0x14, 0x86, 0x7f, 0x15, 0x1f, 0xa0, 0x2f, 0x21, 0xf8, 0x00, 0xee, 0x04, 0xbb, 0x70, 0xa1,
|
||||
0xef, 0xa0, 0x5b, 0x6f, 0x2f, 0xe0, 0xc6, 0x45, 0x40, 0xc1, 0x2e, 0xdc, 0xf5, 0x42, 0xa1, 0x9b,
|
||||
0xd0, 0x8d, 0xd2, 0xee, 0xbb, 0x30, 0x5d, 0x0a, 0x91, 0xae, 0x0b, 0xd9, 0xb5, 0x55, 0x6c, 0xe3,
|
||||
0x23, 0x58, 0x85, 0x1e, 0xff, 0x29, 0x13, 0x08, 0x92, 0xe9, 0x75, 0x02, 0xf1, 0xc0, 0x47, 0x66,
|
||||
0x26, 0x90, 0x8f, 0x7f, 0x72, 0x32, 0x01, 0x32, 0x50, 0x39, 0x32, 0xd6, 0xd7, 0x54, 0xeb, 0x92,
|
||||
0xbc, 0x91, 0x8b, 0xb4, 0x45, 0xaf, 0xe4, 0x86, 0xf8, 0x69, 0x4a, 0x76, 0xc8, 0x07, 0xd9, 0x26,
|
||||
0xef, 0x64, 0x37, 0x2d, 0x51, 0x81, 0xdc, 0x27, 0x8c, 0xad, 0xd6, 0xe6, 0x9f, 0x14, 0x51, 0xba,
|
||||
0x2d, 0xdb, 0xa2, 0x63, 0xf2, 0x45, 0x24, 0x86, 0x9a, 0x1f, 0xd9, 0x16, 0x3d, 0x25, 0x74, 0x9a,
|
||||
0xea, 0xc0, 0x47, 0xdb, 0xa2, 0x20, 0xe1, 0xdb, 0xc9, 0xe9, 0xf5, 0xff, 0x52, 0x0f, 0xe8, 0x13,
|
||||
0x59, 0x82, 0x7e, 0xf6, 0x43, 0x95, 0xcb, 0xd8, 0x2f, 0x95, 0x70, 0xad, 0x50, 0xe3, 0xd4, 0x44,
|
||||
0xc5, 0x22, 0x9c, 0x30, 0x84, 0x28, 0xd4, 0x38, 0x4b, 0x22, 0x59, 0x80, 0xc5, 0x44, 0xdc, 0xc2,
|
||||
0xab, 0x4a, 0x05, 0x87, 0x33, 0x44, 0x8e, 0xc6, 0xd5, 0x73, 0x37, 0xb6, 0xb6, 0x94, 0xc8, 0xe9,
|
||||
0x74, 0x30, 0xa9, 0xd5, 0x70, 0xe7, 0x38, 0xd3, 0xa3, 0x29, 0x5e, 0xf1, 0xd4, 0x79, 0xfd, 0xe0,
|
||||
0xbc, 0xe1, 0xfe, 0x7c, 0x91, 0x9a, 0x07, 0x01, 0xa4, 0x5e, 0x87, 0xc7, 0x74, 0xa6, 0x9f, 0x60,
|
||||
0x92, 0x68, 0xfe, 0x3b, 0xa2, 0xc0, 0xd3, 0xdd, 0xe7, 0x45, 0x6b, 0x83, 0x01, 0xa4, 0xd9, 0xc4,
|
||||
0x27, 0xd7, 0xf6, 0xac, 0x89, 0x4c, 0x0c, 0x87, 0x90, 0x76, 0x1b, 0x3f, 0x4c, 0x76, 0xb6, 0xb2,
|
||||
0x88, 0x09, 0x4e, 0xbb, 0xdd, 0xd9, 0xa2, 0xd1, 0x08, 0xd2, 0x6a, 0xe1, 0x7b, 0x2d, 0x91, 0x08,
|
||||
0x36, 0x98, 0xea, 0x84, 0xc2, 0x42, 0x8c, 0x97, 0x48, 0xd2, 0xeb, 0x41, 0x1a, 0x0d, 0x84, 0x6b,
|
||||
0x6f, 0x9d, 0xe1, 0xb4, 0x98, 0x6e, 0xa7, 0x4a, 0xea, 0xba, 0x78, 0xb6, 0xd2, 0x0c, 0x26, 0x91,
|
||||
0xef, 0x63, 0x52, 0xad, 0xe2, 0x36, 0xa1, 0xbd, 0x4d, 0x1f, 0xef, 0x4a, 0xa2, 0x73, 0xa6, 0x38,
|
||||
0xb0, 0x71, 0xf2, 0xfc, 0x02, 0x4d, 0x5d, 0x0d, 0xb2, 0xfd, 0xb3, 0x85, 0x90, 0x00, 0x00, 0x00,
|
||||
0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82,
|
||||
};
|
||||
|
||||
const BITMAP_OPAQUE label2text_xpm[1] = {{ png, sizeof( png ), "label2text_xpm" }};
|
||||
|
||||
//EOF
|
||||
@@ -7,30 +7,23 @@
|
||||
|
||||
static const unsigned char png[] = {
|
||||
0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52,
|
||||
0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1a, 0x08, 0x06, 0x00, 0x00, 0x00, 0xa9, 0x4a, 0x4c,
|
||||
0xce, 0x00, 0x00, 0x01, 0x4b, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0xed, 0xd5, 0xbf, 0x4b, 0x02,
|
||||
0x61, 0x00, 0x87, 0xf1, 0x77, 0x51, 0x9c, 0x0c, 0x91, 0xa0, 0x25, 0x30, 0xc2, 0xa0, 0x6c, 0x15,
|
||||
0x22, 0xa4, 0xa8, 0x21, 0xa7, 0xa2, 0x21, 0xb2, 0x74, 0x09, 0x49, 0x73, 0x13, 0x13, 0xd4, 0x6a,
|
||||
0x13, 0x5c, 0x0c, 0x44, 0xa4, 0x1f, 0xc4, 0x21, 0x35, 0xa4, 0x21, 0x18, 0x05, 0x81, 0x24, 0x38,
|
||||
0x35, 0x34, 0x49, 0x4b, 0xfd, 0x07, 0x81, 0xe0, 0x12, 0xb7, 0x1c, 0x0d, 0x05, 0x4f, 0xc3, 0x91,
|
||||
0x60, 0x5a, 0x17, 0x62, 0x11, 0xe1, 0xc1, 0x03, 0x77, 0xf0, 0x85, 0x0f, 0xef, 0xbb, 0x9c, 0xa8,
|
||||
0xd5, 0x6a, 0xfc, 0x46, 0xa2, 0x07, 0xfd, 0x7d, 0x48, 0x96, 0x65, 0x7e, 0xfa, 0x51, 0x14, 0xa5,
|
||||
0x07, 0x75, 0x1b, 0xaa, 0xd7, 0xc1, 0xef, 0x57, 0x8b, 0xc7, 0x21, 0x12, 0x51, 0xdf, 0xc3, 0xe1,
|
||||
0xce, 0xa1, 0xeb, 0xca, 0x03, 0xa9, 0x83, 0xdb, 0xa6, 0xaa, 0xa7, 0x65, 0x10, 0x02, 0xec, 0x76,
|
||||
0xc8, 0x64, 0x20, 0x10, 0x00, 0xab, 0x15, 0x8c, 0x46, 0xce, 0xce, 0xef, 0x5b, 0xf6, 0x5a, 0xe5,
|
||||
0x8b, 0x77, 0x88, 0xf4, 0xe1, 0x0d, 0x7d, 0x43, 0xbb, 0x4d, 0x1d, 0x87, 0x24, 0x15, 0x72, 0xb9,
|
||||
0x20, 0x97, 0x83, 0x44, 0x02, 0x1c, 0x0e, 0xd0, 0xeb, 0x99, 0x77, 0x17, 0x5a, 0xf6, 0x5a, 0xad,
|
||||
0x07, 0x2f, 0xda, 0x43, 0x85, 0xf0, 0x11, 0xe8, 0x74, 0x50, 0x2a, 0xa9, 0x65, 0xb3, 0x20, 0xa9,
|
||||
0xf8, 0xaa, 0xb7, 0xd8, 0x3d, 0x68, 0x7f, 0xf3, 0x44, 0x3d, 0x91, 0x10, 0x3c, 0x7b, 0x7d, 0xbc,
|
||||
0x8e, 0xda, 0xd4, 0x6f, 0x93, 0x09, 0xe7, 0x52, 0xbe, 0x7b, 0xd0, 0xc4, 0x5c, 0x96, 0xaa, 0x6d,
|
||||
0x86, 0x84, 0xc9, 0xc9, 0xd8, 0xe0, 0x0e, 0x8b, 0x03, 0x3e, 0x62, 0xe6, 0x05, 0x1e, 0xdd, 0x1b,
|
||||
0xf4, 0x8f, 0xa4, 0x3a, 0x83, 0xca, 0xd2, 0x15, 0xe9, 0xd9, 0x50, 0x4b, 0x95, 0xe8, 0x1e, 0x16,
|
||||
0x4b, 0xbc, 0x31, 0x9e, 0x1c, 0xde, 0xe6, 0x32, 0x98, 0x6e, 0xbb, 0xd5, 0x2a, 0xbf, 0x25, 0x21,
|
||||
0xe4, 0x64, 0xb2, 0x71, 0x4d, 0x1f, 0x7b, 0x5a, 0x59, 0x63, 0x79, 0x3c, 0x4a, 0xcc, 0x11, 0xe5,
|
||||
0x65, 0x6a, 0xfa, 0xd3, 0x9d, 0x56, 0x8a, 0xc7, 0xf3, 0x35, 0x84, 0x10, 0x60, 0x36, 0x83, 0xc1,
|
||||
0xd0, 0x31, 0xf2, 0x7d, 0xa8, 0x0b, 0xfd, 0x53, 0xa8, 0xf7, 0x2b, 0xef, 0x41, 0xef, 0xbd, 0x01,
|
||||
0xd4, 0x13, 0x20, 0xa3, 0x03, 0x4f, 0x86, 0x07, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44,
|
||||
0xae, 0x42, 0x60, 0x82,
|
||||
0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1a, 0x08, 0x02, 0x00, 0x00, 0x00, 0x26, 0x28, 0xdb,
|
||||
0x99, 0x00, 0x00, 0x00, 0xdc, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0x63, 0x78, 0x46, 0x55, 0xc0,
|
||||
0x30, 0x6a, 0x1c, 0xf9, 0xc6, 0x7d, 0xf8, 0xf0, 0xe1, 0x3f, 0x95, 0xc0, 0xd7, 0xaf, 0x5f, 0x69,
|
||||
0x6c, 0xdc, 0xdd, 0xbb, 0xdf, 0x96, 0x2e, 0xbe, 0x3d, 0x73, 0xfa, 0x8d, 0xbd, 0x7b, 0xdf, 0xfd,
|
||||
0xfe, 0xfd, 0x8f, 0x32, 0xe3, 0x7e, 0xff, 0x51, 0x55, 0x38, 0xcc, 0xcb, 0xbd, 0x55, 0x5d, 0x71,
|
||||
0x11, 0x03, 0xc3, 0xfe, 0xed, 0xf3, 0xaf, 0x50, 0xea, 0x3a, 0x13, 0xdd, 0xa3, 0x2c, 0x2c, 0x07,
|
||||
0x0c, 0x0d, 0x4f, 0x33, 0x32, 0xee, 0x3f, 0xbe, 0xe6, 0x2a, 0xc9, 0xc6, 0x6d, 0xd9, 0xf2, 0xb0,
|
||||
0xa3, 0xe3, 0x2e, 0x1c, 0xb9, 0xd9, 0x1f, 0xbf, 0x71, 0xe3, 0xeb, 0x8b, 0x17, 0x3f, 0x6b, 0x6b,
|
||||
0xef, 0x35, 0xa7, 0xed, 0x47, 0x96, 0x22, 0x88, 0x16, 0x2e, 0xbc, 0xc7, 0xd0, 0xd5, 0x75, 0x0d,
|
||||
0xe8, 0x2f, 0x38, 0xf2, 0xb5, 0x3d, 0x34, 0x7f, 0xfe, 0x73, 0x20, 0x6a, 0x6a, 0xbc, 0x2f, 0xca,
|
||||
0xbc, 0x11, 0x59, 0x8a, 0x20, 0x8a, 0x8e, 0x3e, 0x87, 0x6e, 0x9c, 0x08, 0xf3, 0xa6, 0x86, 0x9a,
|
||||
0xdb, 0x3b, 0x76, 0xbc, 0xb5, 0x50, 0xd8, 0x4c, 0x92, 0x59, 0xd8, 0x8d, 0x03, 0x22, 0x1e, 0xc6,
|
||||
0xed, 0x32, 0xcc, 0x6b, 0x48, 0x35, 0x0b, 0xa7, 0x71, 0x64, 0x23, 0x90, 0x71, 0x5b, 0x27, 0xef,
|
||||
0xef, 0x34, 0x6e, 0xa7, 0x0a, 0x5a, 0x98, 0xb7, 0x9a, 0xe1, 0x43, 0x57, 0xd7, 0x7f, 0x06, 0x06,
|
||||
0xaa, 0xa0, 0xaf, 0xd1, 0xd1, 0xa3, 0xc6, 0x51, 0x60, 0xdc, 0x68, 0x5d, 0x31, 0x58, 0x8c, 0x03,
|
||||
0x00, 0x7a, 0x13, 0x67, 0x71, 0xe0, 0xcc, 0x56, 0x20, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e,
|
||||
0x44, 0xae, 0x42, 0x60, 0x82,
|
||||
};
|
||||
|
||||
const BITMAP_OPAQUE lang_sl_xpm[1] = {{ png, sizeof( png ), "lang_sl_xpm" }};
|
||||
|
||||
@@ -1,68 +0,0 @@
|
||||
|
||||
/* Do not modify this file, it was automatically generated by the
|
||||
* PNG2cpp CMake script, using a *.png file as input.
|
||||
*/
|
||||
|
||||
#include <bitmaps_png/bitmaps_list.h>
|
||||
|
||||
static const unsigned char png[] = {
|
||||
0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52,
|
||||
0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1a, 0x08, 0x06, 0x00, 0x00, 0x00, 0xa9, 0x4a, 0x4c,
|
||||
0xce, 0x00, 0x00, 0x03, 0x2f, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0xc5, 0x96, 0x5d, 0x48, 0x93,
|
||||
0x51, 0x18, 0xc7, 0xdf, 0xb9, 0xad, 0x42, 0x0d, 0xfb, 0x10, 0x42, 0xba, 0xa9, 0x88, 0xcc, 0xea,
|
||||
0xaa, 0xfc, 0x6a, 0x33, 0xd0, 0xcc, 0xa0, 0x88, 0x9c, 0xef, 0xa6, 0xdb, 0xd8, 0xb4, 0xab, 0xba,
|
||||
0xec, 0xc2, 0x31, 0x27, 0x2d, 0x1b, 0xde, 0x0c, 0x2f, 0x42, 0xdd, 0x9c, 0x39, 0x70, 0x1f, 0xba,
|
||||
0xbc, 0x1a, 0x62, 0x17, 0xd2, 0x55, 0x10, 0x14, 0x45, 0xc4, 0x86, 0x92, 0x0b, 0xba, 0x89, 0x64,
|
||||
0x0a, 0xca, 0x26, 0x4c, 0xf1, 0xab, 0xa5, 0x9b, 0x4f, 0xe7, 0x39, 0xe5, 0xdc, 0xbb, 0x0f, 0x75,
|
||||
0xb0, 0xf2, 0xc0, 0x8f, 0xc1, 0xfe, 0xcf, 0xfb, 0xfc, 0xce, 0x79, 0xcf, 0xfb, 0xc5, 0x30, 0x07,
|
||||
0x31, 0xa4, 0x52, 0x69, 0xa9, 0x44, 0xdd, 0xd0, 0x1b, 0x0f, 0xcb, 0xb2, 0x95, 0x98, 0xb1, 0x4d,
|
||||
0x6c, 0xcd, 0xfd, 0xe6, 0x7a, 0x4b, 0x8c, 0x16, 0x49, 0x1f, 0xc9, 0xae, 0x62, 0xd6, 0xd8, 0xd8,
|
||||
0x58, 0x2e, 0x51, 0xb2, 0x3d, 0xf1, 0x90, 0xff, 0xae, 0xa5, 0x15, 0xb1, 0x4d, 0x32, 0x43, 0xa5,
|
||||
0xbe, 0x16, 0xce, 0x0d, 0x96, 0x53, 0x2a, 0x9e, 0xde, 0x04, 0x89, 0x42, 0x62, 0xc4, 0xac, 0x5e,
|
||||
0x2d, 0xe9, 0x2f, 0x33, 0xd4, 0xc4, 0x32, 0x51, 0xfb, 0xad, 0x2d, 0x99, 0x4c, 0xa6, 0xc1, 0x0c,
|
||||
0x6b, 0xb0, 0x76, 0x3b, 0xc3, 0x1e, 0xd8, 0x6b, 0x57, 0xd1, 0x85, 0xfe, 0x4a, 0x60, 0x3e, 0x9f,
|
||||
0xa5, 0x9c, 0xb7, 0x56, 0x70, 0x44, 0x67, 0x6c, 0xa5, 0xb1, 0xac, 0xc4, 0x24, 0x8a, 0xc6, 0x8b,
|
||||
0xb0, 0x76, 0x3b, 0xc3, 0x1e, 0x07, 0x2b, 0x52, 0x2a, 0x95, 0x5a, 0xb5, 0x5a, 0xdd, 0xdb, 0xa4,
|
||||
0x90, 0x7f, 0x4a, 0x14, 0xc9, 0x94, 0x32, 0x0f, 0x66, 0xd2, 0x66, 0xd9, 0x97, 0x78, 0xd1, 0x25,
|
||||
0xb3, 0x78, 0x4b, 0xa1, 0x50, 0xbc, 0xc7, 0x0c, 0x6b, 0x12, 0x45, 0xd8, 0x0b, 0x33, 0xec, 0x1d,
|
||||
0x13, 0xc9, 0xe5, 0xf2, 0xf0, 0xd0, 0xd0, 0x10, 0xe8, 0x3b, 0xf4, 0x90, 0x28, 0xd2, 0xe9, 0x75,
|
||||
0xe0, 0x72, 0xb9, 0xa0, 0xf5, 0x89, 0x06, 0x38, 0x22, 0x93, 0x18, 0x0c, 0x06, 0x03, 0xcd, 0xb0,
|
||||
0x26, 0x51, 0x84, 0xbd, 0xb0, 0x27, 0xf6, 0xe6, 0x88, 0x66, 0x66, 0x66, 0xc0, 0xee, 0x74, 0x40,
|
||||
0x55, 0x5b, 0x1d, 0x5c, 0x34, 0x8b, 0x28, 0xe2, 0xf6, 0x3a, 0x18, 0x18, 0xb4, 0xc2, 0xdc, 0xdc,
|
||||
0x1c, 0x74, 0xbf, 0xe8, 0x05, 0x91, 0xbe, 0x0e, 0x2e, 0xf7, 0x55, 0x51, 0xaa, 0xdb, 0xee, 0xc0,
|
||||
0xc8, 0xc8, 0x08, 0xcd, 0x06, 0x06, 0x07, 0xf0, 0xe2, 0x80, 0x62, 0xf3, 0x75, 0x8a, 0x98, 0xf4,
|
||||
0xb0, 0x3b, 0xed, 0x80, 0x3d, 0x53, 0x8a, 0x26, 0x26, 0x26, 0xe8, 0x0c, 0xe3, 0xf1, 0x7a, 0xbd,
|
||||
0xb4, 0x19, 0xfe, 0x8e, 0x8e, 0x8e, 0x72, 0x98, 0x9a, 0x9a, 0xa2, 0x99, 0xc7, 0xe3, 0x81, 0x61,
|
||||
0xd7, 0x30, 0x07, 0xac, 0x4f, 0x2b, 0xc2, 0x83, 0xb2, 0x49, 0x92, 0x88, 0x6c, 0xea, 0x92, 0xc5,
|
||||
0x62, 0xf9, 0x39, 0x3b, 0x3b, 0x9b, 0x54, 0x1c, 0x08, 0x04, 0x60, 0x7d, 0x7d, 0x1d, 0x22, 0x91,
|
||||
0x08, 0x44, 0xa3, 0xd1, 0x24, 0x96, 0x97, 0x97, 0xf7, 0x2f, 0x22, 0x77, 0x78, 0x91, 0x4a, 0xa5,
|
||||
0x7a, 0xe3, 0x70, 0x38, 0x7e, 0x25, 0x4a, 0xb0, 0xd9, 0xfc, 0xfc, 0x3c, 0x90, 0x89, 0x40, 0x57,
|
||||
0x57, 0x17, 0x87, 0xb1, 0xb1, 0x31, 0xc0, 0x81, 0x13, 0x59, 0x59, 0x59, 0xe1, 0x80, 0x13, 0x08,
|
||||
0x06, 0x83, 0x40, 0x16, 0x11, 0xe6, 0x5c, 0xe2, 0xe4, 0x9e, 0xa8, 0xd5, 0x6a, 0xb5, 0x8b, 0xf1,
|
||||
0xa2, 0xb5, 0xb5, 0x35, 0x08, 0x85, 0x42, 0x50, 0x54, 0x74, 0x0a, 0x04, 0x7c, 0x1e, 0x14, 0x1c,
|
||||
0x15, 0xc6, 0xc8, 0xcf, 0x13, 0x00, 0x8f, 0xc7, 0x03, 0xb3, 0xd9, 0x4c, 0x6b, 0x12, 0x09, 0x87,
|
||||
0xc3, 0x74, 0x12, 0x64, 0x1f, 0xa3, 0xe4, 0x27, 0x97, 0xf9, 0xfb, 0xac, 0x3a, 0x4d, 0x56, 0xf4,
|
||||
0xd6, 0xe9, 0x74, 0x72, 0x56, 0xb4, 0xb1, 0xb1, 0x41, 0x37, 0x9d, 0x94, 0x80, 0xee, 0x01, 0x03,
|
||||
0x3d, 0x9a, 0x1d, 0xba, 0x5b, 0x19, 0xa8, 0xb8, 0xc2, 0xd0, 0x2c, 0x15, 0x42, 0xa1, 0x80, 0xac,
|
||||
0x46, 0x4e, 0x7b, 0x90, 0xf1, 0x3c, 0xb6, 0x47, 0x56, 0xab, 0x35, 0x69, 0x8f, 0x36, 0x37, 0x37,
|
||||
0xe9, 0xbd, 0x80, 0x07, 0x6a, 0x5b, 0x18, 0x78, 0xf6, 0x90, 0x4b, 0x07, 0x41, 0x52, 0xcd, 0xc0,
|
||||
0xbd, 0x1b, 0x3b, 0xa8, 0xef, 0x32, 0x60, 0x78, 0xc4, 0xc0, 0x63, 0x05, 0x03, 0x39, 0x39, 0x3c,
|
||||
0xb0, 0xd9, 0x6c, 0x28, 0xfa, 0xb1, 0xeb, 0x55, 0x17, 0x2f, 0xfa, 0x60, 0x67, 0xe0, 0xab, 0x3b,
|
||||
0x33, 0x4e, 0x1e, 0x13, 0x80, 0x4e, 0xa7, 0xa3, 0xa7, 0x70, 0x4f, 0x11, 0x39, 0x9d, 0x54, 0xf4,
|
||||
0xd1, 0x91, 0xb9, 0xa8, 0xf0, 0x78, 0x1a, 0xd1, 0xe4, 0xe4, 0x24, 0xe7, 0x66, 0x5d, 0x5a, 0x5a,
|
||||
0xfa, 0x37, 0xa2, 0x3f, 0x8f, 0xa0, 0xdb, 0x50, 0xd2, 0x27, 0xa2, 0x4c, 0x07, 0xfc, 0xd9, 0x17,
|
||||
0xa5, 0x7a, 0xa8, 0x7e, 0x0f, 0x4d, 0x67, 0x57, 0x44, 0x2e, 0xed, 0xb6, 0x54, 0xaf, 0x89, 0xac,
|
||||
0x8b, 0xd2, 0xbd, 0xf8, 0xfe, 0x9b, 0xc8, 0x17, 0xfc, 0x06, 0x6e, 0xb7, 0x9b, 0x8a, 0x5e, 0x9b,
|
||||
0x32, 0x93, 0x78, 0x5f, 0x32, 0x90, 0x97, 0xcb, 0x87, 0xce, 0xce, 0x4e, 0xf4, 0xac, 0xee, 0xfa,
|
||||
0x71, 0xf2, 0xca, 0x33, 0x0e, 0x0b, 0x0b, 0x0b, 0x50, 0x58, 0x78, 0x02, 0x0e, 0x1f, 0xca, 0x81,
|
||||
0x82, 0x7c, 0xfe, 0xbe, 0xc9, 0x3d, 0xc2, 0x27, 0xc7, 0x08, 0xc1, 0xe7, 0xf3, 0xa1, 0xe8, 0x1d,
|
||||
0x57, 0xc4, 0xb2, 0x65, 0xf5, 0xaa, 0x06, 0xd3, 0x36, 0xad, 0x7a, 0x8d, 0x93, 0x3c, 0x54, 0x57,
|
||||
0xfd, 0x7e, 0x3f, 0x18, 0x8d, 0x46, 0x7a, 0x1a, 0xf6, 0x0b, 0xae, 0x04, 0xdf, 0x57, 0x64, 0x44,
|
||||
0x08, 0xe2, 0x3d, 0xbf, 0xf5, 0x48, 0x51, 0x31, 0x61, 0x9c, 0xb0, 0x08, 0x99, 0x8d, 0x55, 0x5c,
|
||||
0xc9, 0xb6, 0xe4, 0x37, 0x6c, 0x99, 0x93, 0xed, 0x99, 0x7c, 0xdb, 0xf8, 0x00, 0x00, 0x00, 0x00,
|
||||
0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82,
|
||||
};
|
||||
|
||||
const BITMAP_OPAQUE load_module_lib_xpm[1] = {{ png, sizeof( png ), "load_module_lib_xpm" }};
|
||||
|
||||
//EOF
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user